From 32abf97a2582026895274921c1f0529a46b991f0 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 13 Sep 2026 20:08:47 -0400 Subject: [PATCH 01/12] ci: test dev against TA-Lib C's dev branch The dev line requires a TA-Lib C that has no release yet, so a PR into dev could not build -- and in fact ran nothing at all, since tests.yml triggers on master only. This adds tests-dev.yml, which triggers on dev, builds the C library from source at the tip of its dev branch and caches it by commit, then runs the same steps tests.yml does. tests.yml is untouched: master keeps installing the published release. It resolves the commit with git ls-remote rather than api.github.com, which is rate limited per runner IP and answers 403 often enough to redden a job for a reason unrelated to the code under test. --- .github/workflows/tests-dev.yml | 81 +++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .github/workflows/tests-dev.yml diff --git a/.github/workflows/tests-dev.yml b/.github/workflows/tests-dev.yml new file mode 100644 index 000000000..a492d24a1 --- /dev/null +++ b/.github/workflows/tests-dev.yml @@ -0,0 +1,81 @@ +name: Tests (dev) + +# The dev branch tracks TA-Lib C's dev branch, which has no release yet, so this +# builds the C library from source and the two dev lines move together. master +# is tests.yml, which installs the published release; the steps after the C +# build are that file's, and are meant to stay in step with it. + +on: + push: + branches: [ dev ] + pull_request: + branches: [ dev ] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + env: + TA_INCLUDE_PATH: ${{ github.workspace }}/ta-lib-c/include + TA_LIBRARY_PATH: ${{ github.workspace }}/ta-lib-c/lib + LD_LIBRARY_PATH: ${{ github.workspace }}/ta-lib-c/lib + steps: + - uses: actions/checkout@v3 + + # git, not api.github.com: the API is rate limited per runner IP and its 403 + # would redden a job for a reason unrelated to the code under test. + - name: Resolve TA-Lib C dev + id: talib_c + run: | + set -euo pipefail + SHA=$(git ls-remote https://github.com/TA-Lib/ta-lib.git refs/heads/dev | cut -f1) + [ -n "$SHA" ] || { echo "::error::cannot resolve ta-lib dev"; exit 1; } + echo "sha=$SHA" >> "$GITHUB_OUTPUT" + + - name: Cache TA-Lib C + id: talib_c_cache + uses: actions/cache@v4 + with: + path: ta-lib-c + key: ta-lib-c-${{ runner.os }}-${{ steps.talib_c.outputs.sha }} + + - name: Build TA-Lib C + if: steps.talib_c_cache.outputs.cache-hit != 'true' + run: | + set -euo pipefail + # the exact commit the cache key names, so a cache hit and a build agree + git init -q ta-lib-c-src + git -C ta-lib-c-src remote add origin https://github.com/TA-Lib/ta-lib.git + git -C ta-lib-c-src fetch -q --depth 1 origin ${{ steps.talib_c.outputs.sha }} + git -C ta-lib-c-src checkout -q FETCH_HEAD + cmake -S ta-lib-c-src -B ta-lib-c-build -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_DEV_TOOLS=OFF -DCMAKE_INSTALL_PREFIX="$PWD/ta-lib-c" + cmake --build ta-lib-c-build -j"$(nproc)" + cmake --install ta-lib-c-build + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + allow-prereleases: true + + - name: Install dependencies + run: | + pip install --upgrade pip wheel setuptools + pip install -r requirements_test.txt + pip install flake8 + + - name: Build cython modules in-place + run: | + python setup.py build_ext --inplace + + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 talib --count --select=E9,F63,F7,F82 --show-source --statistics + + - name: Test with pytest + run: | + PYTHONPATH=. pytest From 58a227e7d45410644e27fcbe1995737627e87f2e Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 6 Sep 2026 14:21:22 -0400 Subject: [PATCH 02/12] feat(stream): handles over TA-Lib C 0.8.1's streaming API (#757) talib.stream.SMA(close) returns a handle, not a value: .value is the value at the last history bar, .update(bar) is O(1) and returns that bar's, .peek(bar) evaluates a forming bar without committing, .copy() forks it, and .open_and_fill() returns the handle plus the Function API's series in one pass. Multi-output functions answer with a named tuple; .out_range and .advance() carry the C contract's bar range. BREAKING: talib.stream_X and the old value-returning talib.stream.X are gone, along with the stream_* stubs in _ta_lib.pyi -- talib/stream.pyi types the handles instead. Migrating is stream.X(...) -> stream.X(...).value, and the compiler will not find the sites: `if stream.CDLDOJI(o, h, l, c):` used to test the pattern and now tests a handle, which is always true. Adds talib.InsufficientHistory, raised when an open gets too little history. talib/_stream.pxi and talib/stream.pyi are generated by tools/generate_stream.py (--stub for the second). --- CHANGELOG | 18 + DEVELOPMENT | 10 +- MANIFEST.in | 1 + Makefile | 8 +- README.md | 77 +- pyproject.toml | 2 +- talib/__init__.py | 16 +- talib/_common.pxi | 10 +- talib/_stream.pxi | 24958 ++- talib/_ta_lib.c | 385361 +++++++++++++++++++++++++++++------- talib/_ta_lib.pyi | 1237 - talib/_ta_lib.pyx | 2 +- talib/stream.py | 63 +- talib/stream.pyi | 2128 + tests/test_pandas.py | 23 + tests/test_polars.py | 13 +- tests/test_stream.py | 411 +- tests/test_stubs.py | 9 +- tools/generate_stream.py | 665 +- 19 files changed, 336316 insertions(+), 78696 deletions(-) create mode 100644 talib/stream.pyi diff --git a/CHANGELOG b/CHANGELOG index 41da3a43e..83c47cbb5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,24 @@ - [NEW]: Support TA-Lib C 0.8.1, which is now the minimum required version. +- [CHANGE]: ``talib.stream`` is now the real streaming API of TA-Lib C 0.8.1: + ``stream.SMA(close)`` returns a handle, not a value. ``handle.value`` is the + value at the last history bar, ``handle.update(bar)`` costs O(1) and returns + that bar's value, ``handle.peek(bar)`` evaluates a forming bar without + committing it, and ``handle.copy()`` forks it. ``stream.SMA.open_and_fill()`` + returns the handle and the Function API's series in one pass. A multi-output + function answers with a named tuple. The old last-value functions -- + ``talib.stream.SMA``, ``talib.stream_SMA``, and their ``_ta_lib.pyi`` stubs -- + are gone; ``talib/stream.pyi`` types the handles instead. + + Migrating is ``stream.X(...)`` -> ``stream.X(...).value``, and the compiler + cannot find the sites for you: ``if stream.CDLDOJI(o, h, l, c):`` used to test + the pattern and now tests a handle, which is always true. + +- [NEW]: ``talib.InsufficientHistory``, raised when a stream is opened with + too little history. It is the library's one recoverable error, so it is + catchable on its own rather than as a bare ``Exception``. + - [NEW]: The 40 functions TA-Lib C added since 0.7.1: AC, ADR, AO, CMF, CMOU, COPPOCK, CUMSUM, CVI, DONCHIAN, DPO, EFI, ER, ERI, FOSC, FRACTAL, HA, HMA, KC, KDJ, MARKETFI, MASSI, NVI, PERCENTILE, PERCENTRANK, PVI, PVO, PVT, diff --git a/DEVELOPMENT b/DEVELOPMENT index 571a48a2c..7e05ddfe7 100644 --- a/DEVELOPMENT +++ b/DEVELOPMENT @@ -38,11 +38,15 @@ talib/_ta_lib.pyx need to use in the above pyx files. talib/_stream.pxi - This file contains code for interfacing a "streaming" interface to TA-Lib. + This file is generated automatically by tools/generate_stream.py: one handle + class per indicator, over TA-Lib C's streaming API. + +talib/stream.pyi + Type stubs for those handles, generated by tools/generate_stream.py --stub. tools/generate_func.py,generate_stream.py - Scripts that generate and print _func.pxi or _stream.pxi to stdout. Gets information - about all functions from the C headers of the installed TA-Lib. + Scripts that generate and print _func.pxi, _stream.pxi or stream.pyi to stdout. + Gets information about all functions from the C headers of the installed TA-Lib. If you are interested in developing new indicator functions or whatnot on the underlying TA-Lib, you must install TA-Lib from git. diff --git a/MANIFEST.in b/MANIFEST.in index 44b36dba8..ab5636483 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -5,4 +5,5 @@ include talib/*.c include talib/*.pyx include talib/*.pxd include talib/*.pxi +include talib/*.pyi include tests/*.py diff --git a/Makefile b/Makefile index d86ef416a..431ecb497 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,13 @@ talib/_func.pxi: tools/generate_func.py talib/_stream.pxi: tools/generate_stream.py python3 tools/generate_stream.py > talib/_stream.pxi -generate: talib/_func.pxi talib/_stream.pxi +talib/stream.pyi: tools/generate_stream.py + python3 tools/generate_stream.py --stub > talib/stream.pyi + +talib/abstract.pyi: tools/generate_abstract_stub.py + python3 tools/generate_abstract_stub.py > talib/abstract.pyi + +generate: talib/_func.pxi talib/_stream.pxi talib/stream.pyi talib/abstract.pyi cython: cython talib/_ta_lib.pyx diff --git a/README.md b/README.md index f0aa6bbab..cdf29dee6 100644 --- a/README.md +++ b/README.md @@ -534,27 +534,82 @@ slowk, slowd = STOCH(inputs, 5, 3, 0, 3, 0, prices=['high', 'low', 'open']) ## Streaming API -An experimental Streaming API was added that allows users to compute the latest -value of an indicator. This can be faster than using the Function API, for -example in an application that receives streaming data, and wants to know just -the most recent updated indicator value. +The Streaming API keeps a handle per indicator instead of recomputing from the +whole array. Opening one costs a pass over the history; every bar after that is +O(1), and each value it produces is identical to the one the Function API +reports for that bar. ```python import talib from talib import stream -close = np.random.random(100) - -# the Function API +# the Function API: the whole series, from the whole array output = talib.SMA(close) -# the Streaming API -latest = stream.SMA(close) +# the Streaming API: a handle, positioned at the end of the history +s = stream.SMA(close) +assert s.value == output[-1] -# the latest value is the same as the last output value -assert (output[-1] - latest) < 0.00001 +for price in feed: + latest = s.update(price) # one closed bar in, its value out + +s.peek(forming) # what update would return, committing nothing +fork = s.copy() # an independent handle at the same bar +``` + +`stream.SMA` takes exactly the arguments `talib.SMA` takes. A single-output +function answers with a `float` (an `int` where the Function API returns an +integer array); a multi-output one with a named tuple that still unpacks like +the Function API's tuple: + +```python +m = stream.MACD(close) +macd, macdsignal, macdhist = m.update(price) +m.value.macdhist ``` +Opening needs at least `lookback + 1` bars, which `abstract` knows, and a little +more where a function's seeding does -- so rather than computing the number, +treat a short history as "not yet": + +```python +from talib import abstract + +need = abstract.Function('RSI', timeperiod=14).lookback + 1 # 15, usually enough + +try: + s = stream.RSI(history, timeperiod=14) +except talib.InsufficientHistory: + ... # collect more bars +``` + +Leading bars that are NaN in any input are not history. They are skipped, as the +Function API skips them, and do not count toward the warm-up. A NaN or an +infinity anywhere else in the history is undefined behaviour in TA-Lib C, and +for a few window functions a handle and the Function API do then disagree. + +A bar that is not finite is likewise rejected: `update` raises and the handle is +left exactly as it was, neither its value nor its range moved. For a bar you +mean to skip rather than re-feed, say so with `advance()`, or two handles on one +feed drift a bar apart. + +If you want the series over the history as well, one pass gives both: + +```python +s, rsi = stream.RSI.open_and_fill(history, timeperiod=14) # rsi == talib.RSI(history) +``` + +A handle also reports the range it has an output for, in the input series' +coordinates, and can be told about a bar it was not fed: + +```python +s.out_range # (begidx, nbelement), as the Function API's output +s.advance() # count a skipped bar: the range moves, the value holds +``` + +A handle points into the TA-Lib C library, so it cannot be pickled or shared +with another process. Keep the history and re-open instead. + ## Supported Indicators and Functions 📋 We can show all the TA functions supported by TA-Lib, either as a `list` or diff --git a/pyproject.toml b/pyproject.toml index 37df184da..44b5009c2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,4 +40,4 @@ requires-python = '>=3.9' [tool.setuptools] packages = ["talib"] -package-data = {"talib" = ["_ta_lib.pyi", "py.typed", "abstract.pyi"]} +package-data = {"talib" = ["_ta_lib.pyi", "py.typed", "abstract.pyi", "stream.pyi"]} diff --git a/talib/__init__.py b/talib/__init__.py index f47b44ca6..11dcefaee 100644 --- a/talib/__init__.py +++ b/talib/__init__.py @@ -79,12 +79,6 @@ def wrapper(*args, **kwds): result = func(*_args, **_kwds) - # check to see if we got a streaming result - first_result = result[0] if isinstance(result, tuple) else result - is_streaming_fn_result = not hasattr(first_result, '__len__') - if is_streaming_fn_result: - return result - # Series was passed in, Series gets out if use_pl: if isinstance(result, tuple): @@ -116,6 +110,7 @@ def wrapper(*args, **kwds): _ta_get_unstable_period as get_unstable_period, _ta_set_compatibility as set_compatibility, _ta_get_compatibility as get_compatibility, + InsufficientHistory, __TA_FUNCTION_NAMES__ ) except ImportError as error: @@ -141,12 +136,7 @@ def wrapper(*args, **kwds): setattr(func, func_name, wrapped_func) globals()[func_name] = wrapped_func -stream_func_names = ['stream_%s' % fname for fname in __TA_FUNCTION_NAMES__] -stream = __import__("stream", globals(), locals(), stream_func_names, level=1) -for func_name, stream_func_name in zip(__TA_FUNCTION_NAMES__, stream_func_names): - wrapped_func = _wrapper(getattr(stream, func_name)) - setattr(stream, func_name, wrapped_func) - globals()[stream_func_name] = wrapped_func +from . import stream __version__ = '0.8.0' @@ -400,4 +390,4 @@ def get_function_groups(): """ return __function_groups__.copy() -__all__ = ['get_functions', 'get_function_groups'] + __TA_FUNCTION_NAMES__ + ["stream_%s" % name for name in __TA_FUNCTION_NAMES__] +__all__ = ['get_functions', 'get_function_groups', 'InsufficientHistory', 'stream'] + __TA_FUNCTION_NAMES__ diff --git a/talib/_common.pxi b/talib/_common.pxi index 057d98013..4f0d4adbb 100644 --- a/talib/_common.pxi +++ b/talib/_common.pxi @@ -5,6 +5,13 @@ from _ta_lib cimport TA_RetCode, TA_FuncUnstId __ta_version__ = lib.TA_GetVersionString() + +class InsufficientHistory(Exception): + """Not enough history to open a stream (TA_INSUFFICIENT_HISTORY). + + Recoverable: collect more bars and try again.""" + + cpdef _ta_check_success(str function_name, TA_RetCode ret_code): if ret_code == 0: return True @@ -48,7 +55,8 @@ cpdef _ta_check_success(str function_name, TA_RetCode ret_code): description = 'Unknown Error (TA_UNKNOWN_ERR)' else: description = 'Unknown Error' - raise Exception('%s function failed with error code %s: %s' % ( + error = InsufficientHistory if ret_code == 17 else Exception + raise error('%s function failed with error code %s: %s' % ( function_name, ret_code, description)) def _ta_initialize(): diff --git a/talib/_stream.pxi b/talib/_stream.pxi index 988f27f2e..d96815336 100644 --- a/talib/_stream.pxi +++ b/talib/_stream.pxi @@ -1,14 +1,2547 @@ +cimport cython cimport numpy as np -from cython import boundscheck, wraparound +import numpy +from collections import namedtuple + cimport _ta_lib as lib -from _ta_lib cimport TA_RetCode -# NOTE: _ta_check_success, NaN are defined in common.pxi +from _ta_lib cimport TA_RetCode, TA_MAType, TA_BAD_PARAM +# NOTE: _ta_check_success and InsufficientHistory come from _common.pxi, +# check_array / make_*_array from _func.pxi, and __PANDAS_SERIES / +# __POLARS_SERIES from _abstract.pxi. np.import_array() # Initialize the NumPy C API -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AC( np.ndarray high not None , np.ndarray low not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): +cdef extern from "ta-lib/ta_func.h": + + ctypedef struct TA_AC_Stream: + pass + TA_RetCode TA_AC_OpenAndFill(TA_AC_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_AC_Open(TA_AC_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, double* outReal) + TA_RetCode TA_AC_Update(TA_AC_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_AC_Peek(const TA_AC_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_AC_Value(const TA_AC_Stream* stream, double* outReal) + TA_RetCode TA_AC_Clone(const TA_AC_Stream* stream, TA_AC_Stream** clone) + TA_RetCode TA_AC_Close(TA_AC_Stream* stream) + TA_RetCode TA_AC_OutRange(const TA_AC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_AC_Advance(TA_AC_Stream* stream) + + ctypedef struct TA_ACCBANDS_Stream: + pass + TA_RetCode TA_ACCBANDS_OpenAndFill(TA_ACCBANDS_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_ACCBANDS_Open(TA_ACCBANDS_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_ACCBANDS_Update(TA_ACCBANDS_Stream* stream, double inHigh, double inLow, double inClose, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_ACCBANDS_Peek(const TA_ACCBANDS_Stream* stream, double inHigh, double inLow, double inClose, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_ACCBANDS_Value(const TA_ACCBANDS_Stream* stream, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_ACCBANDS_Clone(const TA_ACCBANDS_Stream* stream, TA_ACCBANDS_Stream** clone) + TA_RetCode TA_ACCBANDS_Close(TA_ACCBANDS_Stream* stream) + TA_RetCode TA_ACCBANDS_OutRange(const TA_ACCBANDS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ACCBANDS_Advance(TA_ACCBANDS_Stream* stream) + + ctypedef struct TA_ACOS_Stream: + pass + TA_RetCode TA_ACOS_OpenAndFill(TA_ACOS_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ACOS_Open(TA_ACOS_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_ACOS_Update(TA_ACOS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ACOS_Peek(const TA_ACOS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ACOS_Value(const TA_ACOS_Stream* stream, double* outReal) + TA_RetCode TA_ACOS_Clone(const TA_ACOS_Stream* stream, TA_ACOS_Stream** clone) + TA_RetCode TA_ACOS_Close(TA_ACOS_Stream* stream) + TA_RetCode TA_ACOS_OutRange(const TA_ACOS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ACOS_Advance(TA_ACOS_Stream* stream) + + ctypedef struct TA_AD_Stream: + pass + TA_RetCode TA_AD_OpenAndFill(TA_AD_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_AD_Open(TA_AD_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, double* outReal) + TA_RetCode TA_AD_Update(TA_AD_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_AD_Peek(const TA_AD_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_AD_Value(const TA_AD_Stream* stream, double* outReal) + TA_RetCode TA_AD_Clone(const TA_AD_Stream* stream, TA_AD_Stream** clone) + TA_RetCode TA_AD_Close(TA_AD_Stream* stream) + TA_RetCode TA_AD_OutRange(const TA_AD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_AD_Advance(TA_AD_Stream* stream) + + ctypedef struct TA_ADD_Stream: + pass + TA_RetCode TA_ADD_OpenAndFill(TA_ADD_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ADD_Open(TA_ADD_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, double* outReal) + TA_RetCode TA_ADD_Update(TA_ADD_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_ADD_Peek(const TA_ADD_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_ADD_Value(const TA_ADD_Stream* stream, double* outReal) + TA_RetCode TA_ADD_Clone(const TA_ADD_Stream* stream, TA_ADD_Stream** clone) + TA_RetCode TA_ADD_Close(TA_ADD_Stream* stream) + TA_RetCode TA_ADD_OutRange(const TA_ADD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ADD_Advance(TA_ADD_Stream* stream) + + ctypedef struct TA_ADOSC_Stream: + pass + TA_RetCode TA_ADOSC_OpenAndFill(TA_ADOSC_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInFastPeriod, int optInSlowPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ADOSC_Open(TA_ADOSC_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInFastPeriod, int optInSlowPeriod, double* outReal) + TA_RetCode TA_ADOSC_Update(TA_ADOSC_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_ADOSC_Peek(const TA_ADOSC_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_ADOSC_Value(const TA_ADOSC_Stream* stream, double* outReal) + TA_RetCode TA_ADOSC_Clone(const TA_ADOSC_Stream* stream, TA_ADOSC_Stream** clone) + TA_RetCode TA_ADOSC_Close(TA_ADOSC_Stream* stream) + TA_RetCode TA_ADOSC_OutRange(const TA_ADOSC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ADOSC_Advance(TA_ADOSC_Stream* stream) + + ctypedef struct TA_ADR_Stream: + pass + TA_RetCode TA_ADR_OpenAndFill(TA_ADR_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ADR_Open(TA_ADR_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ADR_Update(TA_ADR_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_ADR_Peek(const TA_ADR_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_ADR_Value(const TA_ADR_Stream* stream, double* outReal) + TA_RetCode TA_ADR_Clone(const TA_ADR_Stream* stream, TA_ADR_Stream** clone) + TA_RetCode TA_ADR_Close(TA_ADR_Stream* stream) + TA_RetCode TA_ADR_OutRange(const TA_ADR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ADR_Advance(TA_ADR_Stream* stream) + + ctypedef struct TA_ADX_Stream: + pass + TA_RetCode TA_ADX_OpenAndFill(TA_ADX_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ADX_Open(TA_ADX_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ADX_Update(TA_ADX_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ADX_Peek(const TA_ADX_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ADX_Value(const TA_ADX_Stream* stream, double* outReal) + TA_RetCode TA_ADX_Clone(const TA_ADX_Stream* stream, TA_ADX_Stream** clone) + TA_RetCode TA_ADX_Close(TA_ADX_Stream* stream) + TA_RetCode TA_ADX_OutRange(const TA_ADX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ADX_Advance(TA_ADX_Stream* stream) + + ctypedef struct TA_ADXR_Stream: + pass + TA_RetCode TA_ADXR_OpenAndFill(TA_ADXR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ADXR_Open(TA_ADXR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ADXR_Update(TA_ADXR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ADXR_Peek(const TA_ADXR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ADXR_Value(const TA_ADXR_Stream* stream, double* outReal) + TA_RetCode TA_ADXR_Clone(const TA_ADXR_Stream* stream, TA_ADXR_Stream** clone) + TA_RetCode TA_ADXR_Close(TA_ADXR_Stream* stream) + TA_RetCode TA_ADXR_OutRange(const TA_ADXR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ADXR_Advance(TA_ADXR_Stream* stream) + + ctypedef struct TA_AO_Stream: + pass + TA_RetCode TA_AO_OpenAndFill(TA_AO_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInFastPeriod, int optInSlowPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_AO_Open(TA_AO_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInFastPeriod, int optInSlowPeriod, double* outReal) + TA_RetCode TA_AO_Update(TA_AO_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_AO_Peek(const TA_AO_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_AO_Value(const TA_AO_Stream* stream, double* outReal) + TA_RetCode TA_AO_Clone(const TA_AO_Stream* stream, TA_AO_Stream** clone) + TA_RetCode TA_AO_Close(TA_AO_Stream* stream) + TA_RetCode TA_AO_OutRange(const TA_AO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_AO_Advance(TA_AO_Stream* stream) + + ctypedef struct TA_APO_Stream: + pass + TA_RetCode TA_APO_OpenAndFill(TA_APO_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_APO_Open(TA_APO_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, double* outReal) + TA_RetCode TA_APO_Update(TA_APO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_APO_Peek(const TA_APO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_APO_Value(const TA_APO_Stream* stream, double* outReal) + TA_RetCode TA_APO_Clone(const TA_APO_Stream* stream, TA_APO_Stream** clone) + TA_RetCode TA_APO_Close(TA_APO_Stream* stream) + TA_RetCode TA_APO_OutRange(const TA_APO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_APO_Advance(TA_APO_Stream* stream) + + ctypedef struct TA_AROON_Stream: + pass + TA_RetCode TA_AROON_OpenAndFill(TA_AROON_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outAroonDown, double* outAroonUp) + TA_RetCode TA_AROON_Open(TA_AROON_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outAroonDown, double* outAroonUp) + TA_RetCode TA_AROON_Update(TA_AROON_Stream* stream, double inHigh, double inLow, double* outAroonDown, double* outAroonUp) + TA_RetCode TA_AROON_Peek(const TA_AROON_Stream* stream, double inHigh, double inLow, double* outAroonDown, double* outAroonUp) + TA_RetCode TA_AROON_Value(const TA_AROON_Stream* stream, double* outAroonDown, double* outAroonUp) + TA_RetCode TA_AROON_Clone(const TA_AROON_Stream* stream, TA_AROON_Stream** clone) + TA_RetCode TA_AROON_Close(TA_AROON_Stream* stream) + TA_RetCode TA_AROON_OutRange(const TA_AROON_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_AROON_Advance(TA_AROON_Stream* stream) + + ctypedef struct TA_AROONOSC_Stream: + pass + TA_RetCode TA_AROONOSC_OpenAndFill(TA_AROONOSC_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_AROONOSC_Open(TA_AROONOSC_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_AROONOSC_Update(TA_AROONOSC_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_AROONOSC_Peek(const TA_AROONOSC_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_AROONOSC_Value(const TA_AROONOSC_Stream* stream, double* outReal) + TA_RetCode TA_AROONOSC_Clone(const TA_AROONOSC_Stream* stream, TA_AROONOSC_Stream** clone) + TA_RetCode TA_AROONOSC_Close(TA_AROONOSC_Stream* stream) + TA_RetCode TA_AROONOSC_OutRange(const TA_AROONOSC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_AROONOSC_Advance(TA_AROONOSC_Stream* stream) + + ctypedef struct TA_ASIN_Stream: + pass + TA_RetCode TA_ASIN_OpenAndFill(TA_ASIN_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ASIN_Open(TA_ASIN_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_ASIN_Update(TA_ASIN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ASIN_Peek(const TA_ASIN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ASIN_Value(const TA_ASIN_Stream* stream, double* outReal) + TA_RetCode TA_ASIN_Clone(const TA_ASIN_Stream* stream, TA_ASIN_Stream** clone) + TA_RetCode TA_ASIN_Close(TA_ASIN_Stream* stream) + TA_RetCode TA_ASIN_OutRange(const TA_ASIN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ASIN_Advance(TA_ASIN_Stream* stream) + + ctypedef struct TA_ATAN_Stream: + pass + TA_RetCode TA_ATAN_OpenAndFill(TA_ATAN_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ATAN_Open(TA_ATAN_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_ATAN_Update(TA_ATAN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ATAN_Peek(const TA_ATAN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ATAN_Value(const TA_ATAN_Stream* stream, double* outReal) + TA_RetCode TA_ATAN_Clone(const TA_ATAN_Stream* stream, TA_ATAN_Stream** clone) + TA_RetCode TA_ATAN_Close(TA_ATAN_Stream* stream) + TA_RetCode TA_ATAN_OutRange(const TA_ATAN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ATAN_Advance(TA_ATAN_Stream* stream) + + ctypedef struct TA_ATR_Stream: + pass + TA_RetCode TA_ATR_OpenAndFill(TA_ATR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ATR_Open(TA_ATR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ATR_Update(TA_ATR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ATR_Peek(const TA_ATR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ATR_Value(const TA_ATR_Stream* stream, double* outReal) + TA_RetCode TA_ATR_Clone(const TA_ATR_Stream* stream, TA_ATR_Stream** clone) + TA_RetCode TA_ATR_Close(TA_ATR_Stream* stream) + TA_RetCode TA_ATR_OutRange(const TA_ATR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ATR_Advance(TA_ATR_Stream* stream) + + ctypedef struct TA_AVGDEV_Stream: + pass + TA_RetCode TA_AVGDEV_OpenAndFill(TA_AVGDEV_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_AVGDEV_Open(TA_AVGDEV_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_AVGDEV_Update(TA_AVGDEV_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_AVGDEV_Peek(const TA_AVGDEV_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_AVGDEV_Value(const TA_AVGDEV_Stream* stream, double* outReal) + TA_RetCode TA_AVGDEV_Clone(const TA_AVGDEV_Stream* stream, TA_AVGDEV_Stream** clone) + TA_RetCode TA_AVGDEV_Close(TA_AVGDEV_Stream* stream) + TA_RetCode TA_AVGDEV_OutRange(const TA_AVGDEV_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_AVGDEV_Advance(TA_AVGDEV_Stream* stream) + + ctypedef struct TA_AVGPRICE_Stream: + pass + TA_RetCode TA_AVGPRICE_OpenAndFill(TA_AVGPRICE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_AVGPRICE_Open(TA_AVGPRICE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outReal) + TA_RetCode TA_AVGPRICE_Update(TA_AVGPRICE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_AVGPRICE_Peek(const TA_AVGPRICE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_AVGPRICE_Value(const TA_AVGPRICE_Stream* stream, double* outReal) + TA_RetCode TA_AVGPRICE_Clone(const TA_AVGPRICE_Stream* stream, TA_AVGPRICE_Stream** clone) + TA_RetCode TA_AVGPRICE_Close(TA_AVGPRICE_Stream* stream) + TA_RetCode TA_AVGPRICE_OutRange(const TA_AVGPRICE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_AVGPRICE_Advance(TA_AVGPRICE_Stream* stream) + + ctypedef struct TA_BBANDS_Stream: + pass + TA_RetCode TA_BBANDS_OpenAndFill(TA_BBANDS_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_BBANDS_Open(TA_BBANDS_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDevUp, double optInNbDevDn, TA_MAType optInMAType, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_BBANDS_Update(TA_BBANDS_Stream* stream, double inReal, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_BBANDS_Peek(const TA_BBANDS_Stream* stream, double inReal, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_BBANDS_Value(const TA_BBANDS_Stream* stream, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_BBANDS_Clone(const TA_BBANDS_Stream* stream, TA_BBANDS_Stream** clone) + TA_RetCode TA_BBANDS_Close(TA_BBANDS_Stream* stream) + TA_RetCode TA_BBANDS_OutRange(const TA_BBANDS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_BBANDS_Advance(TA_BBANDS_Stream* stream) + + ctypedef struct TA_BETA_Stream: + pass + TA_RetCode TA_BETA_OpenAndFill(TA_BETA_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_BETA_Open(TA_BETA_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_BETA_Update(TA_BETA_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_BETA_Peek(const TA_BETA_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_BETA_Value(const TA_BETA_Stream* stream, double* outReal) + TA_RetCode TA_BETA_Clone(const TA_BETA_Stream* stream, TA_BETA_Stream** clone) + TA_RetCode TA_BETA_Close(TA_BETA_Stream* stream) + TA_RetCode TA_BETA_OutRange(const TA_BETA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_BETA_Advance(TA_BETA_Stream* stream) + + ctypedef struct TA_BOP_Stream: + pass + TA_RetCode TA_BOP_OpenAndFill(TA_BOP_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_BOP_Open(TA_BOP_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outReal) + TA_RetCode TA_BOP_Update(TA_BOP_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_BOP_Peek(const TA_BOP_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_BOP_Value(const TA_BOP_Stream* stream, double* outReal) + TA_RetCode TA_BOP_Clone(const TA_BOP_Stream* stream, TA_BOP_Stream** clone) + TA_RetCode TA_BOP_Close(TA_BOP_Stream* stream) + TA_RetCode TA_BOP_OutRange(const TA_BOP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_BOP_Advance(TA_BOP_Stream* stream) + + ctypedef struct TA_CCI_Stream: + pass + TA_RetCode TA_CCI_OpenAndFill(TA_CCI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CCI_Open(TA_CCI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CCI_Update(TA_CCI_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_CCI_Peek(const TA_CCI_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_CCI_Value(const TA_CCI_Stream* stream, double* outReal) + TA_RetCode TA_CCI_Clone(const TA_CCI_Stream* stream, TA_CCI_Stream** clone) + TA_RetCode TA_CCI_Close(TA_CCI_Stream* stream) + TA_RetCode TA_CCI_OutRange(const TA_CCI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CCI_Advance(TA_CCI_Stream* stream) + + ctypedef struct TA_CDL2CROWS_Stream: + pass + TA_RetCode TA_CDL2CROWS_OpenAndFill(TA_CDL2CROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDL2CROWS_Open(TA_CDL2CROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDL2CROWS_Update(TA_CDL2CROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL2CROWS_Peek(const TA_CDL2CROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL2CROWS_Value(const TA_CDL2CROWS_Stream* stream, int* outInteger) + TA_RetCode TA_CDL2CROWS_Clone(const TA_CDL2CROWS_Stream* stream, TA_CDL2CROWS_Stream** clone) + TA_RetCode TA_CDL2CROWS_Close(TA_CDL2CROWS_Stream* stream) + TA_RetCode TA_CDL2CROWS_OutRange(const TA_CDL2CROWS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDL2CROWS_Advance(TA_CDL2CROWS_Stream* stream) + + ctypedef struct TA_CDL3BLACKCROWS_Stream: + pass + TA_RetCode TA_CDL3BLACKCROWS_OpenAndFill(TA_CDL3BLACKCROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDL3BLACKCROWS_Open(TA_CDL3BLACKCROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDL3BLACKCROWS_Update(TA_CDL3BLACKCROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3BLACKCROWS_Peek(const TA_CDL3BLACKCROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3BLACKCROWS_Value(const TA_CDL3BLACKCROWS_Stream* stream, int* outInteger) + TA_RetCode TA_CDL3BLACKCROWS_Clone(const TA_CDL3BLACKCROWS_Stream* stream, TA_CDL3BLACKCROWS_Stream** clone) + TA_RetCode TA_CDL3BLACKCROWS_Close(TA_CDL3BLACKCROWS_Stream* stream) + TA_RetCode TA_CDL3BLACKCROWS_OutRange(const TA_CDL3BLACKCROWS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDL3BLACKCROWS_Advance(TA_CDL3BLACKCROWS_Stream* stream) + + ctypedef struct TA_CDL3INSIDE_Stream: + pass + TA_RetCode TA_CDL3INSIDE_OpenAndFill(TA_CDL3INSIDE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDL3INSIDE_Open(TA_CDL3INSIDE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDL3INSIDE_Update(TA_CDL3INSIDE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3INSIDE_Peek(const TA_CDL3INSIDE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3INSIDE_Value(const TA_CDL3INSIDE_Stream* stream, int* outInteger) + TA_RetCode TA_CDL3INSIDE_Clone(const TA_CDL3INSIDE_Stream* stream, TA_CDL3INSIDE_Stream** clone) + TA_RetCode TA_CDL3INSIDE_Close(TA_CDL3INSIDE_Stream* stream) + TA_RetCode TA_CDL3INSIDE_OutRange(const TA_CDL3INSIDE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDL3INSIDE_Advance(TA_CDL3INSIDE_Stream* stream) + + ctypedef struct TA_CDL3LINESTRIKE_Stream: + pass + TA_RetCode TA_CDL3LINESTRIKE_OpenAndFill(TA_CDL3LINESTRIKE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDL3LINESTRIKE_Open(TA_CDL3LINESTRIKE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDL3LINESTRIKE_Update(TA_CDL3LINESTRIKE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3LINESTRIKE_Peek(const TA_CDL3LINESTRIKE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3LINESTRIKE_Value(const TA_CDL3LINESTRIKE_Stream* stream, int* outInteger) + TA_RetCode TA_CDL3LINESTRIKE_Clone(const TA_CDL3LINESTRIKE_Stream* stream, TA_CDL3LINESTRIKE_Stream** clone) + TA_RetCode TA_CDL3LINESTRIKE_Close(TA_CDL3LINESTRIKE_Stream* stream) + TA_RetCode TA_CDL3LINESTRIKE_OutRange(const TA_CDL3LINESTRIKE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDL3LINESTRIKE_Advance(TA_CDL3LINESTRIKE_Stream* stream) + + ctypedef struct TA_CDL3OUTSIDE_Stream: + pass + TA_RetCode TA_CDL3OUTSIDE_OpenAndFill(TA_CDL3OUTSIDE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDL3OUTSIDE_Open(TA_CDL3OUTSIDE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDL3OUTSIDE_Update(TA_CDL3OUTSIDE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3OUTSIDE_Peek(const TA_CDL3OUTSIDE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3OUTSIDE_Value(const TA_CDL3OUTSIDE_Stream* stream, int* outInteger) + TA_RetCode TA_CDL3OUTSIDE_Clone(const TA_CDL3OUTSIDE_Stream* stream, TA_CDL3OUTSIDE_Stream** clone) + TA_RetCode TA_CDL3OUTSIDE_Close(TA_CDL3OUTSIDE_Stream* stream) + TA_RetCode TA_CDL3OUTSIDE_OutRange(const TA_CDL3OUTSIDE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDL3OUTSIDE_Advance(TA_CDL3OUTSIDE_Stream* stream) + + ctypedef struct TA_CDL3STARSINSOUTH_Stream: + pass + TA_RetCode TA_CDL3STARSINSOUTH_OpenAndFill(TA_CDL3STARSINSOUTH_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDL3STARSINSOUTH_Open(TA_CDL3STARSINSOUTH_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDL3STARSINSOUTH_Update(TA_CDL3STARSINSOUTH_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3STARSINSOUTH_Peek(const TA_CDL3STARSINSOUTH_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3STARSINSOUTH_Value(const TA_CDL3STARSINSOUTH_Stream* stream, int* outInteger) + TA_RetCode TA_CDL3STARSINSOUTH_Clone(const TA_CDL3STARSINSOUTH_Stream* stream, TA_CDL3STARSINSOUTH_Stream** clone) + TA_RetCode TA_CDL3STARSINSOUTH_Close(TA_CDL3STARSINSOUTH_Stream* stream) + TA_RetCode TA_CDL3STARSINSOUTH_OutRange(const TA_CDL3STARSINSOUTH_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDL3STARSINSOUTH_Advance(TA_CDL3STARSINSOUTH_Stream* stream) + + ctypedef struct TA_CDL3WHITESOLDIERS_Stream: + pass + TA_RetCode TA_CDL3WHITESOLDIERS_OpenAndFill(TA_CDL3WHITESOLDIERS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDL3WHITESOLDIERS_Open(TA_CDL3WHITESOLDIERS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDL3WHITESOLDIERS_Update(TA_CDL3WHITESOLDIERS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3WHITESOLDIERS_Peek(const TA_CDL3WHITESOLDIERS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDL3WHITESOLDIERS_Value(const TA_CDL3WHITESOLDIERS_Stream* stream, int* outInteger) + TA_RetCode TA_CDL3WHITESOLDIERS_Clone(const TA_CDL3WHITESOLDIERS_Stream* stream, TA_CDL3WHITESOLDIERS_Stream** clone) + TA_RetCode TA_CDL3WHITESOLDIERS_Close(TA_CDL3WHITESOLDIERS_Stream* stream) + TA_RetCode TA_CDL3WHITESOLDIERS_OutRange(const TA_CDL3WHITESOLDIERS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDL3WHITESOLDIERS_Advance(TA_CDL3WHITESOLDIERS_Stream* stream) + + ctypedef struct TA_CDLABANDONEDBABY_Stream: + pass + TA_RetCode TA_CDLABANDONEDBABY_OpenAndFill(TA_CDLABANDONEDBABY_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLABANDONEDBABY_Open(TA_CDLABANDONEDBABY_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outInteger) + TA_RetCode TA_CDLABANDONEDBABY_Update(TA_CDLABANDONEDBABY_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLABANDONEDBABY_Peek(const TA_CDLABANDONEDBABY_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLABANDONEDBABY_Value(const TA_CDLABANDONEDBABY_Stream* stream, int* outInteger) + TA_RetCode TA_CDLABANDONEDBABY_Clone(const TA_CDLABANDONEDBABY_Stream* stream, TA_CDLABANDONEDBABY_Stream** clone) + TA_RetCode TA_CDLABANDONEDBABY_Close(TA_CDLABANDONEDBABY_Stream* stream) + TA_RetCode TA_CDLABANDONEDBABY_OutRange(const TA_CDLABANDONEDBABY_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLABANDONEDBABY_Advance(TA_CDLABANDONEDBABY_Stream* stream) + + ctypedef struct TA_CDLADVANCEBLOCK_Stream: + pass + TA_RetCode TA_CDLADVANCEBLOCK_OpenAndFill(TA_CDLADVANCEBLOCK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLADVANCEBLOCK_Open(TA_CDLADVANCEBLOCK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLADVANCEBLOCK_Update(TA_CDLADVANCEBLOCK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLADVANCEBLOCK_Peek(const TA_CDLADVANCEBLOCK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLADVANCEBLOCK_Value(const TA_CDLADVANCEBLOCK_Stream* stream, int* outInteger) + TA_RetCode TA_CDLADVANCEBLOCK_Clone(const TA_CDLADVANCEBLOCK_Stream* stream, TA_CDLADVANCEBLOCK_Stream** clone) + TA_RetCode TA_CDLADVANCEBLOCK_Close(TA_CDLADVANCEBLOCK_Stream* stream) + TA_RetCode TA_CDLADVANCEBLOCK_OutRange(const TA_CDLADVANCEBLOCK_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLADVANCEBLOCK_Advance(TA_CDLADVANCEBLOCK_Stream* stream) + + ctypedef struct TA_CDLBELTHOLD_Stream: + pass + TA_RetCode TA_CDLBELTHOLD_OpenAndFill(TA_CDLBELTHOLD_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLBELTHOLD_Open(TA_CDLBELTHOLD_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLBELTHOLD_Update(TA_CDLBELTHOLD_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLBELTHOLD_Peek(const TA_CDLBELTHOLD_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLBELTHOLD_Value(const TA_CDLBELTHOLD_Stream* stream, int* outInteger) + TA_RetCode TA_CDLBELTHOLD_Clone(const TA_CDLBELTHOLD_Stream* stream, TA_CDLBELTHOLD_Stream** clone) + TA_RetCode TA_CDLBELTHOLD_Close(TA_CDLBELTHOLD_Stream* stream) + TA_RetCode TA_CDLBELTHOLD_OutRange(const TA_CDLBELTHOLD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLBELTHOLD_Advance(TA_CDLBELTHOLD_Stream* stream) + + ctypedef struct TA_CDLBREAKAWAY_Stream: + pass + TA_RetCode TA_CDLBREAKAWAY_OpenAndFill(TA_CDLBREAKAWAY_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLBREAKAWAY_Open(TA_CDLBREAKAWAY_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLBREAKAWAY_Update(TA_CDLBREAKAWAY_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLBREAKAWAY_Peek(const TA_CDLBREAKAWAY_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLBREAKAWAY_Value(const TA_CDLBREAKAWAY_Stream* stream, int* outInteger) + TA_RetCode TA_CDLBREAKAWAY_Clone(const TA_CDLBREAKAWAY_Stream* stream, TA_CDLBREAKAWAY_Stream** clone) + TA_RetCode TA_CDLBREAKAWAY_Close(TA_CDLBREAKAWAY_Stream* stream) + TA_RetCode TA_CDLBREAKAWAY_OutRange(const TA_CDLBREAKAWAY_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLBREAKAWAY_Advance(TA_CDLBREAKAWAY_Stream* stream) + + ctypedef struct TA_CDLCLOSINGMARUBOZU_Stream: + pass + TA_RetCode TA_CDLCLOSINGMARUBOZU_OpenAndFill(TA_CDLCLOSINGMARUBOZU_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLCLOSINGMARUBOZU_Open(TA_CDLCLOSINGMARUBOZU_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLCLOSINGMARUBOZU_Update(TA_CDLCLOSINGMARUBOZU_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLCLOSINGMARUBOZU_Peek(const TA_CDLCLOSINGMARUBOZU_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLCLOSINGMARUBOZU_Value(const TA_CDLCLOSINGMARUBOZU_Stream* stream, int* outInteger) + TA_RetCode TA_CDLCLOSINGMARUBOZU_Clone(const TA_CDLCLOSINGMARUBOZU_Stream* stream, TA_CDLCLOSINGMARUBOZU_Stream** clone) + TA_RetCode TA_CDLCLOSINGMARUBOZU_Close(TA_CDLCLOSINGMARUBOZU_Stream* stream) + TA_RetCode TA_CDLCLOSINGMARUBOZU_OutRange(const TA_CDLCLOSINGMARUBOZU_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLCLOSINGMARUBOZU_Advance(TA_CDLCLOSINGMARUBOZU_Stream* stream) + + ctypedef struct TA_CDLCONCEALBABYSWALL_Stream: + pass + TA_RetCode TA_CDLCONCEALBABYSWALL_OpenAndFill(TA_CDLCONCEALBABYSWALL_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLCONCEALBABYSWALL_Open(TA_CDLCONCEALBABYSWALL_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLCONCEALBABYSWALL_Update(TA_CDLCONCEALBABYSWALL_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLCONCEALBABYSWALL_Peek(const TA_CDLCONCEALBABYSWALL_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLCONCEALBABYSWALL_Value(const TA_CDLCONCEALBABYSWALL_Stream* stream, int* outInteger) + TA_RetCode TA_CDLCONCEALBABYSWALL_Clone(const TA_CDLCONCEALBABYSWALL_Stream* stream, TA_CDLCONCEALBABYSWALL_Stream** clone) + TA_RetCode TA_CDLCONCEALBABYSWALL_Close(TA_CDLCONCEALBABYSWALL_Stream* stream) + TA_RetCode TA_CDLCONCEALBABYSWALL_OutRange(const TA_CDLCONCEALBABYSWALL_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLCONCEALBABYSWALL_Advance(TA_CDLCONCEALBABYSWALL_Stream* stream) + + ctypedef struct TA_CDLCOUNTERATTACK_Stream: + pass + TA_RetCode TA_CDLCOUNTERATTACK_OpenAndFill(TA_CDLCOUNTERATTACK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLCOUNTERATTACK_Open(TA_CDLCOUNTERATTACK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLCOUNTERATTACK_Update(TA_CDLCOUNTERATTACK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLCOUNTERATTACK_Peek(const TA_CDLCOUNTERATTACK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLCOUNTERATTACK_Value(const TA_CDLCOUNTERATTACK_Stream* stream, int* outInteger) + TA_RetCode TA_CDLCOUNTERATTACK_Clone(const TA_CDLCOUNTERATTACK_Stream* stream, TA_CDLCOUNTERATTACK_Stream** clone) + TA_RetCode TA_CDLCOUNTERATTACK_Close(TA_CDLCOUNTERATTACK_Stream* stream) + TA_RetCode TA_CDLCOUNTERATTACK_OutRange(const TA_CDLCOUNTERATTACK_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLCOUNTERATTACK_Advance(TA_CDLCOUNTERATTACK_Stream* stream) + + ctypedef struct TA_CDLDARKCLOUDCOVER_Stream: + pass + TA_RetCode TA_CDLDARKCLOUDCOVER_OpenAndFill(TA_CDLDARKCLOUDCOVER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLDARKCLOUDCOVER_Open(TA_CDLDARKCLOUDCOVER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outInteger) + TA_RetCode TA_CDLDARKCLOUDCOVER_Update(TA_CDLDARKCLOUDCOVER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDARKCLOUDCOVER_Peek(const TA_CDLDARKCLOUDCOVER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDARKCLOUDCOVER_Value(const TA_CDLDARKCLOUDCOVER_Stream* stream, int* outInteger) + TA_RetCode TA_CDLDARKCLOUDCOVER_Clone(const TA_CDLDARKCLOUDCOVER_Stream* stream, TA_CDLDARKCLOUDCOVER_Stream** clone) + TA_RetCode TA_CDLDARKCLOUDCOVER_Close(TA_CDLDARKCLOUDCOVER_Stream* stream) + TA_RetCode TA_CDLDARKCLOUDCOVER_OutRange(const TA_CDLDARKCLOUDCOVER_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLDARKCLOUDCOVER_Advance(TA_CDLDARKCLOUDCOVER_Stream* stream) + + ctypedef struct TA_CDLDOJI_Stream: + pass + TA_RetCode TA_CDLDOJI_OpenAndFill(TA_CDLDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLDOJI_Open(TA_CDLDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLDOJI_Update(TA_CDLDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDOJI_Peek(const TA_CDLDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDOJI_Value(const TA_CDLDOJI_Stream* stream, int* outInteger) + TA_RetCode TA_CDLDOJI_Clone(const TA_CDLDOJI_Stream* stream, TA_CDLDOJI_Stream** clone) + TA_RetCode TA_CDLDOJI_Close(TA_CDLDOJI_Stream* stream) + TA_RetCode TA_CDLDOJI_OutRange(const TA_CDLDOJI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLDOJI_Advance(TA_CDLDOJI_Stream* stream) + + ctypedef struct TA_CDLDOJISTAR_Stream: + pass + TA_RetCode TA_CDLDOJISTAR_OpenAndFill(TA_CDLDOJISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLDOJISTAR_Open(TA_CDLDOJISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLDOJISTAR_Update(TA_CDLDOJISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDOJISTAR_Peek(const TA_CDLDOJISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDOJISTAR_Value(const TA_CDLDOJISTAR_Stream* stream, int* outInteger) + TA_RetCode TA_CDLDOJISTAR_Clone(const TA_CDLDOJISTAR_Stream* stream, TA_CDLDOJISTAR_Stream** clone) + TA_RetCode TA_CDLDOJISTAR_Close(TA_CDLDOJISTAR_Stream* stream) + TA_RetCode TA_CDLDOJISTAR_OutRange(const TA_CDLDOJISTAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLDOJISTAR_Advance(TA_CDLDOJISTAR_Stream* stream) + + ctypedef struct TA_CDLDRAGONFLYDOJI_Stream: + pass + TA_RetCode TA_CDLDRAGONFLYDOJI_OpenAndFill(TA_CDLDRAGONFLYDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLDRAGONFLYDOJI_Open(TA_CDLDRAGONFLYDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLDRAGONFLYDOJI_Update(TA_CDLDRAGONFLYDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDRAGONFLYDOJI_Peek(const TA_CDLDRAGONFLYDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLDRAGONFLYDOJI_Value(const TA_CDLDRAGONFLYDOJI_Stream* stream, int* outInteger) + TA_RetCode TA_CDLDRAGONFLYDOJI_Clone(const TA_CDLDRAGONFLYDOJI_Stream* stream, TA_CDLDRAGONFLYDOJI_Stream** clone) + TA_RetCode TA_CDLDRAGONFLYDOJI_Close(TA_CDLDRAGONFLYDOJI_Stream* stream) + TA_RetCode TA_CDLDRAGONFLYDOJI_OutRange(const TA_CDLDRAGONFLYDOJI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLDRAGONFLYDOJI_Advance(TA_CDLDRAGONFLYDOJI_Stream* stream) + + ctypedef struct TA_CDLENGULFING_Stream: + pass + TA_RetCode TA_CDLENGULFING_OpenAndFill(TA_CDLENGULFING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLENGULFING_Open(TA_CDLENGULFING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLENGULFING_Update(TA_CDLENGULFING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLENGULFING_Peek(const TA_CDLENGULFING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLENGULFING_Value(const TA_CDLENGULFING_Stream* stream, int* outInteger) + TA_RetCode TA_CDLENGULFING_Clone(const TA_CDLENGULFING_Stream* stream, TA_CDLENGULFING_Stream** clone) + TA_RetCode TA_CDLENGULFING_Close(TA_CDLENGULFING_Stream* stream) + TA_RetCode TA_CDLENGULFING_OutRange(const TA_CDLENGULFING_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLENGULFING_Advance(TA_CDLENGULFING_Stream* stream) + + ctypedef struct TA_CDLEVENINGDOJISTAR_Stream: + pass + TA_RetCode TA_CDLEVENINGDOJISTAR_OpenAndFill(TA_CDLEVENINGDOJISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLEVENINGDOJISTAR_Open(TA_CDLEVENINGDOJISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outInteger) + TA_RetCode TA_CDLEVENINGDOJISTAR_Update(TA_CDLEVENINGDOJISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLEVENINGDOJISTAR_Peek(const TA_CDLEVENINGDOJISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLEVENINGDOJISTAR_Value(const TA_CDLEVENINGDOJISTAR_Stream* stream, int* outInteger) + TA_RetCode TA_CDLEVENINGDOJISTAR_Clone(const TA_CDLEVENINGDOJISTAR_Stream* stream, TA_CDLEVENINGDOJISTAR_Stream** clone) + TA_RetCode TA_CDLEVENINGDOJISTAR_Close(TA_CDLEVENINGDOJISTAR_Stream* stream) + TA_RetCode TA_CDLEVENINGDOJISTAR_OutRange(const TA_CDLEVENINGDOJISTAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLEVENINGDOJISTAR_Advance(TA_CDLEVENINGDOJISTAR_Stream* stream) + + ctypedef struct TA_CDLEVENINGSTAR_Stream: + pass + TA_RetCode TA_CDLEVENINGSTAR_OpenAndFill(TA_CDLEVENINGSTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLEVENINGSTAR_Open(TA_CDLEVENINGSTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outInteger) + TA_RetCode TA_CDLEVENINGSTAR_Update(TA_CDLEVENINGSTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLEVENINGSTAR_Peek(const TA_CDLEVENINGSTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLEVENINGSTAR_Value(const TA_CDLEVENINGSTAR_Stream* stream, int* outInteger) + TA_RetCode TA_CDLEVENINGSTAR_Clone(const TA_CDLEVENINGSTAR_Stream* stream, TA_CDLEVENINGSTAR_Stream** clone) + TA_RetCode TA_CDLEVENINGSTAR_Close(TA_CDLEVENINGSTAR_Stream* stream) + TA_RetCode TA_CDLEVENINGSTAR_OutRange(const TA_CDLEVENINGSTAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLEVENINGSTAR_Advance(TA_CDLEVENINGSTAR_Stream* stream) + + ctypedef struct TA_CDLGAPSIDESIDEWHITE_Stream: + pass + TA_RetCode TA_CDLGAPSIDESIDEWHITE_OpenAndFill(TA_CDLGAPSIDESIDEWHITE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_Open(TA_CDLGAPSIDESIDEWHITE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_Update(TA_CDLGAPSIDESIDEWHITE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_Peek(const TA_CDLGAPSIDESIDEWHITE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_Value(const TA_CDLGAPSIDESIDEWHITE_Stream* stream, int* outInteger) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_Clone(const TA_CDLGAPSIDESIDEWHITE_Stream* stream, TA_CDLGAPSIDESIDEWHITE_Stream** clone) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_Close(TA_CDLGAPSIDESIDEWHITE_Stream* stream) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_OutRange(const TA_CDLGAPSIDESIDEWHITE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLGAPSIDESIDEWHITE_Advance(TA_CDLGAPSIDESIDEWHITE_Stream* stream) + + ctypedef struct TA_CDLGRAVESTONEDOJI_Stream: + pass + TA_RetCode TA_CDLGRAVESTONEDOJI_OpenAndFill(TA_CDLGRAVESTONEDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLGRAVESTONEDOJI_Open(TA_CDLGRAVESTONEDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLGRAVESTONEDOJI_Update(TA_CDLGRAVESTONEDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLGRAVESTONEDOJI_Peek(const TA_CDLGRAVESTONEDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLGRAVESTONEDOJI_Value(const TA_CDLGRAVESTONEDOJI_Stream* stream, int* outInteger) + TA_RetCode TA_CDLGRAVESTONEDOJI_Clone(const TA_CDLGRAVESTONEDOJI_Stream* stream, TA_CDLGRAVESTONEDOJI_Stream** clone) + TA_RetCode TA_CDLGRAVESTONEDOJI_Close(TA_CDLGRAVESTONEDOJI_Stream* stream) + TA_RetCode TA_CDLGRAVESTONEDOJI_OutRange(const TA_CDLGRAVESTONEDOJI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLGRAVESTONEDOJI_Advance(TA_CDLGRAVESTONEDOJI_Stream* stream) + + ctypedef struct TA_CDLHAMMER_Stream: + pass + TA_RetCode TA_CDLHAMMER_OpenAndFill(TA_CDLHAMMER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHAMMER_Open(TA_CDLHAMMER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHAMMER_Update(TA_CDLHAMMER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHAMMER_Peek(const TA_CDLHAMMER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHAMMER_Value(const TA_CDLHAMMER_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHAMMER_Clone(const TA_CDLHAMMER_Stream* stream, TA_CDLHAMMER_Stream** clone) + TA_RetCode TA_CDLHAMMER_Close(TA_CDLHAMMER_Stream* stream) + TA_RetCode TA_CDLHAMMER_OutRange(const TA_CDLHAMMER_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHAMMER_Advance(TA_CDLHAMMER_Stream* stream) + + ctypedef struct TA_CDLHANGINGMAN_Stream: + pass + TA_RetCode TA_CDLHANGINGMAN_OpenAndFill(TA_CDLHANGINGMAN_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHANGINGMAN_Open(TA_CDLHANGINGMAN_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHANGINGMAN_Update(TA_CDLHANGINGMAN_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHANGINGMAN_Peek(const TA_CDLHANGINGMAN_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHANGINGMAN_Value(const TA_CDLHANGINGMAN_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHANGINGMAN_Clone(const TA_CDLHANGINGMAN_Stream* stream, TA_CDLHANGINGMAN_Stream** clone) + TA_RetCode TA_CDLHANGINGMAN_Close(TA_CDLHANGINGMAN_Stream* stream) + TA_RetCode TA_CDLHANGINGMAN_OutRange(const TA_CDLHANGINGMAN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHANGINGMAN_Advance(TA_CDLHANGINGMAN_Stream* stream) + + ctypedef struct TA_CDLHARAMI_Stream: + pass + TA_RetCode TA_CDLHARAMI_OpenAndFill(TA_CDLHARAMI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHARAMI_Open(TA_CDLHARAMI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHARAMI_Update(TA_CDLHARAMI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHARAMI_Peek(const TA_CDLHARAMI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHARAMI_Value(const TA_CDLHARAMI_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHARAMI_Clone(const TA_CDLHARAMI_Stream* stream, TA_CDLHARAMI_Stream** clone) + TA_RetCode TA_CDLHARAMI_Close(TA_CDLHARAMI_Stream* stream) + TA_RetCode TA_CDLHARAMI_OutRange(const TA_CDLHARAMI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHARAMI_Advance(TA_CDLHARAMI_Stream* stream) + + ctypedef struct TA_CDLHARAMICROSS_Stream: + pass + TA_RetCode TA_CDLHARAMICROSS_OpenAndFill(TA_CDLHARAMICROSS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHARAMICROSS_Open(TA_CDLHARAMICROSS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHARAMICROSS_Update(TA_CDLHARAMICROSS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHARAMICROSS_Peek(const TA_CDLHARAMICROSS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHARAMICROSS_Value(const TA_CDLHARAMICROSS_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHARAMICROSS_Clone(const TA_CDLHARAMICROSS_Stream* stream, TA_CDLHARAMICROSS_Stream** clone) + TA_RetCode TA_CDLHARAMICROSS_Close(TA_CDLHARAMICROSS_Stream* stream) + TA_RetCode TA_CDLHARAMICROSS_OutRange(const TA_CDLHARAMICROSS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHARAMICROSS_Advance(TA_CDLHARAMICROSS_Stream* stream) + + ctypedef struct TA_CDLHIGHWAVE_Stream: + pass + TA_RetCode TA_CDLHIGHWAVE_OpenAndFill(TA_CDLHIGHWAVE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHIGHWAVE_Open(TA_CDLHIGHWAVE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHIGHWAVE_Update(TA_CDLHIGHWAVE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHIGHWAVE_Peek(const TA_CDLHIGHWAVE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHIGHWAVE_Value(const TA_CDLHIGHWAVE_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHIGHWAVE_Clone(const TA_CDLHIGHWAVE_Stream* stream, TA_CDLHIGHWAVE_Stream** clone) + TA_RetCode TA_CDLHIGHWAVE_Close(TA_CDLHIGHWAVE_Stream* stream) + TA_RetCode TA_CDLHIGHWAVE_OutRange(const TA_CDLHIGHWAVE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHIGHWAVE_Advance(TA_CDLHIGHWAVE_Stream* stream) + + ctypedef struct TA_CDLHIKKAKE_Stream: + pass + TA_RetCode TA_CDLHIKKAKE_OpenAndFill(TA_CDLHIKKAKE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHIKKAKE_Open(TA_CDLHIKKAKE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHIKKAKE_Update(TA_CDLHIKKAKE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHIKKAKE_Peek(const TA_CDLHIKKAKE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHIKKAKE_Value(const TA_CDLHIKKAKE_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHIKKAKE_Clone(const TA_CDLHIKKAKE_Stream* stream, TA_CDLHIKKAKE_Stream** clone) + TA_RetCode TA_CDLHIKKAKE_Close(TA_CDLHIKKAKE_Stream* stream) + TA_RetCode TA_CDLHIKKAKE_OutRange(const TA_CDLHIKKAKE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHIKKAKE_Advance(TA_CDLHIKKAKE_Stream* stream) + + ctypedef struct TA_CDLHIKKAKEMOD_Stream: + pass + TA_RetCode TA_CDLHIKKAKEMOD_OpenAndFill(TA_CDLHIKKAKEMOD_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHIKKAKEMOD_Open(TA_CDLHIKKAKEMOD_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHIKKAKEMOD_Update(TA_CDLHIKKAKEMOD_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHIKKAKEMOD_Peek(const TA_CDLHIKKAKEMOD_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHIKKAKEMOD_Value(const TA_CDLHIKKAKEMOD_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHIKKAKEMOD_Clone(const TA_CDLHIKKAKEMOD_Stream* stream, TA_CDLHIKKAKEMOD_Stream** clone) + TA_RetCode TA_CDLHIKKAKEMOD_Close(TA_CDLHIKKAKEMOD_Stream* stream) + TA_RetCode TA_CDLHIKKAKEMOD_OutRange(const TA_CDLHIKKAKEMOD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHIKKAKEMOD_Advance(TA_CDLHIKKAKEMOD_Stream* stream) + + ctypedef struct TA_CDLHOMINGPIGEON_Stream: + pass + TA_RetCode TA_CDLHOMINGPIGEON_OpenAndFill(TA_CDLHOMINGPIGEON_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLHOMINGPIGEON_Open(TA_CDLHOMINGPIGEON_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLHOMINGPIGEON_Update(TA_CDLHOMINGPIGEON_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHOMINGPIGEON_Peek(const TA_CDLHOMINGPIGEON_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLHOMINGPIGEON_Value(const TA_CDLHOMINGPIGEON_Stream* stream, int* outInteger) + TA_RetCode TA_CDLHOMINGPIGEON_Clone(const TA_CDLHOMINGPIGEON_Stream* stream, TA_CDLHOMINGPIGEON_Stream** clone) + TA_RetCode TA_CDLHOMINGPIGEON_Close(TA_CDLHOMINGPIGEON_Stream* stream) + TA_RetCode TA_CDLHOMINGPIGEON_OutRange(const TA_CDLHOMINGPIGEON_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLHOMINGPIGEON_Advance(TA_CDLHOMINGPIGEON_Stream* stream) + + ctypedef struct TA_CDLIDENTICAL3CROWS_Stream: + pass + TA_RetCode TA_CDLIDENTICAL3CROWS_OpenAndFill(TA_CDLIDENTICAL3CROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLIDENTICAL3CROWS_Open(TA_CDLIDENTICAL3CROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLIDENTICAL3CROWS_Update(TA_CDLIDENTICAL3CROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLIDENTICAL3CROWS_Peek(const TA_CDLIDENTICAL3CROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLIDENTICAL3CROWS_Value(const TA_CDLIDENTICAL3CROWS_Stream* stream, int* outInteger) + TA_RetCode TA_CDLIDENTICAL3CROWS_Clone(const TA_CDLIDENTICAL3CROWS_Stream* stream, TA_CDLIDENTICAL3CROWS_Stream** clone) + TA_RetCode TA_CDLIDENTICAL3CROWS_Close(TA_CDLIDENTICAL3CROWS_Stream* stream) + TA_RetCode TA_CDLIDENTICAL3CROWS_OutRange(const TA_CDLIDENTICAL3CROWS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLIDENTICAL3CROWS_Advance(TA_CDLIDENTICAL3CROWS_Stream* stream) + + ctypedef struct TA_CDLINNECK_Stream: + pass + TA_RetCode TA_CDLINNECK_OpenAndFill(TA_CDLINNECK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLINNECK_Open(TA_CDLINNECK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLINNECK_Update(TA_CDLINNECK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLINNECK_Peek(const TA_CDLINNECK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLINNECK_Value(const TA_CDLINNECK_Stream* stream, int* outInteger) + TA_RetCode TA_CDLINNECK_Clone(const TA_CDLINNECK_Stream* stream, TA_CDLINNECK_Stream** clone) + TA_RetCode TA_CDLINNECK_Close(TA_CDLINNECK_Stream* stream) + TA_RetCode TA_CDLINNECK_OutRange(const TA_CDLINNECK_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLINNECK_Advance(TA_CDLINNECK_Stream* stream) + + ctypedef struct TA_CDLINVERTEDHAMMER_Stream: + pass + TA_RetCode TA_CDLINVERTEDHAMMER_OpenAndFill(TA_CDLINVERTEDHAMMER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLINVERTEDHAMMER_Open(TA_CDLINVERTEDHAMMER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLINVERTEDHAMMER_Update(TA_CDLINVERTEDHAMMER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLINVERTEDHAMMER_Peek(const TA_CDLINVERTEDHAMMER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLINVERTEDHAMMER_Value(const TA_CDLINVERTEDHAMMER_Stream* stream, int* outInteger) + TA_RetCode TA_CDLINVERTEDHAMMER_Clone(const TA_CDLINVERTEDHAMMER_Stream* stream, TA_CDLINVERTEDHAMMER_Stream** clone) + TA_RetCode TA_CDLINVERTEDHAMMER_Close(TA_CDLINVERTEDHAMMER_Stream* stream) + TA_RetCode TA_CDLINVERTEDHAMMER_OutRange(const TA_CDLINVERTEDHAMMER_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLINVERTEDHAMMER_Advance(TA_CDLINVERTEDHAMMER_Stream* stream) + + ctypedef struct TA_CDLKICKING_Stream: + pass + TA_RetCode TA_CDLKICKING_OpenAndFill(TA_CDLKICKING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLKICKING_Open(TA_CDLKICKING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLKICKING_Update(TA_CDLKICKING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLKICKING_Peek(const TA_CDLKICKING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLKICKING_Value(const TA_CDLKICKING_Stream* stream, int* outInteger) + TA_RetCode TA_CDLKICKING_Clone(const TA_CDLKICKING_Stream* stream, TA_CDLKICKING_Stream** clone) + TA_RetCode TA_CDLKICKING_Close(TA_CDLKICKING_Stream* stream) + TA_RetCode TA_CDLKICKING_OutRange(const TA_CDLKICKING_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLKICKING_Advance(TA_CDLKICKING_Stream* stream) + + ctypedef struct TA_CDLKICKINGBYLENGTH_Stream: + pass + TA_RetCode TA_CDLKICKINGBYLENGTH_OpenAndFill(TA_CDLKICKINGBYLENGTH_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLKICKINGBYLENGTH_Open(TA_CDLKICKINGBYLENGTH_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLKICKINGBYLENGTH_Update(TA_CDLKICKINGBYLENGTH_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLKICKINGBYLENGTH_Peek(const TA_CDLKICKINGBYLENGTH_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLKICKINGBYLENGTH_Value(const TA_CDLKICKINGBYLENGTH_Stream* stream, int* outInteger) + TA_RetCode TA_CDLKICKINGBYLENGTH_Clone(const TA_CDLKICKINGBYLENGTH_Stream* stream, TA_CDLKICKINGBYLENGTH_Stream** clone) + TA_RetCode TA_CDLKICKINGBYLENGTH_Close(TA_CDLKICKINGBYLENGTH_Stream* stream) + TA_RetCode TA_CDLKICKINGBYLENGTH_OutRange(const TA_CDLKICKINGBYLENGTH_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLKICKINGBYLENGTH_Advance(TA_CDLKICKINGBYLENGTH_Stream* stream) + + ctypedef struct TA_CDLLADDERBOTTOM_Stream: + pass + TA_RetCode TA_CDLLADDERBOTTOM_OpenAndFill(TA_CDLLADDERBOTTOM_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLLADDERBOTTOM_Open(TA_CDLLADDERBOTTOM_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLLADDERBOTTOM_Update(TA_CDLLADDERBOTTOM_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLLADDERBOTTOM_Peek(const TA_CDLLADDERBOTTOM_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLLADDERBOTTOM_Value(const TA_CDLLADDERBOTTOM_Stream* stream, int* outInteger) + TA_RetCode TA_CDLLADDERBOTTOM_Clone(const TA_CDLLADDERBOTTOM_Stream* stream, TA_CDLLADDERBOTTOM_Stream** clone) + TA_RetCode TA_CDLLADDERBOTTOM_Close(TA_CDLLADDERBOTTOM_Stream* stream) + TA_RetCode TA_CDLLADDERBOTTOM_OutRange(const TA_CDLLADDERBOTTOM_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLLADDERBOTTOM_Advance(TA_CDLLADDERBOTTOM_Stream* stream) + + ctypedef struct TA_CDLLONGLEGGEDDOJI_Stream: + pass + TA_RetCode TA_CDLLONGLEGGEDDOJI_OpenAndFill(TA_CDLLONGLEGGEDDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLLONGLEGGEDDOJI_Open(TA_CDLLONGLEGGEDDOJI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLLONGLEGGEDDOJI_Update(TA_CDLLONGLEGGEDDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLLONGLEGGEDDOJI_Peek(const TA_CDLLONGLEGGEDDOJI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLLONGLEGGEDDOJI_Value(const TA_CDLLONGLEGGEDDOJI_Stream* stream, int* outInteger) + TA_RetCode TA_CDLLONGLEGGEDDOJI_Clone(const TA_CDLLONGLEGGEDDOJI_Stream* stream, TA_CDLLONGLEGGEDDOJI_Stream** clone) + TA_RetCode TA_CDLLONGLEGGEDDOJI_Close(TA_CDLLONGLEGGEDDOJI_Stream* stream) + TA_RetCode TA_CDLLONGLEGGEDDOJI_OutRange(const TA_CDLLONGLEGGEDDOJI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLLONGLEGGEDDOJI_Advance(TA_CDLLONGLEGGEDDOJI_Stream* stream) + + ctypedef struct TA_CDLLONGLINE_Stream: + pass + TA_RetCode TA_CDLLONGLINE_OpenAndFill(TA_CDLLONGLINE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLLONGLINE_Open(TA_CDLLONGLINE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLLONGLINE_Update(TA_CDLLONGLINE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLLONGLINE_Peek(const TA_CDLLONGLINE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLLONGLINE_Value(const TA_CDLLONGLINE_Stream* stream, int* outInteger) + TA_RetCode TA_CDLLONGLINE_Clone(const TA_CDLLONGLINE_Stream* stream, TA_CDLLONGLINE_Stream** clone) + TA_RetCode TA_CDLLONGLINE_Close(TA_CDLLONGLINE_Stream* stream) + TA_RetCode TA_CDLLONGLINE_OutRange(const TA_CDLLONGLINE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLLONGLINE_Advance(TA_CDLLONGLINE_Stream* stream) + + ctypedef struct TA_CDLMARUBOZU_Stream: + pass + TA_RetCode TA_CDLMARUBOZU_OpenAndFill(TA_CDLMARUBOZU_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLMARUBOZU_Open(TA_CDLMARUBOZU_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLMARUBOZU_Update(TA_CDLMARUBOZU_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMARUBOZU_Peek(const TA_CDLMARUBOZU_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMARUBOZU_Value(const TA_CDLMARUBOZU_Stream* stream, int* outInteger) + TA_RetCode TA_CDLMARUBOZU_Clone(const TA_CDLMARUBOZU_Stream* stream, TA_CDLMARUBOZU_Stream** clone) + TA_RetCode TA_CDLMARUBOZU_Close(TA_CDLMARUBOZU_Stream* stream) + TA_RetCode TA_CDLMARUBOZU_OutRange(const TA_CDLMARUBOZU_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLMARUBOZU_Advance(TA_CDLMARUBOZU_Stream* stream) + + ctypedef struct TA_CDLMATCHINGLOW_Stream: + pass + TA_RetCode TA_CDLMATCHINGLOW_OpenAndFill(TA_CDLMATCHINGLOW_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLMATCHINGLOW_Open(TA_CDLMATCHINGLOW_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLMATCHINGLOW_Update(TA_CDLMATCHINGLOW_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMATCHINGLOW_Peek(const TA_CDLMATCHINGLOW_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMATCHINGLOW_Value(const TA_CDLMATCHINGLOW_Stream* stream, int* outInteger) + TA_RetCode TA_CDLMATCHINGLOW_Clone(const TA_CDLMATCHINGLOW_Stream* stream, TA_CDLMATCHINGLOW_Stream** clone) + TA_RetCode TA_CDLMATCHINGLOW_Close(TA_CDLMATCHINGLOW_Stream* stream) + TA_RetCode TA_CDLMATCHINGLOW_OutRange(const TA_CDLMATCHINGLOW_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLMATCHINGLOW_Advance(TA_CDLMATCHINGLOW_Stream* stream) + + ctypedef struct TA_CDLMATHOLD_Stream: + pass + TA_RetCode TA_CDLMATHOLD_OpenAndFill(TA_CDLMATHOLD_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLMATHOLD_Open(TA_CDLMATHOLD_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outInteger) + TA_RetCode TA_CDLMATHOLD_Update(TA_CDLMATHOLD_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMATHOLD_Peek(const TA_CDLMATHOLD_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMATHOLD_Value(const TA_CDLMATHOLD_Stream* stream, int* outInteger) + TA_RetCode TA_CDLMATHOLD_Clone(const TA_CDLMATHOLD_Stream* stream, TA_CDLMATHOLD_Stream** clone) + TA_RetCode TA_CDLMATHOLD_Close(TA_CDLMATHOLD_Stream* stream) + TA_RetCode TA_CDLMATHOLD_OutRange(const TA_CDLMATHOLD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLMATHOLD_Advance(TA_CDLMATHOLD_Stream* stream) + + ctypedef struct TA_CDLMORNINGDOJISTAR_Stream: + pass + TA_RetCode TA_CDLMORNINGDOJISTAR_OpenAndFill(TA_CDLMORNINGDOJISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLMORNINGDOJISTAR_Open(TA_CDLMORNINGDOJISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outInteger) + TA_RetCode TA_CDLMORNINGDOJISTAR_Update(TA_CDLMORNINGDOJISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMORNINGDOJISTAR_Peek(const TA_CDLMORNINGDOJISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMORNINGDOJISTAR_Value(const TA_CDLMORNINGDOJISTAR_Stream* stream, int* outInteger) + TA_RetCode TA_CDLMORNINGDOJISTAR_Clone(const TA_CDLMORNINGDOJISTAR_Stream* stream, TA_CDLMORNINGDOJISTAR_Stream** clone) + TA_RetCode TA_CDLMORNINGDOJISTAR_Close(TA_CDLMORNINGDOJISTAR_Stream* stream) + TA_RetCode TA_CDLMORNINGDOJISTAR_OutRange(const TA_CDLMORNINGDOJISTAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLMORNINGDOJISTAR_Advance(TA_CDLMORNINGDOJISTAR_Stream* stream) + + ctypedef struct TA_CDLMORNINGSTAR_Stream: + pass + TA_RetCode TA_CDLMORNINGSTAR_OpenAndFill(TA_CDLMORNINGSTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLMORNINGSTAR_Open(TA_CDLMORNINGSTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double optInPenetration, int* outInteger) + TA_RetCode TA_CDLMORNINGSTAR_Update(TA_CDLMORNINGSTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMORNINGSTAR_Peek(const TA_CDLMORNINGSTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLMORNINGSTAR_Value(const TA_CDLMORNINGSTAR_Stream* stream, int* outInteger) + TA_RetCode TA_CDLMORNINGSTAR_Clone(const TA_CDLMORNINGSTAR_Stream* stream, TA_CDLMORNINGSTAR_Stream** clone) + TA_RetCode TA_CDLMORNINGSTAR_Close(TA_CDLMORNINGSTAR_Stream* stream) + TA_RetCode TA_CDLMORNINGSTAR_OutRange(const TA_CDLMORNINGSTAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLMORNINGSTAR_Advance(TA_CDLMORNINGSTAR_Stream* stream) + + ctypedef struct TA_CDLONNECK_Stream: + pass + TA_RetCode TA_CDLONNECK_OpenAndFill(TA_CDLONNECK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLONNECK_Open(TA_CDLONNECK_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLONNECK_Update(TA_CDLONNECK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLONNECK_Peek(const TA_CDLONNECK_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLONNECK_Value(const TA_CDLONNECK_Stream* stream, int* outInteger) + TA_RetCode TA_CDLONNECK_Clone(const TA_CDLONNECK_Stream* stream, TA_CDLONNECK_Stream** clone) + TA_RetCode TA_CDLONNECK_Close(TA_CDLONNECK_Stream* stream) + TA_RetCode TA_CDLONNECK_OutRange(const TA_CDLONNECK_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLONNECK_Advance(TA_CDLONNECK_Stream* stream) + + ctypedef struct TA_CDLPIERCING_Stream: + pass + TA_RetCode TA_CDLPIERCING_OpenAndFill(TA_CDLPIERCING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLPIERCING_Open(TA_CDLPIERCING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLPIERCING_Update(TA_CDLPIERCING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLPIERCING_Peek(const TA_CDLPIERCING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLPIERCING_Value(const TA_CDLPIERCING_Stream* stream, int* outInteger) + TA_RetCode TA_CDLPIERCING_Clone(const TA_CDLPIERCING_Stream* stream, TA_CDLPIERCING_Stream** clone) + TA_RetCode TA_CDLPIERCING_Close(TA_CDLPIERCING_Stream* stream) + TA_RetCode TA_CDLPIERCING_OutRange(const TA_CDLPIERCING_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLPIERCING_Advance(TA_CDLPIERCING_Stream* stream) + + ctypedef struct TA_CDLRICKSHAWMAN_Stream: + pass + TA_RetCode TA_CDLRICKSHAWMAN_OpenAndFill(TA_CDLRICKSHAWMAN_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLRICKSHAWMAN_Open(TA_CDLRICKSHAWMAN_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLRICKSHAWMAN_Update(TA_CDLRICKSHAWMAN_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLRICKSHAWMAN_Peek(const TA_CDLRICKSHAWMAN_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLRICKSHAWMAN_Value(const TA_CDLRICKSHAWMAN_Stream* stream, int* outInteger) + TA_RetCode TA_CDLRICKSHAWMAN_Clone(const TA_CDLRICKSHAWMAN_Stream* stream, TA_CDLRICKSHAWMAN_Stream** clone) + TA_RetCode TA_CDLRICKSHAWMAN_Close(TA_CDLRICKSHAWMAN_Stream* stream) + TA_RetCode TA_CDLRICKSHAWMAN_OutRange(const TA_CDLRICKSHAWMAN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLRICKSHAWMAN_Advance(TA_CDLRICKSHAWMAN_Stream* stream) + + ctypedef struct TA_CDLRISEFALL3METHODS_Stream: + pass + TA_RetCode TA_CDLRISEFALL3METHODS_OpenAndFill(TA_CDLRISEFALL3METHODS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLRISEFALL3METHODS_Open(TA_CDLRISEFALL3METHODS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLRISEFALL3METHODS_Update(TA_CDLRISEFALL3METHODS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLRISEFALL3METHODS_Peek(const TA_CDLRISEFALL3METHODS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLRISEFALL3METHODS_Value(const TA_CDLRISEFALL3METHODS_Stream* stream, int* outInteger) + TA_RetCode TA_CDLRISEFALL3METHODS_Clone(const TA_CDLRISEFALL3METHODS_Stream* stream, TA_CDLRISEFALL3METHODS_Stream** clone) + TA_RetCode TA_CDLRISEFALL3METHODS_Close(TA_CDLRISEFALL3METHODS_Stream* stream) + TA_RetCode TA_CDLRISEFALL3METHODS_OutRange(const TA_CDLRISEFALL3METHODS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLRISEFALL3METHODS_Advance(TA_CDLRISEFALL3METHODS_Stream* stream) + + ctypedef struct TA_CDLSEPARATINGLINES_Stream: + pass + TA_RetCode TA_CDLSEPARATINGLINES_OpenAndFill(TA_CDLSEPARATINGLINES_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLSEPARATINGLINES_Open(TA_CDLSEPARATINGLINES_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLSEPARATINGLINES_Update(TA_CDLSEPARATINGLINES_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSEPARATINGLINES_Peek(const TA_CDLSEPARATINGLINES_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSEPARATINGLINES_Value(const TA_CDLSEPARATINGLINES_Stream* stream, int* outInteger) + TA_RetCode TA_CDLSEPARATINGLINES_Clone(const TA_CDLSEPARATINGLINES_Stream* stream, TA_CDLSEPARATINGLINES_Stream** clone) + TA_RetCode TA_CDLSEPARATINGLINES_Close(TA_CDLSEPARATINGLINES_Stream* stream) + TA_RetCode TA_CDLSEPARATINGLINES_OutRange(const TA_CDLSEPARATINGLINES_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLSEPARATINGLINES_Advance(TA_CDLSEPARATINGLINES_Stream* stream) + + ctypedef struct TA_CDLSHOOTINGSTAR_Stream: + pass + TA_RetCode TA_CDLSHOOTINGSTAR_OpenAndFill(TA_CDLSHOOTINGSTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLSHOOTINGSTAR_Open(TA_CDLSHOOTINGSTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLSHOOTINGSTAR_Update(TA_CDLSHOOTINGSTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSHOOTINGSTAR_Peek(const TA_CDLSHOOTINGSTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSHOOTINGSTAR_Value(const TA_CDLSHOOTINGSTAR_Stream* stream, int* outInteger) + TA_RetCode TA_CDLSHOOTINGSTAR_Clone(const TA_CDLSHOOTINGSTAR_Stream* stream, TA_CDLSHOOTINGSTAR_Stream** clone) + TA_RetCode TA_CDLSHOOTINGSTAR_Close(TA_CDLSHOOTINGSTAR_Stream* stream) + TA_RetCode TA_CDLSHOOTINGSTAR_OutRange(const TA_CDLSHOOTINGSTAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLSHOOTINGSTAR_Advance(TA_CDLSHOOTINGSTAR_Stream* stream) + + ctypedef struct TA_CDLSHORTLINE_Stream: + pass + TA_RetCode TA_CDLSHORTLINE_OpenAndFill(TA_CDLSHORTLINE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLSHORTLINE_Open(TA_CDLSHORTLINE_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLSHORTLINE_Update(TA_CDLSHORTLINE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSHORTLINE_Peek(const TA_CDLSHORTLINE_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSHORTLINE_Value(const TA_CDLSHORTLINE_Stream* stream, int* outInteger) + TA_RetCode TA_CDLSHORTLINE_Clone(const TA_CDLSHORTLINE_Stream* stream, TA_CDLSHORTLINE_Stream** clone) + TA_RetCode TA_CDLSHORTLINE_Close(TA_CDLSHORTLINE_Stream* stream) + TA_RetCode TA_CDLSHORTLINE_OutRange(const TA_CDLSHORTLINE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLSHORTLINE_Advance(TA_CDLSHORTLINE_Stream* stream) + + ctypedef struct TA_CDLSPINNINGTOP_Stream: + pass + TA_RetCode TA_CDLSPINNINGTOP_OpenAndFill(TA_CDLSPINNINGTOP_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLSPINNINGTOP_Open(TA_CDLSPINNINGTOP_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLSPINNINGTOP_Update(TA_CDLSPINNINGTOP_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSPINNINGTOP_Peek(const TA_CDLSPINNINGTOP_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSPINNINGTOP_Value(const TA_CDLSPINNINGTOP_Stream* stream, int* outInteger) + TA_RetCode TA_CDLSPINNINGTOP_Clone(const TA_CDLSPINNINGTOP_Stream* stream, TA_CDLSPINNINGTOP_Stream** clone) + TA_RetCode TA_CDLSPINNINGTOP_Close(TA_CDLSPINNINGTOP_Stream* stream) + TA_RetCode TA_CDLSPINNINGTOP_OutRange(const TA_CDLSPINNINGTOP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLSPINNINGTOP_Advance(TA_CDLSPINNINGTOP_Stream* stream) + + ctypedef struct TA_CDLSTALLEDPATTERN_Stream: + pass + TA_RetCode TA_CDLSTALLEDPATTERN_OpenAndFill(TA_CDLSTALLEDPATTERN_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLSTALLEDPATTERN_Open(TA_CDLSTALLEDPATTERN_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLSTALLEDPATTERN_Update(TA_CDLSTALLEDPATTERN_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSTALLEDPATTERN_Peek(const TA_CDLSTALLEDPATTERN_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSTALLEDPATTERN_Value(const TA_CDLSTALLEDPATTERN_Stream* stream, int* outInteger) + TA_RetCode TA_CDLSTALLEDPATTERN_Clone(const TA_CDLSTALLEDPATTERN_Stream* stream, TA_CDLSTALLEDPATTERN_Stream** clone) + TA_RetCode TA_CDLSTALLEDPATTERN_Close(TA_CDLSTALLEDPATTERN_Stream* stream) + TA_RetCode TA_CDLSTALLEDPATTERN_OutRange(const TA_CDLSTALLEDPATTERN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLSTALLEDPATTERN_Advance(TA_CDLSTALLEDPATTERN_Stream* stream) + + ctypedef struct TA_CDLSTICKSANDWICH_Stream: + pass + TA_RetCode TA_CDLSTICKSANDWICH_OpenAndFill(TA_CDLSTICKSANDWICH_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLSTICKSANDWICH_Open(TA_CDLSTICKSANDWICH_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLSTICKSANDWICH_Update(TA_CDLSTICKSANDWICH_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSTICKSANDWICH_Peek(const TA_CDLSTICKSANDWICH_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLSTICKSANDWICH_Value(const TA_CDLSTICKSANDWICH_Stream* stream, int* outInteger) + TA_RetCode TA_CDLSTICKSANDWICH_Clone(const TA_CDLSTICKSANDWICH_Stream* stream, TA_CDLSTICKSANDWICH_Stream** clone) + TA_RetCode TA_CDLSTICKSANDWICH_Close(TA_CDLSTICKSANDWICH_Stream* stream) + TA_RetCode TA_CDLSTICKSANDWICH_OutRange(const TA_CDLSTICKSANDWICH_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLSTICKSANDWICH_Advance(TA_CDLSTICKSANDWICH_Stream* stream) + + ctypedef struct TA_CDLTAKURI_Stream: + pass + TA_RetCode TA_CDLTAKURI_OpenAndFill(TA_CDLTAKURI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLTAKURI_Open(TA_CDLTAKURI_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLTAKURI_Update(TA_CDLTAKURI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTAKURI_Peek(const TA_CDLTAKURI_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTAKURI_Value(const TA_CDLTAKURI_Stream* stream, int* outInteger) + TA_RetCode TA_CDLTAKURI_Clone(const TA_CDLTAKURI_Stream* stream, TA_CDLTAKURI_Stream** clone) + TA_RetCode TA_CDLTAKURI_Close(TA_CDLTAKURI_Stream* stream) + TA_RetCode TA_CDLTAKURI_OutRange(const TA_CDLTAKURI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLTAKURI_Advance(TA_CDLTAKURI_Stream* stream) + + ctypedef struct TA_CDLTASUKIGAP_Stream: + pass + TA_RetCode TA_CDLTASUKIGAP_OpenAndFill(TA_CDLTASUKIGAP_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLTASUKIGAP_Open(TA_CDLTASUKIGAP_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLTASUKIGAP_Update(TA_CDLTASUKIGAP_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTASUKIGAP_Peek(const TA_CDLTASUKIGAP_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTASUKIGAP_Value(const TA_CDLTASUKIGAP_Stream* stream, int* outInteger) + TA_RetCode TA_CDLTASUKIGAP_Clone(const TA_CDLTASUKIGAP_Stream* stream, TA_CDLTASUKIGAP_Stream** clone) + TA_RetCode TA_CDLTASUKIGAP_Close(TA_CDLTASUKIGAP_Stream* stream) + TA_RetCode TA_CDLTASUKIGAP_OutRange(const TA_CDLTASUKIGAP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLTASUKIGAP_Advance(TA_CDLTASUKIGAP_Stream* stream) + + ctypedef struct TA_CDLTHRUSTING_Stream: + pass + TA_RetCode TA_CDLTHRUSTING_OpenAndFill(TA_CDLTHRUSTING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLTHRUSTING_Open(TA_CDLTHRUSTING_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLTHRUSTING_Update(TA_CDLTHRUSTING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTHRUSTING_Peek(const TA_CDLTHRUSTING_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTHRUSTING_Value(const TA_CDLTHRUSTING_Stream* stream, int* outInteger) + TA_RetCode TA_CDLTHRUSTING_Clone(const TA_CDLTHRUSTING_Stream* stream, TA_CDLTHRUSTING_Stream** clone) + TA_RetCode TA_CDLTHRUSTING_Close(TA_CDLTHRUSTING_Stream* stream) + TA_RetCode TA_CDLTHRUSTING_OutRange(const TA_CDLTHRUSTING_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLTHRUSTING_Advance(TA_CDLTHRUSTING_Stream* stream) + + ctypedef struct TA_CDLTRISTAR_Stream: + pass + TA_RetCode TA_CDLTRISTAR_OpenAndFill(TA_CDLTRISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLTRISTAR_Open(TA_CDLTRISTAR_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLTRISTAR_Update(TA_CDLTRISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTRISTAR_Peek(const TA_CDLTRISTAR_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLTRISTAR_Value(const TA_CDLTRISTAR_Stream* stream, int* outInteger) + TA_RetCode TA_CDLTRISTAR_Clone(const TA_CDLTRISTAR_Stream* stream, TA_CDLTRISTAR_Stream** clone) + TA_RetCode TA_CDLTRISTAR_Close(TA_CDLTRISTAR_Stream* stream) + TA_RetCode TA_CDLTRISTAR_OutRange(const TA_CDLTRISTAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLTRISTAR_Advance(TA_CDLTRISTAR_Stream* stream) + + ctypedef struct TA_CDLUNIQUE3RIVER_Stream: + pass + TA_RetCode TA_CDLUNIQUE3RIVER_OpenAndFill(TA_CDLUNIQUE3RIVER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLUNIQUE3RIVER_Open(TA_CDLUNIQUE3RIVER_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLUNIQUE3RIVER_Update(TA_CDLUNIQUE3RIVER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLUNIQUE3RIVER_Peek(const TA_CDLUNIQUE3RIVER_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLUNIQUE3RIVER_Value(const TA_CDLUNIQUE3RIVER_Stream* stream, int* outInteger) + TA_RetCode TA_CDLUNIQUE3RIVER_Clone(const TA_CDLUNIQUE3RIVER_Stream* stream, TA_CDLUNIQUE3RIVER_Stream** clone) + TA_RetCode TA_CDLUNIQUE3RIVER_Close(TA_CDLUNIQUE3RIVER_Stream* stream) + TA_RetCode TA_CDLUNIQUE3RIVER_OutRange(const TA_CDLUNIQUE3RIVER_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLUNIQUE3RIVER_Advance(TA_CDLUNIQUE3RIVER_Stream* stream) + + ctypedef struct TA_CDLUPSIDEGAP2CROWS_Stream: + pass + TA_RetCode TA_CDLUPSIDEGAP2CROWS_OpenAndFill(TA_CDLUPSIDEGAP2CROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_Open(TA_CDLUPSIDEGAP2CROWS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_Update(TA_CDLUPSIDEGAP2CROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_Peek(const TA_CDLUPSIDEGAP2CROWS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_Value(const TA_CDLUPSIDEGAP2CROWS_Stream* stream, int* outInteger) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_Clone(const TA_CDLUPSIDEGAP2CROWS_Stream* stream, TA_CDLUPSIDEGAP2CROWS_Stream** clone) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_Close(TA_CDLUPSIDEGAP2CROWS_Stream* stream) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_OutRange(const TA_CDLUPSIDEGAP2CROWS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLUPSIDEGAP2CROWS_Advance(TA_CDLUPSIDEGAP2CROWS_Stream* stream) + + ctypedef struct TA_CDLXSIDEGAP3METHODS_Stream: + pass + TA_RetCode TA_CDLXSIDEGAP3METHODS_OpenAndFill(TA_CDLXSIDEGAP3METHODS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_CDLXSIDEGAP3METHODS_Open(TA_CDLXSIDEGAP3METHODS_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outInteger) + TA_RetCode TA_CDLXSIDEGAP3METHODS_Update(TA_CDLXSIDEGAP3METHODS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLXSIDEGAP3METHODS_Peek(const TA_CDLXSIDEGAP3METHODS_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, int* outInteger) + TA_RetCode TA_CDLXSIDEGAP3METHODS_Value(const TA_CDLXSIDEGAP3METHODS_Stream* stream, int* outInteger) + TA_RetCode TA_CDLXSIDEGAP3METHODS_Clone(const TA_CDLXSIDEGAP3METHODS_Stream* stream, TA_CDLXSIDEGAP3METHODS_Stream** clone) + TA_RetCode TA_CDLXSIDEGAP3METHODS_Close(TA_CDLXSIDEGAP3METHODS_Stream* stream) + TA_RetCode TA_CDLXSIDEGAP3METHODS_OutRange(const TA_CDLXSIDEGAP3METHODS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CDLXSIDEGAP3METHODS_Advance(TA_CDLXSIDEGAP3METHODS_Stream* stream) + + ctypedef struct TA_CEIL_Stream: + pass + TA_RetCode TA_CEIL_OpenAndFill(TA_CEIL_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CEIL_Open(TA_CEIL_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_CEIL_Update(TA_CEIL_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CEIL_Peek(const TA_CEIL_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CEIL_Value(const TA_CEIL_Stream* stream, double* outReal) + TA_RetCode TA_CEIL_Clone(const TA_CEIL_Stream* stream, TA_CEIL_Stream** clone) + TA_RetCode TA_CEIL_Close(TA_CEIL_Stream* stream) + TA_RetCode TA_CEIL_OutRange(const TA_CEIL_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CEIL_Advance(TA_CEIL_Stream* stream) + + ctypedef struct TA_CMF_Stream: + pass + TA_RetCode TA_CMF_OpenAndFill(TA_CMF_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CMF_Open(TA_CMF_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CMF_Update(TA_CMF_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_CMF_Peek(const TA_CMF_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_CMF_Value(const TA_CMF_Stream* stream, double* outReal) + TA_RetCode TA_CMF_Clone(const TA_CMF_Stream* stream, TA_CMF_Stream** clone) + TA_RetCode TA_CMF_Close(TA_CMF_Stream* stream) + TA_RetCode TA_CMF_OutRange(const TA_CMF_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CMF_Advance(TA_CMF_Stream* stream) + + ctypedef struct TA_CMO_Stream: + pass + TA_RetCode TA_CMO_OpenAndFill(TA_CMO_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CMO_Open(TA_CMO_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CMO_Update(TA_CMO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CMO_Peek(const TA_CMO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CMO_Value(const TA_CMO_Stream* stream, double* outReal) + TA_RetCode TA_CMO_Clone(const TA_CMO_Stream* stream, TA_CMO_Stream** clone) + TA_RetCode TA_CMO_Close(TA_CMO_Stream* stream) + TA_RetCode TA_CMO_OutRange(const TA_CMO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CMO_Advance(TA_CMO_Stream* stream) + + ctypedef struct TA_CMOU_Stream: + pass + TA_RetCode TA_CMOU_OpenAndFill(TA_CMOU_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CMOU_Open(TA_CMOU_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CMOU_Update(TA_CMOU_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CMOU_Peek(const TA_CMOU_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CMOU_Value(const TA_CMOU_Stream* stream, double* outReal) + TA_RetCode TA_CMOU_Clone(const TA_CMOU_Stream* stream, TA_CMOU_Stream** clone) + TA_RetCode TA_CMOU_Close(TA_CMOU_Stream* stream) + TA_RetCode TA_CMOU_OutRange(const TA_CMOU_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CMOU_Advance(TA_CMOU_Stream* stream) + + ctypedef struct TA_COPPOCK_Stream: + pass + TA_RetCode TA_COPPOCK_OpenAndFill(TA_COPPOCK_Stream** stream, const double* inReal, int historyLen, int optInWMAPeriod, int optInROC1Period, int optInROC2Period, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_COPPOCK_Open(TA_COPPOCK_Stream** stream, const double* inReal, int historyLen, int optInWMAPeriod, int optInROC1Period, int optInROC2Period, double* outReal) + TA_RetCode TA_COPPOCK_Update(TA_COPPOCK_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_COPPOCK_Peek(const TA_COPPOCK_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_COPPOCK_Value(const TA_COPPOCK_Stream* stream, double* outReal) + TA_RetCode TA_COPPOCK_Clone(const TA_COPPOCK_Stream* stream, TA_COPPOCK_Stream** clone) + TA_RetCode TA_COPPOCK_Close(TA_COPPOCK_Stream* stream) + TA_RetCode TA_COPPOCK_OutRange(const TA_COPPOCK_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_COPPOCK_Advance(TA_COPPOCK_Stream* stream) + + ctypedef struct TA_CORREL_Stream: + pass + TA_RetCode TA_CORREL_OpenAndFill(TA_CORREL_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CORREL_Open(TA_CORREL_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_CORREL_Update(TA_CORREL_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_CORREL_Peek(const TA_CORREL_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_CORREL_Value(const TA_CORREL_Stream* stream, double* outReal) + TA_RetCode TA_CORREL_Clone(const TA_CORREL_Stream* stream, TA_CORREL_Stream** clone) + TA_RetCode TA_CORREL_Close(TA_CORREL_Stream* stream) + TA_RetCode TA_CORREL_OutRange(const TA_CORREL_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CORREL_Advance(TA_CORREL_Stream* stream) + + ctypedef struct TA_COS_Stream: + pass + TA_RetCode TA_COS_OpenAndFill(TA_COS_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_COS_Open(TA_COS_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_COS_Update(TA_COS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_COS_Peek(const TA_COS_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_COS_Value(const TA_COS_Stream* stream, double* outReal) + TA_RetCode TA_COS_Clone(const TA_COS_Stream* stream, TA_COS_Stream** clone) + TA_RetCode TA_COS_Close(TA_COS_Stream* stream) + TA_RetCode TA_COS_OutRange(const TA_COS_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_COS_Advance(TA_COS_Stream* stream) + + ctypedef struct TA_COSH_Stream: + pass + TA_RetCode TA_COSH_OpenAndFill(TA_COSH_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_COSH_Open(TA_COSH_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_COSH_Update(TA_COSH_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_COSH_Peek(const TA_COSH_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_COSH_Value(const TA_COSH_Stream* stream, double* outReal) + TA_RetCode TA_COSH_Clone(const TA_COSH_Stream* stream, TA_COSH_Stream** clone) + TA_RetCode TA_COSH_Close(TA_COSH_Stream* stream) + TA_RetCode TA_COSH_OutRange(const TA_COSH_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_COSH_Advance(TA_COSH_Stream* stream) + + ctypedef struct TA_CUMSUM_Stream: + pass + TA_RetCode TA_CUMSUM_OpenAndFill(TA_CUMSUM_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CUMSUM_Open(TA_CUMSUM_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_CUMSUM_Update(TA_CUMSUM_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CUMSUM_Peek(const TA_CUMSUM_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_CUMSUM_Value(const TA_CUMSUM_Stream* stream, double* outReal) + TA_RetCode TA_CUMSUM_Clone(const TA_CUMSUM_Stream* stream, TA_CUMSUM_Stream** clone) + TA_RetCode TA_CUMSUM_Close(TA_CUMSUM_Stream* stream) + TA_RetCode TA_CUMSUM_OutRange(const TA_CUMSUM_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CUMSUM_Advance(TA_CUMSUM_Stream* stream) + + ctypedef struct TA_CVI_Stream: + pass + TA_RetCode TA_CVI_OpenAndFill(TA_CVI_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int optInROCPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_CVI_Open(TA_CVI_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int optInROCPeriod, double* outReal) + TA_RetCode TA_CVI_Update(TA_CVI_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_CVI_Peek(const TA_CVI_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_CVI_Value(const TA_CVI_Stream* stream, double* outReal) + TA_RetCode TA_CVI_Clone(const TA_CVI_Stream* stream, TA_CVI_Stream** clone) + TA_RetCode TA_CVI_Close(TA_CVI_Stream* stream) + TA_RetCode TA_CVI_OutRange(const TA_CVI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_CVI_Advance(TA_CVI_Stream* stream) + + ctypedef struct TA_DEMA_Stream: + pass + TA_RetCode TA_DEMA_OpenAndFill(TA_DEMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_DEMA_Open(TA_DEMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_DEMA_Update(TA_DEMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_DEMA_Peek(const TA_DEMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_DEMA_Value(const TA_DEMA_Stream* stream, double* outReal) + TA_RetCode TA_DEMA_Clone(const TA_DEMA_Stream* stream, TA_DEMA_Stream** clone) + TA_RetCode TA_DEMA_Close(TA_DEMA_Stream* stream) + TA_RetCode TA_DEMA_OutRange(const TA_DEMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_DEMA_Advance(TA_DEMA_Stream* stream) + + ctypedef struct TA_DIV_Stream: + pass + TA_RetCode TA_DIV_OpenAndFill(TA_DIV_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_DIV_Open(TA_DIV_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, double* outReal) + TA_RetCode TA_DIV_Update(TA_DIV_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_DIV_Peek(const TA_DIV_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_DIV_Value(const TA_DIV_Stream* stream, double* outReal) + TA_RetCode TA_DIV_Clone(const TA_DIV_Stream* stream, TA_DIV_Stream** clone) + TA_RetCode TA_DIV_Close(TA_DIV_Stream* stream) + TA_RetCode TA_DIV_OutRange(const TA_DIV_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_DIV_Advance(TA_DIV_Stream* stream) + + ctypedef struct TA_DONCHIAN_Stream: + pass + TA_RetCode TA_DONCHIAN_OpenAndFill(TA_DONCHIAN_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_DONCHIAN_Open(TA_DONCHIAN_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_DONCHIAN_Update(TA_DONCHIAN_Stream* stream, double inHigh, double inLow, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_DONCHIAN_Peek(const TA_DONCHIAN_Stream* stream, double inHigh, double inLow, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_DONCHIAN_Value(const TA_DONCHIAN_Stream* stream, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_DONCHIAN_Clone(const TA_DONCHIAN_Stream* stream, TA_DONCHIAN_Stream** clone) + TA_RetCode TA_DONCHIAN_Close(TA_DONCHIAN_Stream* stream) + TA_RetCode TA_DONCHIAN_OutRange(const TA_DONCHIAN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_DONCHIAN_Advance(TA_DONCHIAN_Stream* stream) + + ctypedef struct TA_DPO_Stream: + pass + TA_RetCode TA_DPO_OpenAndFill(TA_DPO_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_DPO_Open(TA_DPO_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_DPO_Update(TA_DPO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_DPO_Peek(const TA_DPO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_DPO_Value(const TA_DPO_Stream* stream, double* outReal) + TA_RetCode TA_DPO_Clone(const TA_DPO_Stream* stream, TA_DPO_Stream** clone) + TA_RetCode TA_DPO_Close(TA_DPO_Stream* stream) + TA_RetCode TA_DPO_OutRange(const TA_DPO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_DPO_Advance(TA_DPO_Stream* stream) + + ctypedef struct TA_DX_Stream: + pass + TA_RetCode TA_DX_OpenAndFill(TA_DX_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_DX_Open(TA_DX_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_DX_Update(TA_DX_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_DX_Peek(const TA_DX_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_DX_Value(const TA_DX_Stream* stream, double* outReal) + TA_RetCode TA_DX_Clone(const TA_DX_Stream* stream, TA_DX_Stream** clone) + TA_RetCode TA_DX_Close(TA_DX_Stream* stream) + TA_RetCode TA_DX_OutRange(const TA_DX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_DX_Advance(TA_DX_Stream* stream) + + ctypedef struct TA_EFI_Stream: + pass + TA_RetCode TA_EFI_OpenAndFill(TA_EFI_Stream** stream, const double* inClose, const double* inVolume, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_EFI_Open(TA_EFI_Stream** stream, const double* inClose, const double* inVolume, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_EFI_Update(TA_EFI_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_EFI_Peek(const TA_EFI_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_EFI_Value(const TA_EFI_Stream* stream, double* outReal) + TA_RetCode TA_EFI_Clone(const TA_EFI_Stream* stream, TA_EFI_Stream** clone) + TA_RetCode TA_EFI_Close(TA_EFI_Stream* stream) + TA_RetCode TA_EFI_OutRange(const TA_EFI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_EFI_Advance(TA_EFI_Stream* stream) + + ctypedef struct TA_EMA_Stream: + pass + TA_RetCode TA_EMA_OpenAndFill(TA_EMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_EMA_Open(TA_EMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_EMA_Update(TA_EMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_EMA_Peek(const TA_EMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_EMA_Value(const TA_EMA_Stream* stream, double* outReal) + TA_RetCode TA_EMA_Clone(const TA_EMA_Stream* stream, TA_EMA_Stream** clone) + TA_RetCode TA_EMA_Close(TA_EMA_Stream* stream) + TA_RetCode TA_EMA_OutRange(const TA_EMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_EMA_Advance(TA_EMA_Stream* stream) + + ctypedef struct TA_ER_Stream: + pass + TA_RetCode TA_ER_OpenAndFill(TA_ER_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ER_Open(TA_ER_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ER_Update(TA_ER_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ER_Peek(const TA_ER_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ER_Value(const TA_ER_Stream* stream, double* outReal) + TA_RetCode TA_ER_Clone(const TA_ER_Stream* stream, TA_ER_Stream** clone) + TA_RetCode TA_ER_Close(TA_ER_Stream* stream) + TA_RetCode TA_ER_OutRange(const TA_ER_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ER_Advance(TA_ER_Stream* stream) + + ctypedef struct TA_ERI_Stream: + pass + TA_RetCode TA_ERI_OpenAndFill(TA_ERI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outBullPower, double* outBearPower) + TA_RetCode TA_ERI_Open(TA_ERI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outBullPower, double* outBearPower) + TA_RetCode TA_ERI_Update(TA_ERI_Stream* stream, double inHigh, double inLow, double inClose, double* outBullPower, double* outBearPower) + TA_RetCode TA_ERI_Peek(const TA_ERI_Stream* stream, double inHigh, double inLow, double inClose, double* outBullPower, double* outBearPower) + TA_RetCode TA_ERI_Value(const TA_ERI_Stream* stream, double* outBullPower, double* outBearPower) + TA_RetCode TA_ERI_Clone(const TA_ERI_Stream* stream, TA_ERI_Stream** clone) + TA_RetCode TA_ERI_Close(TA_ERI_Stream* stream) + TA_RetCode TA_ERI_OutRange(const TA_ERI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ERI_Advance(TA_ERI_Stream* stream) + + ctypedef struct TA_EXP_Stream: + pass + TA_RetCode TA_EXP_OpenAndFill(TA_EXP_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_EXP_Open(TA_EXP_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_EXP_Update(TA_EXP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_EXP_Peek(const TA_EXP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_EXP_Value(const TA_EXP_Stream* stream, double* outReal) + TA_RetCode TA_EXP_Clone(const TA_EXP_Stream* stream, TA_EXP_Stream** clone) + TA_RetCode TA_EXP_Close(TA_EXP_Stream* stream) + TA_RetCode TA_EXP_OutRange(const TA_EXP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_EXP_Advance(TA_EXP_Stream* stream) + + ctypedef struct TA_FLOOR_Stream: + pass + TA_RetCode TA_FLOOR_OpenAndFill(TA_FLOOR_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_FLOOR_Open(TA_FLOOR_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_FLOOR_Update(TA_FLOOR_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_FLOOR_Peek(const TA_FLOOR_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_FLOOR_Value(const TA_FLOOR_Stream* stream, double* outReal) + TA_RetCode TA_FLOOR_Clone(const TA_FLOOR_Stream* stream, TA_FLOOR_Stream** clone) + TA_RetCode TA_FLOOR_Close(TA_FLOOR_Stream* stream) + TA_RetCode TA_FLOOR_OutRange(const TA_FLOOR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_FLOOR_Advance(TA_FLOOR_Stream* stream) + + ctypedef struct TA_FOSC_Stream: + pass + TA_RetCode TA_FOSC_OpenAndFill(TA_FOSC_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_FOSC_Open(TA_FOSC_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_FOSC_Update(TA_FOSC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_FOSC_Peek(const TA_FOSC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_FOSC_Value(const TA_FOSC_Stream* stream, double* outReal) + TA_RetCode TA_FOSC_Clone(const TA_FOSC_Stream* stream, TA_FOSC_Stream** clone) + TA_RetCode TA_FOSC_Close(TA_FOSC_Stream* stream) + TA_RetCode TA_FOSC_OutRange(const TA_FOSC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_FOSC_Advance(TA_FOSC_Stream* stream) + + ctypedef struct TA_FRACTAL_Stream: + pass + TA_RetCode TA_FRACTAL_OpenAndFill(TA_FRACTAL_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInLeftBars, int optInRightBars, int* outBegIdx, int* outNBElement, int* outSwingHigh, int* outSwingLow) + TA_RetCode TA_FRACTAL_Open(TA_FRACTAL_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInLeftBars, int optInRightBars, int* outSwingHigh, int* outSwingLow) + TA_RetCode TA_FRACTAL_Update(TA_FRACTAL_Stream* stream, double inHigh, double inLow, int* outSwingHigh, int* outSwingLow) + TA_RetCode TA_FRACTAL_Peek(const TA_FRACTAL_Stream* stream, double inHigh, double inLow, int* outSwingHigh, int* outSwingLow) + TA_RetCode TA_FRACTAL_Value(const TA_FRACTAL_Stream* stream, int* outSwingHigh, int* outSwingLow) + TA_RetCode TA_FRACTAL_Clone(const TA_FRACTAL_Stream* stream, TA_FRACTAL_Stream** clone) + TA_RetCode TA_FRACTAL_Close(TA_FRACTAL_Stream* stream) + TA_RetCode TA_FRACTAL_OutRange(const TA_FRACTAL_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_FRACTAL_Advance(TA_FRACTAL_Stream* stream) + + ctypedef struct TA_HA_Stream: + pass + TA_RetCode TA_HA_OpenAndFill(TA_HA_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outHAOpen, double* outHAHigh, double* outHALow, double* outHAClose) + TA_RetCode TA_HA_Open(TA_HA_Stream** stream, const double* inOpen, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outHAOpen, double* outHAHigh, double* outHALow, double* outHAClose) + TA_RetCode TA_HA_Update(TA_HA_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outHAOpen, double* outHAHigh, double* outHALow, double* outHAClose) + TA_RetCode TA_HA_Peek(const TA_HA_Stream* stream, double inOpen, double inHigh, double inLow, double inClose, double* outHAOpen, double* outHAHigh, double* outHALow, double* outHAClose) + TA_RetCode TA_HA_Value(const TA_HA_Stream* stream, double* outHAOpen, double* outHAHigh, double* outHALow, double* outHAClose) + TA_RetCode TA_HA_Clone(const TA_HA_Stream* stream, TA_HA_Stream** clone) + TA_RetCode TA_HA_Close(TA_HA_Stream* stream) + TA_RetCode TA_HA_OutRange(const TA_HA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HA_Advance(TA_HA_Stream* stream) + + ctypedef struct TA_HMA_Stream: + pass + TA_RetCode TA_HMA_OpenAndFill(TA_HMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_HMA_Open(TA_HMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_HMA_Update(TA_HMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HMA_Peek(const TA_HMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HMA_Value(const TA_HMA_Stream* stream, double* outReal) + TA_RetCode TA_HMA_Clone(const TA_HMA_Stream* stream, TA_HMA_Stream** clone) + TA_RetCode TA_HMA_Close(TA_HMA_Stream* stream) + TA_RetCode TA_HMA_OutRange(const TA_HMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HMA_Advance(TA_HMA_Stream* stream) + + ctypedef struct TA_HT_DCPERIOD_Stream: + pass + TA_RetCode TA_HT_DCPERIOD_OpenAndFill(TA_HT_DCPERIOD_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_HT_DCPERIOD_Open(TA_HT_DCPERIOD_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_HT_DCPERIOD_Update(TA_HT_DCPERIOD_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HT_DCPERIOD_Peek(const TA_HT_DCPERIOD_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HT_DCPERIOD_Value(const TA_HT_DCPERIOD_Stream* stream, double* outReal) + TA_RetCode TA_HT_DCPERIOD_Clone(const TA_HT_DCPERIOD_Stream* stream, TA_HT_DCPERIOD_Stream** clone) + TA_RetCode TA_HT_DCPERIOD_Close(TA_HT_DCPERIOD_Stream* stream) + TA_RetCode TA_HT_DCPERIOD_OutRange(const TA_HT_DCPERIOD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HT_DCPERIOD_Advance(TA_HT_DCPERIOD_Stream* stream) + + ctypedef struct TA_HT_DCPHASE_Stream: + pass + TA_RetCode TA_HT_DCPHASE_OpenAndFill(TA_HT_DCPHASE_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_HT_DCPHASE_Open(TA_HT_DCPHASE_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_HT_DCPHASE_Update(TA_HT_DCPHASE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HT_DCPHASE_Peek(const TA_HT_DCPHASE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HT_DCPHASE_Value(const TA_HT_DCPHASE_Stream* stream, double* outReal) + TA_RetCode TA_HT_DCPHASE_Clone(const TA_HT_DCPHASE_Stream* stream, TA_HT_DCPHASE_Stream** clone) + TA_RetCode TA_HT_DCPHASE_Close(TA_HT_DCPHASE_Stream* stream) + TA_RetCode TA_HT_DCPHASE_OutRange(const TA_HT_DCPHASE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HT_DCPHASE_Advance(TA_HT_DCPHASE_Stream* stream) + + ctypedef struct TA_HT_PHASOR_Stream: + pass + TA_RetCode TA_HT_PHASOR_OpenAndFill(TA_HT_PHASOR_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outInPhase, double* outQuadrature) + TA_RetCode TA_HT_PHASOR_Open(TA_HT_PHASOR_Stream** stream, const double* inReal, int historyLen, double* outInPhase, double* outQuadrature) + TA_RetCode TA_HT_PHASOR_Update(TA_HT_PHASOR_Stream* stream, double inReal, double* outInPhase, double* outQuadrature) + TA_RetCode TA_HT_PHASOR_Peek(const TA_HT_PHASOR_Stream* stream, double inReal, double* outInPhase, double* outQuadrature) + TA_RetCode TA_HT_PHASOR_Value(const TA_HT_PHASOR_Stream* stream, double* outInPhase, double* outQuadrature) + TA_RetCode TA_HT_PHASOR_Clone(const TA_HT_PHASOR_Stream* stream, TA_HT_PHASOR_Stream** clone) + TA_RetCode TA_HT_PHASOR_Close(TA_HT_PHASOR_Stream* stream) + TA_RetCode TA_HT_PHASOR_OutRange(const TA_HT_PHASOR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HT_PHASOR_Advance(TA_HT_PHASOR_Stream* stream) + + ctypedef struct TA_HT_SINE_Stream: + pass + TA_RetCode TA_HT_SINE_OpenAndFill(TA_HT_SINE_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outSine, double* outLeadSine) + TA_RetCode TA_HT_SINE_Open(TA_HT_SINE_Stream** stream, const double* inReal, int historyLen, double* outSine, double* outLeadSine) + TA_RetCode TA_HT_SINE_Update(TA_HT_SINE_Stream* stream, double inReal, double* outSine, double* outLeadSine) + TA_RetCode TA_HT_SINE_Peek(const TA_HT_SINE_Stream* stream, double inReal, double* outSine, double* outLeadSine) + TA_RetCode TA_HT_SINE_Value(const TA_HT_SINE_Stream* stream, double* outSine, double* outLeadSine) + TA_RetCode TA_HT_SINE_Clone(const TA_HT_SINE_Stream* stream, TA_HT_SINE_Stream** clone) + TA_RetCode TA_HT_SINE_Close(TA_HT_SINE_Stream* stream) + TA_RetCode TA_HT_SINE_OutRange(const TA_HT_SINE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HT_SINE_Advance(TA_HT_SINE_Stream* stream) + + ctypedef struct TA_HT_TRENDLINE_Stream: + pass + TA_RetCode TA_HT_TRENDLINE_OpenAndFill(TA_HT_TRENDLINE_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_HT_TRENDLINE_Open(TA_HT_TRENDLINE_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_HT_TRENDLINE_Update(TA_HT_TRENDLINE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HT_TRENDLINE_Peek(const TA_HT_TRENDLINE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_HT_TRENDLINE_Value(const TA_HT_TRENDLINE_Stream* stream, double* outReal) + TA_RetCode TA_HT_TRENDLINE_Clone(const TA_HT_TRENDLINE_Stream* stream, TA_HT_TRENDLINE_Stream** clone) + TA_RetCode TA_HT_TRENDLINE_Close(TA_HT_TRENDLINE_Stream* stream) + TA_RetCode TA_HT_TRENDLINE_OutRange(const TA_HT_TRENDLINE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HT_TRENDLINE_Advance(TA_HT_TRENDLINE_Stream* stream) + + ctypedef struct TA_HT_TRENDMODE_Stream: + pass + TA_RetCode TA_HT_TRENDMODE_OpenAndFill(TA_HT_TRENDMODE_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_HT_TRENDMODE_Open(TA_HT_TRENDMODE_Stream** stream, const double* inReal, int historyLen, int* outInteger) + TA_RetCode TA_HT_TRENDMODE_Update(TA_HT_TRENDMODE_Stream* stream, double inReal, int* outInteger) + TA_RetCode TA_HT_TRENDMODE_Peek(const TA_HT_TRENDMODE_Stream* stream, double inReal, int* outInteger) + TA_RetCode TA_HT_TRENDMODE_Value(const TA_HT_TRENDMODE_Stream* stream, int* outInteger) + TA_RetCode TA_HT_TRENDMODE_Clone(const TA_HT_TRENDMODE_Stream* stream, TA_HT_TRENDMODE_Stream** clone) + TA_RetCode TA_HT_TRENDMODE_Close(TA_HT_TRENDMODE_Stream* stream) + TA_RetCode TA_HT_TRENDMODE_OutRange(const TA_HT_TRENDMODE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_HT_TRENDMODE_Advance(TA_HT_TRENDMODE_Stream* stream) + + ctypedef struct TA_IMI_Stream: + pass + TA_RetCode TA_IMI_OpenAndFill(TA_IMI_Stream** stream, const double* inOpen, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_IMI_Open(TA_IMI_Stream** stream, const double* inOpen, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_IMI_Update(TA_IMI_Stream* stream, double inOpen, double inClose, double* outReal) + TA_RetCode TA_IMI_Peek(const TA_IMI_Stream* stream, double inOpen, double inClose, double* outReal) + TA_RetCode TA_IMI_Value(const TA_IMI_Stream* stream, double* outReal) + TA_RetCode TA_IMI_Clone(const TA_IMI_Stream* stream, TA_IMI_Stream** clone) + TA_RetCode TA_IMI_Close(TA_IMI_Stream* stream) + TA_RetCode TA_IMI_OutRange(const TA_IMI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_IMI_Advance(TA_IMI_Stream* stream) + + ctypedef struct TA_KAMA_Stream: + pass + TA_RetCode TA_KAMA_OpenAndFill(TA_KAMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_KAMA_Open(TA_KAMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_KAMA_Update(TA_KAMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_KAMA_Peek(const TA_KAMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_KAMA_Value(const TA_KAMA_Stream* stream, double* outReal) + TA_RetCode TA_KAMA_Clone(const TA_KAMA_Stream* stream, TA_KAMA_Stream** clone) + TA_RetCode TA_KAMA_Close(TA_KAMA_Stream* stream) + TA_RetCode TA_KAMA_OutRange(const TA_KAMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_KAMA_Advance(TA_KAMA_Stream* stream) + + ctypedef struct TA_KC_Stream: + pass + TA_RetCode TA_KC_OpenAndFill(TA_KC_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int optInATRPeriod, double optInNbDev, int* outBegIdx, int* outNBElement, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_KC_Open(TA_KC_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int optInATRPeriod, double optInNbDev, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_KC_Update(TA_KC_Stream* stream, double inHigh, double inLow, double inClose, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_KC_Peek(const TA_KC_Stream* stream, double inHigh, double inLow, double inClose, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_KC_Value(const TA_KC_Stream* stream, double* outRealUpperBand, double* outRealMiddleBand, double* outRealLowerBand) + TA_RetCode TA_KC_Clone(const TA_KC_Stream* stream, TA_KC_Stream** clone) + TA_RetCode TA_KC_Close(TA_KC_Stream* stream) + TA_RetCode TA_KC_OutRange(const TA_KC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_KC_Advance(TA_KC_Stream* stream) + + ctypedef struct TA_KDJ_Stream: + pass + TA_RetCode TA_KDJ_OpenAndFill(TA_KDJ_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType, int* outBegIdx, int* outNBElement, double* outK, double* outD, double* outJ) + TA_RetCode TA_KDJ_Open(TA_KDJ_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType, double* outK, double* outD, double* outJ) + TA_RetCode TA_KDJ_Update(TA_KDJ_Stream* stream, double inHigh, double inLow, double inClose, double* outK, double* outD, double* outJ) + TA_RetCode TA_KDJ_Peek(const TA_KDJ_Stream* stream, double inHigh, double inLow, double inClose, double* outK, double* outD, double* outJ) + TA_RetCode TA_KDJ_Value(const TA_KDJ_Stream* stream, double* outK, double* outD, double* outJ) + TA_RetCode TA_KDJ_Clone(const TA_KDJ_Stream* stream, TA_KDJ_Stream** clone) + TA_RetCode TA_KDJ_Close(TA_KDJ_Stream* stream) + TA_RetCode TA_KDJ_OutRange(const TA_KDJ_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_KDJ_Advance(TA_KDJ_Stream* stream) + + ctypedef struct TA_LINEARREG_Stream: + pass + TA_RetCode TA_LINEARREG_OpenAndFill(TA_LINEARREG_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_LINEARREG_Open(TA_LINEARREG_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_LINEARREG_Update(TA_LINEARREG_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_Peek(const TA_LINEARREG_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_Value(const TA_LINEARREG_Stream* stream, double* outReal) + TA_RetCode TA_LINEARREG_Clone(const TA_LINEARREG_Stream* stream, TA_LINEARREG_Stream** clone) + TA_RetCode TA_LINEARREG_Close(TA_LINEARREG_Stream* stream) + TA_RetCode TA_LINEARREG_OutRange(const TA_LINEARREG_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_LINEARREG_Advance(TA_LINEARREG_Stream* stream) + + ctypedef struct TA_LINEARREG_ANGLE_Stream: + pass + TA_RetCode TA_LINEARREG_ANGLE_OpenAndFill(TA_LINEARREG_ANGLE_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_LINEARREG_ANGLE_Open(TA_LINEARREG_ANGLE_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_LINEARREG_ANGLE_Update(TA_LINEARREG_ANGLE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_ANGLE_Peek(const TA_LINEARREG_ANGLE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_ANGLE_Value(const TA_LINEARREG_ANGLE_Stream* stream, double* outReal) + TA_RetCode TA_LINEARREG_ANGLE_Clone(const TA_LINEARREG_ANGLE_Stream* stream, TA_LINEARREG_ANGLE_Stream** clone) + TA_RetCode TA_LINEARREG_ANGLE_Close(TA_LINEARREG_ANGLE_Stream* stream) + TA_RetCode TA_LINEARREG_ANGLE_OutRange(const TA_LINEARREG_ANGLE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_LINEARREG_ANGLE_Advance(TA_LINEARREG_ANGLE_Stream* stream) + + ctypedef struct TA_LINEARREG_INTERCEPT_Stream: + pass + TA_RetCode TA_LINEARREG_INTERCEPT_OpenAndFill(TA_LINEARREG_INTERCEPT_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_LINEARREG_INTERCEPT_Open(TA_LINEARREG_INTERCEPT_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_LINEARREG_INTERCEPT_Update(TA_LINEARREG_INTERCEPT_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_INTERCEPT_Peek(const TA_LINEARREG_INTERCEPT_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_INTERCEPT_Value(const TA_LINEARREG_INTERCEPT_Stream* stream, double* outReal) + TA_RetCode TA_LINEARREG_INTERCEPT_Clone(const TA_LINEARREG_INTERCEPT_Stream* stream, TA_LINEARREG_INTERCEPT_Stream** clone) + TA_RetCode TA_LINEARREG_INTERCEPT_Close(TA_LINEARREG_INTERCEPT_Stream* stream) + TA_RetCode TA_LINEARREG_INTERCEPT_OutRange(const TA_LINEARREG_INTERCEPT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_LINEARREG_INTERCEPT_Advance(TA_LINEARREG_INTERCEPT_Stream* stream) + + ctypedef struct TA_LINEARREG_SLOPE_Stream: + pass + TA_RetCode TA_LINEARREG_SLOPE_OpenAndFill(TA_LINEARREG_SLOPE_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_LINEARREG_SLOPE_Open(TA_LINEARREG_SLOPE_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_LINEARREG_SLOPE_Update(TA_LINEARREG_SLOPE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_SLOPE_Peek(const TA_LINEARREG_SLOPE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LINEARREG_SLOPE_Value(const TA_LINEARREG_SLOPE_Stream* stream, double* outReal) + TA_RetCode TA_LINEARREG_SLOPE_Clone(const TA_LINEARREG_SLOPE_Stream* stream, TA_LINEARREG_SLOPE_Stream** clone) + TA_RetCode TA_LINEARREG_SLOPE_Close(TA_LINEARREG_SLOPE_Stream* stream) + TA_RetCode TA_LINEARREG_SLOPE_OutRange(const TA_LINEARREG_SLOPE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_LINEARREG_SLOPE_Advance(TA_LINEARREG_SLOPE_Stream* stream) + + ctypedef struct TA_LN_Stream: + pass + TA_RetCode TA_LN_OpenAndFill(TA_LN_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_LN_Open(TA_LN_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_LN_Update(TA_LN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LN_Peek(const TA_LN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LN_Value(const TA_LN_Stream* stream, double* outReal) + TA_RetCode TA_LN_Clone(const TA_LN_Stream* stream, TA_LN_Stream** clone) + TA_RetCode TA_LN_Close(TA_LN_Stream* stream) + TA_RetCode TA_LN_OutRange(const TA_LN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_LN_Advance(TA_LN_Stream* stream) + + ctypedef struct TA_LOG10_Stream: + pass + TA_RetCode TA_LOG10_OpenAndFill(TA_LOG10_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_LOG10_Open(TA_LOG10_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_LOG10_Update(TA_LOG10_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LOG10_Peek(const TA_LOG10_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_LOG10_Value(const TA_LOG10_Stream* stream, double* outReal) + TA_RetCode TA_LOG10_Clone(const TA_LOG10_Stream* stream, TA_LOG10_Stream** clone) + TA_RetCode TA_LOG10_Close(TA_LOG10_Stream* stream) + TA_RetCode TA_LOG10_OutRange(const TA_LOG10_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_LOG10_Advance(TA_LOG10_Stream* stream) + + ctypedef struct TA_MA_Stream: + pass + TA_RetCode TA_MA_OpenAndFill(TA_MA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MA_Open(TA_MA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, TA_MAType optInMAType, double* outReal) + TA_RetCode TA_MA_Update(TA_MA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MA_Peek(const TA_MA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MA_Value(const TA_MA_Stream* stream, double* outReal) + TA_RetCode TA_MA_Clone(const TA_MA_Stream* stream, TA_MA_Stream** clone) + TA_RetCode TA_MA_Close(TA_MA_Stream* stream) + TA_RetCode TA_MA_OutRange(const TA_MA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MA_Advance(TA_MA_Stream* stream) + + ctypedef struct TA_MACD_Stream: + pass + TA_RetCode TA_MACD_OpenAndFill(TA_MACD_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACD_Open(TA_MACD_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACD_Update(TA_MACD_Stream* stream, double inReal, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACD_Peek(const TA_MACD_Stream* stream, double inReal, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACD_Value(const TA_MACD_Stream* stream, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACD_Clone(const TA_MACD_Stream* stream, TA_MACD_Stream** clone) + TA_RetCode TA_MACD_Close(TA_MACD_Stream* stream) + TA_RetCode TA_MACD_OutRange(const TA_MACD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MACD_Advance(TA_MACD_Stream* stream) + + ctypedef struct TA_MACDEXT_Stream: + pass + TA_RetCode TA_MACDEXT_OpenAndFill(TA_MACDEXT_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, TA_MAType optInFastMAType, int optInSlowPeriod, TA_MAType optInSlowMAType, int optInSignalPeriod, TA_MAType optInSignalMAType, int* outBegIdx, int* outNBElement, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDEXT_Open(TA_MACDEXT_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, TA_MAType optInFastMAType, int optInSlowPeriod, TA_MAType optInSlowMAType, int optInSignalPeriod, TA_MAType optInSignalMAType, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDEXT_Update(TA_MACDEXT_Stream* stream, double inReal, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDEXT_Peek(const TA_MACDEXT_Stream* stream, double inReal, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDEXT_Value(const TA_MACDEXT_Stream* stream, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDEXT_Clone(const TA_MACDEXT_Stream* stream, TA_MACDEXT_Stream** clone) + TA_RetCode TA_MACDEXT_Close(TA_MACDEXT_Stream* stream) + TA_RetCode TA_MACDEXT_OutRange(const TA_MACDEXT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MACDEXT_Advance(TA_MACDEXT_Stream* stream) + + ctypedef struct TA_MACDFIX_Stream: + pass + TA_RetCode TA_MACDFIX_OpenAndFill(TA_MACDFIX_Stream** stream, const double* inReal, int historyLen, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDFIX_Open(TA_MACDFIX_Stream** stream, const double* inReal, int historyLen, int optInSignalPeriod, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDFIX_Update(TA_MACDFIX_Stream* stream, double inReal, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDFIX_Peek(const TA_MACDFIX_Stream* stream, double inReal, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDFIX_Value(const TA_MACDFIX_Stream* stream, double* outMACD, double* outMACDSignal, double* outMACDHist) + TA_RetCode TA_MACDFIX_Clone(const TA_MACDFIX_Stream* stream, TA_MACDFIX_Stream** clone) + TA_RetCode TA_MACDFIX_Close(TA_MACDFIX_Stream* stream) + TA_RetCode TA_MACDFIX_OutRange(const TA_MACDFIX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MACDFIX_Advance(TA_MACDFIX_Stream* stream) + + ctypedef struct TA_MAMA_Stream: + pass + TA_RetCode TA_MAMA_OpenAndFill(TA_MAMA_Stream** stream, const double* inReal, int historyLen, double optInFastLimit, double optInSlowLimit, int* outBegIdx, int* outNBElement, double* outMAMA, double* outFAMA) + TA_RetCode TA_MAMA_Open(TA_MAMA_Stream** stream, const double* inReal, int historyLen, double optInFastLimit, double optInSlowLimit, double* outMAMA, double* outFAMA) + TA_RetCode TA_MAMA_Update(TA_MAMA_Stream* stream, double inReal, double* outMAMA, double* outFAMA) + TA_RetCode TA_MAMA_Peek(const TA_MAMA_Stream* stream, double inReal, double* outMAMA, double* outFAMA) + TA_RetCode TA_MAMA_Value(const TA_MAMA_Stream* stream, double* outMAMA, double* outFAMA) + TA_RetCode TA_MAMA_Clone(const TA_MAMA_Stream* stream, TA_MAMA_Stream** clone) + TA_RetCode TA_MAMA_Close(TA_MAMA_Stream* stream) + TA_RetCode TA_MAMA_OutRange(const TA_MAMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MAMA_Advance(TA_MAMA_Stream* stream) + + ctypedef struct TA_MARKETFI_Stream: + pass + TA_RetCode TA_MARKETFI_OpenAndFill(TA_MARKETFI_Stream** stream, const double* inHigh, const double* inLow, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MARKETFI_Open(TA_MARKETFI_Stream** stream, const double* inHigh, const double* inLow, const double* inVolume, int historyLen, double* outReal) + TA_RetCode TA_MARKETFI_Update(TA_MARKETFI_Stream* stream, double inHigh, double inLow, double inVolume, double* outReal) + TA_RetCode TA_MARKETFI_Peek(const TA_MARKETFI_Stream* stream, double inHigh, double inLow, double inVolume, double* outReal) + TA_RetCode TA_MARKETFI_Value(const TA_MARKETFI_Stream* stream, double* outReal) + TA_RetCode TA_MARKETFI_Clone(const TA_MARKETFI_Stream* stream, TA_MARKETFI_Stream** clone) + TA_RetCode TA_MARKETFI_Close(TA_MARKETFI_Stream* stream) + TA_RetCode TA_MARKETFI_OutRange(const TA_MARKETFI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MARKETFI_Advance(TA_MARKETFI_Stream* stream) + + ctypedef struct TA_MASSI_Stream: + pass + TA_RetCode TA_MASSI_OpenAndFill(TA_MASSI_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInFastPeriod, int optInSlowPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MASSI_Open(TA_MASSI_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInFastPeriod, int optInSlowPeriod, double* outReal) + TA_RetCode TA_MASSI_Update(TA_MASSI_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MASSI_Peek(const TA_MASSI_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MASSI_Value(const TA_MASSI_Stream* stream, double* outReal) + TA_RetCode TA_MASSI_Clone(const TA_MASSI_Stream* stream, TA_MASSI_Stream** clone) + TA_RetCode TA_MASSI_Close(TA_MASSI_Stream* stream) + TA_RetCode TA_MASSI_OutRange(const TA_MASSI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MASSI_Advance(TA_MASSI_Stream* stream) + + ctypedef struct TA_MAVP_Stream: + pass + TA_RetCode TA_MAVP_OpenAndFill(TA_MAVP_Stream** stream, const double* inReal, const double* inPeriods, int historyLen, int optInMinPeriod, int optInMaxPeriod, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MAVP_Open(TA_MAVP_Stream** stream, const double* inReal, const double* inPeriods, int historyLen, int optInMinPeriod, int optInMaxPeriod, TA_MAType optInMAType, double* outReal) + TA_RetCode TA_MAVP_Update(TA_MAVP_Stream* stream, double inReal, double inPeriods, double* outReal) + TA_RetCode TA_MAVP_Peek(const TA_MAVP_Stream* stream, double inReal, double inPeriods, double* outReal) + TA_RetCode TA_MAVP_Value(const TA_MAVP_Stream* stream, double* outReal) + TA_RetCode TA_MAVP_Clone(const TA_MAVP_Stream* stream, TA_MAVP_Stream** clone) + TA_RetCode TA_MAVP_Close(TA_MAVP_Stream* stream) + TA_RetCode TA_MAVP_OutRange(const TA_MAVP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MAVP_Advance(TA_MAVP_Stream* stream) + + ctypedef struct TA_MAX_Stream: + pass + TA_RetCode TA_MAX_OpenAndFill(TA_MAX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MAX_Open(TA_MAX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MAX_Update(TA_MAX_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MAX_Peek(const TA_MAX_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MAX_Value(const TA_MAX_Stream* stream, double* outReal) + TA_RetCode TA_MAX_Clone(const TA_MAX_Stream* stream, TA_MAX_Stream** clone) + TA_RetCode TA_MAX_Close(TA_MAX_Stream* stream) + TA_RetCode TA_MAX_OutRange(const TA_MAX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MAX_Advance(TA_MAX_Stream* stream) + + ctypedef struct TA_MAXINDEX_Stream: + pass + TA_RetCode TA_MAXINDEX_OpenAndFill(TA_MAXINDEX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_MAXINDEX_Open(TA_MAXINDEX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outInteger) + TA_RetCode TA_MAXINDEX_Update(TA_MAXINDEX_Stream* stream, double inReal, int* outInteger) + TA_RetCode TA_MAXINDEX_Peek(const TA_MAXINDEX_Stream* stream, double inReal, int* outInteger) + TA_RetCode TA_MAXINDEX_Value(const TA_MAXINDEX_Stream* stream, int* outInteger) + TA_RetCode TA_MAXINDEX_Clone(const TA_MAXINDEX_Stream* stream, TA_MAXINDEX_Stream** clone) + TA_RetCode TA_MAXINDEX_Close(TA_MAXINDEX_Stream* stream) + TA_RetCode TA_MAXINDEX_OutRange(const TA_MAXINDEX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MAXINDEX_Advance(TA_MAXINDEX_Stream* stream) + + ctypedef struct TA_MEDPRICE_Stream: + pass + TA_RetCode TA_MEDPRICE_OpenAndFill(TA_MEDPRICE_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MEDPRICE_Open(TA_MEDPRICE_Stream** stream, const double* inHigh, const double* inLow, int historyLen, double* outReal) + TA_RetCode TA_MEDPRICE_Update(TA_MEDPRICE_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MEDPRICE_Peek(const TA_MEDPRICE_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MEDPRICE_Value(const TA_MEDPRICE_Stream* stream, double* outReal) + TA_RetCode TA_MEDPRICE_Clone(const TA_MEDPRICE_Stream* stream, TA_MEDPRICE_Stream** clone) + TA_RetCode TA_MEDPRICE_Close(TA_MEDPRICE_Stream* stream) + TA_RetCode TA_MEDPRICE_OutRange(const TA_MEDPRICE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MEDPRICE_Advance(TA_MEDPRICE_Stream* stream) + + ctypedef struct TA_MFI_Stream: + pass + TA_RetCode TA_MFI_OpenAndFill(TA_MFI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MFI_Open(TA_MFI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MFI_Update(TA_MFI_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_MFI_Peek(const TA_MFI_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_MFI_Value(const TA_MFI_Stream* stream, double* outReal) + TA_RetCode TA_MFI_Clone(const TA_MFI_Stream* stream, TA_MFI_Stream** clone) + TA_RetCode TA_MFI_Close(TA_MFI_Stream* stream) + TA_RetCode TA_MFI_OutRange(const TA_MFI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MFI_Advance(TA_MFI_Stream* stream) + + ctypedef struct TA_MIDPOINT_Stream: + pass + TA_RetCode TA_MIDPOINT_OpenAndFill(TA_MIDPOINT_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MIDPOINT_Open(TA_MIDPOINT_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MIDPOINT_Update(TA_MIDPOINT_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MIDPOINT_Peek(const TA_MIDPOINT_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MIDPOINT_Value(const TA_MIDPOINT_Stream* stream, double* outReal) + TA_RetCode TA_MIDPOINT_Clone(const TA_MIDPOINT_Stream* stream, TA_MIDPOINT_Stream** clone) + TA_RetCode TA_MIDPOINT_Close(TA_MIDPOINT_Stream* stream) + TA_RetCode TA_MIDPOINT_OutRange(const TA_MIDPOINT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MIDPOINT_Advance(TA_MIDPOINT_Stream* stream) + + ctypedef struct TA_MIDPRICE_Stream: + pass + TA_RetCode TA_MIDPRICE_OpenAndFill(TA_MIDPRICE_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MIDPRICE_Open(TA_MIDPRICE_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MIDPRICE_Update(TA_MIDPRICE_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MIDPRICE_Peek(const TA_MIDPRICE_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MIDPRICE_Value(const TA_MIDPRICE_Stream* stream, double* outReal) + TA_RetCode TA_MIDPRICE_Clone(const TA_MIDPRICE_Stream* stream, TA_MIDPRICE_Stream** clone) + TA_RetCode TA_MIDPRICE_Close(TA_MIDPRICE_Stream* stream) + TA_RetCode TA_MIDPRICE_OutRange(const TA_MIDPRICE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MIDPRICE_Advance(TA_MIDPRICE_Stream* stream) + + ctypedef struct TA_MIN_Stream: + pass + TA_RetCode TA_MIN_OpenAndFill(TA_MIN_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MIN_Open(TA_MIN_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MIN_Update(TA_MIN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MIN_Peek(const TA_MIN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MIN_Value(const TA_MIN_Stream* stream, double* outReal) + TA_RetCode TA_MIN_Clone(const TA_MIN_Stream* stream, TA_MIN_Stream** clone) + TA_RetCode TA_MIN_Close(TA_MIN_Stream* stream) + TA_RetCode TA_MIN_OutRange(const TA_MIN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MIN_Advance(TA_MIN_Stream* stream) + + ctypedef struct TA_MININDEX_Stream: + pass + TA_RetCode TA_MININDEX_OpenAndFill(TA_MININDEX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, int* outInteger) + TA_RetCode TA_MININDEX_Open(TA_MININDEX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outInteger) + TA_RetCode TA_MININDEX_Update(TA_MININDEX_Stream* stream, double inReal, int* outInteger) + TA_RetCode TA_MININDEX_Peek(const TA_MININDEX_Stream* stream, double inReal, int* outInteger) + TA_RetCode TA_MININDEX_Value(const TA_MININDEX_Stream* stream, int* outInteger) + TA_RetCode TA_MININDEX_Clone(const TA_MININDEX_Stream* stream, TA_MININDEX_Stream** clone) + TA_RetCode TA_MININDEX_Close(TA_MININDEX_Stream* stream) + TA_RetCode TA_MININDEX_OutRange(const TA_MININDEX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MININDEX_Advance(TA_MININDEX_Stream* stream) + + ctypedef struct TA_MINMAX_Stream: + pass + TA_RetCode TA_MINMAX_OpenAndFill(TA_MINMAX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outMin, double* outMax) + TA_RetCode TA_MINMAX_Open(TA_MINMAX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outMin, double* outMax) + TA_RetCode TA_MINMAX_Update(TA_MINMAX_Stream* stream, double inReal, double* outMin, double* outMax) + TA_RetCode TA_MINMAX_Peek(const TA_MINMAX_Stream* stream, double inReal, double* outMin, double* outMax) + TA_RetCode TA_MINMAX_Value(const TA_MINMAX_Stream* stream, double* outMin, double* outMax) + TA_RetCode TA_MINMAX_Clone(const TA_MINMAX_Stream* stream, TA_MINMAX_Stream** clone) + TA_RetCode TA_MINMAX_Close(TA_MINMAX_Stream* stream) + TA_RetCode TA_MINMAX_OutRange(const TA_MINMAX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MINMAX_Advance(TA_MINMAX_Stream* stream) + + ctypedef struct TA_MINMAXINDEX_Stream: + pass + TA_RetCode TA_MINMAXINDEX_OpenAndFill(TA_MINMAXINDEX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, int* outMinIdx, int* outMaxIdx) + TA_RetCode TA_MINMAXINDEX_Open(TA_MINMAXINDEX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outMinIdx, int* outMaxIdx) + TA_RetCode TA_MINMAXINDEX_Update(TA_MINMAXINDEX_Stream* stream, double inReal, int* outMinIdx, int* outMaxIdx) + TA_RetCode TA_MINMAXINDEX_Peek(const TA_MINMAXINDEX_Stream* stream, double inReal, int* outMinIdx, int* outMaxIdx) + TA_RetCode TA_MINMAXINDEX_Value(const TA_MINMAXINDEX_Stream* stream, int* outMinIdx, int* outMaxIdx) + TA_RetCode TA_MINMAXINDEX_Clone(const TA_MINMAXINDEX_Stream* stream, TA_MINMAXINDEX_Stream** clone) + TA_RetCode TA_MINMAXINDEX_Close(TA_MINMAXINDEX_Stream* stream) + TA_RetCode TA_MINMAXINDEX_OutRange(const TA_MINMAXINDEX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MINMAXINDEX_Advance(TA_MINMAXINDEX_Stream* stream) + + ctypedef struct TA_MINUS_DI_Stream: + pass + TA_RetCode TA_MINUS_DI_OpenAndFill(TA_MINUS_DI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MINUS_DI_Open(TA_MINUS_DI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MINUS_DI_Update(TA_MINUS_DI_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_MINUS_DI_Peek(const TA_MINUS_DI_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_MINUS_DI_Value(const TA_MINUS_DI_Stream* stream, double* outReal) + TA_RetCode TA_MINUS_DI_Clone(const TA_MINUS_DI_Stream* stream, TA_MINUS_DI_Stream** clone) + TA_RetCode TA_MINUS_DI_Close(TA_MINUS_DI_Stream* stream) + TA_RetCode TA_MINUS_DI_OutRange(const TA_MINUS_DI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MINUS_DI_Advance(TA_MINUS_DI_Stream* stream) + + ctypedef struct TA_MINUS_DM_Stream: + pass + TA_RetCode TA_MINUS_DM_OpenAndFill(TA_MINUS_DM_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MINUS_DM_Open(TA_MINUS_DM_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MINUS_DM_Update(TA_MINUS_DM_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MINUS_DM_Peek(const TA_MINUS_DM_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_MINUS_DM_Value(const TA_MINUS_DM_Stream* stream, double* outReal) + TA_RetCode TA_MINUS_DM_Clone(const TA_MINUS_DM_Stream* stream, TA_MINUS_DM_Stream** clone) + TA_RetCode TA_MINUS_DM_Close(TA_MINUS_DM_Stream* stream) + TA_RetCode TA_MINUS_DM_OutRange(const TA_MINUS_DM_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MINUS_DM_Advance(TA_MINUS_DM_Stream* stream) + + ctypedef struct TA_MOM_Stream: + pass + TA_RetCode TA_MOM_OpenAndFill(TA_MOM_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MOM_Open(TA_MOM_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_MOM_Update(TA_MOM_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MOM_Peek(const TA_MOM_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_MOM_Value(const TA_MOM_Stream* stream, double* outReal) + TA_RetCode TA_MOM_Clone(const TA_MOM_Stream* stream, TA_MOM_Stream** clone) + TA_RetCode TA_MOM_Close(TA_MOM_Stream* stream) + TA_RetCode TA_MOM_OutRange(const TA_MOM_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MOM_Advance(TA_MOM_Stream* stream) + + ctypedef struct TA_MULT_Stream: + pass + TA_RetCode TA_MULT_OpenAndFill(TA_MULT_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_MULT_Open(TA_MULT_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, double* outReal) + TA_RetCode TA_MULT_Update(TA_MULT_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_MULT_Peek(const TA_MULT_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_MULT_Value(const TA_MULT_Stream* stream, double* outReal) + TA_RetCode TA_MULT_Clone(const TA_MULT_Stream* stream, TA_MULT_Stream** clone) + TA_RetCode TA_MULT_Close(TA_MULT_Stream* stream) + TA_RetCode TA_MULT_OutRange(const TA_MULT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_MULT_Advance(TA_MULT_Stream* stream) + + ctypedef struct TA_NATR_Stream: + pass + TA_RetCode TA_NATR_OpenAndFill(TA_NATR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_NATR_Open(TA_NATR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_NATR_Update(TA_NATR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_NATR_Peek(const TA_NATR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_NATR_Value(const TA_NATR_Stream* stream, double* outReal) + TA_RetCode TA_NATR_Clone(const TA_NATR_Stream* stream, TA_NATR_Stream** clone) + TA_RetCode TA_NATR_Close(TA_NATR_Stream* stream) + TA_RetCode TA_NATR_OutRange(const TA_NATR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_NATR_Advance(TA_NATR_Stream* stream) + + ctypedef struct TA_NVI_Stream: + pass + TA_RetCode TA_NVI_OpenAndFill(TA_NVI_Stream** stream, const double* inClose, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_NVI_Open(TA_NVI_Stream** stream, const double* inClose, const double* inVolume, int historyLen, double* outReal) + TA_RetCode TA_NVI_Update(TA_NVI_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_NVI_Peek(const TA_NVI_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_NVI_Value(const TA_NVI_Stream* stream, double* outReal) + TA_RetCode TA_NVI_Clone(const TA_NVI_Stream* stream, TA_NVI_Stream** clone) + TA_RetCode TA_NVI_Close(TA_NVI_Stream* stream) + TA_RetCode TA_NVI_OutRange(const TA_NVI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_NVI_Advance(TA_NVI_Stream* stream) + + ctypedef struct TA_OBV_Stream: + pass + TA_RetCode TA_OBV_OpenAndFill(TA_OBV_Stream** stream, const double* inReal, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_OBV_Open(TA_OBV_Stream** stream, const double* inReal, const double* inVolume, int historyLen, double* outReal) + TA_RetCode TA_OBV_Update(TA_OBV_Stream* stream, double inReal, double inVolume, double* outReal) + TA_RetCode TA_OBV_Peek(const TA_OBV_Stream* stream, double inReal, double inVolume, double* outReal) + TA_RetCode TA_OBV_Value(const TA_OBV_Stream* stream, double* outReal) + TA_RetCode TA_OBV_Clone(const TA_OBV_Stream* stream, TA_OBV_Stream** clone) + TA_RetCode TA_OBV_Close(TA_OBV_Stream* stream) + TA_RetCode TA_OBV_OutRange(const TA_OBV_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_OBV_Advance(TA_OBV_Stream* stream) + + ctypedef struct TA_PERCENTILE_Stream: + pass + TA_RetCode TA_PERCENTILE_OpenAndFill(TA_PERCENTILE_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInPercentile, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PERCENTILE_Open(TA_PERCENTILE_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInPercentile, double* outReal) + TA_RetCode TA_PERCENTILE_Update(TA_PERCENTILE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PERCENTILE_Peek(const TA_PERCENTILE_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PERCENTILE_Value(const TA_PERCENTILE_Stream* stream, double* outReal) + TA_RetCode TA_PERCENTILE_Clone(const TA_PERCENTILE_Stream* stream, TA_PERCENTILE_Stream** clone) + TA_RetCode TA_PERCENTILE_Close(TA_PERCENTILE_Stream* stream) + TA_RetCode TA_PERCENTILE_OutRange(const TA_PERCENTILE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PERCENTILE_Advance(TA_PERCENTILE_Stream* stream) + + ctypedef struct TA_PERCENTRANK_Stream: + pass + TA_RetCode TA_PERCENTRANK_OpenAndFill(TA_PERCENTRANK_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PERCENTRANK_Open(TA_PERCENTRANK_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_PERCENTRANK_Update(TA_PERCENTRANK_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PERCENTRANK_Peek(const TA_PERCENTRANK_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PERCENTRANK_Value(const TA_PERCENTRANK_Stream* stream, double* outReal) + TA_RetCode TA_PERCENTRANK_Clone(const TA_PERCENTRANK_Stream* stream, TA_PERCENTRANK_Stream** clone) + TA_RetCode TA_PERCENTRANK_Close(TA_PERCENTRANK_Stream* stream) + TA_RetCode TA_PERCENTRANK_OutRange(const TA_PERCENTRANK_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PERCENTRANK_Advance(TA_PERCENTRANK_Stream* stream) + + ctypedef struct TA_PLUS_DI_Stream: + pass + TA_RetCode TA_PLUS_DI_OpenAndFill(TA_PLUS_DI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PLUS_DI_Open(TA_PLUS_DI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_PLUS_DI_Update(TA_PLUS_DI_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_PLUS_DI_Peek(const TA_PLUS_DI_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_PLUS_DI_Value(const TA_PLUS_DI_Stream* stream, double* outReal) + TA_RetCode TA_PLUS_DI_Clone(const TA_PLUS_DI_Stream* stream, TA_PLUS_DI_Stream** clone) + TA_RetCode TA_PLUS_DI_Close(TA_PLUS_DI_Stream* stream) + TA_RetCode TA_PLUS_DI_OutRange(const TA_PLUS_DI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PLUS_DI_Advance(TA_PLUS_DI_Stream* stream) + + ctypedef struct TA_PLUS_DM_Stream: + pass + TA_RetCode TA_PLUS_DM_OpenAndFill(TA_PLUS_DM_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PLUS_DM_Open(TA_PLUS_DM_Stream** stream, const double* inHigh, const double* inLow, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_PLUS_DM_Update(TA_PLUS_DM_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_PLUS_DM_Peek(const TA_PLUS_DM_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_PLUS_DM_Value(const TA_PLUS_DM_Stream* stream, double* outReal) + TA_RetCode TA_PLUS_DM_Clone(const TA_PLUS_DM_Stream* stream, TA_PLUS_DM_Stream** clone) + TA_RetCode TA_PLUS_DM_Close(TA_PLUS_DM_Stream* stream) + TA_RetCode TA_PLUS_DM_OutRange(const TA_PLUS_DM_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PLUS_DM_Advance(TA_PLUS_DM_Stream* stream) + + ctypedef struct TA_PPO_Stream: + pass + TA_RetCode TA_PPO_OpenAndFill(TA_PPO_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PPO_Open(TA_PPO_Stream** stream, const double* inReal, int historyLen, int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, double* outReal) + TA_RetCode TA_PPO_Update(TA_PPO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PPO_Peek(const TA_PPO_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_PPO_Value(const TA_PPO_Stream* stream, double* outReal) + TA_RetCode TA_PPO_Clone(const TA_PPO_Stream* stream, TA_PPO_Stream** clone) + TA_RetCode TA_PPO_Close(TA_PPO_Stream* stream) + TA_RetCode TA_PPO_OutRange(const TA_PPO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PPO_Advance(TA_PPO_Stream* stream) + + ctypedef struct TA_PVI_Stream: + pass + TA_RetCode TA_PVI_OpenAndFill(TA_PVI_Stream** stream, const double* inClose, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PVI_Open(TA_PVI_Stream** stream, const double* inClose, const double* inVolume, int historyLen, double* outReal) + TA_RetCode TA_PVI_Update(TA_PVI_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_PVI_Peek(const TA_PVI_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_PVI_Value(const TA_PVI_Stream* stream, double* outReal) + TA_RetCode TA_PVI_Clone(const TA_PVI_Stream* stream, TA_PVI_Stream** clone) + TA_RetCode TA_PVI_Close(TA_PVI_Stream* stream) + TA_RetCode TA_PVI_OutRange(const TA_PVI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PVI_Advance(TA_PVI_Stream* stream) + + ctypedef struct TA_PVO_Stream: + pass + TA_RetCode TA_PVO_OpenAndFill(TA_PVO_Stream** stream, const double* inVolume, int historyLen, int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PVO_Open(TA_PVO_Stream** stream, const double* inVolume, int historyLen, int optInFastPeriod, int optInSlowPeriod, TA_MAType optInMAType, double* outReal) + TA_RetCode TA_PVO_Update(TA_PVO_Stream* stream, double inVolume, double* outReal) + TA_RetCode TA_PVO_Peek(const TA_PVO_Stream* stream, double inVolume, double* outReal) + TA_RetCode TA_PVO_Value(const TA_PVO_Stream* stream, double* outReal) + TA_RetCode TA_PVO_Clone(const TA_PVO_Stream* stream, TA_PVO_Stream** clone) + TA_RetCode TA_PVO_Close(TA_PVO_Stream* stream) + TA_RetCode TA_PVO_OutRange(const TA_PVO_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PVO_Advance(TA_PVO_Stream* stream) + + ctypedef struct TA_PVT_Stream: + pass + TA_RetCode TA_PVT_OpenAndFill(TA_PVT_Stream** stream, const double* inClose, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_PVT_Open(TA_PVT_Stream** stream, const double* inClose, const double* inVolume, int historyLen, double* outReal) + TA_RetCode TA_PVT_Update(TA_PVT_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_PVT_Peek(const TA_PVT_Stream* stream, double inClose, double inVolume, double* outReal) + TA_RetCode TA_PVT_Value(const TA_PVT_Stream* stream, double* outReal) + TA_RetCode TA_PVT_Clone(const TA_PVT_Stream* stream, TA_PVT_Stream** clone) + TA_RetCode TA_PVT_Close(TA_PVT_Stream* stream) + TA_RetCode TA_PVT_OutRange(const TA_PVT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_PVT_Advance(TA_PVT_Stream* stream) + + ctypedef struct TA_QSTICK_Stream: + pass + TA_RetCode TA_QSTICK_OpenAndFill(TA_QSTICK_Stream** stream, const double* inOpen, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_QSTICK_Open(TA_QSTICK_Stream** stream, const double* inOpen, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_QSTICK_Update(TA_QSTICK_Stream* stream, double inOpen, double inClose, double* outReal) + TA_RetCode TA_QSTICK_Peek(const TA_QSTICK_Stream* stream, double inOpen, double inClose, double* outReal) + TA_RetCode TA_QSTICK_Value(const TA_QSTICK_Stream* stream, double* outReal) + TA_RetCode TA_QSTICK_Clone(const TA_QSTICK_Stream* stream, TA_QSTICK_Stream** clone) + TA_RetCode TA_QSTICK_Close(TA_QSTICK_Stream* stream) + TA_RetCode TA_QSTICK_OutRange(const TA_QSTICK_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_QSTICK_Advance(TA_QSTICK_Stream* stream) + + ctypedef struct TA_RMA_Stream: + pass + TA_RetCode TA_RMA_OpenAndFill(TA_RMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_RMA_Open(TA_RMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_RMA_Update(TA_RMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_RMA_Peek(const TA_RMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_RMA_Value(const TA_RMA_Stream* stream, double* outReal) + TA_RetCode TA_RMA_Clone(const TA_RMA_Stream* stream, TA_RMA_Stream** clone) + TA_RetCode TA_RMA_Close(TA_RMA_Stream* stream) + TA_RetCode TA_RMA_OutRange(const TA_RMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_RMA_Advance(TA_RMA_Stream* stream) + + ctypedef struct TA_ROC_Stream: + pass + TA_RetCode TA_ROC_OpenAndFill(TA_ROC_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ROC_Open(TA_ROC_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ROC_Update(TA_ROC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROC_Peek(const TA_ROC_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROC_Value(const TA_ROC_Stream* stream, double* outReal) + TA_RetCode TA_ROC_Clone(const TA_ROC_Stream* stream, TA_ROC_Stream** clone) + TA_RetCode TA_ROC_Close(TA_ROC_Stream* stream) + TA_RetCode TA_ROC_OutRange(const TA_ROC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ROC_Advance(TA_ROC_Stream* stream) + + ctypedef struct TA_ROCP_Stream: + pass + TA_RetCode TA_ROCP_OpenAndFill(TA_ROCP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ROCP_Open(TA_ROCP_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ROCP_Update(TA_ROCP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROCP_Peek(const TA_ROCP_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROCP_Value(const TA_ROCP_Stream* stream, double* outReal) + TA_RetCode TA_ROCP_Clone(const TA_ROCP_Stream* stream, TA_ROCP_Stream** clone) + TA_RetCode TA_ROCP_Close(TA_ROCP_Stream* stream) + TA_RetCode TA_ROCP_OutRange(const TA_ROCP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ROCP_Advance(TA_ROCP_Stream* stream) + + ctypedef struct TA_ROCR_Stream: + pass + TA_RetCode TA_ROCR_OpenAndFill(TA_ROCR_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ROCR_Open(TA_ROCR_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ROCR_Update(TA_ROCR_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROCR_Peek(const TA_ROCR_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROCR_Value(const TA_ROCR_Stream* stream, double* outReal) + TA_RetCode TA_ROCR_Clone(const TA_ROCR_Stream* stream, TA_ROCR_Stream** clone) + TA_RetCode TA_ROCR_Close(TA_ROCR_Stream* stream) + TA_RetCode TA_ROCR_OutRange(const TA_ROCR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ROCR_Advance(TA_ROCR_Stream* stream) + + ctypedef struct TA_ROCR100_Stream: + pass + TA_RetCode TA_ROCR100_OpenAndFill(TA_ROCR100_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ROCR100_Open(TA_ROCR100_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ROCR100_Update(TA_ROCR100_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROCR100_Peek(const TA_ROCR100_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ROCR100_Value(const TA_ROCR100_Stream* stream, double* outReal) + TA_RetCode TA_ROCR100_Clone(const TA_ROCR100_Stream* stream, TA_ROCR100_Stream** clone) + TA_RetCode TA_ROCR100_Close(TA_ROCR100_Stream* stream) + TA_RetCode TA_ROCR100_OutRange(const TA_ROCR100_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ROCR100_Advance(TA_ROCR100_Stream* stream) + + ctypedef struct TA_RSI_Stream: + pass + TA_RetCode TA_RSI_OpenAndFill(TA_RSI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_RSI_Open(TA_RSI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_RSI_Update(TA_RSI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_RSI_Peek(const TA_RSI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_RSI_Value(const TA_RSI_Stream* stream, double* outReal) + TA_RetCode TA_RSI_Clone(const TA_RSI_Stream* stream, TA_RSI_Stream** clone) + TA_RetCode TA_RSI_Close(TA_RSI_Stream* stream) + TA_RetCode TA_RSI_OutRange(const TA_RSI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_RSI_Advance(TA_RSI_Stream* stream) + + ctypedef struct TA_RVI_Stream: + pass + TA_RetCode TA_RVI_OpenAndFill(TA_RVI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInStdDevPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_RVI_Open(TA_RVI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInStdDevPeriod, double* outReal) + TA_RetCode TA_RVI_Update(TA_RVI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_RVI_Peek(const TA_RVI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_RVI_Value(const TA_RVI_Stream* stream, double* outReal) + TA_RetCode TA_RVI_Clone(const TA_RVI_Stream* stream, TA_RVI_Stream** clone) + TA_RetCode TA_RVI_Close(TA_RVI_Stream* stream) + TA_RetCode TA_RVI_OutRange(const TA_RVI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_RVI_Advance(TA_RVI_Stream* stream) + + ctypedef struct TA_RVOL_Stream: + pass + TA_RetCode TA_RVOL_OpenAndFill(TA_RVOL_Stream** stream, const double* inVolume, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_RVOL_Open(TA_RVOL_Stream** stream, const double* inVolume, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_RVOL_Update(TA_RVOL_Stream* stream, double inVolume, double* outReal) + TA_RetCode TA_RVOL_Peek(const TA_RVOL_Stream* stream, double inVolume, double* outReal) + TA_RetCode TA_RVOL_Value(const TA_RVOL_Stream* stream, double* outReal) + TA_RetCode TA_RVOL_Clone(const TA_RVOL_Stream* stream, TA_RVOL_Stream** clone) + TA_RetCode TA_RVOL_Close(TA_RVOL_Stream* stream) + TA_RetCode TA_RVOL_OutRange(const TA_RVOL_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_RVOL_Advance(TA_RVOL_Stream* stream) + + ctypedef struct TA_SAR_Stream: + pass + TA_RetCode TA_SAR_OpenAndFill(TA_SAR_Stream** stream, const double* inHigh, const double* inLow, int historyLen, double optInAcceleration, double optInMaximum, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SAR_Open(TA_SAR_Stream** stream, const double* inHigh, const double* inLow, int historyLen, double optInAcceleration, double optInMaximum, double* outReal) + TA_RetCode TA_SAR_Update(TA_SAR_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_SAR_Peek(const TA_SAR_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_SAR_Value(const TA_SAR_Stream* stream, double* outReal) + TA_RetCode TA_SAR_Clone(const TA_SAR_Stream* stream, TA_SAR_Stream** clone) + TA_RetCode TA_SAR_Close(TA_SAR_Stream* stream) + TA_RetCode TA_SAR_OutRange(const TA_SAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SAR_Advance(TA_SAR_Stream* stream) + + ctypedef struct TA_SAREXT_Stream: + pass + TA_RetCode TA_SAREXT_OpenAndFill(TA_SAREXT_Stream** stream, const double* inHigh, const double* inLow, int historyLen, double optInStartValue, double optInOffsetOnReverse, double optInAccelerationInitLong, double optInAccelerationLong, double optInAccelerationMaxLong, double optInAccelerationInitShort, double optInAccelerationShort, double optInAccelerationMaxShort, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SAREXT_Open(TA_SAREXT_Stream** stream, const double* inHigh, const double* inLow, int historyLen, double optInStartValue, double optInOffsetOnReverse, double optInAccelerationInitLong, double optInAccelerationLong, double optInAccelerationMaxLong, double optInAccelerationInitShort, double optInAccelerationShort, double optInAccelerationMaxShort, double* outReal) + TA_RetCode TA_SAREXT_Update(TA_SAREXT_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_SAREXT_Peek(const TA_SAREXT_Stream* stream, double inHigh, double inLow, double* outReal) + TA_RetCode TA_SAREXT_Value(const TA_SAREXT_Stream* stream, double* outReal) + TA_RetCode TA_SAREXT_Clone(const TA_SAREXT_Stream* stream, TA_SAREXT_Stream** clone) + TA_RetCode TA_SAREXT_Close(TA_SAREXT_Stream* stream) + TA_RetCode TA_SAREXT_OutRange(const TA_SAREXT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SAREXT_Advance(TA_SAREXT_Stream* stream) + + ctypedef struct TA_SIN_Stream: + pass + TA_RetCode TA_SIN_OpenAndFill(TA_SIN_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SIN_Open(TA_SIN_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_SIN_Update(TA_SIN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SIN_Peek(const TA_SIN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SIN_Value(const TA_SIN_Stream* stream, double* outReal) + TA_RetCode TA_SIN_Clone(const TA_SIN_Stream* stream, TA_SIN_Stream** clone) + TA_RetCode TA_SIN_Close(TA_SIN_Stream* stream) + TA_RetCode TA_SIN_OutRange(const TA_SIN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SIN_Advance(TA_SIN_Stream* stream) + + ctypedef struct TA_SINH_Stream: + pass + TA_RetCode TA_SINH_OpenAndFill(TA_SINH_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SINH_Open(TA_SINH_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_SINH_Update(TA_SINH_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SINH_Peek(const TA_SINH_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SINH_Value(const TA_SINH_Stream* stream, double* outReal) + TA_RetCode TA_SINH_Clone(const TA_SINH_Stream* stream, TA_SINH_Stream** clone) + TA_RetCode TA_SINH_Close(TA_SINH_Stream* stream) + TA_RetCode TA_SINH_OutRange(const TA_SINH_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SINH_Advance(TA_SINH_Stream* stream) + + ctypedef struct TA_SMA_Stream: + pass + TA_RetCode TA_SMA_OpenAndFill(TA_SMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SMA_Open(TA_SMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_SMA_Update(TA_SMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SMA_Peek(const TA_SMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SMA_Value(const TA_SMA_Stream* stream, double* outReal) + TA_RetCode TA_SMA_Clone(const TA_SMA_Stream* stream, TA_SMA_Stream** clone) + TA_RetCode TA_SMA_Close(TA_SMA_Stream* stream) + TA_RetCode TA_SMA_OutRange(const TA_SMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SMA_Advance(TA_SMA_Stream* stream) + + ctypedef struct TA_SMI_Stream: + pass + TA_RetCode TA_SMI_OpenAndFill(TA_SMI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, int* outBegIdx, int* outNBElement, double* outSMI, double* outSMISignal) + TA_RetCode TA_SMI_Open(TA_SMI_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int optInFastPeriod, int optInSlowPeriod, int optInSignalPeriod, double* outSMI, double* outSMISignal) + TA_RetCode TA_SMI_Update(TA_SMI_Stream* stream, double inHigh, double inLow, double inClose, double* outSMI, double* outSMISignal) + TA_RetCode TA_SMI_Peek(const TA_SMI_Stream* stream, double inHigh, double inLow, double inClose, double* outSMI, double* outSMISignal) + TA_RetCode TA_SMI_Value(const TA_SMI_Stream* stream, double* outSMI, double* outSMISignal) + TA_RetCode TA_SMI_Clone(const TA_SMI_Stream* stream, TA_SMI_Stream** clone) + TA_RetCode TA_SMI_Close(TA_SMI_Stream* stream) + TA_RetCode TA_SMI_OutRange(const TA_SMI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SMI_Advance(TA_SMI_Stream* stream) + + ctypedef struct TA_SQRT_Stream: + pass + TA_RetCode TA_SQRT_OpenAndFill(TA_SQRT_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SQRT_Open(TA_SQRT_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_SQRT_Update(TA_SQRT_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SQRT_Peek(const TA_SQRT_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SQRT_Value(const TA_SQRT_Stream* stream, double* outReal) + TA_RetCode TA_SQRT_Clone(const TA_SQRT_Stream* stream, TA_SQRT_Stream** clone) + TA_RetCode TA_SQRT_Close(TA_SQRT_Stream* stream) + TA_RetCode TA_SQRT_OutRange(const TA_SQRT_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SQRT_Advance(TA_SQRT_Stream* stream) + + ctypedef struct TA_STDDEV_Stream: + pass + TA_RetCode TA_STDDEV_OpenAndFill(TA_STDDEV_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDev, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_STDDEV_Open(TA_STDDEV_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDev, double* outReal) + TA_RetCode TA_STDDEV_Update(TA_STDDEV_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_STDDEV_Peek(const TA_STDDEV_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_STDDEV_Value(const TA_STDDEV_Stream* stream, double* outReal) + TA_RetCode TA_STDDEV_Clone(const TA_STDDEV_Stream* stream, TA_STDDEV_Stream** clone) + TA_RetCode TA_STDDEV_Close(TA_STDDEV_Stream* stream) + TA_RetCode TA_STDDEV_OutRange(const TA_STDDEV_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_STDDEV_Advance(TA_STDDEV_Stream* stream) + + ctypedef struct TA_STOCH_Stream: + pass + TA_RetCode TA_STOCH_OpenAndFill(TA_STOCH_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType, int* outBegIdx, int* outNBElement, double* outSlowK, double* outSlowD) + TA_RetCode TA_STOCH_Open(TA_STOCH_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInSlowK_Period, TA_MAType optInSlowK_MAType, int optInSlowD_Period, TA_MAType optInSlowD_MAType, double* outSlowK, double* outSlowD) + TA_RetCode TA_STOCH_Update(TA_STOCH_Stream* stream, double inHigh, double inLow, double inClose, double* outSlowK, double* outSlowD) + TA_RetCode TA_STOCH_Peek(const TA_STOCH_Stream* stream, double inHigh, double inLow, double inClose, double* outSlowK, double* outSlowD) + TA_RetCode TA_STOCH_Value(const TA_STOCH_Stream* stream, double* outSlowK, double* outSlowD) + TA_RetCode TA_STOCH_Clone(const TA_STOCH_Stream* stream, TA_STOCH_Stream** clone) + TA_RetCode TA_STOCH_Close(TA_STOCH_Stream* stream) + TA_RetCode TA_STOCH_OutRange(const TA_STOCH_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_STOCH_Advance(TA_STOCH_Stream* stream) + + ctypedef struct TA_STOCHF_Stream: + pass + TA_RetCode TA_STOCHF_OpenAndFill(TA_STOCHF_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType, int* outBegIdx, int* outNBElement, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHF_Open(TA_STOCHF_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHF_Update(TA_STOCHF_Stream* stream, double inHigh, double inLow, double inClose, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHF_Peek(const TA_STOCHF_Stream* stream, double inHigh, double inLow, double inClose, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHF_Value(const TA_STOCHF_Stream* stream, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHF_Clone(const TA_STOCHF_Stream* stream, TA_STOCHF_Stream** clone) + TA_RetCode TA_STOCHF_Close(TA_STOCHF_Stream* stream) + TA_RetCode TA_STOCHF_OutRange(const TA_STOCHF_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_STOCHF_Advance(TA_STOCHF_Stream* stream) + + ctypedef struct TA_STOCHRSI_Stream: + pass + TA_RetCode TA_STOCHRSI_OpenAndFill(TA_STOCHRSI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType, int* outBegIdx, int* outNBElement, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHRSI_Open(TA_STOCHRSI_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int optInFastK_Period, int optInFastD_Period, TA_MAType optInFastD_MAType, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHRSI_Update(TA_STOCHRSI_Stream* stream, double inReal, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHRSI_Peek(const TA_STOCHRSI_Stream* stream, double inReal, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHRSI_Value(const TA_STOCHRSI_Stream* stream, double* outFastK, double* outFastD) + TA_RetCode TA_STOCHRSI_Clone(const TA_STOCHRSI_Stream* stream, TA_STOCHRSI_Stream** clone) + TA_RetCode TA_STOCHRSI_Close(TA_STOCHRSI_Stream* stream) + TA_RetCode TA_STOCHRSI_OutRange(const TA_STOCHRSI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_STOCHRSI_Advance(TA_STOCHRSI_Stream* stream) + + ctypedef struct TA_SUB_Stream: + pass + TA_RetCode TA_SUB_OpenAndFill(TA_SUB_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SUB_Open(TA_SUB_Stream** stream, const double* inReal0, const double* inReal1, int historyLen, double* outReal) + TA_RetCode TA_SUB_Update(TA_SUB_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_SUB_Peek(const TA_SUB_Stream* stream, double inReal0, double inReal1, double* outReal) + TA_RetCode TA_SUB_Value(const TA_SUB_Stream* stream, double* outReal) + TA_RetCode TA_SUB_Clone(const TA_SUB_Stream* stream, TA_SUB_Stream** clone) + TA_RetCode TA_SUB_Close(TA_SUB_Stream* stream) + TA_RetCode TA_SUB_OutRange(const TA_SUB_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SUB_Advance(TA_SUB_Stream* stream) + + ctypedef struct TA_SUM_Stream: + pass + TA_RetCode TA_SUM_OpenAndFill(TA_SUM_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_SUM_Open(TA_SUM_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_SUM_Update(TA_SUM_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SUM_Peek(const TA_SUM_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_SUM_Value(const TA_SUM_Stream* stream, double* outReal) + TA_RetCode TA_SUM_Clone(const TA_SUM_Stream* stream, TA_SUM_Stream** clone) + TA_RetCode TA_SUM_Close(TA_SUM_Stream* stream) + TA_RetCode TA_SUM_OutRange(const TA_SUM_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SUM_Advance(TA_SUM_Stream* stream) + + ctypedef struct TA_SUPERTREND_Stream: + pass + TA_RetCode TA_SUPERTREND_OpenAndFill(TA_SUPERTREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, int* outBegIdx, int* outNBElement, double* outReal, int* outInteger) + TA_RetCode TA_SUPERTREND_Open(TA_SUPERTREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, double* outReal, int* outInteger) + TA_RetCode TA_SUPERTREND_Update(TA_SUPERTREND_Stream* stream, double inHigh, double inLow, double inClose, double* outReal, int* outInteger) + TA_RetCode TA_SUPERTREND_Peek(const TA_SUPERTREND_Stream* stream, double inHigh, double inLow, double inClose, double* outReal, int* outInteger) + TA_RetCode TA_SUPERTREND_Value(const TA_SUPERTREND_Stream* stream, double* outReal, int* outInteger) + TA_RetCode TA_SUPERTREND_Clone(const TA_SUPERTREND_Stream* stream, TA_SUPERTREND_Stream** clone) + TA_RetCode TA_SUPERTREND_Close(TA_SUPERTREND_Stream* stream) + TA_RetCode TA_SUPERTREND_OutRange(const TA_SUPERTREND_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_SUPERTREND_Advance(TA_SUPERTREND_Stream* stream) + + ctypedef struct TA_T3_Stream: + pass + TA_RetCode TA_T3_OpenAndFill(TA_T3_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInVFactor, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_T3_Open(TA_T3_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInVFactor, double* outReal) + TA_RetCode TA_T3_Update(TA_T3_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_T3_Peek(const TA_T3_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_T3_Value(const TA_T3_Stream* stream, double* outReal) + TA_RetCode TA_T3_Clone(const TA_T3_Stream* stream, TA_T3_Stream** clone) + TA_RetCode TA_T3_Close(TA_T3_Stream* stream) + TA_RetCode TA_T3_OutRange(const TA_T3_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_T3_Advance(TA_T3_Stream* stream) + + ctypedef struct TA_TAN_Stream: + pass + TA_RetCode TA_TAN_OpenAndFill(TA_TAN_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TAN_Open(TA_TAN_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_TAN_Update(TA_TAN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TAN_Peek(const TA_TAN_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TAN_Value(const TA_TAN_Stream* stream, double* outReal) + TA_RetCode TA_TAN_Clone(const TA_TAN_Stream* stream, TA_TAN_Stream** clone) + TA_RetCode TA_TAN_Close(TA_TAN_Stream* stream) + TA_RetCode TA_TAN_OutRange(const TA_TAN_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TAN_Advance(TA_TAN_Stream* stream) + + ctypedef struct TA_TANH_Stream: + pass + TA_RetCode TA_TANH_OpenAndFill(TA_TANH_Stream** stream, const double* inReal, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TANH_Open(TA_TANH_Stream** stream, const double* inReal, int historyLen, double* outReal) + TA_RetCode TA_TANH_Update(TA_TANH_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TANH_Peek(const TA_TANH_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TANH_Value(const TA_TANH_Stream* stream, double* outReal) + TA_RetCode TA_TANH_Clone(const TA_TANH_Stream* stream, TA_TANH_Stream** clone) + TA_RetCode TA_TANH_Close(TA_TANH_Stream* stream) + TA_RetCode TA_TANH_OutRange(const TA_TANH_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TANH_Advance(TA_TANH_Stream* stream) + + ctypedef struct TA_TEMA_Stream: + pass + TA_RetCode TA_TEMA_OpenAndFill(TA_TEMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TEMA_Open(TA_TEMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_TEMA_Update(TA_TEMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TEMA_Peek(const TA_TEMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TEMA_Value(const TA_TEMA_Stream* stream, double* outReal) + TA_RetCode TA_TEMA_Clone(const TA_TEMA_Stream* stream, TA_TEMA_Stream** clone) + TA_RetCode TA_TEMA_Close(TA_TEMA_Stream* stream) + TA_RetCode TA_TEMA_OutRange(const TA_TEMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TEMA_Advance(TA_TEMA_Stream* stream) + + ctypedef struct TA_TRANGE_Stream: + pass + TA_RetCode TA_TRANGE_OpenAndFill(TA_TRANGE_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TRANGE_Open(TA_TRANGE_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outReal) + TA_RetCode TA_TRANGE_Update(TA_TRANGE_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_TRANGE_Peek(const TA_TRANGE_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_TRANGE_Value(const TA_TRANGE_Stream* stream, double* outReal) + TA_RetCode TA_TRANGE_Clone(const TA_TRANGE_Stream* stream, TA_TRANGE_Stream** clone) + TA_RetCode TA_TRANGE_Close(TA_TRANGE_Stream* stream) + TA_RetCode TA_TRANGE_OutRange(const TA_TRANGE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TRANGE_Advance(TA_TRANGE_Stream* stream) + + ctypedef struct TA_TRIMA_Stream: + pass + TA_RetCode TA_TRIMA_OpenAndFill(TA_TRIMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TRIMA_Open(TA_TRIMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_TRIMA_Update(TA_TRIMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TRIMA_Peek(const TA_TRIMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TRIMA_Value(const TA_TRIMA_Stream* stream, double* outReal) + TA_RetCode TA_TRIMA_Clone(const TA_TRIMA_Stream* stream, TA_TRIMA_Stream** clone) + TA_RetCode TA_TRIMA_Close(TA_TRIMA_Stream* stream) + TA_RetCode TA_TRIMA_OutRange(const TA_TRIMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TRIMA_Advance(TA_TRIMA_Stream* stream) + + ctypedef struct TA_TRIX_Stream: + pass + TA_RetCode TA_TRIX_OpenAndFill(TA_TRIX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TRIX_Open(TA_TRIX_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_TRIX_Update(TA_TRIX_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TRIX_Peek(const TA_TRIX_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TRIX_Value(const TA_TRIX_Stream* stream, double* outReal) + TA_RetCode TA_TRIX_Clone(const TA_TRIX_Stream* stream, TA_TRIX_Stream** clone) + TA_RetCode TA_TRIX_Close(TA_TRIX_Stream* stream) + TA_RetCode TA_TRIX_OutRange(const TA_TRIX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TRIX_Advance(TA_TRIX_Stream* stream) + + ctypedef struct TA_TSF_Stream: + pass + TA_RetCode TA_TSF_OpenAndFill(TA_TSF_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TSF_Open(TA_TSF_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_TSF_Update(TA_TSF_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TSF_Peek(const TA_TSF_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TSF_Value(const TA_TSF_Stream* stream, double* outReal) + TA_RetCode TA_TSF_Clone(const TA_TSF_Stream* stream, TA_TSF_Stream** clone) + TA_RetCode TA_TSF_Close(TA_TSF_Stream* stream) + TA_RetCode TA_TSF_OutRange(const TA_TSF_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TSF_Advance(TA_TSF_Stream* stream) + + ctypedef struct TA_TSI_Stream: + pass + TA_RetCode TA_TSI_OpenAndFill(TA_TSI_Stream** stream, const double* inReal, int historyLen, int optInFirstPeriod, int optInSecondPeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TSI_Open(TA_TSI_Stream** stream, const double* inReal, int historyLen, int optInFirstPeriod, int optInSecondPeriod, double* outReal) + TA_RetCode TA_TSI_Update(TA_TSI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TSI_Peek(const TA_TSI_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_TSI_Value(const TA_TSI_Stream* stream, double* outReal) + TA_RetCode TA_TSI_Clone(const TA_TSI_Stream* stream, TA_TSI_Stream** clone) + TA_RetCode TA_TSI_Close(TA_TSI_Stream* stream) + TA_RetCode TA_TSI_OutRange(const TA_TSI_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TSI_Advance(TA_TSI_Stream* stream) + + ctypedef struct TA_TYPPRICE_Stream: + pass + TA_RetCode TA_TYPPRICE_OpenAndFill(TA_TYPPRICE_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_TYPPRICE_Open(TA_TYPPRICE_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outReal) + TA_RetCode TA_TYPPRICE_Update(TA_TYPPRICE_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_TYPPRICE_Peek(const TA_TYPPRICE_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_TYPPRICE_Value(const TA_TYPPRICE_Stream* stream, double* outReal) + TA_RetCode TA_TYPPRICE_Clone(const TA_TYPPRICE_Stream* stream, TA_TYPPRICE_Stream** clone) + TA_RetCode TA_TYPPRICE_Close(TA_TYPPRICE_Stream* stream) + TA_RetCode TA_TYPPRICE_OutRange(const TA_TYPPRICE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_TYPPRICE_Advance(TA_TYPPRICE_Stream* stream) + + ctypedef struct TA_ULTOSC_Stream: + pass + TA_RetCode TA_ULTOSC_OpenAndFill(TA_ULTOSC_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod1, int optInTimePeriod2, int optInTimePeriod3, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ULTOSC_Open(TA_ULTOSC_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod1, int optInTimePeriod2, int optInTimePeriod3, double* outReal) + TA_RetCode TA_ULTOSC_Update(TA_ULTOSC_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ULTOSC_Peek(const TA_ULTOSC_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_ULTOSC_Value(const TA_ULTOSC_Stream* stream, double* outReal) + TA_RetCode TA_ULTOSC_Clone(const TA_ULTOSC_Stream* stream, TA_ULTOSC_Stream** clone) + TA_RetCode TA_ULTOSC_Close(TA_ULTOSC_Stream* stream) + TA_RetCode TA_ULTOSC_OutRange(const TA_ULTOSC_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ULTOSC_Advance(TA_ULTOSC_Stream* stream) + + ctypedef struct TA_VAR_Stream: + pass + TA_RetCode TA_VAR_OpenAndFill(TA_VAR_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDev, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_VAR_Open(TA_VAR_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double optInNbDev, double* outReal) + TA_RetCode TA_VAR_Update(TA_VAR_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_VAR_Peek(const TA_VAR_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_VAR_Value(const TA_VAR_Stream* stream, double* outReal) + TA_RetCode TA_VAR_Clone(const TA_VAR_Stream* stream, TA_VAR_Stream** clone) + TA_RetCode TA_VAR_Close(TA_VAR_Stream* stream) + TA_RetCode TA_VAR_OutRange(const TA_VAR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_VAR_Advance(TA_VAR_Stream* stream) + + ctypedef struct TA_VHF_Stream: + pass + TA_RetCode TA_VHF_OpenAndFill(TA_VHF_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_VHF_Open(TA_VHF_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_VHF_Update(TA_VHF_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_VHF_Peek(const TA_VHF_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_VHF_Value(const TA_VHF_Stream* stream, double* outReal) + TA_RetCode TA_VHF_Clone(const TA_VHF_Stream* stream, TA_VHF_Stream** clone) + TA_RetCode TA_VHF_Close(TA_VHF_Stream* stream) + TA_RetCode TA_VHF_OutRange(const TA_VHF_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_VHF_Advance(TA_VHF_Stream* stream) + + ctypedef struct TA_VORTEX_Stream: + pass + TA_RetCode TA_VORTEX_OpenAndFill(TA_VORTEX_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outPlusVI, double* outMinusVI) + TA_RetCode TA_VORTEX_Open(TA_VORTEX_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outPlusVI, double* outMinusVI) + TA_RetCode TA_VORTEX_Update(TA_VORTEX_Stream* stream, double inHigh, double inLow, double inClose, double* outPlusVI, double* outMinusVI) + TA_RetCode TA_VORTEX_Peek(const TA_VORTEX_Stream* stream, double inHigh, double inLow, double inClose, double* outPlusVI, double* outMinusVI) + TA_RetCode TA_VORTEX_Value(const TA_VORTEX_Stream* stream, double* outPlusVI, double* outMinusVI) + TA_RetCode TA_VORTEX_Clone(const TA_VORTEX_Stream* stream, TA_VORTEX_Stream** clone) + TA_RetCode TA_VORTEX_Close(TA_VORTEX_Stream* stream) + TA_RetCode TA_VORTEX_OutRange(const TA_VORTEX_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_VORTEX_Advance(TA_VORTEX_Stream* stream) + + ctypedef struct TA_VWAP_Stream: + pass + TA_RetCode TA_VWAP_OpenAndFill(TA_VWAP_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_VWAP_Open(TA_VWAP_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, const double* inVolume, int historyLen, double* outReal) + TA_RetCode TA_VWAP_Update(TA_VWAP_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_VWAP_Peek(const TA_VWAP_Stream* stream, double inHigh, double inLow, double inClose, double inVolume, double* outReal) + TA_RetCode TA_VWAP_Value(const TA_VWAP_Stream* stream, double* outReal) + TA_RetCode TA_VWAP_Clone(const TA_VWAP_Stream* stream, TA_VWAP_Stream** clone) + TA_RetCode TA_VWAP_Close(TA_VWAP_Stream* stream) + TA_RetCode TA_VWAP_OutRange(const TA_VWAP_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_VWAP_Advance(TA_VWAP_Stream* stream) + + ctypedef struct TA_VWMA_Stream: + pass + TA_RetCode TA_VWMA_OpenAndFill(TA_VWMA_Stream** stream, const double* inReal, const double* inVolume, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_VWMA_Open(TA_VWMA_Stream** stream, const double* inReal, const double* inVolume, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_VWMA_Update(TA_VWMA_Stream* stream, double inReal, double inVolume, double* outReal) + TA_RetCode TA_VWMA_Peek(const TA_VWMA_Stream* stream, double inReal, double inVolume, double* outReal) + TA_RetCode TA_VWMA_Value(const TA_VWMA_Stream* stream, double* outReal) + TA_RetCode TA_VWMA_Clone(const TA_VWMA_Stream* stream, TA_VWMA_Stream** clone) + TA_RetCode TA_VWMA_Close(TA_VWMA_Stream* stream) + TA_RetCode TA_VWMA_OutRange(const TA_VWMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_VWMA_Advance(TA_VWMA_Stream* stream) + + ctypedef struct TA_WAD_Stream: + pass + TA_RetCode TA_WAD_OpenAndFill(TA_WAD_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_WAD_Open(TA_WAD_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outReal) + TA_RetCode TA_WAD_Update(TA_WAD_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_WAD_Peek(const TA_WAD_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_WAD_Value(const TA_WAD_Stream* stream, double* outReal) + TA_RetCode TA_WAD_Clone(const TA_WAD_Stream* stream, TA_WAD_Stream** clone) + TA_RetCode TA_WAD_Close(TA_WAD_Stream* stream) + TA_RetCode TA_WAD_OutRange(const TA_WAD_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_WAD_Advance(TA_WAD_Stream* stream) + + ctypedef struct TA_WCLPRICE_Stream: + pass + TA_RetCode TA_WCLPRICE_OpenAndFill(TA_WCLPRICE_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_WCLPRICE_Open(TA_WCLPRICE_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, double* outReal) + TA_RetCode TA_WCLPRICE_Update(TA_WCLPRICE_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_WCLPRICE_Peek(const TA_WCLPRICE_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_WCLPRICE_Value(const TA_WCLPRICE_Stream* stream, double* outReal) + TA_RetCode TA_WCLPRICE_Clone(const TA_WCLPRICE_Stream* stream, TA_WCLPRICE_Stream** clone) + TA_RetCode TA_WCLPRICE_Close(TA_WCLPRICE_Stream* stream) + TA_RetCode TA_WCLPRICE_OutRange(const TA_WCLPRICE_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_WCLPRICE_Advance(TA_WCLPRICE_Stream* stream) + + ctypedef struct TA_WILLR_Stream: + pass + TA_RetCode TA_WILLR_OpenAndFill(TA_WILLR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_WILLR_Open(TA_WILLR_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_WILLR_Update(TA_WILLR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_WILLR_Peek(const TA_WILLR_Stream* stream, double inHigh, double inLow, double inClose, double* outReal) + TA_RetCode TA_WILLR_Value(const TA_WILLR_Stream* stream, double* outReal) + TA_RetCode TA_WILLR_Clone(const TA_WILLR_Stream* stream, TA_WILLR_Stream** clone) + TA_RetCode TA_WILLR_Close(TA_WILLR_Stream* stream) + TA_RetCode TA_WILLR_OutRange(const TA_WILLR_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_WILLR_Advance(TA_WILLR_Stream* stream) + + ctypedef struct TA_WMA_Stream: + pass + TA_RetCode TA_WMA_OpenAndFill(TA_WMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_WMA_Open(TA_WMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_WMA_Update(TA_WMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_WMA_Peek(const TA_WMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_WMA_Value(const TA_WMA_Stream* stream, double* outReal) + TA_RetCode TA_WMA_Clone(const TA_WMA_Stream* stream, TA_WMA_Stream** clone) + TA_RetCode TA_WMA_Close(TA_WMA_Stream* stream) + TA_RetCode TA_WMA_OutRange(const TA_WMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_WMA_Advance(TA_WMA_Stream* stream) + + ctypedef struct TA_ZLEMA_Stream: + pass + TA_RetCode TA_ZLEMA_OpenAndFill(TA_ZLEMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, int* outBegIdx, int* outNBElement, double* outReal) + TA_RetCode TA_ZLEMA_Open(TA_ZLEMA_Stream** stream, const double* inReal, int historyLen, int optInTimePeriod, double* outReal) + TA_RetCode TA_ZLEMA_Update(TA_ZLEMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ZLEMA_Peek(const TA_ZLEMA_Stream* stream, double inReal, double* outReal) + TA_RetCode TA_ZLEMA_Value(const TA_ZLEMA_Stream* stream, double* outReal) + TA_RetCode TA_ZLEMA_Clone(const TA_ZLEMA_Stream* stream, TA_ZLEMA_Stream** clone) + TA_RetCode TA_ZLEMA_Close(TA_ZLEMA_Stream* stream) + TA_RetCode TA_ZLEMA_OutRange(const TA_ZLEMA_Stream* stream, int* outBegIdx, int* outNBElement) + TA_RetCode TA_ZLEMA_Advance(TA_ZLEMA_Stream* stream) + +cdef np.npy_intp check_length(tuple arrays) except -1: + cdef np.npy_intp length = (arrays[0]).shape[0] + for other in arrays[1:]: + if length != (other).shape[0]: + raise Exception("input array lengths are different") + return length + + +cdef int check_begidx(np.npy_intp length, tuple arrays) except -2: + """The first bar that is not NaN in any input, as the batch tier reads it.""" + cdef double* data[8] + cdef np.npy_intp i + cdef int k, count = len(arrays) + if count > 8: + raise Exception("too many input arrays") + for k in range(count): + data[k] = (arrays[k]).data + for i in range(length): + for k in range(count): + if data[k][i] != data[k][i]: + break + else: + return i + return length - 1 + + + +OutRange = namedtuple("OutRange", "begidx nbelement", module=__name__) + + +cdef np.ndarray _stream_input(object values): + """What the Function API accepts, through the same checks.""" + if isinstance(values, np.ndarray): + return check_array(values) + for series in (__PANDAS_SERIES, __POLARS_SERIES): + if series is not None and isinstance(values, series): + return check_array(values.to_numpy().astype(float)) + raise TypeError("input must be a numpy array or a pandas or polars Series, " + "not %s" % type(values).__name__) + + +cdef int _stream_history(np.npy_intp length, int begidx) except -1: + if begidx < 0: + raise InsufficientHistory("no history: the input array is empty") + return (length - begidx) + + +cdef _stream_open_failed(str function_name, TA_RetCode retCode, int historylen, int need): + if retCode == 17: + if need <= historylen: + need = historylen + 1 # a seeding that wants more than the lookback + raise InsufficientHistory( + "%s: %d bars of history, at least %d needed (a leading bar that is " + "NaN in any input is not history)" % (function_name, historylen, need)) + _ta_check_success(function_name, retCode) + + +cdef _stream_like(tuple sources, object result): + pandas = [s for s in sources + if __PANDAS_SERIES is not None and isinstance(s, __PANDAS_SERIES)] + polars = [s for s in sources + if __POLARS_SERIES is not None and isinstance(s, __POLARS_SERIES)] + if pandas and polars: + raise Exception("Cannot mix polars and pandas") + if pandas: + return __PANDAS_SERIES(result, index=pandas[0].index) + if polars: + return __POLARS_SERIES(result) + return result + + +cdef class Stream: + """Base class of every talib.stream handle. + + Carries what does not depend on the function: the opaque C handle, and the + offset of the first history bar the batch tier would have used.""" + cdef void* _handle + cdef int _begidx + cdef object __weakref__ + + def __cinit__(self): + self._handle = NULL + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_BAD_PARAM + + cdef TA_RetCode _advance(self): + return TA_BAD_PARAM + + @property + def out_range(self): + cdef int outbegidx + cdef int outnbelement + cdef TA_RetCode retCode = self._out_range(&outbegidx, &outnbelement) + if retCode != 0: + _ta_check_success("%s.out_range" % type(self).__name__, retCode) + return OutRange(outbegidx + self._begidx, outnbelement) + + @cython.binding(False) + def advance(self): + cdef TA_RetCode retCode = self._advance() + if retCode != 0: + _ta_check_success("%s.advance" % type(self).__name__, retCode) + + def __copy__(self): + return self.copy() + + def __deepcopy__(self, memo): + return self.copy() + + def __reduce__(self): + raise TypeError( + "cannot pickle %s: a stream handle points into the TA-Lib C library, " + "and does not cross a process boundary" % type(self).__name__) + + +cdef class AC_Stream(Stream): """ AC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?]) Accelerator/Decelerator Oscillator (Momentum Indicators) @@ -22,27 +2555,95 @@ def stream_AC( np.ndarray high not None , np.ndarray low not None , int fastperi Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_AC( (length) - 1 , (length) - 1 , high_data , low_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_AC_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_AC_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_AC_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_AC_Open", retCode, historylen, lib.TA_AC_Lookback(fastperiod, slowperiod, signalperiod) + 1) + if self._handle is not NULL: + TA_AC_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_AC_Lookback(fastperiod, slowperiod, signalperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_AC_Stream* handle = NULL + cdef TA_RetCode retCode = TA_AC_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_AC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef AC_Stream stream = AC_Stream.__new__(AC_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_AC_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_AC_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_AC_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_AC_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_AC_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_AC_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_AC_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_AC_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_AC_Stream* clone = NULL + cdef TA_RetCode retCode = TA_AC_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_AC_Clone", retCode) + cdef AC_Stream stream = AC_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +ACCBANDS_Value = namedtuple("ACCBANDS_Value", "upperband middleband lowerband", module=__name__) + +cdef class ACCBANDS_Stream(Stream): """ ACCBANDS(high, low, close[, timeperiod=?]) Acceleration Bands (Overlap Studies) @@ -56,34 +2657,105 @@ def stream_ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.nda middleband lowerband """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outrealupperband - double outrealmiddleband - double outreallowerband - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outrealupperband = NaN - outrealmiddleband = NaN - outreallowerband = NaN - retCode = lib.TA_ACCBANDS( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) - _ta_check_success("TA_ACCBANDS", retCode) - return outrealupperband , outrealmiddleband , outreallowerband - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ACOS( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ACCBANDS_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ACCBANDS_Stream* handle = NULL + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_ACCBANDS_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _stream_open_failed("TA_ACCBANDS_Open", retCode, historylen, lib.TA_ACCBANDS_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ACCBANDS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ACCBANDS_Lookback(timeperiod) + cdef np.ndarray outupperband = make_double_array(length, lookback) + cdef np.ndarray outmiddleband = make_double_array(length, lookback) + cdef np.ndarray outlowerband = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ACCBANDS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ACCBANDS_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ACCBANDS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ACCBANDS_Stream stream = ACCBANDS_Stream.__new__(ACCBANDS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, ACCBANDS_Value(_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_ACCBANDS_Update(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_ACCBANDS_Update", retCode) + return ACCBANDS_Value(outupperband, outmiddleband, outlowerband) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_ACCBANDS_Peek(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_ACCBANDS_Peek", retCode) + return ACCBANDS_Value(outupperband, outmiddleband, outlowerband) + + @property + def value(self): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_ACCBANDS_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_ACCBANDS_Value", retCode) + return ACCBANDS_Value(outupperband, outmiddleband, outlowerband) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ACCBANDS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ACCBANDS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ACCBANDS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ACCBANDS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ACCBANDS_Clone", retCode) + cdef ACCBANDS_Stream stream = ACCBANDS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ACOS_Stream(Stream): """ ACOS(real) Vector Trigonometric ACos (Math Transform) @@ -93,24 +2765,91 @@ def stream_ACOS( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ACOS", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ACOS_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ACOS_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ACOS_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_ACOS_Open", retCode, historylen, lib.TA_ACOS_Lookback() + 1) + if self._handle is not NULL: + TA_ACOS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ACOS_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ACOS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ACOS_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ACOS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ACOS_Stream stream = ACOS_Stream.__new__(ACOS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ACOS_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ACOS_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ACOS_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ACOS_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ACOS_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ACOS_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ACOS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ACOS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ACOS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ACOS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ACOS_Clone", retCode) + cdef ACOS_Stream stream = ACOS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class AD_Stream(Stream): """ AD(high, low, close, volume) Chaikin A/D Line (Volume Indicators) @@ -120,33 +2859,97 @@ def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray c Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AD", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_AD_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_AD_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_AD_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_AD_Open", retCode, historylen, lib.TA_AD_Lookback() + 1) + if self._handle is not NULL: + TA_AD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_AD_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_AD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_AD_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_AD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef AD_Stream stream = AD_Stream.__new__(AD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_AD_Update(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_AD_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_AD_Peek(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_AD_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_AD_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_AD_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_AD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_AD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_AD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_AD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_AD_Clone", retCode) + cdef AD_Stream stream = AD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ADD_Stream(Stream): """ ADD(real0, real1) Vector Arithmetic Add (Math Operators) @@ -157,27 +2960,93 @@ def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADD", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int fastperiod=-2**31 , int slowperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ADD_Close(self._handle) + self._handle = NULL + + def __init__(self, real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ADD_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ADD_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_ADD_Open", retCode, historylen, lib.TA_ADD_Lookback() + 1) + if self._handle is not NULL: + TA_ADD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ADD_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ADD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ADD_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ADD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ADD_Stream stream = ADD_Stream.__new__(ADD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real0, real1,), outreal) + + @cython.binding(False) + def update(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_ADD_Update(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_ADD_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_ADD_Peek(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_ADD_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ADD_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ADD_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ADD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ADD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ADD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ADD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ADD_Clone", retCode) + cdef ADD_Stream stream = ADD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ADOSC_Stream(Stream): """ ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?]) Chaikin A/D Oscillator (Volume Indicators) @@ -190,33 +3059,97 @@ def stream_ADOSC( np.ndarray high not None , np.ndarray low not None , np.ndarra Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADOSC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADR( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ADOSC_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, volume, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ADOSC_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ADOSC_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, fastperiod, slowperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ADOSC_Open", retCode, historylen, lib.TA_ADOSC_Lookback(fastperiod, slowperiod) + 1) + if self._handle is not NULL: + TA_ADOSC_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, volume, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ADOSC_Lookback(fastperiod, slowperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ADOSC_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ADOSC_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, fastperiod, slowperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ADOSC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ADOSC_Stream stream = ADOSC_Stream.__new__(ADOSC_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_ADOSC_Update(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_ADOSC_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_ADOSC_Peek(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_ADOSC_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ADOSC_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ADOSC_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ADOSC_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ADOSC_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ADOSC_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ADOSC_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ADOSC_Clone", retCode) + cdef ADOSC_Stream stream = ADOSC_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ADR_Stream(Stream): """ ADR(high, low[, timeperiod=?]) Average Day Range (Volatility Indicators) @@ -228,27 +3161,93 @@ def stream_ADR( np.ndarray high not None , np.ndarray low not None , int timeper Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_ADR( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ADR_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ADR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ADR_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ADR_Open", retCode, historylen, lib.TA_ADR_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ADR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ADR_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ADR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ADR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ADR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ADR_Stream stream = ADR_Stream.__new__(ADR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_ADR_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_ADR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_ADR_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_ADR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ADR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ADR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ADR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ADR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ADR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ADR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ADR_Clone", retCode) + cdef ADR_Stream stream = ADR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ADX_Stream(Stream): """ ADX(high, low, close[, timeperiod=?]) Average Directional Movement Index (Momentum Indicators) @@ -260,30 +3259,95 @@ def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ADX_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ADX_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ADX_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ADX_Open", retCode, historylen, lib.TA_ADX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ADX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ADX_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ADX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ADX_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ADX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ADX_Stream stream = ADX_Stream.__new__(ADX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ADX_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ADX_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ADX_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ADX_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ADX_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ADX_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ADX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ADX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ADX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ADX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ADX_Clone", retCode) + cdef ADX_Stream stream = ADX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ADXR_Stream(Stream): """ ADXR(high, low, close[, timeperiod=?]) Average Directional Movement Index Rating (Momentum Indicators) @@ -295,30 +3359,95 @@ def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADXR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AO( np.ndarray high not None , np.ndarray low not None , int fastperiod=-2**31 , int slowperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ADXR_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ADXR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ADXR_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ADXR_Open", retCode, historylen, lib.TA_ADXR_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ADXR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ADXR_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ADXR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ADXR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ADXR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ADXR_Stream stream = ADXR_Stream.__new__(ADXR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ADXR_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ADXR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ADXR_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ADXR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ADXR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ADXR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ADXR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ADXR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ADXR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ADXR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ADXR_Clone", retCode) + cdef ADXR_Stream stream = ADXR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class AO_Stream(Stream): """ AO(high, low[, fastperiod=?, slowperiod=?]) Awesome Oscillator (Momentum Indicators) @@ -331,27 +3460,93 @@ def stream_AO( np.ndarray high not None , np.ndarray low not None , int fastperi Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_AO( (length) - 1 , (length) - 1 , high_data , low_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=1 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_AO_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_AO_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_AO_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_AO_Open", retCode, historylen, lib.TA_AO_Lookback(fastperiod, slowperiod) + 1) + if self._handle is not NULL: + TA_AO_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_AO_Lookback(fastperiod, slowperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_AO_Stream* handle = NULL + cdef TA_RetCode retCode = TA_AO_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_AO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef AO_Stream stream = AO_Stream.__new__(AO_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_AO_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_AO_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_AO_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_AO_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_AO_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_AO_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_AO_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_AO_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_AO_Stream* clone = NULL + cdef TA_RetCode retCode = TA_AO_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_AO_Clone", retCode) + cdef AO_Stream stream = AO_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class APO_Stream(Stream): """ APO(real[, fastperiod=?, slowperiod=?, matype=?]) Absolute Price Oscillator (Momentum Indicators) @@ -365,24 +3560,93 @@ def stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperio Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_APO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_APO_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_APO_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_APO_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outreal) + if retCode != 0: + _stream_open_failed("TA_APO_Open", retCode, historylen, lib.TA_APO_Lookback(fastperiod, slowperiod, matype) + 1) + if self._handle is not NULL: + TA_APO_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_APO_Lookback(fastperiod, slowperiod, matype) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_APO_Stream* handle = NULL + cdef TA_RetCode retCode = TA_APO_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_APO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef APO_Stream stream = APO_Stream.__new__(APO_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_APO_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_APO_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_APO_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_APO_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_APO_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_APO_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_APO_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_APO_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_APO_Stream* clone = NULL + cdef TA_RetCode retCode = TA_APO_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_APO_Clone", retCode) + cdef APO_Stream stream = APO_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +AROON_Value = namedtuple("AROON_Value", "aroondown aroonup", module=__name__) + +cdef class AROON_Stream(Stream): """ AROON(high, low[, timeperiod=?]) Aroon (Momentum Indicators) @@ -395,29 +3659,98 @@ def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timep aroondown aroonup """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outaroondown - double outaroonup - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outaroondown = NaN - outaroonup = NaN - retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) - _ta_check_success("TA_AROON", retCode) - return outaroondown , outaroonup - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_AROON_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_AROON_Stream* handle = NULL + cdef double outaroondown + cdef double outaroonup + cdef TA_RetCode retCode = TA_AROON_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outaroondown, &outaroonup) + if retCode != 0: + _stream_open_failed("TA_AROON_Open", retCode, historylen, lib.TA_AROON_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_AROON_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_AROON_Lookback(timeperiod) + cdef np.ndarray outaroondown = make_double_array(length, lookback) + cdef np.ndarray outaroonup = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_AROON_Stream* handle = NULL + cdef TA_RetCode retCode = TA_AROON_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outaroondown.data + lookback, outaroonup.data + lookback) + if retCode != 0: + _stream_open_failed("TA_AROON_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef AROON_Stream stream = AROON_Stream.__new__(AROON_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, AROON_Value(_stream_like((high, low,), outaroondown), _stream_like((high, low,), outaroonup)) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outaroondown + cdef double outaroonup + cdef TA_RetCode retCode = TA_AROON_Update(self._handle, high, low, &outaroondown, &outaroonup) + if retCode != 0: + _ta_check_success("TA_AROON_Update", retCode) + return AROON_Value(outaroondown, outaroonup) + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outaroondown + cdef double outaroonup + cdef TA_RetCode retCode = TA_AROON_Peek(self._handle, high, low, &outaroondown, &outaroonup) + if retCode != 0: + _ta_check_success("TA_AROON_Peek", retCode) + return AROON_Value(outaroondown, outaroonup) + + @property + def value(self): + cdef double outaroondown + cdef double outaroonup + cdef TA_RetCode retCode = TA_AROON_Value(self._handle, &outaroondown, &outaroonup) + if retCode != 0: + _ta_check_success("TA_AROON_Value", retCode) + return AROON_Value(outaroondown, outaroonup) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_AROON_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_AROON_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_AROON_Stream* clone = NULL + cdef TA_RetCode retCode = TA_AROON_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_AROON_Clone", retCode) + cdef AROON_Stream stream = AROON_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class AROONOSC_Stream(Stream): """ AROONOSC(high, low[, timeperiod=?]) Aroon Oscillator (Momentum Indicators) @@ -429,27 +3762,93 @@ def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int ti Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AROONOSC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ASIN( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_AROONOSC_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_AROONOSC_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_AROONOSC_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_AROONOSC_Open", retCode, historylen, lib.TA_AROONOSC_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_AROONOSC_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_AROONOSC_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_AROONOSC_Stream* handle = NULL + cdef TA_RetCode retCode = TA_AROONOSC_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_AROONOSC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef AROONOSC_Stream stream = AROONOSC_Stream.__new__(AROONOSC_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_AROONOSC_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_AROONOSC_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_AROONOSC_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_AROONOSC_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_AROONOSC_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_AROONOSC_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_AROONOSC_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_AROONOSC_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_AROONOSC_Stream* clone = NULL + cdef TA_RetCode retCode = TA_AROONOSC_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_AROONOSC_Clone", retCode) + cdef AROONOSC_Stream stream = AROONOSC_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ASIN_Stream(Stream): """ ASIN(real) Vector Trigonometric ASin (Math Transform) @@ -459,24 +3858,91 @@ def stream_ASIN( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ASIN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ATAN( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ASIN_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ASIN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ASIN_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_ASIN_Open", retCode, historylen, lib.TA_ASIN_Lookback() + 1) + if self._handle is not NULL: + TA_ASIN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ASIN_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ASIN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ASIN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ASIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ASIN_Stream stream = ASIN_Stream.__new__(ASIN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ASIN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ASIN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ASIN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ASIN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ASIN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ASIN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ASIN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ASIN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ASIN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ASIN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ASIN_Clone", retCode) + cdef ASIN_Stream stream = ASIN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ATAN_Stream(Stream): """ ATAN(real) Vector Trigonometric ATan (Math Transform) @@ -486,24 +3952,91 @@ def stream_ATAN( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ATAN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ATAN_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ATAN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ATAN_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_ATAN_Open", retCode, historylen, lib.TA_ATAN_Lookback() + 1) + if self._handle is not NULL: + TA_ATAN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ATAN_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ATAN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ATAN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ATAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ATAN_Stream stream = ATAN_Stream.__new__(ATAN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ATAN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ATAN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ATAN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ATAN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ATAN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ATAN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ATAN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ATAN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ATAN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ATAN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ATAN_Clone", retCode) + cdef ATAN_Stream stream = ATAN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ATR_Stream(Stream): """ ATR(high, low, close[, timeperiod=?]) Average True Range (Volatility Indicators) @@ -515,30 +4048,95 @@ def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ATR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ATR_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ATR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ATR_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ATR_Open", retCode, historylen, lib.TA_ATR_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ATR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ATR_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ATR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ATR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ATR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ATR_Stream stream = ATR_Stream.__new__(ATR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ATR_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ATR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ATR_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ATR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ATR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ATR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ATR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ATR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ATR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ATR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ATR_Clone", retCode) + cdef ATR_Stream stream = ATR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class AVGDEV_Stream(Stream): """ AVGDEV(real[, timeperiod=?]) Average Deviation (Price Transform) @@ -550,24 +4148,91 @@ def stream_AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_AVGDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AVGDEV", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_AVGDEV_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_AVGDEV_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_AVGDEV_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_AVGDEV_Open", retCode, historylen, lib.TA_AVGDEV_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_AVGDEV_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_AVGDEV_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_AVGDEV_Stream* handle = NULL + cdef TA_RetCode retCode = TA_AVGDEV_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_AVGDEV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef AVGDEV_Stream stream = AVGDEV_Stream.__new__(AVGDEV_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_AVGDEV_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_AVGDEV_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_AVGDEV_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_AVGDEV_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_AVGDEV_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_AVGDEV_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_AVGDEV_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_AVGDEV_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_AVGDEV_Stream* clone = NULL + cdef TA_RetCode retCode = TA_AVGDEV_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_AVGDEV_Clone", retCode) + cdef AVGDEV_Stream stream = AVGDEV_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class AVGPRICE_Stream(Stream): """ AVGPRICE(open, high, low, close) Average Price (Price Transform) @@ -577,33 +4242,99 @@ def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.nd Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outreal = NaN - retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AVGPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_AVGPRICE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_AVGPRICE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_AVGPRICE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_AVGPRICE_Open", retCode, historylen, lib.TA_AVGPRICE_Lookback() + 1) + if self._handle is not NULL: + TA_AVGPRICE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_AVGPRICE_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_AVGPRICE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_AVGPRICE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_AVGPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef AVGPRICE_Stream stream = AVGPRICE_Stream.__new__(AVGPRICE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outreal) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_AVGPRICE_Update(self._handle, open, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_AVGPRICE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_AVGPRICE_Peek(self._handle, open, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_AVGPRICE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_AVGPRICE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_AVGPRICE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_AVGPRICE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_AVGPRICE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_AVGPRICE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_AVGPRICE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_AVGPRICE_Clone", retCode) + cdef AVGPRICE_Stream stream = AVGPRICE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +BBANDS_Value = namedtuple("BBANDS_Value", "upperband middleband lowerband", module=__name__) + +cdef class BBANDS_Stream(Stream): """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) Bollinger Bands (Overlap Studies) @@ -620,28 +4351,101 @@ def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbd middleband lowerband """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outrealupperband - double outrealmiddleband - double outreallowerband - real = check_array(real) - real_data = real.data - length = real.shape[0] - outrealupperband = NaN - outrealmiddleband = NaN - outreallowerband = NaN - retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) - _ta_check_success("TA_BBANDS", retCode) - return outrealupperband , outrealmiddleband , outreallowerband - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_BBANDS_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_BBANDS_Stream* handle = NULL + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_BBANDS_Open(&handle, a_real.data + begidx, historylen, timeperiod, nbdevup, nbdevdn, matype, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _stream_open_failed("TA_BBANDS_Open", retCode, historylen, lib.TA_BBANDS_Lookback(timeperiod, nbdevup, nbdevdn, matype) + 1) + if self._handle is not NULL: + TA_BBANDS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_BBANDS_Lookback(timeperiod, nbdevup, nbdevdn, matype) + cdef np.ndarray outupperband = make_double_array(length, lookback) + cdef np.ndarray outmiddleband = make_double_array(length, lookback) + cdef np.ndarray outlowerband = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_BBANDS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_BBANDS_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, nbdevup, nbdevdn, matype, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) + if retCode != 0: + _stream_open_failed("TA_BBANDS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef BBANDS_Stream stream = BBANDS_Stream.__new__(BBANDS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, BBANDS_Value(_stream_like((real,), outupperband), _stream_like((real,), outmiddleband), _stream_like((real,), outlowerband)) + + @cython.binding(False) + def update(self, double real): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_BBANDS_Update(self._handle, real, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_BBANDS_Update", retCode) + return BBANDS_Value(outupperband, outmiddleband, outlowerband) + + @cython.binding(False) + def peek(self, double real): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_BBANDS_Peek(self._handle, real, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_BBANDS_Peek", retCode) + return BBANDS_Value(outupperband, outmiddleband, outlowerband) + + @property + def value(self): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_BBANDS_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_BBANDS_Value", retCode) + return BBANDS_Value(outupperband, outmiddleband, outlowerband) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_BBANDS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_BBANDS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_BBANDS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_BBANDS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_BBANDS_Clone", retCode) + cdef BBANDS_Stream stream = BBANDS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class BETA_Stream(Stream): """ BETA(real0, real1[, timeperiod=?]) Beta (Statistic Functions) @@ -654,27 +4458,93 @@ def stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int tim Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_BETA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_BETA_Close(self._handle) + self._handle = NULL + + def __init__(self, real0, real1, int timeperiod=-2**31): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_BETA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_BETA_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_BETA_Open", retCode, historylen, lib.TA_BETA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_BETA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real0, real1, int timeperiod=-2**31): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_BETA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_BETA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_BETA_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_BETA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef BETA_Stream stream = BETA_Stream.__new__(BETA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real0, real1,), outreal) + + @cython.binding(False) + def update(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_BETA_Update(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_BETA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_BETA_Peek(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_BETA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_BETA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_BETA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_BETA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_BETA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_BETA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_BETA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_BETA_Clone", retCode) + cdef BETA_Stream stream = BETA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class BOP_Stream(Stream): """ BOP(open, high, low, close) Balance Of Power (Momentum Indicators) @@ -684,33 +4554,97 @@ def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outreal = NaN - retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_BOP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_BOP_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_BOP_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_BOP_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_BOP_Open", retCode, historylen, lib.TA_BOP_Lookback() + 1) + if self._handle is not NULL: + TA_BOP_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_BOP_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_BOP_Stream* handle = NULL + cdef TA_RetCode retCode = TA_BOP_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_BOP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef BOP_Stream stream = BOP_Stream.__new__(BOP_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outreal) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_BOP_Update(self._handle, open, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_BOP_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_BOP_Peek(self._handle, open, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_BOP_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_BOP_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_BOP_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_BOP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_BOP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_BOP_Stream* clone = NULL + cdef TA_RetCode retCode = TA_BOP_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_BOP_Clone", retCode) + cdef BOP_Stream stream = BOP_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CCI_Stream(Stream): """ CCI(high, low, close[, timeperiod=?]) Commodity Channel Index (Momentum Indicators) @@ -722,30 +4656,95 @@ def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CCI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CCI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CCI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CCI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_CCI_Open", retCode, historylen, lib.TA_CCI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_CCI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CCI_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CCI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CCI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CCI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CCI_Stream stream = CCI_Stream.__new__(CCI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_CCI_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_CCI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_CCI_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_CCI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CCI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CCI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CCI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CCI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CCI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CCI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CCI_Clone", retCode) + cdef CCI_Stream stream = CCI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDL2CROWS_Stream(Stream): """ CDL2CROWS(open, high, low, close) Two Crows (Pattern Recognition) @@ -755,33 +4754,97 @@ def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL2CROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDL2CROWS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDL2CROWS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL2CROWS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDL2CROWS_Open", retCode, historylen, lib.TA_CDL2CROWS_Lookback() + 1) + if self._handle is not NULL: + TA_CDL2CROWS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDL2CROWS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDL2CROWS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDL2CROWS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDL2CROWS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDL2CROWS_Stream stream = CDL2CROWS_Stream.__new__(CDL2CROWS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL2CROWS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL2CROWS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL2CROWS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL2CROWS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL2CROWS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL2CROWS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDL2CROWS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDL2CROWS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDL2CROWS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDL2CROWS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDL2CROWS_Clone", retCode) + cdef CDL2CROWS_Stream stream = CDL2CROWS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDL3BLACKCROWS_Stream(Stream): """ CDL3BLACKCROWS(open, high, low, close) Three Black Crows (Pattern Recognition) @@ -791,33 +4854,97 @@ def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3BLACKCROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDL3BLACKCROWS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDL3BLACKCROWS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3BLACKCROWS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDL3BLACKCROWS_Open", retCode, historylen, lib.TA_CDL3BLACKCROWS_Lookback() + 1) + if self._handle is not NULL: + TA_CDL3BLACKCROWS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDL3BLACKCROWS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDL3BLACKCROWS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDL3BLACKCROWS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDL3BLACKCROWS_Stream stream = CDL3BLACKCROWS_Stream.__new__(CDL3BLACKCROWS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3BLACKCROWS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3BLACKCROWS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3BLACKCROWS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3BLACKCROWS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3BLACKCROWS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3BLACKCROWS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDL3BLACKCROWS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDL3BLACKCROWS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDL3BLACKCROWS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDL3BLACKCROWS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDL3BLACKCROWS_Clone", retCode) + cdef CDL3BLACKCROWS_Stream stream = CDL3BLACKCROWS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDL3INSIDE_Stream(Stream): """ CDL3INSIDE(open, high, low, close) Three Inside Up/Down (Pattern Recognition) @@ -827,33 +4954,97 @@ def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np. Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3INSIDE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDL3INSIDE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDL3INSIDE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3INSIDE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDL3INSIDE_Open", retCode, historylen, lib.TA_CDL3INSIDE_Lookback() + 1) + if self._handle is not NULL: + TA_CDL3INSIDE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDL3INSIDE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDL3INSIDE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDL3INSIDE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDL3INSIDE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDL3INSIDE_Stream stream = CDL3INSIDE_Stream.__new__(CDL3INSIDE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3INSIDE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3INSIDE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3INSIDE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3INSIDE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3INSIDE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3INSIDE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDL3INSIDE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDL3INSIDE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDL3INSIDE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDL3INSIDE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDL3INSIDE_Clone", retCode) + cdef CDL3INSIDE_Stream stream = CDL3INSIDE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDL3LINESTRIKE_Stream(Stream): """ CDL3LINESTRIKE(open, high, low, close) Three-Line Strike (Pattern Recognition) @@ -863,33 +5054,97 @@ def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3LINESTRIKE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDL3LINESTRIKE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDL3LINESTRIKE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3LINESTRIKE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDL3LINESTRIKE_Open", retCode, historylen, lib.TA_CDL3LINESTRIKE_Lookback() + 1) + if self._handle is not NULL: + TA_CDL3LINESTRIKE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDL3LINESTRIKE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDL3LINESTRIKE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDL3LINESTRIKE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDL3LINESTRIKE_Stream stream = CDL3LINESTRIKE_Stream.__new__(CDL3LINESTRIKE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3LINESTRIKE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3LINESTRIKE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3LINESTRIKE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3LINESTRIKE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3LINESTRIKE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3LINESTRIKE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDL3LINESTRIKE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDL3LINESTRIKE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDL3LINESTRIKE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDL3LINESTRIKE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDL3LINESTRIKE_Clone", retCode) + cdef CDL3LINESTRIKE_Stream stream = CDL3LINESTRIKE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDL3OUTSIDE_Stream(Stream): """ CDL3OUTSIDE(open, high, low, close) Three Outside Up/Down (Pattern Recognition) @@ -899,33 +5154,97 @@ def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3OUTSIDE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDL3OUTSIDE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDL3OUTSIDE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3OUTSIDE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDL3OUTSIDE_Open", retCode, historylen, lib.TA_CDL3OUTSIDE_Lookback() + 1) + if self._handle is not NULL: + TA_CDL3OUTSIDE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDL3OUTSIDE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDL3OUTSIDE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDL3OUTSIDE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDL3OUTSIDE_Stream stream = CDL3OUTSIDE_Stream.__new__(CDL3OUTSIDE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3OUTSIDE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3OUTSIDE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3OUTSIDE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3OUTSIDE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3OUTSIDE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3OUTSIDE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDL3OUTSIDE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDL3OUTSIDE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDL3OUTSIDE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDL3OUTSIDE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDL3OUTSIDE_Clone", retCode) + cdef CDL3OUTSIDE_Stream stream = CDL3OUTSIDE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDL3STARSINSOUTH_Stream(Stream): """ CDL3STARSINSOUTH(open, high, low, close) Three Stars In The South (Pattern Recognition) @@ -935,33 +5254,97 @@ def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3STARSINSOUTH", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDL3STARSINSOUTH_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDL3STARSINSOUTH_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3STARSINSOUTH_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDL3STARSINSOUTH_Open", retCode, historylen, lib.TA_CDL3STARSINSOUTH_Lookback() + 1) + if self._handle is not NULL: + TA_CDL3STARSINSOUTH_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDL3STARSINSOUTH_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDL3STARSINSOUTH_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDL3STARSINSOUTH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDL3STARSINSOUTH_Stream stream = CDL3STARSINSOUTH_Stream.__new__(CDL3STARSINSOUTH_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3STARSINSOUTH_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3STARSINSOUTH_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3STARSINSOUTH_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3STARSINSOUTH_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3STARSINSOUTH_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3STARSINSOUTH_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDL3STARSINSOUTH_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDL3STARSINSOUTH_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDL3STARSINSOUTH_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDL3STARSINSOUTH_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDL3STARSINSOUTH_Clone", retCode) + cdef CDL3STARSINSOUTH_Stream stream = CDL3STARSINSOUTH_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDL3WHITESOLDIERS_Stream(Stream): """ CDL3WHITESOLDIERS(open, high, low, close) Three Advancing White Soldiers (Pattern Recognition) @@ -971,33 +5354,97 @@ def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not Non Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDL3WHITESOLDIERS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDL3WHITESOLDIERS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3WHITESOLDIERS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDL3WHITESOLDIERS_Open", retCode, historylen, lib.TA_CDL3WHITESOLDIERS_Lookback() + 1) + if self._handle is not NULL: + TA_CDL3WHITESOLDIERS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDL3WHITESOLDIERS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDL3WHITESOLDIERS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDL3WHITESOLDIERS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDL3WHITESOLDIERS_Stream stream = CDL3WHITESOLDIERS_Stream.__new__(CDL3WHITESOLDIERS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3WHITESOLDIERS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3WHITESOLDIERS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3WHITESOLDIERS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3WHITESOLDIERS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDL3WHITESOLDIERS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDL3WHITESOLDIERS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDL3WHITESOLDIERS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDL3WHITESOLDIERS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDL3WHITESOLDIERS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDL3WHITESOLDIERS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDL3WHITESOLDIERS_Clone", retCode) + cdef CDL3WHITESOLDIERS_Stream stream = CDL3WHITESOLDIERS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLABANDONEDBABY_Stream(Stream): """ CDLABANDONEDBABY(open, high, low, close[, penetration=?]) Abandoned Baby (Pattern Recognition) @@ -1009,33 +5456,97 @@ def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLABANDONEDBABY", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLABANDONEDBABY_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLABANDONEDBABY_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLABANDONEDBABY_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLABANDONEDBABY_Open", retCode, historylen, lib.TA_CDLABANDONEDBABY_Lookback(penetration) + 1) + if self._handle is not NULL: + TA_CDLABANDONEDBABY_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback(penetration) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLABANDONEDBABY_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLABANDONEDBABY_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLABANDONEDBABY_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLABANDONEDBABY_Stream stream = CDLABANDONEDBABY_Stream.__new__(CDLABANDONEDBABY_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLABANDONEDBABY_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLABANDONEDBABY_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLABANDONEDBABY_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLABANDONEDBABY_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLABANDONEDBABY_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLABANDONEDBABY_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLABANDONEDBABY_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLABANDONEDBABY_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLABANDONEDBABY_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLABANDONEDBABY_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLABANDONEDBABY_Clone", retCode) + cdef CDLABANDONEDBABY_Stream stream = CDLABANDONEDBABY_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLADVANCEBLOCK_Stream(Stream): """ CDLADVANCEBLOCK(open, high, low, close) Advance Block (Pattern Recognition) @@ -1045,33 +5556,97 @@ def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLADVANCEBLOCK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLADVANCEBLOCK_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLADVANCEBLOCK_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLADVANCEBLOCK_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLADVANCEBLOCK_Open", retCode, historylen, lib.TA_CDLADVANCEBLOCK_Lookback() + 1) + if self._handle is not NULL: + TA_CDLADVANCEBLOCK_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLADVANCEBLOCK_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLADVANCEBLOCK_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLADVANCEBLOCK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLADVANCEBLOCK_Stream stream = CDLADVANCEBLOCK_Stream.__new__(CDLADVANCEBLOCK_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLADVANCEBLOCK_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLADVANCEBLOCK_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLADVANCEBLOCK_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLADVANCEBLOCK_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLADVANCEBLOCK_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLADVANCEBLOCK_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLADVANCEBLOCK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLADVANCEBLOCK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLADVANCEBLOCK_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLADVANCEBLOCK_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLADVANCEBLOCK_Clone", retCode) + cdef CDLADVANCEBLOCK_Stream stream = CDLADVANCEBLOCK_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLBELTHOLD_Stream(Stream): """ CDLBELTHOLD(open, high, low, close) Belt-hold (Pattern Recognition) @@ -1081,33 +5656,97 @@ def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLBELTHOLD", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLBELTHOLD_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLBELTHOLD_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBELTHOLD_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLBELTHOLD_Open", retCode, historylen, lib.TA_CDLBELTHOLD_Lookback() + 1) + if self._handle is not NULL: + TA_CDLBELTHOLD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLBELTHOLD_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLBELTHOLD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLBELTHOLD_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLBELTHOLD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLBELTHOLD_Stream stream = CDLBELTHOLD_Stream.__new__(CDLBELTHOLD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBELTHOLD_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLBELTHOLD_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBELTHOLD_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLBELTHOLD_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBELTHOLD_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLBELTHOLD_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLBELTHOLD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLBELTHOLD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLBELTHOLD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLBELTHOLD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLBELTHOLD_Clone", retCode) + cdef CDLBELTHOLD_Stream stream = CDLBELTHOLD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLBREAKAWAY_Stream(Stream): """ CDLBREAKAWAY(open, high, low, close) Breakaway (Pattern Recognition) @@ -1117,33 +5756,97 @@ def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLBREAKAWAY", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLBREAKAWAY_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLBREAKAWAY_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBREAKAWAY_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLBREAKAWAY_Open", retCode, historylen, lib.TA_CDLBREAKAWAY_Lookback() + 1) + if self._handle is not NULL: + TA_CDLBREAKAWAY_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLBREAKAWAY_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLBREAKAWAY_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLBREAKAWAY_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLBREAKAWAY_Stream stream = CDLBREAKAWAY_Stream.__new__(CDLBREAKAWAY_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBREAKAWAY_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLBREAKAWAY_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBREAKAWAY_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLBREAKAWAY_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLBREAKAWAY_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLBREAKAWAY_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLBREAKAWAY_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLBREAKAWAY_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLBREAKAWAY_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLBREAKAWAY_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLBREAKAWAY_Clone", retCode) + cdef CDLBREAKAWAY_Stream stream = CDLBREAKAWAY_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLCLOSINGMARUBOZU_Stream(Stream): """ CDLCLOSINGMARUBOZU(open, high, low, close) Closing Marubozu (Pattern Recognition) @@ -1153,33 +5856,97 @@ def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not No Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLCLOSINGMARUBOZU_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLCLOSINGMARUBOZU_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCLOSINGMARUBOZU_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLCLOSINGMARUBOZU_Open", retCode, historylen, lib.TA_CDLCLOSINGMARUBOZU_Lookback() + 1) + if self._handle is not NULL: + TA_CDLCLOSINGMARUBOZU_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLCLOSINGMARUBOZU_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLCLOSINGMARUBOZU_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLCLOSINGMARUBOZU_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLCLOSINGMARUBOZU_Stream stream = CDLCLOSINGMARUBOZU_Stream.__new__(CDLCLOSINGMARUBOZU_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCLOSINGMARUBOZU_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCLOSINGMARUBOZU_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCLOSINGMARUBOZU_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCLOSINGMARUBOZU_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCLOSINGMARUBOZU_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCLOSINGMARUBOZU_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLCLOSINGMARUBOZU_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLCLOSINGMARUBOZU_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLCLOSINGMARUBOZU_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLCLOSINGMARUBOZU_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLCLOSINGMARUBOZU_Clone", retCode) + cdef CDLCLOSINGMARUBOZU_Stream stream = CDLCLOSINGMARUBOZU_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLCONCEALBABYSWALL_Stream(Stream): """ CDLCONCEALBABYSWALL(open, high, low, close) Concealing Baby Swallow (Pattern Recognition) @@ -1189,33 +5956,97 @@ def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not N Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLCONCEALBABYSWALL_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLCONCEALBABYSWALL_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCONCEALBABYSWALL_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLCONCEALBABYSWALL_Open", retCode, historylen, lib.TA_CDLCONCEALBABYSWALL_Lookback() + 1) + if self._handle is not NULL: + TA_CDLCONCEALBABYSWALL_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLCONCEALBABYSWALL_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLCONCEALBABYSWALL_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLCONCEALBABYSWALL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLCONCEALBABYSWALL_Stream stream = CDLCONCEALBABYSWALL_Stream.__new__(CDLCONCEALBABYSWALL_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCONCEALBABYSWALL_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCONCEALBABYSWALL_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCONCEALBABYSWALL_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCONCEALBABYSWALL_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCONCEALBABYSWALL_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCONCEALBABYSWALL_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLCONCEALBABYSWALL_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLCONCEALBABYSWALL_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLCONCEALBABYSWALL_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLCONCEALBABYSWALL_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLCONCEALBABYSWALL_Clone", retCode) + cdef CDLCONCEALBABYSWALL_Stream stream = CDLCONCEALBABYSWALL_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLCOUNTERATTACK_Stream(Stream): """ CDLCOUNTERATTACK(open, high, low, close) Counterattack (Pattern Recognition) @@ -1225,33 +6056,97 @@ def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLCOUNTERATTACK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLCOUNTERATTACK_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLCOUNTERATTACK_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCOUNTERATTACK_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLCOUNTERATTACK_Open", retCode, historylen, lib.TA_CDLCOUNTERATTACK_Lookback() + 1) + if self._handle is not NULL: + TA_CDLCOUNTERATTACK_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLCOUNTERATTACK_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLCOUNTERATTACK_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLCOUNTERATTACK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLCOUNTERATTACK_Stream stream = CDLCOUNTERATTACK_Stream.__new__(CDLCOUNTERATTACK_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCOUNTERATTACK_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCOUNTERATTACK_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCOUNTERATTACK_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCOUNTERATTACK_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLCOUNTERATTACK_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLCOUNTERATTACK_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLCOUNTERATTACK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLCOUNTERATTACK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLCOUNTERATTACK_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLCOUNTERATTACK_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLCOUNTERATTACK_Clone", retCode) + cdef CDLCOUNTERATTACK_Stream stream = CDLCOUNTERATTACK_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLDARKCLOUDCOVER_Stream(Stream): """ CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?]) Dark Cloud Cover (Pattern Recognition) @@ -1263,33 +6158,97 @@ def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not Non Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLDARKCLOUDCOVER_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close, double penetration=0.5): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLDARKCLOUDCOVER_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDARKCLOUDCOVER_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLDARKCLOUDCOVER_Open", retCode, historylen, lib.TA_CDLDARKCLOUDCOVER_Lookback(penetration) + 1) + if self._handle is not NULL: + TA_CDLDARKCLOUDCOVER_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close, double penetration=0.5): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback(penetration) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLDARKCLOUDCOVER_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLDARKCLOUDCOVER_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLDARKCLOUDCOVER_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLDARKCLOUDCOVER_Stream stream = CDLDARKCLOUDCOVER_Stream.__new__(CDLDARKCLOUDCOVER_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDARKCLOUDCOVER_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDARKCLOUDCOVER_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDARKCLOUDCOVER_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDARKCLOUDCOVER_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDARKCLOUDCOVER_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDARKCLOUDCOVER_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLDARKCLOUDCOVER_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLDARKCLOUDCOVER_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLDARKCLOUDCOVER_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLDARKCLOUDCOVER_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLDARKCLOUDCOVER_Clone", retCode) + cdef CDLDARKCLOUDCOVER_Stream stream = CDLDARKCLOUDCOVER_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLDOJI_Stream(Stream): """ CDLDOJI(open, high, low, close) Doji (Pattern Recognition) @@ -1299,33 +6258,97 @@ def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.nda Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLDOJI_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLDOJI_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLDOJI_Open", retCode, historylen, lib.TA_CDLDOJI_Lookback() + 1) + if self._handle is not NULL: + TA_CDLDOJI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLDOJI_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLDOJI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLDOJI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLDOJI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLDOJI_Stream stream = CDLDOJI_Stream.__new__(CDLDOJI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJI_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDOJI_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJI_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDOJI_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJI_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDOJI_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLDOJI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLDOJI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLDOJI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLDOJI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLDOJI_Clone", retCode) + cdef CDLDOJI_Stream stream = CDLDOJI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLDOJISTAR_Stream(Stream): """ CDLDOJISTAR(open, high, low, close) Doji Star (Pattern Recognition) @@ -1335,33 +6358,97 @@ def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDOJISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLDOJISTAR_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLDOJISTAR_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJISTAR_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLDOJISTAR_Open", retCode, historylen, lib.TA_CDLDOJISTAR_Lookback() + 1) + if self._handle is not NULL: + TA_CDLDOJISTAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLDOJISTAR_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLDOJISTAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLDOJISTAR_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLDOJISTAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLDOJISTAR_Stream stream = CDLDOJISTAR_Stream.__new__(CDLDOJISTAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJISTAR_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDOJISTAR_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJISTAR_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDOJISTAR_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDOJISTAR_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDOJISTAR_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLDOJISTAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLDOJISTAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLDOJISTAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLDOJISTAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLDOJISTAR_Clone", retCode) + cdef CDLDOJISTAR_Stream stream = CDLDOJISTAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLDRAGONFLYDOJI_Stream(Stream): """ CDLDRAGONFLYDOJI(open, high, low, close) Dragonfly Doji (Pattern Recognition) @@ -1371,33 +6458,97 @@ def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLDRAGONFLYDOJI_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLDRAGONFLYDOJI_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDRAGONFLYDOJI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLDRAGONFLYDOJI_Open", retCode, historylen, lib.TA_CDLDRAGONFLYDOJI_Lookback() + 1) + if self._handle is not NULL: + TA_CDLDRAGONFLYDOJI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLDRAGONFLYDOJI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLDRAGONFLYDOJI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLDRAGONFLYDOJI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLDRAGONFLYDOJI_Stream stream = CDLDRAGONFLYDOJI_Stream.__new__(CDLDRAGONFLYDOJI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDRAGONFLYDOJI_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDRAGONFLYDOJI_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDRAGONFLYDOJI_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDRAGONFLYDOJI_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLDRAGONFLYDOJI_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLDRAGONFLYDOJI_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLDRAGONFLYDOJI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLDRAGONFLYDOJI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLDRAGONFLYDOJI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLDRAGONFLYDOJI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLDRAGONFLYDOJI_Clone", retCode) + cdef CDLDRAGONFLYDOJI_Stream stream = CDLDRAGONFLYDOJI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLENGULFING_Stream(Stream): """ CDLENGULFING(open, high, low, close) Engulfing Pattern (Pattern Recognition) @@ -1407,33 +6558,97 @@ def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLENGULFING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLENGULFING_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLENGULFING_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLENGULFING_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLENGULFING_Open", retCode, historylen, lib.TA_CDLENGULFING_Lookback() + 1) + if self._handle is not NULL: + TA_CDLENGULFING_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLENGULFING_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLENGULFING_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLENGULFING_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLENGULFING_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLENGULFING_Stream stream = CDLENGULFING_Stream.__new__(CDLENGULFING_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLENGULFING_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLENGULFING_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLENGULFING_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLENGULFING_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLENGULFING_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLENGULFING_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLENGULFING_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLENGULFING_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLENGULFING_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLENGULFING_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLENGULFING_Clone", retCode) + cdef CDLENGULFING_Stream stream = CDLENGULFING_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLEVENINGDOJISTAR_Stream(Stream): """ CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?]) Evening Doji Star (Pattern Recognition) @@ -1445,33 +6660,97 @@ def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not No Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLEVENINGDOJISTAR_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLEVENINGDOJISTAR_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGDOJISTAR_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLEVENINGDOJISTAR_Open", retCode, historylen, lib.TA_CDLEVENINGDOJISTAR_Lookback(penetration) + 1) + if self._handle is not NULL: + TA_CDLEVENINGDOJISTAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback(penetration) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLEVENINGDOJISTAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLEVENINGDOJISTAR_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLEVENINGDOJISTAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLEVENINGDOJISTAR_Stream stream = CDLEVENINGDOJISTAR_Stream.__new__(CDLEVENINGDOJISTAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGDOJISTAR_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGDOJISTAR_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGDOJISTAR_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGDOJISTAR_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGDOJISTAR_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGDOJISTAR_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLEVENINGDOJISTAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLEVENINGDOJISTAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLEVENINGDOJISTAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLEVENINGDOJISTAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGDOJISTAR_Clone", retCode) + cdef CDLEVENINGDOJISTAR_Stream stream = CDLEVENINGDOJISTAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLEVENINGSTAR_Stream(Stream): """ CDLEVENINGSTAR(open, high, low, close[, penetration=?]) Evening Star (Pattern Recognition) @@ -1483,33 +6762,97 @@ def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLEVENINGSTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLEVENINGSTAR_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLEVENINGSTAR_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGSTAR_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLEVENINGSTAR_Open", retCode, historylen, lib.TA_CDLEVENINGSTAR_Lookback(penetration) + 1) + if self._handle is not NULL: + TA_CDLEVENINGSTAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback(penetration) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLEVENINGSTAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLEVENINGSTAR_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLEVENINGSTAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLEVENINGSTAR_Stream stream = CDLEVENINGSTAR_Stream.__new__(CDLEVENINGSTAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGSTAR_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGSTAR_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGSTAR_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGSTAR_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLEVENINGSTAR_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGSTAR_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLEVENINGSTAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLEVENINGSTAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLEVENINGSTAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLEVENINGSTAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLEVENINGSTAR_Clone", retCode) + cdef CDLEVENINGSTAR_Stream stream = CDLEVENINGSTAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLGAPSIDESIDEWHITE_Stream(Stream): """ CDLGAPSIDESIDEWHITE(open, high, low, close) Up/Down-gap side-by-side white lines (Pattern Recognition) @@ -1519,33 +6862,97 @@ def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not N Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLGAPSIDESIDEWHITE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLGAPSIDESIDEWHITE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGAPSIDESIDEWHITE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLGAPSIDESIDEWHITE_Open", retCode, historylen, lib.TA_CDLGAPSIDESIDEWHITE_Lookback() + 1) + if self._handle is not NULL: + TA_CDLGAPSIDESIDEWHITE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLGAPSIDESIDEWHITE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLGAPSIDESIDEWHITE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLGAPSIDESIDEWHITE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLGAPSIDESIDEWHITE_Stream stream = CDLGAPSIDESIDEWHITE_Stream.__new__(CDLGAPSIDESIDEWHITE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGAPSIDESIDEWHITE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLGAPSIDESIDEWHITE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGAPSIDESIDEWHITE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLGAPSIDESIDEWHITE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGAPSIDESIDEWHITE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLGAPSIDESIDEWHITE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLGAPSIDESIDEWHITE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLGAPSIDESIDEWHITE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLGAPSIDESIDEWHITE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLGAPSIDESIDEWHITE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLGAPSIDESIDEWHITE_Clone", retCode) + cdef CDLGAPSIDESIDEWHITE_Stream stream = CDLGAPSIDESIDEWHITE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLGRAVESTONEDOJI_Stream(Stream): """ CDLGRAVESTONEDOJI(open, high, low, close) Gravestone Doji (Pattern Recognition) @@ -1555,33 +6962,97 @@ def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not Non Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLGRAVESTONEDOJI_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLGRAVESTONEDOJI_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGRAVESTONEDOJI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLGRAVESTONEDOJI_Open", retCode, historylen, lib.TA_CDLGRAVESTONEDOJI_Lookback() + 1) + if self._handle is not NULL: + TA_CDLGRAVESTONEDOJI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLGRAVESTONEDOJI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLGRAVESTONEDOJI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLGRAVESTONEDOJI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLGRAVESTONEDOJI_Stream stream = CDLGRAVESTONEDOJI_Stream.__new__(CDLGRAVESTONEDOJI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGRAVESTONEDOJI_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLGRAVESTONEDOJI_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGRAVESTONEDOJI_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLGRAVESTONEDOJI_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLGRAVESTONEDOJI_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLGRAVESTONEDOJI_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLGRAVESTONEDOJI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLGRAVESTONEDOJI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLGRAVESTONEDOJI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLGRAVESTONEDOJI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLGRAVESTONEDOJI_Clone", retCode) + cdef CDLGRAVESTONEDOJI_Stream stream = CDLGRAVESTONEDOJI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHAMMER_Stream(Stream): """ CDLHAMMER(open, high, low, close) Hammer (Pattern Recognition) @@ -1591,33 +7062,97 @@ def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHAMMER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHAMMER_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHAMMER_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHAMMER_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHAMMER_Open", retCode, historylen, lib.TA_CDLHAMMER_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHAMMER_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHAMMER_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHAMMER_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHAMMER_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHAMMER_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHAMMER_Stream stream = CDLHAMMER_Stream.__new__(CDLHAMMER_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHAMMER_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHAMMER_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHAMMER_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHAMMER_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHAMMER_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHAMMER_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHAMMER_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHAMMER_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHAMMER_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHAMMER_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHAMMER_Clone", retCode) + cdef CDLHAMMER_Stream stream = CDLHAMMER_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHANGINGMAN_Stream(Stream): """ CDLHANGINGMAN(open, high, low, close) Hanging Man (Pattern Recognition) @@ -1627,33 +7162,97 @@ def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHANGINGMAN", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHANGINGMAN_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHANGINGMAN_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHANGINGMAN_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHANGINGMAN_Open", retCode, historylen, lib.TA_CDLHANGINGMAN_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHANGINGMAN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHANGINGMAN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHANGINGMAN_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHANGINGMAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHANGINGMAN_Stream stream = CDLHANGINGMAN_Stream.__new__(CDLHANGINGMAN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHANGINGMAN_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHANGINGMAN_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHANGINGMAN_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHANGINGMAN_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHANGINGMAN_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHANGINGMAN_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHANGINGMAN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHANGINGMAN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHANGINGMAN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHANGINGMAN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHANGINGMAN_Clone", retCode) + cdef CDLHANGINGMAN_Stream stream = CDLHANGINGMAN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHARAMI_Stream(Stream): """ CDLHARAMI(open, high, low, close) Harami Pattern (Pattern Recognition) @@ -1663,33 +7262,97 @@ def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHARAMI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHARAMI_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHARAMI_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHARAMI_Open", retCode, historylen, lib.TA_CDLHARAMI_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHARAMI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHARAMI_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHARAMI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHARAMI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHARAMI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHARAMI_Stream stream = CDLHARAMI_Stream.__new__(CDLHARAMI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMI_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHARAMI_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMI_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHARAMI_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMI_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHARAMI_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHARAMI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHARAMI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHARAMI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHARAMI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHARAMI_Clone", retCode) + cdef CDLHARAMI_Stream stream = CDLHARAMI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHARAMICROSS_Stream(Stream): """ CDLHARAMICROSS(open, high, low, close) Harami Cross Pattern (Pattern Recognition) @@ -1699,33 +7362,97 @@ def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHARAMICROSS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHARAMICROSS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHARAMICROSS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMICROSS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHARAMICROSS_Open", retCode, historylen, lib.TA_CDLHARAMICROSS_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHARAMICROSS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHARAMICROSS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHARAMICROSS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHARAMICROSS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHARAMICROSS_Stream stream = CDLHARAMICROSS_Stream.__new__(CDLHARAMICROSS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMICROSS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHARAMICROSS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMICROSS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHARAMICROSS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHARAMICROSS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHARAMICROSS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHARAMICROSS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHARAMICROSS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHARAMICROSS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHARAMICROSS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHARAMICROSS_Clone", retCode) + cdef CDLHARAMICROSS_Stream stream = CDLHARAMICROSS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHIGHWAVE_Stream(Stream): """ CDLHIGHWAVE(open, high, low, close) High-Wave Candle (Pattern Recognition) @@ -1735,33 +7462,97 @@ def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHIGHWAVE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHIGHWAVE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHIGHWAVE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIGHWAVE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHIGHWAVE_Open", retCode, historylen, lib.TA_CDLHIGHWAVE_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHIGHWAVE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHIGHWAVE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHIGHWAVE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHIGHWAVE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHIGHWAVE_Stream stream = CDLHIGHWAVE_Stream.__new__(CDLHIGHWAVE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIGHWAVE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIGHWAVE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIGHWAVE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIGHWAVE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIGHWAVE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIGHWAVE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHIGHWAVE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHIGHWAVE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHIGHWAVE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHIGHWAVE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHIGHWAVE_Clone", retCode) + cdef CDLHIGHWAVE_Stream stream = CDLHIGHWAVE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHIKKAKE_Stream(Stream): """ CDLHIKKAKE(open, high, low, close) Hikkake Pattern (Pattern Recognition) @@ -1771,33 +7562,97 @@ def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np. Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHIKKAKE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHIKKAKE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHIKKAKE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHIKKAKE_Open", retCode, historylen, lib.TA_CDLHIKKAKE_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHIKKAKE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHIKKAKE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHIKKAKE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHIKKAKE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHIKKAKE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHIKKAKE_Stream stream = CDLHIKKAKE_Stream.__new__(CDLHIKKAKE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHIKKAKE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHIKKAKE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHIKKAKE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHIKKAKE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKE_Clone", retCode) + cdef CDLHIKKAKE_Stream stream = CDLHIKKAKE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHIKKAKEMOD_Stream(Stream): """ CDLHIKKAKEMOD(open, high, low, close) Modified Hikkake Pattern (Pattern Recognition) @@ -1807,33 +7662,97 @@ def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHIKKAKEMOD", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHIKKAKEMOD_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHIKKAKEMOD_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKEMOD_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHIKKAKEMOD_Open", retCode, historylen, lib.TA_CDLHIKKAKEMOD_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHIKKAKEMOD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHIKKAKEMOD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHIKKAKEMOD_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHIKKAKEMOD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHIKKAKEMOD_Stream stream = CDLHIKKAKEMOD_Stream.__new__(CDLHIKKAKEMOD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKEMOD_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKEMOD_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKEMOD_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKEMOD_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHIKKAKEMOD_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKEMOD_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHIKKAKEMOD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHIKKAKEMOD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHIKKAKEMOD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHIKKAKEMOD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHIKKAKEMOD_Clone", retCode) + cdef CDLHIKKAKEMOD_Stream stream = CDLHIKKAKEMOD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLHOMINGPIGEON_Stream(Stream): """ CDLHOMINGPIGEON(open, high, low, close) Homing Pigeon (Pattern Recognition) @@ -1843,33 +7762,97 @@ def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHOMINGPIGEON", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLHOMINGPIGEON_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLHOMINGPIGEON_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHOMINGPIGEON_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLHOMINGPIGEON_Open", retCode, historylen, lib.TA_CDLHOMINGPIGEON_Lookback() + 1) + if self._handle is not NULL: + TA_CDLHOMINGPIGEON_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLHOMINGPIGEON_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLHOMINGPIGEON_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLHOMINGPIGEON_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLHOMINGPIGEON_Stream stream = CDLHOMINGPIGEON_Stream.__new__(CDLHOMINGPIGEON_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHOMINGPIGEON_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHOMINGPIGEON_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHOMINGPIGEON_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHOMINGPIGEON_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLHOMINGPIGEON_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLHOMINGPIGEON_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLHOMINGPIGEON_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLHOMINGPIGEON_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLHOMINGPIGEON_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLHOMINGPIGEON_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLHOMINGPIGEON_Clone", retCode) + cdef CDLHOMINGPIGEON_Stream stream = CDLHOMINGPIGEON_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLIDENTICAL3CROWS_Stream(Stream): """ CDLIDENTICAL3CROWS(open, high, low, close) Identical Three Crows (Pattern Recognition) @@ -1879,33 +7862,97 @@ def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not No Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLIDENTICAL3CROWS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLIDENTICAL3CROWS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLIDENTICAL3CROWS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLIDENTICAL3CROWS_Open", retCode, historylen, lib.TA_CDLIDENTICAL3CROWS_Lookback() + 1) + if self._handle is not NULL: + TA_CDLIDENTICAL3CROWS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLIDENTICAL3CROWS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLIDENTICAL3CROWS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLIDENTICAL3CROWS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLIDENTICAL3CROWS_Stream stream = CDLIDENTICAL3CROWS_Stream.__new__(CDLIDENTICAL3CROWS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLIDENTICAL3CROWS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLIDENTICAL3CROWS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLIDENTICAL3CROWS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLIDENTICAL3CROWS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLIDENTICAL3CROWS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLIDENTICAL3CROWS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLIDENTICAL3CROWS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLIDENTICAL3CROWS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLIDENTICAL3CROWS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLIDENTICAL3CROWS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLIDENTICAL3CROWS_Clone", retCode) + cdef CDLIDENTICAL3CROWS_Stream stream = CDLIDENTICAL3CROWS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLINNECK_Stream(Stream): """ CDLINNECK(open, high, low, close) In-Neck Pattern (Pattern Recognition) @@ -1915,33 +7962,97 @@ def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLINNECK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLINNECK_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLINNECK_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINNECK_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLINNECK_Open", retCode, historylen, lib.TA_CDLINNECK_Lookback() + 1) + if self._handle is not NULL: + TA_CDLINNECK_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLINNECK_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLINNECK_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLINNECK_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLINNECK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLINNECK_Stream stream = CDLINNECK_Stream.__new__(CDLINNECK_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINNECK_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLINNECK_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINNECK_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLINNECK_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINNECK_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLINNECK_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLINNECK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLINNECK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLINNECK_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLINNECK_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLINNECK_Clone", retCode) + cdef CDLINNECK_Stream stream = CDLINNECK_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLINVERTEDHAMMER_Stream(Stream): """ CDLINVERTEDHAMMER(open, high, low, close) Inverted Hammer (Pattern Recognition) @@ -1951,33 +8062,97 @@ def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not Non Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLINVERTEDHAMMER_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLINVERTEDHAMMER_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINVERTEDHAMMER_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLINVERTEDHAMMER_Open", retCode, historylen, lib.TA_CDLINVERTEDHAMMER_Lookback() + 1) + if self._handle is not NULL: + TA_CDLINVERTEDHAMMER_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLINVERTEDHAMMER_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLINVERTEDHAMMER_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLINVERTEDHAMMER_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLINVERTEDHAMMER_Stream stream = CDLINVERTEDHAMMER_Stream.__new__(CDLINVERTEDHAMMER_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINVERTEDHAMMER_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLINVERTEDHAMMER_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINVERTEDHAMMER_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLINVERTEDHAMMER_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLINVERTEDHAMMER_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLINVERTEDHAMMER_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLINVERTEDHAMMER_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLINVERTEDHAMMER_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLINVERTEDHAMMER_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLINVERTEDHAMMER_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLINVERTEDHAMMER_Clone", retCode) + cdef CDLINVERTEDHAMMER_Stream stream = CDLINVERTEDHAMMER_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLKICKING_Stream(Stream): """ CDLKICKING(open, high, low, close) Kicking (Pattern Recognition) @@ -1987,33 +8162,97 @@ def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np. Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLKICKING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLKICKING_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLKICKING_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKING_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLKICKING_Open", retCode, historylen, lib.TA_CDLKICKING_Lookback() + 1) + if self._handle is not NULL: + TA_CDLKICKING_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLKICKING_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLKICKING_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLKICKING_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLKICKING_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLKICKING_Stream stream = CDLKICKING_Stream.__new__(CDLKICKING_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKING_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLKICKING_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKING_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLKICKING_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKING_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLKICKING_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLKICKING_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLKICKING_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLKICKING_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLKICKING_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLKICKING_Clone", retCode) + cdef CDLKICKING_Stream stream = CDLKICKING_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLKICKINGBYLENGTH_Stream(Stream): """ CDLKICKINGBYLENGTH(open, high, low, close) Kicking - bull/bear determined by the longer marubozu (Pattern Recognition) @@ -2023,33 +8262,97 @@ def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not No Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLKICKINGBYLENGTH_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLKICKINGBYLENGTH_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKINGBYLENGTH_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLKICKINGBYLENGTH_Open", retCode, historylen, lib.TA_CDLKICKINGBYLENGTH_Lookback() + 1) + if self._handle is not NULL: + TA_CDLKICKINGBYLENGTH_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLKICKINGBYLENGTH_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLKICKINGBYLENGTH_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLKICKINGBYLENGTH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLKICKINGBYLENGTH_Stream stream = CDLKICKINGBYLENGTH_Stream.__new__(CDLKICKINGBYLENGTH_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKINGBYLENGTH_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLKICKINGBYLENGTH_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKINGBYLENGTH_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLKICKINGBYLENGTH_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLKICKINGBYLENGTH_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLKICKINGBYLENGTH_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLKICKINGBYLENGTH_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLKICKINGBYLENGTH_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLKICKINGBYLENGTH_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLKICKINGBYLENGTH_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLKICKINGBYLENGTH_Clone", retCode) + cdef CDLKICKINGBYLENGTH_Stream stream = CDLKICKINGBYLENGTH_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLLADDERBOTTOM_Stream(Stream): """ CDLLADDERBOTTOM(open, high, low, close) Ladder Bottom (Pattern Recognition) @@ -2059,33 +8362,97 @@ def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLLADDERBOTTOM", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLLADDERBOTTOM_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLLADDERBOTTOM_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLADDERBOTTOM_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLLADDERBOTTOM_Open", retCode, historylen, lib.TA_CDLLADDERBOTTOM_Lookback() + 1) + if self._handle is not NULL: + TA_CDLLADDERBOTTOM_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLLADDERBOTTOM_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLLADDERBOTTOM_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLLADDERBOTTOM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLLADDERBOTTOM_Stream stream = CDLLADDERBOTTOM_Stream.__new__(CDLLADDERBOTTOM_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLADDERBOTTOM_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLADDERBOTTOM_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLADDERBOTTOM_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLADDERBOTTOM_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLADDERBOTTOM_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLADDERBOTTOM_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLLADDERBOTTOM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLLADDERBOTTOM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLLADDERBOTTOM_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLLADDERBOTTOM_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLLADDERBOTTOM_Clone", retCode) + cdef CDLLADDERBOTTOM_Stream stream = CDLLADDERBOTTOM_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLLONGLEGGEDDOJI_Stream(Stream): """ CDLLONGLEGGEDDOJI(open, high, low, close) Long Legged Doji (Pattern Recognition) @@ -2095,33 +8462,97 @@ def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not Non Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLLONGLEGGEDDOJI_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLLONGLEGGEDDOJI_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLEGGEDDOJI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLLONGLEGGEDDOJI_Open", retCode, historylen, lib.TA_CDLLONGLEGGEDDOJI_Lookback() + 1) + if self._handle is not NULL: + TA_CDLLONGLEGGEDDOJI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLLONGLEGGEDDOJI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLLONGLEGGEDDOJI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLLONGLEGGEDDOJI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLLONGLEGGEDDOJI_Stream stream = CDLLONGLEGGEDDOJI_Stream.__new__(CDLLONGLEGGEDDOJI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLEGGEDDOJI_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLONGLEGGEDDOJI_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLEGGEDDOJI_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLONGLEGGEDDOJI_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLEGGEDDOJI_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLONGLEGGEDDOJI_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLLONGLEGGEDDOJI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLLONGLEGGEDDOJI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLLONGLEGGEDDOJI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLLONGLEGGEDDOJI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLLONGLEGGEDDOJI_Clone", retCode) + cdef CDLLONGLEGGEDDOJI_Stream stream = CDLLONGLEGGEDDOJI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLLONGLINE_Stream(Stream): """ CDLLONGLINE(open, high, low, close) Long Line Candle (Pattern Recognition) @@ -2131,33 +8562,97 @@ def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLLONGLINE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLLONGLINE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLLONGLINE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLINE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLLONGLINE_Open", retCode, historylen, lib.TA_CDLLONGLINE_Lookback() + 1) + if self._handle is not NULL: + TA_CDLLONGLINE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLLONGLINE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLLONGLINE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLLONGLINE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLLONGLINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLLONGLINE_Stream stream = CDLLONGLINE_Stream.__new__(CDLLONGLINE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLINE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLONGLINE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLINE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLONGLINE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLLONGLINE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLLONGLINE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLLONGLINE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLLONGLINE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLLONGLINE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLLONGLINE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLLONGLINE_Clone", retCode) + cdef CDLLONGLINE_Stream stream = CDLLONGLINE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLMARUBOZU_Stream(Stream): """ CDLMARUBOZU(open, high, low, close) Marubozu (Pattern Recognition) @@ -2167,33 +8662,97 @@ def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMARUBOZU", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLMARUBOZU_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLMARUBOZU_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMARUBOZU_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLMARUBOZU_Open", retCode, historylen, lib.TA_CDLMARUBOZU_Lookback() + 1) + if self._handle is not NULL: + TA_CDLMARUBOZU_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLMARUBOZU_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLMARUBOZU_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLMARUBOZU_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLMARUBOZU_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLMARUBOZU_Stream stream = CDLMARUBOZU_Stream.__new__(CDLMARUBOZU_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMARUBOZU_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMARUBOZU_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMARUBOZU_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMARUBOZU_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMARUBOZU_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMARUBOZU_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLMARUBOZU_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLMARUBOZU_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLMARUBOZU_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLMARUBOZU_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLMARUBOZU_Clone", retCode) + cdef CDLMARUBOZU_Stream stream = CDLMARUBOZU_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLMATCHINGLOW_Stream(Stream): """ CDLMATCHINGLOW(open, high, low, close) Matching Low (Pattern Recognition) @@ -2203,33 +8762,97 @@ def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMATCHINGLOW", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLMATCHINGLOW_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLMATCHINGLOW_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATCHINGLOW_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLMATCHINGLOW_Open", retCode, historylen, lib.TA_CDLMATCHINGLOW_Lookback() + 1) + if self._handle is not NULL: + TA_CDLMATCHINGLOW_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLMATCHINGLOW_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLMATCHINGLOW_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLMATCHINGLOW_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLMATCHINGLOW_Stream stream = CDLMATCHINGLOW_Stream.__new__(CDLMATCHINGLOW_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATCHINGLOW_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMATCHINGLOW_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATCHINGLOW_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMATCHINGLOW_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATCHINGLOW_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMATCHINGLOW_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLMATCHINGLOW_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLMATCHINGLOW_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLMATCHINGLOW_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLMATCHINGLOW_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLMATCHINGLOW_Clone", retCode) + cdef CDLMATCHINGLOW_Stream stream = CDLMATCHINGLOW_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLMATHOLD_Stream(Stream): """ CDLMATHOLD(open, high, low, close[, penetration=?]) Mat Hold (Pattern Recognition) @@ -2241,33 +8864,97 @@ def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np. Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMATHOLD", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLMATHOLD_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close, double penetration=0.5): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLMATHOLD_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATHOLD_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLMATHOLD_Open", retCode, historylen, lib.TA_CDLMATHOLD_Lookback(penetration) + 1) + if self._handle is not NULL: + TA_CDLMATHOLD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close, double penetration=0.5): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLMATHOLD_Lookback(penetration) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLMATHOLD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLMATHOLD_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLMATHOLD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLMATHOLD_Stream stream = CDLMATHOLD_Stream.__new__(CDLMATHOLD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATHOLD_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMATHOLD_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATHOLD_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMATHOLD_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMATHOLD_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMATHOLD_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLMATHOLD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLMATHOLD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLMATHOLD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLMATHOLD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLMATHOLD_Clone", retCode) + cdef CDLMATHOLD_Stream stream = CDLMATHOLD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLMORNINGDOJISTAR_Stream(Stream): """ CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?]) Morning Doji Star (Pattern Recognition) @@ -2279,33 +8966,97 @@ def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not No Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLMORNINGDOJISTAR_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLMORNINGDOJISTAR_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGDOJISTAR_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLMORNINGDOJISTAR_Open", retCode, historylen, lib.TA_CDLMORNINGDOJISTAR_Lookback(penetration) + 1) + if self._handle is not NULL: + TA_CDLMORNINGDOJISTAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback(penetration) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLMORNINGDOJISTAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLMORNINGDOJISTAR_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLMORNINGDOJISTAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLMORNINGDOJISTAR_Stream stream = CDLMORNINGDOJISTAR_Stream.__new__(CDLMORNINGDOJISTAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGDOJISTAR_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGDOJISTAR_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGDOJISTAR_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGDOJISTAR_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGDOJISTAR_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGDOJISTAR_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLMORNINGDOJISTAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLMORNINGDOJISTAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLMORNINGDOJISTAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLMORNINGDOJISTAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGDOJISTAR_Clone", retCode) + cdef CDLMORNINGDOJISTAR_Stream stream = CDLMORNINGDOJISTAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLMORNINGSTAR_Stream(Stream): """ CDLMORNINGSTAR(open, high, low, close[, penetration=?]) Morning Star (Pattern Recognition) @@ -2317,33 +9068,97 @@ def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMORNINGSTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLMORNINGSTAR_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLMORNINGSTAR_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGSTAR_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLMORNINGSTAR_Open", retCode, historylen, lib.TA_CDLMORNINGSTAR_Lookback(penetration) + 1) + if self._handle is not NULL: + TA_CDLMORNINGSTAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close, double penetration=0.3): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback(penetration) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLMORNINGSTAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLMORNINGSTAR_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, penetration, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLMORNINGSTAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLMORNINGSTAR_Stream stream = CDLMORNINGSTAR_Stream.__new__(CDLMORNINGSTAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGSTAR_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGSTAR_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGSTAR_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGSTAR_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLMORNINGSTAR_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGSTAR_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLMORNINGSTAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLMORNINGSTAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLMORNINGSTAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLMORNINGSTAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLMORNINGSTAR_Clone", retCode) + cdef CDLMORNINGSTAR_Stream stream = CDLMORNINGSTAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLONNECK_Stream(Stream): """ CDLONNECK(open, high, low, close) On-Neck Pattern (Pattern Recognition) @@ -2353,33 +9168,97 @@ def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLONNECK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLONNECK_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLONNECK_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLONNECK_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLONNECK_Open", retCode, historylen, lib.TA_CDLONNECK_Lookback() + 1) + if self._handle is not NULL: + TA_CDLONNECK_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLONNECK_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLONNECK_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLONNECK_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLONNECK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLONNECK_Stream stream = CDLONNECK_Stream.__new__(CDLONNECK_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLONNECK_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLONNECK_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLONNECK_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLONNECK_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLONNECK_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLONNECK_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLONNECK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLONNECK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLONNECK_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLONNECK_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLONNECK_Clone", retCode) + cdef CDLONNECK_Stream stream = CDLONNECK_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLPIERCING_Stream(Stream): """ CDLPIERCING(open, high, low, close) Piercing Pattern (Pattern Recognition) @@ -2389,33 +9268,97 @@ def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLPIERCING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLPIERCING_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLPIERCING_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLPIERCING_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLPIERCING_Open", retCode, historylen, lib.TA_CDLPIERCING_Lookback() + 1) + if self._handle is not NULL: + TA_CDLPIERCING_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLPIERCING_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLPIERCING_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLPIERCING_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLPIERCING_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLPIERCING_Stream stream = CDLPIERCING_Stream.__new__(CDLPIERCING_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLPIERCING_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLPIERCING_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLPIERCING_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLPIERCING_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLPIERCING_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLPIERCING_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLPIERCING_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLPIERCING_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLPIERCING_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLPIERCING_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLPIERCING_Clone", retCode) + cdef CDLPIERCING_Stream stream = CDLPIERCING_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLRICKSHAWMAN_Stream(Stream): """ CDLRICKSHAWMAN(open, high, low, close) Rickshaw Man (Pattern Recognition) @@ -2425,33 +9368,97 @@ def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLRICKSHAWMAN", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLRICKSHAWMAN_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLRICKSHAWMAN_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRICKSHAWMAN_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLRICKSHAWMAN_Open", retCode, historylen, lib.TA_CDLRICKSHAWMAN_Lookback() + 1) + if self._handle is not NULL: + TA_CDLRICKSHAWMAN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLRICKSHAWMAN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLRICKSHAWMAN_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLRICKSHAWMAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLRICKSHAWMAN_Stream stream = CDLRICKSHAWMAN_Stream.__new__(CDLRICKSHAWMAN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRICKSHAWMAN_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLRICKSHAWMAN_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRICKSHAWMAN_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLRICKSHAWMAN_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRICKSHAWMAN_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLRICKSHAWMAN_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLRICKSHAWMAN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLRICKSHAWMAN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLRICKSHAWMAN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLRICKSHAWMAN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLRICKSHAWMAN_Clone", retCode) + cdef CDLRICKSHAWMAN_Stream stream = CDLRICKSHAWMAN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLRISEFALL3METHODS_Stream(Stream): """ CDLRISEFALL3METHODS(open, high, low, close) Rising/Falling Three Methods (Pattern Recognition) @@ -2461,33 +9468,97 @@ def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not N Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLRISEFALL3METHODS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLRISEFALL3METHODS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRISEFALL3METHODS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLRISEFALL3METHODS_Open", retCode, historylen, lib.TA_CDLRISEFALL3METHODS_Lookback() + 1) + if self._handle is not NULL: + TA_CDLRISEFALL3METHODS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLRISEFALL3METHODS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLRISEFALL3METHODS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLRISEFALL3METHODS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLRISEFALL3METHODS_Stream stream = CDLRISEFALL3METHODS_Stream.__new__(CDLRISEFALL3METHODS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRISEFALL3METHODS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLRISEFALL3METHODS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRISEFALL3METHODS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLRISEFALL3METHODS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLRISEFALL3METHODS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLRISEFALL3METHODS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLRISEFALL3METHODS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLRISEFALL3METHODS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLRISEFALL3METHODS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLRISEFALL3METHODS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLRISEFALL3METHODS_Clone", retCode) + cdef CDLRISEFALL3METHODS_Stream stream = CDLRISEFALL3METHODS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLSEPARATINGLINES_Stream(Stream): """ CDLSEPARATINGLINES(open, high, low, close) Separating Lines (Pattern Recognition) @@ -2497,33 +9568,97 @@ def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not No Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSEPARATINGLINES", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLSEPARATINGLINES_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLSEPARATINGLINES_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSEPARATINGLINES_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLSEPARATINGLINES_Open", retCode, historylen, lib.TA_CDLSEPARATINGLINES_Lookback() + 1) + if self._handle is not NULL: + TA_CDLSEPARATINGLINES_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLSEPARATINGLINES_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLSEPARATINGLINES_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLSEPARATINGLINES_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLSEPARATINGLINES_Stream stream = CDLSEPARATINGLINES_Stream.__new__(CDLSEPARATINGLINES_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSEPARATINGLINES_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSEPARATINGLINES_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSEPARATINGLINES_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSEPARATINGLINES_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSEPARATINGLINES_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSEPARATINGLINES_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLSEPARATINGLINES_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLSEPARATINGLINES_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLSEPARATINGLINES_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLSEPARATINGLINES_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLSEPARATINGLINES_Clone", retCode) + cdef CDLSEPARATINGLINES_Stream stream = CDLSEPARATINGLINES_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLSHOOTINGSTAR_Stream(Stream): """ CDLSHOOTINGSTAR(open, high, low, close) Shooting Star (Pattern Recognition) @@ -2533,33 +9668,97 @@ def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLSHOOTINGSTAR_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLSHOOTINGSTAR_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHOOTINGSTAR_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLSHOOTINGSTAR_Open", retCode, historylen, lib.TA_CDLSHOOTINGSTAR_Lookback() + 1) + if self._handle is not NULL: + TA_CDLSHOOTINGSTAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLSHOOTINGSTAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLSHOOTINGSTAR_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLSHOOTINGSTAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLSHOOTINGSTAR_Stream stream = CDLSHOOTINGSTAR_Stream.__new__(CDLSHOOTINGSTAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHOOTINGSTAR_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSHOOTINGSTAR_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHOOTINGSTAR_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSHOOTINGSTAR_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHOOTINGSTAR_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSHOOTINGSTAR_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLSHOOTINGSTAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLSHOOTINGSTAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLSHOOTINGSTAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLSHOOTINGSTAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLSHOOTINGSTAR_Clone", retCode) + cdef CDLSHOOTINGSTAR_Stream stream = CDLSHOOTINGSTAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLSHORTLINE_Stream(Stream): """ CDLSHORTLINE(open, high, low, close) Short Line Candle (Pattern Recognition) @@ -2569,33 +9768,97 @@ def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSHORTLINE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLSHORTLINE_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLSHORTLINE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHORTLINE_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLSHORTLINE_Open", retCode, historylen, lib.TA_CDLSHORTLINE_Lookback() + 1) + if self._handle is not NULL: + TA_CDLSHORTLINE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLSHORTLINE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLSHORTLINE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLSHORTLINE_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLSHORTLINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLSHORTLINE_Stream stream = CDLSHORTLINE_Stream.__new__(CDLSHORTLINE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHORTLINE_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSHORTLINE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHORTLINE_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSHORTLINE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSHORTLINE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSHORTLINE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLSHORTLINE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLSHORTLINE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLSHORTLINE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLSHORTLINE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLSHORTLINE_Clone", retCode) + cdef CDLSHORTLINE_Stream stream = CDLSHORTLINE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLSPINNINGTOP_Stream(Stream): """ CDLSPINNINGTOP(open, high, low, close) Spinning Top (Pattern Recognition) @@ -2605,33 +9868,97 @@ def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSPINNINGTOP", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLSPINNINGTOP_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLSPINNINGTOP_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSPINNINGTOP_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLSPINNINGTOP_Open", retCode, historylen, lib.TA_CDLSPINNINGTOP_Lookback() + 1) + if self._handle is not NULL: + TA_CDLSPINNINGTOP_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLSPINNINGTOP_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLSPINNINGTOP_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLSPINNINGTOP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLSPINNINGTOP_Stream stream = CDLSPINNINGTOP_Stream.__new__(CDLSPINNINGTOP_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSPINNINGTOP_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSPINNINGTOP_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSPINNINGTOP_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSPINNINGTOP_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSPINNINGTOP_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSPINNINGTOP_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLSPINNINGTOP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLSPINNINGTOP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLSPINNINGTOP_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLSPINNINGTOP_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLSPINNINGTOP_Clone", retCode) + cdef CDLSPINNINGTOP_Stream stream = CDLSPINNINGTOP_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLSTALLEDPATTERN_Stream(Stream): """ CDLSTALLEDPATTERN(open, high, low, close) Stalled Pattern (Pattern Recognition) @@ -2641,33 +9968,97 @@ def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not Non Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLSTALLEDPATTERN_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLSTALLEDPATTERN_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTALLEDPATTERN_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLSTALLEDPATTERN_Open", retCode, historylen, lib.TA_CDLSTALLEDPATTERN_Lookback() + 1) + if self._handle is not NULL: + TA_CDLSTALLEDPATTERN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLSTALLEDPATTERN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLSTALLEDPATTERN_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLSTALLEDPATTERN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLSTALLEDPATTERN_Stream stream = CDLSTALLEDPATTERN_Stream.__new__(CDLSTALLEDPATTERN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTALLEDPATTERN_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSTALLEDPATTERN_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTALLEDPATTERN_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSTALLEDPATTERN_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTALLEDPATTERN_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSTALLEDPATTERN_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLSTALLEDPATTERN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLSTALLEDPATTERN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLSTALLEDPATTERN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLSTALLEDPATTERN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLSTALLEDPATTERN_Clone", retCode) + cdef CDLSTALLEDPATTERN_Stream stream = CDLSTALLEDPATTERN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLSTICKSANDWICH_Stream(Stream): """ CDLSTICKSANDWICH(open, high, low, close) Stick Sandwich (Pattern Recognition) @@ -2677,33 +10068,97 @@ def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSTICKSANDWICH", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLSTICKSANDWICH_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLSTICKSANDWICH_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTICKSANDWICH_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLSTICKSANDWICH_Open", retCode, historylen, lib.TA_CDLSTICKSANDWICH_Lookback() + 1) + if self._handle is not NULL: + TA_CDLSTICKSANDWICH_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLSTICKSANDWICH_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLSTICKSANDWICH_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLSTICKSANDWICH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLSTICKSANDWICH_Stream stream = CDLSTICKSANDWICH_Stream.__new__(CDLSTICKSANDWICH_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTICKSANDWICH_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSTICKSANDWICH_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTICKSANDWICH_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSTICKSANDWICH_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLSTICKSANDWICH_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLSTICKSANDWICH_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLSTICKSANDWICH_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLSTICKSANDWICH_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLSTICKSANDWICH_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLSTICKSANDWICH_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLSTICKSANDWICH_Clone", retCode) + cdef CDLSTICKSANDWICH_Stream stream = CDLSTICKSANDWICH_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLTAKURI_Stream(Stream): """ CDLTAKURI(open, high, low, close) Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition) @@ -2713,33 +10168,97 @@ def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTAKURI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLTAKURI_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLTAKURI_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTAKURI_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLTAKURI_Open", retCode, historylen, lib.TA_CDLTAKURI_Lookback() + 1) + if self._handle is not NULL: + TA_CDLTAKURI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLTAKURI_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLTAKURI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLTAKURI_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLTAKURI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLTAKURI_Stream stream = CDLTAKURI_Stream.__new__(CDLTAKURI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTAKURI_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTAKURI_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTAKURI_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTAKURI_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTAKURI_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTAKURI_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLTAKURI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLTAKURI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLTAKURI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLTAKURI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLTAKURI_Clone", retCode) + cdef CDLTAKURI_Stream stream = CDLTAKURI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLTASUKIGAP_Stream(Stream): """ CDLTASUKIGAP(open, high, low, close) Tasuki Gap (Pattern Recognition) @@ -2749,33 +10268,97 @@ def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTASUKIGAP", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLTASUKIGAP_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLTASUKIGAP_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTASUKIGAP_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLTASUKIGAP_Open", retCode, historylen, lib.TA_CDLTASUKIGAP_Lookback() + 1) + if self._handle is not NULL: + TA_CDLTASUKIGAP_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLTASUKIGAP_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLTASUKIGAP_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLTASUKIGAP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLTASUKIGAP_Stream stream = CDLTASUKIGAP_Stream.__new__(CDLTASUKIGAP_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTASUKIGAP_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTASUKIGAP_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTASUKIGAP_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTASUKIGAP_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTASUKIGAP_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTASUKIGAP_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLTASUKIGAP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLTASUKIGAP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLTASUKIGAP_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLTASUKIGAP_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLTASUKIGAP_Clone", retCode) + cdef CDLTASUKIGAP_Stream stream = CDLTASUKIGAP_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLTHRUSTING_Stream(Stream): """ CDLTHRUSTING(open, high, low, close) Thrusting Pattern (Pattern Recognition) @@ -2785,33 +10368,97 @@ def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , n Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTHRUSTING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLTHRUSTING_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLTHRUSTING_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTHRUSTING_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLTHRUSTING_Open", retCode, historylen, lib.TA_CDLTHRUSTING_Lookback() + 1) + if self._handle is not NULL: + TA_CDLTHRUSTING_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLTHRUSTING_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLTHRUSTING_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLTHRUSTING_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLTHRUSTING_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLTHRUSTING_Stream stream = CDLTHRUSTING_Stream.__new__(CDLTHRUSTING_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTHRUSTING_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTHRUSTING_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTHRUSTING_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTHRUSTING_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTHRUSTING_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTHRUSTING_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLTHRUSTING_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLTHRUSTING_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLTHRUSTING_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLTHRUSTING_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLTHRUSTING_Clone", retCode) + cdef CDLTHRUSTING_Stream stream = CDLTHRUSTING_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLTRISTAR_Stream(Stream): """ CDLTRISTAR(open, high, low, close) Tristar Pattern (Pattern Recognition) @@ -2821,33 +10468,97 @@ def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np. Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTRISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLTRISTAR_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLTRISTAR_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTRISTAR_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLTRISTAR_Open", retCode, historylen, lib.TA_CDLTRISTAR_Lookback() + 1) + if self._handle is not NULL: + TA_CDLTRISTAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLTRISTAR_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLTRISTAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLTRISTAR_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLTRISTAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLTRISTAR_Stream stream = CDLTRISTAR_Stream.__new__(CDLTRISTAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTRISTAR_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTRISTAR_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTRISTAR_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTRISTAR_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLTRISTAR_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLTRISTAR_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLTRISTAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLTRISTAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLTRISTAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLTRISTAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLTRISTAR_Clone", retCode) + cdef CDLTRISTAR_Stream stream = CDLTRISTAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLUNIQUE3RIVER_Stream(Stream): """ CDLUNIQUE3RIVER(open, high, low, close) Unique 3 River (Pattern Recognition) @@ -2857,33 +10568,97 @@ def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLUNIQUE3RIVER_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLUNIQUE3RIVER_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUNIQUE3RIVER_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLUNIQUE3RIVER_Open", retCode, historylen, lib.TA_CDLUNIQUE3RIVER_Lookback() + 1) + if self._handle is not NULL: + TA_CDLUNIQUE3RIVER_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLUNIQUE3RIVER_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLUNIQUE3RIVER_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLUNIQUE3RIVER_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLUNIQUE3RIVER_Stream stream = CDLUNIQUE3RIVER_Stream.__new__(CDLUNIQUE3RIVER_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUNIQUE3RIVER_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLUNIQUE3RIVER_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUNIQUE3RIVER_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLUNIQUE3RIVER_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUNIQUE3RIVER_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLUNIQUE3RIVER_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLUNIQUE3RIVER_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLUNIQUE3RIVER_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLUNIQUE3RIVER_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLUNIQUE3RIVER_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLUNIQUE3RIVER_Clone", retCode) + cdef CDLUNIQUE3RIVER_Stream stream = CDLUNIQUE3RIVER_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLUPSIDEGAP2CROWS_Stream(Stream): """ CDLUPSIDEGAP2CROWS(open, high, low, close) Upside Gap Two Crows (Pattern Recognition) @@ -2893,33 +10668,97 @@ def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not No Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLUPSIDEGAP2CROWS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLUPSIDEGAP2CROWS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUPSIDEGAP2CROWS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLUPSIDEGAP2CROWS_Open", retCode, historylen, lib.TA_CDLUPSIDEGAP2CROWS_Lookback() + 1) + if self._handle is not NULL: + TA_CDLUPSIDEGAP2CROWS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLUPSIDEGAP2CROWS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLUPSIDEGAP2CROWS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLUPSIDEGAP2CROWS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLUPSIDEGAP2CROWS_Stream stream = CDLUPSIDEGAP2CROWS_Stream.__new__(CDLUPSIDEGAP2CROWS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUPSIDEGAP2CROWS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLUPSIDEGAP2CROWS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUPSIDEGAP2CROWS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLUPSIDEGAP2CROWS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLUPSIDEGAP2CROWS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLUPSIDEGAP2CROWS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLUPSIDEGAP2CROWS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLUPSIDEGAP2CROWS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLUPSIDEGAP2CROWS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLUPSIDEGAP2CROWS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLUPSIDEGAP2CROWS_Clone", retCode) + cdef CDLUPSIDEGAP2CROWS_Stream stream = CDLUPSIDEGAP2CROWS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CDLXSIDEGAP3METHODS_Stream(Stream): """ CDLXSIDEGAP3METHODS(open, high, low, close) Upside/Downside Gap Three Methods (Pattern Recognition) @@ -2929,33 +10768,97 @@ def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not N Outputs: integer (values are -100, 0 or 100) """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CEIL( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CDLXSIDEGAP3METHODS_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CDLXSIDEGAP3METHODS_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLXSIDEGAP3METHODS_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_CDLXSIDEGAP3METHODS_Open", retCode, historylen, lib.TA_CDLXSIDEGAP3METHODS_Lookback() + 1) + if self._handle is not NULL: + TA_CDLXSIDEGAP3METHODS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CDLXSIDEGAP3METHODS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CDLXSIDEGAP3METHODS_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CDLXSIDEGAP3METHODS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CDLXSIDEGAP3METHODS_Stream stream = CDLXSIDEGAP3METHODS_Stream.__new__(CDLXSIDEGAP3METHODS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, high, low, close,), outinteger) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLXSIDEGAP3METHODS_Update(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLXSIDEGAP3METHODS_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLXSIDEGAP3METHODS_Peek(self._handle, open, high, low, close, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLXSIDEGAP3METHODS_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_CDLXSIDEGAP3METHODS_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_CDLXSIDEGAP3METHODS_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CDLXSIDEGAP3METHODS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CDLXSIDEGAP3METHODS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CDLXSIDEGAP3METHODS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CDLXSIDEGAP3METHODS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CDLXSIDEGAP3METHODS_Clone", retCode) + cdef CDLXSIDEGAP3METHODS_Stream stream = CDLXSIDEGAP3METHODS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CEIL_Stream(Stream): """ CEIL(real) Vector Ceil (Math Transform) @@ -2965,24 +10868,91 @@ def stream_CEIL( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CEIL", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CMF( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CEIL_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CEIL_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CEIL_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_CEIL_Open", retCode, historylen, lib.TA_CEIL_Lookback() + 1) + if self._handle is not NULL: + TA_CEIL_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CEIL_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CEIL_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CEIL_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CEIL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CEIL_Stream stream = CEIL_Stream.__new__(CEIL_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CEIL_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CEIL_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CEIL_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CEIL_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CEIL_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CEIL_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CEIL_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CEIL_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CEIL_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CEIL_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CEIL_Clone", retCode) + cdef CEIL_Stream stream = CEIL_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CMF_Stream(Stream): """ CMF(high, low, close, volume[, timeperiod=?]) Chaikin Money Flow (Volume Indicators) @@ -2994,33 +10964,97 @@ def stream_CMF( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_CMF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CMF", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CMF_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CMF_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CMF_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_CMF_Open", retCode, historylen, lib.TA_CMF_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_CMF_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CMF_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CMF_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CMF_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CMF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CMF_Stream stream = CMF_Stream.__new__(CMF_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_CMF_Update(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_CMF_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_CMF_Peek(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_CMF_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CMF_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CMF_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CMF_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CMF_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CMF_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CMF_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CMF_Clone", retCode) + cdef CMF_Stream stream = CMF_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CMO_Stream(Stream): """ CMO(real[, timeperiod=?]) Chande Momentum Oscillator (Momentum Indicators) @@ -3032,24 +11066,91 @@ def stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CMO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CMOU( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CMO_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CMO_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CMO_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_CMO_Open", retCode, historylen, lib.TA_CMO_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_CMO_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CMO_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CMO_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CMO_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CMO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CMO_Stream stream = CMO_Stream.__new__(CMO_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CMO_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CMO_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CMO_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CMO_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CMO_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CMO_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CMO_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CMO_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CMO_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CMO_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CMO_Clone", retCode) + cdef CMO_Stream stream = CMO_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CMOU_Stream(Stream): """ CMOU(real[, timeperiod=?]) Chande Momentum Oscillator (Unsmoothed) (Momentum Indicators) @@ -3061,24 +11162,91 @@ def stream_CMOU( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_CMOU( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CMOU", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_COPPOCK( np.ndarray real not None , int wmaperiod=-2**31 , int roc1period=-2**31 , int roc2period=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CMOU_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CMOU_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CMOU_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_CMOU_Open", retCode, historylen, lib.TA_CMOU_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_CMOU_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CMOU_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CMOU_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CMOU_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CMOU_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CMOU_Stream stream = CMOU_Stream.__new__(CMOU_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CMOU_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CMOU_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CMOU_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CMOU_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CMOU_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CMOU_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CMOU_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CMOU_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CMOU_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CMOU_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CMOU_Clone", retCode) + cdef CMOU_Stream stream = CMOU_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class COPPOCK_Stream(Stream): """ COPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?]) Coppock Curve (Momentum Indicators) @@ -3092,24 +11260,91 @@ def stream_COPPOCK( np.ndarray real not None , int wmaperiod=-2**31 , int roc1pe Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_COPPOCK( (length) - 1 , (length) - 1 , real_data , wmaperiod , roc1period , roc2period , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_COPPOCK", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_COPPOCK_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int wmaperiod=-2**31, int roc1period=-2**31, int roc2period=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_COPPOCK_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_COPPOCK_Open(&handle, a_real.data + begidx, historylen, wmaperiod, roc1period, roc2period, &outreal) + if retCode != 0: + _stream_open_failed("TA_COPPOCK_Open", retCode, historylen, lib.TA_COPPOCK_Lookback(wmaperiod, roc1period, roc2period) + 1) + if self._handle is not NULL: + TA_COPPOCK_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int wmaperiod=-2**31, int roc1period=-2**31, int roc2period=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_COPPOCK_Lookback(wmaperiod, roc1period, roc2period) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_COPPOCK_Stream* handle = NULL + cdef TA_RetCode retCode = TA_COPPOCK_OpenAndFill(&handle, a_real.data + begidx, historylen, wmaperiod, roc1period, roc2period, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_COPPOCK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef COPPOCK_Stream stream = COPPOCK_Stream.__new__(COPPOCK_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_COPPOCK_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_COPPOCK_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_COPPOCK_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_COPPOCK_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_COPPOCK_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_COPPOCK_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_COPPOCK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_COPPOCK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_COPPOCK_Stream* clone = NULL + cdef TA_RetCode retCode = TA_COPPOCK_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_COPPOCK_Clone", retCode) + cdef COPPOCK_Stream stream = COPPOCK_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CORREL_Stream(Stream): """ CORREL(real0, real1[, timeperiod=?]) Pearson's Correlation Coefficient (r) (Statistic Functions) @@ -3122,27 +11357,93 @@ def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int t Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CORREL", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_COS( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CORREL_Close(self._handle) + self._handle = NULL + + def __init__(self, real0, real1, int timeperiod=-2**31): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CORREL_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CORREL_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_CORREL_Open", retCode, historylen, lib.TA_CORREL_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_CORREL_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real0, real1, int timeperiod=-2**31): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CORREL_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CORREL_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CORREL_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CORREL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CORREL_Stream stream = CORREL_Stream.__new__(CORREL_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real0, real1,), outreal) + + @cython.binding(False) + def update(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_CORREL_Update(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_CORREL_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_CORREL_Peek(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_CORREL_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CORREL_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CORREL_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CORREL_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CORREL_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CORREL_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CORREL_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CORREL_Clone", retCode) + cdef CORREL_Stream stream = CORREL_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class COS_Stream(Stream): """ COS(real) Vector Trigonometric Cos (Math Transform) @@ -3152,24 +11453,91 @@ def stream_COS( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_COS", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_COSH( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_COS_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_COS_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_COS_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_COS_Open", retCode, historylen, lib.TA_COS_Lookback() + 1) + if self._handle is not NULL: + TA_COS_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_COS_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_COS_Stream* handle = NULL + cdef TA_RetCode retCode = TA_COS_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_COS_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef COS_Stream stream = COS_Stream.__new__(COS_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_COS_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_COS_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_COS_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_COS_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_COS_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_COS_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_COS_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_COS_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_COS_Stream* clone = NULL + cdef TA_RetCode retCode = TA_COS_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_COS_Clone", retCode) + cdef COS_Stream stream = COS_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class COSH_Stream(Stream): """ COSH(real) Vector Trigonometric Cosh (Math Transform) @@ -3179,24 +11547,91 @@ def stream_COSH( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_COSH", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CUMSUM( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_COSH_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_COSH_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_COSH_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_COSH_Open", retCode, historylen, lib.TA_COSH_Lookback() + 1) + if self._handle is not NULL: + TA_COSH_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_COSH_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_COSH_Stream* handle = NULL + cdef TA_RetCode retCode = TA_COSH_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_COSH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef COSH_Stream stream = COSH_Stream.__new__(COSH_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_COSH_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_COSH_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_COSH_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_COSH_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_COSH_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_COSH_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_COSH_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_COSH_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_COSH_Stream* clone = NULL + cdef TA_RetCode retCode = TA_COSH_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_COSH_Clone", retCode) + cdef COSH_Stream stream = COSH_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CUMSUM_Stream(Stream): """ CUMSUM(real) Cumulative Sum (Math Operators) @@ -3206,24 +11641,91 @@ def stream_CUMSUM( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_CUMSUM( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CUMSUM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CVI( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 , int rocperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CUMSUM_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CUMSUM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CUMSUM_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_CUMSUM_Open", retCode, historylen, lib.TA_CUMSUM_Lookback() + 1) + if self._handle is not NULL: + TA_CUMSUM_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CUMSUM_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CUMSUM_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CUMSUM_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CUMSUM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CUMSUM_Stream stream = CUMSUM_Stream.__new__(CUMSUM_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CUMSUM_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CUMSUM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_CUMSUM_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_CUMSUM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CUMSUM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CUMSUM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CUMSUM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CUMSUM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CUMSUM_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CUMSUM_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CUMSUM_Clone", retCode) + cdef CUMSUM_Stream stream = CUMSUM_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class CVI_Stream(Stream): """ CVI(high, low[, timeperiod=?, rocperiod=?]) Chaikin's Volatility (Volatility Indicators) @@ -3236,27 +11738,93 @@ def stream_CVI( np.ndarray high not None , np.ndarray low not None , int timeper Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_CVI( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , rocperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CVI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_CVI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31, int rocperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_CVI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_CVI_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, rocperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_CVI_Open", retCode, historylen, lib.TA_CVI_Lookback(timeperiod, rocperiod) + 1) + if self._handle is not NULL: + TA_CVI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31, int rocperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_CVI_Lookback(timeperiod, rocperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_CVI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_CVI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, rocperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_CVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef CVI_Stream stream = CVI_Stream.__new__(CVI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_CVI_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_CVI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_CVI_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_CVI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_CVI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_CVI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_CVI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_CVI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_CVI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_CVI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_CVI_Clone", retCode) + cdef CVI_Stream stream = CVI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class DEMA_Stream(Stream): """ DEMA(real[, timeperiod=?]) Double Exponential Moving Average (Overlap Studies) @@ -3268,24 +11836,91 @@ def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_DEMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_DEMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_DEMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_DEMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_DEMA_Open", retCode, historylen, lib.TA_DEMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_DEMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_DEMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_DEMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_DEMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_DEMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef DEMA_Stream stream = DEMA_Stream.__new__(DEMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_DEMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_DEMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_DEMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_DEMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_DEMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_DEMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_DEMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_DEMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_DEMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_DEMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_DEMA_Clone", retCode) + cdef DEMA_Stream stream = DEMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class DIV_Stream(Stream): """ DIV(real0, real1) Vector Arithmetic Div (Math Operators) @@ -3296,27 +11931,95 @@ def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_DIV", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DONCHIAN( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_DIV_Close(self._handle) + self._handle = NULL + + def __init__(self, real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_DIV_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_DIV_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_DIV_Open", retCode, historylen, lib.TA_DIV_Lookback() + 1) + if self._handle is not NULL: + TA_DIV_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_DIV_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_DIV_Stream* handle = NULL + cdef TA_RetCode retCode = TA_DIV_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_DIV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef DIV_Stream stream = DIV_Stream.__new__(DIV_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real0, real1,), outreal) + + @cython.binding(False) + def update(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_DIV_Update(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_DIV_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_DIV_Peek(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_DIV_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_DIV_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_DIV_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_DIV_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_DIV_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_DIV_Stream* clone = NULL + cdef TA_RetCode retCode = TA_DIV_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_DIV_Clone", retCode) + cdef DIV_Stream stream = DIV_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +DONCHIAN_Value = namedtuple("DONCHIAN_Value", "upperband middleband lowerband", module=__name__) + +cdef class DONCHIAN_Stream(Stream): """ DONCHIAN(high, low[, timeperiod=?]) Donchian Channels (Overlap Studies) @@ -3330,31 +12033,103 @@ def stream_DONCHIAN( np.ndarray high not None , np.ndarray low not None , int ti middleband lowerband """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outrealupperband - double outrealmiddleband - double outreallowerband - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outrealupperband = NaN - outrealmiddleband = NaN - outreallowerband = NaN - retCode = lib.TA_DONCHIAN( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) - _ta_check_success("TA_DONCHIAN", retCode) - return outrealupperband , outrealmiddleband , outreallowerband - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DPO( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_DONCHIAN_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_DONCHIAN_Stream* handle = NULL + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_DONCHIAN_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _stream_open_failed("TA_DONCHIAN_Open", retCode, historylen, lib.TA_DONCHIAN_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_DONCHIAN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_DONCHIAN_Lookback(timeperiod) + cdef np.ndarray outupperband = make_double_array(length, lookback) + cdef np.ndarray outmiddleband = make_double_array(length, lookback) + cdef np.ndarray outlowerband = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_DONCHIAN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_DONCHIAN_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) + if retCode != 0: + _stream_open_failed("TA_DONCHIAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef DONCHIAN_Stream stream = DONCHIAN_Stream.__new__(DONCHIAN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, DONCHIAN_Value(_stream_like((high, low,), outupperband), _stream_like((high, low,), outmiddleband), _stream_like((high, low,), outlowerband)) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_DONCHIAN_Update(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_DONCHIAN_Update", retCode) + return DONCHIAN_Value(outupperband, outmiddleband, outlowerband) + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_DONCHIAN_Peek(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_DONCHIAN_Peek", retCode) + return DONCHIAN_Value(outupperband, outmiddleband, outlowerband) + + @property + def value(self): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_DONCHIAN_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_DONCHIAN_Value", retCode) + return DONCHIAN_Value(outupperband, outmiddleband, outlowerband) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_DONCHIAN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_DONCHIAN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_DONCHIAN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_DONCHIAN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_DONCHIAN_Clone", retCode) + cdef DONCHIAN_Stream stream = DONCHIAN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class DPO_Stream(Stream): """ DPO(real[, timeperiod=?]) Detrended Price Oscillator (Momentum Indicators) @@ -3366,24 +12141,91 @@ def stream_DPO( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_DPO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_DPO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_DPO_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_DPO_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_DPO_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_DPO_Open", retCode, historylen, lib.TA_DPO_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_DPO_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_DPO_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_DPO_Stream* handle = NULL + cdef TA_RetCode retCode = TA_DPO_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_DPO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef DPO_Stream stream = DPO_Stream.__new__(DPO_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_DPO_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_DPO_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_DPO_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_DPO_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_DPO_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_DPO_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_DPO_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_DPO_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_DPO_Stream* clone = NULL + cdef TA_RetCode retCode = TA_DPO_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_DPO_Clone", retCode) + cdef DPO_Stream stream = DPO_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class DX_Stream(Stream): """ DX(high, low, close[, timeperiod=?]) Directional Movement Index (Momentum Indicators) @@ -3395,30 +12237,95 @@ def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray c Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_DX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_EFI( np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_DX_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_DX_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_DX_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_DX_Open", retCode, historylen, lib.TA_DX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_DX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_DX_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_DX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_DX_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_DX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef DX_Stream stream = DX_Stream.__new__(DX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_DX_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_DX_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_DX_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_DX_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_DX_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_DX_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_DX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_DX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_DX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_DX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_DX_Clone", retCode) + cdef DX_Stream stream = DX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class EFI_Stream(Stream): """ EFI(close, volume[, timeperiod=?]) Elder's Force Index (Volume Indicators) @@ -3430,27 +12337,93 @@ def stream_EFI( np.ndarray close not None , np.ndarray volume not None , int tim Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length2(close, volume) - outreal = NaN - retCode = lib.TA_EFI( (length) - 1 , (length) - 1 , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_EFI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_EFI_Close(self._handle) + self._handle = NULL + + def __init__(self, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_EFI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_EFI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_EFI_Open", retCode, historylen, lib.TA_EFI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_EFI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(close, volume, int timeperiod=-2**31): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_EFI_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_EFI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_EFI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_EFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef EFI_Stream stream = EFI_Stream.__new__(EFI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((close, volume,), outreal) + + @cython.binding(False) + def update(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_EFI_Update(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_EFI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_EFI_Peek(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_EFI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_EFI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_EFI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_EFI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_EFI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_EFI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_EFI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_EFI_Clone", retCode) + cdef EFI_Stream stream = EFI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class EMA_Stream(Stream): """ EMA(real[, timeperiod=?]) Exponential Moving Average (Overlap Studies) @@ -3462,24 +12435,91 @@ def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_EMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ER( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_EMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_EMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_EMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_EMA_Open", retCode, historylen, lib.TA_EMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_EMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_EMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_EMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_EMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_EMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef EMA_Stream stream = EMA_Stream.__new__(EMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_EMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_EMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_EMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_EMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_EMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_EMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_EMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_EMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_EMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_EMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_EMA_Clone", retCode) + cdef EMA_Stream stream = EMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ER_Stream(Stream): """ ER(real[, timeperiod=?]) Kaufman Efficiency Ratio (Momentum Indicators) @@ -3491,24 +12531,93 @@ def stream_ER( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ER( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ER", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ERI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ER_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ER_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ER_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ER_Open", retCode, historylen, lib.TA_ER_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ER_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ER_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ER_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ER_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ER_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ER_Stream stream = ER_Stream.__new__(ER_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ER_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ER_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ER_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ER_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ER_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ER_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ER_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ER_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ER_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ER_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ER_Clone", retCode) + cdef ER_Stream stream = ER_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +ERI_Value = namedtuple("ERI_Value", "bullpower bearpower", module=__name__) + +cdef class ERI_Stream(Stream): """ ERI(high, low, close[, timeperiod=?]) Elder Ray Index (Bull Power / Bear Power) (Momentum Indicators) @@ -3521,32 +12630,100 @@ def stream_ERI( np.ndarray high not None , np.ndarray low not None , np.ndarray bullpower bearpower """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outbullpower - double outbearpower - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outbullpower = NaN - outbearpower = NaN - retCode = lib.TA_ERI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outbullpower , &outbearpower ) - _ta_check_success("TA_ERI", retCode) - return outbullpower , outbearpower - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_EXP( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ERI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ERI_Stream* handle = NULL + cdef double outbullpower + cdef double outbearpower + cdef TA_RetCode retCode = TA_ERI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbullpower, &outbearpower) + if retCode != 0: + _stream_open_failed("TA_ERI_Open", retCode, historylen, lib.TA_ERI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ERI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ERI_Lookback(timeperiod) + cdef np.ndarray outbullpower = make_double_array(length, lookback) + cdef np.ndarray outbearpower = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ERI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ERI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outbullpower.data + lookback, outbearpower.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ERI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ERI_Stream stream = ERI_Stream.__new__(ERI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, ERI_Value(_stream_like((high, low, close,), outbullpower), _stream_like((high, low, close,), outbearpower)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outbullpower + cdef double outbearpower + cdef TA_RetCode retCode = TA_ERI_Update(self._handle, high, low, close, &outbullpower, &outbearpower) + if retCode != 0: + _ta_check_success("TA_ERI_Update", retCode) + return ERI_Value(outbullpower, outbearpower) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outbullpower + cdef double outbearpower + cdef TA_RetCode retCode = TA_ERI_Peek(self._handle, high, low, close, &outbullpower, &outbearpower) + if retCode != 0: + _ta_check_success("TA_ERI_Peek", retCode) + return ERI_Value(outbullpower, outbearpower) + + @property + def value(self): + cdef double outbullpower + cdef double outbearpower + cdef TA_RetCode retCode = TA_ERI_Value(self._handle, &outbullpower, &outbearpower) + if retCode != 0: + _ta_check_success("TA_ERI_Value", retCode) + return ERI_Value(outbullpower, outbearpower) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ERI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ERI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ERI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ERI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ERI_Clone", retCode) + cdef ERI_Stream stream = ERI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class EXP_Stream(Stream): """ EXP(real) Vector Arithmetic Exp (Math Transform) @@ -3556,24 +12733,91 @@ def stream_EXP( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_EXP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_FLOOR( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_EXP_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_EXP_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_EXP_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_EXP_Open", retCode, historylen, lib.TA_EXP_Lookback() + 1) + if self._handle is not NULL: + TA_EXP_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_EXP_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_EXP_Stream* handle = NULL + cdef TA_RetCode retCode = TA_EXP_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_EXP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef EXP_Stream stream = EXP_Stream.__new__(EXP_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_EXP_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_EXP_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_EXP_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_EXP_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_EXP_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_EXP_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_EXP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_EXP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_EXP_Stream* clone = NULL + cdef TA_RetCode retCode = TA_EXP_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_EXP_Clone", retCode) + cdef EXP_Stream stream = EXP_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class FLOOR_Stream(Stream): """ FLOOR(real) Vector Floor (Math Transform) @@ -3583,24 +12827,91 @@ def stream_FLOOR( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_FLOOR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_FOSC( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_FLOOR_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_FLOOR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_FLOOR_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_FLOOR_Open", retCode, historylen, lib.TA_FLOOR_Lookback() + 1) + if self._handle is not NULL: + TA_FLOOR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_FLOOR_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_FLOOR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_FLOOR_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_FLOOR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef FLOOR_Stream stream = FLOOR_Stream.__new__(FLOOR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_FLOOR_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_FLOOR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_FLOOR_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_FLOOR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_FLOOR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_FLOOR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_FLOOR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_FLOOR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_FLOOR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_FLOOR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_FLOOR_Clone", retCode) + cdef FLOOR_Stream stream = FLOOR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class FOSC_Stream(Stream): """ FOSC(real[, timeperiod=?]) Forecast Oscillator (Momentum Indicators) @@ -3612,24 +12923,93 @@ def stream_FOSC( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_FOSC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_FOSC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_FRACTAL( np.ndarray high not None , np.ndarray low not None , int leftbars=-2**31 , int rightbars=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_FOSC_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_FOSC_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_FOSC_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_FOSC_Open", retCode, historylen, lib.TA_FOSC_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_FOSC_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_FOSC_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_FOSC_Stream* handle = NULL + cdef TA_RetCode retCode = TA_FOSC_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_FOSC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef FOSC_Stream stream = FOSC_Stream.__new__(FOSC_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_FOSC_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_FOSC_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_FOSC_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_FOSC_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_FOSC_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_FOSC_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_FOSC_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_FOSC_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_FOSC_Stream* clone = NULL + cdef TA_RetCode retCode = TA_FOSC_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_FOSC_Clone", retCode) + cdef FOSC_Stream stream = FOSC_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +FRACTAL_Value = namedtuple("FRACTAL_Value", "swinghigh swinglow", module=__name__) + +cdef class FRACTAL_Stream(Stream): """ FRACTAL(high, low[, leftbars=?, rightbars=?]) Williams Fractal (Momentum Indicators) @@ -3643,29 +13023,100 @@ def stream_FRACTAL( np.ndarray high not None , np.ndarray low not None , int lef swinghigh swinglow """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - int outswinghigh - int outswinglow - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outswinghigh = 0 - outswinglow = 0 - retCode = lib.TA_FRACTAL( (length) - 1 , (length) - 1 , high_data , low_data , leftbars , rightbars , &outbegidx , &outnbelement , &outswinghigh , &outswinglow ) - _ta_check_success("TA_FRACTAL", retCode) - return outswinghigh , outswinglow - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HA( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_FRACTAL_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int leftbars=-2**31, int rightbars=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_FRACTAL_Stream* handle = NULL + cdef int outswinghigh + cdef int outswinglow + cdef TA_RetCode retCode = TA_FRACTAL_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, leftbars, rightbars, &outswinghigh, &outswinglow) + if retCode != 0: + _stream_open_failed("TA_FRACTAL_Open", retCode, historylen, lib.TA_FRACTAL_Lookback(leftbars, rightbars) + 1) + if self._handle is not NULL: + TA_FRACTAL_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int leftbars=-2**31, int rightbars=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_FRACTAL_Lookback(leftbars, rightbars) + cdef np.ndarray outswinghigh = make_int_array(length, lookback) + cdef np.ndarray outswinglow = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_FRACTAL_Stream* handle = NULL + cdef TA_RetCode retCode = TA_FRACTAL_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, leftbars, rightbars, &outbegidx, &outnbelement, outswinghigh.data + lookback, outswinglow.data + lookback) + if retCode != 0: + _stream_open_failed("TA_FRACTAL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef FRACTAL_Stream stream = FRACTAL_Stream.__new__(FRACTAL_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, FRACTAL_Value(_stream_like((high, low,), outswinghigh), _stream_like((high, low,), outswinglow)) + + @cython.binding(False) + def update(self, double high, double low): + cdef int outswinghigh + cdef int outswinglow + cdef TA_RetCode retCode = TA_FRACTAL_Update(self._handle, high, low, &outswinghigh, &outswinglow) + if retCode != 0: + _ta_check_success("TA_FRACTAL_Update", retCode) + return FRACTAL_Value(outswinghigh, outswinglow) + + @cython.binding(False) + def peek(self, double high, double low): + cdef int outswinghigh + cdef int outswinglow + cdef TA_RetCode retCode = TA_FRACTAL_Peek(self._handle, high, low, &outswinghigh, &outswinglow) + if retCode != 0: + _ta_check_success("TA_FRACTAL_Peek", retCode) + return FRACTAL_Value(outswinghigh, outswinglow) + + @property + def value(self): + cdef int outswinghigh + cdef int outswinglow + cdef TA_RetCode retCode = TA_FRACTAL_Value(self._handle, &outswinghigh, &outswinglow) + if retCode != 0: + _ta_check_success("TA_FRACTAL_Value", retCode) + return FRACTAL_Value(outswinghigh, outswinglow) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_FRACTAL_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_FRACTAL_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_FRACTAL_Stream* clone = NULL + cdef TA_RetCode retCode = TA_FRACTAL_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_FRACTAL_Clone", retCode) + cdef FRACTAL_Stream stream = FRACTAL_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +HA_Value = namedtuple("HA_Value", "haopen hahigh halow haclose", module=__name__) + +cdef class HA_Stream(Stream): """ HA(open, high, low, close) Heikin-Ashi Candles (Price Transform) @@ -3678,39 +13129,112 @@ def stream_HA( np.ndarray open not None , np.ndarray high not None , np.ndarray halow haclose """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outhaopen - double outhahigh - double outhalow - double outhaclose - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outhaopen = NaN - outhahigh = NaN - outhalow = NaN - outhaclose = NaN - retCode = lib.TA_HA( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outhaopen , &outhahigh , &outhalow , &outhaclose ) - _ta_check_success("TA_HA", retCode) - return outhaopen , outhahigh , outhalow , outhaclose - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HA_Close(self._handle) + self._handle = NULL + + def __init__(self, open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HA_Stream* handle = NULL + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose + cdef TA_RetCode retCode = TA_HA_Open(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outhaopen, &outhahigh, &outhalow, &outhaclose) + if retCode != 0: + _stream_open_failed("TA_HA_Open", retCode, historylen, lib.TA_HA_Lookback() + 1) + if self._handle is not NULL: + TA_HA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, high, low, close): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HA_Lookback() + cdef np.ndarray outhaopen = make_double_array(length, lookback) + cdef np.ndarray outhahigh = make_double_array(length, lookback) + cdef np.ndarray outhalow = make_double_array(length, lookback) + cdef np.ndarray outhaclose = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HA_OpenAndFill(&handle, a_open.data + begidx, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outhaopen.data + lookback, outhahigh.data + lookback, outhalow.data + lookback, outhaclose.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HA_Stream stream = HA_Stream.__new__(HA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, HA_Value(_stream_like((open, high, low, close,), outhaopen), _stream_like((open, high, low, close,), outhahigh), _stream_like((open, high, low, close,), outhalow), _stream_like((open, high, low, close,), outhaclose)) + + @cython.binding(False) + def update(self, double open, double high, double low, double close): + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose + cdef TA_RetCode retCode = TA_HA_Update(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) + if retCode != 0: + _ta_check_success("TA_HA_Update", retCode) + return HA_Value(outhaopen, outhahigh, outhalow, outhaclose) + + @cython.binding(False) + def peek(self, double open, double high, double low, double close): + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose + cdef TA_RetCode retCode = TA_HA_Peek(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) + if retCode != 0: + _ta_check_success("TA_HA_Peek", retCode) + return HA_Value(outhaopen, outhahigh, outhalow, outhaclose) + + @property + def value(self): + cdef double outhaopen + cdef double outhahigh + cdef double outhalow + cdef double outhaclose + cdef TA_RetCode retCode = TA_HA_Value(self._handle, &outhaopen, &outhahigh, &outhalow, &outhaclose) + if retCode != 0: + _ta_check_success("TA_HA_Value", retCode) + return HA_Value(outhaopen, outhahigh, outhalow, outhaclose) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HA_Clone", retCode) + cdef HA_Stream stream = HA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class HMA_Stream(Stream): """ HMA(real[, timeperiod=?]) Hull Moving Average (Overlap Studies) @@ -3722,24 +13246,91 @@ def stream_HMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_HMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_HMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_DCPERIOD( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_HMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_HMA_Open", retCode, historylen, lib.TA_HMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_HMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HMA_Stream stream = HMA_Stream.__new__(HMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_HMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_HMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HMA_Clone", retCode) + cdef HMA_Stream stream = HMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class HT_DCPERIOD_Stream(Stream): """ HT_DCPERIOD(real) Hilbert Transform - Dominant Cycle Period (Cycle Indicators) @@ -3749,24 +13340,91 @@ def stream_HT_DCPERIOD( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_HT_DCPERIOD", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_DCPHASE( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HT_DCPERIOD_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HT_DCPERIOD_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPERIOD_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_HT_DCPERIOD_Open", retCode, historylen, lib.TA_HT_DCPERIOD_Lookback() + 1) + if self._handle is not NULL: + TA_HT_DCPERIOD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HT_DCPERIOD_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HT_DCPERIOD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HT_DCPERIOD_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HT_DCPERIOD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HT_DCPERIOD_Stream stream = HT_DCPERIOD_Stream.__new__(HT_DCPERIOD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPERIOD_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_DCPERIOD_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPERIOD_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_DCPERIOD_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPERIOD_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_DCPERIOD_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HT_DCPERIOD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HT_DCPERIOD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HT_DCPERIOD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HT_DCPERIOD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HT_DCPERIOD_Clone", retCode) + cdef HT_DCPERIOD_Stream stream = HT_DCPERIOD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class HT_DCPHASE_Stream(Stream): """ HT_DCPHASE(real) Hilbert Transform - Dominant Cycle Phase (Cycle Indicators) @@ -3776,24 +13434,93 @@ def stream_HT_DCPHASE( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_HT_DCPHASE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_PHASOR( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HT_DCPHASE_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HT_DCPHASE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPHASE_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_HT_DCPHASE_Open", retCode, historylen, lib.TA_HT_DCPHASE_Lookback() + 1) + if self._handle is not NULL: + TA_HT_DCPHASE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HT_DCPHASE_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HT_DCPHASE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HT_DCPHASE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HT_DCPHASE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HT_DCPHASE_Stream stream = HT_DCPHASE_Stream.__new__(HT_DCPHASE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPHASE_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_DCPHASE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPHASE_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_DCPHASE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_DCPHASE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_DCPHASE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HT_DCPHASE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HT_DCPHASE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HT_DCPHASE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HT_DCPHASE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HT_DCPHASE_Clone", retCode) + cdef HT_DCPHASE_Stream stream = HT_DCPHASE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +HT_PHASOR_Value = namedtuple("HT_PHASOR_Value", "inphase quadrature", module=__name__) + +cdef class HT_PHASOR_Stream(Stream): """ HT_PHASOR(real) Hilbert Transform - Phasor Components (Cycle Indicators) @@ -3804,26 +13531,98 @@ def stream_HT_PHASOR( np.ndarray real not None ): inphase quadrature """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outinphase - double outquadrature - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinphase = NaN - outquadrature = NaN - retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) - _ta_check_success("TA_HT_PHASOR", retCode) - return outinphase , outquadrature - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_SINE( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HT_PHASOR_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HT_PHASOR_Stream* handle = NULL + cdef double outinphase + cdef double outquadrature + cdef TA_RetCode retCode = TA_HT_PHASOR_Open(&handle, a_real.data + begidx, historylen, &outinphase, &outquadrature) + if retCode != 0: + _stream_open_failed("TA_HT_PHASOR_Open", retCode, historylen, lib.TA_HT_PHASOR_Lookback() + 1) + if self._handle is not NULL: + TA_HT_PHASOR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HT_PHASOR_Lookback() + cdef np.ndarray outinphase = make_double_array(length, lookback) + cdef np.ndarray outquadrature = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HT_PHASOR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HT_PHASOR_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outinphase.data + lookback, outquadrature.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HT_PHASOR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HT_PHASOR_Stream stream = HT_PHASOR_Stream.__new__(HT_PHASOR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, HT_PHASOR_Value(_stream_like((real,), outinphase), _stream_like((real,), outquadrature)) + + @cython.binding(False) + def update(self, double real): + cdef double outinphase + cdef double outquadrature + cdef TA_RetCode retCode = TA_HT_PHASOR_Update(self._handle, real, &outinphase, &outquadrature) + if retCode != 0: + _ta_check_success("TA_HT_PHASOR_Update", retCode) + return HT_PHASOR_Value(outinphase, outquadrature) + + @cython.binding(False) + def peek(self, double real): + cdef double outinphase + cdef double outquadrature + cdef TA_RetCode retCode = TA_HT_PHASOR_Peek(self._handle, real, &outinphase, &outquadrature) + if retCode != 0: + _ta_check_success("TA_HT_PHASOR_Peek", retCode) + return HT_PHASOR_Value(outinphase, outquadrature) + + @property + def value(self): + cdef double outinphase + cdef double outquadrature + cdef TA_RetCode retCode = TA_HT_PHASOR_Value(self._handle, &outinphase, &outquadrature) + if retCode != 0: + _ta_check_success("TA_HT_PHASOR_Value", retCode) + return HT_PHASOR_Value(outinphase, outquadrature) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HT_PHASOR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HT_PHASOR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HT_PHASOR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HT_PHASOR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HT_PHASOR_Clone", retCode) + cdef HT_PHASOR_Stream stream = HT_PHASOR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +HT_SINE_Value = namedtuple("HT_SINE_Value", "sine leadsine", module=__name__) + +cdef class HT_SINE_Stream(Stream): """ HT_SINE(real) Hilbert Transform - SineWave (Cycle Indicators) @@ -3834,26 +13633,96 @@ def stream_HT_SINE( np.ndarray real not None ): sine leadsine """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outsine - double outleadsine - real = check_array(real) - real_data = real.data - length = real.shape[0] - outsine = NaN - outleadsine = NaN - retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) - _ta_check_success("TA_HT_SINE", retCode) - return outsine , outleadsine - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_TRENDLINE( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HT_SINE_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HT_SINE_Stream* handle = NULL + cdef double outsine + cdef double outleadsine + cdef TA_RetCode retCode = TA_HT_SINE_Open(&handle, a_real.data + begidx, historylen, &outsine, &outleadsine) + if retCode != 0: + _stream_open_failed("TA_HT_SINE_Open", retCode, historylen, lib.TA_HT_SINE_Lookback() + 1) + if self._handle is not NULL: + TA_HT_SINE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HT_SINE_Lookback() + cdef np.ndarray outsine = make_double_array(length, lookback) + cdef np.ndarray outleadsine = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HT_SINE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HT_SINE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outsine.data + lookback, outleadsine.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HT_SINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HT_SINE_Stream stream = HT_SINE_Stream.__new__(HT_SINE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, HT_SINE_Value(_stream_like((real,), outsine), _stream_like((real,), outleadsine)) + + @cython.binding(False) + def update(self, double real): + cdef double outsine + cdef double outleadsine + cdef TA_RetCode retCode = TA_HT_SINE_Update(self._handle, real, &outsine, &outleadsine) + if retCode != 0: + _ta_check_success("TA_HT_SINE_Update", retCode) + return HT_SINE_Value(outsine, outleadsine) + + @cython.binding(False) + def peek(self, double real): + cdef double outsine + cdef double outleadsine + cdef TA_RetCode retCode = TA_HT_SINE_Peek(self._handle, real, &outsine, &outleadsine) + if retCode != 0: + _ta_check_success("TA_HT_SINE_Peek", retCode) + return HT_SINE_Value(outsine, outleadsine) + + @property + def value(self): + cdef double outsine + cdef double outleadsine + cdef TA_RetCode retCode = TA_HT_SINE_Value(self._handle, &outsine, &outleadsine) + if retCode != 0: + _ta_check_success("TA_HT_SINE_Value", retCode) + return HT_SINE_Value(outsine, outleadsine) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HT_SINE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HT_SINE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HT_SINE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HT_SINE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HT_SINE_Clone", retCode) + cdef HT_SINE_Stream stream = HT_SINE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class HT_TRENDLINE_Stream(Stream): """ HT_TRENDLINE(real) Hilbert Transform - Instantaneous Trendline (Overlap Studies) @@ -3863,24 +13732,91 @@ def stream_HT_TRENDLINE( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_HT_TRENDLINE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_TRENDMODE( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HT_TRENDLINE_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HT_TRENDLINE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_HT_TRENDLINE_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_HT_TRENDLINE_Open", retCode, historylen, lib.TA_HT_TRENDLINE_Lookback() + 1) + if self._handle is not NULL: + TA_HT_TRENDLINE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HT_TRENDLINE_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HT_TRENDLINE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HT_TRENDLINE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HT_TRENDLINE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HT_TRENDLINE_Stream stream = HT_TRENDLINE_Stream.__new__(HT_TRENDLINE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_TRENDLINE_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_TRENDLINE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_TRENDLINE_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_TRENDLINE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_HT_TRENDLINE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_HT_TRENDLINE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HT_TRENDLINE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HT_TRENDLINE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HT_TRENDLINE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HT_TRENDLINE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HT_TRENDLINE_Clone", retCode) + cdef HT_TRENDLINE_Stream stream = HT_TRENDLINE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class HT_TRENDMODE_Stream(Stream): """ HT_TRENDMODE(real) Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators) @@ -3890,24 +13826,91 @@ def stream_HT_TRENDMODE( np.ndarray real not None ): Outputs: integer """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outinteger - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinteger = 0 - retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_HT_TRENDMODE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_HT_TRENDMODE_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_HT_TRENDMODE_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_HT_TRENDMODE_Open(&handle, a_real.data + begidx, historylen, &outinteger) + if retCode != 0: + _stream_open_failed("TA_HT_TRENDMODE_Open", retCode, historylen, lib.TA_HT_TRENDMODE_Lookback() + 1) + if self._handle is not NULL: + TA_HT_TRENDMODE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_HT_TRENDMODE_Lookback() + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_HT_TRENDMODE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_HT_TRENDMODE_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_HT_TRENDMODE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef HT_TRENDMODE_Stream stream = HT_TRENDMODE_Stream.__new__(HT_TRENDMODE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outinteger) + + @cython.binding(False) + def update(self, double real): + cdef int outinteger + cdef TA_RetCode retCode = TA_HT_TRENDMODE_Update(self._handle, real, &outinteger) + if retCode != 0: + _ta_check_success("TA_HT_TRENDMODE_Update", retCode) + return outinteger + + @cython.binding(False) + def peek(self, double real): + cdef int outinteger + cdef TA_RetCode retCode = TA_HT_TRENDMODE_Peek(self._handle, real, &outinteger) + if retCode != 0: + _ta_check_success("TA_HT_TRENDMODE_Peek", retCode) + return outinteger + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_HT_TRENDMODE_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_HT_TRENDMODE_Value", retCode) + return outinteger + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_HT_TRENDMODE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_HT_TRENDMODE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_HT_TRENDMODE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_HT_TRENDMODE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_HT_TRENDMODE_Clone", retCode) + cdef HT_TRENDMODE_Stream stream = HT_TRENDMODE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class IMI_Stream(Stream): """ IMI(open, close[, timeperiod=?]) Intraday Momentum Index (Momentum Indicators) @@ -3919,27 +13922,93 @@ def stream_IMI( np.ndarray open not None , np.ndarray close not None , int timep Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* close_data - int outbegidx - int outnbelement - double outreal - open = check_array(open) - open_data = open.data - close = check_array(close) - close_data = close.data - length = check_length2(open, close) - outreal = NaN - retCode = lib.TA_IMI( (length) - 1 , (length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_IMI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_IMI_Close(self._handle) + self._handle = NULL + + def __init__(self, open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_IMI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_IMI_Open(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_IMI_Open", retCode, historylen, lib.TA_IMI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_IMI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_IMI_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_IMI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_IMI_OpenAndFill(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_IMI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef IMI_Stream stream = IMI_Stream.__new__(IMI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, close,), outreal) + + @cython.binding(False) + def update(self, double open, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_IMI_Update(self._handle, open, close, &outreal) + if retCode != 0: + _ta_check_success("TA_IMI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double open, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_IMI_Peek(self._handle, open, close, &outreal) + if retCode != 0: + _ta_check_success("TA_IMI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_IMI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_IMI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_IMI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_IMI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_IMI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_IMI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_IMI_Clone", retCode) + cdef IMI_Stream stream = IMI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class KAMA_Stream(Stream): """ KAMA(real[, timeperiod=?]) Kaufman Adaptive Moving Average (Overlap Studies) @@ -3951,24 +14020,93 @@ def stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_KAMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_KC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , int atrperiod=-2**31 , double nbdev=-4e37 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_KAMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_KAMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_KAMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_KAMA_Open", retCode, historylen, lib.TA_KAMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_KAMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_KAMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_KAMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_KAMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_KAMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef KAMA_Stream stream = KAMA_Stream.__new__(KAMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_KAMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_KAMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_KAMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_KAMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_KAMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_KAMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_KAMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_KAMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_KAMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_KAMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_KAMA_Clone", retCode) + cdef KAMA_Stream stream = KAMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +KC_Value = namedtuple("KC_Value", "upperband middleband lowerband", module=__name__) + +cdef class KC_Stream(Stream): """ KC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?]) Keltner Channels (Overlap Studies) @@ -3984,34 +14122,107 @@ def stream_KC( np.ndarray high not None , np.ndarray low not None , np.ndarray c middleband lowerband """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outrealupperband - double outrealmiddleband - double outreallowerband - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outrealupperband = NaN - outrealmiddleband = NaN - outreallowerband = NaN - retCode = lib.TA_KC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , atrperiod , nbdev , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) - _ta_check_success("TA_KC", retCode) - return outrealupperband , outrealmiddleband , outreallowerband - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_KDJ( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int slowk_period=-2**31 , int slowk_matype=13 , int slowd_period=-2**31 , int slowd_matype=13 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_KC_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31, int atrperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_KC_Stream* handle = NULL + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_KC_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, atrperiod, nbdev, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _stream_open_failed("TA_KC_Open", retCode, historylen, lib.TA_KC_Lookback(timeperiod, atrperiod, nbdev) + 1) + if self._handle is not NULL: + TA_KC_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31, int atrperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_KC_Lookback(timeperiod, atrperiod, nbdev) + cdef np.ndarray outupperband = make_double_array(length, lookback) + cdef np.ndarray outmiddleband = make_double_array(length, lookback) + cdef np.ndarray outlowerband = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_KC_Stream* handle = NULL + cdef TA_RetCode retCode = TA_KC_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, atrperiod, nbdev, &outbegidx, &outnbelement, outupperband.data + lookback, outmiddleband.data + lookback, outlowerband.data + lookback) + if retCode != 0: + _stream_open_failed("TA_KC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef KC_Stream stream = KC_Stream.__new__(KC_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, KC_Value(_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_KC_Update(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_KC_Update", retCode) + return KC_Value(outupperband, outmiddleband, outlowerband) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_KC_Peek(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_KC_Peek", retCode) + return KC_Value(outupperband, outmiddleband, outlowerband) + + @property + def value(self): + cdef double outupperband + cdef double outmiddleband + cdef double outlowerband + cdef TA_RetCode retCode = TA_KC_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) + if retCode != 0: + _ta_check_success("TA_KC_Value", retCode) + return KC_Value(outupperband, outmiddleband, outlowerband) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_KC_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_KC_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_KC_Stream* clone = NULL + cdef TA_RetCode retCode = TA_KC_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_KC_Clone", retCode) + cdef KC_Stream stream = KC_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +KDJ_Value = namedtuple("KDJ_Value", "k d j", module=__name__) + +cdef class KDJ_Stream(Stream): """ KDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) KDJ Stochastic (Momentum Indicators) @@ -4029,34 +14240,105 @@ def stream_KDJ( np.ndarray high not None , np.ndarray low not None , np.ndarray d j """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outk - double outd - double outj - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outk = NaN - outd = NaN - outj = NaN - retCode = lib.TA_KDJ( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outk , &outd , &outj ) - _ta_check_success("TA_KDJ", retCode) - return outk , outd , outj - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_KDJ_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=13, int slowd_period=-2**31, int slowd_matype=13): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_KDJ_Stream* handle = NULL + cdef double outk + cdef double outd + cdef double outj + cdef TA_RetCode retCode = TA_KDJ_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outk, &outd, &outj) + if retCode != 0: + _stream_open_failed("TA_KDJ_Open", retCode, historylen, lib.TA_KDJ_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + 1) + if self._handle is not NULL: + TA_KDJ_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=13, int slowd_period=-2**31, int slowd_matype=13): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_KDJ_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + cdef np.ndarray outk = make_double_array(length, lookback) + cdef np.ndarray outd = make_double_array(length, lookback) + cdef np.ndarray outj = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_KDJ_Stream* handle = NULL + cdef TA_RetCode retCode = TA_KDJ_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outbegidx, &outnbelement, outk.data + lookback, outd.data + lookback, outj.data + lookback) + if retCode != 0: + _stream_open_failed("TA_KDJ_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef KDJ_Stream stream = KDJ_Stream.__new__(KDJ_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, KDJ_Value(_stream_like((high, low, close,), outk), _stream_like((high, low, close,), outd), _stream_like((high, low, close,), outj)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outk + cdef double outd + cdef double outj + cdef TA_RetCode retCode = TA_KDJ_Update(self._handle, high, low, close, &outk, &outd, &outj) + if retCode != 0: + _ta_check_success("TA_KDJ_Update", retCode) + return KDJ_Value(outk, outd, outj) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outk + cdef double outd + cdef double outj + cdef TA_RetCode retCode = TA_KDJ_Peek(self._handle, high, low, close, &outk, &outd, &outj) + if retCode != 0: + _ta_check_success("TA_KDJ_Peek", retCode) + return KDJ_Value(outk, outd, outj) + + @property + def value(self): + cdef double outk + cdef double outd + cdef double outj + cdef TA_RetCode retCode = TA_KDJ_Value(self._handle, &outk, &outd, &outj) + if retCode != 0: + _ta_check_success("TA_KDJ_Value", retCode) + return KDJ_Value(outk, outd, outj) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_KDJ_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_KDJ_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_KDJ_Stream* clone = NULL + cdef TA_RetCode retCode = TA_KDJ_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_KDJ_Clone", retCode) + cdef KDJ_Stream stream = KDJ_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class LINEARREG_Stream(Stream): """ LINEARREG(real[, timeperiod=?]) Linear Regression (Statistic Functions) @@ -4068,24 +14350,91 @@ def stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_LINEARREG_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_LINEARREG_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_Open", retCode, historylen, lib.TA_LINEARREG_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_LINEARREG_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_LINEARREG_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_LINEARREG_Stream* handle = NULL + cdef TA_RetCode retCode = TA_LINEARREG_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef LINEARREG_Stream stream = LINEARREG_Stream.__new__(LINEARREG_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_LINEARREG_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_LINEARREG_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_LINEARREG_Stream* clone = NULL + cdef TA_RetCode retCode = TA_LINEARREG_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_LINEARREG_Clone", retCode) + cdef LINEARREG_Stream stream = LINEARREG_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class LINEARREG_ANGLE_Stream(Stream): """ LINEARREG_ANGLE(real[, timeperiod=?]) Linear Regression Angle (Statistic Functions) @@ -4097,24 +14446,91 @@ def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG_ANGLE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_LINEARREG_ANGLE_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_LINEARREG_ANGLE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_ANGLE_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_ANGLE_Open", retCode, historylen, lib.TA_LINEARREG_ANGLE_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_LINEARREG_ANGLE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_LINEARREG_ANGLE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_LINEARREG_ANGLE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_ANGLE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef LINEARREG_ANGLE_Stream stream = LINEARREG_ANGLE_Stream.__new__(LINEARREG_ANGLE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_ANGLE_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_ANGLE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_ANGLE_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_ANGLE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_ANGLE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_ANGLE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_LINEARREG_ANGLE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_LINEARREG_ANGLE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_LINEARREG_ANGLE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_LINEARREG_ANGLE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_LINEARREG_ANGLE_Clone", retCode) + cdef LINEARREG_ANGLE_Stream stream = LINEARREG_ANGLE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class LINEARREG_INTERCEPT_Stream(Stream): """ LINEARREG_INTERCEPT(real[, timeperiod=?]) Linear Regression Intercept (Statistic Functions) @@ -4126,24 +14542,91 @@ def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_LINEARREG_INTERCEPT_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_LINEARREG_INTERCEPT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_INTERCEPT_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_INTERCEPT_Open", retCode, historylen, lib.TA_LINEARREG_INTERCEPT_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_LINEARREG_INTERCEPT_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_LINEARREG_INTERCEPT_Stream* handle = NULL + cdef TA_RetCode retCode = TA_LINEARREG_INTERCEPT_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_INTERCEPT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef LINEARREG_INTERCEPT_Stream stream = LINEARREG_INTERCEPT_Stream.__new__(LINEARREG_INTERCEPT_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_INTERCEPT_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_INTERCEPT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_INTERCEPT_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_INTERCEPT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_INTERCEPT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_INTERCEPT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_LINEARREG_INTERCEPT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_LINEARREG_INTERCEPT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_LINEARREG_INTERCEPT_Stream* clone = NULL + cdef TA_RetCode retCode = TA_LINEARREG_INTERCEPT_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_LINEARREG_INTERCEPT_Clone", retCode) + cdef LINEARREG_INTERCEPT_Stream stream = LINEARREG_INTERCEPT_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class LINEARREG_SLOPE_Stream(Stream): """ LINEARREG_SLOPE(real[, timeperiod=?]) Linear Regression Slope (Statistic Functions) @@ -4155,24 +14638,91 @@ def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG_SLOPE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LN( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_LINEARREG_SLOPE_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_LINEARREG_SLOPE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_SLOPE_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_SLOPE_Open", retCode, historylen, lib.TA_LINEARREG_SLOPE_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_LINEARREG_SLOPE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_LINEARREG_SLOPE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_LINEARREG_SLOPE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_LINEARREG_SLOPE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef LINEARREG_SLOPE_Stream stream = LINEARREG_SLOPE_Stream.__new__(LINEARREG_SLOPE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_SLOPE_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_SLOPE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_SLOPE_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_SLOPE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_LINEARREG_SLOPE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_LINEARREG_SLOPE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_LINEARREG_SLOPE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_LINEARREG_SLOPE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_LINEARREG_SLOPE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_LINEARREG_SLOPE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_LINEARREG_SLOPE_Clone", retCode) + cdef LINEARREG_SLOPE_Stream stream = LINEARREG_SLOPE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class LN_Stream(Stream): """ LN(real) Vector Log Natural (Math Transform) @@ -4182,24 +14732,91 @@ def stream_LN( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LOG10( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_LN_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_LN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_LN_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_LN_Open", retCode, historylen, lib.TA_LN_Lookback() + 1) + if self._handle is not NULL: + TA_LN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_LN_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_LN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_LN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_LN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef LN_Stream stream = LN_Stream.__new__(LN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_LN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_LN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_LN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_LN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_LN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_LN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_LN_Clone", retCode) + cdef LN_Stream stream = LN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class LOG10_Stream(Stream): """ LOG10(real) Vector Log10 (Math Transform) @@ -4209,24 +14826,91 @@ def stream_LOG10( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LOG10", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_LOG10_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_LOG10_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_LOG10_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_LOG10_Open", retCode, historylen, lib.TA_LOG10_Lookback() + 1) + if self._handle is not NULL: + TA_LOG10_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_LOG10_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_LOG10_Stream* handle = NULL + cdef TA_RetCode retCode = TA_LOG10_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_LOG10_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef LOG10_Stream stream = LOG10_Stream.__new__(LOG10_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LOG10_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LOG10_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_LOG10_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_LOG10_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_LOG10_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_LOG10_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_LOG10_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_LOG10_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_LOG10_Stream* clone = NULL + cdef TA_RetCode retCode = TA_LOG10_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_LOG10_Clone", retCode) + cdef LOG10_Stream stream = LOG10_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MA_Stream(Stream): """ MA(real[, timeperiod=?, matype=?]) Moving average (Overlap Studies) @@ -4239,24 +14923,93 @@ def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ) Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MA_Open(&handle, a_real.data + begidx, historylen, timeperiod, matype, &outreal) + if retCode != 0: + _stream_open_failed("TA_MA_Open", retCode, historylen, lib.TA_MA_Lookback(timeperiod, matype) + 1) + if self._handle is not NULL: + TA_MA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MA_Lookback(timeperiod, matype) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MA_Stream stream = MA_Stream.__new__(MA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MA_Clone", retCode) + cdef MA_Stream stream = MA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +MACD_Value = namedtuple("MACD_Value", "macd macdsignal macdhist", module=__name__) + +cdef class MACD_Stream(Stream): """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) Moving Average Convergence/Divergence (Momentum Indicators) @@ -4272,28 +15025,103 @@ def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperi macdsignal macdhist """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmacd - double outmacdsignal - double outmacdhist - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmacd = NaN - outmacdsignal = NaN - outmacdhist = NaN - retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) - _ta_check_success("TA_MACD", retCode) - return outmacd , outmacdsignal , outmacdhist - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MACD_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MACD_Stream* handle = NULL + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACD_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _stream_open_failed("TA_MACD_Open", retCode, historylen, lib.TA_MACD_Lookback(fastperiod, slowperiod, signalperiod) + 1) + if self._handle is not NULL: + TA_MACD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MACD_Lookback(fastperiod, slowperiod, signalperiod) + cdef np.ndarray outmacd = make_double_array(length, lookback) + cdef np.ndarray outmacdsignal = make_double_array(length, lookback) + cdef np.ndarray outmacdhist = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MACD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MACD_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MACD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MACD_Stream stream = MACD_Stream.__new__(MACD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, MACD_Value(_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + + @cython.binding(False) + def update(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACD_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACD_Update", retCode) + return MACD_Value(outmacd, outmacdsignal, outmacdhist) + + @cython.binding(False) + def peek(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACD_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACD_Peek", retCode) + return MACD_Value(outmacd, outmacdsignal, outmacdhist) + + @property + def value(self): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACD_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACD_Value", retCode) + return MACD_Value(outmacd, outmacdsignal, outmacdhist) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MACD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MACD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MACD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MACD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MACD_Clone", retCode) + cdef MACD_Stream stream = MACD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +MACDEXT_Value = namedtuple("MACDEXT_Value", "macd macdsignal macdhist", module=__name__) + +cdef class MACDEXT_Stream(Stream): """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) MACD with controllable MA type (Momentum Indicators) @@ -4312,28 +15140,103 @@ def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastm macdsignal macdhist """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmacd - double outmacdsignal - double outmacdhist - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmacd = NaN - outmacdsignal = NaN - outmacdhist = NaN - retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) - _ta_check_success("TA_MACDEXT", retCode) - return outmacd , outmacdsignal , outmacdhist - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MACDEXT_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int fastperiod=-2**31, int fastmatype=0, int slowperiod=-2**31, int slowmatype=0, int signalperiod=-2**31, int signalmatype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MACDEXT_Stream* handle = NULL + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDEXT_Open(&handle, a_real.data + begidx, historylen, fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _stream_open_failed("TA_MACDEXT_Open", retCode, historylen, lib.TA_MACDEXT_Lookback(fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype) + 1) + if self._handle is not NULL: + TA_MACDEXT_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int fastperiod=-2**31, int fastmatype=0, int slowperiod=-2**31, int slowmatype=0, int signalperiod=-2**31, int signalmatype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MACDEXT_Lookback(fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype) + cdef np.ndarray outmacd = make_double_array(length, lookback) + cdef np.ndarray outmacdsignal = make_double_array(length, lookback) + cdef np.ndarray outmacdhist = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MACDEXT_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MACDEXT_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, fastmatype, slowperiod, slowmatype, signalperiod, signalmatype, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MACDEXT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MACDEXT_Stream stream = MACDEXT_Stream.__new__(MACDEXT_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, MACDEXT_Value(_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + + @cython.binding(False) + def update(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDEXT_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDEXT_Update", retCode) + return MACDEXT_Value(outmacd, outmacdsignal, outmacdhist) + + @cython.binding(False) + def peek(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDEXT_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDEXT_Peek", retCode) + return MACDEXT_Value(outmacd, outmacdsignal, outmacdhist) + + @property + def value(self): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDEXT_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDEXT_Value", retCode) + return MACDEXT_Value(outmacd, outmacdsignal, outmacdhist) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MACDEXT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MACDEXT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MACDEXT_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MACDEXT_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MACDEXT_Clone", retCode) + cdef MACDEXT_Stream stream = MACDEXT_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +MACDFIX_Value = namedtuple("MACDFIX_Value", "macd macdsignal macdhist", module=__name__) + +cdef class MACDFIX_Stream(Stream): """ MACDFIX(real[, signalperiod=?]) Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators) @@ -4347,28 +15250,103 @@ def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): macdsignal macdhist """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmacd - double outmacdsignal - double outmacdhist - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmacd = NaN - outmacdsignal = NaN - outmacdhist = NaN - retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) - _ta_check_success("TA_MACDFIX", retCode) - return outmacd , outmacdsignal , outmacdhist - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MACDFIX_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MACDFIX_Stream* handle = NULL + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDFIX_Open(&handle, a_real.data + begidx, historylen, signalperiod, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _stream_open_failed("TA_MACDFIX_Open", retCode, historylen, lib.TA_MACDFIX_Lookback(signalperiod) + 1) + if self._handle is not NULL: + TA_MACDFIX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int signalperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MACDFIX_Lookback(signalperiod) + cdef np.ndarray outmacd = make_double_array(length, lookback) + cdef np.ndarray outmacdsignal = make_double_array(length, lookback) + cdef np.ndarray outmacdhist = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MACDFIX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MACDFIX_OpenAndFill(&handle, a_real.data + begidx, historylen, signalperiod, &outbegidx, &outnbelement, outmacd.data + lookback, outmacdsignal.data + lookback, outmacdhist.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MACDFIX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MACDFIX_Stream stream = MACDFIX_Stream.__new__(MACDFIX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, MACDFIX_Value(_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + + @cython.binding(False) + def update(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDFIX_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDFIX_Update", retCode) + return MACDFIX_Value(outmacd, outmacdsignal, outmacdhist) + + @cython.binding(False) + def peek(self, double real): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDFIX_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDFIX_Peek", retCode) + return MACDFIX_Value(outmacd, outmacdsignal, outmacdhist) + + @property + def value(self): + cdef double outmacd + cdef double outmacdsignal + cdef double outmacdhist + cdef TA_RetCode retCode = TA_MACDFIX_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) + if retCode != 0: + _ta_check_success("TA_MACDFIX_Value", retCode) + return MACDFIX_Value(outmacd, outmacdsignal, outmacdhist) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MACDFIX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MACDFIX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MACDFIX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MACDFIX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MACDFIX_Clone", retCode) + cdef MACDFIX_Stream stream = MACDFIX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +MAMA_Value = namedtuple("MAMA_Value", "mama fama", module=__name__) + +cdef class MAMA_Stream(Stream): """ MAMA(real[, fastlimit=?, slowlimit=?]) MESA Adaptive Moving Average (Overlap Studies) @@ -4382,26 +15360,96 @@ def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slow mama fama """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmama - double outfama - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmama = NaN - outfama = NaN - retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) - _ta_check_success("TA_MAMA", retCode) - return outmama , outfama - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MARKETFI( np.ndarray high not None , np.ndarray low not None , np.ndarray volume not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MAMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, double fastlimit=-4e37, double slowlimit=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAMA_Stream* handle = NULL + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode = TA_MAMA_Open(&handle, a_real.data + begidx, historylen, fastlimit, slowlimit, &outmama, &outfama) + if retCode != 0: + _stream_open_failed("TA_MAMA_Open", retCode, historylen, lib.TA_MAMA_Lookback(fastlimit, slowlimit) + 1) + if self._handle is not NULL: + TA_MAMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, double fastlimit=-4e37, double slowlimit=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MAMA_Lookback(fastlimit, slowlimit) + cdef np.ndarray outmama = make_double_array(length, lookback) + cdef np.ndarray outfama = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MAMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MAMA_OpenAndFill(&handle, a_real.data + begidx, historylen, fastlimit, slowlimit, &outbegidx, &outnbelement, outmama.data + lookback, outfama.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MAMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MAMA_Stream stream = MAMA_Stream.__new__(MAMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, MAMA_Value(_stream_like((real,), outmama), _stream_like((real,), outfama)) + + @cython.binding(False) + def update(self, double real): + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode = TA_MAMA_Update(self._handle, real, &outmama, &outfama) + if retCode != 0: + _ta_check_success("TA_MAMA_Update", retCode) + return MAMA_Value(outmama, outfama) + + @cython.binding(False) + def peek(self, double real): + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode = TA_MAMA_Peek(self._handle, real, &outmama, &outfama) + if retCode != 0: + _ta_check_success("TA_MAMA_Peek", retCode) + return MAMA_Value(outmama, outfama) + + @property + def value(self): + cdef double outmama + cdef double outfama + cdef TA_RetCode retCode = TA_MAMA_Value(self._handle, &outmama, &outfama) + if retCode != 0: + _ta_check_success("TA_MAMA_Value", retCode) + return MAMA_Value(outmama, outfama) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MAMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MAMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MAMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MAMA_Clone", retCode) + cdef MAMA_Stream stream = MAMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MARKETFI_Stream(Stream): """ MARKETFI(high, low, volume) Market Facilitation Index (Volume Indicators) @@ -4411,30 +15459,95 @@ def stream_MARKETFI( np.ndarray high not None , np.ndarray low not None , np.nda Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - volume = check_array(volume) - volume_data = volume.data - length = check_length3(high, low, volume) - outreal = NaN - retCode = lib.TA_MARKETFI( (length) - 1 , (length) - 1 , high_data , low_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MARKETFI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MASSI( np.ndarray high not None , np.ndarray low not None , int fastperiod=-2**31 , int slowperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MARKETFI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MARKETFI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MARKETFI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_MARKETFI_Open", retCode, historylen, lib.TA_MARKETFI_Lookback() + 1) + if self._handle is not NULL: + TA_MARKETFI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MARKETFI_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MARKETFI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MARKETFI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MARKETFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MARKETFI_Stream stream = MARKETFI_Stream.__new__(MARKETFI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_MARKETFI_Update(self._handle, high, low, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MARKETFI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_MARKETFI_Peek(self._handle, high, low, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MARKETFI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MARKETFI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MARKETFI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MARKETFI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MARKETFI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MARKETFI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MARKETFI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MARKETFI_Clone", retCode) + cdef MARKETFI_Stream stream = MARKETFI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MASSI_Stream(Stream): """ MASSI(high, low[, fastperiod=?, slowperiod=?]) Mass Index (Volatility Indicators) @@ -4447,27 +15560,93 @@ def stream_MASSI( np.ndarray high not None , np.ndarray low not None , int fastp Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_MASSI( (length) - 1 , (length) - 1 , high_data , low_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MASSI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MASSI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MASSI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MASSI_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MASSI_Open", retCode, historylen, lib.TA_MASSI_Lookback(fastperiod, slowperiod) + 1) + if self._handle is not NULL: + TA_MASSI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int fastperiod=-2**31, int slowperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MASSI_Lookback(fastperiod, slowperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MASSI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MASSI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, fastperiod, slowperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MASSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MASSI_Stream stream = MASSI_Stream.__new__(MASSI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MASSI_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MASSI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MASSI_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MASSI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MASSI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MASSI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MASSI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MASSI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MASSI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MASSI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MASSI_Clone", retCode) + cdef MASSI_Stream stream = MASSI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MAVP_Stream(Stream): """ MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?]) Moving average with variable period (Overlap Studies) @@ -4482,27 +15661,93 @@ def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int mi Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - double* periods_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - periods = check_array(periods) - periods_data = periods.data - length = check_length2(real, periods) - outreal = NaN - retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MAVP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MAVP_Close(self._handle) + self._handle = NULL + + def __init__(self, real, periods, int minperiod=-2**31, int maxperiod=-2**31, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_periods = _stream_input(periods) + cdef tuple arrays = (a_real, a_periods,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAVP_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MAVP_Open(&handle, a_real.data + begidx, a_periods.data + begidx, historylen, minperiod, maxperiod, matype, &outreal) + if retCode != 0: + _stream_open_failed("TA_MAVP_Open", retCode, historylen, lib.TA_MAVP_Lookback(minperiod, maxperiod, matype) + 1) + if self._handle is not NULL: + TA_MAVP_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, periods, int minperiod=-2**31, int maxperiod=-2**31, int matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_periods = _stream_input(periods) + cdef tuple arrays = (a_real, a_periods,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MAVP_Lookback(minperiod, maxperiod, matype) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MAVP_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MAVP_OpenAndFill(&handle, a_real.data + begidx, a_periods.data + begidx, historylen, minperiod, maxperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MAVP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MAVP_Stream stream = MAVP_Stream.__new__(MAVP_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real, periods,), outreal) + + @cython.binding(False) + def update(self, double real, double periods): + cdef double outreal + cdef TA_RetCode retCode = TA_MAVP_Update(self._handle, real, periods, &outreal) + if retCode != 0: + _ta_check_success("TA_MAVP_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real, double periods): + cdef double outreal + cdef TA_RetCode retCode = TA_MAVP_Peek(self._handle, real, periods, &outreal) + if retCode != 0: + _ta_check_success("TA_MAVP_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MAVP_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MAVP_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MAVP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MAVP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAVP_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MAVP_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MAVP_Clone", retCode) + cdef MAVP_Stream stream = MAVP_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MAX_Stream(Stream): """ MAX(real[, timeperiod=?]) Highest value over a specified period (Math Operators) @@ -4514,24 +15759,91 @@ def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MAX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MAX_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAX_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MAX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MAX_Open", retCode, historylen, lib.TA_MAX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MAX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MAX_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MAX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MAX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MAX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MAX_Stream stream = MAX_Stream.__new__(MAX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MAX_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MAX_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MAX_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MAX_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MAX_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MAX_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MAX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MAX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MAX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MAX_Clone", retCode) + cdef MAX_Stream stream = MAX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MAXINDEX_Stream(Stream): """ MAXINDEX(real[, timeperiod=?]) Index of highest value over a specified period (Math Operators) @@ -4543,24 +15855,95 @@ def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: integer """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outinteger - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinteger = 0 - retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_MAXINDEX", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MAXINDEX_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MAXINDEX_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_MAXINDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outinteger) + if retCode != 0: + _stream_open_failed("TA_MAXINDEX_Open", retCode, historylen, lib.TA_MAXINDEX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MAXINDEX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MAXINDEX_Lookback(timeperiod) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MAXINDEX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MAXINDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MAXINDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef np.npy_intp i + cdef int* outinteger_data = outinteger.data + for i in range(lookback, length): + outinteger_data[i] += begidx + cdef MAXINDEX_Stream stream = MAXINDEX_Stream.__new__(MAXINDEX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outinteger) + + @cython.binding(False) + def update(self, double real): + cdef int outinteger + cdef TA_RetCode retCode = TA_MAXINDEX_Update(self._handle, real, &outinteger) + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Update", retCode) + return outinteger + self._begidx + + @cython.binding(False) + def peek(self, double real): + cdef int outinteger + cdef TA_RetCode retCode = TA_MAXINDEX_Peek(self._handle, real, &outinteger) + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Peek", retCode) + return outinteger + self._begidx + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_MAXINDEX_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Value", retCode) + return outinteger + self._begidx + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MAXINDEX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MAXINDEX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MAXINDEX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MAXINDEX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MAXINDEX_Clone", retCode) + cdef MAXINDEX_Stream stream = MAXINDEX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MEDPRICE_Stream(Stream): """ MEDPRICE(high, low) Median Price (Price Transform) @@ -4570,27 +15953,93 @@ def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MEDPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MEDPRICE_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MEDPRICE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MEDPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_MEDPRICE_Open", retCode, historylen, lib.TA_MEDPRICE_Lookback() + 1) + if self._handle is not NULL: + TA_MEDPRICE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MEDPRICE_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MEDPRICE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MEDPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MEDPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MEDPRICE_Stream stream = MEDPRICE_Stream.__new__(MEDPRICE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MEDPRICE_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MEDPRICE_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MEDPRICE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MEDPRICE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MEDPRICE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MEDPRICE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MEDPRICE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MEDPRICE_Clone", retCode) + cdef MEDPRICE_Stream stream = MEDPRICE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MFI_Stream(Stream): """ MFI(high, low, close, volume[, timeperiod=?]) Money Flow Index (Momentum Indicators) @@ -4602,33 +16051,97 @@ def stream_MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MFI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MFI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MFI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MFI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MFI_Open", retCode, historylen, lib.TA_MFI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MFI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, volume, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MFI_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MFI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MFI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MFI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MFI_Stream stream = MFI_Stream.__new__(MFI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_MFI_Update(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MFI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_MFI_Peek(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_MFI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MFI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MFI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MFI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MFI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MFI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MFI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MFI_Clone", retCode) + cdef MFI_Stream stream = MFI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MIDPOINT_Stream(Stream): """ MIDPOINT(real[, timeperiod=?]) MidPoint over period (Overlap Studies) @@ -4640,24 +16153,91 @@ def stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MIDPOINT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MIDPOINT_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MIDPOINT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPOINT_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MIDPOINT_Open", retCode, historylen, lib.TA_MIDPOINT_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MIDPOINT_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MIDPOINT_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MIDPOINT_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MIDPOINT_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MIDPOINT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MIDPOINT_Stream stream = MIDPOINT_Stream.__new__(MIDPOINT_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPOINT_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPOINT_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPOINT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MIDPOINT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MIDPOINT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MIDPOINT_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MIDPOINT_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MIDPOINT_Clone", retCode) + cdef MIDPOINT_Stream stream = MIDPOINT_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MIDPRICE_Stream(Stream): """ MIDPRICE(high, low[, timeperiod=?]) Midpoint Price over period (Overlap Studies) @@ -4669,27 +16249,93 @@ def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int ti Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MIDPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MIDPRICE_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MIDPRICE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MIDPRICE_Open", retCode, historylen, lib.TA_MIDPRICE_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MIDPRICE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MIDPRICE_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MIDPRICE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MIDPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MIDPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MIDPRICE_Stream stream = MIDPRICE_Stream.__new__(MIDPRICE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPRICE_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPRICE_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MIDPRICE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MIDPRICE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MIDPRICE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MIDPRICE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MIDPRICE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MIDPRICE_Clone", retCode) + cdef MIDPRICE_Stream stream = MIDPRICE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MIN_Stream(Stream): """ MIN(real[, timeperiod=?]) Lowest value over a specified period (Math Operators) @@ -4701,24 +16347,91 @@ def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MIN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MIN_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MIN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MIN_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MIN_Open", retCode, historylen, lib.TA_MIN_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MIN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MIN_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MIN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MIN_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MIN_Stream stream = MIN_Stream.__new__(MIN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MIN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MIN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MIN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MIN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MIN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MIN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MIN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MIN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MIN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MIN_Clone", retCode) + cdef MIN_Stream stream = MIN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MININDEX_Stream(Stream): """ MININDEX(real[, timeperiod=?]) Index of lowest value over a specified period (Math Operators) @@ -4730,24 +16443,97 @@ def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: integer """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outinteger - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinteger = 0 - retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_MININDEX", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MININDEX_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MININDEX_Stream* handle = NULL + cdef int outinteger + cdef TA_RetCode retCode = TA_MININDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outinteger) + if retCode != 0: + _stream_open_failed("TA_MININDEX_Open", retCode, historylen, lib.TA_MININDEX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MININDEX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MININDEX_Lookback(timeperiod) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MININDEX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MININDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MININDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef np.npy_intp i + cdef int* outinteger_data = outinteger.data + for i in range(lookback, length): + outinteger_data[i] += begidx + cdef MININDEX_Stream stream = MININDEX_Stream.__new__(MININDEX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outinteger) + + @cython.binding(False) + def update(self, double real): + cdef int outinteger + cdef TA_RetCode retCode = TA_MININDEX_Update(self._handle, real, &outinteger) + if retCode != 0: + _ta_check_success("TA_MININDEX_Update", retCode) + return outinteger + self._begidx + + @cython.binding(False) + def peek(self, double real): + cdef int outinteger + cdef TA_RetCode retCode = TA_MININDEX_Peek(self._handle, real, &outinteger) + if retCode != 0: + _ta_check_success("TA_MININDEX_Peek", retCode) + return outinteger + self._begidx + + @property + def value(self): + cdef int outinteger + cdef TA_RetCode retCode = TA_MININDEX_Value(self._handle, &outinteger) + if retCode != 0: + _ta_check_success("TA_MININDEX_Value", retCode) + return outinteger + self._begidx + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MININDEX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MININDEX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MININDEX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MININDEX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MININDEX_Clone", retCode) + cdef MININDEX_Stream stream = MININDEX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +MINMAX_Value = namedtuple("MINMAX_Value", "min max", module=__name__) + +cdef class MINMAX_Stream(Stream): """ MINMAX(real[, timeperiod=?]) Lowest and highest values over a specified period (Math Operators) @@ -4760,26 +16546,98 @@ def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): min max """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmin - double outmax - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmin = NaN - outmax = NaN - retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) - _ta_check_success("TA_MINMAX", retCode) - return outmin , outmax - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MINMAX_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINMAX_Stream* handle = NULL + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode = TA_MINMAX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outmin, &outmax) + if retCode != 0: + _stream_open_failed("TA_MINMAX_Open", retCode, historylen, lib.TA_MINMAX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MINMAX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MINMAX_Lookback(timeperiod) + cdef np.ndarray outmin = make_double_array(length, lookback) + cdef np.ndarray outmax = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MINMAX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MINMAX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outmin.data + lookback, outmax.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MINMAX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MINMAX_Stream stream = MINMAX_Stream.__new__(MINMAX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, MINMAX_Value(_stream_like((real,), outmin), _stream_like((real,), outmax)) + + @cython.binding(False) + def update(self, double real): + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode = TA_MINMAX_Update(self._handle, real, &outmin, &outmax) + if retCode != 0: + _ta_check_success("TA_MINMAX_Update", retCode) + return MINMAX_Value(outmin, outmax) + + @cython.binding(False) + def peek(self, double real): + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode = TA_MINMAX_Peek(self._handle, real, &outmin, &outmax) + if retCode != 0: + _ta_check_success("TA_MINMAX_Peek", retCode) + return MINMAX_Value(outmin, outmax) + + @property + def value(self): + cdef double outmin + cdef double outmax + cdef TA_RetCode retCode = TA_MINMAX_Value(self._handle, &outmin, &outmax) + if retCode != 0: + _ta_check_success("TA_MINMAX_Value", retCode) + return MINMAX_Value(outmin, outmax) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MINMAX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MINMAX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINMAX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MINMAX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MINMAX_Clone", retCode) + cdef MINMAX_Stream stream = MINMAX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +MINMAXINDEX_Value = namedtuple("MINMAXINDEX_Value", "minidx maxidx", module=__name__) + +cdef class MINMAXINDEX_Stream(Stream): """ MINMAXINDEX(real[, timeperiod=?]) Indexes of lowest and highest values over a specified period (Math Operators) @@ -4792,26 +16650,103 @@ def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): minidx maxidx """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outminidx - int outmaxidx - real = check_array(real) - real_data = real.data - length = real.shape[0] - outminidx = 0 - outmaxidx = 0 - retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) - _ta_check_success("TA_MINMAXINDEX", retCode) - return outminidx , outmaxidx - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MINMAXINDEX_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINMAXINDEX_Stream* handle = NULL + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode = TA_MINMAXINDEX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outminidx, &outmaxidx) + if retCode != 0: + _stream_open_failed("TA_MINMAXINDEX_Open", retCode, historylen, lib.TA_MINMAXINDEX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MINMAXINDEX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MINMAXINDEX_Lookback(timeperiod) + cdef np.ndarray outminidx = make_int_array(length, lookback) + cdef np.ndarray outmaxidx = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MINMAXINDEX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MINMAXINDEX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outminidx.data + lookback, outmaxidx.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MINMAXINDEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef np.npy_intp i + cdef int* outminidx_data = outminidx.data + for i in range(lookback, length): + outminidx_data[i] += begidx + cdef int* outmaxidx_data = outmaxidx.data + for i in range(lookback, length): + outmaxidx_data[i] += begidx + cdef MINMAXINDEX_Stream stream = MINMAXINDEX_Stream.__new__(MINMAXINDEX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, MINMAXINDEX_Value(_stream_like((real,), outminidx), _stream_like((real,), outmaxidx)) + + @cython.binding(False) + def update(self, double real): + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode = TA_MINMAXINDEX_Update(self._handle, real, &outminidx, &outmaxidx) + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Update", retCode) + return MINMAXINDEX_Value(outminidx + self._begidx, outmaxidx + self._begidx) + + @cython.binding(False) + def peek(self, double real): + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode = TA_MINMAXINDEX_Peek(self._handle, real, &outminidx, &outmaxidx) + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Peek", retCode) + return MINMAXINDEX_Value(outminidx + self._begidx, outmaxidx + self._begidx) + + @property + def value(self): + cdef int outminidx + cdef int outmaxidx + cdef TA_RetCode retCode = TA_MINMAXINDEX_Value(self._handle, &outminidx, &outmaxidx) + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Value", retCode) + return MINMAXINDEX_Value(outminidx + self._begidx, outmaxidx + self._begidx) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MINMAXINDEX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MINMAXINDEX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINMAXINDEX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MINMAXINDEX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MINMAXINDEX_Clone", retCode) + cdef MINMAXINDEX_Stream stream = MINMAXINDEX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MINUS_DI_Stream(Stream): """ MINUS_DI(high, low, close[, timeperiod=?]) Minus Directional Indicator (Momentum Indicators) @@ -4823,30 +16758,95 @@ def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.nda Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MINUS_DI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MINUS_DI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINUS_DI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MINUS_DI_Open", retCode, historylen, lib.TA_MINUS_DI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MINUS_DI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MINUS_DI_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MINUS_DI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MINUS_DI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MINUS_DI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MINUS_DI_Stream stream = MINUS_DI_Stream.__new__(MINUS_DI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DI_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DI_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MINUS_DI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MINUS_DI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINUS_DI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MINUS_DI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MINUS_DI_Clone", retCode) + cdef MINUS_DI_Stream stream = MINUS_DI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MINUS_DM_Stream(Stream): """ MINUS_DM(high, low[, timeperiod=?]) Minus Directional Movement (Momentum Indicators) @@ -4858,27 +16858,93 @@ def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int ti Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MINUS_DM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MINUS_DM_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MINUS_DM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DM_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MINUS_DM_Open", retCode, historylen, lib.TA_MINUS_DM_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MINUS_DM_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MINUS_DM_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MINUS_DM_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MINUS_DM_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MINUS_DM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MINUS_DM_Stream stream = MINUS_DM_Stream.__new__(MINUS_DM_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DM_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DM_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MINUS_DM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MINUS_DM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MINUS_DM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MINUS_DM_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MINUS_DM_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MINUS_DM_Clone", retCode) + cdef MINUS_DM_Stream stream = MINUS_DM_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MOM_Stream(Stream): """ MOM(real[, timeperiod=?]) Momentum (Momentum Indicators) @@ -4890,24 +16956,91 @@ def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MOM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MOM_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MOM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MOM_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_MOM_Open", retCode, historylen, lib.TA_MOM_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_MOM_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MOM_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MOM_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MOM_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MOM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MOM_Stream stream = MOM_Stream.__new__(MOM_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MOM_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MOM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_MOM_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_MOM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MOM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MOM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MOM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MOM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MOM_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MOM_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MOM_Clone", retCode) + cdef MOM_Stream stream = MOM_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class MULT_Stream(Stream): """ MULT(real0, real1) Vector Arithmetic Mult (Math Operators) @@ -4918,27 +17051,93 @@ def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MULT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_MULT_Close(self._handle) + self._handle = NULL + + def __init__(self, real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_MULT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_MULT_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_MULT_Open", retCode, historylen, lib.TA_MULT_Lookback() + 1) + if self._handle is not NULL: + TA_MULT_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_MULT_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_MULT_Stream* handle = NULL + cdef TA_RetCode retCode = TA_MULT_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_MULT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef MULT_Stream stream = MULT_Stream.__new__(MULT_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real0, real1,), outreal) + + @cython.binding(False) + def update(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_MULT_Update(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_MULT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_MULT_Peek(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_MULT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_MULT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_MULT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_MULT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_MULT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_MULT_Stream* clone = NULL + cdef TA_RetCode retCode = TA_MULT_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_MULT_Clone", retCode) + cdef MULT_Stream stream = MULT_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class NATR_Stream(Stream): """ NATR(high, low, close[, timeperiod=?]) Normalized Average True Range (Volatility Indicators) @@ -4950,30 +17149,95 @@ def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_NATR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_NVI( np.ndarray close not None , np.ndarray volume not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_NATR_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_NATR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_NATR_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_NATR_Open", retCode, historylen, lib.TA_NATR_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_NATR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_NATR_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_NATR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_NATR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_NATR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef NATR_Stream stream = NATR_Stream.__new__(NATR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_NATR_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_NATR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_NATR_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_NATR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_NATR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_NATR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_NATR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_NATR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_NATR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_NATR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_NATR_Clone", retCode) + cdef NATR_Stream stream = NATR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class NVI_Stream(Stream): """ NVI(close, volume) Negative Volume Index (Volume Indicators) @@ -4983,27 +17247,93 @@ def stream_NVI( np.ndarray close not None , np.ndarray volume not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length2(close, volume) - outreal = NaN - retCode = lib.TA_NVI( (length) - 1 , (length) - 1 , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_NVI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_NVI_Close(self._handle) + self._handle = NULL + + def __init__(self, close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_NVI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_NVI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_NVI_Open", retCode, historylen, lib.TA_NVI_Lookback() + 1) + if self._handle is not NULL: + TA_NVI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_NVI_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_NVI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_NVI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_NVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef NVI_Stream stream = NVI_Stream.__new__(NVI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((close, volume,), outreal) + + @cython.binding(False) + def update(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_NVI_Update(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_NVI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_NVI_Peek(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_NVI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_NVI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_NVI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_NVI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_NVI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_NVI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_NVI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_NVI_Clone", retCode) + cdef NVI_Stream stream = NVI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class OBV_Stream(Stream): """ OBV(real, volume) On Balance Volume (Volume Indicators) @@ -5014,27 +17344,93 @@ def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - double* volume_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - volume = check_array(volume) - volume_data = volume.data - length = check_length2(real, volume) - outreal = NaN - retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_OBV", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PERCENTILE( np.ndarray real not None , int timeperiod=-2**31 , double percentile=50.0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_OBV_Close(self._handle) + self._handle = NULL + + def __init__(self, real, volume): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_real, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_OBV_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_OBV_Open(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_OBV_Open", retCode, historylen, lib.TA_OBV_Lookback() + 1) + if self._handle is not NULL: + TA_OBV_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, volume): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_real, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_OBV_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_OBV_Stream* handle = NULL + cdef TA_RetCode retCode = TA_OBV_OpenAndFill(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_OBV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef OBV_Stream stream = OBV_Stream.__new__(OBV_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real, volume,), outreal) + + @cython.binding(False) + def update(self, double real, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_OBV_Update(self._handle, real, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_OBV_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_OBV_Peek(self._handle, real, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_OBV_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_OBV_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_OBV_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_OBV_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_OBV_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_OBV_Stream* clone = NULL + cdef TA_RetCode retCode = TA_OBV_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_OBV_Clone", retCode) + cdef OBV_Stream stream = OBV_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PERCENTILE_Stream(Stream): """ PERCENTILE(real[, timeperiod=?, percentile=?]) Percentile (nearest rank) (Statistic Functions) @@ -5047,24 +17443,91 @@ def stream_PERCENTILE( np.ndarray real not None , int timeperiod=-2**31 , double Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_PERCENTILE( (length) - 1 , (length) - 1 , real_data , timeperiod , percentile , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PERCENTILE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PERCENTRANK( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PERCENTILE_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, double percentile=50.0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PERCENTILE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTILE_Open(&handle, a_real.data + begidx, historylen, timeperiod, percentile, &outreal) + if retCode != 0: + _stream_open_failed("TA_PERCENTILE_Open", retCode, historylen, lib.TA_PERCENTILE_Lookback(timeperiod, percentile) + 1) + if self._handle is not NULL: + TA_PERCENTILE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double percentile=50.0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PERCENTILE_Lookback(timeperiod, percentile) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PERCENTILE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PERCENTILE_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, percentile, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PERCENTILE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PERCENTILE_Stream stream = PERCENTILE_Stream.__new__(PERCENTILE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTILE_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTILE_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTILE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PERCENTILE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PERCENTILE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PERCENTILE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PERCENTILE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PERCENTILE_Clone", retCode) + cdef PERCENTILE_Stream stream = PERCENTILE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PERCENTRANK_Stream(Stream): """ PERCENTRANK(real[, timeperiod=?]) Percent Rank (Statistic Functions) @@ -5076,24 +17539,91 @@ def stream_PERCENTRANK( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_PERCENTRANK( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PERCENTRANK", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PERCENTRANK_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PERCENTRANK_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTRANK_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_PERCENTRANK_Open", retCode, historylen, lib.TA_PERCENTRANK_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_PERCENTRANK_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PERCENTRANK_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PERCENTRANK_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PERCENTRANK_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PERCENTRANK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PERCENTRANK_Stream stream = PERCENTRANK_Stream.__new__(PERCENTRANK_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTRANK_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTRANK_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PERCENTRANK_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PERCENTRANK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PERCENTRANK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PERCENTRANK_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PERCENTRANK_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PERCENTRANK_Clone", retCode) + cdef PERCENTRANK_Stream stream = PERCENTRANK_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PLUS_DI_Stream(Stream): """ PLUS_DI(high, low, close[, timeperiod=?]) Plus Directional Indicator (Momentum Indicators) @@ -5105,30 +17635,95 @@ def stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndar Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PLUS_DI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PLUS_DI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PLUS_DI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_PLUS_DI_Open", retCode, historylen, lib.TA_PLUS_DI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_PLUS_DI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PLUS_DI_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PLUS_DI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PLUS_DI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PLUS_DI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PLUS_DI_Stream stream = PLUS_DI_Stream.__new__(PLUS_DI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DI_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DI_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PLUS_DI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PLUS_DI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PLUS_DI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PLUS_DI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PLUS_DI_Clone", retCode) + cdef PLUS_DI_Stream stream = PLUS_DI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PLUS_DM_Stream(Stream): """ PLUS_DM(high, low[, timeperiod=?]) Plus Directional Movement (Momentum Indicators) @@ -5140,27 +17735,93 @@ def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int tim Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PLUS_DM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=1 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PLUS_DM_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PLUS_DM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DM_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_PLUS_DM_Open", retCode, historylen, lib.TA_PLUS_DM_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_PLUS_DM_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PLUS_DM_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PLUS_DM_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PLUS_DM_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PLUS_DM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PLUS_DM_Stream stream = PLUS_DM_Stream.__new__(PLUS_DM_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DM_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DM_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PLUS_DM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PLUS_DM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PLUS_DM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PLUS_DM_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PLUS_DM_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PLUS_DM_Clone", retCode) + cdef PLUS_DM_Stream stream = PLUS_DM_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PPO_Stream(Stream): """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) Percentage Price Oscillator (Momentum Indicators) @@ -5174,24 +17835,91 @@ def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperio Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PPO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PVI( np.ndarray close not None , np.ndarray volume not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PPO_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PPO_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PPO_Open(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outreal) + if retCode != 0: + _stream_open_failed("TA_PPO_Open", retCode, historylen, lib.TA_PPO_Lookback(fastperiod, slowperiod, matype) + 1) + if self._handle is not NULL: + TA_PPO_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PPO_Lookback(fastperiod, slowperiod, matype) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PPO_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PPO_OpenAndFill(&handle, a_real.data + begidx, historylen, fastperiod, slowperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PPO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PPO_Stream stream = PPO_Stream.__new__(PPO_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_PPO_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PPO_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_PPO_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_PPO_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PPO_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PPO_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PPO_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PPO_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PPO_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PPO_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PPO_Clone", retCode) + cdef PPO_Stream stream = PPO_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PVI_Stream(Stream): """ PVI(close, volume) Positive Volume Index (Volume Indicators) @@ -5201,27 +17929,93 @@ def stream_PVI( np.ndarray close not None , np.ndarray volume not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length2(close, volume) - outreal = NaN - retCode = lib.TA_PVI( (length) - 1 , (length) - 1 , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PVI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PVO( np.ndarray volume not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=1 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PVI_Close(self._handle) + self._handle = NULL + + def __init__(self, close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PVI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PVI_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_PVI_Open", retCode, historylen, lib.TA_PVI_Lookback() + 1) + if self._handle is not NULL: + TA_PVI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PVI_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PVI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PVI_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PVI_Stream stream = PVI_Stream.__new__(PVI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((close, volume,), outreal) + + @cython.binding(False) + def update(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_PVI_Update(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_PVI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_PVI_Peek(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_PVI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PVI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PVI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PVI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PVI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PVI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PVI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PVI_Clone", retCode) + cdef PVI_Stream stream = PVI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PVO_Stream(Stream): """ PVO(volume[, fastperiod=?, slowperiod=?, matype=?]) Percentage Volume Oscillator (Volume Indicators) @@ -5235,24 +18029,91 @@ def stream_PVO( np.ndarray volume not None , int fastperiod=-2**31 , int slowper Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* volume_data - int outbegidx - int outnbelement - double outreal - volume = check_array(volume) - volume_data = volume.data - length = volume.shape[0] - outreal = NaN - retCode = lib.TA_PVO( (length) - 1 , (length) - 1 , volume_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PVO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PVT( np.ndarray close not None , np.ndarray volume not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PVO_Close(self._handle) + self._handle = NULL + + def __init__(self, volume, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PVO_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PVO_Open(&handle, a_volume.data + begidx, historylen, fastperiod, slowperiod, matype, &outreal) + if retCode != 0: + _stream_open_failed("TA_PVO_Open", retCode, historylen, lib.TA_PVO_Lookback(fastperiod, slowperiod, matype) + 1) + if self._handle is not NULL: + TA_PVO_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(volume, int fastperiod=-2**31, int slowperiod=-2**31, int matype=1): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PVO_Lookback(fastperiod, slowperiod, matype) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PVO_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PVO_OpenAndFill(&handle, a_volume.data + begidx, historylen, fastperiod, slowperiod, matype, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PVO_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PVO_Stream stream = PVO_Stream.__new__(PVO_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((volume,), outreal) + + @cython.binding(False) + def update(self, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_PVO_Update(self._handle, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_PVO_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_PVO_Peek(self._handle, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_PVO_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PVO_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PVO_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PVO_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PVO_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PVO_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PVO_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PVO_Clone", retCode) + cdef PVO_Stream stream = PVO_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class PVT_Stream(Stream): """ PVT(close, volume) Price Volume Trend (Volume Indicators) @@ -5262,27 +18123,93 @@ def stream_PVT( np.ndarray close not None , np.ndarray volume not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length2(close, volume) - outreal = NaN - retCode = lib.TA_PVT( (length) - 1 , (length) - 1 , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PVT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_QSTICK( np.ndarray open not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_PVT_Close(self._handle) + self._handle = NULL + + def __init__(self, close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_PVT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_PVT_Open(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_PVT_Open", retCode, historylen, lib.TA_PVT_Lookback() + 1) + if self._handle is not NULL: + TA_PVT_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(close, volume): + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_PVT_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_PVT_Stream* handle = NULL + cdef TA_RetCode retCode = TA_PVT_OpenAndFill(&handle, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_PVT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef PVT_Stream stream = PVT_Stream.__new__(PVT_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((close, volume,), outreal) + + @cython.binding(False) + def update(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_PVT_Update(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_PVT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_PVT_Peek(self._handle, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_PVT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_PVT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_PVT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_PVT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_PVT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_PVT_Stream* clone = NULL + cdef TA_RetCode retCode = TA_PVT_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_PVT_Clone", retCode) + cdef PVT_Stream stream = PVT_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class QSTICK_Stream(Stream): """ QSTICK(open, close[, timeperiod=?]) Qstick (Momentum Indicators) @@ -5294,27 +18221,93 @@ def stream_QSTICK( np.ndarray open not None , np.ndarray close not None , int ti Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* close_data - int outbegidx - int outnbelement - double outreal - open = check_array(open) - open_data = open.data - close = check_array(close) - close_data = close.data - length = check_length2(open, close) - outreal = NaN - retCode = lib.TA_QSTICK( (length) - 1 , (length) - 1 , open_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_QSTICK", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_RMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_QSTICK_Close(self._handle) + self._handle = NULL + + def __init__(self, open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_QSTICK_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_QSTICK_Open(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_QSTICK_Open", retCode, historylen, lib.TA_QSTICK_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_QSTICK_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(open, close, int timeperiod=-2**31): + cdef np.ndarray a_open = _stream_input(open) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_open, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_QSTICK_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_QSTICK_Stream* handle = NULL + cdef TA_RetCode retCode = TA_QSTICK_OpenAndFill(&handle, a_open.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_QSTICK_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef QSTICK_Stream stream = QSTICK_Stream.__new__(QSTICK_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((open, close,), outreal) + + @cython.binding(False) + def update(self, double open, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_QSTICK_Update(self._handle, open, close, &outreal) + if retCode != 0: + _ta_check_success("TA_QSTICK_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double open, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_QSTICK_Peek(self._handle, open, close, &outreal) + if retCode != 0: + _ta_check_success("TA_QSTICK_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_QSTICK_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_QSTICK_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_QSTICK_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_QSTICK_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_QSTICK_Stream* clone = NULL + cdef TA_RetCode retCode = TA_QSTICK_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_QSTICK_Clone", retCode) + cdef QSTICK_Stream stream = QSTICK_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class RMA_Stream(Stream): """ RMA(real[, timeperiod=?]) Wilder's Smoothed Moving Average (Overlap Studies) @@ -5326,24 +18319,91 @@ def stream_RMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_RMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_RMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_RMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_RMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_RMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_RMA_Open", retCode, historylen, lib.TA_RMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_RMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_RMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_RMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_RMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_RMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef RMA_Stream stream = RMA_Stream.__new__(RMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_RMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_RMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_RMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_RMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_RMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_RMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_RMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_RMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_RMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_RMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_RMA_Clone", retCode) + cdef RMA_Stream stream = RMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ROC_Stream(Stream): """ ROC(real[, timeperiod=?]) Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators) @@ -5355,24 +18415,91 @@ def stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ROC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ROC_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ROC_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ROC_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ROC_Open", retCode, historylen, lib.TA_ROC_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ROC_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ROC_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ROC_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ROC_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ROC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ROC_Stream stream = ROC_Stream.__new__(ROC_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROC_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROC_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROC_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROC_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ROC_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ROC_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ROC_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ROC_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ROC_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ROC_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ROC_Clone", retCode) + cdef ROC_Stream stream = ROC_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ROCP_Stream(Stream): """ ROCP(real[, timeperiod=?]) Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators) @@ -5384,24 +18511,91 @@ def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ROCP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ROCP_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ROCP_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ROCP_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ROCP_Open", retCode, historylen, lib.TA_ROCP_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ROCP_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ROCP_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ROCP_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ROCP_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ROCP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ROCP_Stream stream = ROCP_Stream.__new__(ROCP_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCP_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCP_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCP_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCP_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCP_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCP_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ROCP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ROCP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ROCP_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ROCP_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ROCP_Clone", retCode) + cdef ROCP_Stream stream = ROCP_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ROCR_Stream(Stream): """ ROCR(real[, timeperiod=?]) Rate of change ratio: (real/prevPrice) (Momentum Indicators) @@ -5413,24 +18607,91 @@ def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ROCR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ROCR_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ROCR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ROCR_Open", retCode, historylen, lib.TA_ROCR_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ROCR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ROCR_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ROCR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ROCR_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ROCR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ROCR_Stream stream = ROCR_Stream.__new__(ROCR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ROCR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ROCR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ROCR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ROCR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ROCR_Clone", retCode) + cdef ROCR_Stream stream = ROCR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ROCR100_Stream(Stream): """ ROCR100(real[, timeperiod=?]) Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators) @@ -5442,24 +18703,91 @@ def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ROCR100", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ROCR100_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ROCR100_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR100_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ROCR100_Open", retCode, historylen, lib.TA_ROCR100_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ROCR100_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ROCR100_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ROCR100_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ROCR100_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ROCR100_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ROCR100_Stream stream = ROCR100_Stream.__new__(ROCR100_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR100_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCR100_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR100_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCR100_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ROCR100_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ROCR100_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ROCR100_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ROCR100_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ROCR100_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ROCR100_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ROCR100_Clone", retCode) + cdef ROCR100_Stream stream = ROCR100_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class RSI_Stream(Stream): """ RSI(real[, timeperiod=?]) Relative Strength Index (Momentum Indicators) @@ -5471,24 +18799,91 @@ def stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_RSI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_RVI( np.ndarray real not None , int timeperiod=-2**31 , int stddevperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_RSI_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_RSI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_RSI_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_RSI_Open", retCode, historylen, lib.TA_RSI_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_RSI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_RSI_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_RSI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_RSI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_RSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef RSI_Stream stream = RSI_Stream.__new__(RSI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_RSI_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_RSI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_RSI_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_RSI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_RSI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_RSI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_RSI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_RSI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_RSI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_RSI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_RSI_Clone", retCode) + cdef RSI_Stream stream = RSI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class RVI_Stream(Stream): """ RVI(real[, timeperiod=?, stddevperiod=?]) Relative Volatility Index (Volatility Indicators) @@ -5501,24 +18896,91 @@ def stream_RVI( np.ndarray real not None , int timeperiod=-2**31 , int stddevper Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_RVI( (length) - 1 , (length) - 1 , real_data , timeperiod , stddevperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_RVI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_RVOL( np.ndarray volume not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_RVI_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, int stddevperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_RVI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_RVI_Open(&handle, a_real.data + begidx, historylen, timeperiod, stddevperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_RVI_Open", retCode, historylen, lib.TA_RVI_Lookback(timeperiod, stddevperiod) + 1) + if self._handle is not NULL: + TA_RVI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, int stddevperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_RVI_Lookback(timeperiod, stddevperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_RVI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_RVI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, stddevperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_RVI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef RVI_Stream stream = RVI_Stream.__new__(RVI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_RVI_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_RVI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_RVI_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_RVI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_RVI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_RVI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_RVI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_RVI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_RVI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_RVI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_RVI_Clone", retCode) + cdef RVI_Stream stream = RVI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class RVOL_Stream(Stream): """ RVOL(volume[, timeperiod=?]) Relative Volume (Volume Indicators) @@ -5530,24 +18992,91 @@ def stream_RVOL( np.ndarray volume not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* volume_data - int outbegidx - int outnbelement - double outreal - volume = check_array(volume) - volume_data = volume.data - length = volume.shape[0] - outreal = NaN - retCode = lib.TA_RVOL( (length) - 1 , (length) - 1 , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_RVOL", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_RVOL_Close(self._handle) + self._handle = NULL + + def __init__(self, volume, int timeperiod=-2**31): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_RVOL_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_RVOL_Open(&handle, a_volume.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_RVOL_Open", retCode, historylen, lib.TA_RVOL_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_RVOL_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(volume, int timeperiod=-2**31): + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_RVOL_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_RVOL_Stream* handle = NULL + cdef TA_RetCode retCode = TA_RVOL_OpenAndFill(&handle, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_RVOL_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef RVOL_Stream stream = RVOL_Stream.__new__(RVOL_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((volume,), outreal) + + @cython.binding(False) + def update(self, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_RVOL_Update(self._handle, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_RVOL_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_RVOL_Peek(self._handle, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_RVOL_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_RVOL_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_RVOL_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_RVOL_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_RVOL_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_RVOL_Stream* clone = NULL + cdef TA_RetCode retCode = TA_RVOL_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_RVOL_Clone", retCode) + cdef RVOL_Stream stream = RVOL_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SAR_Stream(Stream): """ SAR(high, low[, acceleration=?, maximum=?]) Parabolic SAR (Overlap Studies) @@ -5560,27 +19089,93 @@ def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acce Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SAR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SAR_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, double acceleration=0.02, double maximum=0.2): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SAR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SAR_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, acceleration, maximum, &outreal) + if retCode != 0: + _stream_open_failed("TA_SAR_Open", retCode, historylen, lib.TA_SAR_Lookback(acceleration, maximum) + 1) + if self._handle is not NULL: + TA_SAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, double acceleration=0.02, double maximum=0.2): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SAR_Lookback(acceleration, maximum) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SAR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, acceleration, maximum, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SAR_Stream stream = SAR_Stream.__new__(SAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_SAR_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_SAR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_SAR_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_SAR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SAR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SAR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SAR_Clone", retCode) + cdef SAR_Stream stream = SAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SAREXT_Stream(Stream): """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) Parabolic SAR - Extended (Overlap Studies) @@ -5599,27 +19194,93 @@ def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double s Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SAREXT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SIN( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SAREXT_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SAREXT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SAREXT_Open(&handle, a_high.data + begidx, a_low.data + begidx, historylen, startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort, &outreal) + if retCode != 0: + _stream_open_failed("TA_SAREXT_Open", retCode, historylen, lib.TA_SAREXT_Lookback(startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort) + 1) + if self._handle is not NULL: + TA_SAREXT_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef tuple arrays = (a_high, a_low,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SAREXT_Lookback(startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SAREXT_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SAREXT_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, historylen, startvalue, offsetonreverse, accelerationinitlong, accelerationlong, accelerationmaxlong, accelerationinitshort, accelerationshort, accelerationmaxshort, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SAREXT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SAREXT_Stream stream = SAREXT_Stream.__new__(SAREXT_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low,), outreal) + + @cython.binding(False) + def update(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_SAREXT_Update(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_SAREXT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low): + cdef double outreal + cdef TA_RetCode retCode = TA_SAREXT_Peek(self._handle, high, low, &outreal) + if retCode != 0: + _ta_check_success("TA_SAREXT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SAREXT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SAREXT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SAREXT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SAREXT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SAREXT_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SAREXT_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SAREXT_Clone", retCode) + cdef SAREXT_Stream stream = SAREXT_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SIN_Stream(Stream): """ SIN(real) Vector Trigonometric Sin (Math Transform) @@ -5629,24 +19290,91 @@ def stream_SIN( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SIN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SINH( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SIN_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SIN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SIN_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_SIN_Open", retCode, historylen, lib.TA_SIN_Lookback() + 1) + if self._handle is not NULL: + TA_SIN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SIN_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SIN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SIN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SIN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SIN_Stream stream = SIN_Stream.__new__(SIN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SIN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SIN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SIN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SIN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SIN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SIN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SIN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SIN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SIN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SIN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SIN_Clone", retCode) + cdef SIN_Stream stream = SIN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SINH_Stream(Stream): """ SINH(real) Vector Trigonometric Sinh (Math Transform) @@ -5656,24 +19384,91 @@ def stream_SINH( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SINH", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SINH_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SINH_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SINH_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_SINH_Open", retCode, historylen, lib.TA_SINH_Lookback() + 1) + if self._handle is not NULL: + TA_SINH_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SINH_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SINH_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SINH_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SINH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SINH_Stream stream = SINH_Stream.__new__(SINH_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SINH_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SINH_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SINH_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SINH_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SINH_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SINH_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SINH_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SINH_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SINH_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SINH_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SINH_Clone", retCode) + cdef SINH_Stream stream = SINH_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SMA_Stream(Stream): """ SMA(real[, timeperiod=?]) Simple Moving Average (Overlap Studies) @@ -5685,24 +19480,93 @@ def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SMI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_SMA_Open", retCode, historylen, lib.TA_SMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_SMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SMA_Stream stream = SMA_Stream.__new__(SMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SMA_Clone", retCode) + cdef SMA_Stream stream = SMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +SMI_Value = namedtuple("SMI_Value", "smi smisignal", module=__name__) + +cdef class SMI_Stream(Stream): """ SMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?]) Stochastic Momentum Index (Momentum Indicators) @@ -5718,32 +19582,100 @@ def stream_SMI( np.ndarray high not None , np.ndarray low not None , np.ndarray smi smisignal """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outsmi - double outsmisignal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outsmi = NaN - outsmisignal = NaN - retCode = lib.TA_SMI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outsmi , &outsmisignal ) - _ta_check_success("TA_SMI", retCode) - return outsmi , outsmisignal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SQRT( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SMI_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SMI_Stream* handle = NULL + cdef double outsmi + cdef double outsmisignal + cdef TA_RetCode retCode = TA_SMI_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, fastperiod, slowperiod, signalperiod, &outsmi, &outsmisignal) + if retCode != 0: + _stream_open_failed("TA_SMI_Open", retCode, historylen, lib.TA_SMI_Lookback(timeperiod, fastperiod, slowperiod, signalperiod) + 1) + if self._handle is not NULL: + TA_SMI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31, int fastperiod=-2**31, int slowperiod=-2**31, int signalperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SMI_Lookback(timeperiod, fastperiod, slowperiod, signalperiod) + cdef np.ndarray outsmi = make_double_array(length, lookback) + cdef np.ndarray outsmisignal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SMI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SMI_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, fastperiod, slowperiod, signalperiod, &outbegidx, &outnbelement, outsmi.data + lookback, outsmisignal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SMI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SMI_Stream stream = SMI_Stream.__new__(SMI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, SMI_Value(_stream_like((high, low, close,), outsmi), _stream_like((high, low, close,), outsmisignal)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outsmi + cdef double outsmisignal + cdef TA_RetCode retCode = TA_SMI_Update(self._handle, high, low, close, &outsmi, &outsmisignal) + if retCode != 0: + _ta_check_success("TA_SMI_Update", retCode) + return SMI_Value(outsmi, outsmisignal) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outsmi + cdef double outsmisignal + cdef TA_RetCode retCode = TA_SMI_Peek(self._handle, high, low, close, &outsmi, &outsmisignal) + if retCode != 0: + _ta_check_success("TA_SMI_Peek", retCode) + return SMI_Value(outsmi, outsmisignal) + + @property + def value(self): + cdef double outsmi + cdef double outsmisignal + cdef TA_RetCode retCode = TA_SMI_Value(self._handle, &outsmi, &outsmisignal) + if retCode != 0: + _ta_check_success("TA_SMI_Value", retCode) + return SMI_Value(outsmi, outsmisignal) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SMI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SMI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SMI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SMI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SMI_Clone", retCode) + cdef SMI_Stream stream = SMI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SQRT_Stream(Stream): """ SQRT(real) Vector Square Root (Math Transform) @@ -5753,24 +19685,91 @@ def stream_SQRT( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SQRT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SQRT_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SQRT_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SQRT_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_SQRT_Open", retCode, historylen, lib.TA_SQRT_Lookback() + 1) + if self._handle is not NULL: + TA_SQRT_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SQRT_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SQRT_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SQRT_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SQRT_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SQRT_Stream stream = SQRT_Stream.__new__(SQRT_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SQRT_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SQRT_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SQRT_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SQRT_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SQRT_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SQRT_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SQRT_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SQRT_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SQRT_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SQRT_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SQRT_Clone", retCode) + cdef SQRT_Stream stream = SQRT_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class STDDEV_Stream(Stream): """ STDDEV(real[, timeperiod=?, nbdev=?]) Standard Deviation (Statistic Functions) @@ -5783,24 +19782,93 @@ def stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbd Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_STDDEV", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int slowk_period=-2**31 , int slowk_matype=0 , int slowd_period=-2**31 , int slowd_matype=0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_STDDEV_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_STDDEV_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_STDDEV_Open(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outreal) + if retCode != 0: + _stream_open_failed("TA_STDDEV_Open", retCode, historylen, lib.TA_STDDEV_Lookback(timeperiod, nbdev) + 1) + if self._handle is not NULL: + TA_STDDEV_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_STDDEV_Lookback(timeperiod, nbdev) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_STDDEV_Stream* handle = NULL + cdef TA_RetCode retCode = TA_STDDEV_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_STDDEV_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef STDDEV_Stream stream = STDDEV_Stream.__new__(STDDEV_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_STDDEV_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_STDDEV_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_STDDEV_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_STDDEV_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_STDDEV_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_STDDEV_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_STDDEV_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_STDDEV_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_STDDEV_Stream* clone = NULL + cdef TA_RetCode retCode = TA_STDDEV_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_STDDEV_Clone", retCode) + cdef STDDEV_Stream stream = STDDEV_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +STOCH_Value = namedtuple("STOCH_Value", "slowk slowd", module=__name__) + +cdef class STOCH_Stream(Stream): """ STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) Stochastic (Momentum Indicators) @@ -5817,32 +19885,102 @@ def stream_STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarra slowk slowd """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outslowk - double outslowd - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outslowk = NaN - outslowd = NaN - retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) - _ta_check_success("TA_STOCH", retCode) - return outslowk , outslowd - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_STOCH_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=0, int slowd_period=-2**31, int slowd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_STOCH_Stream* handle = NULL + cdef double outslowk + cdef double outslowd + cdef TA_RetCode retCode = TA_STOCH_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outslowk, &outslowd) + if retCode != 0: + _stream_open_failed("TA_STOCH_Open", retCode, historylen, lib.TA_STOCH_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + 1) + if self._handle is not NULL: + TA_STOCH_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int fastk_period=-2**31, int slowk_period=-2**31, int slowk_matype=0, int slowd_period=-2**31, int slowd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_STOCH_Lookback(fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype) + cdef np.ndarray outslowk = make_double_array(length, lookback) + cdef np.ndarray outslowd = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_STOCH_Stream* handle = NULL + cdef TA_RetCode retCode = TA_STOCH_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, slowk_period, slowk_matype, slowd_period, slowd_matype, &outbegidx, &outnbelement, outslowk.data + lookback, outslowd.data + lookback) + if retCode != 0: + _stream_open_failed("TA_STOCH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef STOCH_Stream stream = STOCH_Stream.__new__(STOCH_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, STOCH_Value(_stream_like((high, low, close,), outslowk), _stream_like((high, low, close,), outslowd)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outslowk + cdef double outslowd + cdef TA_RetCode retCode = TA_STOCH_Update(self._handle, high, low, close, &outslowk, &outslowd) + if retCode != 0: + _ta_check_success("TA_STOCH_Update", retCode) + return STOCH_Value(outslowk, outslowd) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outslowk + cdef double outslowd + cdef TA_RetCode retCode = TA_STOCH_Peek(self._handle, high, low, close, &outslowk, &outslowd) + if retCode != 0: + _ta_check_success("TA_STOCH_Peek", retCode) + return STOCH_Value(outslowk, outslowd) + + @property + def value(self): + cdef double outslowk + cdef double outslowd + cdef TA_RetCode retCode = TA_STOCH_Value(self._handle, &outslowk, &outslowd) + if retCode != 0: + _ta_check_success("TA_STOCH_Value", retCode) + return STOCH_Value(outslowk, outslowd) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_STOCH_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_STOCH_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_STOCH_Stream* clone = NULL + cdef TA_RetCode retCode = TA_STOCH_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_STOCH_Clone", retCode) + cdef STOCH_Stream stream = STOCH_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +STOCHF_Value = namedtuple("STOCHF_Value", "fastk fastd", module=__name__) + +cdef class STOCHF_Stream(Stream): """ STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?]) Stochastic Fast (Momentum Indicators) @@ -5857,32 +19995,102 @@ def stream_STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarr fastk fastd """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outfastk - double outfastd - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outfastk = NaN - outfastd = NaN - retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) - _ta_check_success("TA_STOCHF", retCode) - return outfastk , outfastd - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_STOCHF_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_STOCHF_Stream* handle = NULL + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHF_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, fastd_period, fastd_matype, &outfastk, &outfastd) + if retCode != 0: + _stream_open_failed("TA_STOCHF_Open", retCode, historylen, lib.TA_STOCHF_Lookback(fastk_period, fastd_period, fastd_matype) + 1) + if self._handle is not NULL: + TA_STOCHF_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_STOCHF_Lookback(fastk_period, fastd_period, fastd_matype) + cdef np.ndarray outfastk = make_double_array(length, lookback) + cdef np.ndarray outfastd = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_STOCHF_Stream* handle = NULL + cdef TA_RetCode retCode = TA_STOCHF_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, fastk_period, fastd_period, fastd_matype, &outbegidx, &outnbelement, outfastk.data + lookback, outfastd.data + lookback) + if retCode != 0: + _stream_open_failed("TA_STOCHF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef STOCHF_Stream stream = STOCHF_Stream.__new__(STOCHF_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, STOCHF_Value(_stream_like((high, low, close,), outfastk), _stream_like((high, low, close,), outfastd)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHF_Update(self._handle, high, low, close, &outfastk, &outfastd) + if retCode != 0: + _ta_check_success("TA_STOCHF_Update", retCode) + return STOCHF_Value(outfastk, outfastd) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHF_Peek(self._handle, high, low, close, &outfastk, &outfastd) + if retCode != 0: + _ta_check_success("TA_STOCHF_Peek", retCode) + return STOCHF_Value(outfastk, outfastd) + + @property + def value(self): + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHF_Value(self._handle, &outfastk, &outfastd) + if retCode != 0: + _ta_check_success("TA_STOCHF_Value", retCode) + return STOCHF_Value(outfastk, outfastd) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_STOCHF_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_STOCHF_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_STOCHF_Stream* clone = NULL + cdef TA_RetCode retCode = TA_STOCHF_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_STOCHF_Clone", retCode) + cdef STOCHF_Stream stream = STOCHF_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +STOCHRSI_Value = namedtuple("STOCHRSI_Value", "fastk fastd", module=__name__) + +cdef class STOCHRSI_Stream(Stream): """ STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?]) Stochastic Relative Strength Index (Momentum Indicators) @@ -5898,26 +20106,96 @@ def stream_STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fast fastk fastd """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outfastk - double outfastd - real = check_array(real) - real_data = real.data - length = real.shape[0] - outfastk = NaN - outfastd = NaN - retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) - _ta_check_success("TA_STOCHRSI", retCode) - return outfastk , outfastd - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SUB( np.ndarray real0 not None , np.ndarray real1 not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_STOCHRSI_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_STOCHRSI_Stream* handle = NULL + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHRSI_Open(&handle, a_real.data + begidx, historylen, timeperiod, fastk_period, fastd_period, fastd_matype, &outfastk, &outfastd) + if retCode != 0: + _stream_open_failed("TA_STOCHRSI_Open", retCode, historylen, lib.TA_STOCHRSI_Lookback(timeperiod, fastk_period, fastd_period, fastd_matype) + 1) + if self._handle is not NULL: + TA_STOCHRSI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, int fastk_period=-2**31, int fastd_period=-2**31, int fastd_matype=0): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_STOCHRSI_Lookback(timeperiod, fastk_period, fastd_period, fastd_matype) + cdef np.ndarray outfastk = make_double_array(length, lookback) + cdef np.ndarray outfastd = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_STOCHRSI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_STOCHRSI_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, fastk_period, fastd_period, fastd_matype, &outbegidx, &outnbelement, outfastk.data + lookback, outfastd.data + lookback) + if retCode != 0: + _stream_open_failed("TA_STOCHRSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef STOCHRSI_Stream stream = STOCHRSI_Stream.__new__(STOCHRSI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, STOCHRSI_Value(_stream_like((real,), outfastk), _stream_like((real,), outfastd)) + + @cython.binding(False) + def update(self, double real): + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHRSI_Update(self._handle, real, &outfastk, &outfastd) + if retCode != 0: + _ta_check_success("TA_STOCHRSI_Update", retCode) + return STOCHRSI_Value(outfastk, outfastd) + + @cython.binding(False) + def peek(self, double real): + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHRSI_Peek(self._handle, real, &outfastk, &outfastd) + if retCode != 0: + _ta_check_success("TA_STOCHRSI_Peek", retCode) + return STOCHRSI_Value(outfastk, outfastd) + + @property + def value(self): + cdef double outfastk + cdef double outfastd + cdef TA_RetCode retCode = TA_STOCHRSI_Value(self._handle, &outfastk, &outfastd) + if retCode != 0: + _ta_check_success("TA_STOCHRSI_Value", retCode) + return STOCHRSI_Value(outfastk, outfastd) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_STOCHRSI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_STOCHRSI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_STOCHRSI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_STOCHRSI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_STOCHRSI_Clone", retCode) + cdef STOCHRSI_Stream stream = STOCHRSI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SUB_Stream(Stream): """ SUB(real0, real1) Vector Arithmetic Subtraction (Math Operators) @@ -5928,27 +20206,93 @@ def stream_SUB( np.ndarray real0 not None , np.ndarray real1 not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SUB", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SUB_Close(self._handle) + self._handle = NULL + + def __init__(self, real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SUB_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SUB_Open(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_SUB_Open", retCode, historylen, lib.TA_SUB_Lookback() + 1) + if self._handle is not NULL: + TA_SUB_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real0, real1): + cdef np.ndarray a_real0 = _stream_input(real0) + cdef np.ndarray a_real1 = _stream_input(real1) + cdef tuple arrays = (a_real0, a_real1,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SUB_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SUB_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SUB_OpenAndFill(&handle, a_real0.data + begidx, a_real1.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SUB_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SUB_Stream stream = SUB_Stream.__new__(SUB_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real0, real1,), outreal) + + @cython.binding(False) + def update(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_SUB_Update(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_SUB_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real0, double real1): + cdef double outreal + cdef TA_RetCode retCode = TA_SUB_Peek(self._handle, real0, real1, &outreal) + if retCode != 0: + _ta_check_success("TA_SUB_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SUB_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SUB_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SUB_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SUB_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SUB_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SUB_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SUB_Clone", retCode) + cdef SUB_Stream stream = SUB_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class SUM_Stream(Stream): """ SUM(real[, timeperiod=?]) Summation (Math Operators) @@ -5960,24 +20304,93 @@ def stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SUM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 , double multiplier=3.0 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SUM_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SUM_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_SUM_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_SUM_Open", retCode, historylen, lib.TA_SUM_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_SUM_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SUM_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SUM_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SUM_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SUM_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SUM_Stream stream = SUM_Stream.__new__(SUM_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SUM_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SUM_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_SUM_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_SUM_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_SUM_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_SUM_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SUM_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SUM_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SUM_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SUM_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SUM_Clone", retCode) + cdef SUM_Stream stream = SUM_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +SUPERTREND_Value = namedtuple("SUPERTREND_Value", "real integer", module=__name__) + +cdef class SUPERTREND_Stream(Stream): """ SUPERTREND(high, low, close[, timeperiod=?, multiplier=?]) SuperTrend (Overlap Studies) @@ -5991,32 +20404,100 @@ def stream_SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.n real integer """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - int outinteger - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - outinteger = 0 - retCode = lib.TA_SUPERTREND( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , multiplier , &outbegidx , &outnbelement , &outreal , &outinteger ) - _ta_check_success("TA_SUPERTREND", retCode) - return outreal , outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_SUPERTREND_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31, double multiplier=3.0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_SUPERTREND_Stream* handle = NULL + cdef double outreal + cdef int outinteger + cdef TA_RetCode retCode = TA_SUPERTREND_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outreal, &outinteger) + if retCode != 0: + _stream_open_failed("TA_SUPERTREND_Open", retCode, historylen, lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) + 1) + if self._handle is not NULL: + TA_SUPERTREND_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31, double multiplier=3.0): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_SUPERTREND_Stream* handle = NULL + cdef TA_RetCode retCode = TA_SUPERTREND_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outbegidx, &outnbelement, outreal.data + lookback, outinteger.data + lookback) + if retCode != 0: + _stream_open_failed("TA_SUPERTREND_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(SUPERTREND_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, SUPERTREND_Value(_stream_like((high, low, close,), outreal), _stream_like((high, low, close,), outinteger)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef int outinteger + cdef TA_RetCode retCode = TA_SUPERTREND_Update(self._handle, high, low, close, &outreal, &outinteger) + if retCode != 0: + _ta_check_success("TA_SUPERTREND_Update", retCode) + return SUPERTREND_Value(outreal, outinteger) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef int outinteger + cdef TA_RetCode retCode = TA_SUPERTREND_Peek(self._handle, high, low, close, &outreal, &outinteger) + if retCode != 0: + _ta_check_success("TA_SUPERTREND_Peek", retCode) + return SUPERTREND_Value(outreal, outinteger) + + @property + def value(self): + cdef double outreal + cdef int outinteger + cdef TA_RetCode retCode = TA_SUPERTREND_Value(self._handle, &outreal, &outinteger) + if retCode != 0: + _ta_check_success("TA_SUPERTREND_Value", retCode) + return SUPERTREND_Value(outreal, outinteger) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_SUPERTREND_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_SUPERTREND_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_SUPERTREND_Stream* clone = NULL + cdef TA_RetCode retCode = TA_SUPERTREND_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_SUPERTREND_Clone", retCode) + cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class T3_Stream(Stream): """ T3(real[, timeperiod=?, vfactor=?]) Triple Exponential Moving Average (T3) (Overlap Studies) @@ -6029,24 +20510,91 @@ def stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_T3", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TAN( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_T3_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, double vfactor=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_T3_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_T3_Open(&handle, a_real.data + begidx, historylen, timeperiod, vfactor, &outreal) + if retCode != 0: + _stream_open_failed("TA_T3_Open", retCode, historylen, lib.TA_T3_Lookback(timeperiod, vfactor) + 1) + if self._handle is not NULL: + TA_T3_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double vfactor=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_T3_Lookback(timeperiod, vfactor) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_T3_Stream* handle = NULL + cdef TA_RetCode retCode = TA_T3_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, vfactor, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_T3_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef T3_Stream stream = T3_Stream.__new__(T3_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_T3_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_T3_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_T3_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_T3_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_T3_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_T3_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_T3_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_T3_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_T3_Stream* clone = NULL + cdef TA_RetCode retCode = TA_T3_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_T3_Clone", retCode) + cdef T3_Stream stream = T3_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TAN_Stream(Stream): """ TAN(real) Vector Trigonometric Tan (Math Transform) @@ -6056,24 +20604,91 @@ def stream_TAN( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TAN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TANH( np.ndarray real not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TAN_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TAN_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TAN_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_TAN_Open", retCode, historylen, lib.TA_TAN_Lookback() + 1) + if self._handle is not NULL: + TA_TAN_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TAN_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TAN_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TAN_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TAN_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TAN_Stream stream = TAN_Stream.__new__(TAN_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TAN_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TAN_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TAN_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TAN_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TAN_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TAN_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TAN_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TAN_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TAN_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TAN_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TAN_Clone", retCode) + cdef TAN_Stream stream = TAN_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TANH_Stream(Stream): """ TANH(real) Vector Trigonometric Tanh (Math Transform) @@ -6083,24 +20698,91 @@ def stream_TANH( np.ndarray real not None ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TANH", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TANH_Close(self._handle) + self._handle = NULL + + def __init__(self, real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TANH_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TANH_Open(&handle, a_real.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_TANH_Open", retCode, historylen, lib.TA_TANH_Lookback() + 1) + if self._handle is not NULL: + TA_TANH_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TANH_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TANH_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TANH_OpenAndFill(&handle, a_real.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TANH_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TANH_Stream stream = TANH_Stream.__new__(TANH_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TANH_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TANH_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TANH_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TANH_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TANH_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TANH_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TANH_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TANH_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TANH_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TANH_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TANH_Clone", retCode) + cdef TANH_Stream stream = TANH_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TEMA_Stream(Stream): """ TEMA(real[, timeperiod=?]) Triple Exponential Moving Average (Overlap Studies) @@ -6112,24 +20794,91 @@ def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TEMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TEMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TEMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TEMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_TEMA_Open", retCode, historylen, lib.TA_TEMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_TEMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TEMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TEMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TEMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TEMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TEMA_Stream stream = TEMA_Stream.__new__(TEMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TEMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TEMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TEMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TEMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TEMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TEMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TEMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TEMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TEMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TEMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TEMA_Clone", retCode) + cdef TEMA_Stream stream = TEMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TRANGE_Stream(Stream): """ TRANGE(high, low, close) True Range (Volatility Indicators) @@ -6139,30 +20888,95 @@ def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarr Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TRANGE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TRANGE_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TRANGE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TRANGE_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_TRANGE_Open", retCode, historylen, lib.TA_TRANGE_Lookback() + 1) + if self._handle is not NULL: + TA_TRANGE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TRANGE_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TRANGE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TRANGE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TRANGE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TRANGE_Stream stream = TRANGE_Stream.__new__(TRANGE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_TRANGE_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_TRANGE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_TRANGE_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_TRANGE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TRANGE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TRANGE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TRANGE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TRANGE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TRANGE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TRANGE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TRANGE_Clone", retCode) + cdef TRANGE_Stream stream = TRANGE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TRIMA_Stream(Stream): """ TRIMA(real[, timeperiod=?]) Triangular Moving Average (Overlap Studies) @@ -6174,24 +20988,91 @@ def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TRIMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TRIMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TRIMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TRIMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_TRIMA_Open", retCode, historylen, lib.TA_TRIMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_TRIMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TRIMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TRIMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TRIMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TRIMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TRIMA_Stream stream = TRIMA_Stream.__new__(TRIMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TRIMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TRIMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TRIMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TRIMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TRIMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TRIMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TRIMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TRIMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TRIMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TRIMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TRIMA_Clone", retCode) + cdef TRIMA_Stream stream = TRIMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TRIX_Stream(Stream): """ TRIX(real[, timeperiod=?]) 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators) @@ -6203,24 +21084,91 @@ def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TRIX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TRIX_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TRIX_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TRIX_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_TRIX_Open", retCode, historylen, lib.TA_TRIX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_TRIX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TRIX_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TRIX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TRIX_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TRIX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TRIX_Stream stream = TRIX_Stream.__new__(TRIX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TRIX_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TRIX_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TRIX_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TRIX_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TRIX_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TRIX_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TRIX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TRIX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TRIX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TRIX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TRIX_Clone", retCode) + cdef TRIX_Stream stream = TRIX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TSF_Stream(Stream): """ TSF(real[, timeperiod=?]) Time Series Forecast (Statistic Functions) @@ -6232,24 +21180,91 @@ def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TSF", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TSI( np.ndarray real not None , int firstperiod=-2**31 , int secondperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TSF_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TSF_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TSF_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_TSF_Open", retCode, historylen, lib.TA_TSF_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_TSF_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TSF_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TSF_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TSF_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TSF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TSF_Stream stream = TSF_Stream.__new__(TSF_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TSF_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TSF_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TSF_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TSF_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TSF_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TSF_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TSF_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TSF_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TSF_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TSF_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TSF_Clone", retCode) + cdef TSF_Stream stream = TSF_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TSI_Stream(Stream): """ TSI(real[, firstperiod=?, secondperiod=?]) True Strength Index (Momentum Indicators) @@ -6262,24 +21277,91 @@ def stream_TSI( np.ndarray real not None , int firstperiod=-2**31 , int secondpe Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TSI( (length) - 1 , (length) - 1 , real_data , firstperiod , secondperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TSI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TSI_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int firstperiod=-2**31, int secondperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TSI_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TSI_Open(&handle, a_real.data + begidx, historylen, firstperiod, secondperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_TSI_Open", retCode, historylen, lib.TA_TSI_Lookback(firstperiod, secondperiod) + 1) + if self._handle is not NULL: + TA_TSI_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int firstperiod=-2**31, int secondperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TSI_Lookback(firstperiod, secondperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TSI_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TSI_OpenAndFill(&handle, a_real.data + begidx, historylen, firstperiod, secondperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TSI_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TSI_Stream stream = TSI_Stream.__new__(TSI_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TSI_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TSI_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_TSI_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_TSI_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TSI_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TSI_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TSI_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TSI_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TSI_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TSI_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TSI_Clone", retCode) + cdef TSI_Stream stream = TSI_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class TYPPRICE_Stream(Stream): """ TYPPRICE(high, low, close) Typical Price (Price Transform) @@ -6289,30 +21371,95 @@ def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.nda Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TYPPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_TYPPRICE_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_TYPPRICE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_TYPPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_TYPPRICE_Open", retCode, historylen, lib.TA_TYPPRICE_Lookback() + 1) + if self._handle is not NULL: + TA_TYPPRICE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_TYPPRICE_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_TYPPRICE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_TYPPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_TYPPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef TYPPRICE_Stream stream = TYPPRICE_Stream.__new__(TYPPRICE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_TYPPRICE_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_TYPPRICE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_TYPPRICE_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_TYPPRICE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_TYPPRICE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_TYPPRICE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_TYPPRICE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_TYPPRICE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_TYPPRICE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_TYPPRICE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_TYPPRICE_Clone", retCode) + cdef TYPPRICE_Stream stream = TYPPRICE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ULTOSC_Stream(Stream): """ ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?]) Ultimate Oscillator (Momentum Indicators) @@ -6326,30 +21473,95 @@ def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarr Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ULTOSC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_ULTOSC_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod1=-2**31, int timeperiod2=-2**31, int timeperiod3=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ULTOSC_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ULTOSC_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod1, timeperiod2, timeperiod3, &outreal) + if retCode != 0: + _stream_open_failed("TA_ULTOSC_Open", retCode, historylen, lib.TA_ULTOSC_Lookback(timeperiod1, timeperiod2, timeperiod3) + 1) + if self._handle is not NULL: + TA_ULTOSC_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod1=-2**31, int timeperiod2=-2**31, int timeperiod3=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ULTOSC_Lookback(timeperiod1, timeperiod2, timeperiod3) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ULTOSC_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ULTOSC_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod1, timeperiod2, timeperiod3, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ULTOSC_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ULTOSC_Stream stream = ULTOSC_Stream.__new__(ULTOSC_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ULTOSC_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ULTOSC_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_ULTOSC_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_ULTOSC_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ULTOSC_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ULTOSC_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ULTOSC_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ULTOSC_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ULTOSC_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ULTOSC_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ULTOSC_Clone", retCode) + cdef ULTOSC_Stream stream = ULTOSC_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class VAR_Stream(Stream): """ VAR(real[, timeperiod=?, nbdev=?]) Variance (Statistic Functions) @@ -6362,24 +21574,91 @@ def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev= Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_VAR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_VHF( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_VAR_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_VAR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_VAR_Open(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outreal) + if retCode != 0: + _stream_open_failed("TA_VAR_Open", retCode, historylen, lib.TA_VAR_Lookback(timeperiod, nbdev) + 1) + if self._handle is not NULL: + TA_VAR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31, double nbdev=-4e37): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_VAR_Lookback(timeperiod, nbdev) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_VAR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_VAR_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, nbdev, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_VAR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef VAR_Stream stream = VAR_Stream.__new__(VAR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_VAR_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_VAR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_VAR_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_VAR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_VAR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_VAR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_VAR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_VAR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_VAR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_VAR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_VAR_Clone", retCode) + cdef VAR_Stream stream = VAR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class VHF_Stream(Stream): """ VHF(real[, timeperiod=?]) Vertical Horizontal Filter (Momentum Indicators) @@ -6391,24 +21670,93 @@ def stream_VHF( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_VHF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_VHF", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_VORTEX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_VHF_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_VHF_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_VHF_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_VHF_Open", retCode, historylen, lib.TA_VHF_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_VHF_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_VHF_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_VHF_Stream* handle = NULL + cdef TA_RetCode retCode = TA_VHF_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_VHF_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef VHF_Stream stream = VHF_Stream.__new__(VHF_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_VHF_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_VHF_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_VHF_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_VHF_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_VHF_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_VHF_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_VHF_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_VHF_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_VHF_Stream* clone = NULL + cdef TA_RetCode retCode = TA_VHF_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_VHF_Clone", retCode) + cdef VHF_Stream stream = VHF_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +VORTEX_Value = namedtuple("VORTEX_Value", "plusvi minusvi", module=__name__) + +cdef class VORTEX_Stream(Stream): """ VORTEX(high, low, close[, timeperiod=?]) Vortex Indicator (Momentum Indicators) @@ -6421,32 +21769,100 @@ def stream_VORTEX( np.ndarray high not None , np.ndarray low not None , np.ndarr plusvi minusvi """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outplusvi - double outminusvi - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outplusvi = NaN - outminusvi = NaN - retCode = lib.TA_VORTEX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outplusvi , &outminusvi ) - _ta_check_success("TA_VORTEX", retCode) - return outplusvi , outminusvi - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_VWAP( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_VORTEX_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_VORTEX_Stream* handle = NULL + cdef double outplusvi + cdef double outminusvi + cdef TA_RetCode retCode = TA_VORTEX_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outplusvi, &outminusvi) + if retCode != 0: + _stream_open_failed("TA_VORTEX_Open", retCode, historylen, lib.TA_VORTEX_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_VORTEX_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_VORTEX_Lookback(timeperiod) + cdef np.ndarray outplusvi = make_double_array(length, lookback) + cdef np.ndarray outminusvi = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_VORTEX_Stream* handle = NULL + cdef TA_RetCode retCode = TA_VORTEX_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outplusvi.data + lookback, outminusvi.data + lookback) + if retCode != 0: + _stream_open_failed("TA_VORTEX_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef VORTEX_Stream stream = VORTEX_Stream.__new__(VORTEX_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, VORTEX_Value(_stream_like((high, low, close,), outplusvi), _stream_like((high, low, close,), outminusvi)) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outplusvi + cdef double outminusvi + cdef TA_RetCode retCode = TA_VORTEX_Update(self._handle, high, low, close, &outplusvi, &outminusvi) + if retCode != 0: + _ta_check_success("TA_VORTEX_Update", retCode) + return VORTEX_Value(outplusvi, outminusvi) + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outplusvi + cdef double outminusvi + cdef TA_RetCode retCode = TA_VORTEX_Peek(self._handle, high, low, close, &outplusvi, &outminusvi) + if retCode != 0: + _ta_check_success("TA_VORTEX_Peek", retCode) + return VORTEX_Value(outplusvi, outminusvi) + + @property + def value(self): + cdef double outplusvi + cdef double outminusvi + cdef TA_RetCode retCode = TA_VORTEX_Value(self._handle, &outplusvi, &outminusvi) + if retCode != 0: + _ta_check_success("TA_VORTEX_Value", retCode) + return VORTEX_Value(outplusvi, outminusvi) + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_VORTEX_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_VORTEX_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_VORTEX_Stream* clone = NULL + cdef TA_RetCode retCode = TA_VORTEX_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_VORTEX_Clone", retCode) + cdef VORTEX_Stream stream = VORTEX_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class VWAP_Stream(Stream): """ VWAP(high, low, close, volume) Volume Weighted Average Price (Volume Indicators) @@ -6456,33 +21872,97 @@ def stream_VWAP( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_VWAP( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_VWAP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_VWMA( np.ndarray real not None , np.ndarray volume not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_VWAP_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_VWAP_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_VWAP_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_VWAP_Open", retCode, historylen, lib.TA_VWAP_Lookback() + 1) + if self._handle is not NULL: + TA_VWAP_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, volume): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_high, a_low, a_close, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_VWAP_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_VWAP_Stream* handle = NULL + cdef TA_RetCode retCode = TA_VWAP_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, a_volume.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_VWAP_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef VWAP_Stream stream = VWAP_Stream.__new__(VWAP_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close, volume,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_VWAP_Update(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_VWAP_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_VWAP_Peek(self._handle, high, low, close, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_VWAP_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_VWAP_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_VWAP_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_VWAP_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_VWAP_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_VWAP_Stream* clone = NULL + cdef TA_RetCode retCode = TA_VWAP_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_VWAP_Clone", retCode) + cdef VWAP_Stream stream = VWAP_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class VWMA_Stream(Stream): """ VWMA(real, volume[, timeperiod=?]) Volume Weighted Moving Average (Overlap Studies) @@ -6495,27 +21975,93 @@ def stream_VWMA( np.ndarray real not None , np.ndarray volume not None , int tim Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - double* volume_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - volume = check_array(volume) - volume_data = volume.data - length = check_length2(real, volume) - outreal = NaN - retCode = lib.TA_VWMA( (length) - 1 , (length) - 1 , real_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_VWMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_WAD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_VWMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, volume, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_real, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_VWMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_VWMA_Open(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_VWMA_Open", retCode, historylen, lib.TA_VWMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_VWMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, volume, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef np.ndarray a_volume = _stream_input(volume) + cdef tuple arrays = (a_real, a_volume,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_VWMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_VWMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_VWMA_OpenAndFill(&handle, a_real.data + begidx, a_volume.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_VWMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef VWMA_Stream stream = VWMA_Stream.__new__(VWMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real, volume,), outreal) + + @cython.binding(False) + def update(self, double real, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_VWMA_Update(self._handle, real, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_VWMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real, double volume): + cdef double outreal + cdef TA_RetCode retCode = TA_VWMA_Peek(self._handle, real, volume, &outreal) + if retCode != 0: + _ta_check_success("TA_VWMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_VWMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_VWMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_VWMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_VWMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_VWMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_VWMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_VWMA_Clone", retCode) + cdef VWMA_Stream stream = VWMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class WAD_Stream(Stream): """ WAD(high, low, close) Williams' Accumulation/Distribution (Momentum Indicators) @@ -6525,30 +22071,95 @@ def stream_WAD( np.ndarray high not None , np.ndarray low not None , np.ndarray Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_WAD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_WAD", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_WAD_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_WAD_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_WAD_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_WAD_Open", retCode, historylen, lib.TA_WAD_Lookback() + 1) + if self._handle is not NULL: + TA_WAD_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_WAD_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_WAD_Stream* handle = NULL + cdef TA_RetCode retCode = TA_WAD_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_WAD_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef WAD_Stream stream = WAD_Stream.__new__(WAD_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_WAD_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_WAD_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_WAD_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_WAD_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_WAD_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_WAD_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_WAD_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_WAD_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_WAD_Stream* clone = NULL + cdef TA_RetCode retCode = TA_WAD_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_WAD_Clone", retCode) + cdef WAD_Stream stream = WAD_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class WCLPRICE_Stream(Stream): """ WCLPRICE(high, low, close) Weighted Close Price (Price Transform) @@ -6558,30 +22169,95 @@ def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.nda Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_WCLPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_WCLPRICE_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_WCLPRICE_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_WCLPRICE_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outreal) + if retCode != 0: + _stream_open_failed("TA_WCLPRICE_Open", retCode, historylen, lib.TA_WCLPRICE_Lookback() + 1) + if self._handle is not NULL: + TA_WCLPRICE_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_WCLPRICE_Lookback() + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_WCLPRICE_Stream* handle = NULL + cdef TA_RetCode retCode = TA_WCLPRICE_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_WCLPRICE_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef WCLPRICE_Stream stream = WCLPRICE_Stream.__new__(WCLPRICE_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_WCLPRICE_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_WCLPRICE_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_WCLPRICE_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_WCLPRICE_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_WCLPRICE_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_WCLPRICE_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_WCLPRICE_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_WCLPRICE_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_WCLPRICE_Stream* clone = NULL + cdef TA_RetCode retCode = TA_WCLPRICE_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_WCLPRICE_Clone", retCode) + cdef WCLPRICE_Stream stream = WCLPRICE_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class WILLR_Stream(Stream): """ WILLR(high, low, close[, timeperiod=?]) Williams' %R (Momentum Indicators) @@ -6593,30 +22269,95 @@ def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarra Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_WILLR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_WILLR_Close(self._handle) + self._handle = NULL + + def __init__(self, high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_WILLR_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_WILLR_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_WILLR_Open", retCode, historylen, lib.TA_WILLR_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_WILLR_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(high, low, close, int timeperiod=-2**31): + cdef np.ndarray a_high = _stream_input(high) + cdef np.ndarray a_low = _stream_input(low) + cdef np.ndarray a_close = _stream_input(close) + cdef tuple arrays = (a_high, a_low, a_close,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_WILLR_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_WILLR_Stream* handle = NULL + cdef TA_RetCode retCode = TA_WILLR_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_WILLR_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef WILLR_Stream stream = WILLR_Stream.__new__(WILLR_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((high, low, close,), outreal) + + @cython.binding(False) + def update(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_WILLR_Update(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_WILLR_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double high, double low, double close): + cdef double outreal + cdef TA_RetCode retCode = TA_WILLR_Peek(self._handle, high, low, close, &outreal) + if retCode != 0: + _ta_check_success("TA_WILLR_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_WILLR_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_WILLR_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_WILLR_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_WILLR_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_WILLR_Stream* clone = NULL + cdef TA_RetCode retCode = TA_WILLR_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_WILLR_Clone", retCode) + cdef WILLR_Stream stream = WILLR_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class WMA_Stream(Stream): """ WMA(real[, timeperiod=?]) Weighted Moving Average (Overlap Studies) @@ -6628,24 +22369,91 @@ def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_WMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ZLEMA( np.ndarray real not None , int timeperiod=-2**31 ): + + def __dealloc__(self): + if self._handle is not NULL: + TA_WMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_WMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_WMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_WMA_Open", retCode, historylen, lib.TA_WMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_WMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_WMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_WMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_WMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_WMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef WMA_Stream stream = WMA_Stream.__new__(WMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_WMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_WMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_WMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_WMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_WMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_WMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_WMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_WMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_WMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_WMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_WMA_Clone", retCode) + cdef WMA_Stream stream = WMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream + + +cdef class ZLEMA_Stream(Stream): """ ZLEMA(real[, timeperiod=?]) Zero-Lag Exponential Moving Average (Overlap Studies) @@ -6657,18 +22465,86 @@ def stream_ZLEMA( np.ndarray real not None , int timeperiod=-2**31 ): Outputs: real """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ZLEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ZLEMA", retCode) - return outreal + + def __dealloc__(self): + if self._handle is not NULL: + TA_ZLEMA_Close(self._handle) + self._handle = NULL + + def __init__(self, real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef TA_ZLEMA_Stream* handle = NULL + cdef double outreal + cdef TA_RetCode retCode = TA_ZLEMA_Open(&handle, a_real.data + begidx, historylen, timeperiod, &outreal) + if retCode != 0: + _stream_open_failed("TA_ZLEMA_Open", retCode, historylen, lib.TA_ZLEMA_Lookback(timeperiod) + 1) + if self._handle is not NULL: + TA_ZLEMA_Close(self._handle) + self._handle = handle + self._begidx = begidx + + @staticmethod + def open_and_fill(real, int timeperiod=-2**31): + cdef np.ndarray a_real = _stream_input(real) + cdef tuple arrays = (a_real,) + cdef np.npy_intp length = check_length(arrays) + cdef int begidx = check_begidx(length, arrays) + cdef int historylen = _stream_history(length, begidx) + cdef int lookback = begidx + lib.TA_ZLEMA_Lookback(timeperiod) + cdef np.ndarray outreal = make_double_array(length, lookback) + cdef int outbegidx + cdef int outnbelement + cdef TA_ZLEMA_Stream* handle = NULL + cdef TA_RetCode retCode = TA_ZLEMA_OpenAndFill(&handle, a_real.data + begidx, historylen, timeperiod, &outbegidx, &outnbelement, outreal.data + lookback) + if retCode != 0: + _stream_open_failed("TA_ZLEMA_OpenAndFill", retCode, historylen, lookback - begidx + 1) + cdef ZLEMA_Stream stream = ZLEMA_Stream.__new__(ZLEMA_Stream) + stream._handle = handle + stream._begidx = begidx + return stream, _stream_like((real,), outreal) + + @cython.binding(False) + def update(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ZLEMA_Update(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ZLEMA_Update", retCode) + return outreal + + @cython.binding(False) + def peek(self, double real): + cdef double outreal + cdef TA_RetCode retCode = TA_ZLEMA_Peek(self._handle, real, &outreal) + if retCode != 0: + _ta_check_success("TA_ZLEMA_Peek", retCode) + return outreal + + @property + def value(self): + cdef double outreal + cdef TA_RetCode retCode = TA_ZLEMA_Value(self._handle, &outreal) + if retCode != 0: + _ta_check_success("TA_ZLEMA_Value", retCode) + return outreal + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_ZLEMA_OutRange(self._handle, outbegidx, outnbelement) + + cdef TA_RetCode _advance(self): + return TA_ZLEMA_Advance(self._handle) + + @cython.binding(False) + def copy(self): + cdef TA_ZLEMA_Stream* clone = NULL + cdef TA_RetCode retCode = TA_ZLEMA_Clone(self._handle, &clone) + if retCode != 0: + _ta_check_success("TA_ZLEMA_Clone", retCode) + cdef ZLEMA_Stream stream = ZLEMA_Stream.__new__(type(self)) + stream._handle = clone + stream._begidx = self._begidx + return stream diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index 15a54f9e3..20127a106 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -1519,9 +1519,9 @@ static const char* const __pyx_f[] = { "talib/_ta_lib.pyx", "talib/_common.pxi", "talib/_abstract.pxi", + "talib/_stream.pxi", ".venv/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd", "talib/_func.pxi", - "talib/_stream.pxi", ".venv/lib/python3.12/site-packages/Cython/Includes/cpython/type.pxd", }; /* #### Code section: utility_code_proto_before_types ### */ @@ -1691,7 +1691,7 @@ static const char* const __pyx_f[] = { #define __Pyx_END_CRITICAL_SECTION Py_END_CRITICAL_SECTION #endif -/* IncludeStructmemberH.proto (used by CythonFunctionShared) */ +/* IncludeStructmemberH.proto */ #include /* #### Code section: numeric_typedefs ### */ @@ -1769,5156 +1769,225777 @@ static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_fro /* #### Code section: type_declarations ### */ /*--- Type declarations ---*/ +struct __pyx_obj_5talib_7_ta_lib_Stream; +struct __pyx_obj_5talib_7_ta_lib_AC_Stream; +struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream; +struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream; +struct __pyx_obj_5talib_7_ta_lib_AD_Stream; +struct __pyx_obj_5talib_7_ta_lib_ADD_Stream; +struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream; +struct __pyx_obj_5talib_7_ta_lib_ADR_Stream; +struct __pyx_obj_5talib_7_ta_lib_ADX_Stream; +struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream; +struct __pyx_obj_5talib_7_ta_lib_AO_Stream; +struct __pyx_obj_5talib_7_ta_lib_APO_Stream; +struct __pyx_obj_5talib_7_ta_lib_AROON_Stream; +struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream; +struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream; +struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream; +struct __pyx_obj_5talib_7_ta_lib_ATR_Stream; +struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream; +struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream; +struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream; +struct __pyx_obj_5talib_7_ta_lib_BETA_Stream; +struct __pyx_obj_5talib_7_ta_lib_BOP_Stream; +struct __pyx_obj_5talib_7_ta_lib_CCI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; +struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream; +struct __pyx_obj_5talib_7_ta_lib_CMF_Stream; +struct __pyx_obj_5talib_7_ta_lib_CMO_Stream; +struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream; +struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream; +struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream; +struct __pyx_obj_5talib_7_ta_lib_COS_Stream; +struct __pyx_obj_5talib_7_ta_lib_COSH_Stream; +struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream; +struct __pyx_obj_5talib_7_ta_lib_CVI_Stream; +struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_DIV_Stream; +struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream; +struct __pyx_obj_5talib_7_ta_lib_DPO_Stream; +struct __pyx_obj_5talib_7_ta_lib_DX_Stream; +struct __pyx_obj_5talib_7_ta_lib_EFI_Stream; +struct __pyx_obj_5talib_7_ta_lib_EMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_ER_Stream; +struct __pyx_obj_5talib_7_ta_lib_ERI_Stream; +struct __pyx_obj_5talib_7_ta_lib_EXP_Stream; +struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream; +struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream; +struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream; +struct __pyx_obj_5talib_7_ta_lib_HA_Stream; +struct __pyx_obj_5talib_7_ta_lib_HMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream; +struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream; +struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream; +struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream; +struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream; +struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream; +struct __pyx_obj_5talib_7_ta_lib_IMI_Stream; +struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_KC_Stream; +struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream; +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream; +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; +struct __pyx_obj_5talib_7_ta_lib_LN_Stream; +struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream; +struct __pyx_obj_5talib_7_ta_lib_MA_Stream; +struct __pyx_obj_5talib_7_ta_lib_MACD_Stream; +struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream; +struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream; +struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream; +struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream; +struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream; +struct __pyx_obj_5talib_7_ta_lib_MAX_Stream; +struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream; +struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream; +struct __pyx_obj_5talib_7_ta_lib_MFI_Stream; +struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream; +struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream; +struct __pyx_obj_5talib_7_ta_lib_MIN_Stream; +struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream; +struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream; +struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream; +struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream; +struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream; +struct __pyx_obj_5talib_7_ta_lib_MOM_Stream; +struct __pyx_obj_5talib_7_ta_lib_MULT_Stream; +struct __pyx_obj_5talib_7_ta_lib_NATR_Stream; +struct __pyx_obj_5talib_7_ta_lib_NVI_Stream; +struct __pyx_obj_5talib_7_ta_lib_OBV_Stream; +struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream; +struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream; +struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream; +struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream; +struct __pyx_obj_5talib_7_ta_lib_PPO_Stream; +struct __pyx_obj_5talib_7_ta_lib_PVI_Stream; +struct __pyx_obj_5talib_7_ta_lib_PVO_Stream; +struct __pyx_obj_5talib_7_ta_lib_PVT_Stream; +struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream; +struct __pyx_obj_5talib_7_ta_lib_RMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_ROC_Stream; +struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream; +struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream; +struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream; +struct __pyx_obj_5talib_7_ta_lib_RSI_Stream; +struct __pyx_obj_5talib_7_ta_lib_RVI_Stream; +struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream; +struct __pyx_obj_5talib_7_ta_lib_SAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream; +struct __pyx_obj_5talib_7_ta_lib_SIN_Stream; +struct __pyx_obj_5talib_7_ta_lib_SINH_Stream; +struct __pyx_obj_5talib_7_ta_lib_SMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_SMI_Stream; +struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream; +struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream; +struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream; +struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream; +struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream; +struct __pyx_obj_5talib_7_ta_lib_SUB_Stream; +struct __pyx_obj_5talib_7_ta_lib_SUM_Stream; +struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream; +struct __pyx_obj_5talib_7_ta_lib_T3_Stream; +struct __pyx_obj_5talib_7_ta_lib_TAN_Stream; +struct __pyx_obj_5talib_7_ta_lib_TANH_Stream; +struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream; +struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream; +struct __pyx_obj_5talib_7_ta_lib_TSF_Stream; +struct __pyx_obj_5talib_7_ta_lib_TSI_Stream; +struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream; +struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream; +struct __pyx_obj_5talib_7_ta_lib_VAR_Stream; +struct __pyx_obj_5talib_7_ta_lib_VHF_Stream; +struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream; +struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream; +struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_WAD_Stream; +struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream; +struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream; +struct __pyx_obj_5talib_7_ta_lib_WMA_Stream; +struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream; typedef int (*__pyx_t_5numpy_NpyIter_IterNextFunc)(NpyIter *); typedef void (*__pyx_t_5numpy_NpyIter_GetMultiIndexFunc)(NpyIter *, npy_intp *); -/* #### Code section: utility_code_proto ### */ -/* --- Runtime support code (head) --- */ -/* Refnanny.proto */ -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, Py_ssize_t); - void (*DECREF)(void*, PyObject*, Py_ssize_t); - void (*GOTREF)(void*, PyObject*, Py_ssize_t); - void (*GIVEREF)(void*, PyObject*, Py_ssize_t); - void* (*SetupContext)(const char*, Py_ssize_t, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - if (acquire_gil) {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ - PyGILState_Release(__pyx_gilstate_save);\ - } else {\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ - } - #define __Pyx_RefNannyFinishContextNogil() {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __Pyx_RefNannyFinishContext();\ - PyGILState_Release(__pyx_gilstate_save);\ - } - #define __Pyx_RefNannyFinishContextNogil() {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __Pyx_RefNannyFinishContext();\ - PyGILState_Release(__pyx_gilstate_save);\ - } - #define __Pyx_RefNannyFinishContext()\ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContextNogil() - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif -#define __Pyx_Py_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; Py_XDECREF(tmp);\ - } while (0) -#define __Pyx_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_XDECREF(tmp);\ - } while (0) -#define __Pyx_DECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_DECREF(tmp);\ - } while (0) -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) +struct __pyx_obj_5talib_7_ta_lib_Stream { + PyObject_HEAD + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *__pyx_vtab; + void *_handle; + int _begidx; + PyObject *__weakref__; +}; -/* FastTypeChecks.proto (used by GivenExceptionMatches) */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2) -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b); -#define __Pyx_PyAnySet_Check(obj) __Pyx_TypeCheck2(obj, &PySet_Type, &PyFrozenSet_Type) -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2)) -#define __Pyx_PyAnySet_Check(obj) PyAnySet_Check(obj) -#endif -/* PyThreadStateGet.proto (used by PyErrFetchRestore) */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#if PY_VERSION_HEX >= 0x030C00A6 -#define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL) -#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL) -#else -#define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL) -#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type) -#endif -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL) -#define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred() -#endif +struct __pyx_obj_5talib_7_ta_lib_AC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyErrFetchRestore.proto (used by GivenExceptionMatches) */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6 -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif -/* GivenExceptionMatches.proto (used by PyErrExceptionMatches) */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); -#else -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) { - return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2); -} -#endif -#define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2) +struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyErrExceptionMatches.proto (used by PyObjectGetAttrStrNoError) */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) -static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); -#else -#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) -#endif -/* PyObjectGetAttrStr.proto (used by PyObjectGetAttrStrNoError) */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif +struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); +struct __pyx_obj_5talib_7_ta_lib_AD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* GetTopmostException.proto (used by SaveResetException) */ -#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE -static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -#endif -/* SaveResetException.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -#else -#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) -#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) -#endif +struct __pyx_obj_5talib_7_ta_lib_ADD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyException_Check.proto */ -#define __Pyx_PyExc_Exception_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) -/* GetException.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) -static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#else -static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); -#endif +struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyImportError_Check.proto */ -#define __Pyx_PyExc_ImportError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ImportError) -/* PyObjectCall.proto (used by PyObjectFastCall) */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif +struct __pyx_obj_5talib_7_ta_lib_ADR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectCallMethO.proto (used by PyObjectFastCall) */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); -#endif -/* PyObjectFastCall.proto */ -#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL) -static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargsf, PyObject *kwargs); +struct __pyx_obj_5talib_7_ta_lib_ADX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* RaiseException.export */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); -/* PyUnicode_Unicode.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj); +struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* BuildPyUnicode.proto (used by COrdinalToPyUnicode) */ -static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength, - int prepend_sign, char padding_char); -/* COrdinalToPyUnicode.proto (used by CIntToPyUnicode) */ -static CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value); -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t width, char padding_char); +struct __pyx_obj_5talib_7_ta_lib_AO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* GCCDiagnostics.proto (used by CIntToPyUnicode) */ -#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -#define __Pyx_HAS_GCC_DIAGNOSTIC -#endif -/* IncludeStdlibH.proto (used by CIntToPyUnicode) */ -#include +struct __pyx_obj_5talib_7_ta_lib_APO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* IncludeStringH.proto (used by CIntToPyUnicode) */ -#include -/* CIntToPyUnicode.proto */ -#define __Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char, format_char) (\ - ((format_char) == ('c')) ?\ - __Pyx_uchar___Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char) :\ - __Pyx____Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char, format_char)\ - ) -static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char); -static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char, char format_char); +struct __pyx_obj_5talib_7_ta_lib_AROON_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* JoinPyUnicode.proto */ -#define __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH\ - (!CYTHON_COMPILING_IN_GRAAL && !CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) -/* JoinPyUnicode.export */ -static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength, int kind); +struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CopyObjectArray.proto (used by TupleOrListFromArrayImpl) */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length); -#endif -/* TupleOrListFromArrayImpl.proto (used by TupleFromArray) */ -#if PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API -#define __Pyx_PyTuple_FromArray(src, n) PyTuple_FromArray(src, ((n)<0) ? 0 : (n)) -#else -CYTHON_UNUSED static PyObject * -__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n); -#endif +struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* TupleFromArray.proto (used by fastcall) */ +struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectCompare.proto (used by UnicodeEquals) */ -static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop); -/* UnicodeEquals.proto (used by fastcall) */ -#define __Pyx_PyUnicode_Equals(s1, s2) __Pyx_PyObject_CompareBoolEq_str_str(s1, s2, Py_EQ) +struct __pyx_obj_5talib_7_ta_lib_ATR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* fastcall.proto */ -#if CYTHON_AVOID_BORROWED_REFS - #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i) -#elif CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i)) -#else - #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i)) -#endif -#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds) -#define __Pyx_KwValues_VARARGS(args, nargs) NULL -#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s) -#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw) -#if CYTHON_VECTORCALL - #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i]) - #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds) - #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs)) - static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL - CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues); - #else - #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw) - #endif -#else - #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS - #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS - #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS - #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS - #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS -#endif -#if CYTHON_VECTORCALL_TPNEW - #if !CYTHON_VECTORCALL - #error Enabling CYTHON_VECTORCALL_TPNEW without CYTHON_VECTORCALL is not supported - #endif - #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_FASTCALL - #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_FASTCALL - #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_FASTCALL - #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_FASTCALL - #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_FASTCALL -#else - #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_VARARGS - #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_VARARGS - #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_VARARGS - #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_VARARGS - #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_VARARGS -#endif -#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop) -#if CYTHON_VECTORCALL -#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start) -#else -#define __Pyx_ArgsSlice_FASTCALL __Pyx_ArgsSlice_VARARGS -#endif -/* py_dict_items.proto (used by OwnedDictNext) */ -#define __Pyx_PyDict_items_TypePtr (&PyDictKeys_Type) -#define __Pyx_PyDict_items_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictItems_TypePtr) -#define __Pyx_PyDict_items_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictItems_TypePtr) -static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); +struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CallCFunction.proto (used by CallUnboundCMethod0) */ -#define __Pyx_CallCFunction(cfunc, self, args)\ - ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args) -#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\ - ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs) -#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\ - ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs) -#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\ - ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames) -/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); +struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* UnpackUnboundCMethod_decl.proto (used by UnpackUnboundCMethod) */ -typedef struct { - PyObject *type; - PyObject **method_name; - PyCFunction func; - PyObject *method; - int flag; -#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS - __pyx_atomic_int_type initialized; -#endif -} __Pyx_CachedCFunction; -/* IgnoreException.proto (used by UnpackUnboundCMethod_impl) */ -static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception); -#define __Pyx_IgnoreException(ignorable_exception) __Pyx_IgnoreGivenException(NULL, ignorable_exception) +struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* UnpackUnboundCMethod_impl.export */ -static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target); -/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */ -#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING -static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) { -#if !CYTHON_ATOMICS - return 1; -#else - __pyx_nonatomic_int_type expected = 0; - if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) { - return 0; - } - return expected; -#endif -} -static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) { -#if CYTHON_ATOMICS - __pyx_atomic_store(&cfunc->initialized, 2); -#endif -} -#else -#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2 -#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc) -#endif +struct __pyx_obj_5talib_7_ta_lib_BETA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CallUnboundCMethod0.proto */ -CYTHON_UNUSED -static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); -#else -#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) -#endif -/* py_dict_values.proto (used by OwnedDictNext) */ -#define __Pyx_PyDict_values_TypePtr (&PyDictKeys_Type) -#define __Pyx_PyDict_values_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictValues_TypePtr) -#define __Pyx_PyDict_values_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictValues_TypePtr) -static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d); +struct __pyx_obj_5talib_7_ta_lib_BOP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* OwnedDictNext.proto (used by ParseKeywordsImpl) */ -#if CYTHON_AVOID_BORROWED_REFS -static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue); -#else -CYTHON_INLINE -static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue); -#endif -/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */ -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); +struct __pyx_obj_5talib_7_ta_lib_CCI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* ParseKeywordsImpl.export */ -static int __Pyx_ParseKeywordsTuple( - PyObject *kwds, - PyObject * const *kwvalues, - PyObject ** const argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - Py_ssize_t num_kwargs, - const char* function_name, - int ignore_unknown_kwargs -); -static int __Pyx_ParseKeywordDictToDict( - PyObject *kwds, - PyObject ** const argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name -); -static int __Pyx_ParseKeywordDict( - PyObject *kwds, - PyObject ** const argnames[], - PyObject *values[], - Py_ssize_t num_pos_args, - Py_ssize_t num_kwargs, - const char* function_name, - int ignore_unknown_kwargs -); -/* CallUnboundCMethod2.proto */ -CYTHON_UNUSED -static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2); -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2); -#else -#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* ParseKeywords.proto */ -static CYTHON_INLINE int __Pyx_ParseKeywords( - PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[], - PyObject *kwds2, PyObject *values[], - Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, - const char* function_name, - int ignore_unknown_kwargs -); -/* RaiseArgTupleInvalid.export */ -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); +struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* ArgTypeTestError.export */ -static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact); -/* ArgTypeTest.proto */ -static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact); +struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyDictVersioning.proto (used by GetModuleGlobalName) */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) -#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ - (version_var) = __PYX_GET_DICT_VERSION(dict);\ - (cache_var) = (value); -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ - (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\ - } else {\ - (VAR) = __pyx_dict_cached_value = (LOOKUP);\ - __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ - }\ -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); -#else -#define __PYX_GET_DICT_VERSION(dict) (0) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); -#endif -/* GetModuleGlobalName.proto */ -#if CYTHON_USE_DICT_VERSIONS -#define __Pyx_GetModuleGlobalName(var, name) do {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\ - (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ - __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} while(0) -#define __Pyx_GetModuleGlobalNameUncached(var, name) do {\ - PY_UINT64_T __pyx_dict_version;\ - PyObject *__pyx_dict_cached_value;\ - (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} while(0) -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); -#else -#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) -#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); -#endif +struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */ -#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000 -#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL) -#else -#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n) -#endif -/* PyObjectSetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) -static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); -#else -#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_DelAttr(o,n) -#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyFrozenDict.proto (used by GetItemInt) */ -#if CYTHON_COMPILING_IN_LIMITED_API -#define __Pyx_PyFrozenDict_TypePtr ((PyTypeObject*) __pyx_mstate_global->__Pyx_PyFrozenDictType) -#define __Pyx_PyFrozenDict_New(it) __Pyx__PyFrozenDict_New(__pyx_mstate_global->__Pyx_PyFrozenDictType, it) -static CYTHON_INLINE PyObject* __Pyx__PyFrozenDict_New(PyObject* frozendict_type, PyObject* it); -#define __Pyx_PyFrozenDict_NewEmpty() __Pyx_PyFrozenDict_New(NULL) -#define __Pyx_PyFrozenDict_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyFrozenDict_TypePtr) -#define __Pyx_PyFrozenDict_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyFrozenDict_TypePtr) -#define __Pyx_PyAnyDict_Check(obj) __Pyx__PyAnyDict_Check(obj, __Pyx_PyFrozenDict_TypePtr) -static CYTHON_INLINE int __Pyx__PyAnyDict_Check(PyObject *obj, PyTypeObject* frozendict_type) { - return PyObject_TypeCheck(obj, &PyDict_Type) || PyObject_TypeCheck(obj, frozendict_type); -} -#define __Pyx_PyAnyDict_CheckExact(obj) __Pyx__PyAnyDict_CheckExact(obj, __Pyx_PyFrozenDict_TypePtr) -static CYTHON_INLINE int __Pyx__PyAnyDict_CheckExact(PyObject *obj, PyTypeObject* frozendict_type) { - return Py_IS_TYPE(obj, &PyDict_Type) || Py_IS_TYPE(obj, frozendict_type); -} -#elif PY_VERSION_HEX >= 0x030f00a6 ||\ - (defined(PyFrozenDict_Check) && defined(PyAnyDict_Check) && defined(PyFrozenDict_New)) -#define __Pyx_PyFrozenDict_TypePtr (&PyFrozenDict_Type) -#define __Pyx_PyFrozenDict_New(it) PyFrozenDict_New(it) -#define __Pyx_PyFrozenDict_NewEmpty() PyFrozenDict_New(NULL) -#define __Pyx_PyFrozenDict_Check(obj) PyFrozenDict_Check(obj) -#define __Pyx_PyFrozenDict_CheckExact(obj) PyFrozenDict_CheckExact(obj) -#define __Pyx_PyAnyDict_Check(obj) PyAnyDict_Check(obj) -#define __Pyx_PyAnyDict_CheckExact(obj) PyAnyDict_CheckExact(obj) -#else -#define __Pyx_PyFrozenDict_TypePtr (&PyDict_Type) -static CYTHON_INLINE PyObject* __Pyx_PyFrozenDict_New(PyObject* it) { - if (!it) { - return PyDict_New(); - } else if (PyDict_Check(it)) { - return PyDict_Copy(it); - } else { - PyObject *dict = PyDict_New(); - if (!dict) return NULL; - PyObject *result = PyNumber_InPlaceOr(dict, it); - Py_DECREF(dict); - return result; - } -} -#define __Pyx_PyFrozenDict_NewEmpty() PyDict_New() -#define __Pyx_PyFrozenDict_Check(obj) PyDict_Check(obj) -#define __Pyx_PyFrozenDict_CheckExact(obj) PyDict_CheckExact(obj) -#define __Pyx_PyAnyDict_Check(obj) PyDict_Check(obj) -#define __Pyx_PyAnyDict_CheckExact(obj) PyDict_CheckExact(obj) -#endif -/* GetItemInt.proto */ -#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ - __Pyx_GetItemInt_Generic(o, to_py_func(i))) -#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ - (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck, int unsafe_shared); -#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ - (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck, int unsafe_shared); -static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck, int unsafe_shared); +struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* FormatTypeName.proto (used by RaiseErrorWithObjectType) */ -#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030d0000 -typedef PyObject *__Pyx_TypeName; -#define __Pyx_FMT_TYPENAME "%N" -#define __Pyx_PyType_GetFullyQualifiedName(tp) Py_NewRef((PyObject*)tp) -#define __Pyx_DECREF_TypeName(obj) Py_DECREF(obj) -#elif CYTHON_COMPILING_IN_LIMITED_API -typedef PyObject *__Pyx_TypeName; -#define __Pyx_FMT_TYPENAME "%U" -#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj) -static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp); -#else // !LIMITED_API -typedef const char *__Pyx_TypeName; -#define __Pyx_FMT_TYPENAME "%.200s" -#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name) -#define __Pyx_DECREF_TypeName(obj) -#endif -/* RaiseErrorWithObjectType.proto (used by ObjectGetItem) */ -#define __Pyx_RaiseTypeErrorWithObjectType(message, obj) __Pyx_RaiseErrorWithObjectType(PyExc_TypeError, message, obj) -#define __Pyx_RaiseErrorWithObjectType(exc_type, message, obj) __Pyx_RaiseErrorWithType(exc_type, message, Py_TYPE(obj)) -CYTHON_UNUSED -static void __Pyx_RaiseErrorWithType(PyObject* exc_type, const char* message, PyTypeObject *type_obj); +struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* ObjectGetItem.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key); -#else -#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) -#endif -/* PySequenceContains.proto */ -static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { - int result = PySequence_Contains(seq, item); - return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); -} +struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectFormatAndDecref.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f); -static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f); -/* PyDeprecationWarning_Check.proto */ -#define __Pyx_PyExc_DeprecationWarning_Check(obj) __Pyx_TypeCheck(obj, PyExc_DeprecationWarning) +struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectVectorcallKwds.proto */ -#if CYTHON_VECTORCALL -#define __Pyx_Object_VectorcallKwds PyObject_Vectorcall -CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i); -#else -#define __Pyx_Object_VectorcallKwds __Pyx_PyObject_FastCallDict -CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n); -CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i); -#endif -/* PyObjectFastCallMethod.proto */ -#if CYTHON_VECTORCALL -#define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL) -#else -static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf); -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* HasAttr.proto */ -#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 -#define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n) -#else -static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); -#endif -/* PyRange_Check.proto */ -#if CYTHON_COMPILING_IN_PYPY && !defined(PyRange_Check) - #define PyRange_Check(obj) __Pyx_TypeCheck((obj), &PyRange_Type) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* DictGetItem.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); -#define __Pyx_PyObject_Dict_GetItem(obj, name)\ - (likely(__Pyx_PyAnyDict_CheckExact(obj)) ?\ - __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) -#else -#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) -#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) -#endif -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); +struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); -/* IterFinish.proto */ -static CYTHON_INLINE int __Pyx_IterFinish(void); +struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* UnpackItemEndCheck.proto */ -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); -/* ListAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE -static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x); -#else -#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectCallMethod0.proto (used by dict_iter_common) */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); -/* RaiseNoneIterError.proto (used by UnpackTupleError) */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); +struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* UnpackTupleError.proto (used by UnpackTuple2) */ -static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); -/* UnpackTuple2.proto (used by dict_iter_common) */ -static CYTHON_INLINE int __Pyx_unpack_tuple2( - PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple); -static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( - PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); -static int __Pyx_unpack_tuple2_generic( - PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); +struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* dict_iter_common.proto (used by dict_iter) */ -static PyObject *__Pyx_dict_call_to_get_iterable(PyObject* iterable, PyObject* method_name); -static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, - PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); -/* dict_iter.proto */ -static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, - Py_ssize_t* p_orig_length, int* p_is_dict); +struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectCompare.proto */ -static CYTHON_INLINE int __Pyx_PyObject_CompareBoolGt_int_int(PyObject *op1, PyObject *op2, int pyop); -/* PyLongBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); -#else -#define __Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ - (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* RaiseErrorWithObjectTypes.proto (used by PyNumberBinop) */ -#define __Pyx_RaiseErrorWithObjectTypes1(exc_type, message, arg, obj1, obj2) __Pyx_RaiseErrorWithTypes1(exc_type, message, arg, Py_TYPE(obj1), Py_TYPE(obj2)) -#define __Pyx_RaiseTypeErrorWithObjectTypes(message, obj1, obj2) __Pyx_RaiseTypeErrorWithTypes(message, Py_TYPE(obj1), Py_TYPE(obj2)) -#define __Pyx_RaiseTypeErrorWithTypes(message, type_obj1, type_obj2) __Pyx_RaiseErrorWithTypes1(PyExc_TypeError, "%.1s" message, "", type_obj1, type_obj2) -CYTHON_UNUSED -static void __Pyx_RaiseErrorWithTypes1(PyObject* exc_type, const char *message, const char *arg, PyTypeObject *type_obj1, PyTypeObject *type_obj2); -/* PyNumberBinop.proto */ -#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL || CYTHON_COMPILING_IN_LIMITED_API -#define __Pyx_PyNumber_Add_object_int(op1, op2) PyNumber_Add(op1, op2) -#define __Pyx_PyNumber_InPlaceAdd_object_int(op1, op2) PyNumber_InPlaceAdd(op1, op2) -#else -#define __Pyx_PyNumber_Add_object_int(op1, op2) __Pyx__PyNumber_Add_object_int(op1, op2, 0) -#define __Pyx_PyNumber_InPlaceAdd_object_int(op1, op2) __Pyx__PyNumber_Add_object_int(op1, op2, 1) -static CYTHON_INLINE PyObject* __Pyx__PyNumber_Add_object_int(PyObject *op1, PyObject *op2, int inplace); -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectCompare.proto */ -static CYTHON_INLINE int __Pyx_PyObject_CompareBoolLt_object_int(PyObject *op1, PyObject *op2, int pyop); -/* PyObjectCompare.proto */ -static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_object_int(PyObject *op1, PyObject *op2, int pyop); +struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* ListCompAppendAndDecref.proto */ -static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x); -/* PyIndexError_Check.proto */ -#define __Pyx_PyExc_IndexError_Check(obj) __Pyx_TypeCheck(obj, PyExc_IndexError) +struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntToPyUnicode.proto */ -#define __Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char) (\ - ((format_char) == ('c')) ?\ - __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char) :\ - __Pyx____Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char)\ - ) -static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char); -static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char); -/* PyTypeError_Check.proto */ -#define __Pyx_PyExc_TypeError_Check(obj) __Pyx_TypeCheck(obj, PyExc_TypeError) +struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* TupleOrListFromArrayImpl.proto (used by ListFromArray) */ -CYTHON_UNUSED static PyObject * -__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n); -/* ListFromArray.proto (used by SliceTupleAndList) */ +struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* SliceTupleAndList.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop); -static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop); -#else -#define __Pyx_PyList_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) -#define __Pyx_PyTuple_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObject_Unicode.proto */ -#define __Pyx_PyObject_Unicode(obj)\ - (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) -/* PyNumberBinop.proto */ -#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL || CYTHON_COMPILING_IN_LIMITED_API -#define __Pyx_PyNumber_And_object_int(op1, op2) PyNumber_And(op1, op2) -#define __Pyx_PyNumber_InPlaceAnd_object_int(op1, op2) PyNumber_InPlaceAnd(op1, op2) -#else -#define __Pyx_PyNumber_And_object_int(op1, op2) __Pyx__PyNumber_And_object_int(op1, op2, 0) -#define __Pyx_PyNumber_InPlaceAnd_object_int(op1, op2) __Pyx__PyNumber_And_object_int(op1, op2, 1) -static CYTHON_INLINE PyObject* __Pyx__PyNumber_And_object_int(PyObject *op1, PyObject *op2, int inplace); -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* ListCompAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE -static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x); -#else -#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) -#endif -/* SliceObject.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( - PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, - PyObject** py_start, PyObject** py_stop, PyObject** py_slice, - int has_cstart, int has_cstop, int wraparound); +struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectCompare.proto */ -static CYTHON_INLINE int __Pyx_PyObject_CompareBoolNe_object_str(PyObject *op1, PyObject *op2, int pyop); -/* SetItemInt.proto */ -#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, wraparound, boundscheck, unsafe_shared) :\ - __Pyx_SetItemInt_Generic(o, to_py_func(i), v)) -static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); -static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, - int wraparound, int boundscheck, int unsafe_shared); +struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectCompare.proto */ -static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_object_str(PyObject *op1, PyObject *op2, int pyop); -/* TypeImport.proto */ -#ifndef __PYX_HAVE_RT_ImportType_proto_3_3_0 -#define __PYX_HAVE_RT_ImportType_proto_3_3_0 -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -#include -#endif -#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L -#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) alignof(s) -#else -#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) sizeof(void*) -#endif -enum __Pyx_ImportType_CheckSize_3_3_0 { - __Pyx_ImportType_CheckSize_Error_3_3_0 = 0, - __Pyx_ImportType_CheckSize_Warn_3_3_0 = 1, - __Pyx_ImportType_CheckSize_Ignore_3_3_0 = 2 +struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; -static PyTypeObject *__Pyx_ImportType_3_3_0(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_3_0 check_size); -#endif -/* ImportImpl.export */ -static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level); -/* Import.proto */ -static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level); +struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* dict_setdefault.proto (used by FetchCommonType) */ -static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value); -/* AddModuleRef.proto (used by FetchSharedCythonModule) */ -#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3) ||\ - __PYX_LIMITED_VERSION_HEX < 0x030d0000) - static PyObject *__Pyx_PyImport_AddModuleRef(const char *name); -#else - #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* FetchSharedCythonModule.proto (used by FetchCommonType) */ -static PyObject *__Pyx_FetchSharedCythonABIModule(void); -/* VerifyCachedType.proto (used by FetchCommonType) */ -static int __Pyx_VerifyCachedType(PyObject *cached_type, - const char *name, - Py_ssize_t expected_basicsize); +struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* FetchCommonType.proto (used by CommonTypesMetaclass) */ -static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases); -/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */ -static int __pyx_CommonTypesMetaclass_init(PyObject *module); -#define __Pyx_CommonTypesMetaclass_USED +struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CythonFunctionPerModule.proto (used by CythonFunctionShared) */ -#define __Pyx_CyFunction_USED -#if CYTHON_OPAQUE_SHARED_TYPES -#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)PyObject_GetTypeData((o), __pyx_mstate_global->__pyx_CyFunctionType)) -#else -#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)o) -#endif -#define __Pyx_CYFUNCTION_STATICMETHOD 0x01 -#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 -#define __Pyx_CYFUNCTION_CCLASS 0x04 -#define __Pyx_CYFUNCTION_COROUTINE 0x08 -#define __Pyx_CyFunction_GetClosure(f)\ - ((__Pyx_as_CyFunctionObject(f))->func_closure) -#if CYTHON_COMPILING_IN_LIMITED_API - #define __Pyx__CyFunction_GetClassObj(f)\ - ((f)->func_classobj) -#else - #define __Pyx__CyFunction_GetClassObj(f)\ - ((PyObject*) ((PyCMethodObject *) (f))->mm_class) -#endif -#define __Pyx_CyFunction_GetClassObj(f)\ - __Pyx__CyFunction_GetClassObj(__Pyx_as_CyFunctionObject(f)) -#define __Pyx_CyFunction_SetClassObj(f, classobj)\ - __Pyx__CyFunction_SetClassObj(__Pyx_as_CyFunctionObject(f), (classobj)) -#define __Pyx_CyFunction_Defaults(type, f)\ - ((type *)((__Pyx_as_CyFunctionObject(f))->defaults)) -#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ - (__Pyx_as_CyFunctionObject(f))->defaults_getter = (g) -typedef struct { -#if CYTHON_COMPILING_IN_LIMITED_API -#if !CYTHON_OPAQUE_OBJECTS - PyObject_HEAD -#endif - PyMethodDef *func_methoddef; - PyObject *func_module; -#else - PyCMethodObject func; -#endif -#if (CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY) && CYTHON_VECTORCALL - __pyx_vectorcallfunc func_vectorcall; -#endif -#if CYTHON_COMPILING_IN_LIMITED_API - PyObject *func_weakreflist; -#endif -#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API - PyObject *func_dict; -#endif - PyObject *func_name; - PyObject *func_qualname; - PyObject *func_doc; - PyObject *func_globals; - PyObject *func_code; - PyObject *func_closure; -#if CYTHON_COMPILING_IN_LIMITED_API - PyObject *func_classobj; -#endif - PyObject *defaults; - int flags; - PyObject *defaults_tuple; - PyObject *defaults_kwdict; - PyObject *(*defaults_getter)(PyObject *); - PyObject *func_annotations; -#if __PYX_LIMITED_VERSION_HEX < 0x030B0000 - PyObject *func_is_coroutine; -#endif -} __pyx_CyFunctionObject; -#undef __Pyx_CyOrPyCFunction_Check -#define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType) -#define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type) -#define __Pyx_CyFunction_CheckExact(obj) Py_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType) -static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)); -#undef __Pyx_IsSameCFunction -#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc) -static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj); -static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, - PyTypeObject *defaults_type); -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, - PyObject *tuple); -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, - PyObject *dict); -static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, - PyObject *dict); -static int __pyx_CyFunction_init(PyObject *module); -#if CYTHON_VECTORCALL -#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY -#define __Pyx_CyFunction_func_vectorcall(f) ((f)->func_vectorcall) -#else -#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall) -#endif -#endif -/* CallTypeTraverse.proto (used by CythonFunctionShared) */ -#if !CYTHON_USE_TYPE_SPECS -#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0 -#else -static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg); -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyMethodNew.proto (used by CythonFunctionShared) */ -static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ); -/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */ -#if CYTHON_VECTORCALL -static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw); -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CythonFunctionShared.proto (used by CythonFunction) */ -static PyObject *__Pyx_CyFunction_Init(PyObject *op_in, PyMethodDef *ml, - int flags, PyObject* qualname, - PyObject *closure, - PyObject *module, PyObject *globals, - PyObject* code); -#if CYTHON_VECTORCALL -static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -#endif -/* CythonFunction.export */ -static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, - int flags, PyObject* qualname, - PyObject *closure, - PyObject *module, PyObject *globals, - PyObject* code); -static PyTypeObject *__Pyx_Get_CyFunction_Type(void); +struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Py3UpdateBases.export */ -static PyObject* __Pyx_PEP560_update_bases(PyObject *bases); -/* CalculateMetaclass.proto */ -static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); +struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* SetNameInClass.proto */ -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 -#define __Pyx_SetNameInClass(ns, name, value)\ - (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) -#elif CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_SetNameInClass(ns, name, value)\ - (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value)) -#else -#define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value) -#endif -/* PyObjectCall2Args.proto (used by Py3ClassCreate) */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); +struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectLookupSpecial.proto (used by Py3ClassCreate) */ -#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS -#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 0) -#define __Pyx_PyObject_LookupSpecial(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 1) -static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error); -#else -#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n) -#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) -#endif -/* Py3ClassCreate.export */ -static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, - PyObject *mkw, PyObject *modname, PyObject *doc); -static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, - PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); +struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* ImportFrom.export */ -static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); -/* PyObjectCallMethod1.proto (used by append) */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); +struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* append.proto */ -static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x); -/* PyModuleNotFoundError_Check.proto */ -#define __Pyx_PyExc_ModuleNotFoundError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ModuleNotFoundError) +struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyNameError_Check.proto */ -#define __Pyx_PyExc_NameError_Check(obj) __Pyx_TypeCheck(obj, PyExc_NameError) -/* PyObjectCompare.proto */ -static CYTHON_INLINE int __Pyx_PyObject_CompareBoolGe_object_str(PyObject *op1, PyObject *op2, int pyop); +struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CLineInTraceback.proto (used by AddTraceback) */ -#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); -#else -#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) -#endif -/* CodeObjectCache.proto (used by AddTraceback) */ -#if CYTHON_COMPILING_IN_LIMITED_API -typedef PyObject __Pyx_CachedCodeObjectType; -#else -typedef PyCodeObject __Pyx_CachedCodeObjectType; -#endif -typedef struct { - __Pyx_CachedCodeObjectType* code_object; - int code_line; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { - int count; - int max_count; - __Pyx_CodeObjectCacheEntry* entries; - #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING - __pyx_atomic_int_type accessor_count; - #endif +struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; }; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object); -/* AddTraceback.proto */ -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename); -/* RealImag.proto */ -#if CYTHON_CCOMPLEX - #ifdef __cplusplus - #define __Pyx_CREAL(z) ((z).real()) - #define __Pyx_CIMAG(z) ((z).imag()) - #else - #define __Pyx_CREAL(z) (__real__(z)) - #define __Pyx_CIMAG(z) (__imag__(z)) - #endif -#else - #define __Pyx_CREAL(z) ((z).real) - #define __Pyx_CIMAG(z) ((z).imag) -#endif -#if defined(__cplusplus) && CYTHON_CCOMPLEX\ - && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) - #define __Pyx_SET_CREAL(z,x) ((z).real(x)) - #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) -#else - #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) - #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Arithmetic.proto */ -#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) - #define __Pyx_c_eq_float(a, b) ((a)==(b)) - #define __Pyx_c_sum_float(a, b) ((a)+(b)) - #define __Pyx_c_diff_float(a, b) ((a)-(b)) - #define __Pyx_c_prod_float(a, b) ((a)*(b)) - #define __Pyx_c_quot_float(a, b) ((a)/(b)) - #define __Pyx_c_neg_float(a) (-(a)) - #ifdef __cplusplus - #define __Pyx_c_is_zero_float(z) ((z)==(float)0) - #define __Pyx_c_conj_float(z) (::std::conj(z)) - #if 1 - #define __Pyx_c_abs_float(z) (::std::abs(z)) - #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) - #endif - #else - #define __Pyx_c_is_zero_float(z) ((z)==0) - #define __Pyx_c_conj_float(z) (conjf(z)) - #if 1 - #define __Pyx_c_abs_float(z) (cabsf(z)) - #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) - #endif - #endif -#else - static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); - static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); - #if 1 - static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); - static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); - #endif -#endif -/* Arithmetic.proto */ -#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) - #define __Pyx_c_eq_double(a, b) ((a)==(b)) - #define __Pyx_c_sum_double(a, b) ((a)+(b)) - #define __Pyx_c_diff_double(a, b) ((a)-(b)) - #define __Pyx_c_prod_double(a, b) ((a)*(b)) - #define __Pyx_c_quot_double(a, b) ((a)/(b)) - #define __Pyx_c_neg_double(a) (-(a)) - #ifdef __cplusplus - #define __Pyx_c_is_zero_double(z) ((z)==(double)0) - #define __Pyx_c_conj_double(z) (::std::conj(z)) - #if 1 - #define __Pyx_c_abs_double(z) (::std::abs(z)) - #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) - #endif - #else - #define __Pyx_c_is_zero_double(z) ((z)==0) - #define __Pyx_c_conj_double(z) (conj(z)) - #if 1 - #define __Pyx_c_abs_double(z) (cabs(z)) - #define __Pyx_c_pow_double(a, b) (cpow(a, b)) - #endif - #endif -#else - static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); - static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); - #if 1 - static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); - static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); - #endif -#endif +struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Arithmetic.proto */ -#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) - #define __Pyx_c_eq_long__double(a, b) ((a)==(b)) - #define __Pyx_c_sum_long__double(a, b) ((a)+(b)) - #define __Pyx_c_diff_long__double(a, b) ((a)-(b)) - #define __Pyx_c_prod_long__double(a, b) ((a)*(b)) - #define __Pyx_c_quot_long__double(a, b) ((a)/(b)) - #define __Pyx_c_neg_long__double(a) (-(a)) - #ifdef __cplusplus - #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0) - #define __Pyx_c_conj_long__double(z) (::std::conj(z)) - #if 1 - #define __Pyx_c_abs_long__double(z) (::std::abs(z)) - #define __Pyx_c_pow_long__double(a, b) (::std::pow(a, b)) - #endif - #else - #define __Pyx_c_is_zero_long__double(z) ((z)==0) - #define __Pyx_c_conj_long__double(z) (conjl(z)) - #if 1 - #define __Pyx_c_abs_long__double(z) (cabsl(z)) - #define __Pyx_c_pow_long__double(a, b) (cpowl(a, b)) - #endif - #endif -#else - static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); - static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); - static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); - static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); - static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); - static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex); - static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex); - static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex); - #if 1 - static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex); - static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); - #endif -#endif -/* CIntFromPy.proto */ -static CYTHON_INLINE TA_RetCode __Pyx_PyLong_As_TA_RetCode(PyObject *); +struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* PyObjectVectorcallMethodKwds.proto (used by CIntToPy) */ -#if CYTHON_VECTORCALL -#define __Pyx_Object_VectorcallMethodKwds PyObject_VectorcallMethod -#else -static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames); -#endif -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncUnstId(TA_FuncUnstId value); +struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value); +struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntFromPy.proto */ -static CYTHON_INLINE TA_FuncUnstId __Pyx_PyLong_As_TA_FuncUnstId(PyObject *); -/* CIntFromPy.proto */ -static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *); +struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value); -/* CIntFromPy.proto */ -static CYTHON_INLINE TA_Compatibility __Pyx_PyLong_As_TA_Compatibility(PyObject *); +struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntFromPy.proto */ -static CYTHON_INLINE TA_CandleSettingType __Pyx_PyLong_As_TA_CandleSettingType(PyObject *); -/* CIntFromPy.proto */ -static CYTHON_INLINE TA_RangeType __Pyx_PyLong_As_TA_RangeType(PyObject *); +struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInputParameterType value); +struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncFlags(TA_FuncFlags value); -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_InputFlags(TA_InputFlags value); +struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OutputFlags(TA_OutputFlags value); -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *); +struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* GetRuntimeVersion.proto */ -#if __PYX_LIMITED_VERSION_HEX < 0x030b0000 -static unsigned long __Pyx_cached_runtime_version = 0; -static void __Pyx_init_runtime_version(void); -#else -#define __Pyx_init_runtime_version() -#endif -static unsigned long __Pyx_get_runtime_version(void); -/* CheckBinaryVersion.proto */ -static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer); +struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* DecompressString.proto */ -static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo); -/* DecompressString_LZSS.proto */ -static PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length); +struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* MultiPhaseInitModuleState.proto */ -#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE -#include -static PyObject *__Pyx_State_FindModule(void*); -static int __Pyx_State_AddModule(PyObject* module, void*); -static int __Pyx_State_RemoveModule(void*); -#elif CYTHON_USE_MODULE_STATE -#define __Pyx_State_FindModule PyState_FindModule -#define __Pyx_State_AddModule PyState_AddModule -#define __Pyx_State_RemoveModule PyState_RemoveModule -#endif -/* #### Code section: module_declarations ### */ -/* CythonABIVersion.proto */ -#if CYTHON_COMPILING_IN_LIMITED_API - #if CYTHON_VECTORCALL - #define __PYX_VECTORCALL_ABI_SUFFIX "_vectorcall" - #else - #define __PYX_VECTORCALL_ABI_SUFFIX - #endif - #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_VECTORCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX -#else - #define __PYX_LIMITED_ABI_SUFFIX -#endif -#if __PYX_HAS_PY_AM_SEND == 1 - #define __PYX_AM_SEND_ABI_SUFFIX -#elif __PYX_HAS_PY_AM_SEND == 2 - #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport" -#else - #define __PYX_AM_SEND_ABI_SUFFIX "noamsend" -#endif -#ifndef __PYX_MONITORING_ABI_SUFFIX - #define __PYX_MONITORING_ABI_SUFFIX -#endif -#if CYTHON_USE_TP_FINALIZE - #define __PYX_TP_FINALIZE_ABI_SUFFIX -#else - #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize" -#endif -#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED) - #define __PYX_FREELISTS_ABI_SUFFIX -#else - #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists" -#endif -#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API - #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX "opaque" -#else - #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX -#endif -#define CYTHON_ABI __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX __PYX_OPAQUE_OBJECTS_ABI_SUFFIX -#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI -#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." +struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self); /* proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self); /* proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self); /* proto*/ -static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self); /* proto*/ -static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self); /* proto*/ -static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self); /* proto*/ -/* Module declarations from "libc.string" */ +struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Module declarations from "libc.stdio" */ -/* Module declarations from "__builtin__" */ +struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Module declarations from "cpython.type" */ -/* Module declarations from "cpython" */ +struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Module declarations from "cpython.object" */ -/* Module declarations from "cpython.ref" */ +struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Module declarations from "numpy" */ -/* Module declarations from "numpy" */ -static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/ +struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* Module declarations from "talib._ta_lib" */ -static double __pyx_v_5talib_7_ta_lib_NaN; -static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *, TA_RetCode, int __pyx_skip_dispatch); /*proto*/ -static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *); /*proto*/ -static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *, PyArrayObject *); /*proto*/ -static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/ -static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *, PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/ -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp, double *); /*proto*/ -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp, double *, double *); /*proto*/ -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp, double *, double *, double *); /*proto*/ -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp, double *, double *, double *, double *); /*proto*/ -static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp, int); /*proto*/ -static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp, int); /*proto*/ -static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *); /*proto*/ -static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *); /*proto*/ -static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *); /*proto*/ -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *, int, int); /*proto*/ -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *, int, double); /*proto*/ -static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *); /*proto*/ -/* #### Code section: typeinfo ### */ -/* #### Code section: before_global_var ### */ -#define __Pyx_MODULE_NAME "talib._ta_lib" -extern int __pyx_module_is_main_talib___ta_lib; -int __pyx_module_is_main_talib___ta_lib = 0; -/* Implementation of "talib._ta_lib" */ -/* #### Code section: global_var ### */ -static PyObject *__pyx_builtin_object; -static PyObject *__pyx_builtin_property; -static PyObject *__pyx_builtin_enumerate; -/* #### Code section: string_decls ### */ -/* #### Code section: decls ### */ -static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_682stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_684stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_688stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_690stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_692stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_694stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_696stream_MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_698stream_MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_700stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_702stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_704stream_MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_706stream_MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_708stream_MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_710stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_712stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_714stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_716stream_MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_718stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_720stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_722stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_724stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_726stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_728stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_730stream_MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_732stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_734stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_736stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_738stream_NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_740stream_NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_742stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_744stream_PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_746stream_PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_748stream_PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_750stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_752stream_PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_754stream_PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_756stream_PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_758stream_PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_760stream_QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_762stream_RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_764stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_766stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_768stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_770stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_772stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_774stream_RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_776stream_RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_778stream_SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_780stream_SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_782stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_784stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_786stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_788stream_SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_790stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_792stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_794stream_STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_796stream_STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_798stream_STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_800stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_802stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_804stream_SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_806stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_808stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_810stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_812stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_814stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_816stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_818stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_820stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_822stream_TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_824stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_826stream_ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_828stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_830stream_VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_832stream_VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_834stream_VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_836stream_VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_838stream_WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_840stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_842stream_WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_844stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_846stream_ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -/* #### Code section: late_includes ### */ -/* #### Code section: module_state ### */ -/* SmallCodeConfig */ -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif +struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -#ifdef __cplusplus -namespace { - #endif - typedef struct { - PyObject *__pyx_d; - PyObject *__pyx_b; - PyObject *__pyx_cython_runtime; - PyObject *__pyx_empty_tuple; - PyObject *__pyx_empty_bytes; - PyObject *__pyx_empty_unicode; - PyTypeObject *__pyx_ptype_7cpython_4type_type; - PyTypeObject *__pyx_ptype_5numpy_dtype; - PyTypeObject *__pyx_ptype_5numpy_flatiter; - PyTypeObject *__pyx_ptype_5numpy_broadcast; - PyTypeObject *__pyx_ptype_5numpy_ndarray; - PyTypeObject *__pyx_ptype_5numpy_generic; - PyTypeObject *__pyx_ptype_5numpy_number; - PyTypeObject *__pyx_ptype_5numpy_integer; - PyTypeObject *__pyx_ptype_5numpy_signedinteger; - PyTypeObject *__pyx_ptype_5numpy_unsignedinteger; - PyTypeObject *__pyx_ptype_5numpy_inexact; - PyTypeObject *__pyx_ptype_5numpy_floating; - PyTypeObject *__pyx_ptype_5numpy_complexfloating; - PyTypeObject *__pyx_ptype_5numpy_flexible; - PyTypeObject *__pyx_ptype_5numpy_character; - PyTypeObject *__pyx_ptype_5numpy_ufunc; - __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items; - __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop; - __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; - PyObject *__pyx_tuple[14]; - PyObject *__pyx_codeobj_tab[450]; - PyObject *__pyx_string_tab[1382]; - PyObject *__pyx_number_tab[26]; -/* #### Code section: module_state_contents ### */ -/* PyFrozenDict.module_state_decls */ -#if CYTHON_COMPILING_IN_LIMITED_API -PyObject *__Pyx_PyFrozenDictType; -#endif -/* CommonTypesMetaclass.module_state_decls */ -PyTypeObject *__pyx_CommonTypesMetaclassType; +struct __pyx_obj_5talib_7_ta_lib_CMF_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CachedMethodType.module_state_decls */ -#if CYTHON_COMPILING_IN_LIMITED_API -PyObject *__Pyx_CachedMethodType; -#endif -/* CythonFunctionPerModule.module_state_decls */ -PyTypeObject *__pyx_CyFunctionType; +struct __pyx_obj_5talib_7_ta_lib_CMO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* CodeObjectCache.module_state_decls */ -struct __Pyx_CodeObjectCache __pyx_code_cache; -/* #### Code section: module_state_end ### */ -} __pyx_mstatetype; -#ifdef __cplusplus -} /* anonymous namespace */ -#endif +struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -#if CYTHON_USE_MODULE_STATE -#ifdef __cplusplus -namespace { -extern struct PyModuleDef __pyx_moduledef; -} /* anonymous namespace */ -#else -static struct PyModuleDef __pyx_moduledef; -#endif -#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef))) +struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef)) -#else -static __pyx_mstatetype __pyx_mstate_global_static = -#ifdef __cplusplus - {}; -#else - {0}; -#endif -static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static; -#endif -/* #### Code section: constant_name_defines ### */ -#define __pyx_kp_u__3 __pyx_string_tab[0] -#define __pyx_kp_u__14 __pyx_string_tab[1] -#define __pyx_kp_u_This_is_a_pythonic_wrapper_arou __pyx_string_tab[2] -#define __pyx_kp_u__12 __pyx_string_tab[3] -#define __pyx_kp_u__8 __pyx_string_tab[4] -#define __pyx_kp_u_s_4 __pyx_string_tab[5] -#define __pyx_kp_u__5 __pyx_string_tab[6] -#define __pyx_kp_u_expected __pyx_string_tab[7] -#define __pyx_kp_u_function_failed_with_error_code __pyx_string_tab[8] -#define __pyx_kp_u_display_name_s_group_s __pyx_string_tab[9] -#define __pyx_kp_u_s_2 __pyx_string_tab[10] -#define __pyx_kp_u_is_deprecated_and_has_no_effect __pyx_string_tab[11] -#define __pyx_kp_u__7 __pyx_string_tab[12] -#define __pyx_kp_u_s_3 __pyx_string_tab[13] -#define __pyx_kp_u_any_ndarray __pyx_string_tab[14] -#define __pyx_kp_u__6 __pyx_string_tab[15] -#define __pyx_kp_u__13 __pyx_string_tab[16] -#define __pyx_kp_u__4 __pyx_string_tab[17] -#define __pyx_kp_u_got __pyx_string_tab[18] -#define __pyx_kp_u__15 __pyx_string_tab[19] -#define __pyx_kp_u_3 __pyx_string_tab[20] -#define __pyx_kp_u_ __pyx_string_tab[21] -#define __pyx_kp_u__10 __pyx_string_tab[22] -#define __pyx_kp_u__2 __pyx_string_tab[23] -#define __pyx_kp_u_A_period_of_1_performs_no_smooth __pyx_string_tab[24] -#define __pyx_kp_u_ADXR_has_no_unstable_period_of_i __pyx_string_tab[25] -#define __pyx_kp_u_Allocation_Error_TA_ALLOC_ERR __pyx_string_tab[26] -#define __pyx_kp_u_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[27] -#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[28] -#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[29] -#define __pyx_kp_u_Dashed_Line __pyx_string_tab[30] -#define __pyx_kp_u_Dotted_Line __pyx_string_tab[31] -#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[32] -#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[33] -#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[34] -#define __pyx_kp_u_Function_has_a_streaming_API __pyx_string_tab[35] -#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[36] -#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[37] -#define __pyx_kp_u_Hull_Moving_Average __pyx_string_tab[38] -#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[39] -#define __pyx_kp_u_Inputs __pyx_string_tab[40] -#define __pyx_kp_u_Insufficient_History_TA_INSUFFIC __pyx_string_tab[41] -#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[42] -#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[43] -#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[44] -#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[45] -#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[46] -#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[47] -#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[48] -#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[49] -#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[50] -#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[51] -#define __pyx_kp_u_MFI_s_unstable_period_was_retire __pyx_string_tab[52] -#define __pyx_kp_u_No_Moving_Average_identity __pyx_string_tab[53] -#define __pyx_kp_u_None __pyx_string_tab[54] -#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[55] -#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[56] -#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[57] -#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[58] -#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[59] -#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[60] -#define __pyx_kp_u_Output_can_be_NaN_or_infinite __pyx_string_tab[61] -#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[62] -#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[63] -#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[64] -#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[65] -#define __pyx_kp_u_Output_is_optional_nullable __pyx_string_tab[66] -#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[67] -#define __pyx_kp_u_Output_is_path_dependent __pyx_string_tab[68] -#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[69] -#define __pyx_kp_u_Outputs __pyx_string_tab[70] -#define __pyx_kp_u_Parameters __pyx_string_tab[71] -#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[72] -#define __pyx_kp_u_STOCHRSI_has_no_unstable_period __pyx_string_tab[73] -#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[74] -#define __pyx_kp_u_Strength_Pattern_200_100_Bearish __pyx_string_tab[75] -#define __pyx_kp_u_The_Function_s_Own_Default_Movin __pyx_string_tab[76] -#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[77] -#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[78] -#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[79] -#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[80] -#define __pyx_kp_u_Unknown_Error __pyx_string_tab[81] -#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[82] -#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[83] -#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[84] -#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[85] -#define __pyx_kp_u_Wilder_s_Smoothed_Moving_Average __pyx_string_tab[86] -#define __pyx_kp_u_Zero_Lag_Exponential_Moving_Aver __pyx_string_tab[87] -#define __pyx_kp_u__9 __pyx_string_tab[88] -#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[89] -#define __pyx_kp_u__11 __pyx_string_tab[90] -#define __pyx_kp_u_add_note __pyx_string_tab[91] -#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[92] -#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[93] -#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[94] -#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[95] -#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[96] -#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[97] -#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[98] -#define __pyx_kp_u_stream__s __pyx_string_tab[99] -#define __pyx_kp_u_talib_collections __pyx_string_tab[100] -#define __pyx_kp_u_talib_numpy __pyx_string_tab[101] -#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[102] -#define __pyx_kp_u_talib_pandas __pyx_string_tab[103] -#define __pyx_kp_u_talib_polars __pyx_string_tab[104] -#define __pyx_kp_u_talib_sys __pyx_string_tab[105] -#define __pyx_kp_u_talib_threading __pyx_string_tab[106] -#define __pyx_kp_u_talib_warnings __pyx_string_tab[107] -#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[108] -#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[109] -#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[110] -#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[111] -#define __pyx_kp_u_unstable_period __pyx_string_tab[112] -#define __pyx_n_u_AC __pyx_string_tab[113] -#define __pyx_n_u_ACCBANDS __pyx_string_tab[114] -#define __pyx_n_u_ACOS __pyx_string_tab[115] -#define __pyx_n_u_AD __pyx_string_tab[116] -#define __pyx_n_u_ADD __pyx_string_tab[117] -#define __pyx_n_u_ADOSC __pyx_string_tab[118] -#define __pyx_n_u_ADR __pyx_string_tab[119] -#define __pyx_n_u_ADX __pyx_string_tab[120] -#define __pyx_n_u_ADXR __pyx_string_tab[121] -#define __pyx_n_u_ALL __pyx_string_tab[122] -#define __pyx_n_u_AO __pyx_string_tab[123] -#define __pyx_n_u_APO __pyx_string_tab[124] -#define __pyx_n_u_AROON __pyx_string_tab[125] -#define __pyx_n_u_AROONOSC __pyx_string_tab[126] -#define __pyx_n_u_ASIN __pyx_string_tab[127] -#define __pyx_n_u_ATAN __pyx_string_tab[128] -#define __pyx_n_u_ATR __pyx_string_tab[129] -#define __pyx_n_u_AVGDEV __pyx_string_tab[130] -#define __pyx_n_u_AVGPRICE __pyx_string_tab[131] -#define __pyx_n_u_AllCandleSettings __pyx_string_tab[132] -#define __pyx_n_u_BBANDS __pyx_string_tab[133] -#define __pyx_n_u_BETA __pyx_string_tab[134] -#define __pyx_n_u_BOP __pyx_string_tab[135] -#define __pyx_n_u_BodyDoji __pyx_string_tab[136] -#define __pyx_n_u_BodyLong __pyx_string_tab[137] -#define __pyx_n_u_BodyShort __pyx_string_tab[138] -#define __pyx_n_u_BodyVeryLong __pyx_string_tab[139] -#define __pyx_n_u_CCI __pyx_string_tab[140] -#define __pyx_n_u_CDL2CROWS __pyx_string_tab[141] -#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[142] -#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[143] -#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[144] -#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[145] -#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[146] -#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[147] -#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[148] -#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[149] -#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[150] -#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[151] -#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[152] -#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[153] -#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[154] -#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[155] -#define __pyx_n_u_CDLDOJI __pyx_string_tab[156] -#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[157] -#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[158] -#define __pyx_n_u_CDLENGULFING __pyx_string_tab[159] -#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[160] -#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[161] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[162] -#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[163] -#define __pyx_n_u_CDLHAMMER __pyx_string_tab[164] -#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[165] -#define __pyx_n_u_CDLHARAMI __pyx_string_tab[166] -#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[167] -#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[168] -#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[169] -#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[170] -#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[171] -#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[172] -#define __pyx_n_u_CDLINNECK __pyx_string_tab[173] -#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[174] -#define __pyx_n_u_CDLKICKING __pyx_string_tab[175] -#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[176] -#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[177] -#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[178] -#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[179] -#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[180] -#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[181] -#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[182] -#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[183] -#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[184] -#define __pyx_n_u_CDLONNECK __pyx_string_tab[185] -#define __pyx_n_u_CDLPIERCING __pyx_string_tab[186] -#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[187] -#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[188] -#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[189] -#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[190] -#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[191] -#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[192] -#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[193] -#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[194] -#define __pyx_n_u_CDLTAKURI __pyx_string_tab[195] -#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[196] -#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[197] -#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[198] -#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[199] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[200] -#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[201] -#define __pyx_n_u_CEIL __pyx_string_tab[202] -#define __pyx_n_u_CMF __pyx_string_tab[203] -#define __pyx_n_u_CMO __pyx_string_tab[204] -#define __pyx_n_u_CMOU __pyx_string_tab[205] -#define __pyx_n_u_COPPOCK __pyx_string_tab[206] -#define __pyx_n_u_CORREL __pyx_string_tab[207] -#define __pyx_n_u_COS __pyx_string_tab[208] -#define __pyx_n_u_COSH __pyx_string_tab[209] -#define __pyx_n_u_CUMSUM __pyx_string_tab[210] -#define __pyx_n_u_CVI __pyx_string_tab[211] -#define __pyx_n_u_CandleSettingType __pyx_string_tab[212] -#define __pyx_n_u_DEFAULT __pyx_string_tab[213] -#define __pyx_n_u_DEMA __pyx_string_tab[214] -#define __pyx_n_u_DISABLED __pyx_string_tab[215] -#define __pyx_n_u_DIV __pyx_string_tab[216] -#define __pyx_n_u_DONCHIAN __pyx_string_tab[217] -#define __pyx_n_u_DPO __pyx_string_tab[218] -#define __pyx_n_u_DX __pyx_string_tab[219] -#define __pyx_n_u_DataFrame __pyx_string_tab[220] -#define __pyx_n_u_Dot __pyx_string_tab[221] -#define __pyx_n_u_EFI __pyx_string_tab[222] -#define __pyx_n_u_EMA __pyx_string_tab[223] -#define __pyx_n_u_ER __pyx_string_tab[224] -#define __pyx_n_u_ERI __pyx_string_tab[225] -#define __pyx_n_u_EXP __pyx_string_tab[226] -#define __pyx_n_u_Equal __pyx_string_tab[227] -#define __pyx_n_u_FLOOR __pyx_string_tab[228] -#define __pyx_n_u_FOSC __pyx_string_tab[229] -#define __pyx_n_u_FRACTAL __pyx_string_tab[230] -#define __pyx_n_u_Far __pyx_string_tab[231] -#define __pyx_n_u_Function __pyx_string_tab[232] -#define __pyx_n_u_Function___call __pyx_string_tab[233] -#define __pyx_n_u_Function___call_function __pyx_string_tab[234] -#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[235] -#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[236] -#define __pyx_n_u_Function___init __pyx_string_tab[237] -#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[238] -#define __pyx_n_u_Function___local __pyx_string_tab[239] -#define __pyx_n_u_Function___repr __pyx_string_tab[240] -#define __pyx_n_u_Function___str __pyx_string_tab[241] -#define __pyx_n_u_Function___unicode __pyx_string_tab[242] -#define __pyx_n_u_Function_function_flags __pyx_string_tab[243] -#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[244] -#define __pyx_n_u_Function_get_input_names __pyx_string_tab[245] -#define __pyx_n_u_Function_get_parameters __pyx_string_tab[246] -#define __pyx_n_u_Function_info __pyx_string_tab[247] -#define __pyx_n_u_Function_lookback __pyx_string_tab[248] -#define __pyx_n_u_Function_output_flags __pyx_string_tab[249] -#define __pyx_n_u_Function_output_names __pyx_string_tab[250] -#define __pyx_n_u_Function_outputs __pyx_string_tab[251] -#define __pyx_n_u_Function_run __pyx_string_tab[252] -#define __pyx_n_u_Function_set_function_args __pyx_string_tab[253] -#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[254] -#define __pyx_n_u_Function_set_input_names __pyx_string_tab[255] -#define __pyx_n_u_Function_set_parameters __pyx_string_tab[256] -#define __pyx_n_u_HA __pyx_string_tab[257] -#define __pyx_n_u_HMA __pyx_string_tab[258] -#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[259] -#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[260] -#define __pyx_n_u_HT_PHASOR __pyx_string_tab[261] -#define __pyx_n_u_HT_SINE __pyx_string_tab[262] -#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[263] -#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[264] -#define __pyx_n_u_HighLow __pyx_string_tab[265] -#define __pyx_n_u_Histogram __pyx_string_tab[266] -#define __pyx_n_u_IMI __pyx_string_tab[267] -#define __pyx_n_u_KAMA __pyx_string_tab[268] -#define __pyx_n_u_KC __pyx_string_tab[269] -#define __pyx_n_u_KDJ __pyx_string_tab[270] -#define __pyx_n_u_LINEARREG __pyx_string_tab[271] -#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[272] -#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[273] -#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[274] -#define __pyx_n_u_LN __pyx_string_tab[275] -#define __pyx_n_u_LOG10 __pyx_string_tab[276] -#define __pyx_n_u_Line __pyx_string_tab[277] -#define __pyx_n_u_MA __pyx_string_tab[278] -#define __pyx_n_u_MACD __pyx_string_tab[279] -#define __pyx_n_u_MACDEXT __pyx_string_tab[280] -#define __pyx_n_u_MACDFIX __pyx_string_tab[281] -#define __pyx_n_u_MAMA __pyx_string_tab[282] -#define __pyx_n_u_MARKETFI __pyx_string_tab[283] -#define __pyx_n_u_MASSI __pyx_string_tab[284] -#define __pyx_n_u_MAVP __pyx_string_tab[285] -#define __pyx_n_u_MAX __pyx_string_tab[286] -#define __pyx_n_u_MAXINDEX __pyx_string_tab[287] -#define __pyx_n_u_MA_Type __pyx_string_tab[288] -#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[289] -#define __pyx_n_u_MA_Type___init __pyx_string_tab[290] -#define __pyx_n_u_MEDPRICE __pyx_string_tab[291] -#define __pyx_n_u_MFI __pyx_string_tab[292] -#define __pyx_n_u_MIDPOINT __pyx_string_tab[293] -#define __pyx_n_u_MIDPRICE __pyx_string_tab[294] -#define __pyx_n_u_MIN __pyx_string_tab[295] -#define __pyx_n_u_MININDEX __pyx_string_tab[296] -#define __pyx_n_u_MINMAX __pyx_string_tab[297] -#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[298] -#define __pyx_n_u_MINUS_DI __pyx_string_tab[299] -#define __pyx_n_u_MINUS_DM __pyx_string_tab[300] -#define __pyx_n_u_MOM __pyx_string_tab[301] -#define __pyx_n_u_MULT __pyx_string_tab[302] -#define __pyx_n_u_NATR __pyx_string_tab[303] -#define __pyx_n_u_NONE __pyx_string_tab[304] -#define __pyx_n_u_NVI __pyx_string_tab[305] -#define __pyx_n_u_Near __pyx_string_tab[306] -#define __pyx_n_u_OBV __pyx_string_tab[307] -#define __pyx_n_u_OrderedDict __pyx_string_tab[308] -#define __pyx_n_u_PERCENTILE __pyx_string_tab[309] -#define __pyx_n_u_PERCENTRANK __pyx_string_tab[310] -#define __pyx_n_u_PLUS_DI __pyx_string_tab[311] -#define __pyx_n_u_PLUS_DM __pyx_string_tab[312] -#define __pyx_n_u_PPO __pyx_string_tab[313] -#define __pyx_n_u_PVI __pyx_string_tab[314] -#define __pyx_n_u_PVO __pyx_string_tab[315] -#define __pyx_n_u_PVT __pyx_string_tab[316] -#define __pyx_n_u_QSTICK __pyx_string_tab[317] -#define __pyx_n_u_RMA __pyx_string_tab[318] -#define __pyx_n_u_ROC __pyx_string_tab[319] -#define __pyx_n_u_ROCP __pyx_string_tab[320] -#define __pyx_n_u_ROCR __pyx_string_tab[321] -#define __pyx_n_u_ROCR100 __pyx_string_tab[322] -#define __pyx_n_u_RSI __pyx_string_tab[323] -#define __pyx_n_u_RVI __pyx_string_tab[324] -#define __pyx_n_u_RVOL __pyx_string_tab[325] -#define __pyx_n_u_RangeType __pyx_string_tab[326] -#define __pyx_n_u_RealBody __pyx_string_tab[327] -#define __pyx_n_u_SAR __pyx_string_tab[328] -#define __pyx_n_u_SAREXT __pyx_string_tab[329] -#define __pyx_n_u_SIN __pyx_string_tab[330] -#define __pyx_n_u_SINH __pyx_string_tab[331] -#define __pyx_n_u_SMA __pyx_string_tab[332] -#define __pyx_n_u_SMI __pyx_string_tab[333] -#define __pyx_n_u_SQRT __pyx_string_tab[334] -#define __pyx_n_u_STDDEV __pyx_string_tab[335] -#define __pyx_n_u_STOCH __pyx_string_tab[336] -#define __pyx_n_u_STOCHF __pyx_string_tab[337] -#define __pyx_n_u_STOCHRSI __pyx_string_tab[338] -#define __pyx_n_u_SUB __pyx_string_tab[339] -#define __pyx_n_u_SUM __pyx_string_tab[340] -#define __pyx_n_u_SUPERTREND __pyx_string_tab[341] -#define __pyx_n_u_Series __pyx_string_tab[342] -#define __pyx_n_u_ShadowLong __pyx_string_tab[343] -#define __pyx_n_u_ShadowShort __pyx_string_tab[344] -#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[345] -#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[346] -#define __pyx_n_u_Shadows __pyx_string_tab[347] -#define __pyx_n_u_T3 __pyx_string_tab[348] -#define __pyx_n_u_TAN __pyx_string_tab[349] -#define __pyx_n_u_TANH __pyx_string_tab[350] -#define __pyx_n_u_TA_AC __pyx_string_tab[351] -#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[352] -#define __pyx_n_u_TA_ACOS __pyx_string_tab[353] -#define __pyx_n_u_TA_AD __pyx_string_tab[354] -#define __pyx_n_u_TA_ADD __pyx_string_tab[355] -#define __pyx_n_u_TA_ADOSC __pyx_string_tab[356] -#define __pyx_n_u_TA_ADR __pyx_string_tab[357] -#define __pyx_n_u_TA_ADX __pyx_string_tab[358] -#define __pyx_n_u_TA_ADXR __pyx_string_tab[359] -#define __pyx_n_u_TA_AO __pyx_string_tab[360] -#define __pyx_n_u_TA_APO __pyx_string_tab[361] -#define __pyx_n_u_TA_AROON __pyx_string_tab[362] -#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[363] -#define __pyx_n_u_TA_ASIN __pyx_string_tab[364] -#define __pyx_n_u_TA_ATAN __pyx_string_tab[365] -#define __pyx_n_u_TA_ATR __pyx_string_tab[366] -#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[367] -#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[368] -#define __pyx_n_u_TA_BBANDS __pyx_string_tab[369] -#define __pyx_n_u_TA_BETA __pyx_string_tab[370] -#define __pyx_n_u_TA_BOP __pyx_string_tab[371] -#define __pyx_n_u_TA_CCI __pyx_string_tab[372] -#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[373] -#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[374] -#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[375] -#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[376] -#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[377] -#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[378] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[379] -#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[380] -#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[381] -#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[382] -#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[383] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[384] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[385] -#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[386] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[387] -#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[388] -#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[389] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[390] -#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[391] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[392] -#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[393] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[394] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[395] -#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[396] -#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[397] -#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[398] -#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[399] -#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[400] -#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[401] -#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[402] -#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[403] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[404] -#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[405] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[406] -#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[407] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[408] -#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[409] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[410] -#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[411] -#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[412] -#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[413] -#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[414] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[415] -#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[416] -#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[417] -#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[418] -#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[419] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[420] -#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[421] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[422] -#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[423] -#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[424] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[425] -#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[426] -#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[427] -#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[428] -#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[429] -#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[430] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[431] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[432] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[433] -#define __pyx_n_u_TA_CEIL __pyx_string_tab[434] -#define __pyx_n_u_TA_CMF __pyx_string_tab[435] -#define __pyx_n_u_TA_CMO __pyx_string_tab[436] -#define __pyx_n_u_TA_CMOU __pyx_string_tab[437] -#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[438] -#define __pyx_n_u_TA_CORREL __pyx_string_tab[439] -#define __pyx_n_u_TA_COS __pyx_string_tab[440] -#define __pyx_n_u_TA_COSH __pyx_string_tab[441] -#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[442] -#define __pyx_n_u_TA_CVI __pyx_string_tab[443] -#define __pyx_n_u_TA_DEMA __pyx_string_tab[444] -#define __pyx_n_u_TA_DIV __pyx_string_tab[445] -#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[446] -#define __pyx_n_u_TA_DPO __pyx_string_tab[447] -#define __pyx_n_u_TA_DX __pyx_string_tab[448] -#define __pyx_n_u_TA_EFI __pyx_string_tab[449] -#define __pyx_n_u_TA_EMA __pyx_string_tab[450] -#define __pyx_n_u_TA_ER __pyx_string_tab[451] -#define __pyx_n_u_TA_ERI __pyx_string_tab[452] -#define __pyx_n_u_TA_EXP __pyx_string_tab[453] -#define __pyx_n_u_TA_FLOOR __pyx_string_tab[454] -#define __pyx_n_u_TA_FOSC __pyx_string_tab[455] -#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[456] -#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[457] -#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[458] -#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[459] -#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[460] -#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[461] -#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[462] -#define __pyx_n_u_TA_GetLookback __pyx_string_tab[463] -#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[464] -#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[465] -#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[466] -#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[467] -#define __pyx_n_u_TA_HA __pyx_string_tab[468] -#define __pyx_n_u_TA_HMA __pyx_string_tab[469] -#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[470] -#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[471] -#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[472] -#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[473] -#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[474] -#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[475] -#define __pyx_n_u_TA_IMI __pyx_string_tab[476] -#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[477] -#define __pyx_n_u_TA_Initialize __pyx_string_tab[478] -#define __pyx_n_u_TA_KAMA __pyx_string_tab[479] -#define __pyx_n_u_TA_KC __pyx_string_tab[480] -#define __pyx_n_u_TA_KDJ __pyx_string_tab[481] -#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[482] -#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[483] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[484] -#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[485] -#define __pyx_n_u_TA_LN __pyx_string_tab[486] -#define __pyx_n_u_TA_LOG10 __pyx_string_tab[487] -#define __pyx_n_u_TA_MA __pyx_string_tab[488] -#define __pyx_n_u_TA_MACD __pyx_string_tab[489] -#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[490] -#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[491] -#define __pyx_n_u_TA_MAMA __pyx_string_tab[492] -#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[493] -#define __pyx_n_u_TA_MASSI __pyx_string_tab[494] -#define __pyx_n_u_TA_MAVP __pyx_string_tab[495] -#define __pyx_n_u_TA_MAX __pyx_string_tab[496] -#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[497] -#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[498] -#define __pyx_n_u_TA_MFI __pyx_string_tab[499] -#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[500] -#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[501] -#define __pyx_n_u_TA_MIN __pyx_string_tab[502] -#define __pyx_n_u_TA_MININDEX __pyx_string_tab[503] -#define __pyx_n_u_TA_MINMAX __pyx_string_tab[504] -#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[505] -#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[506] -#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[507] -#define __pyx_n_u_TA_MOM __pyx_string_tab[508] -#define __pyx_n_u_TA_MULT __pyx_string_tab[509] -#define __pyx_n_u_TA_NATR __pyx_string_tab[510] -#define __pyx_n_u_TA_NVI __pyx_string_tab[511] -#define __pyx_n_u_TA_OBV __pyx_string_tab[512] -#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[513] -#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[514] -#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[515] -#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[516] -#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[517] -#define __pyx_n_u_TA_PPO __pyx_string_tab[518] -#define __pyx_n_u_TA_PVI __pyx_string_tab[519] -#define __pyx_n_u_TA_PVO __pyx_string_tab[520] -#define __pyx_n_u_TA_PVT __pyx_string_tab[521] -#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[522] -#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[523] -#define __pyx_n_u_TA_QSTICK __pyx_string_tab[524] -#define __pyx_n_u_TA_RMA __pyx_string_tab[525] -#define __pyx_n_u_TA_ROC __pyx_string_tab[526] -#define __pyx_n_u_TA_ROCP __pyx_string_tab[527] -#define __pyx_n_u_TA_ROCR __pyx_string_tab[528] -#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[529] -#define __pyx_n_u_TA_RSI __pyx_string_tab[530] -#define __pyx_n_u_TA_RVI __pyx_string_tab[531] -#define __pyx_n_u_TA_RVOL __pyx_string_tab[532] -#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[533] -#define __pyx_n_u_TA_SAR __pyx_string_tab[534] -#define __pyx_n_u_TA_SAREXT __pyx_string_tab[535] -#define __pyx_n_u_TA_SIN __pyx_string_tab[536] -#define __pyx_n_u_TA_SINH __pyx_string_tab[537] -#define __pyx_n_u_TA_SMA __pyx_string_tab[538] -#define __pyx_n_u_TA_SMI __pyx_string_tab[539] -#define __pyx_n_u_TA_SQRT __pyx_string_tab[540] -#define __pyx_n_u_TA_STDDEV __pyx_string_tab[541] -#define __pyx_n_u_TA_STOCH __pyx_string_tab[542] -#define __pyx_n_u_TA_STOCHF __pyx_string_tab[543] -#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[544] -#define __pyx_n_u_TA_SUB __pyx_string_tab[545] -#define __pyx_n_u_TA_SUM __pyx_string_tab[546] -#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[547] -#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[548] -#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[549] -#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[550] -#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[551] -#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[552] -#define __pyx_n_u_TA_Shutdown __pyx_string_tab[553] -#define __pyx_n_u_TA_T3 __pyx_string_tab[554] -#define __pyx_n_u_TA_TAN __pyx_string_tab[555] -#define __pyx_n_u_TA_TANH __pyx_string_tab[556] -#define __pyx_n_u_TA_TEMA __pyx_string_tab[557] -#define __pyx_n_u_TA_TRANGE __pyx_string_tab[558] -#define __pyx_n_u_TA_TRIMA __pyx_string_tab[559] -#define __pyx_n_u_TA_TRIX __pyx_string_tab[560] -#define __pyx_n_u_TA_TSF __pyx_string_tab[561] -#define __pyx_n_u_TA_TSI __pyx_string_tab[562] -#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[563] -#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[564] -#define __pyx_n_u_TA_VAR __pyx_string_tab[565] -#define __pyx_n_u_TA_VHF __pyx_string_tab[566] -#define __pyx_n_u_TA_VORTEX __pyx_string_tab[567] -#define __pyx_n_u_TA_VWAP __pyx_string_tab[568] -#define __pyx_n_u_TA_VWMA __pyx_string_tab[569] -#define __pyx_n_u_TA_WAD __pyx_string_tab[570] -#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[571] -#define __pyx_n_u_TA_WILLR __pyx_string_tab[572] -#define __pyx_n_u_TA_WMA __pyx_string_tab[573] -#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[574] -#define __pyx_n_u_TEMA __pyx_string_tab[575] -#define __pyx_n_u_TRANGE __pyx_string_tab[576] -#define __pyx_n_u_TRIMA __pyx_string_tab[577] -#define __pyx_n_u_TRIX __pyx_string_tab[578] -#define __pyx_n_u_TSF __pyx_string_tab[579] -#define __pyx_n_u_TSI __pyx_string_tab[580] -#define __pyx_n_u_TYPPRICE __pyx_string_tab[581] -#define __pyx_n_u_ULTOSC __pyx_string_tab[582] -#define __pyx_n_u_VAR __pyx_string_tab[583] -#define __pyx_n_u_VHF __pyx_string_tab[584] -#define __pyx_n_u_VORTEX __pyx_string_tab[585] -#define __pyx_n_u_VWAP __pyx_string_tab[586] -#define __pyx_n_u_VWMA __pyx_string_tab[587] -#define __pyx_n_u_WAD __pyx_string_tab[588] -#define __pyx_n_u_WCLPRICE __pyx_string_tab[589] -#define __pyx_n_u_WILLR __pyx_string_tab[590] -#define __pyx_n_u_WMA __pyx_string_tab[591] -#define __pyx_n_u_ZLEMA __pyx_string_tab[592] -#define __pyx_n_u_Function__call_function __pyx_string_tab[593] -#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[594] -#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[595] -#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[596] -#define __pyx_n_u_Function__local __pyx_string_tab[597] -#define __pyx_n_u_Function__localdata __pyx_string_tab[598] -#define __pyx_n_u_Function__name __pyx_string_tab[599] -#define __pyx_n_u_Function__namestr __pyx_string_tab[600] -#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[601] -#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[602] -#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[603] -#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[604] -#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[605] -#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[606] -#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[607] -#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[608] -#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[609] -#define __pyx_n_u_all __pyx_string_tab[610] -#define __pyx_n_u_annotate __pyx_string_tab[611] -#define __pyx_n_u_call __pyx_string_tab[612] -#define __pyx_n_u_call_function __pyx_string_tab[613] -#define __pyx_n_u_check_opt_input_value __pyx_string_tab[614] -#define __pyx_n_u_class_getitem __pyx_string_tab[615] -#define __pyx_n_u_doc __pyx_string_tab[616] -#define __pyx_n_u_func __pyx_string_tab[617] -#define __pyx_n_u_get_flags __pyx_string_tab[618] -#define __pyx_n_u_get_opt_input_value __pyx_string_tab[619] -#define __pyx_n_u_getitem __pyx_string_tab[620] -#define __pyx_n_u_init __pyx_string_tab[621] -#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[622] -#define __pyx_n_u_local_2 __pyx_string_tab[623] -#define __pyx_n_u_main __pyx_string_tab[624] -#define __pyx_n_u_metaclass __pyx_string_tab[625] -#define __pyx_n_u_module __pyx_string_tab[626] -#define __pyx_n_u_mro_entries __pyx_string_tab[627] -#define __pyx_n_u_name_2 __pyx_string_tab[628] -#define __pyx_n_u_prepare __pyx_string_tab[629] -#define __pyx_n_u_qualname __pyx_string_tab[630] -#define __pyx_n_u_repr __pyx_string_tab[631] -#define __pyx_n_u_str __pyx_string_tab[632] -#define __pyx_n_u_ta_version __pyx_string_tab[633] -#define __pyx_n_u_test __pyx_string_tab[634] -#define __pyx_n_u_unicode __pyx_string_tab[635] -#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[636] -#define __pyx_n_u_is_coroutine __pyx_string_tab[637] -#define __pyx_n_u_lookup __pyx_string_tab[638] -#define __pyx_n_u_ta_check_success __pyx_string_tab[639] -#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[640] -#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[641] -#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[642] -#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[643] -#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[644] -#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[645] -#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[646] -#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[647] -#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[648] -#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[649] -#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[650] -#define __pyx_n_u_ta_initialize __pyx_string_tab[651] -#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[652] -#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[653] -#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[654] -#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[655] -#define __pyx_n_u_ta_shutdown __pyx_string_tab[656] -#define __pyx_n_u_acceleration __pyx_string_tab[657] -#define __pyx_n_u_accelerationinitlong __pyx_string_tab[658] -#define __pyx_n_u_accelerationinitshort __pyx_string_tab[659] -#define __pyx_n_u_accelerationlong __pyx_string_tab[660] -#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[661] -#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[662] -#define __pyx_n_u_accelerationshort __pyx_string_tab[663] -#define __pyx_n_u_append __pyx_string_tab[664] -#define __pyx_n_u_arg __pyx_string_tab[665] -#define __pyx_n_u_args __pyx_string_tab[666] -#define __pyx_n_u_ascii __pyx_string_tab[667] -#define __pyx_n_u_astype __pyx_string_tab[668] -#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[669] -#define __pyx_n_u_atrperiod __pyx_string_tab[670] -#define __pyx_n_u_avgperiod __pyx_string_tab[671] -#define __pyx_n_u_b __pyx_string_tab[672] -#define __pyx_n_u_begidx __pyx_string_tab[673] -#define __pyx_n_u_bit __pyx_string_tab[674] -#define __pyx_n_u_bytes2str __pyx_string_tab[675] -#define __pyx_n_u_candlestick __pyx_string_tab[676] -#define __pyx_n_u_cline_in_traceback __pyx_string_tab[677] -#define __pyx_n_u_clone __pyx_string_tab[678] -#define __pyx_n_u_close __pyx_string_tab[679] -#define __pyx_n_u_close_data __pyx_string_tab[680] -#define __pyx_n_u_collections __pyx_string_tab[681] -#define __pyx_n_u_column_stack __pyx_string_tab[682] -#define __pyx_n_u_columns __pyx_string_tab[683] -#define __pyx_n_u_copy __pyx_string_tab[684] -#define __pyx_n_u_d __pyx_string_tab[685] -#define __pyx_n_u_decode __pyx_string_tab[686] -#define __pyx_n_u_default_value __pyx_string_tab[687] -#define __pyx_n_u_defaults __pyx_string_tab[688] -#define __pyx_n_u_description __pyx_string_tab[689] -#define __pyx_n_u_display_name __pyx_string_tab[690] -#define __pyx_n_u_docs __pyx_string_tab[691] -#define __pyx_n_u_documentation __pyx_string_tab[692] -#define __pyx_n_u_empty __pyx_string_tab[693] -#define __pyx_n_u_endidx __pyx_string_tab[694] -#define __pyx_n_u_endswith __pyx_string_tab[695] -#define __pyx_n_u_enumerate __pyx_string_tab[696] -#define __pyx_n_u_factor __pyx_string_tab[697] -#define __pyx_n_u_fastd_matype __pyx_string_tab[698] -#define __pyx_n_u_fastd_period __pyx_string_tab[699] -#define __pyx_n_u_fastk_period __pyx_string_tab[700] -#define __pyx_n_u_fastlimit __pyx_string_tab[701] -#define __pyx_n_u_fastmatype __pyx_string_tab[702] -#define __pyx_n_u_fastperiod __pyx_string_tab[703] -#define __pyx_n_u_firstperiod __pyx_string_tab[704] -#define __pyx_n_u_flag __pyx_string_tab[705] -#define __pyx_n_u_flags __pyx_string_tab[706] -#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[707] -#define __pyx_n_u_func_args __pyx_string_tab[708] -#define __pyx_n_u_func_info __pyx_string_tab[709] -#define __pyx_n_u_func_line __pyx_string_tab[710] -#define __pyx_n_u_func_object __pyx_string_tab[711] -#define __pyx_n_u_function_flags __pyx_string_tab[712] -#define __pyx_n_u_function_name __pyx_string_tab[713] -#define __pyx_n_u_functions __pyx_string_tab[714] -#define __pyx_n_u_get_input_arrays __pyx_string_tab[715] -#define __pyx_n_u_get_input_names __pyx_string_tab[716] -#define __pyx_n_u_get_parameters __pyx_string_tab[717] -#define __pyx_n_u_group __pyx_string_tab[718] -#define __pyx_n_u_groups __pyx_string_tab[719] -#define __pyx_n_u_help __pyx_string_tab[720] -#define __pyx_n_u_high __pyx_string_tab[721] -#define __pyx_n_u_high_data __pyx_string_tab[722] -#define __pyx_n_u_holder __pyx_string_tab[723] -#define __pyx_n_u_i __pyx_string_tab[724] -#define __pyx_n_u_id __pyx_string_tab[725] -#define __pyx_n_u_idx __pyx_string_tab[726] -#define __pyx_n_u_import_error __pyx_string_tab[727] -#define __pyx_n_u_in __pyx_string_tab[728] -#define __pyx_n_u_index __pyx_string_tab[729] -#define __pyx_n_u_info __pyx_string_tab[730] -#define __pyx_n_u_input_arrays __pyx_string_tab[731] -#define __pyx_n_u_input_name __pyx_string_tab[732] -#define __pyx_n_u_input_names __pyx_string_tab[733] -#define __pyx_n_u_input_price_series_names __pyx_string_tab[734] -#define __pyx_n_u_integer __pyx_string_tab[735] -#define __pyx_n_u_is_empty __pyx_string_tab[736] -#define __pyx_n_u_items __pyx_string_tab[737] -#define __pyx_n_u_key __pyx_string_tab[738] -#define __pyx_n_u_keys __pyx_string_tab[739] -#define __pyx_n_u_kwargs __pyx_string_tab[740] -#define __pyx_n_u_leftbars __pyx_string_tab[741] -#define __pyx_n_u_length __pyx_string_tab[742] -#define __pyx_n_u_local __pyx_string_tab[743] -#define __pyx_n_u_lookback __pyx_string_tab[744] -#define __pyx_n_u_low __pyx_string_tab[745] -#define __pyx_n_u_low_data __pyx_string_tab[746] -#define __pyx_n_u_lower __pyx_string_tab[747] -#define __pyx_n_u_matype __pyx_string_tab[748] -#define __pyx_n_u_maximum __pyx_string_tab[749] -#define __pyx_n_u_maxperiod __pyx_string_tab[750] -#define __pyx_n_u_minperiod __pyx_string_tab[751] -#define __pyx_n_u_missing __pyx_string_tab[752] -#define __pyx_n_u_missing_keys __pyx_string_tab[753] -#define __pyx_n_u_msg __pyx_string_tab[754] -#define __pyx_n_u_multiplier __pyx_string_tab[755] -#define __pyx_n_u_n __pyx_string_tab[756] -#define __pyx_n_u_name __pyx_string_tab[757] -#define __pyx_n_u_nan __pyx_string_tab[758] -#define __pyx_n_u_nbdev __pyx_string_tab[759] -#define __pyx_n_u_nbdevdn __pyx_string_tab[760] -#define __pyx_n_u_nbdevup __pyx_string_tab[761] -#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[762] -#define __pyx_n_u_num_inputs __pyx_string_tab[763] -#define __pyx_n_u_num_opt_inputs __pyx_string_tab[764] -#define __pyx_n_u_num_outputs __pyx_string_tab[765] -#define __pyx_n_u_numpy __pyx_string_tab[766] -#define __pyx_n_u_object __pyx_string_tab[767] -#define __pyx_n_u_offsetonreverse __pyx_string_tab[768] -#define __pyx_n_u_open __pyx_string_tab[769] -#define __pyx_n_u_openInterest __pyx_string_tab[770] -#define __pyx_n_u_open_data __pyx_string_tab[771] -#define __pyx_n_u_optIn __pyx_string_tab[772] -#define __pyx_n_u_opt_input __pyx_string_tab[773] -#define __pyx_n_u_opt_input_values __pyx_string_tab[774] -#define __pyx_n_u_opt_inputs __pyx_string_tab[775] -#define __pyx_n_u_ordereddict __pyx_string_tab[776] -#define __pyx_n_u_out __pyx_string_tab[777] -#define __pyx_n_u_outaroondown __pyx_string_tab[778] -#define __pyx_n_u_outaroonup __pyx_string_tab[779] -#define __pyx_n_u_outbearpower __pyx_string_tab[780] -#define __pyx_n_u_outbegidx __pyx_string_tab[781] -#define __pyx_n_u_outbullpower __pyx_string_tab[782] -#define __pyx_n_u_outd __pyx_string_tab[783] -#define __pyx_n_u_outfama __pyx_string_tab[784] -#define __pyx_n_u_outfastd __pyx_string_tab[785] -#define __pyx_n_u_outfastk __pyx_string_tab[786] -#define __pyx_n_u_outhaclose __pyx_string_tab[787] -#define __pyx_n_u_outhahigh __pyx_string_tab[788] -#define __pyx_n_u_outhalow __pyx_string_tab[789] -#define __pyx_n_u_outhaopen __pyx_string_tab[790] -#define __pyx_n_u_outinphase __pyx_string_tab[791] -#define __pyx_n_u_outinteger __pyx_string_tab[792] -#define __pyx_n_u_outinteger_data __pyx_string_tab[793] -#define __pyx_n_u_outj __pyx_string_tab[794] -#define __pyx_n_u_outk __pyx_string_tab[795] -#define __pyx_n_u_outleadsine __pyx_string_tab[796] -#define __pyx_n_u_outmacd __pyx_string_tab[797] -#define __pyx_n_u_outmacdhist __pyx_string_tab[798] -#define __pyx_n_u_outmacdsignal __pyx_string_tab[799] -#define __pyx_n_u_outmama __pyx_string_tab[800] -#define __pyx_n_u_outmax __pyx_string_tab[801] -#define __pyx_n_u_outmaxidx __pyx_string_tab[802] -#define __pyx_n_u_outmaxidx_data __pyx_string_tab[803] -#define __pyx_n_u_outmin __pyx_string_tab[804] -#define __pyx_n_u_outminidx __pyx_string_tab[805] -#define __pyx_n_u_outminidx_data __pyx_string_tab[806] -#define __pyx_n_u_outminusvi __pyx_string_tab[807] -#define __pyx_n_u_outnbelement __pyx_string_tab[808] -#define __pyx_n_u_outplusvi __pyx_string_tab[809] -#define __pyx_n_u_output __pyx_string_tab[810] -#define __pyx_n_u_output_flags __pyx_string_tab[811] -#define __pyx_n_u_output_name __pyx_string_tab[812] -#define __pyx_n_u_output_names __pyx_string_tab[813] -#define __pyx_n_u_outputs __pyx_string_tab[814] -#define __pyx_n_u_outputs_valid __pyx_string_tab[815] -#define __pyx_n_u_outquadrature __pyx_string_tab[816] -#define __pyx_n_u_outreal __pyx_string_tab[817] -#define __pyx_n_u_outreallowerband __pyx_string_tab[818] -#define __pyx_n_u_outrealmiddleband __pyx_string_tab[819] -#define __pyx_n_u_outrealupperband __pyx_string_tab[820] -#define __pyx_n_u_outsine __pyx_string_tab[821] -#define __pyx_n_u_outslowd __pyx_string_tab[822] -#define __pyx_n_u_outslowk __pyx_string_tab[823] -#define __pyx_n_u_outsmi __pyx_string_tab[824] -#define __pyx_n_u_outsmisignal __pyx_string_tab[825] -#define __pyx_n_u_outswinghigh __pyx_string_tab[826] -#define __pyx_n_u_outswinglow __pyx_string_tab[827] -#define __pyx_n_u_pandas __pyx_string_tab[828] -#define __pyx_n_u_param __pyx_string_tab[829] -#define __pyx_n_u_param_name __pyx_string_tab[830] -#define __pyx_n_u_parameters __pyx_string_tab[831] -#define __pyx_n_u_params __pyx_string_tab[832] -#define __pyx_n_u_penetration __pyx_string_tab[833] -#define __pyx_n_u_percentile __pyx_string_tab[834] -#define __pyx_n_u_period __pyx_string_tab[835] -#define __pyx_n_u_periods __pyx_string_tab[836] -#define __pyx_n_u_periods_data __pyx_string_tab[837] -#define __pyx_n_u_polars __pyx_string_tab[838] -#define __pyx_n_u_pop __pyx_string_tab[839] -#define __pyx_n_u_price __pyx_string_tab[840] -#define __pyx_n_u_price0 __pyx_string_tab[841] -#define __pyx_n_u_price1 __pyx_string_tab[842] -#define __pyx_n_u_price_series __pyx_string_tab[843] -#define __pyx_n_u_price_series_name_values __pyx_string_tab[844] -#define __pyx_n_u_prices __pyx_string_tab[845] -#define __pyx_n_u_property __pyx_string_tab[846] -#define __pyx_n_u_rangetype __pyx_string_tab[847] -#define __pyx_n_u_real __pyx_string_tab[848] -#define __pyx_n_u_real0 __pyx_string_tab[849] -#define __pyx_n_u_real0_data __pyx_string_tab[850] -#define __pyx_n_u_real1 __pyx_string_tab[851] -#define __pyx_n_u_real1_data __pyx_string_tab[852] -#define __pyx_n_u_real_data __pyx_string_tab[853] -#define __pyx_n_u_replace __pyx_string_tab[854] -#define __pyx_n_u_results __pyx_string_tab[855] -#define __pyx_n_u_ret __pyx_string_tab[856] -#define __pyx_n_u_retCode __pyx_string_tab[857] -#define __pyx_n_u_ret_code __pyx_string_tab[858] -#define __pyx_n_u_rightbars __pyx_string_tab[859] -#define __pyx_n_u_roc1period __pyx_string_tab[860] -#define __pyx_n_u_roc2period __pyx_string_tab[861] -#define __pyx_n_u_rocperiod __pyx_string_tab[862] -#define __pyx_n_u_run __pyx_string_tab[863] -#define __pyx_n_u_s __pyx_string_tab[864] -#define __pyx_n_u_schema __pyx_string_tab[865] -#define __pyx_n_u_secondperiod __pyx_string_tab[866] -#define __pyx_n_u_self __pyx_string_tab[867] -#define __pyx_n_u_series __pyx_string_tab[868] -#define __pyx_n_u_set_function_args __pyx_string_tab[869] -#define __pyx_n_u_set_input_arrays __pyx_string_tab[870] -#define __pyx_n_u_set_input_names __pyx_string_tab[871] -#define __pyx_n_u_set_parameters __pyx_string_tab[872] -#define __pyx_n_u_setdefault __pyx_string_tab[873] -#define __pyx_n_u_settingtype __pyx_string_tab[874] -#define __pyx_n_u_signalmatype __pyx_string_tab[875] -#define __pyx_n_u_signalperiod __pyx_string_tab[876] -#define __pyx_n_u_skip_first __pyx_string_tab[877] -#define __pyx_n_u_slowd_matype __pyx_string_tab[878] -#define __pyx_n_u_slowd_period __pyx_string_tab[879] -#define __pyx_n_u_slowk_matype __pyx_string_tab[880] -#define __pyx_n_u_slowk_period __pyx_string_tab[881] -#define __pyx_n_u_slowlimit __pyx_string_tab[882] -#define __pyx_n_u_slowmatype __pyx_string_tab[883] -#define __pyx_n_u_slowperiod __pyx_string_tab[884] -#define __pyx_n_u_stacklevel __pyx_string_tab[885] -#define __pyx_n_u_startvalue __pyx_string_tab[886] -#define __pyx_n_u_stddevperiod __pyx_string_tab[887] -#define __pyx_n_u_str2bytes __pyx_string_tab[888] -#define __pyx_n_u_stream_AC __pyx_string_tab[889] -#define __pyx_n_u_stream_ACCBANDS __pyx_string_tab[890] -#define __pyx_n_u_stream_ACOS __pyx_string_tab[891] -#define __pyx_n_u_stream_AD __pyx_string_tab[892] -#define __pyx_n_u_stream_ADD __pyx_string_tab[893] -#define __pyx_n_u_stream_ADOSC __pyx_string_tab[894] -#define __pyx_n_u_stream_ADR __pyx_string_tab[895] -#define __pyx_n_u_stream_ADX __pyx_string_tab[896] -#define __pyx_n_u_stream_ADXR __pyx_string_tab[897] -#define __pyx_n_u_stream_AO __pyx_string_tab[898] -#define __pyx_n_u_stream_APO __pyx_string_tab[899] -#define __pyx_n_u_stream_AROON __pyx_string_tab[900] -#define __pyx_n_u_stream_AROONOSC __pyx_string_tab[901] -#define __pyx_n_u_stream_ASIN __pyx_string_tab[902] -#define __pyx_n_u_stream_ATAN __pyx_string_tab[903] -#define __pyx_n_u_stream_ATR __pyx_string_tab[904] -#define __pyx_n_u_stream_AVGDEV __pyx_string_tab[905] -#define __pyx_n_u_stream_AVGPRICE __pyx_string_tab[906] -#define __pyx_n_u_stream_BBANDS __pyx_string_tab[907] -#define __pyx_n_u_stream_BETA __pyx_string_tab[908] -#define __pyx_n_u_stream_BOP __pyx_string_tab[909] -#define __pyx_n_u_stream_CCI __pyx_string_tab[910] -#define __pyx_n_u_stream_CDL2CROWS __pyx_string_tab[911] -#define __pyx_n_u_stream_CDL3BLACKCROWS __pyx_string_tab[912] -#define __pyx_n_u_stream_CDL3INSIDE __pyx_string_tab[913] -#define __pyx_n_u_stream_CDL3LINESTRIKE __pyx_string_tab[914] -#define __pyx_n_u_stream_CDL3OUTSIDE __pyx_string_tab[915] -#define __pyx_n_u_stream_CDL3STARSINSOUTH __pyx_string_tab[916] -#define __pyx_n_u_stream_CDL3WHITESOLDIERS __pyx_string_tab[917] -#define __pyx_n_u_stream_CDLABANDONEDBABY __pyx_string_tab[918] -#define __pyx_n_u_stream_CDLADVANCEBLOCK __pyx_string_tab[919] -#define __pyx_n_u_stream_CDLBELTHOLD __pyx_string_tab[920] -#define __pyx_n_u_stream_CDLBREAKAWAY __pyx_string_tab[921] -#define __pyx_n_u_stream_CDLCLOSINGMARUBOZU __pyx_string_tab[922] -#define __pyx_n_u_stream_CDLCONCEALBABYSWALL __pyx_string_tab[923] -#define __pyx_n_u_stream_CDLCOUNTERATTACK __pyx_string_tab[924] -#define __pyx_n_u_stream_CDLDARKCLOUDCOVER __pyx_string_tab[925] -#define __pyx_n_u_stream_CDLDOJI __pyx_string_tab[926] -#define __pyx_n_u_stream_CDLDOJISTAR __pyx_string_tab[927] -#define __pyx_n_u_stream_CDLDRAGONFLYDOJI __pyx_string_tab[928] -#define __pyx_n_u_stream_CDLENGULFING __pyx_string_tab[929] -#define __pyx_n_u_stream_CDLEVENINGDOJISTAR __pyx_string_tab[930] -#define __pyx_n_u_stream_CDLEVENINGSTAR __pyx_string_tab[931] -#define __pyx_n_u_stream_CDLGAPSIDESIDEWHITE __pyx_string_tab[932] -#define __pyx_n_u_stream_CDLGRAVESTONEDOJI __pyx_string_tab[933] -#define __pyx_n_u_stream_CDLHAMMER __pyx_string_tab[934] -#define __pyx_n_u_stream_CDLHANGINGMAN __pyx_string_tab[935] -#define __pyx_n_u_stream_CDLHARAMI __pyx_string_tab[936] -#define __pyx_n_u_stream_CDLHARAMICROSS __pyx_string_tab[937] -#define __pyx_n_u_stream_CDLHIGHWAVE __pyx_string_tab[938] -#define __pyx_n_u_stream_CDLHIKKAKE __pyx_string_tab[939] -#define __pyx_n_u_stream_CDLHIKKAKEMOD __pyx_string_tab[940] -#define __pyx_n_u_stream_CDLHOMINGPIGEON __pyx_string_tab[941] -#define __pyx_n_u_stream_CDLIDENTICAL3CROWS __pyx_string_tab[942] -#define __pyx_n_u_stream_CDLINNECK __pyx_string_tab[943] -#define __pyx_n_u_stream_CDLINVERTEDHAMMER __pyx_string_tab[944] -#define __pyx_n_u_stream_CDLKICKING __pyx_string_tab[945] -#define __pyx_n_u_stream_CDLKICKINGBYLENGTH __pyx_string_tab[946] -#define __pyx_n_u_stream_CDLLADDERBOTTOM __pyx_string_tab[947] -#define __pyx_n_u_stream_CDLLONGLEGGEDDOJI __pyx_string_tab[948] -#define __pyx_n_u_stream_CDLLONGLINE __pyx_string_tab[949] -#define __pyx_n_u_stream_CDLMARUBOZU __pyx_string_tab[950] -#define __pyx_n_u_stream_CDLMATCHINGLOW __pyx_string_tab[951] -#define __pyx_n_u_stream_CDLMATHOLD __pyx_string_tab[952] -#define __pyx_n_u_stream_CDLMORNINGDOJISTAR __pyx_string_tab[953] -#define __pyx_n_u_stream_CDLMORNINGSTAR __pyx_string_tab[954] -#define __pyx_n_u_stream_CDLONNECK __pyx_string_tab[955] -#define __pyx_n_u_stream_CDLPIERCING __pyx_string_tab[956] -#define __pyx_n_u_stream_CDLRICKSHAWMAN __pyx_string_tab[957] -#define __pyx_n_u_stream_CDLRISEFALL3METHODS __pyx_string_tab[958] -#define __pyx_n_u_stream_CDLSEPARATINGLINES __pyx_string_tab[959] -#define __pyx_n_u_stream_CDLSHOOTINGSTAR __pyx_string_tab[960] -#define __pyx_n_u_stream_CDLSHORTLINE __pyx_string_tab[961] -#define __pyx_n_u_stream_CDLSPINNINGTOP __pyx_string_tab[962] -#define __pyx_n_u_stream_CDLSTALLEDPATTERN __pyx_string_tab[963] -#define __pyx_n_u_stream_CDLSTICKSANDWICH __pyx_string_tab[964] -#define __pyx_n_u_stream_CDLTAKURI __pyx_string_tab[965] -#define __pyx_n_u_stream_CDLTASUKIGAP __pyx_string_tab[966] -#define __pyx_n_u_stream_CDLTHRUSTING __pyx_string_tab[967] -#define __pyx_n_u_stream_CDLTRISTAR __pyx_string_tab[968] -#define __pyx_n_u_stream_CDLUNIQUE3RIVER __pyx_string_tab[969] -#define __pyx_n_u_stream_CDLUPSIDEGAP2CROWS __pyx_string_tab[970] -#define __pyx_n_u_stream_CDLXSIDEGAP3METHODS __pyx_string_tab[971] -#define __pyx_n_u_stream_CEIL __pyx_string_tab[972] -#define __pyx_n_u_stream_CMF __pyx_string_tab[973] -#define __pyx_n_u_stream_CMO __pyx_string_tab[974] -#define __pyx_n_u_stream_CMOU __pyx_string_tab[975] -#define __pyx_n_u_stream_COPPOCK __pyx_string_tab[976] -#define __pyx_n_u_stream_CORREL __pyx_string_tab[977] -#define __pyx_n_u_stream_COS __pyx_string_tab[978] -#define __pyx_n_u_stream_COSH __pyx_string_tab[979] -#define __pyx_n_u_stream_CUMSUM __pyx_string_tab[980] -#define __pyx_n_u_stream_CVI __pyx_string_tab[981] -#define __pyx_n_u_stream_DEMA __pyx_string_tab[982] -#define __pyx_n_u_stream_DIV __pyx_string_tab[983] -#define __pyx_n_u_stream_DONCHIAN __pyx_string_tab[984] -#define __pyx_n_u_stream_DPO __pyx_string_tab[985] -#define __pyx_n_u_stream_DX __pyx_string_tab[986] -#define __pyx_n_u_stream_EFI __pyx_string_tab[987] -#define __pyx_n_u_stream_EMA __pyx_string_tab[988] -#define __pyx_n_u_stream_ER __pyx_string_tab[989] -#define __pyx_n_u_stream_ERI __pyx_string_tab[990] -#define __pyx_n_u_stream_EXP __pyx_string_tab[991] -#define __pyx_n_u_stream_FLOOR __pyx_string_tab[992] -#define __pyx_n_u_stream_FOSC __pyx_string_tab[993] -#define __pyx_n_u_stream_FRACTAL __pyx_string_tab[994] -#define __pyx_n_u_stream_HA __pyx_string_tab[995] -#define __pyx_n_u_stream_HMA __pyx_string_tab[996] -#define __pyx_n_u_stream_HT_DCPERIOD __pyx_string_tab[997] -#define __pyx_n_u_stream_HT_DCPHASE __pyx_string_tab[998] -#define __pyx_n_u_stream_HT_PHASOR __pyx_string_tab[999] -#define __pyx_n_u_stream_HT_SINE __pyx_string_tab[1000] -#define __pyx_n_u_stream_HT_TRENDLINE __pyx_string_tab[1001] -#define __pyx_n_u_stream_HT_TRENDMODE __pyx_string_tab[1002] -#define __pyx_n_u_stream_IMI __pyx_string_tab[1003] -#define __pyx_n_u_stream_KAMA __pyx_string_tab[1004] -#define __pyx_n_u_stream_KC __pyx_string_tab[1005] -#define __pyx_n_u_stream_KDJ __pyx_string_tab[1006] -#define __pyx_n_u_stream_LINEARREG __pyx_string_tab[1007] -#define __pyx_n_u_stream_LINEARREG_ANGLE __pyx_string_tab[1008] -#define __pyx_n_u_stream_LINEARREG_INTERCEPT __pyx_string_tab[1009] -#define __pyx_n_u_stream_LINEARREG_SLOPE __pyx_string_tab[1010] -#define __pyx_n_u_stream_LN __pyx_string_tab[1011] -#define __pyx_n_u_stream_LOG10 __pyx_string_tab[1012] -#define __pyx_n_u_stream_MA __pyx_string_tab[1013] -#define __pyx_n_u_stream_MACD __pyx_string_tab[1014] -#define __pyx_n_u_stream_MACDEXT __pyx_string_tab[1015] -#define __pyx_n_u_stream_MACDFIX __pyx_string_tab[1016] -#define __pyx_n_u_stream_MAMA __pyx_string_tab[1017] -#define __pyx_n_u_stream_MARKETFI __pyx_string_tab[1018] -#define __pyx_n_u_stream_MASSI __pyx_string_tab[1019] -#define __pyx_n_u_stream_MAVP __pyx_string_tab[1020] -#define __pyx_n_u_stream_MAX __pyx_string_tab[1021] -#define __pyx_n_u_stream_MAXINDEX __pyx_string_tab[1022] -#define __pyx_n_u_stream_MEDPRICE __pyx_string_tab[1023] -#define __pyx_n_u_stream_MFI __pyx_string_tab[1024] -#define __pyx_n_u_stream_MIDPOINT __pyx_string_tab[1025] -#define __pyx_n_u_stream_MIDPRICE __pyx_string_tab[1026] -#define __pyx_n_u_stream_MIN __pyx_string_tab[1027] -#define __pyx_n_u_stream_MININDEX __pyx_string_tab[1028] -#define __pyx_n_u_stream_MINMAX __pyx_string_tab[1029] -#define __pyx_n_u_stream_MINMAXINDEX __pyx_string_tab[1030] -#define __pyx_n_u_stream_MINUS_DI __pyx_string_tab[1031] -#define __pyx_n_u_stream_MINUS_DM __pyx_string_tab[1032] -#define __pyx_n_u_stream_MOM __pyx_string_tab[1033] -#define __pyx_n_u_stream_MULT __pyx_string_tab[1034] -#define __pyx_n_u_stream_NATR __pyx_string_tab[1035] -#define __pyx_n_u_stream_NVI __pyx_string_tab[1036] -#define __pyx_n_u_stream_OBV __pyx_string_tab[1037] -#define __pyx_n_u_stream_PERCENTILE __pyx_string_tab[1038] -#define __pyx_n_u_stream_PERCENTRANK __pyx_string_tab[1039] -#define __pyx_n_u_stream_PLUS_DI __pyx_string_tab[1040] -#define __pyx_n_u_stream_PLUS_DM __pyx_string_tab[1041] -#define __pyx_n_u_stream_PPO __pyx_string_tab[1042] -#define __pyx_n_u_stream_PVI __pyx_string_tab[1043] -#define __pyx_n_u_stream_PVO __pyx_string_tab[1044] -#define __pyx_n_u_stream_PVT __pyx_string_tab[1045] -#define __pyx_n_u_stream_QSTICK __pyx_string_tab[1046] -#define __pyx_n_u_stream_RMA __pyx_string_tab[1047] -#define __pyx_n_u_stream_ROC __pyx_string_tab[1048] -#define __pyx_n_u_stream_ROCP __pyx_string_tab[1049] -#define __pyx_n_u_stream_ROCR __pyx_string_tab[1050] -#define __pyx_n_u_stream_ROCR100 __pyx_string_tab[1051] -#define __pyx_n_u_stream_RSI __pyx_string_tab[1052] -#define __pyx_n_u_stream_RVI __pyx_string_tab[1053] -#define __pyx_n_u_stream_RVOL __pyx_string_tab[1054] -#define __pyx_n_u_stream_SAR __pyx_string_tab[1055] -#define __pyx_n_u_stream_SAREXT __pyx_string_tab[1056] -#define __pyx_n_u_stream_SIN __pyx_string_tab[1057] -#define __pyx_n_u_stream_SINH __pyx_string_tab[1058] -#define __pyx_n_u_stream_SMA __pyx_string_tab[1059] -#define __pyx_n_u_stream_SMI __pyx_string_tab[1060] -#define __pyx_n_u_stream_SQRT __pyx_string_tab[1061] -#define __pyx_n_u_stream_STDDEV __pyx_string_tab[1062] -#define __pyx_n_u_stream_STOCH __pyx_string_tab[1063] -#define __pyx_n_u_stream_STOCHF __pyx_string_tab[1064] -#define __pyx_n_u_stream_STOCHRSI __pyx_string_tab[1065] -#define __pyx_n_u_stream_SUB __pyx_string_tab[1066] -#define __pyx_n_u_stream_SUM __pyx_string_tab[1067] -#define __pyx_n_u_stream_SUPERTREND __pyx_string_tab[1068] -#define __pyx_n_u_stream_T3 __pyx_string_tab[1069] -#define __pyx_n_u_stream_TAN __pyx_string_tab[1070] -#define __pyx_n_u_stream_TANH __pyx_string_tab[1071] -#define __pyx_n_u_stream_TEMA __pyx_string_tab[1072] -#define __pyx_n_u_stream_TRANGE __pyx_string_tab[1073] -#define __pyx_n_u_stream_TRIMA __pyx_string_tab[1074] -#define __pyx_n_u_stream_TRIX __pyx_string_tab[1075] -#define __pyx_n_u_stream_TSF __pyx_string_tab[1076] -#define __pyx_n_u_stream_TSI __pyx_string_tab[1077] -#define __pyx_n_u_stream_TYPPRICE __pyx_string_tab[1078] -#define __pyx_n_u_stream_ULTOSC __pyx_string_tab[1079] -#define __pyx_n_u_stream_VAR __pyx_string_tab[1080] -#define __pyx_n_u_stream_VHF __pyx_string_tab[1081] -#define __pyx_n_u_stream_VORTEX __pyx_string_tab[1082] -#define __pyx_n_u_stream_VWAP __pyx_string_tab[1083] -#define __pyx_n_u_stream_VWMA __pyx_string_tab[1084] -#define __pyx_n_u_stream_WAD __pyx_string_tab[1085] -#define __pyx_n_u_stream_WCLPRICE __pyx_string_tab[1086] -#define __pyx_n_u_stream_WILLR __pyx_string_tab[1087] -#define __pyx_n_u_stream_WMA __pyx_string_tab[1088] -#define __pyx_n_u_stream_ZLEMA __pyx_string_tab[1089] -#define __pyx_n_u_sys __pyx_string_tab[1090] -#define __pyx_n_u_table __pyx_string_tab[1091] -#define __pyx_n_u_talib__ta_lib __pyx_string_tab[1092] -#define __pyx_n_u_threading __pyx_string_tab[1093] -#define __pyx_n_u_timeStamp __pyx_string_tab[1094] -#define __pyx_n_u_timeperiod __pyx_string_tab[1095] -#define __pyx_n_u_timeperiod1 __pyx_string_tab[1096] -#define __pyx_n_u_timeperiod2 __pyx_string_tab[1097] -#define __pyx_n_u_timeperiod3 __pyx_string_tab[1098] -#define __pyx_n_u_to_numpy __pyx_string_tab[1099] -#define __pyx_n_u_type_2 __pyx_string_tab[1100] -#define __pyx_n_u_type __pyx_string_tab[1101] -#define __pyx_n_u_unst_id __pyx_string_tab[1102] -#define __pyx_n_u_update __pyx_string_tab[1103] -#define __pyx_n_u_update_info __pyx_string_tab[1104] -#define __pyx_n_u_upper __pyx_string_tab[1105] -#define __pyx_n_u_value __pyx_string_tab[1106] -#define __pyx_n_u_values __pyx_string_tab[1107] -#define __pyx_n_u_version __pyx_string_tab[1108] -#define __pyx_n_u_vfactor __pyx_string_tab[1109] -#define __pyx_n_u_volume __pyx_string_tab[1110] -#define __pyx_n_u_volume_data __pyx_string_tab[1111] -#define __pyx_n_u_warn __pyx_string_tab[1112] -#define __pyx_n_u_warnings __pyx_string_tab[1113] -#define __pyx_n_u_wmaperiod __pyx_string_tab[1114] -#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[1115] -#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[1116] -#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[1117] -#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[1118] -#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[1119] -#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[1120] -#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[1121] -#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[1122] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[1123] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[1124] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[1125] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[1126] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[1127] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[1128] -#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[1129] -#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[1130] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[1131] -#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[1132] -#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[1133] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[1134] -#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[1135] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[1136] -#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[1137] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[1138] -#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[1139] -#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[1140] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[1141] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[1142] -#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[1143] -#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[1144] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[1145] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[1146] -#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[1147] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[1148] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_Z_gghhwwxx __pyx_string_tab[1149] -#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq __pyx_string_tab[1150] -#define __pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr __pyx_string_tab[1151] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj __pyx_string_tab[1152] -#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[1153] -#define __pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r __pyx_string_tab[1154] -#define __pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_jjkkwwx_y __pyx_string_tab[1155] -#define __pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O __pyx_string_tab[1156] -#define __pyx_kp_b_iso88591_DA_aq_Q_T_q_a_fHBd_n_kkllxxy_z __pyx_string_tab[1157] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[1158] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk __pyx_string_tab[1159] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[1160] -#define __pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy __pyx_string_tab[1161] -#define __pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu __pyx_string_tab[1162] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql __pyx_string_tab[1163] -#define __pyx_kp_b_iso88591_EE_6_V6_a_fHBd_P_jjsst_u_A_A_B __pyx_string_tab[1164] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm __pyx_string_tab[1165] -#define __pyx_kp_b_iso88591_6_V6_a_6_4vXRt_Q___kkll_Qk_1 __pyx_string_tab[1166] -#define __pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll __pyx_string_tab[1167] -#define __pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss __pyx_string_tab[1168] -#define __pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q __pyx_string_tab[1169] -#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn __pyx_string_tab[1170] -#define __pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo __pyx_string_tab[1171] -#define __pyx_kp_b_iso88591_FF___aq_Q_T_q_a_BfHBd_lR_kkxxy __pyx_string_tab[1172] -#define __pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf __pyx_string_tab[1173] -#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[1174] -#define __pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn __pyx_string_tab[1175] -#define __pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q __pyx_string_tab[1176] -#define __pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S __pyx_string_tab[1177] -#define __pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno __pyx_string_tab[1178] -#define __pyx_kp_b_iso88591_2J_aq_Q_T_q_a_r_xr_V82T_Ubboopp __pyx_string_tab[1179] -#define __pyx_kp_b_iso88591_34_aq_Q_T_q_a_fHBd_Vccddppq_r_A __pyx_string_tab[1180] -#define __pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A __pyx_string_tab[1181] -#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[1182] -#define __pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v __pyx_string_tab[1183] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I __pyx_string_tab[1184] -#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[1185] -#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[1186] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[1187] -#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[1188] -#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[1189] -#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[1190] -#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[1191] -#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[1192] -#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[1193] -#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[1194] -#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[1195] -#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[1196] -#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[1197] -#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[1198] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[1199] -#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[1200] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[1201] -#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[1202] -#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[1203] -#define __pyx_kp_b_iso88591_D_aq_Q_Qa_y_1_6_a_r_xr_V82T_Xee __pyx_string_tab[1204] -#define __pyx_kp_b_iso88591_D_ttu_aq_Q_Qa_y_1_6_a_r_xr_V82T __pyx_string_tab[1205] -#define __pyx_kp_b_iso88591_EF_aq_Q_Qa_y_1_6_a_fHBd_kYffggs __pyx_string_tab[1206] -#define __pyx_kp_b_iso88591_E_aq_Q_Qa_y_1_6_a_fHBd_kYffrrss __pyx_string_tab[1207] -#define __pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr __pyx_string_tab[1208] -#define __pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv __pyx_string_tab[1209] -#define __pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh __pyx_string_tab[1210] -#define __pyx_kp_b_iso88591_G___aq_Q_Qa_y_1_6_a_F_D_hb_LP_h __pyx_string_tab[1211] -#define __pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p __pyx_string_tab[1212] -#define __pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk __pyx_string_tab[1213] -#define __pyx_kp_b_iso88591_IJ_Kq_q_6_7_a_fHBd_jjkkwwx_y_H __pyx_string_tab[1214] -#define __pyx_kp_b_iso88591_IJ_aq_Q_6_6_a_6_4vXRt_jjkkwwx_y __pyx_string_tab[1215] -#define __pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk __pyx_string_tab[1216] -#define __pyx_kp_b_iso88591_I___aq_Q_Qa_y_1_6_1_BfHBd_lR_hh __pyx_string_tab[1217] -#define __pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k __pyx_string_tab[1218] -#define __pyx_kp_b_iso88591_JK_aq_Q_Kq_q_6_a_2V82T_xr_Q_kkl __pyx_string_tab[1219] -#define __pyx_kp_b_iso88591_JK0_aq_Q_Qa_y_1_6_q_q_RvXRt6_4 __pyx_string_tab[1220] -#define __pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j __pyx_string_tab[1221] -#define __pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll __pyx_string_tab[1222] -#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[1223] -#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[1224] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1225] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[1226] -#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[1227] -#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[1228] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[1229] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[1230] -#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[1231] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[1232] -#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1233] -#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[1234] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[1235] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[1236] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[1237] -#define __pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V __pyx_string_tab[1238] -#define __pyx_kp_b_iso88591_x_y_P_P_Q_6_aq_Q_Qa_y_1_Kq_q_6 __pyx_string_tab[1239] -#define __pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd __pyx_string_tab[1240] -#define __pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_1_1_fHB __pyx_string_tab[1241] -#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[1242] -#define __pyx_kp_b_iso88591_ay_z_R_R_j_j_k_4_aq_Q_Qa_y_1_Kq __pyx_string_tab[1243] -#define __pyx_kp_b_iso88591_a_V_V_l_l_F_F_G_aq_Q_Qa_y_1_Kq __pyx_string_tab[1244] -#define __pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX __pyx_string_tab[1245] -#define __pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h __pyx_string_tab[1246] -#define __pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K __pyx_string_tab[1247] -#define __pyx_kp_b_iso88591_de_aq_Q_Qa_y_1_Kq_q_6_a_2V82T_x __pyx_string_tab[1248] -#define __pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a __pyx_string_tab[1249] -#define __pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a __pyx_string_tab[1250] -#define __pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd __pyx_string_tab[1251] -#define __pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt __pyx_string_tab[1252] -#define __pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv __pyx_string_tab[1253] -#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[1254] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[1255] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd __pyx_string_tab[1256] -#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1257] -#define __pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ __pyx_string_tab[1258] -#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1259] -#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1260] -#define __pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1261] -#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[1262] -#define __pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1263] -#define __pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1264] -#define __pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1265] -#define __pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA __pyx_string_tab[1266] -#define __pyx_kp_b_iso88591_i_A_A_B_0_aq_Q_Qa_y_1_Kq_q_6_a __pyx_string_tab[1267] -#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[1268] -#define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[1269] -#define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[1270] -#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[1271] -#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[1272] -#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[1273] -#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[1274] -#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[1275] -#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[1276] -#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[1277] -#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[1278] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[1279] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[1280] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[1281] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[1282] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[1283] -#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[1284] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[1285] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[1286] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[1287] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[1288] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[1289] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[1290] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[1291] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[1292] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[1293] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[1294] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[1295] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[1296] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[1297] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[1298] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[1299] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[1300] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[1301] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[1302] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[1303] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[1304] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[1305] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[1306] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[1307] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[1308] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl __pyx_string_tab[1309] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1 __pyx_string_tab[1310] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk __pyx_string_tab[1311] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql __pyx_string_tab[1312] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_QRR___nnoop __pyx_string_tab[1313] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs __pyx_string_tab[1314] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q __pyx_string_tab[1315] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv __pyx_string_tab[1316] -#define __pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q __pyx_string_tab[1317] -#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[1318] -#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[1319] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk __pyx_string_tab[1320] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[1321] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[1322] -#define __pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1 __pyx_string_tab[1323] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[1324] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[1325] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd_kYf __pyx_string_tab[1326] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr __pyx_string_tab[1327] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4 __pyx_string_tab[1328] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_6_a_a_RvXRt6_4_S __pyx_string_tab[1329] -#define __pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz __pyx_string_tab[1330] -#define __pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr __pyx_string_tab[1331] -#define __pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1 __pyx_string_tab[1332] -#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj __pyx_string_tab[1333] -#define __pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz __pyx_string_tab[1334] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr __pyx_string_tab[1335] -#define __pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_6_4vX __pyx_string_tab[1336] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH __pyx_string_tab[1337] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv __pyx_string_tab[1338] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2 __pyx_string_tab[1339] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb __pyx_string_tab[1340] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr __pyx_string_tab[1341] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd __pyx_string_tab[1342] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v __pyx_string_tab[1343] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D __pyx_string_tab[1344] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82 __pyx_string_tab[1345] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB __pyx_string_tab[1346] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR __pyx_string_tab[1347] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2 __pyx_string_tab[1348] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2 __pyx_string_tab[1349] -#define __pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2 __pyx_string_tab[1350] -#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[1351] -#define __pyx_kp_b_iso88591_8_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_q __pyx_string_tab[1352] -#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[1353] -#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[1354] -#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[1355] -#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[1356] -#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[1357] -#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[1358] -#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[1359] -#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[1360] -#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[1361] -#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[1362] -#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[1363] -#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[1364] -#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[1365] -#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[1366] -#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[1367] -#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[1368] -#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[1369] -#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[1370] -#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[1371] -#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[1372] -#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[1373] -#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[1374] -#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[1375] -#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[1376] -#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[1377] -#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[1378] -#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[1379] -#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[1380] -#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[1381] -#define __pyx_int_0 __pyx_number_tab[0] -#define __pyx_int_neg_1 __pyx_number_tab[1] -#define __pyx_int_1 __pyx_number_tab[2] -#define __pyx_int_2 __pyx_number_tab[3] -#define __pyx_int_3 __pyx_number_tab[4] -#define __pyx_int_4 __pyx_number_tab[5] -#define __pyx_int_8 __pyx_number_tab[6] -#define __pyx_int_12 __pyx_number_tab[7] -#define __pyx_int_14 __pyx_number_tab[8] -#define __pyx_int_16 __pyx_number_tab[9] -#define __pyx_int_32 __pyx_number_tab[10] -#define __pyx_int_64 __pyx_number_tab[11] -#define __pyx_int_128 __pyx_number_tab[12] -#define __pyx_int_256 __pyx_number_tab[13] -#define __pyx_int_512 __pyx_number_tab[14] -#define __pyx_int_1024 __pyx_number_tab[15] -#define __pyx_int_2048 __pyx_number_tab[16] -#define __pyx_int_4096 __pyx_number_tab[17] -#define __pyx_int_8192 __pyx_number_tab[18] -#define __pyx_int_16777216 __pyx_number_tab[19] -#define __pyx_int_33554432 __pyx_number_tab[20] -#define __pyx_int_67108864 __pyx_number_tab[21] -#define __pyx_int_134217728 __pyx_number_tab[22] -#define __pyx_int_268435456 __pyx_number_tab[23] -#define __pyx_int_536870912 __pyx_number_tab[24] -#define __pyx_int_1073741824 __pyx_number_tab[25] -/* #### Code section: module_state_clear ### */ -#if CYTHON_USE_MODULE_STATE -static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { - __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m); - if (!clear_module_state) return 0; - Py_CLEAR(clear_module_state->__pyx_d); - Py_CLEAR(clear_module_state->__pyx_b); - Py_CLEAR(clear_module_state->__pyx_cython_runtime); - Py_CLEAR(clear_module_state->__pyx_empty_tuple); - Py_CLEAR(clear_module_state->__pyx_empty_bytes); - Py_CLEAR(clear_module_state->__pyx_empty_unicode); - #if CYTHON_PEP489_MULTI_PHASE_INIT - __Pyx_State_RemoveModule(NULL); - #endif - Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character); - Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc); - Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_items.method); - Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_pop.method); - Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method); - for (int i=0; i<14; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } - for (int i=0; i<450; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<1382; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } - for (int i=0; i<26; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } -/* #### Code section: module_state_clear_contents ### */ -/* CommonTypesMetaclass.module_state_clear */ -Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType); -/* CythonFunctionPerModule.module_state_clear */ -Py_CLEAR(clear_module_state->__pyx_CyFunctionType); +struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* #### Code section: module_state_clear_end ### */ -return 0; -} -#endif -/* #### Code section: module_state_traverse ### */ -#if CYTHON_USE_MODULE_STATE -static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { - __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m); - if (!traverse_module_state) return 0; - Py_VISIT(traverse_module_state->__pyx_d); - Py_VISIT(traverse_module_state->__pyx_b); - Py_VISIT(traverse_module_state->__pyx_cython_runtime); - __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple); - __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes); - __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode); - Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character); - Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc); - Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_items.method); - Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_pop.method); - Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method); - for (int i=0; i<14; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } - for (int i=0; i<450; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<1382; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } - for (int i=0; i<26; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } -/* #### Code section: module_state_traverse_contents ### */ -/* CommonTypesMetaclass.module_state_traverse */ -Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType); -/* CythonFunctionPerModule.module_state_traverse */ -Py_VISIT(traverse_module_state->__pyx_CyFunctionType); +struct __pyx_obj_5talib_7_ta_lib_COS_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -/* #### Code section: module_state_traverse_end ### */ -return 0; -} -#endif -/* #### Code section: module_code ### */ +struct __pyx_obj_5talib_7_ta_lib_COSH_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self) { - npy_intp __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyDataType_ELSIZE(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_CVI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self) { - npy_intp __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_DIV_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_DPO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1; - __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self); +struct __pyx_obj_5talib_7_ta_lib_DX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(((PyObject *)__pyx_t_1)); - __pyx_r = ((PyObject *)__pyx_t_1); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_EFI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_EMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1; - __Pyx_RefNannySetupContext("__get__", 0); +struct __pyx_obj_5talib_7_ta_lib_ER_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_1 = PyDataType_NAMES(__pyx_v_self); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(((PyObject*)__pyx_t_1)); - __pyx_r = ((PyObject*)__pyx_t_1); - } - __Pyx_XDECREF(__pyx_temp); - } +struct __pyx_obj_5talib_7_ta_lib_ERI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_EXP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self) { - PyArray_ArrayDescr *__pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyDataType_SUBARRAY(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_HA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self) { - npy_uint64 __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_HMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyDataType_FLAGS(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self) { - int __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self) { - npy_intp __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_IMI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self) { - npy_intp __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_KC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self) { - int __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self) { - npy_intp *__pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_LN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self) { - void **__pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_MACD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self) { - PyObject *__pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyArray_BASE(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self) { - PyArray_Descr *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyArray_Descr *__pyx_t_1; - __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_1 = PyArray_DESCR(__pyx_v_self); +struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - PyArray_Descr *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1)); - __pyx_r = ((PyArray_Descr *)__pyx_t_1); - } - __Pyx_XDECREF((PyObject *)__pyx_temp); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_MAX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self) { - int __pyx_r; +struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - __pyx_r = PyArray_NDIM(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_MFI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self) { - npy_intp *__pyx_r; +struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - __pyx_r = PyArray_DIMS(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_MIN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self) { - npy_intp *__pyx_r; +struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - __pyx_r = PyArray_STRIDES(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self) { - npy_intp __pyx_r; +struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - __pyx_r = PyArray_SIZE(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_MOM_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_MULT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self) { - char *__pyx_r; +struct __pyx_obj_5talib_7_ta_lib_NATR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - __pyx_r = PyArray_BYTES(__pyx_v_self); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_NVI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_OBV_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); +struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_PPO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); +struct __pyx_obj_5talib_7_ta_lib_PVI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_PVO_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_PVT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_RMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); +struct __pyx_obj_5talib_7_ta_lib_ROC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d); +struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - if (__pyx_t_1) { +struct __pyx_obj_5talib_7_ta_lib_RSI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray___get__(__pyx_v_d)->shape; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(((PyObject*)__pyx_t_2)); - __pyx_r = ((PyObject*)__pyx_t_2); - } - __Pyx_XDECREF(__pyx_temp); - } +struct __pyx_obj_5talib_7_ta_lib_RVI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - goto __pyx_L0; - } +struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /*else*/ { - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple); - __pyx_r = __pyx_mstate_global->__pyx_empty_tuple; - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - } +struct __pyx_obj_5talib_7_ta_lib_SAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - int __pyx_t_1; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - Py_INCREF(__pyx_v_base); +struct __pyx_obj_5talib_7_ta_lib_SIN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(3, 1028, __pyx_L1_error) +struct __pyx_obj_5talib_7_ta_lib_SINH_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; +struct __pyx_obj_5talib_7_ta_lib_SMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -} +struct __pyx_obj_5talib_7_ta_lib_SMI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { - PyObject *__pyx_v_base; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - __pyx_v_base = PyArray_BASE(__pyx_v_arr); +struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_1 = (__pyx_v_base == NULL); - if (__pyx_t_1) { +struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(((PyObject *)__pyx_v_base)); - __pyx_r = ((PyObject *)__pyx_v_base); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; +struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_SUB_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { +struct __pyx_obj_5talib_7_ta_lib_SUM_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1040, __pyx_L3_error) +struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L8_try_end; - __pyx_L3_error:; - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1041, __pyx_L5_except_error) - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); +struct __pyx_obj_5talib_7_ta_lib_T3_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_9 = NULL; - __pyx_t_10 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to}; - __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1042, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - } - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(3, 1042, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); - goto __pyx_L1_error; - __pyx_L8_try_end:; - } +struct __pyx_obj_5talib_7_ta_lib_TAN_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; +struct __pyx_obj_5talib_7_ta_lib_TANH_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { +struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1046, __pyx_L3_error) +struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L8_try_end; - __pyx_L3_error:; - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1047, __pyx_L5_except_error) - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); +struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_9 = NULL; - __pyx_t_10 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo}; - __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1048, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - } - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(3, 1048, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); - goto __pyx_L1_error; - __pyx_L8_try_end:; - } +struct __pyx_obj_5talib_7_ta_lib_TSF_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; +struct __pyx_obj_5talib_7_ta_lib_TSI_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { +struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(3, 1052, __pyx_L3_error) +struct __pyx_obj_5talib_7_ta_lib_VAR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L8_try_end; - __pyx_L3_error:; - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(3, 1053, __pyx_L5_except_error) - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_7); +struct __pyx_obj_5talib_7_ta_lib_VHF_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_t_9 = NULL; - __pyx_t_10 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo}; - __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 1054, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - } - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(3, 1054, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); - goto __pyx_L1_error; - __pyx_L8_try_end:; - } +struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; +struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { - int __pyx_r; - { +struct __pyx_obj_5talib_7_ta_lib_WAD_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; -static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { - int __pyx_r; +struct __pyx_obj_5talib_7_ta_lib_WMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - { - __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); - } - goto __pyx_L0; +struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream { + struct __pyx_obj_5talib_7_ta_lib_Stream __pyx_base; +}; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_Stream { + TA_RetCode (*_out_range)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *); + TA_RetCode (*_advance)(struct __pyx_obj_5talib_7_ta_lib_Stream *); +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *__pyx_vtabptr_5talib_7_ta_lib_Stream; -static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { - npy_datetime __pyx_r; - { - __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; - } - goto __pyx_L0; +struct __pyx_vtabstruct_5talib_7_ta_lib_AC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_AC_Stream *__pyx_vtabptr_5talib_7_ta_lib_AC_Stream; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_ACCBANDS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream; -static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { - npy_timedelta __pyx_r; - { - __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; - } - goto __pyx_L0; +struct __pyx_vtabstruct_5talib_7_ta_lib_ACOS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ACOS_Stream *__pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_AD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_AD_Stream *__pyx_vtabptr_5talib_7_ta_lib_AD_Stream; -static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { - NPY_DATETIMEUNIT __pyx_r; - { - __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); - } - goto __pyx_L0; +struct __pyx_vtabstruct_5talib_7_ta_lib_ADD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADD_Stream *__pyx_vtabptr_5talib_7_ta_lib_ADD_Stream; - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_ADOSC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADOSC_Stream *__pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream; -static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code, CYTHON_UNUSED int __pyx_skip_dispatch) { - PyObject *__pyx_v_description = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5[5]; - Py_ssize_t __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_check_success", 0); - switch (__pyx_v_ret_code) { - case 0: - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; +struct __pyx_vtabstruct_5talib_7_ta_lib_ADR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADR_Stream *__pyx_vtabptr_5talib_7_ta_lib_ADR_Stream; - break; - case 1: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Library_Not_Initialized_TA_LIB_N); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Library_Not_Initialized_TA_LIB_N; - break; - case 2: +struct __pyx_vtabstruct_5talib_7_ta_lib_ADX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADX_Stream *__pyx_vtabptr_5talib_7_ta_lib_ADX_Stream; - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Bad_Parameter_TA_BAD_PARAM); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Bad_Parameter_TA_BAD_PARAM; - break; - case 3: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Allocation_Error_TA_ALLOC_ERR); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Allocation_Error_TA_ALLOC_ERR; +struct __pyx_vtabstruct_5talib_7_ta_lib_ADXR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADXR_Stream *__pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream; - break; - case 4: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU; - break; - case 5: +struct __pyx_vtabstruct_5talib_7_ta_lib_AO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_AO_Stream *__pyx_vtabptr_5talib_7_ta_lib_AO_Stream; - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F; - break; - case 6: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE; +struct __pyx_vtabstruct_5talib_7_ta_lib_APO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_APO_Stream *__pyx_vtabptr_5talib_7_ta_lib_APO_Stream; - break; - case 7: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_TA_INVA); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_TA_INVA; - break; - case 8: +struct __pyx_vtabstruct_5talib_7_ta_lib_AROON_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_AROON_Stream *__pyx_vtabptr_5talib_7_ta_lib_AROON_Stream; - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_Type_TA); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_Type_TA; - break; - case 9: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Function_TA_IN); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Function_TA_IN; +struct __pyx_vtabstruct_5talib_7_ta_lib_AROONOSC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_AROONOSC_Stream *__pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream; - break; - case 10: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Input_Not_All_Initialized_TA_INP); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Input_Not_All_Initialized_TA_INP; - break; - case 11: +struct __pyx_vtabstruct_5talib_7_ta_lib_ASIN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ASIN_Stream *__pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream; - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Output_Not_All_Initialized_TA_OU); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Output_Not_All_Initialized_TA_OU; - break; - case 12: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Out_of_Range_Start_Index_TA_OUT); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Out_of_Range_Start_Index_TA_OUT; +struct __pyx_vtabstruct_5talib_7_ta_lib_ATAN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ATAN_Stream *__pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream; - break; - case 13: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF; - break; - case 14: +struct __pyx_vtabstruct_5talib_7_ta_lib_ATR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ATR_Stream *__pyx_vtabptr_5talib_7_ta_lib_ATR_Stream; - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS; - break; - case 15: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Bad_Object_TA_BAD_OBJECT); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Bad_Object_TA_BAD_OBJECT; +struct __pyx_vtabstruct_5talib_7_ta_lib_AVGDEV_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_AVGDEV_Stream *__pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream; - break; - case 16: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED; - break; - case 17: +struct __pyx_vtabstruct_5talib_7_ta_lib_AVGPRICE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream; - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Insufficient_History_TA_INSUFFIC); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Insufficient_History_TA_INSUFFIC; - break; - case 0x1388: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR; +struct __pyx_vtabstruct_5talib_7_ta_lib_BBANDS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_BBANDS_Stream *__pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream; - break; - case 0xFFFF: - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR; - break; - default: +struct __pyx_vtabstruct_5talib_7_ta_lib_BETA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_BETA_Stream *__pyx_vtabptr_5talib_7_ta_lib_BETA_Stream; - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Unknown_Error); - __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Unknown_Error; - break; - } - __pyx_t_2 = NULL; - __pyx_t_3 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyUnicode_From_TA_RetCode(__pyx_v_ret_code, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5[0] = __pyx_t_3; - __pyx_t_5[1] = __pyx_mstate_global->__pyx_kp_u_function_failed_with_error_code; - __pyx_t_5[2] = __pyx_t_4; - __pyx_t_5[3] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_5[4] = __pyx_v_description; +struct __pyx_vtabstruct_5talib_7_ta_lib_BOP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_BOP_Stream *__pyx_vtabptr_5talib_7_ta_lib_BOP_Stream; - __pyx_t_6 = 35; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_6 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5[2]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5[4]); - #endif - __pyx_t_7 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_7 |= __Pyx_PyUnicode_KIND_04(__pyx_t_5[0]) | __Pyx_PyUnicode_KIND_04(__pyx_t_5[4]); - #endif - __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_5, 5, __pyx_t_6, __pyx_t_7); - if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 51, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 51, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 51, __pyx_L1_error) - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_description); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_CCI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CCI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CCI_Stream; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib__ta_check_success, "_ta_check_success(str function_name, TA_RetCode ret_code)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_1_ta_check_success = {"_ta_check_success", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_1_ta_check_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib__ta_check_success}; -static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_function_name = 0; - TA_RetCode __pyx_v_ret_code; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_check_success (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_ret_code,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 8, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 8, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 8, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_check_success", 0) < (0)) __PYX_ERR(1, 8, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, i); __PYX_ERR(1, 8, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 8, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 8, __pyx_L3_error) - } - __pyx_v_function_name = ((PyObject*)values[0]); - __pyx_v_ret_code = __Pyx_PyLong_As_TA_RetCode(values[1]); if (unlikely((__pyx_v_ret_code == ((TA_RetCode)-1)) && PyErr_Occurred())) __PYX_ERR(1, 8, __pyx_L3_error) - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 8, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function_name), (&PyUnicode_Type), 1, "function_name", 1))) __PYX_ERR(1, 8, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib__ta_check_success(__pyx_self, __pyx_v_function_name, __pyx_v_ret_code); - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_CDL2CROWS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream; -static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_check_success", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_ret_code, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3BLACKCROWS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_2_ta_initialize, "_ta_initialize()"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_3_ta_initialize = {"_ta_initialize", (PyCFunction)__pyx_pw_5talib_7_ta_lib_3_ta_initialize, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_2_ta_initialize}; -static PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_initialize (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_2_ta_initialize(__pyx_self); - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self) { - TA_RetCode __pyx_v_ret_code; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_initialize", 0); +struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3INSIDE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream; - __pyx_v_ret_code = TA_Initialize(); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Initialize, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 57, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3LINESTRIKE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib._ta_initialize", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3OUTSIDE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_4_ta_shutdown, "_ta_shutdown()"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_5_ta_shutdown = {"_ta_shutdown", (PyCFunction)__pyx_pw_5talib_7_ta_lib_5_ta_shutdown, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_4_ta_shutdown}; -static PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_shutdown (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_4_ta_shutdown(__pyx_self); - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self) { - TA_RetCode __pyx_v_ret_code; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_shutdown", 0); +struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; - __pyx_v_ret_code = TA_Shutdown(); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Shutdown, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib._ta_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLABANDONEDBABY_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_7MA_Type___init__, "MA_Type.__init__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_7MA_Type___init__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_self = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 68, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 68, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(1, 68, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(1, 68, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 68, __pyx_L3_error) - } - __pyx_v_self = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 68, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.MA_Type.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type___init__(__pyx_self, __pyx_v_self); - /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLBELTHOLD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLBREAKAWAY_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDOJI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDOJISTAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLENGULFING_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLEVENINGSTAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHAMMER_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHANGINGMAN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHARAMI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHARAMICROSS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIGHWAVE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIKKAKE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLINNECK_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLKICKING_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLONGLINE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMARUBOZU_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMATCHINGLOW_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMATHOLD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMORNINGSTAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLONNECK_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLPIERCING_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSHORTLINE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSPINNINGTOP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTAKURI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTASUKIGAP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTHRUSTING_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTRISTAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CEIL_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CEIL_Stream *__pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CMF_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CMF_Stream *__pyx_vtabptr_5talib_7_ta_lib_CMF_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CMO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CMO_Stream *__pyx_vtabptr_5talib_7_ta_lib_CMO_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CMOU_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CMOU_Stream *__pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_COPPOCK_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_COPPOCK_Stream *__pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CORREL_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CORREL_Stream *__pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_COS_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_COS_Stream *__pyx_vtabptr_5talib_7_ta_lib_COS_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_COSH_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_COSH_Stream *__pyx_vtabptr_5talib_7_ta_lib_COSH_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CUMSUM_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CUMSUM_Stream *__pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_CVI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_CVI_Stream *__pyx_vtabptr_5talib_7_ta_lib_CVI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_DEMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_DEMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_DIV_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_DIV_Stream *__pyx_vtabptr_5talib_7_ta_lib_DIV_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_DONCHIAN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_DPO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_DPO_Stream *__pyx_vtabptr_5talib_7_ta_lib_DPO_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_DX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_DX_Stream *__pyx_vtabptr_5talib_7_ta_lib_DX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_EFI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_EFI_Stream *__pyx_vtabptr_5talib_7_ta_lib_EFI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_EMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_EMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_EMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ER_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ER_Stream *__pyx_vtabptr_5talib_7_ta_lib_ER_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ERI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ERI_Stream *__pyx_vtabptr_5talib_7_ta_lib_ERI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_EXP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_EXP_Stream *__pyx_vtabptr_5talib_7_ta_lib_EXP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_FLOOR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_FLOOR_Stream *__pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_FOSC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_FOSC_Stream *__pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_FRACTAL_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_FRACTAL_Stream *__pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HA_Stream *__pyx_vtabptr_5talib_7_ta_lib_HA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_HMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HT_DCPERIOD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HT_DCPHASE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HT_PHASOR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HT_SINE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_SINE_Stream *__pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HT_TRENDLINE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_HT_TRENDMODE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_IMI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_IMI_Stream *__pyx_vtabptr_5talib_7_ta_lib_IMI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_KAMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_KAMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_KC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_KC_Stream *__pyx_vtabptr_5talib_7_ta_lib_KC_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_KDJ_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_KDJ_Stream *__pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_Stream *__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_ANGLE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_SLOPE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_LN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_LN_Stream *__pyx_vtabptr_5talib_7_ta_lib_LN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_LOG10_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_LOG10_Stream *__pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MA_Stream *__pyx_vtabptr_5talib_7_ta_lib_MA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MACD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MACD_Stream *__pyx_vtabptr_5talib_7_ta_lib_MACD_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MACDEXT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MACDEXT_Stream *__pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MACDFIX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MACDFIX_Stream *__pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MAMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MARKETFI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MARKETFI_Stream *__pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MASSI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MASSI_Stream *__pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MAVP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAVP_Stream *__pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MAX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAX_Stream *__pyx_vtabptr_5talib_7_ta_lib_MAX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MAXINDEX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MEDPRICE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MFI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MFI_Stream *__pyx_vtabptr_5talib_7_ta_lib_MFI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MIDPOINT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MIDPRICE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MIN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MIN_Stream *__pyx_vtabptr_5talib_7_ta_lib_MIN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MININDEX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MININDEX_Stream *__pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MINMAX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINMAX_Stream *__pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MINMAXINDEX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MINUS_DI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MINUS_DM_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MOM_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MOM_Stream *__pyx_vtabptr_5talib_7_ta_lib_MOM_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_MULT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_MULT_Stream *__pyx_vtabptr_5talib_7_ta_lib_MULT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_NATR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_NATR_Stream *__pyx_vtabptr_5talib_7_ta_lib_NATR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_NVI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_NVI_Stream *__pyx_vtabptr_5talib_7_ta_lib_NVI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_OBV_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_OBV_Stream *__pyx_vtabptr_5talib_7_ta_lib_OBV_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTILE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTRANK_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PLUS_DI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PLUS_DM_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PPO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PPO_Stream *__pyx_vtabptr_5talib_7_ta_lib_PPO_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PVI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PVI_Stream *__pyx_vtabptr_5talib_7_ta_lib_PVI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PVO_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PVO_Stream *__pyx_vtabptr_5talib_7_ta_lib_PVO_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_PVT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_PVT_Stream *__pyx_vtabptr_5talib_7_ta_lib_PVT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_QSTICK_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_QSTICK_Stream *__pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_RMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_RMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_RMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ROC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROC_Stream *__pyx_vtabptr_5talib_7_ta_lib_ROC_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ROCP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROCP_Stream *__pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ROCR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROCR_Stream *__pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ROCR100_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROCR100_Stream *__pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_RSI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_RSI_Stream *__pyx_vtabptr_5talib_7_ta_lib_RSI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_RVI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_RVI_Stream *__pyx_vtabptr_5talib_7_ta_lib_RVI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_RVOL_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_RVOL_Stream *__pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_SAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SAREXT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SAREXT_Stream *__pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SIN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SIN_Stream *__pyx_vtabptr_5talib_7_ta_lib_SIN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SINH_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SINH_Stream *__pyx_vtabptr_5talib_7_ta_lib_SINH_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_SMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SMI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SMI_Stream *__pyx_vtabptr_5talib_7_ta_lib_SMI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SQRT_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SQRT_Stream *__pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_STDDEV_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_STDDEV_Stream *__pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_STOCH_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_STOCH_Stream *__pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_STOCHF_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_STOCHF_Stream *__pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_STOCHRSI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SUB_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SUB_Stream *__pyx_vtabptr_5talib_7_ta_lib_SUB_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SUM_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SUM_Stream *__pyx_vtabptr_5talib_7_ta_lib_SUM_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_SUPERTREND_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_T3_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_T3_Stream *__pyx_vtabptr_5talib_7_ta_lib_T3_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TAN_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TAN_Stream *__pyx_vtabptr_5talib_7_ta_lib_TAN_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TANH_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TANH_Stream *__pyx_vtabptr_5talib_7_ta_lib_TANH_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TEMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TEMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TRANGE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TRANGE_Stream *__pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TRIMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TRIMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TRIX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TRIX_Stream *__pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TSF_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TSF_Stream *__pyx_vtabptr_5talib_7_ta_lib_TSF_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TSI_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TSI_Stream *__pyx_vtabptr_5talib_7_ta_lib_TSI_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_TYPPRICE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ULTOSC_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ULTOSC_Stream *__pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_VAR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_VAR_Stream *__pyx_vtabptr_5talib_7_ta_lib_VAR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_VHF_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_VHF_Stream *__pyx_vtabptr_5talib_7_ta_lib_VHF_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_VORTEX_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_VORTEX_Stream *__pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_VWAP_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_VWAP_Stream *__pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_VWMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_VWMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_WAD_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_WAD_Stream *__pyx_vtabptr_5talib_7_ta_lib_WAD_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_WCLPRICE_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_WILLR_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_WILLR_Stream *__pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_WMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_WMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_WMA_Stream; + + + +struct __pyx_vtabstruct_5talib_7_ta_lib_ZLEMA_Stream { + struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_base; +}; +static struct __pyx_vtabstruct_5talib_7_ta_lib_ZLEMA_Stream *__pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream; +/* #### Code section: utility_code_proto ### */ + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, Py_ssize_t); + void (*DECREF)(void*, PyObject*, Py_ssize_t); + void (*GOTREF)(void*, PyObject*, Py_ssize_t); + void (*GIVEREF)(void*, PyObject*, Py_ssize_t); + void* (*SetupContext)(const char*, Py_ssize_t, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ + } + #define __Pyx_RefNannyFinishContextNogil() {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __Pyx_RefNannyFinishContext();\ + PyGILState_Release(__pyx_gilstate_save);\ + } + #define __Pyx_RefNannyFinishContextNogil() {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __Pyx_RefNannyFinishContext();\ + PyGILState_Release(__pyx_gilstate_save);\ + } + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) + #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContextNogil() + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_Py_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; Py_XDECREF(tmp);\ + } while (0) +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* FastTypeChecks.proto (used by GivenExceptionMatches) */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b); +#define __Pyx_PyAnySet_Check(obj) __Pyx_TypeCheck2(obj, &PySet_Type, &PyFrozenSet_Type) +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2)) +#define __Pyx_PyAnySet_Check(obj) PyAnySet_Check(obj) +#endif + +/* PyThreadStateGet.proto (used by PyErrFetchRestore) */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#if PY_VERSION_HEX >= 0x030C00A6 +#define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL) +#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL) +#else +#define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL) +#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type) +#endif +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL) +#define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto (used by GivenExceptionMatches) */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6 +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* GivenExceptionMatches.proto (used by PyErrExceptionMatches) */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2) { + return PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2); +} +#endif +#define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2) + +/* PyErrExceptionMatches.proto (used by PyObjectGetAttrStrNoError) */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) +static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); +#else +#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) +#endif + +/* PyObjectGetAttrStr.proto (used by PyObjectGetAttrStrNoError) */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* PyObjectGetAttrStrNoError.proto (used by GetBuiltinName) */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* GetTopmostException.proto (used by SaveResetException) */ +#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE +static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); +#endif + +/* SaveResetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +#else +#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) +#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) +#endif + +/* PyException_Check.proto */ +#define __Pyx_PyExc_Exception_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +/* GetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); +#endif + +/* PyImportError_Check.proto */ +#define __Pyx_PyExc_ImportError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ImportError) + +/* PyObjectCall.proto (used by PyObjectFastCall) */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* PyObjectCallMethO.proto (used by PyObjectFastCall) */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectFastCall.proto */ +#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL) +static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject * const*args, size_t nargsf, PyObject *kwargs); + +/* RaiseException.export */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* IgnoreException.proto (used by GetModuleGlobalName) */ +static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception); +#define __Pyx_IgnoreException(ignorable_exception) __Pyx_IgnoreGivenException(NULL, ignorable_exception) + +/* PyDictVersioning.proto (used by GetModuleGlobalName) */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __Pyx_XNewRef(__pyx_dict_cached_value);\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif + +/* GetModuleGlobalName.proto */ +#if CYTHON_USE_DICT_VERSIONS +#define __Pyx_GetModuleGlobalName(var, name) do {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_mstate_global->__pyx_d))) ?\ + (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ + __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} while(0) +#define __Pyx_GetModuleGlobalNameUncached(var, name) do {\ + PY_UINT64_T __pyx_dict_version;\ + PyObject *__pyx_dict_cached_value;\ + (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} while(0) +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); +#else +#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) +#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); +#endif + +/* PyUnicode_Unicode.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj); + +/* BuildPyUnicode.proto (used by COrdinalToPyUnicode) */ +static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, const char* chars, int clength, + int prepend_sign, char padding_char); + +/* COrdinalToPyUnicode.proto (used by CIntToPyUnicode) */ +static CYTHON_INLINE int __Pyx_CheckUnicodeValue(int value); +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromOrdinal_Padded(int value, Py_ssize_t width, char padding_char); + +/* GCCDiagnostics.proto (used by CIntToPyUnicode) */ +#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif + +/* IncludeStdlibH.proto (used by CIntToPyUnicode) */ +#include + +/* IncludeStringH.proto (used by CIntToPyUnicode) */ +#include + +/* CIntToPyUnicode.proto */ +#define __Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char, format_char) (\ + ((format_char) == ('c')) ?\ + __Pyx_uchar___Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char) :\ + __Pyx____Pyx_PyUnicode_From_TA_RetCode(value, width, padding_char, format_char)\ + ) +static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char); +static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_TA_RetCode(TA_RetCode value, Py_ssize_t width, char padding_char, char format_char); + +/* JoinPyUnicode.proto */ +#define __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH\ + (!CYTHON_COMPILING_IN_GRAAL && !CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) + +/* JoinPyUnicode.export */ +static PyObject* __Pyx_PyUnicode_Join(PyObject** values, Py_ssize_t value_count, Py_ssize_t result_ulength, int kind); + +/* CopyObjectArray.proto (used by TupleOrListFromArrayImpl) */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length); +#endif + +/* TupleOrListFromArrayImpl.proto (used by TupleFromArray) */ +#if PY_VERSION_HEX >= 0x030F0000 && !CYTHON_COMPILING_IN_LIMITED_API +#define __Pyx_PyTuple_FromArray(src, n) PyTuple_FromArray(src, ((n)<0) ? 0 : (n)) +#else +CYTHON_UNUSED static PyObject * +__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n); +#endif + +/* TupleFromArray.proto (used by fastcall) */ + + +/* PyObjectCompare.proto (used by UnicodeEquals) */ +static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_str_str(PyObject *op1, PyObject *op2, int pyop); + +/* UnicodeEquals.proto (used by fastcall) */ +#define __Pyx_PyUnicode_Equals(s1, s2) __Pyx_PyObject_CompareBoolEq_str_str(s1, s2, Py_EQ) + +/* fastcall.proto */ +#if CYTHON_AVOID_BORROWED_REFS + #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_PySequence_ITEM(args, i) +#elif CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_NewRef(__Pyx_PyTuple_GET_ITEM(args, i)) +#else + #define __Pyx_ArgRef_VARARGS(args, i) __Pyx_XNewRef(PyTuple_GetItem(args, i)) +#endif +#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds) +#define __Pyx_KwValues_VARARGS(args, nargs) NULL +#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s) +#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw) +#if CYTHON_VECTORCALL + #define __Pyx_ArgRef_FASTCALL(args, i) __Pyx_NewRef(args[i]) + #define __Pyx_NumKwargs_FASTCALL(kwds) __Pyx_PyTuple_GET_SIZE(kwds) + #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs)) + static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL + CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues); + #else + #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw) + #endif +#else + #define __Pyx_ArgRef_FASTCALL __Pyx_ArgRef_VARARGS + #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS + #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS + #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS + #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS +#endif +#if CYTHON_VECTORCALL_TPNEW + #if !CYTHON_VECTORCALL + #error Enabling CYTHON_VECTORCALL_TPNEW without CYTHON_VECTORCALL is not supported + #endif + #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_FASTCALL + #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_FASTCALL + #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_FASTCALL + #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_FASTCALL + #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_FASTCALL +#else + #define __Pyx_ArgRef_FASTCALL_TPNEW __Pyx_ArgRef_VARARGS + #define __Pyx_NumKwargs_FASTCALL_TPNEW __Pyx_NumKwargs_VARARGS + #define __Pyx_KwValues_FASTCALL_TPNEW __Pyx_KwValues_VARARGS + #define __Pyx_GetKwValue_FASTCALL_TPNEW __Pyx_GetKwValue_VARARGS + #define __Pyx_KwargsAsDict_FASTCALL_TPNEW __Pyx_KwargsAsDict_VARARGS +#endif +#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop) +#if CYTHON_VECTORCALL +#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(args + start, stop - start) +#else +#define __Pyx_ArgsSlice_FASTCALL __Pyx_ArgsSlice_VARARGS +#endif + +/* py_dict_items.proto (used by OwnedDictNext) */ +#define __Pyx_PyDict_items_TypePtr (&PyDictKeys_Type) +#define __Pyx_PyDict_items_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictItems_TypePtr) +#define __Pyx_PyDict_items_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictItems_TypePtr) +static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); + +/* CallCFunction.proto (used by CallUnboundCMethod0) */ +#define __Pyx_CallCFunction(cfunc, self, args)\ + ((PyCFunction)(void(*)(void))(cfunc)->func)(self, args) +#define __Pyx_CallCFunctionWithKeywords(cfunc, self, args, kwargs)\ + ((PyCFunctionWithKeywords)(void(*)(void))(cfunc)->func)(self, args, kwargs) +#define __Pyx_CallCFunctionFast(cfunc, self, args, nargs)\ + ((__Pyx_PyCFunctionFast)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs) +#define __Pyx_CallCFunctionFastWithKeywords(cfunc, self, args, nargs, kwnames)\ + ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))(PyCFunction)(cfunc)->func)(self, args, nargs, kwnames) + +/* PyObjectCallOneArg.proto (used by CallUnboundCMethod0) */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* UnpackUnboundCMethod_decl.proto (used by UnpackUnboundCMethod) */ +typedef struct { + PyObject *type; + PyObject **method_name; + PyCFunction func; + PyObject *method; + int flag; +#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && CYTHON_ATOMICS + __pyx_atomic_int_type initialized; +#endif +} __Pyx_CachedCFunction; + +/* UnpackUnboundCMethod_impl.export */ +static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target); + +/* UnpackUnboundCMethod.proto (used by CallUnboundCMethod0) */ +#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING +static CYTHON_INLINE int __Pyx_CachedCFunction_GetAndSetInitializing(__Pyx_CachedCFunction *cfunc) { +#if !CYTHON_ATOMICS + return 1; +#else + __pyx_nonatomic_int_type expected = 0; + if (__pyx_atomic_int_cmp_exchange(&cfunc->initialized, &expected, 1)) { + return 0; + } + return expected; +#endif +} +static CYTHON_INLINE void __Pyx_CachedCFunction_SetFinishedInitializing(__Pyx_CachedCFunction *cfunc) { +#if CYTHON_ATOMICS + __pyx_atomic_store(&cfunc->initialized, 2); +#endif +} +#else +#define __Pyx_CachedCFunction_GetAndSetInitializing(cfunc) 2 +#define __Pyx_CachedCFunction_SetFinishedInitializing(cfunc) +#endif + +/* CallUnboundCMethod0.proto */ +CYTHON_UNUSED +static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); +#else +#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) +#endif + +/* py_dict_values.proto (used by OwnedDictNext) */ +#define __Pyx_PyDict_values_TypePtr (&PyDictKeys_Type) +#define __Pyx_PyDict_values_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyDictValues_TypePtr) +#define __Pyx_PyDict_values_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyDictValues_TypePtr) +static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d); + +/* OwnedDictNext.proto (used by ParseKeywordsImpl) */ +#if CYTHON_AVOID_BORROWED_REFS +static int __Pyx_PyDict_NextRef(PyObject *p, PyObject **ppos, PyObject **pkey, PyObject **pvalue); +#else +CYTHON_INLINE +static int __Pyx_PyDict_NextRef(PyObject *p, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue); +#endif + +/* RaiseDoubleKeywords.proto (used by ParseKeywordsImpl) */ +static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); + +/* ParseKeywordsImpl.export */ +static int __Pyx_ParseKeywordsTuple( + PyObject *kwds, + PyObject * const *kwvalues, + PyObject ** const argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + Py_ssize_t num_kwargs, + const char* function_name, + int ignore_unknown_kwargs +); +static int __Pyx_ParseKeywordDictToDict( + PyObject *kwds, + PyObject ** const argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + const char* function_name +); +static int __Pyx_ParseKeywordDict( + PyObject *kwds, + PyObject ** const argnames[], + PyObject *values[], + Py_ssize_t num_pos_args, + Py_ssize_t num_kwargs, + const char* function_name, + int ignore_unknown_kwargs +); + +/* CallUnboundCMethod2.proto */ +CYTHON_UNUSED +static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2); +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2); +#else +#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2) +#endif + +/* ParseKeywords.proto */ +static CYTHON_INLINE int __Pyx_ParseKeywords( + PyObject *kwds, PyObject *const *kwvalues, PyObject ** const argnames[], + PyObject *kwds2, PyObject *values[], + Py_ssize_t num_pos_args, Py_ssize_t num_kwargs, + const char* function_name, + int ignore_unknown_kwargs +); + +/* RaiseArgTupleInvalid.export */ +static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, + Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); + +/* ArgTypeTestError.export */ +static void __Pyx_ArgTypeError(PyObject *obj, PyTypeObject *type, const char *name, int exact); + +/* ArgTypeTest.proto */ +static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, const char *name, int exact); + +/* PyObjectDelAttr.proto (used by PyObjectSetAttrStr) */ +#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030d0000 +#define __Pyx_PyObject_DelAttr(o, n) PyObject_SetAttr(o, n, NULL) +#else +#define __Pyx_PyObject_DelAttr(o, n) PyObject_DelAttr(o, n) +#endif + +/* PyObjectSetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); +#else +#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_DelAttr(o,n) +#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) +#endif + +/* PyFrozenDict.proto (used by GetItemInt) */ +#if CYTHON_COMPILING_IN_LIMITED_API +#define __Pyx_PyFrozenDict_TypePtr ((PyTypeObject*) __pyx_mstate_global->__Pyx_PyFrozenDictType) +#define __Pyx_PyFrozenDict_New(it) __Pyx__PyFrozenDict_New(__pyx_mstate_global->__Pyx_PyFrozenDictType, it) +static CYTHON_INLINE PyObject* __Pyx__PyFrozenDict_New(PyObject* frozendict_type, PyObject* it); +#define __Pyx_PyFrozenDict_NewEmpty() __Pyx_PyFrozenDict_New(NULL) +#define __Pyx_PyFrozenDict_Check(obj) PyObject_TypeCheck((obj), __Pyx_PyFrozenDict_TypePtr) +#define __Pyx_PyFrozenDict_CheckExact(obj) Py_IS_TYPE((obj), __Pyx_PyFrozenDict_TypePtr) +#define __Pyx_PyAnyDict_Check(obj) __Pyx__PyAnyDict_Check(obj, __Pyx_PyFrozenDict_TypePtr) +static CYTHON_INLINE int __Pyx__PyAnyDict_Check(PyObject *obj, PyTypeObject* frozendict_type) { + return PyObject_TypeCheck(obj, &PyDict_Type) || PyObject_TypeCheck(obj, frozendict_type); +} +#define __Pyx_PyAnyDict_CheckExact(obj) __Pyx__PyAnyDict_CheckExact(obj, __Pyx_PyFrozenDict_TypePtr) +static CYTHON_INLINE int __Pyx__PyAnyDict_CheckExact(PyObject *obj, PyTypeObject* frozendict_type) { + return Py_IS_TYPE(obj, &PyDict_Type) || Py_IS_TYPE(obj, frozendict_type); +} +#elif PY_VERSION_HEX >= 0x030f00a6 ||\ + (defined(PyFrozenDict_Check) && defined(PyAnyDict_Check) && defined(PyFrozenDict_New)) +#define __Pyx_PyFrozenDict_TypePtr (&PyFrozenDict_Type) +#define __Pyx_PyFrozenDict_New(it) PyFrozenDict_New(it) +#define __Pyx_PyFrozenDict_NewEmpty() PyFrozenDict_New(NULL) +#define __Pyx_PyFrozenDict_Check(obj) PyFrozenDict_Check(obj) +#define __Pyx_PyFrozenDict_CheckExact(obj) PyFrozenDict_CheckExact(obj) +#define __Pyx_PyAnyDict_Check(obj) PyAnyDict_Check(obj) +#define __Pyx_PyAnyDict_CheckExact(obj) PyAnyDict_CheckExact(obj) +#else +#define __Pyx_PyFrozenDict_TypePtr (&PyDict_Type) +static CYTHON_INLINE PyObject* __Pyx_PyFrozenDict_New(PyObject* it) { + if (!it) { + return PyDict_New(); + } else if (PyDict_Check(it)) { + return PyDict_Copy(it); + } else { + PyObject *dict = PyDict_New(); + if (!dict) return NULL; + PyObject *result = PyNumber_InPlaceOr(dict, it); + Py_DECREF(dict); + return result; + } +} +#define __Pyx_PyFrozenDict_NewEmpty() PyDict_New() +#define __Pyx_PyFrozenDict_Check(obj) PyDict_Check(obj) +#define __Pyx_PyFrozenDict_CheckExact(obj) PyDict_CheckExact(obj) +#define __Pyx_PyAnyDict_Check(obj) PyDict_Check(obj) +#define __Pyx_PyAnyDict_CheckExact(obj) PyDict_CheckExact(obj) +#endif + +/* GetItemInt.proto */ +#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ + __Pyx_GetItemInt_Generic(o, to_py_func(i))) +#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ + (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck, int unsafe_shared); +#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck, unsafe_shared) :\ + (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck, int unsafe_shared); +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck, int unsafe_shared); + +/* FormatTypeName.proto (used by RaiseErrorWithObjectType) */ +#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX >= 0x030d0000 +typedef PyObject *__Pyx_TypeName; +#define __Pyx_FMT_TYPENAME "%N" +#define __Pyx_PyType_GetFullyQualifiedName(tp) Py_NewRef((PyObject*)tp) +#define __Pyx_DECREF_TypeName(obj) Py_DECREF(obj) +#elif CYTHON_COMPILING_IN_LIMITED_API +typedef PyObject *__Pyx_TypeName; +#define __Pyx_FMT_TYPENAME "%U" +#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj) +static __Pyx_TypeName __Pyx_PyType_GetFullyQualifiedName(PyTypeObject* tp); +#else // !LIMITED_API +typedef const char *__Pyx_TypeName; +#define __Pyx_FMT_TYPENAME "%.200s" +#define __Pyx_PyType_GetFullyQualifiedName(tp) ((tp)->tp_name) +#define __Pyx_DECREF_TypeName(obj) +#endif + +/* RaiseErrorWithObjectType.proto (used by ObjectGetItem) */ +#define __Pyx_RaiseTypeErrorWithObjectType(message, obj) __Pyx_RaiseErrorWithObjectType(PyExc_TypeError, message, obj) +#define __Pyx_RaiseErrorWithObjectType(exc_type, message, obj) __Pyx_RaiseErrorWithType(exc_type, message, Py_TYPE(obj)) +CYTHON_UNUSED +static void __Pyx_RaiseErrorWithType(PyObject* exc_type, const char* message, PyTypeObject *type_obj); + +/* ObjectGetItem.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key); +#else +#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) +#endif + +/* PySequenceContains.proto */ +static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { + int result = PySequence_Contains(seq, item); + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + +/* PyObjectFormatAndDecref.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatSimpleAndDecref(PyObject* s, PyObject* f); +static CYTHON_INLINE PyObject* __Pyx_PyObject_FormatAndDecref(PyObject* s, PyObject* f); + +/* PyDeprecationWarning_Check.proto */ +#define __Pyx_PyExc_DeprecationWarning_Check(obj) __Pyx_TypeCheck(obj, PyExc_DeprecationWarning) + +/* PyObjectVectorcallKwds.proto */ +#if CYTHON_VECTORCALL +#define __Pyx_Object_VectorcallKwds PyObject_Vectorcall +CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject *kwnames, Py_ssize_t i); +#else +#define __Pyx_Object_VectorcallKwds __Pyx_PyObject_FastCallDict +CYTHON_UNUSED static PyObject *__Pyx_MakeKwargDict(PyObject **keys, PyObject **values, Py_ssize_t n); +CYTHON_UNUSED static int __Pyx_CheckVectorcallKwarg(PyObject **kwnames, Py_ssize_t i); +#endif + +/* PyObjectFastCallMethod.proto */ +#if CYTHON_VECTORCALL +#define __Pyx_PyObject_FastCallMethod(name, args, nargsf) PyObject_VectorcallMethod(name, args, nargsf, NULL) +#else +static PyObject *__Pyx_PyObject_FastCallMethod(PyObject *name, PyObject *const *args, size_t nargsf); +#endif + +/* HasAttr.proto */ +#if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 +#define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n) +#else +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); +#endif + +/* PyRange_Check.proto */ +#if CYTHON_COMPILING_IN_PYPY && !defined(PyRange_Check) + #define PyRange_Check(obj) __Pyx_TypeCheck((obj), &PyRange_Type) +#endif + +/* DictGetItem.proto */ +#if !CYTHON_COMPILING_IN_PYPY +static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); +#define __Pyx_PyObject_Dict_GetItem(obj, name)\ + (likely(__Pyx_PyAnyDict_CheckExact(obj)) ?\ + __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) +#else +#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) +#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) +#endif + +/* RaiseTooManyValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); + +/* RaiseNeedMoreValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); + +/* IterFinish.proto */ +static CYTHON_INLINE int __Pyx_IterFinish(void); + +/* UnpackItemEndCheck.proto */ +static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); + +/* ListAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE +static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x); +#else +#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) +#endif + +/* PyObjectCallMethod0.proto (used by dict_iter_common) */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); + +/* RaiseNoneIterError.proto (used by UnpackTupleError) */ +static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); + +/* UnpackTupleError.proto (used by UnpackTuple2) */ +static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); + +/* UnpackTuple2.proto (used by dict_iter_common) */ +static CYTHON_INLINE int __Pyx_unpack_tuple2( + PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple); +static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( + PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); +static int __Pyx_unpack_tuple2_generic( + PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); + +/* dict_iter_common.proto (used by dict_iter) */ +static PyObject *__Pyx_dict_call_to_get_iterable(PyObject* iterable, PyObject* method_name); +static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, + PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); + +/* dict_iter.proto */ +static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, + Py_ssize_t* p_orig_length, int* p_is_dict); + +/* PyObjectCompare.proto */ +static CYTHON_INLINE int __Pyx_PyObject_CompareBoolGt_int_int(PyObject *op1, PyObject *op2, int pyop); + +/* PyLongBinop.proto */ +#if !CYTHON_COMPILING_IN_PYPY +static CYTHON_INLINE PyObject* __Pyx_PyLong_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); +#else +#define __Pyx_PyLong_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ + (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) +#endif + +/* RaiseErrorWithObjectTypes.proto (used by PyNumberBinop) */ +#define __Pyx_RaiseErrorWithObjectTypes1(exc_type, message, arg, obj1, obj2) __Pyx_RaiseErrorWithTypes1(exc_type, message, arg, Py_TYPE(obj1), Py_TYPE(obj2)) +#define __Pyx_RaiseTypeErrorWithObjectTypes(message, obj1, obj2) __Pyx_RaiseTypeErrorWithTypes(message, Py_TYPE(obj1), Py_TYPE(obj2)) +#define __Pyx_RaiseTypeErrorWithTypes(message, type_obj1, type_obj2) __Pyx_RaiseErrorWithTypes1(PyExc_TypeError, "%.1s" message, "", type_obj1, type_obj2) +CYTHON_UNUSED +static void __Pyx_RaiseErrorWithTypes1(PyObject* exc_type, const char *message, const char *arg, PyTypeObject *type_obj1, PyTypeObject *type_obj2); + +/* PyNumberBinop.proto */ +#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL || CYTHON_COMPILING_IN_LIMITED_API +#define __Pyx_PyNumber_Add_object_int(op1, op2) PyNumber_Add(op1, op2) +#define __Pyx_PyNumber_InPlaceAdd_object_int(op1, op2) PyNumber_InPlaceAdd(op1, op2) +#else +#define __Pyx_PyNumber_Add_object_int(op1, op2) __Pyx__PyNumber_Add_object_int(op1, op2, 0) +#define __Pyx_PyNumber_InPlaceAdd_object_int(op1, op2) __Pyx__PyNumber_Add_object_int(op1, op2, 1) +static CYTHON_INLINE PyObject* __Pyx__PyNumber_Add_object_int(PyObject *op1, PyObject *op2, int inplace); +#endif + +/* PyObjectCompare.proto */ +static CYTHON_INLINE int __Pyx_PyObject_CompareBoolLt_object_int(PyObject *op1, PyObject *op2, int pyop); + +/* PyObjectCompare.proto */ +static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_object_int(PyObject *op1, PyObject *op2, int pyop); + +/* ListCompAppendAndDecref.proto */ +static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x); + +/* PyIndexError_Check.proto */ +#define __Pyx_PyExc_IndexError_Check(obj) __Pyx_TypeCheck(obj, PyExc_IndexError) + +/* CIntToPyUnicode.proto */ +#define __Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char) (\ + ((format_char) == ('c')) ?\ + __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char) :\ + __Pyx____Pyx_PyUnicode_From_Py_ssize_t(value, width, padding_char, format_char)\ + ) +static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char); +static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char); + +/* PyTypeError_Check.proto */ +#define __Pyx_PyExc_TypeError_Check(obj) __Pyx_TypeCheck(obj, PyExc_TypeError) + +/* TupleOrListFromArrayImpl.proto (used by ListFromArray) */ +CYTHON_UNUSED static PyObject * +__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n); + +/* ListFromArray.proto (used by SliceTupleAndList) */ + + +/* SliceTupleAndList.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop); +static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop); +#else +#define __Pyx_PyList_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) +#define __Pyx_PyTuple_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) +#endif + +/* PyObject_Unicode.proto */ +#define __Pyx_PyObject_Unicode(obj)\ + (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) + +/* PyNumberBinop.proto */ +#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL || CYTHON_COMPILING_IN_LIMITED_API +#define __Pyx_PyNumber_And_object_int(op1, op2) PyNumber_And(op1, op2) +#define __Pyx_PyNumber_InPlaceAnd_object_int(op1, op2) PyNumber_InPlaceAnd(op1, op2) +#else +#define __Pyx_PyNumber_And_object_int(op1, op2) __Pyx__PyNumber_And_object_int(op1, op2, 0) +#define __Pyx_PyNumber_InPlaceAnd_object_int(op1, op2) __Pyx__PyNumber_And_object_int(op1, op2, 1) +static CYTHON_INLINE PyObject* __Pyx__PyNumber_And_object_int(PyObject *op1, PyObject *op2, int inplace); +#endif + +/* ListCompAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE +static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x); +#else +#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) +#endif + +/* SliceObject.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( + PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, + PyObject** py_start, PyObject** py_stop, PyObject** py_slice, + int has_cstart, int has_cstop, int wraparound); + +/* PyObjectCompare.proto */ +static CYTHON_INLINE int __Pyx_PyObject_CompareBoolNe_object_str(PyObject *op1, PyObject *op2, int pyop); + +/* SetItemInt.proto */ +#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, wraparound, boundscheck, has_gil, unsafe_shared)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, wraparound, boundscheck, unsafe_shared) :\ + __Pyx_SetItemInt_Generic(o, to_py_func(i), v)) +static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); +static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, + int wraparound, int boundscheck, int unsafe_shared); + +/* PyObjectCompare.proto */ +static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_object_str(PyObject *op1, PyObject *op2, int pyop); + +/* ExtTypeTest.proto */ +static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); + +/* CIntToPyUnicode.proto */ +#define __Pyx_PyUnicode_From_int(value, width, padding_char, format_char) (\ + ((format_char) == ('c')) ?\ + __Pyx_uchar___Pyx_PyUnicode_From_int(value, width, padding_char) :\ + __Pyx____Pyx_PyUnicode_From_int(value, width, padding_char, format_char)\ + ) +static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char); +static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char); + +/* RejectKeywords.export */ +static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds); + +/* AllocateExtensionType.proto */ +static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final); + +/* CallSlotAsVectorcall.proto */ +#if CYTHON_VECTORCALL_TPNEW +typedef PyObject * (*__Pyx_tpnewvectorcallfunc)(PyTypeObject* o, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); +static PyObject * __Pyx_CallTpnewAsVectorcall(__Pyx_tpnewvectorcallfunc f, PyTypeObject* o, PyObject *a, PyObject *k); +#endif + +/* CallNewInitFromVectorcall.proto */ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__Pyx_CallNewInitFromVectorcall(PyTypeObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); +#endif + +/* CallSlotAsVectorcall.proto */ +#if CYTHON_VECTORCALL_TPNEW +typedef int (*__Pyx_tpinitvectorcallfunc)(PyObject* o, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); +static int __Pyx_CallTpinitAsVectorcall(__Pyx_tpinitvectorcallfunc f, PyObject* o, PyObject *a, PyObject *k); +#endif + +/* DeallocKeepAlive.proto */ +#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING +#define __Pyx_DeallocKeepAliveBegin(o) do {\ + _Py_atomic_store_uintptr_relaxed(&(o)->ob_tid, _Py_ThreadId());\ + _Py_atomic_store_uint32_relaxed(&(o)->ob_ref_local, 1);\ + _Py_atomic_store_ssize_relaxed(&(o)->ob_ref_shared, 0);\ + } while (0) +#define __Pyx_DeallocKeepAliveEnd(o)\ + _Py_atomic_store_uint32_relaxed(&(o)->ob_ref_local, 0) +#else +#define __Pyx_DeallocKeepAliveBegin(o) Py_SET_REFCNT(o, Py_REFCNT(o) + 1) +#define __Pyx_DeallocKeepAliveEnd(o) Py_SET_REFCNT(o, Py_REFCNT(o) - 1) +#endif + +/* GetTypeDictOffset.proto (used by ValidateBasesTuple) */ +#if !CYTHON_USE_TYPE_SLOTS +CYTHON_UNUSED static Py_ssize_t __Pyx_GetTypeDictOffset(PyObject *tp, int require_cython_valid_result); +#endif + +/* RaiseErrorWithObjectType1.proto (used by ValidateBasesTuple) */ +#define __Pyx_RaiseTypeErrorWithObjectType1(message, arg, obj) __Pyx_RaiseErrorWithObjectType1(PyExc_TypeError, message, arg, obj) +#define __Pyx_RaiseErrorWithObjectType1(exc_type, message, arg, obj) __Pyx_RaiseErrorWithType1(exc_type, message, arg, Py_TYPE(obj)) +CYTHON_UNUSED +static void __Pyx_RaiseErrorWithType1(PyObject* exc_type, const char* message, const char *arg, PyTypeObject *type_obj); + +/* ValidateBasesTuple.proto (used by PyType_Ready) */ +#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS +static int __Pyx_validate_bases_tuple(const char *type_name, int has_dictoffset, PyObject *bases); +#endif + +/* PyType_Ready.export */ +CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t); + +/* GetVTable.proto (used by MergeVTables) */ +static int __Pyx_GetVtable(PyTypeObject *type, void** table); + +/* MergeVTables.proto (used by SetVTable) */ +static int __Pyx_MergeVtables(PyTypeObject *type); + +/* SetVTable.export */ +static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable); + +/* TypeImport.proto */ +#ifndef __PYX_HAVE_RT_ImportType_proto_3_3_0 +#define __PYX_HAVE_RT_ImportType_proto_3_3_0 +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +#include +#endif +#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L +#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) alignof(s) +#else +#define __PYX_GET_STRUCT_ALIGNMENT_3_3_0(s) sizeof(void*) +#endif +enum __Pyx_ImportType_CheckSize_3_3_0 { + __Pyx_ImportType_CheckSize_Error_3_3_0 = 0, + __Pyx_ImportType_CheckSize_Warn_3_3_0 = 1, + __Pyx_ImportType_CheckSize_Ignore_3_3_0 = 2 +}; +static PyTypeObject *__Pyx_ImportType_3_3_0(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_3_0 check_size); +#endif + +/* ImportImpl.export */ +static PyObject *__Pyx__Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, PyObject *moddict, int level); + +/* Import.proto */ +static CYTHON_INLINE PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, Py_ssize_t len_imported_names, PyObject *qualname, int level); + +/* Py3UpdateBases.export */ +static PyObject* __Pyx_PEP560_update_bases(PyObject *bases); + +/* CalculateMetaclass.proto */ +static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); + +/* PyObjectCall2Args.proto (used by Py3ClassCreate) */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); + +/* PyObjectLookupSpecial.proto (used by Py3ClassCreate) */ +#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS +#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 0) +#define __Pyx_PyObject_LookupSpecial(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 1) +static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error); +#else +#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n) +#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) +#endif + +/* Py3ClassCreate.export */ +static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, + PyObject *mkw, PyObject *modname, PyObject *doc); +static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, + PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); + +/* dict_setdefault.proto (used by FetchCommonType) */ +static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value); + +/* AddModuleRef.proto (used by FetchSharedCythonModule) */ +#if ((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING && PY_VERSION_HEX < 0x030F00a3) ||\ + __PYX_LIMITED_VERSION_HEX < 0x030d0000) + static PyObject *__Pyx_PyImport_AddModuleRef(const char *name); +#else + #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name) +#endif + +/* FetchSharedCythonModule.proto (used by FetchCommonType) */ +static PyObject *__Pyx_FetchSharedCythonABIModule(void); + +/* VerifyCachedType.proto (used by FetchCommonType) */ +static int __Pyx_VerifyCachedType(PyObject *cached_type, + const char *name, + Py_ssize_t expected_basicsize); + +/* FetchCommonType.proto (used by CommonTypesMetaclass) */ +static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyTypeObject *metaclass, PyObject *module, PyType_Spec *spec, PyObject *bases); + +/* CommonTypesMetaclass.proto (used by CythonFunctionShared) */ +static int __pyx_CommonTypesMetaclass_init(PyObject *module); +#define __Pyx_CommonTypesMetaclass_USED + +/* CythonFunctionPerModule.proto (used by CythonFunctionShared) */ +#define __Pyx_CyFunction_USED +#if CYTHON_OPAQUE_SHARED_TYPES +#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)PyObject_GetTypeData((o), __pyx_mstate_global->__pyx_CyFunctionType)) +#else +#define __Pyx_as_CyFunctionObject(o) ((__pyx_CyFunctionObject *)o) +#endif +#define __Pyx_CYFUNCTION_STATICMETHOD 0x01 +#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 +#define __Pyx_CYFUNCTION_CCLASS 0x04 +#define __Pyx_CYFUNCTION_COROUTINE 0x08 +#define __Pyx_CyFunction_GetClosure(f)\ + ((__Pyx_as_CyFunctionObject(f))->func_closure) +#if CYTHON_COMPILING_IN_LIMITED_API + #define __Pyx__CyFunction_GetClassObj(f)\ + ((f)->func_classobj) +#else + #define __Pyx__CyFunction_GetClassObj(f)\ + ((PyObject*) ((PyCMethodObject *) (f))->mm_class) +#endif +#define __Pyx_CyFunction_GetClassObj(f)\ + __Pyx__CyFunction_GetClassObj(__Pyx_as_CyFunctionObject(f)) +#define __Pyx_CyFunction_SetClassObj(f, classobj)\ + __Pyx__CyFunction_SetClassObj(__Pyx_as_CyFunctionObject(f), (classobj)) +#define __Pyx_CyFunction_Defaults(type, f)\ + ((type *)((__Pyx_as_CyFunctionObject(f))->defaults)) +#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ + (__Pyx_as_CyFunctionObject(f))->defaults_getter = (g) +typedef struct { +#if CYTHON_COMPILING_IN_LIMITED_API +#if !CYTHON_OPAQUE_OBJECTS + PyObject_HEAD +#endif + PyMethodDef *func_methoddef; + PyObject *func_module; +#else + PyCMethodObject func; +#endif +#if (CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY) && CYTHON_VECTORCALL + __pyx_vectorcallfunc func_vectorcall; +#endif +#if CYTHON_COMPILING_IN_LIMITED_API + PyObject *func_weakreflist; +#endif +#if PY_VERSION_HEX < 0x030C0000 || CYTHON_COMPILING_IN_LIMITED_API + PyObject *func_dict; +#endif + PyObject *func_name; + PyObject *func_qualname; + PyObject *func_doc; + PyObject *func_globals; + PyObject *func_code; + PyObject *func_closure; +#if CYTHON_COMPILING_IN_LIMITED_API + PyObject *func_classobj; +#endif + PyObject *defaults; + int flags; + PyObject *defaults_tuple; + PyObject *defaults_kwdict; + PyObject *(*defaults_getter)(PyObject *); + PyObject *func_annotations; +#if __PYX_LIMITED_VERSION_HEX < 0x030B0000 + PyObject *func_is_coroutine; +#endif +} __pyx_CyFunctionObject; +#undef __Pyx_CyOrPyCFunction_Check +#define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_mstate_global->__pyx_CyFunctionType) +#define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_mstate_global->__pyx_CyFunctionType, &PyCFunction_Type) +#define __Pyx_CyFunction_CheckExact(obj) Py_IS_TYPE(obj, __pyx_mstate_global->__pyx_CyFunctionType) +static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void (*cfunc)(void)); +#undef __Pyx_IsSameCFunction +#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc) +static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj); +static CYTHON_INLINE PyObject *__Pyx_CyFunction_InitDefaults(PyObject *func, + PyTypeObject *defaults_type); +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, + PyObject *tuple); +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, + PyObject *dict); +static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, + PyObject *dict); +static int __pyx_CyFunction_init(PyObject *module); +#if CYTHON_VECTORCALL +#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY +#define __Pyx_CyFunction_func_vectorcall(f) ((f)->func_vectorcall) +#else +#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall) +#endif +#endif + +/* CallTypeTraverse.proto (used by CythonFunctionShared) */ +#if !CYTHON_USE_TYPE_SPECS +#define __Pyx_call_type_traverse(o, always_call, visit, arg) 0 +#else +static int __Pyx_call_type_traverse(PyObject *o, int always_call, visitproc visit, void *arg); +#endif + +/* PyMethodNew.proto (used by CythonFunctionShared) */ +static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ); + +/* PyVectorcallFastCallDict.proto (used by CythonFunctionShared) */ +#if CYTHON_VECTORCALL +static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw); +#endif + +/* CythonFunctionShared.proto (used by CythonFunction) */ +static PyObject *__Pyx_CyFunction_Init(PyObject *op_in, PyMethodDef *ml, + int flags, PyObject* qualname, + PyObject *closure, + PyObject *module, PyObject *globals, + PyObject* code); +#if CYTHON_VECTORCALL +static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); +#endif + +/* CythonFunction.export */ +static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, + int flags, PyObject* qualname, + PyObject *closure, + PyObject *module, PyObject *globals, + PyObject* code); +static PyTypeObject *__Pyx_Get_CyFunction_Type(void); + +/* SetNameInClass.proto */ +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 +#define __Pyx_SetNameInClass(ns, name, value)\ + (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) +#elif CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_SetNameInClass(ns, name, value)\ + (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value)) +#else +#define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value) +#endif + +/* ImportFrom.export */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); + +/* PyObjectCallMethod1.proto (used by append) */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); + +/* append.proto */ +static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x); + +/* PyModuleNotFoundError_Check.proto */ +#define __Pyx_PyExc_ModuleNotFoundError_Check(obj) __Pyx_TypeCheck(obj, PyExc_ModuleNotFoundError) + +/* PyNameError_Check.proto */ +#define __Pyx_PyExc_NameError_Check(obj) __Pyx_TypeCheck(obj, PyExc_NameError) + +/* PyObjectCompare.proto */ +static CYTHON_INLINE int __Pyx_PyObject_CompareBoolGe_object_str(PyObject *op1, PyObject *op2, int pyop); + +/* LimitedApiGetTypeTypeDict.proto (used by SetItemOnTypeDict) */ +#if CYTHON_COMPILING_IN_LIMITED_API +static PyObject *__Pyx_GetTypeTypeDict(PyTypeObject *tp); +#endif + +/* SetItemOnTypeDict.proto */ +#define __Pyx_SetItemOnTypeDict(tp, k, v) __Pyx__SetItemOnTypeDict((PyTypeObject*)tp, k, v) + +/* SetItemOnTypeDict.export */ +static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v); + +/* GetNameInClass.proto */ +#define __Pyx_GetNameInClass(var, nmspace, name) (var) = __Pyx__GetNameInClass(nmspace, name) +static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name); + +/* CLineInTraceback.proto (used by AddTraceback) */ +#if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#else +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#endif + +/* CodeObjectCache.proto (used by AddTraceback) */ +#if CYTHON_COMPILING_IN_LIMITED_API +typedef PyObject __Pyx_CachedCodeObjectType; +#else +typedef PyCodeObject __Pyx_CachedCodeObjectType; +#endif +typedef struct { + __Pyx_CachedCodeObjectType* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; + #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING + __pyx_atomic_int_type accessor_count; + #endif +}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static __Pyx_CachedCodeObjectType *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, __Pyx_CachedCodeObjectType* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +/* RealImag.proto */ +#if CYTHON_CCOMPLEX + #ifdef __cplusplus + #define __Pyx_CREAL(z) ((z).real()) + #define __Pyx_CIMAG(z) ((z).imag()) + #else + #define __Pyx_CREAL(z) (__real__(z)) + #define __Pyx_CIMAG(z) (__imag__(z)) + #endif +#else + #define __Pyx_CREAL(z) ((z).real) + #define __Pyx_CIMAG(z) ((z).imag) +#endif +#if defined(__cplusplus) && CYTHON_CCOMPLEX\ + && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) + #define __Pyx_SET_CREAL(z,x) ((z).real(x)) + #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) +#else + #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) + #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) +#endif + +/* Arithmetic.proto */ +#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) + #define __Pyx_c_eq_float(a, b) ((a)==(b)) + #define __Pyx_c_sum_float(a, b) ((a)+(b)) + #define __Pyx_c_diff_float(a, b) ((a)-(b)) + #define __Pyx_c_prod_float(a, b) ((a)*(b)) + #define __Pyx_c_quot_float(a, b) ((a)/(b)) + #define __Pyx_c_neg_float(a) (-(a)) + #ifdef __cplusplus + #define __Pyx_c_is_zero_float(z) ((z)==(float)0) + #define __Pyx_c_conj_float(z) (::std::conj(z)) + #if 1 + #define __Pyx_c_abs_float(z) (::std::abs(z)) + #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) + #endif + #else + #define __Pyx_c_is_zero_float(z) ((z)==0) + #define __Pyx_c_conj_float(z) (conjf(z)) + #if 1 + #define __Pyx_c_abs_float(z) (cabsf(z)) + #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) + #endif + #endif +#else + static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); + static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); + #if 1 + static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); + static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); + #endif +#endif + +/* Arithmetic.proto */ +#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) + #define __Pyx_c_eq_double(a, b) ((a)==(b)) + #define __Pyx_c_sum_double(a, b) ((a)+(b)) + #define __Pyx_c_diff_double(a, b) ((a)-(b)) + #define __Pyx_c_prod_double(a, b) ((a)*(b)) + #define __Pyx_c_quot_double(a, b) ((a)/(b)) + #define __Pyx_c_neg_double(a) (-(a)) + #ifdef __cplusplus + #define __Pyx_c_is_zero_double(z) ((z)==(double)0) + #define __Pyx_c_conj_double(z) (::std::conj(z)) + #if 1 + #define __Pyx_c_abs_double(z) (::std::abs(z)) + #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) + #endif + #else + #define __Pyx_c_is_zero_double(z) ((z)==0) + #define __Pyx_c_conj_double(z) (conj(z)) + #if 1 + #define __Pyx_c_abs_double(z) (cabs(z)) + #define __Pyx_c_pow_double(a, b) (cpow(a, b)) + #endif + #endif +#else + static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); + static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); + #if 1 + static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); + static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); + #endif +#endif + +/* Arithmetic.proto */ +#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) + #define __Pyx_c_eq_long__double(a, b) ((a)==(b)) + #define __Pyx_c_sum_long__double(a, b) ((a)+(b)) + #define __Pyx_c_diff_long__double(a, b) ((a)-(b)) + #define __Pyx_c_prod_long__double(a, b) ((a)*(b)) + #define __Pyx_c_quot_long__double(a, b) ((a)/(b)) + #define __Pyx_c_neg_long__double(a) (-(a)) + #ifdef __cplusplus + #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0) + #define __Pyx_c_conj_long__double(z) (::std::conj(z)) + #if 1 + #define __Pyx_c_abs_long__double(z) (::std::abs(z)) + #define __Pyx_c_pow_long__double(a, b) (::std::pow(a, b)) + #endif + #else + #define __Pyx_c_is_zero_long__double(z) ((z)==0) + #define __Pyx_c_conj_long__double(z) (conjl(z)) + #if 1 + #define __Pyx_c_abs_long__double(z) (cabsl(z)) + #define __Pyx_c_pow_long__double(a, b) (cpowl(a, b)) + #endif + #endif +#else + static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex); + static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex); + #if 1 + static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + #endif +#endif + +/* CIntFromPy.proto */ +static CYTHON_INLINE TA_RetCode __Pyx_PyLong_As_TA_RetCode(PyObject *); + +/* PyObjectVectorcallMethodKwds.proto (used by CIntToPy) */ +#if CYTHON_VECTORCALL +#define __Pyx_Object_VectorcallMethodKwds PyObject_VectorcallMethod +#else +static PyObject *__Pyx_Object_VectorcallMethodKwds(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames); +#endif + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncUnstId(TA_FuncUnstId value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyLong_As_int(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_int(int value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TA_FuncUnstId __Pyx_PyLong_As_TA_FuncUnstId(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE unsigned int __Pyx_PyLong_As_unsigned_int(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_unsigned_int(unsigned int value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TA_Compatibility __Pyx_PyLong_As_TA_Compatibility(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TA_CandleSettingType __Pyx_PyLong_As_TA_CandleSettingType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TA_RangeType __Pyx_PyLong_As_TA_RangeType(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_long(long value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInputParameterType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_FuncFlags(TA_FuncFlags value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_InputFlags(TA_InputFlags value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OutputFlags(TA_OutputFlags value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_npy_intp(npy_intp value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE npy_intp __Pyx_PyLong_As_npy_intp(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyLong_As_long(PyObject *); + +/* GetRuntimeVersion.proto */ +#if __PYX_LIMITED_VERSION_HEX < 0x030b0000 +static unsigned long __Pyx_cached_runtime_version = 0; +static void __Pyx_init_runtime_version(void); +#else +#define __Pyx_init_runtime_version() +#endif +static unsigned long __Pyx_get_runtime_version(void); + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer); + +/* DecompressString.proto */ +static PyObject *__Pyx_DecompressString(const char *s, Py_ssize_t length, int algo); + +/* DecompressString_LZSS.proto */ +static PyObject *__Pyx_DecompressString_LZSS(const char *s, size_t compressed_length, size_t uncompressed_length); + +/* MultiPhaseInitModuleState.proto */ +#if CYTHON_PEP489_MULTI_PHASE_INIT && CYTHON_USE_MODULE_STATE +#include +static PyObject *__Pyx_State_FindModule(void*); +static int __Pyx_State_AddModule(PyObject* module, void*); +static int __Pyx_State_RemoveModule(void*); +#elif CYTHON_USE_MODULE_STATE +#define __Pyx_State_FindModule PyState_FindModule +#define __Pyx_State_AddModule PyState_AddModule +#define __Pyx_State_RemoveModule PyState_RemoveModule +#endif + +/* #### Code section: module_declarations ### */ +/* CythonABIVersion.proto */ +#if CYTHON_COMPILING_IN_LIMITED_API + #if CYTHON_VECTORCALL + #define __PYX_VECTORCALL_ABI_SUFFIX "_vectorcall" + #else + #define __PYX_VECTORCALL_ABI_SUFFIX + #endif + #define __PYX_LIMITED_ABI_SUFFIX "limited" __PYX_VECTORCALL_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX +#else + #define __PYX_LIMITED_ABI_SUFFIX +#endif +#if __PYX_HAS_PY_AM_SEND == 1 + #define __PYX_AM_SEND_ABI_SUFFIX +#elif __PYX_HAS_PY_AM_SEND == 2 + #define __PYX_AM_SEND_ABI_SUFFIX "amsendbackport" +#else + #define __PYX_AM_SEND_ABI_SUFFIX "noamsend" +#endif +#ifndef __PYX_MONITORING_ABI_SUFFIX + #define __PYX_MONITORING_ABI_SUFFIX +#endif +#if CYTHON_USE_TP_FINALIZE + #define __PYX_TP_FINALIZE_ABI_SUFFIX +#else + #define __PYX_TP_FINALIZE_ABI_SUFFIX "nofinalize" +#endif +#if CYTHON_USE_FREELISTS || !defined(__Pyx_AsyncGen_USED) + #define __PYX_FREELISTS_ABI_SUFFIX +#else + #define __PYX_FREELISTS_ABI_SUFFIX "nofreelists" +#endif +#if CYTHON_OPAQUE_OBJECTS && CYTHON_COMPILING_IN_LIMITED_API + #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX "opaque" +#else + #define __PYX_OPAQUE_OBJECTS_ABI_SUFFIX +#endif +#define CYTHON_ABI __PYX_ABI_VERSION __PYX_LIMITED_ABI_SUFFIX __PYX_MONITORING_ABI_SUFFIX __PYX_TP_FINALIZE_ABI_SUFFIX __PYX_FREELISTS_ABI_SUFFIX __PYX_AM_SEND_ABI_SUFFIX __PYX_OPAQUE_OBJECTS_ABI_SUFFIX +#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI +#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__out_range(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED int *__pyx_v_outbegidx, CYTHON_UNUSED int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__advance(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement); /* proto*/ +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto*/ + +/* Module declarations from "libc.string" */ + +/* Module declarations from "libc.stdio" */ + +/* Module declarations from "__builtin__" */ + +/* Module declarations from "cpython.type" */ + +/* Module declarations from "cpython" */ + +/* Module declarations from "cpython.object" */ + +/* Module declarations from "cpython.ref" */ + +/* Module declarations from "numpy" */ + +/* Module declarations from "numpy" */ +static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/ + +/* Module declarations from "cython" */ + +/* Module declarations from "talib._ta_lib" */ +static double __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *, TA_RetCode, int __pyx_skip_dispatch); /*proto*/ +static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *); /*proto*/ +static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *, PyArrayObject *); /*proto*/ +static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/ +static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *, PyArrayObject *, PyArrayObject *, PyArrayObject *); /*proto*/ +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp, double *); /*proto*/ +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp, double *, double *); /*proto*/ +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp, double *, double *, double *); /*proto*/ +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp, double *, double *, double *, double *); /*proto*/ +static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp, int); /*proto*/ +static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp, int); /*proto*/ +static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *); /*proto*/ +static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *); /*proto*/ +static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *); /*proto*/ +static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *, int, int); /*proto*/ +static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *, int, double); /*proto*/ +static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *); /*proto*/ +static npy_intp __pyx_f_5talib_7_ta_lib_check_length(PyObject *); /*proto*/ +static int __pyx_f_5talib_7_ta_lib_check_begidx(npy_intp, PyObject *); /*proto*/ +static PyArrayObject *__pyx_f_5talib_7_ta_lib__stream_input(PyObject *); /*proto*/ +static int __pyx_f_5talib_7_ta_lib__stream_history(npy_intp, int); /*proto*/ +static PyObject *__pyx_f_5talib_7_ta_lib__stream_open_failed(PyObject *, TA_RetCode, int, int); /*proto*/ +static PyObject *__pyx_f_5talib_7_ta_lib__stream_like(PyObject *, PyObject *); /*proto*/ +/* #### Code section: typeinfo ### */ +/* #### Code section: before_global_var ### */ +#define __Pyx_MODULE_NAME "talib._ta_lib" +extern int __pyx_module_is_main_talib___ta_lib; +int __pyx_module_is_main_talib___ta_lib = 0; + +/* Implementation of "talib._ta_lib" */ +/* #### Code section: global_var ### */ +static PyObject *__pyx_builtin_object; +static PyObject *__pyx_builtin_property; +static PyObject *__pyx_builtin_staticmethod; +static PyObject *__pyx_builtin_enumerate; +/* #### Code section: string_decls ### */ +/* #### Code section: decls ### */ +static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_4__copy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_6__deepcopy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_memo); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self); /* proto */ +static void __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto */ +static int __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, double __pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self); /* proto */ +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_AC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_AC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_AC_Stream __pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ACCBANDS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ACCBANDS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ACCBANDS_Stream __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ACOS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ACOS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ACOS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ACOS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ACOS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ACOS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ACOS_Stream __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_AD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_AD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_AD_Stream __pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ADD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ADD_Stream __pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADOSC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ADOSC_Stream __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ADR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ADR_Stream __pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ADX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ADX_Stream __pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADXR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADXR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ADXR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADXR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADXR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADXR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ADXR_Stream __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_AO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_AO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_AO_Stream __pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_APO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_APO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_APO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_APO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_APO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_APO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_APO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_APO_Stream __pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AROON_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AROON_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AROON_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_AROON_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_AROON_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AROON_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AROON_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_AROON_Stream __pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AROONOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AROONOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_AROONOSC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AROONOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AROONOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_AROONOSC_Stream __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ASIN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ASIN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ASIN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ASIN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ASIN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ASIN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ASIN_Stream __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ATAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ATAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ATAN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ATAN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ATAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ATAN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ATAN_Stream __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ATR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ATR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ATR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ATR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ATR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ATR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ATR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ATR_Stream __pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AVGDEV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGDEV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGDEV_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AVGDEV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AVGDEV_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_AVGDEV_Stream __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AVGPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AVGPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_AVGPRICE_Stream __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BBANDS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BBANDS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_BBANDS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BBANDS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BBANDS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_BBANDS_Stream __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BETA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BETA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BETA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_BETA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_BETA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BETA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BETA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_BETA_Stream __pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BOP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BOP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BOP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_BOP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_BOP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BOP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BOP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_BOP_Stream __pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CCI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CCI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CCI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CCI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CCI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CCI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CCI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CCI_Stream __pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL2CROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL2CROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDL2CROWS_Stream __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3INSIDE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3INSIDE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDL3INSIDE_Stream __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDL3OUTSIDE_Stream __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLABANDONEDBABY_Stream __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLBELTHOLD_Stream __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLBREAKAWAY_Stream __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLDOJI_Stream __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLDOJISTAR_Stream __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLENGULFING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLENGULFING_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLENGULFING_Stream __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHAMMER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHAMMER_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHAMMER_Stream __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHANGINGMAN_Stream __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHARAMI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHARAMI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHARAMI_Stream __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHIGHWAVE_Stream __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKE_Stream __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLINNECK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLINNECK_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLINNECK_Stream __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLKICKING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLKICKING_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLKICKING_Stream __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLONGLINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLLONGLINE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLLONGLINE_Stream __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLMARUBOZU_Stream __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMATHOLD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMATHOLD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLMATHOLD_Stream __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLONNECK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLONNECK_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLONNECK_Stream __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLPIERCING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLPIERCING_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLPIERCING_Stream __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLSHORTLINE_Stream __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTAKURI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTAKURI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLTAKURI_Stream __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLTASUKIGAP_Stream __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLTHRUSTING_Stream __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTRISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTRISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLTRISTAR_Stream __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CEIL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CEIL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CEIL_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CEIL_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CEIL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CEIL_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CEIL_Stream __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CMF_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CMF_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CMF_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CMF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CMF_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CMF_Stream __pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CMO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CMO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CMO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CMO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CMO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CMO_Stream __pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMOU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMOU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CMOU_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CMOU_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CMOU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CMOU_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CMOU_Stream __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_COPPOCK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_COPPOCK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_COPPOCK_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_COPPOCK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_COPPOCK_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_COPPOCK_Stream __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CORREL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CORREL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CORREL_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CORREL_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CORREL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CORREL_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CORREL_Stream __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_COS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_COS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_COS_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_COS_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_COS_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_COS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_COS_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_COS_Stream __pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_COSH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_COSH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_COSH_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_COSH_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_COSH_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_COSH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_COSH_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_COSH_Stream __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CUMSUM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CUMSUM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CUMSUM_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CUMSUM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CUMSUM_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CUMSUM_Stream __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_CVI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_CVI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CVI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_CVI_Stream __pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DEMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DEMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_DEMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_DEMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DEMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DEMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_DEMA_Stream __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DIV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DIV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DIV_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_DIV_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_DIV_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DIV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DIV_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_DIV_Stream __pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_DONCHIAN_Stream __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DPO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DPO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DPO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_DPO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_DPO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DPO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DPO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_DPO_Stream __pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_DX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_DX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_DX_Stream __pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EFI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EFI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EFI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_EFI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_EFI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EFI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EFI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_EFI_Stream __pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_EMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_EMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_EMA_Stream __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ER_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ER_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ER_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ER_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ER_Stream __pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ERI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ERI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ERI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ERI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ERI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ERI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ERI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ERI_Stream __pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EXP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EXP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EXP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_EXP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_EXP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EXP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EXP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_EXP_Stream __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FLOOR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FLOOR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_FLOOR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FLOOR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FLOOR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_FLOOR_Stream __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_FOSC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_FOSC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_FOSC_Stream __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FRACTAL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FRACTAL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_FRACTAL_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FRACTAL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FRACTAL_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_FRACTAL_Stream __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HA_Stream __pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HMA_Stream __pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HT_DCPERIOD_Stream __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_DCPHASE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_DCPHASE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HT_DCPHASE_Stream __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_PHASOR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_PHASOR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HT_PHASOR_Stream __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_SINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_SINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_SINE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_SINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_SINE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HT_SINE_Stream __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HT_TRENDLINE_Stream __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_HT_TRENDMODE_Stream __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_IMI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_IMI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_IMI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_IMI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_IMI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_IMI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_IMI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_IMI_Stream __pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KAMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KAMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_KAMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_KAMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KAMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KAMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_KAMA_Stream __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_KC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_KC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_KC_Stream __pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KDJ_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KDJ_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_KDJ_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_KDJ_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KDJ_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KDJ_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_KDJ_Stream __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_LINEARREG_Stream __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_LINEARREG_ANGLE_Stream __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_LINEARREG_SLOPE_Stream __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_LN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_LN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_LN_Stream __pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LOG10_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LOG10_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_LOG10_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_LOG10_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LOG10_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LOG10_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_LOG10_Stream __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MA_Stream __pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MACD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MACD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MACD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MACD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MACD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MACD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MACD_Stream __pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MACDEXT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDEXT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDEXT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MACDEXT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MACDEXT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MACDEXT_Stream __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MACDFIX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDFIX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDFIX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MACDFIX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MACDFIX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MACDFIX_Stream __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MAMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MAMA_Stream __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MARKETFI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MARKETFI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MARKETFI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MARKETFI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MARKETFI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MARKETFI_Stream __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MASSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MASSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MASSI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MASSI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MASSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MASSI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MASSI_Stream __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAVP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAVP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MAVP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAVP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAVP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAVP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MAVP_Stream __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MAX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MAX_Stream __pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MAXINDEX_Stream __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MEDPRICE_Stream __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MFI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MFI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MFI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MFI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MFI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MFI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MFI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MFI_Stream __pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MIDPOINT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MIDPOINT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MIDPOINT_Stream __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MIDPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MIDPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MIDPRICE_Stream __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MIN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MIN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MIN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MIN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MIN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MIN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MIN_Stream __pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MININDEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MININDEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MININDEX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MININDEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MININDEX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MININDEX_Stream __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINMAX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINMAX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINMAX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MINMAX_Stream __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINMAXINDEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINMAXINDEX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MINMAXINDEX_Stream __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINUS_DI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINUS_DI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MINUS_DI_Stream __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINUS_DM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINUS_DM_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MINUS_DM_Stream __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MOM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MOM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MOM_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MOM_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MOM_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MOM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MOM_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MOM_Stream __pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MULT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MULT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MULT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_MULT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_MULT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MULT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MULT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_MULT_Stream __pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_NATR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_NATR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_NATR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_NATR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_NATR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_NATR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_NATR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_NATR_Stream __pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_NVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_NVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_NVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_NVI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_NVI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_NVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_NVI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_NVI_Stream __pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_OBV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_OBV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_OBV_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_OBV_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_OBV_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_OBV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_OBV_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_OBV_Stream __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PERCENTILE_Stream __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTRANK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PERCENTRANK_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PERCENTRANK_Stream __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PLUS_DI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PLUS_DI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PLUS_DI_Stream __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PLUS_DM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PLUS_DM_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PLUS_DM_Stream __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PPO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PPO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PPO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PPO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PPO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PPO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PPO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PPO_Stream __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PVI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PVI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PVI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PVI_Stream __pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PVO_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PVO_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PVO_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PVO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PVO_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PVO_Stream __pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PVT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_PVT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_PVT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PVT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PVT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_PVT_Stream __pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_QSTICK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_QSTICK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_QSTICK_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_QSTICK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_QSTICK_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_QSTICK_Stream __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_RMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_RMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_RMA_Stream __pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ROC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ROC_Stream __pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROCP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ROCP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROCP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROCP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ROCP_Stream __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROCR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ROCR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROCR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROCR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ROCR_Stream __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROCR100_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR100_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR100_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROCR100_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROCR100_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ROCR100_Stream __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_RSI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_RSI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RSI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_RSI_Stream __pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_RVI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_RVI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RVI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_RVI_Stream __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVOL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVOL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_RVOL_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_RVOL_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RVOL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RVOL_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_RVOL_Stream __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SAR_Stream __pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SAREXT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SAREXT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SAREXT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SAREXT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SAREXT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SAREXT_Stream __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SIN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SIN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SIN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SIN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SIN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SIN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SIN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SIN_Stream __pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SINH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SINH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SINH_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SINH_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SINH_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SINH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SINH_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SINH_Stream __pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SMA_Stream __pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SMI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SMI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SMI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SMI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SMI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SMI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SMI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SMI_Stream __pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SQRT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SQRT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SQRT_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SQRT_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SQRT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SQRT_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SQRT_Stream __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STDDEV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STDDEV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_STDDEV_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STDDEV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STDDEV_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_STDDEV_Stream __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STOCH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_STOCH_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCH_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STOCH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STOCH_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_STOCH_Stream __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STOCHF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHF_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STOCHF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STOCHF_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_STOCHF_Stream __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STOCHRSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STOCHRSI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_STOCHRSI_Stream __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SUB_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUB_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SUB_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SUB_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SUB_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SUB_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SUB_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SUB_Stream __pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SUM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SUM_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SUM_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SUM_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SUM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SUM_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SUM_Stream __pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_T3_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_T3_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_T3_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_T3_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_T3_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_T3_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_T3_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_T3_Stream __pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TAN_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TAN_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TAN_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TAN_Stream __pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TANH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TANH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TANH_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TANH_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TANH_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TANH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TANH_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TANH_Stream __pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TEMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TEMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TEMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TEMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TEMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TEMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TEMA_Stream __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TRANGE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRANGE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TRANGE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TRANGE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TRANGE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TRANGE_Stream __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TRIMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TRIMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TRIMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TRIMA_Stream __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TRIX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TRIX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TRIX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TRIX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TRIX_Stream __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TSF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TSF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TSF_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TSF_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TSF_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TSF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TSF_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TSF_Stream __pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TSI_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TSI_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TSI_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TSI_Stream __pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TYPPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TYPPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_TYPPRICE_Stream __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ULTOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ULTOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ULTOSC_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ULTOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ULTOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ULTOSC_Stream __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_VAR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_VAR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VAR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_VAR_Stream __pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VHF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VHF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VHF_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_VHF_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_VHF_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VHF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VHF_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_VHF_Stream __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VORTEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VORTEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_VORTEX_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VORTEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VORTEX_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_VORTEX_Stream __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VWAP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VWAP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_VWAP_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_VWAP_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VWAP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VWAP_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_VWAP_Stream __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VWMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VWMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_VWMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_VWMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VWMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VWMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_VWMA_Stream __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WAD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WAD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WAD_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_WAD_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_WAD_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WAD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WAD_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_WAD_Stream __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_WCLPRICE_Stream __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WILLR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WILLR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_WILLR_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_WILLR_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WILLR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WILLR_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_WILLR_Stream __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_WMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_WMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_WMA_Stream __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__ +#endif +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ZLEMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ZLEMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +); /*proto*/ +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream __pyx_tp_new_vectorcall_5talib_7_ta_lib_ZLEMA_Stream +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ZLEMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames); /*proto*/ +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ZLEMA_Stream(PyObject *o, PyObject *args, PyObject *kwds); /*proto*/ +#endif +#if !CYTHON_VECTORCALL_TPNEW +#define __pyx_tp_init_5talib_7_ta_lib_ZLEMA_Stream __pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_3__init__ +#endif +/* #### Code section: late_includes ### */ +/* #### Code section: module_state ### */ +/* SmallCodeConfig */ +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +#ifdef __cplusplus +namespace { + #endif + typedef struct { + PyObject *__pyx_d; + PyObject *__pyx_b; + PyObject *__pyx_cython_runtime; + PyObject *__pyx_empty_tuple; + PyObject *__pyx_empty_bytes; + PyObject *__pyx_empty_unicode; + PyTypeObject *__pyx_ptype_7cpython_4type_type; + PyTypeObject *__pyx_ptype_5numpy_dtype; + PyTypeObject *__pyx_ptype_5numpy_flatiter; + PyTypeObject *__pyx_ptype_5numpy_broadcast; + PyTypeObject *__pyx_ptype_5numpy_ndarray; + PyTypeObject *__pyx_ptype_5numpy_generic; + PyTypeObject *__pyx_ptype_5numpy_number; + PyTypeObject *__pyx_ptype_5numpy_integer; + PyTypeObject *__pyx_ptype_5numpy_signedinteger; + PyTypeObject *__pyx_ptype_5numpy_unsignedinteger; + PyTypeObject *__pyx_ptype_5numpy_inexact; + PyTypeObject *__pyx_ptype_5numpy_floating; + PyTypeObject *__pyx_ptype_5numpy_complexfloating; + PyTypeObject *__pyx_ptype_5numpy_flexible; + PyTypeObject *__pyx_ptype_5numpy_character; + PyTypeObject *__pyx_ptype_5numpy_ufunc; + PyObject *__pyx_type_5talib_7_ta_lib_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_AC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ACOS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_AD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ADD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ADOSC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ADR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ADX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ADXR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_AO_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_APO_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_AROON_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_AROONOSC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ASIN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ATAN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ATR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_AVGDEV_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_BBANDS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_BETA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_BOP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CCI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CEIL_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CMF_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CMO_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CMOU_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_COPPOCK_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CORREL_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_COS_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_COSH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CUMSUM_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_CVI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_DEMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_DIV_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_DPO_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_DX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_EFI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_EMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ER_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ERI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_EXP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_FLOOR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_FOSC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_FRACTAL_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HT_SINE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_IMI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_KAMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_KC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_KDJ_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_LINEARREG_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_LN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_LOG10_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MACD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MACDEXT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MACDFIX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MAMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MARKETFI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MASSI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MAVP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MAX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MFI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MIN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MININDEX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MINMAX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MOM_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_MULT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_NATR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_NVI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_OBV_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PPO_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PVI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PVO_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_PVT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_QSTICK_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_RMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ROC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ROCP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ROCR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ROCR100_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_RSI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_RVI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_RVOL_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SAREXT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SIN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SINH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SMI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SQRT_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_STDDEV_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_STOCH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_STOCHF_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SUB_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SUM_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_T3_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TAN_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TANH_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TEMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TRANGE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TRIMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TRIX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TSF_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TSI_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ULTOSC_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_VAR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_VHF_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_VORTEX_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_VWAP_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_VWMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_WAD_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_WILLR_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_WMA_Stream; + PyObject *__pyx_type_5talib_7_ta_lib_ZLEMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ACOS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ADXR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AO_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_APO_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AROON_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ASIN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ATAN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ATR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_BETA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_BOP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CCI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CEIL_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CMF_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CMO_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CMOU_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CORREL_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_COS_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_COSH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_CVI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DEMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DIV_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DPO_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_DX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_EFI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_EMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ER_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ERI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_EXP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FOSC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_IMI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KAMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_KDJ_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_LOG10_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MACD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MAMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MASSI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MAVP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MAX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MFI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MIN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MOM_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_MULT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_NATR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_NVI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_OBV_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PPO_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PVI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PVO_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_PVT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROCP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROCR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RSI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RVI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_RVOL_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SIN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SINH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SMI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SQRT_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STOCH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SUB_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SUM_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_T3_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TAN_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TANH_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TEMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TRIX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TSF_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TSI_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VAR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VHF_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VWAP_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_VWMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WAD_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WILLR_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_WMA_Stream; + PyTypeObject *__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream; + __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items; + __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop; + __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; + PyObject *__pyx_tuple[59]; + PyObject *__pyx_codeobj_tab[453]; + PyObject *__pyx_string_tab[2870]; + PyObject *__pyx_number_tab[35]; +/* #### Code section: module_state_contents ### */ +/* PyFrozenDict.module_state_decls */ +#if CYTHON_COMPILING_IN_LIMITED_API +PyObject *__Pyx_PyFrozenDictType; +#endif + +/* CommonTypesMetaclass.module_state_decls */ +PyTypeObject *__pyx_CommonTypesMetaclassType; + +/* CachedMethodType.module_state_decls */ +#if CYTHON_COMPILING_IN_LIMITED_API +PyObject *__Pyx_CachedMethodType; +#endif + +/* CythonFunctionPerModule.module_state_decls */ +PyTypeObject *__pyx_CyFunctionType; + +/* CodeObjectCache.module_state_decls */ +struct __Pyx_CodeObjectCache __pyx_code_cache; + +/* #### Code section: module_state_end ### */ +} __pyx_mstatetype; +#ifdef __cplusplus +} /* anonymous namespace */ +#endif + +#if CYTHON_USE_MODULE_STATE +#ifdef __cplusplus +namespace { +extern struct PyModuleDef __pyx_moduledef; +} /* anonymous namespace */ +#else +static struct PyModuleDef __pyx_moduledef; +#endif + +#define __pyx_mstate_global (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&__pyx_moduledef))) + +#define __pyx_m (__Pyx_State_FindModule(&__pyx_moduledef)) +#else +static __pyx_mstatetype __pyx_mstate_global_static = +#ifdef __cplusplus + {}; +#else + {0}; +#endif +static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_static; +#endif +/* #### Code section: constant_name_defines ### */ +#define __pyx_kp_u__3 __pyx_string_tab[0] +#define __pyx_kp_u__14 __pyx_string_tab[1] +#define __pyx_kp_u_This_is_a_pythonic_wrapper_arou __pyx_string_tab[2] +#define __pyx_kp_u__12 __pyx_string_tab[3] +#define __pyx_kp_u__8 __pyx_string_tab[4] +#define __pyx_kp_u_s_4 __pyx_string_tab[5] +#define __pyx_kp_u__5 __pyx_string_tab[6] +#define __pyx_kp_u_expected __pyx_string_tab[7] +#define __pyx_kp_u_bars_of_history_at_least __pyx_string_tab[8] +#define __pyx_kp_u_function_failed_with_error_code __pyx_string_tab[9] +#define __pyx_kp_u_needed_a_leading_bar_that_is_Na __pyx_string_tab[10] +#define __pyx_kp_u_display_name_s_group_s __pyx_string_tab[11] +#define __pyx_kp_u_s_2 __pyx_string_tab[12] +#define __pyx_kp_u_s_advance __pyx_string_tab[13] +#define __pyx_kp_u_s_out_range __pyx_string_tab[14] +#define __pyx_kp_u_is_deprecated_and_has_no_effect __pyx_string_tab[15] +#define __pyx_kp_u__7 __pyx_string_tab[16] +#define __pyx_kp_u_s_3 __pyx_string_tab[17] +#define __pyx_kp_u_any_ndarray __pyx_string_tab[18] +#define __pyx_kp_u__6 __pyx_string_tab[19] +#define __pyx_kp_u__13 __pyx_string_tab[20] +#define __pyx_kp_u__4 __pyx_string_tab[21] +#define __pyx_kp_u_got __pyx_string_tab[22] +#define __pyx_kp_u__15 __pyx_string_tab[23] +#define __pyx_kp_u_3 __pyx_string_tab[24] +#define __pyx_kp_u_ __pyx_string_tab[25] +#define __pyx_kp_u__10 __pyx_string_tab[26] +#define __pyx_kp_u__2 __pyx_string_tab[27] +#define __pyx_kp_u_A_period_of_1_performs_no_smooth __pyx_string_tab[28] +#define __pyx_kp_u_ADXR_has_no_unstable_period_of_i __pyx_string_tab[29] +#define __pyx_kp_u_Allocation_Error_TA_ALLOC_ERR __pyx_string_tab[30] +#define __pyx_kp_u_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[31] +#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[32] +#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[33] +#define __pyx_kp_u_Cannot_mix_polars_and_pandas __pyx_string_tab[34] +#define __pyx_kp_u_Dashed_Line __pyx_string_tab[35] +#define __pyx_kp_u_Dotted_Line __pyx_string_tab[36] +#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[37] +#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[38] +#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[39] +#define __pyx_kp_u_Function_has_a_streaming_API __pyx_string_tab[40] +#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[41] +#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[42] +#define __pyx_kp_u_Hull_Moving_Average __pyx_string_tab[43] +#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[44] +#define __pyx_kp_u_Inputs __pyx_string_tab[45] +#define __pyx_kp_u_Insufficient_History_TA_INSUFFIC __pyx_string_tab[46] +#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[47] +#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[48] +#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[49] +#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[50] +#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[51] +#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[52] +#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[53] +#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[54] +#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[55] +#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[56] +#define __pyx_kp_u_MFI_s_unstable_period_was_retire __pyx_string_tab[57] +#define __pyx_kp_u_No_Moving_Average_identity __pyx_string_tab[58] +#define __pyx_kp_u_None __pyx_string_tab[59] +#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[60] +#define __pyx_kp_u_Not_enough_history_to_open_a_str __pyx_string_tab[61] +#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[62] +#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[63] +#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[64] +#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[65] +#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[66] +#define __pyx_kp_u_Output_can_be_NaN_or_infinite __pyx_string_tab[67] +#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[68] +#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[69] +#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[70] +#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[71] +#define __pyx_kp_u_Output_is_optional_nullable __pyx_string_tab[72] +#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[73] +#define __pyx_kp_u_Output_is_path_dependent __pyx_string_tab[74] +#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[75] +#define __pyx_kp_u_Outputs __pyx_string_tab[76] +#define __pyx_kp_u_Parameters __pyx_string_tab[77] +#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[78] +#define __pyx_kp_u_STOCHRSI_has_no_unstable_period __pyx_string_tab[79] +#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[80] +#define __pyx_kp_u_Strength_Pattern_200_100_Bearish __pyx_string_tab[81] +#define __pyx_kp_u_The_Function_s_Own_Default_Movin __pyx_string_tab[82] +#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[83] +#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[84] +#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[85] +#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[86] +#define __pyx_kp_u_Unknown_Error __pyx_string_tab[87] +#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[88] +#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[89] +#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[90] +#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[91] +#define __pyx_kp_u_Wilder_s_Smoothed_Moving_Average __pyx_string_tab[92] +#define __pyx_kp_u_Zero_Lag_Exponential_Moving_Aver __pyx_string_tab[93] +#define __pyx_kp_u__9 __pyx_string_tab[94] +#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[95] +#define __pyx_kp_u__11 __pyx_string_tab[96] +#define __pyx_kp_u_add_note __pyx_string_tab[97] +#define __pyx_kp_u_aroondown_aroonup __pyx_string_tab[98] +#define __pyx_kp_u_begidx_nbelement __pyx_string_tab[99] +#define __pyx_kp_u_bullpower_bearpower __pyx_string_tab[100] +#define __pyx_kp_u_cannot_pickle_s_a_stream_handle __pyx_string_tab[101] +#define __pyx_kp_u_disable __pyx_string_tab[102] +#define __pyx_kp_u_enable __pyx_string_tab[103] +#define __pyx_kp_u_fastk_fastd __pyx_string_tab[104] +#define __pyx_kp_u_gc __pyx_string_tab[105] +#define __pyx_kp_u_haopen_hahigh_halow_haclose __pyx_string_tab[106] +#define __pyx_kp_u_inphase_quadrature __pyx_string_tab[107] +#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[108] +#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[109] +#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[110] +#define __pyx_kp_u_input_must_be_a_numpy_array_or_a __pyx_string_tab[111] +#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[112] +#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[113] +#define __pyx_kp_u_isenabled __pyx_string_tab[114] +#define __pyx_kp_u_k_d_j __pyx_string_tab[115] +#define __pyx_kp_u_macd_macdsignal_macdhist __pyx_string_tab[116] +#define __pyx_kp_u_mama_fama __pyx_string_tab[117] +#define __pyx_kp_u_min_max __pyx_string_tab[118] +#define __pyx_kp_u_minidx_maxidx __pyx_string_tab[119] +#define __pyx_kp_u_no_history_the_input_array_is_em __pyx_string_tab[120] +#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[121] +#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[122] +#define __pyx_kp_u_plusvi_minusvi __pyx_string_tab[123] +#define __pyx_kp_u_real_integer __pyx_string_tab[124] +#define __pyx_kp_u_sine_leadsine __pyx_string_tab[125] +#define __pyx_kp_u_slowk_slowd __pyx_string_tab[126] +#define __pyx_kp_u_smi_smisignal __pyx_string_tab[127] +#define __pyx_kp_u_swinghigh_swinglow __pyx_string_tab[128] +#define __pyx_kp_u_talib_collections __pyx_string_tab[129] +#define __pyx_kp_u_talib_numpy __pyx_string_tab[130] +#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[131] +#define __pyx_kp_u_talib_pandas __pyx_string_tab[132] +#define __pyx_kp_u_talib_polars __pyx_string_tab[133] +#define __pyx_kp_u_talib_sys __pyx_string_tab[134] +#define __pyx_kp_u_talib_threading __pyx_string_tab[135] +#define __pyx_kp_u_talib_warnings __pyx_string_tab[136] +#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[137] +#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[138] +#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[139] +#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[140] +#define __pyx_kp_u_too_many_input_arrays __pyx_string_tab[141] +#define __pyx_kp_u_unstable_period __pyx_string_tab[142] +#define __pyx_kp_u_upperband_middleband_lowerband __pyx_string_tab[143] +#define __pyx_n_u_AC __pyx_string_tab[144] +#define __pyx_n_u_ACCBANDS __pyx_string_tab[145] +#define __pyx_n_u_ACCBANDS_Stream __pyx_string_tab[146] +#define __pyx_n_u_ACCBANDS_Stream_open_and_fill __pyx_string_tab[147] +#define __pyx_n_u_ACCBANDS_Value __pyx_string_tab[148] +#define __pyx_n_u_ACOS __pyx_string_tab[149] +#define __pyx_n_u_ACOS_Stream __pyx_string_tab[150] +#define __pyx_n_u_ACOS_Stream_open_and_fill __pyx_string_tab[151] +#define __pyx_n_u_AC_Stream __pyx_string_tab[152] +#define __pyx_n_u_AC_Stream_open_and_fill __pyx_string_tab[153] +#define __pyx_n_u_AD __pyx_string_tab[154] +#define __pyx_n_u_ADD __pyx_string_tab[155] +#define __pyx_n_u_ADD_Stream __pyx_string_tab[156] +#define __pyx_n_u_ADD_Stream_open_and_fill __pyx_string_tab[157] +#define __pyx_n_u_ADOSC __pyx_string_tab[158] +#define __pyx_n_u_ADOSC_Stream __pyx_string_tab[159] +#define __pyx_n_u_ADOSC_Stream_open_and_fill __pyx_string_tab[160] +#define __pyx_n_u_ADR __pyx_string_tab[161] +#define __pyx_n_u_ADR_Stream __pyx_string_tab[162] +#define __pyx_n_u_ADR_Stream_open_and_fill __pyx_string_tab[163] +#define __pyx_n_u_ADX __pyx_string_tab[164] +#define __pyx_n_u_ADXR __pyx_string_tab[165] +#define __pyx_n_u_ADXR_Stream __pyx_string_tab[166] +#define __pyx_n_u_ADXR_Stream_open_and_fill __pyx_string_tab[167] +#define __pyx_n_u_ADX_Stream __pyx_string_tab[168] +#define __pyx_n_u_ADX_Stream_open_and_fill __pyx_string_tab[169] +#define __pyx_n_u_AD_Stream __pyx_string_tab[170] +#define __pyx_n_u_AD_Stream_open_and_fill __pyx_string_tab[171] +#define __pyx_n_u_ALL __pyx_string_tab[172] +#define __pyx_n_u_AO __pyx_string_tab[173] +#define __pyx_n_u_AO_Stream __pyx_string_tab[174] +#define __pyx_n_u_AO_Stream_open_and_fill __pyx_string_tab[175] +#define __pyx_n_u_APO __pyx_string_tab[176] +#define __pyx_n_u_APO_Stream __pyx_string_tab[177] +#define __pyx_n_u_APO_Stream_open_and_fill __pyx_string_tab[178] +#define __pyx_n_u_AROON __pyx_string_tab[179] +#define __pyx_n_u_AROONOSC __pyx_string_tab[180] +#define __pyx_n_u_AROONOSC_Stream __pyx_string_tab[181] +#define __pyx_n_u_AROONOSC_Stream_open_and_fill __pyx_string_tab[182] +#define __pyx_n_u_AROON_Stream __pyx_string_tab[183] +#define __pyx_n_u_AROON_Stream_open_and_fill __pyx_string_tab[184] +#define __pyx_n_u_AROON_Value __pyx_string_tab[185] +#define __pyx_n_u_ASIN __pyx_string_tab[186] +#define __pyx_n_u_ASIN_Stream __pyx_string_tab[187] +#define __pyx_n_u_ASIN_Stream_open_and_fill __pyx_string_tab[188] +#define __pyx_n_u_ATAN __pyx_string_tab[189] +#define __pyx_n_u_ATAN_Stream __pyx_string_tab[190] +#define __pyx_n_u_ATAN_Stream_open_and_fill __pyx_string_tab[191] +#define __pyx_n_u_ATR __pyx_string_tab[192] +#define __pyx_n_u_ATR_Stream __pyx_string_tab[193] +#define __pyx_n_u_ATR_Stream_open_and_fill __pyx_string_tab[194] +#define __pyx_n_u_AVGDEV __pyx_string_tab[195] +#define __pyx_n_u_AVGDEV_Stream __pyx_string_tab[196] +#define __pyx_n_u_AVGDEV_Stream_open_and_fill __pyx_string_tab[197] +#define __pyx_n_u_AVGPRICE __pyx_string_tab[198] +#define __pyx_n_u_AVGPRICE_Stream __pyx_string_tab[199] +#define __pyx_n_u_AVGPRICE_Stream_open_and_fill __pyx_string_tab[200] +#define __pyx_n_u_AllCandleSettings __pyx_string_tab[201] +#define __pyx_n_u_BBANDS __pyx_string_tab[202] +#define __pyx_n_u_BBANDS_Stream __pyx_string_tab[203] +#define __pyx_n_u_BBANDS_Stream_open_and_fill __pyx_string_tab[204] +#define __pyx_n_u_BBANDS_Value __pyx_string_tab[205] +#define __pyx_n_u_BETA __pyx_string_tab[206] +#define __pyx_n_u_BETA_Stream __pyx_string_tab[207] +#define __pyx_n_u_BETA_Stream_open_and_fill __pyx_string_tab[208] +#define __pyx_n_u_BOP __pyx_string_tab[209] +#define __pyx_n_u_BOP_Stream __pyx_string_tab[210] +#define __pyx_n_u_BOP_Stream_open_and_fill __pyx_string_tab[211] +#define __pyx_n_u_BodyDoji __pyx_string_tab[212] +#define __pyx_n_u_BodyLong __pyx_string_tab[213] +#define __pyx_n_u_BodyShort __pyx_string_tab[214] +#define __pyx_n_u_BodyVeryLong __pyx_string_tab[215] +#define __pyx_n_u_CCI __pyx_string_tab[216] +#define __pyx_n_u_CCI_Stream __pyx_string_tab[217] +#define __pyx_n_u_CCI_Stream_open_and_fill __pyx_string_tab[218] +#define __pyx_n_u_CDL2CROWS __pyx_string_tab[219] +#define __pyx_n_u_CDL2CROWS_Stream __pyx_string_tab[220] +#define __pyx_n_u_CDL2CROWS_Stream_open_and_fill __pyx_string_tab[221] +#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[222] +#define __pyx_n_u_CDL3BLACKCROWS_Stream __pyx_string_tab[223] +#define __pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f __pyx_string_tab[224] +#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[225] +#define __pyx_n_u_CDL3INSIDE_Stream __pyx_string_tab[226] +#define __pyx_n_u_CDL3INSIDE_Stream_open_and_fill __pyx_string_tab[227] +#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[228] +#define __pyx_n_u_CDL3LINESTRIKE_Stream __pyx_string_tab[229] +#define __pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f __pyx_string_tab[230] +#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[231] +#define __pyx_n_u_CDL3OUTSIDE_Stream __pyx_string_tab[232] +#define __pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill __pyx_string_tab[233] +#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[234] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream __pyx_string_tab[235] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream_open_and __pyx_string_tab[236] +#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[237] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream __pyx_string_tab[238] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an __pyx_string_tab[239] +#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[240] +#define __pyx_n_u_CDLABANDONEDBABY_Stream __pyx_string_tab[241] +#define __pyx_n_u_CDLABANDONEDBABY_Stream_open_and __pyx_string_tab[242] +#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[243] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream __pyx_string_tab[244] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream_open_and __pyx_string_tab[245] +#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[246] +#define __pyx_n_u_CDLBELTHOLD_Stream __pyx_string_tab[247] +#define __pyx_n_u_CDLBELTHOLD_Stream_open_and_fill __pyx_string_tab[248] +#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[249] +#define __pyx_n_u_CDLBREAKAWAY_Stream __pyx_string_tab[250] +#define __pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil __pyx_string_tab[251] +#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[252] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream __pyx_string_tab[253] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a __pyx_string_tab[254] +#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[255] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream __pyx_string_tab[256] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream_open __pyx_string_tab[257] +#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[258] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream __pyx_string_tab[259] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream_open_and __pyx_string_tab[260] +#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[261] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream __pyx_string_tab[262] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an __pyx_string_tab[263] +#define __pyx_n_u_CDLDOJI __pyx_string_tab[264] +#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[265] +#define __pyx_n_u_CDLDOJISTAR_Stream __pyx_string_tab[266] +#define __pyx_n_u_CDLDOJISTAR_Stream_open_and_fill __pyx_string_tab[267] +#define __pyx_n_u_CDLDOJI_Stream __pyx_string_tab[268] +#define __pyx_n_u_CDLDOJI_Stream_open_and_fill __pyx_string_tab[269] +#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[270] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream __pyx_string_tab[271] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and __pyx_string_tab[272] +#define __pyx_n_u_CDLENGULFING __pyx_string_tab[273] +#define __pyx_n_u_CDLENGULFING_Stream __pyx_string_tab[274] +#define __pyx_n_u_CDLENGULFING_Stream_open_and_fil __pyx_string_tab[275] +#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[276] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream __pyx_string_tab[277] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a __pyx_string_tab[278] +#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[279] +#define __pyx_n_u_CDLEVENINGSTAR_Stream __pyx_string_tab[280] +#define __pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f __pyx_string_tab[281] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[282] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream __pyx_string_tab[283] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open __pyx_string_tab[284] +#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[285] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream __pyx_string_tab[286] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an __pyx_string_tab[287] +#define __pyx_n_u_CDLHAMMER __pyx_string_tab[288] +#define __pyx_n_u_CDLHAMMER_Stream __pyx_string_tab[289] +#define __pyx_n_u_CDLHAMMER_Stream_open_and_fill __pyx_string_tab[290] +#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[291] +#define __pyx_n_u_CDLHANGINGMAN_Stream __pyx_string_tab[292] +#define __pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi __pyx_string_tab[293] +#define __pyx_n_u_CDLHARAMI __pyx_string_tab[294] +#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[295] +#define __pyx_n_u_CDLHARAMICROSS_Stream __pyx_string_tab[296] +#define __pyx_n_u_CDLHARAMICROSS_Stream_open_and_f __pyx_string_tab[297] +#define __pyx_n_u_CDLHARAMI_Stream __pyx_string_tab[298] +#define __pyx_n_u_CDLHARAMI_Stream_open_and_fill __pyx_string_tab[299] +#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[300] +#define __pyx_n_u_CDLHIGHWAVE_Stream __pyx_string_tab[301] +#define __pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill __pyx_string_tab[302] +#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[303] +#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[304] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream __pyx_string_tab[305] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi __pyx_string_tab[306] +#define __pyx_n_u_CDLHIKKAKE_Stream __pyx_string_tab[307] +#define __pyx_n_u_CDLHIKKAKE_Stream_open_and_fill __pyx_string_tab[308] +#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[309] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream __pyx_string_tab[310] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream_open_and __pyx_string_tab[311] +#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[312] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream __pyx_string_tab[313] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a __pyx_string_tab[314] +#define __pyx_n_u_CDLINNECK __pyx_string_tab[315] +#define __pyx_n_u_CDLINNECK_Stream __pyx_string_tab[316] +#define __pyx_n_u_CDLINNECK_Stream_open_and_fill __pyx_string_tab[317] +#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[318] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream __pyx_string_tab[319] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an __pyx_string_tab[320] +#define __pyx_n_u_CDLKICKING __pyx_string_tab[321] +#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[322] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream __pyx_string_tab[323] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a __pyx_string_tab[324] +#define __pyx_n_u_CDLKICKING_Stream __pyx_string_tab[325] +#define __pyx_n_u_CDLKICKING_Stream_open_and_fill __pyx_string_tab[326] +#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[327] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream __pyx_string_tab[328] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream_open_and __pyx_string_tab[329] +#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[330] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream __pyx_string_tab[331] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an __pyx_string_tab[332] +#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[333] +#define __pyx_n_u_CDLLONGLINE_Stream __pyx_string_tab[334] +#define __pyx_n_u_CDLLONGLINE_Stream_open_and_fill __pyx_string_tab[335] +#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[336] +#define __pyx_n_u_CDLMARUBOZU_Stream __pyx_string_tab[337] +#define __pyx_n_u_CDLMARUBOZU_Stream_open_and_fill __pyx_string_tab[338] +#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[339] +#define __pyx_n_u_CDLMATCHINGLOW_Stream __pyx_string_tab[340] +#define __pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f __pyx_string_tab[341] +#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[342] +#define __pyx_n_u_CDLMATHOLD_Stream __pyx_string_tab[343] +#define __pyx_n_u_CDLMATHOLD_Stream_open_and_fill __pyx_string_tab[344] +#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[345] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream __pyx_string_tab[346] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a __pyx_string_tab[347] +#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[348] +#define __pyx_n_u_CDLMORNINGSTAR_Stream __pyx_string_tab[349] +#define __pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f __pyx_string_tab[350] +#define __pyx_n_u_CDLONNECK __pyx_string_tab[351] +#define __pyx_n_u_CDLONNECK_Stream __pyx_string_tab[352] +#define __pyx_n_u_CDLONNECK_Stream_open_and_fill __pyx_string_tab[353] +#define __pyx_n_u_CDLPIERCING __pyx_string_tab[354] +#define __pyx_n_u_CDLPIERCING_Stream __pyx_string_tab[355] +#define __pyx_n_u_CDLPIERCING_Stream_open_and_fill __pyx_string_tab[356] +#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[357] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream __pyx_string_tab[358] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f __pyx_string_tab[359] +#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[360] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream __pyx_string_tab[361] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream_open __pyx_string_tab[362] +#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[363] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream __pyx_string_tab[364] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream_open_a __pyx_string_tab[365] +#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[366] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream __pyx_string_tab[367] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and __pyx_string_tab[368] +#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[369] +#define __pyx_n_u_CDLSHORTLINE_Stream __pyx_string_tab[370] +#define __pyx_n_u_CDLSHORTLINE_Stream_open_and_fil __pyx_string_tab[371] +#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[372] +#define __pyx_n_u_CDLSPINNINGTOP_Stream __pyx_string_tab[373] +#define __pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f __pyx_string_tab[374] +#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[375] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream __pyx_string_tab[376] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an __pyx_string_tab[377] +#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[378] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream __pyx_string_tab[379] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream_open_and __pyx_string_tab[380] +#define __pyx_n_u_CDLTAKURI __pyx_string_tab[381] +#define __pyx_n_u_CDLTAKURI_Stream __pyx_string_tab[382] +#define __pyx_n_u_CDLTAKURI_Stream_open_and_fill __pyx_string_tab[383] +#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[384] +#define __pyx_n_u_CDLTASUKIGAP_Stream __pyx_string_tab[385] +#define __pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil __pyx_string_tab[386] +#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[387] +#define __pyx_n_u_CDLTHRUSTING_Stream __pyx_string_tab[388] +#define __pyx_n_u_CDLTHRUSTING_Stream_open_and_fil __pyx_string_tab[389] +#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[390] +#define __pyx_n_u_CDLTRISTAR_Stream __pyx_string_tab[391] +#define __pyx_n_u_CDLTRISTAR_Stream_open_and_fill __pyx_string_tab[392] +#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[393] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream __pyx_string_tab[394] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and __pyx_string_tab[395] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[396] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream __pyx_string_tab[397] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a __pyx_string_tab[398] +#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[399] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream __pyx_string_tab[400] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open __pyx_string_tab[401] +#define __pyx_n_u_CEIL __pyx_string_tab[402] +#define __pyx_n_u_CEIL_Stream __pyx_string_tab[403] +#define __pyx_n_u_CEIL_Stream_open_and_fill __pyx_string_tab[404] +#define __pyx_n_u_CMF __pyx_string_tab[405] +#define __pyx_n_u_CMF_Stream __pyx_string_tab[406] +#define __pyx_n_u_CMF_Stream_open_and_fill __pyx_string_tab[407] +#define __pyx_n_u_CMO __pyx_string_tab[408] +#define __pyx_n_u_CMOU __pyx_string_tab[409] +#define __pyx_n_u_CMOU_Stream __pyx_string_tab[410] +#define __pyx_n_u_CMOU_Stream_open_and_fill __pyx_string_tab[411] +#define __pyx_n_u_CMO_Stream __pyx_string_tab[412] +#define __pyx_n_u_CMO_Stream_open_and_fill __pyx_string_tab[413] +#define __pyx_n_u_COPPOCK __pyx_string_tab[414] +#define __pyx_n_u_COPPOCK_Stream __pyx_string_tab[415] +#define __pyx_n_u_COPPOCK_Stream_open_and_fill __pyx_string_tab[416] +#define __pyx_n_u_CORREL __pyx_string_tab[417] +#define __pyx_n_u_CORREL_Stream __pyx_string_tab[418] +#define __pyx_n_u_CORREL_Stream_open_and_fill __pyx_string_tab[419] +#define __pyx_n_u_COS __pyx_string_tab[420] +#define __pyx_n_u_COSH __pyx_string_tab[421] +#define __pyx_n_u_COSH_Stream __pyx_string_tab[422] +#define __pyx_n_u_COSH_Stream_open_and_fill __pyx_string_tab[423] +#define __pyx_n_u_COS_Stream __pyx_string_tab[424] +#define __pyx_n_u_COS_Stream_open_and_fill __pyx_string_tab[425] +#define __pyx_n_u_CUMSUM __pyx_string_tab[426] +#define __pyx_n_u_CUMSUM_Stream __pyx_string_tab[427] +#define __pyx_n_u_CUMSUM_Stream_open_and_fill __pyx_string_tab[428] +#define __pyx_n_u_CVI __pyx_string_tab[429] +#define __pyx_n_u_CVI_Stream __pyx_string_tab[430] +#define __pyx_n_u_CVI_Stream_open_and_fill __pyx_string_tab[431] +#define __pyx_n_u_CandleSettingType __pyx_string_tab[432] +#define __pyx_n_u_DEFAULT __pyx_string_tab[433] +#define __pyx_n_u_DEMA __pyx_string_tab[434] +#define __pyx_n_u_DEMA_Stream __pyx_string_tab[435] +#define __pyx_n_u_DEMA_Stream_open_and_fill __pyx_string_tab[436] +#define __pyx_n_u_DISABLED __pyx_string_tab[437] +#define __pyx_n_u_DIV __pyx_string_tab[438] +#define __pyx_n_u_DIV_Stream __pyx_string_tab[439] +#define __pyx_n_u_DIV_Stream_open_and_fill __pyx_string_tab[440] +#define __pyx_n_u_DONCHIAN __pyx_string_tab[441] +#define __pyx_n_u_DONCHIAN_Stream __pyx_string_tab[442] +#define __pyx_n_u_DONCHIAN_Stream_open_and_fill __pyx_string_tab[443] +#define __pyx_n_u_DONCHIAN_Value __pyx_string_tab[444] +#define __pyx_n_u_DPO __pyx_string_tab[445] +#define __pyx_n_u_DPO_Stream __pyx_string_tab[446] +#define __pyx_n_u_DPO_Stream_open_and_fill __pyx_string_tab[447] +#define __pyx_n_u_DX __pyx_string_tab[448] +#define __pyx_n_u_DX_Stream __pyx_string_tab[449] +#define __pyx_n_u_DX_Stream_open_and_fill __pyx_string_tab[450] +#define __pyx_n_u_DataFrame __pyx_string_tab[451] +#define __pyx_n_u_Dot __pyx_string_tab[452] +#define __pyx_n_u_EFI __pyx_string_tab[453] +#define __pyx_n_u_EFI_Stream __pyx_string_tab[454] +#define __pyx_n_u_EFI_Stream_open_and_fill __pyx_string_tab[455] +#define __pyx_n_u_EMA __pyx_string_tab[456] +#define __pyx_n_u_EMA_Stream __pyx_string_tab[457] +#define __pyx_n_u_EMA_Stream_open_and_fill __pyx_string_tab[458] +#define __pyx_n_u_ER __pyx_string_tab[459] +#define __pyx_n_u_ERI __pyx_string_tab[460] +#define __pyx_n_u_ERI_Stream __pyx_string_tab[461] +#define __pyx_n_u_ERI_Stream_open_and_fill __pyx_string_tab[462] +#define __pyx_n_u_ERI_Value __pyx_string_tab[463] +#define __pyx_n_u_ER_Stream __pyx_string_tab[464] +#define __pyx_n_u_ER_Stream_open_and_fill __pyx_string_tab[465] +#define __pyx_n_u_EXP __pyx_string_tab[466] +#define __pyx_n_u_EXP_Stream __pyx_string_tab[467] +#define __pyx_n_u_EXP_Stream_open_and_fill __pyx_string_tab[468] +#define __pyx_n_u_Equal __pyx_string_tab[469] +#define __pyx_n_u_FLOOR __pyx_string_tab[470] +#define __pyx_n_u_FLOOR_Stream __pyx_string_tab[471] +#define __pyx_n_u_FLOOR_Stream_open_and_fill __pyx_string_tab[472] +#define __pyx_n_u_FOSC __pyx_string_tab[473] +#define __pyx_n_u_FOSC_Stream __pyx_string_tab[474] +#define __pyx_n_u_FOSC_Stream_open_and_fill __pyx_string_tab[475] +#define __pyx_n_u_FRACTAL __pyx_string_tab[476] +#define __pyx_n_u_FRACTAL_Stream __pyx_string_tab[477] +#define __pyx_n_u_FRACTAL_Stream_open_and_fill __pyx_string_tab[478] +#define __pyx_n_u_FRACTAL_Value __pyx_string_tab[479] +#define __pyx_n_u_Far __pyx_string_tab[480] +#define __pyx_n_u_Function __pyx_string_tab[481] +#define __pyx_n_u_Function___call __pyx_string_tab[482] +#define __pyx_n_u_Function___call_function __pyx_string_tab[483] +#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[484] +#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[485] +#define __pyx_n_u_Function___init __pyx_string_tab[486] +#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[487] +#define __pyx_n_u_Function___local __pyx_string_tab[488] +#define __pyx_n_u_Function___repr __pyx_string_tab[489] +#define __pyx_n_u_Function___str __pyx_string_tab[490] +#define __pyx_n_u_Function___unicode __pyx_string_tab[491] +#define __pyx_n_u_Function_function_flags __pyx_string_tab[492] +#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[493] +#define __pyx_n_u_Function_get_input_names __pyx_string_tab[494] +#define __pyx_n_u_Function_get_parameters __pyx_string_tab[495] +#define __pyx_n_u_Function_info __pyx_string_tab[496] +#define __pyx_n_u_Function_lookback __pyx_string_tab[497] +#define __pyx_n_u_Function_output_flags __pyx_string_tab[498] +#define __pyx_n_u_Function_output_names __pyx_string_tab[499] +#define __pyx_n_u_Function_outputs __pyx_string_tab[500] +#define __pyx_n_u_Function_run __pyx_string_tab[501] +#define __pyx_n_u_Function_set_function_args __pyx_string_tab[502] +#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[503] +#define __pyx_n_u_Function_set_input_names __pyx_string_tab[504] +#define __pyx_n_u_Function_set_parameters __pyx_string_tab[505] +#define __pyx_n_u_HA __pyx_string_tab[506] +#define __pyx_n_u_HA_Stream __pyx_string_tab[507] +#define __pyx_n_u_HA_Stream_open_and_fill __pyx_string_tab[508] +#define __pyx_n_u_HA_Value __pyx_string_tab[509] +#define __pyx_n_u_HMA __pyx_string_tab[510] +#define __pyx_n_u_HMA_Stream __pyx_string_tab[511] +#define __pyx_n_u_HMA_Stream_open_and_fill __pyx_string_tab[512] +#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[513] +#define __pyx_n_u_HT_DCPERIOD_Stream __pyx_string_tab[514] +#define __pyx_n_u_HT_DCPERIOD_Stream_open_and_fill __pyx_string_tab[515] +#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[516] +#define __pyx_n_u_HT_DCPHASE_Stream __pyx_string_tab[517] +#define __pyx_n_u_HT_DCPHASE_Stream_open_and_fill __pyx_string_tab[518] +#define __pyx_n_u_HT_PHASOR __pyx_string_tab[519] +#define __pyx_n_u_HT_PHASOR_Stream __pyx_string_tab[520] +#define __pyx_n_u_HT_PHASOR_Stream_open_and_fill __pyx_string_tab[521] +#define __pyx_n_u_HT_PHASOR_Value __pyx_string_tab[522] +#define __pyx_n_u_HT_SINE __pyx_string_tab[523] +#define __pyx_n_u_HT_SINE_Stream __pyx_string_tab[524] +#define __pyx_n_u_HT_SINE_Stream_open_and_fill __pyx_string_tab[525] +#define __pyx_n_u_HT_SINE_Value __pyx_string_tab[526] +#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[527] +#define __pyx_n_u_HT_TRENDLINE_Stream __pyx_string_tab[528] +#define __pyx_n_u_HT_TRENDLINE_Stream_open_and_fil __pyx_string_tab[529] +#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[530] +#define __pyx_n_u_HT_TRENDMODE_Stream __pyx_string_tab[531] +#define __pyx_n_u_HT_TRENDMODE_Stream_open_and_fil __pyx_string_tab[532] +#define __pyx_n_u_HighLow __pyx_string_tab[533] +#define __pyx_n_u_Histogram __pyx_string_tab[534] +#define __pyx_n_u_IMI __pyx_string_tab[535] +#define __pyx_n_u_IMI_Stream __pyx_string_tab[536] +#define __pyx_n_u_IMI_Stream_open_and_fill __pyx_string_tab[537] +#define __pyx_n_u_InsufficientHistory __pyx_string_tab[538] +#define __pyx_n_u_KAMA __pyx_string_tab[539] +#define __pyx_n_u_KAMA_Stream __pyx_string_tab[540] +#define __pyx_n_u_KAMA_Stream_open_and_fill __pyx_string_tab[541] +#define __pyx_n_u_KC __pyx_string_tab[542] +#define __pyx_n_u_KC_Stream __pyx_string_tab[543] +#define __pyx_n_u_KC_Stream_open_and_fill __pyx_string_tab[544] +#define __pyx_n_u_KC_Value __pyx_string_tab[545] +#define __pyx_n_u_KDJ __pyx_string_tab[546] +#define __pyx_n_u_KDJ_Stream __pyx_string_tab[547] +#define __pyx_n_u_KDJ_Stream_open_and_fill __pyx_string_tab[548] +#define __pyx_n_u_KDJ_Value __pyx_string_tab[549] +#define __pyx_n_u_LINEARREG __pyx_string_tab[550] +#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[551] +#define __pyx_n_u_LINEARREG_ANGLE_Stream __pyx_string_tab[552] +#define __pyx_n_u_LINEARREG_ANGLE_Stream_open_and __pyx_string_tab[553] +#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[554] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream __pyx_string_tab[555] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream_open __pyx_string_tab[556] +#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[557] +#define __pyx_n_u_LINEARREG_SLOPE_Stream __pyx_string_tab[558] +#define __pyx_n_u_LINEARREG_SLOPE_Stream_open_and __pyx_string_tab[559] +#define __pyx_n_u_LINEARREG_Stream __pyx_string_tab[560] +#define __pyx_n_u_LINEARREG_Stream_open_and_fill __pyx_string_tab[561] +#define __pyx_n_u_LN __pyx_string_tab[562] +#define __pyx_n_u_LN_Stream __pyx_string_tab[563] +#define __pyx_n_u_LN_Stream_open_and_fill __pyx_string_tab[564] +#define __pyx_n_u_LOG10 __pyx_string_tab[565] +#define __pyx_n_u_LOG10_Stream __pyx_string_tab[566] +#define __pyx_n_u_LOG10_Stream_open_and_fill __pyx_string_tab[567] +#define __pyx_n_u_Line __pyx_string_tab[568] +#define __pyx_n_u_MA __pyx_string_tab[569] +#define __pyx_n_u_MACD __pyx_string_tab[570] +#define __pyx_n_u_MACDEXT __pyx_string_tab[571] +#define __pyx_n_u_MACDEXT_Stream __pyx_string_tab[572] +#define __pyx_n_u_MACDEXT_Stream_open_and_fill __pyx_string_tab[573] +#define __pyx_n_u_MACDEXT_Value __pyx_string_tab[574] +#define __pyx_n_u_MACDFIX __pyx_string_tab[575] +#define __pyx_n_u_MACDFIX_Stream __pyx_string_tab[576] +#define __pyx_n_u_MACDFIX_Stream_open_and_fill __pyx_string_tab[577] +#define __pyx_n_u_MACDFIX_Value __pyx_string_tab[578] +#define __pyx_n_u_MACD_Stream __pyx_string_tab[579] +#define __pyx_n_u_MACD_Stream_open_and_fill __pyx_string_tab[580] +#define __pyx_n_u_MACD_Value __pyx_string_tab[581] +#define __pyx_n_u_MAMA __pyx_string_tab[582] +#define __pyx_n_u_MAMA_Stream __pyx_string_tab[583] +#define __pyx_n_u_MAMA_Stream_open_and_fill __pyx_string_tab[584] +#define __pyx_n_u_MAMA_Value __pyx_string_tab[585] +#define __pyx_n_u_MARKETFI __pyx_string_tab[586] +#define __pyx_n_u_MARKETFI_Stream __pyx_string_tab[587] +#define __pyx_n_u_MARKETFI_Stream_open_and_fill __pyx_string_tab[588] +#define __pyx_n_u_MASSI __pyx_string_tab[589] +#define __pyx_n_u_MASSI_Stream __pyx_string_tab[590] +#define __pyx_n_u_MASSI_Stream_open_and_fill __pyx_string_tab[591] +#define __pyx_n_u_MAVP __pyx_string_tab[592] +#define __pyx_n_u_MAVP_Stream __pyx_string_tab[593] +#define __pyx_n_u_MAVP_Stream_open_and_fill __pyx_string_tab[594] +#define __pyx_n_u_MAX __pyx_string_tab[595] +#define __pyx_n_u_MAXINDEX __pyx_string_tab[596] +#define __pyx_n_u_MAXINDEX_Stream __pyx_string_tab[597] +#define __pyx_n_u_MAXINDEX_Stream_open_and_fill __pyx_string_tab[598] +#define __pyx_n_u_MAX_Stream __pyx_string_tab[599] +#define __pyx_n_u_MAX_Stream_open_and_fill __pyx_string_tab[600] +#define __pyx_n_u_MA_Stream __pyx_string_tab[601] +#define __pyx_n_u_MA_Stream_open_and_fill __pyx_string_tab[602] +#define __pyx_n_u_MA_Type __pyx_string_tab[603] +#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[604] +#define __pyx_n_u_MA_Type___init __pyx_string_tab[605] +#define __pyx_n_u_MEDPRICE __pyx_string_tab[606] +#define __pyx_n_u_MEDPRICE_Stream __pyx_string_tab[607] +#define __pyx_n_u_MEDPRICE_Stream_open_and_fill __pyx_string_tab[608] +#define __pyx_n_u_MFI __pyx_string_tab[609] +#define __pyx_n_u_MFI_Stream __pyx_string_tab[610] +#define __pyx_n_u_MFI_Stream_open_and_fill __pyx_string_tab[611] +#define __pyx_n_u_MIDPOINT __pyx_string_tab[612] +#define __pyx_n_u_MIDPOINT_Stream __pyx_string_tab[613] +#define __pyx_n_u_MIDPOINT_Stream_open_and_fill __pyx_string_tab[614] +#define __pyx_n_u_MIDPRICE __pyx_string_tab[615] +#define __pyx_n_u_MIDPRICE_Stream __pyx_string_tab[616] +#define __pyx_n_u_MIDPRICE_Stream_open_and_fill __pyx_string_tab[617] +#define __pyx_n_u_MIN __pyx_string_tab[618] +#define __pyx_n_u_MININDEX __pyx_string_tab[619] +#define __pyx_n_u_MININDEX_Stream __pyx_string_tab[620] +#define __pyx_n_u_MININDEX_Stream_open_and_fill __pyx_string_tab[621] +#define __pyx_n_u_MINMAX __pyx_string_tab[622] +#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[623] +#define __pyx_n_u_MINMAXINDEX_Stream __pyx_string_tab[624] +#define __pyx_n_u_MINMAXINDEX_Stream_open_and_fill __pyx_string_tab[625] +#define __pyx_n_u_MINMAXINDEX_Value __pyx_string_tab[626] +#define __pyx_n_u_MINMAX_Stream __pyx_string_tab[627] +#define __pyx_n_u_MINMAX_Stream_open_and_fill __pyx_string_tab[628] +#define __pyx_n_u_MINMAX_Value __pyx_string_tab[629] +#define __pyx_n_u_MINUS_DI __pyx_string_tab[630] +#define __pyx_n_u_MINUS_DI_Stream __pyx_string_tab[631] +#define __pyx_n_u_MINUS_DI_Stream_open_and_fill __pyx_string_tab[632] +#define __pyx_n_u_MINUS_DM __pyx_string_tab[633] +#define __pyx_n_u_MINUS_DM_Stream __pyx_string_tab[634] +#define __pyx_n_u_MINUS_DM_Stream_open_and_fill __pyx_string_tab[635] +#define __pyx_n_u_MIN_Stream __pyx_string_tab[636] +#define __pyx_n_u_MIN_Stream_open_and_fill __pyx_string_tab[637] +#define __pyx_n_u_MOM __pyx_string_tab[638] +#define __pyx_n_u_MOM_Stream __pyx_string_tab[639] +#define __pyx_n_u_MOM_Stream_open_and_fill __pyx_string_tab[640] +#define __pyx_n_u_MULT __pyx_string_tab[641] +#define __pyx_n_u_MULT_Stream __pyx_string_tab[642] +#define __pyx_n_u_MULT_Stream_open_and_fill __pyx_string_tab[643] +#define __pyx_n_u_NATR __pyx_string_tab[644] +#define __pyx_n_u_NATR_Stream __pyx_string_tab[645] +#define __pyx_n_u_NATR_Stream_open_and_fill __pyx_string_tab[646] +#define __pyx_n_u_NONE __pyx_string_tab[647] +#define __pyx_n_u_NVI __pyx_string_tab[648] +#define __pyx_n_u_NVI_Stream __pyx_string_tab[649] +#define __pyx_n_u_NVI_Stream_open_and_fill __pyx_string_tab[650] +#define __pyx_n_u_Near __pyx_string_tab[651] +#define __pyx_n_u_OBV __pyx_string_tab[652] +#define __pyx_n_u_OBV_Stream __pyx_string_tab[653] +#define __pyx_n_u_OBV_Stream_open_and_fill __pyx_string_tab[654] +#define __pyx_n_u_OrderedDict __pyx_string_tab[655] +#define __pyx_n_u_OutRange __pyx_string_tab[656] +#define __pyx_n_u_PERCENTILE __pyx_string_tab[657] +#define __pyx_n_u_PERCENTILE_Stream __pyx_string_tab[658] +#define __pyx_n_u_PERCENTILE_Stream_open_and_fill __pyx_string_tab[659] +#define __pyx_n_u_PERCENTRANK __pyx_string_tab[660] +#define __pyx_n_u_PERCENTRANK_Stream __pyx_string_tab[661] +#define __pyx_n_u_PERCENTRANK_Stream_open_and_fill __pyx_string_tab[662] +#define __pyx_n_u_PLUS_DI __pyx_string_tab[663] +#define __pyx_n_u_PLUS_DI_Stream __pyx_string_tab[664] +#define __pyx_n_u_PLUS_DI_Stream_open_and_fill __pyx_string_tab[665] +#define __pyx_n_u_PLUS_DM __pyx_string_tab[666] +#define __pyx_n_u_PLUS_DM_Stream __pyx_string_tab[667] +#define __pyx_n_u_PLUS_DM_Stream_open_and_fill __pyx_string_tab[668] +#define __pyx_n_u_PPO __pyx_string_tab[669] +#define __pyx_n_u_PPO_Stream __pyx_string_tab[670] +#define __pyx_n_u_PPO_Stream_open_and_fill __pyx_string_tab[671] +#define __pyx_n_u_PVI __pyx_string_tab[672] +#define __pyx_n_u_PVI_Stream __pyx_string_tab[673] +#define __pyx_n_u_PVI_Stream_open_and_fill __pyx_string_tab[674] +#define __pyx_n_u_PVO __pyx_string_tab[675] +#define __pyx_n_u_PVO_Stream __pyx_string_tab[676] +#define __pyx_n_u_PVO_Stream_open_and_fill __pyx_string_tab[677] +#define __pyx_n_u_PVT __pyx_string_tab[678] +#define __pyx_n_u_PVT_Stream __pyx_string_tab[679] +#define __pyx_n_u_PVT_Stream_open_and_fill __pyx_string_tab[680] +#define __pyx_n_u_QSTICK __pyx_string_tab[681] +#define __pyx_n_u_QSTICK_Stream __pyx_string_tab[682] +#define __pyx_n_u_QSTICK_Stream_open_and_fill __pyx_string_tab[683] +#define __pyx_n_u_RMA __pyx_string_tab[684] +#define __pyx_n_u_RMA_Stream __pyx_string_tab[685] +#define __pyx_n_u_RMA_Stream_open_and_fill __pyx_string_tab[686] +#define __pyx_n_u_ROC __pyx_string_tab[687] +#define __pyx_n_u_ROCP __pyx_string_tab[688] +#define __pyx_n_u_ROCP_Stream __pyx_string_tab[689] +#define __pyx_n_u_ROCP_Stream_open_and_fill __pyx_string_tab[690] +#define __pyx_n_u_ROCR __pyx_string_tab[691] +#define __pyx_n_u_ROCR100 __pyx_string_tab[692] +#define __pyx_n_u_ROCR100_Stream __pyx_string_tab[693] +#define __pyx_n_u_ROCR100_Stream_open_and_fill __pyx_string_tab[694] +#define __pyx_n_u_ROCR_Stream __pyx_string_tab[695] +#define __pyx_n_u_ROCR_Stream_open_and_fill __pyx_string_tab[696] +#define __pyx_n_u_ROC_Stream __pyx_string_tab[697] +#define __pyx_n_u_ROC_Stream_open_and_fill __pyx_string_tab[698] +#define __pyx_n_u_RSI __pyx_string_tab[699] +#define __pyx_n_u_RSI_Stream __pyx_string_tab[700] +#define __pyx_n_u_RSI_Stream_open_and_fill __pyx_string_tab[701] +#define __pyx_n_u_RVI __pyx_string_tab[702] +#define __pyx_n_u_RVI_Stream __pyx_string_tab[703] +#define __pyx_n_u_RVI_Stream_open_and_fill __pyx_string_tab[704] +#define __pyx_n_u_RVOL __pyx_string_tab[705] +#define __pyx_n_u_RVOL_Stream __pyx_string_tab[706] +#define __pyx_n_u_RVOL_Stream_open_and_fill __pyx_string_tab[707] +#define __pyx_n_u_RangeType __pyx_string_tab[708] +#define __pyx_n_u_RealBody __pyx_string_tab[709] +#define __pyx_n_u_SAR __pyx_string_tab[710] +#define __pyx_n_u_SAREXT __pyx_string_tab[711] +#define __pyx_n_u_SAREXT_Stream __pyx_string_tab[712] +#define __pyx_n_u_SAREXT_Stream_open_and_fill __pyx_string_tab[713] +#define __pyx_n_u_SAR_Stream __pyx_string_tab[714] +#define __pyx_n_u_SAR_Stream_open_and_fill __pyx_string_tab[715] +#define __pyx_n_u_SIN __pyx_string_tab[716] +#define __pyx_n_u_SINH __pyx_string_tab[717] +#define __pyx_n_u_SINH_Stream __pyx_string_tab[718] +#define __pyx_n_u_SINH_Stream_open_and_fill __pyx_string_tab[719] +#define __pyx_n_u_SIN_Stream __pyx_string_tab[720] +#define __pyx_n_u_SIN_Stream_open_and_fill __pyx_string_tab[721] +#define __pyx_n_u_SMA __pyx_string_tab[722] +#define __pyx_n_u_SMA_Stream __pyx_string_tab[723] +#define __pyx_n_u_SMA_Stream_open_and_fill __pyx_string_tab[724] +#define __pyx_n_u_SMI __pyx_string_tab[725] +#define __pyx_n_u_SMI_Stream __pyx_string_tab[726] +#define __pyx_n_u_SMI_Stream_open_and_fill __pyx_string_tab[727] +#define __pyx_n_u_SMI_Value __pyx_string_tab[728] +#define __pyx_n_u_SQRT __pyx_string_tab[729] +#define __pyx_n_u_SQRT_Stream __pyx_string_tab[730] +#define __pyx_n_u_SQRT_Stream_open_and_fill __pyx_string_tab[731] +#define __pyx_n_u_STDDEV __pyx_string_tab[732] +#define __pyx_n_u_STDDEV_Stream __pyx_string_tab[733] +#define __pyx_n_u_STDDEV_Stream_open_and_fill __pyx_string_tab[734] +#define __pyx_n_u_STOCH __pyx_string_tab[735] +#define __pyx_n_u_STOCHF __pyx_string_tab[736] +#define __pyx_n_u_STOCHF_Stream __pyx_string_tab[737] +#define __pyx_n_u_STOCHF_Stream_open_and_fill __pyx_string_tab[738] +#define __pyx_n_u_STOCHF_Value __pyx_string_tab[739] +#define __pyx_n_u_STOCHRSI __pyx_string_tab[740] +#define __pyx_n_u_STOCHRSI_Stream __pyx_string_tab[741] +#define __pyx_n_u_STOCHRSI_Stream_open_and_fill __pyx_string_tab[742] +#define __pyx_n_u_STOCHRSI_Value __pyx_string_tab[743] +#define __pyx_n_u_STOCH_Stream __pyx_string_tab[744] +#define __pyx_n_u_STOCH_Stream_open_and_fill __pyx_string_tab[745] +#define __pyx_n_u_STOCH_Value __pyx_string_tab[746] +#define __pyx_n_u_SUB __pyx_string_tab[747] +#define __pyx_n_u_SUB_Stream __pyx_string_tab[748] +#define __pyx_n_u_SUB_Stream_open_and_fill __pyx_string_tab[749] +#define __pyx_n_u_SUM __pyx_string_tab[750] +#define __pyx_n_u_SUM_Stream __pyx_string_tab[751] +#define __pyx_n_u_SUM_Stream_open_and_fill __pyx_string_tab[752] +#define __pyx_n_u_SUPERTREND __pyx_string_tab[753] +#define __pyx_n_u_SUPERTREND_Stream __pyx_string_tab[754] +#define __pyx_n_u_SUPERTREND_Stream_open_and_fill __pyx_string_tab[755] +#define __pyx_n_u_SUPERTREND_Value __pyx_string_tab[756] +#define __pyx_n_u_Series __pyx_string_tab[757] +#define __pyx_n_u_ShadowLong __pyx_string_tab[758] +#define __pyx_n_u_ShadowShort __pyx_string_tab[759] +#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[760] +#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[761] +#define __pyx_n_u_Shadows __pyx_string_tab[762] +#define __pyx_n_u_Stream __pyx_string_tab[763] +#define __pyx_n_u_Stream___copy __pyx_string_tab[764] +#define __pyx_n_u_Stream___deepcopy __pyx_string_tab[765] +#define __pyx_n_u_Stream___reduce __pyx_string_tab[766] +#define __pyx_n_u_T3 __pyx_string_tab[767] +#define __pyx_n_u_T3_Stream __pyx_string_tab[768] +#define __pyx_n_u_T3_Stream_open_and_fill __pyx_string_tab[769] +#define __pyx_n_u_TAN __pyx_string_tab[770] +#define __pyx_n_u_TANH __pyx_string_tab[771] +#define __pyx_n_u_TANH_Stream __pyx_string_tab[772] +#define __pyx_n_u_TANH_Stream_open_and_fill __pyx_string_tab[773] +#define __pyx_n_u_TAN_Stream __pyx_string_tab[774] +#define __pyx_n_u_TAN_Stream_open_and_fill __pyx_string_tab[775] +#define __pyx_n_u_TA_AC __pyx_string_tab[776] +#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[777] +#define __pyx_n_u_TA_ACCBANDS_Clone __pyx_string_tab[778] +#define __pyx_n_u_TA_ACCBANDS_Open __pyx_string_tab[779] +#define __pyx_n_u_TA_ACCBANDS_OpenAndFill __pyx_string_tab[780] +#define __pyx_n_u_TA_ACCBANDS_Peek __pyx_string_tab[781] +#define __pyx_n_u_TA_ACCBANDS_Update __pyx_string_tab[782] +#define __pyx_n_u_TA_ACCBANDS_Value __pyx_string_tab[783] +#define __pyx_n_u_TA_ACOS __pyx_string_tab[784] +#define __pyx_n_u_TA_ACOS_Clone __pyx_string_tab[785] +#define __pyx_n_u_TA_ACOS_Open __pyx_string_tab[786] +#define __pyx_n_u_TA_ACOS_OpenAndFill __pyx_string_tab[787] +#define __pyx_n_u_TA_ACOS_Peek __pyx_string_tab[788] +#define __pyx_n_u_TA_ACOS_Update __pyx_string_tab[789] +#define __pyx_n_u_TA_ACOS_Value __pyx_string_tab[790] +#define __pyx_n_u_TA_AC_Clone __pyx_string_tab[791] +#define __pyx_n_u_TA_AC_Open __pyx_string_tab[792] +#define __pyx_n_u_TA_AC_OpenAndFill __pyx_string_tab[793] +#define __pyx_n_u_TA_AC_Peek __pyx_string_tab[794] +#define __pyx_n_u_TA_AC_Update __pyx_string_tab[795] +#define __pyx_n_u_TA_AC_Value __pyx_string_tab[796] +#define __pyx_n_u_TA_AD __pyx_string_tab[797] +#define __pyx_n_u_TA_ADD __pyx_string_tab[798] +#define __pyx_n_u_TA_ADD_Clone __pyx_string_tab[799] +#define __pyx_n_u_TA_ADD_Open __pyx_string_tab[800] +#define __pyx_n_u_TA_ADD_OpenAndFill __pyx_string_tab[801] +#define __pyx_n_u_TA_ADD_Peek __pyx_string_tab[802] +#define __pyx_n_u_TA_ADD_Update __pyx_string_tab[803] +#define __pyx_n_u_TA_ADD_Value __pyx_string_tab[804] +#define __pyx_n_u_TA_ADOSC __pyx_string_tab[805] +#define __pyx_n_u_TA_ADOSC_Clone __pyx_string_tab[806] +#define __pyx_n_u_TA_ADOSC_Open __pyx_string_tab[807] +#define __pyx_n_u_TA_ADOSC_OpenAndFill __pyx_string_tab[808] +#define __pyx_n_u_TA_ADOSC_Peek __pyx_string_tab[809] +#define __pyx_n_u_TA_ADOSC_Update __pyx_string_tab[810] +#define __pyx_n_u_TA_ADOSC_Value __pyx_string_tab[811] +#define __pyx_n_u_TA_ADR __pyx_string_tab[812] +#define __pyx_n_u_TA_ADR_Clone __pyx_string_tab[813] +#define __pyx_n_u_TA_ADR_Open __pyx_string_tab[814] +#define __pyx_n_u_TA_ADR_OpenAndFill __pyx_string_tab[815] +#define __pyx_n_u_TA_ADR_Peek __pyx_string_tab[816] +#define __pyx_n_u_TA_ADR_Update __pyx_string_tab[817] +#define __pyx_n_u_TA_ADR_Value __pyx_string_tab[818] +#define __pyx_n_u_TA_ADX __pyx_string_tab[819] +#define __pyx_n_u_TA_ADXR __pyx_string_tab[820] +#define __pyx_n_u_TA_ADXR_Clone __pyx_string_tab[821] +#define __pyx_n_u_TA_ADXR_Open __pyx_string_tab[822] +#define __pyx_n_u_TA_ADXR_OpenAndFill __pyx_string_tab[823] +#define __pyx_n_u_TA_ADXR_Peek __pyx_string_tab[824] +#define __pyx_n_u_TA_ADXR_Update __pyx_string_tab[825] +#define __pyx_n_u_TA_ADXR_Value __pyx_string_tab[826] +#define __pyx_n_u_TA_ADX_Clone __pyx_string_tab[827] +#define __pyx_n_u_TA_ADX_Open __pyx_string_tab[828] +#define __pyx_n_u_TA_ADX_OpenAndFill __pyx_string_tab[829] +#define __pyx_n_u_TA_ADX_Peek __pyx_string_tab[830] +#define __pyx_n_u_TA_ADX_Update __pyx_string_tab[831] +#define __pyx_n_u_TA_ADX_Value __pyx_string_tab[832] +#define __pyx_n_u_TA_AD_Clone __pyx_string_tab[833] +#define __pyx_n_u_TA_AD_Open __pyx_string_tab[834] +#define __pyx_n_u_TA_AD_OpenAndFill __pyx_string_tab[835] +#define __pyx_n_u_TA_AD_Peek __pyx_string_tab[836] +#define __pyx_n_u_TA_AD_Update __pyx_string_tab[837] +#define __pyx_n_u_TA_AD_Value __pyx_string_tab[838] +#define __pyx_n_u_TA_AO __pyx_string_tab[839] +#define __pyx_n_u_TA_AO_Clone __pyx_string_tab[840] +#define __pyx_n_u_TA_AO_Open __pyx_string_tab[841] +#define __pyx_n_u_TA_AO_OpenAndFill __pyx_string_tab[842] +#define __pyx_n_u_TA_AO_Peek __pyx_string_tab[843] +#define __pyx_n_u_TA_AO_Update __pyx_string_tab[844] +#define __pyx_n_u_TA_AO_Value __pyx_string_tab[845] +#define __pyx_n_u_TA_APO __pyx_string_tab[846] +#define __pyx_n_u_TA_APO_Clone __pyx_string_tab[847] +#define __pyx_n_u_TA_APO_Open __pyx_string_tab[848] +#define __pyx_n_u_TA_APO_OpenAndFill __pyx_string_tab[849] +#define __pyx_n_u_TA_APO_Peek __pyx_string_tab[850] +#define __pyx_n_u_TA_APO_Update __pyx_string_tab[851] +#define __pyx_n_u_TA_APO_Value __pyx_string_tab[852] +#define __pyx_n_u_TA_AROON __pyx_string_tab[853] +#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[854] +#define __pyx_n_u_TA_AROONOSC_Clone __pyx_string_tab[855] +#define __pyx_n_u_TA_AROONOSC_Open __pyx_string_tab[856] +#define __pyx_n_u_TA_AROONOSC_OpenAndFill __pyx_string_tab[857] +#define __pyx_n_u_TA_AROONOSC_Peek __pyx_string_tab[858] +#define __pyx_n_u_TA_AROONOSC_Update __pyx_string_tab[859] +#define __pyx_n_u_TA_AROONOSC_Value __pyx_string_tab[860] +#define __pyx_n_u_TA_AROON_Clone __pyx_string_tab[861] +#define __pyx_n_u_TA_AROON_Open __pyx_string_tab[862] +#define __pyx_n_u_TA_AROON_OpenAndFill __pyx_string_tab[863] +#define __pyx_n_u_TA_AROON_Peek __pyx_string_tab[864] +#define __pyx_n_u_TA_AROON_Update __pyx_string_tab[865] +#define __pyx_n_u_TA_AROON_Value __pyx_string_tab[866] +#define __pyx_n_u_TA_ASIN __pyx_string_tab[867] +#define __pyx_n_u_TA_ASIN_Clone __pyx_string_tab[868] +#define __pyx_n_u_TA_ASIN_Open __pyx_string_tab[869] +#define __pyx_n_u_TA_ASIN_OpenAndFill __pyx_string_tab[870] +#define __pyx_n_u_TA_ASIN_Peek __pyx_string_tab[871] +#define __pyx_n_u_TA_ASIN_Update __pyx_string_tab[872] +#define __pyx_n_u_TA_ASIN_Value __pyx_string_tab[873] +#define __pyx_n_u_TA_ATAN __pyx_string_tab[874] +#define __pyx_n_u_TA_ATAN_Clone __pyx_string_tab[875] +#define __pyx_n_u_TA_ATAN_Open __pyx_string_tab[876] +#define __pyx_n_u_TA_ATAN_OpenAndFill __pyx_string_tab[877] +#define __pyx_n_u_TA_ATAN_Peek __pyx_string_tab[878] +#define __pyx_n_u_TA_ATAN_Update __pyx_string_tab[879] +#define __pyx_n_u_TA_ATAN_Value __pyx_string_tab[880] +#define __pyx_n_u_TA_ATR __pyx_string_tab[881] +#define __pyx_n_u_TA_ATR_Clone __pyx_string_tab[882] +#define __pyx_n_u_TA_ATR_Open __pyx_string_tab[883] +#define __pyx_n_u_TA_ATR_OpenAndFill __pyx_string_tab[884] +#define __pyx_n_u_TA_ATR_Peek __pyx_string_tab[885] +#define __pyx_n_u_TA_ATR_Update __pyx_string_tab[886] +#define __pyx_n_u_TA_ATR_Value __pyx_string_tab[887] +#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[888] +#define __pyx_n_u_TA_AVGDEV_Clone __pyx_string_tab[889] +#define __pyx_n_u_TA_AVGDEV_Open __pyx_string_tab[890] +#define __pyx_n_u_TA_AVGDEV_OpenAndFill __pyx_string_tab[891] +#define __pyx_n_u_TA_AVGDEV_Peek __pyx_string_tab[892] +#define __pyx_n_u_TA_AVGDEV_Update __pyx_string_tab[893] +#define __pyx_n_u_TA_AVGDEV_Value __pyx_string_tab[894] +#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[895] +#define __pyx_n_u_TA_AVGPRICE_Clone __pyx_string_tab[896] +#define __pyx_n_u_TA_AVGPRICE_Open __pyx_string_tab[897] +#define __pyx_n_u_TA_AVGPRICE_OpenAndFill __pyx_string_tab[898] +#define __pyx_n_u_TA_AVGPRICE_Peek __pyx_string_tab[899] +#define __pyx_n_u_TA_AVGPRICE_Update __pyx_string_tab[900] +#define __pyx_n_u_TA_AVGPRICE_Value __pyx_string_tab[901] +#define __pyx_n_u_TA_BBANDS __pyx_string_tab[902] +#define __pyx_n_u_TA_BBANDS_Clone __pyx_string_tab[903] +#define __pyx_n_u_TA_BBANDS_Open __pyx_string_tab[904] +#define __pyx_n_u_TA_BBANDS_OpenAndFill __pyx_string_tab[905] +#define __pyx_n_u_TA_BBANDS_Peek __pyx_string_tab[906] +#define __pyx_n_u_TA_BBANDS_Update __pyx_string_tab[907] +#define __pyx_n_u_TA_BBANDS_Value __pyx_string_tab[908] +#define __pyx_n_u_TA_BETA __pyx_string_tab[909] +#define __pyx_n_u_TA_BETA_Clone __pyx_string_tab[910] +#define __pyx_n_u_TA_BETA_Open __pyx_string_tab[911] +#define __pyx_n_u_TA_BETA_OpenAndFill __pyx_string_tab[912] +#define __pyx_n_u_TA_BETA_Peek __pyx_string_tab[913] +#define __pyx_n_u_TA_BETA_Update __pyx_string_tab[914] +#define __pyx_n_u_TA_BETA_Value __pyx_string_tab[915] +#define __pyx_n_u_TA_BOP __pyx_string_tab[916] +#define __pyx_n_u_TA_BOP_Clone __pyx_string_tab[917] +#define __pyx_n_u_TA_BOP_Open __pyx_string_tab[918] +#define __pyx_n_u_TA_BOP_OpenAndFill __pyx_string_tab[919] +#define __pyx_n_u_TA_BOP_Peek __pyx_string_tab[920] +#define __pyx_n_u_TA_BOP_Update __pyx_string_tab[921] +#define __pyx_n_u_TA_BOP_Value __pyx_string_tab[922] +#define __pyx_n_u_TA_CCI __pyx_string_tab[923] +#define __pyx_n_u_TA_CCI_Clone __pyx_string_tab[924] +#define __pyx_n_u_TA_CCI_Open __pyx_string_tab[925] +#define __pyx_n_u_TA_CCI_OpenAndFill __pyx_string_tab[926] +#define __pyx_n_u_TA_CCI_Peek __pyx_string_tab[927] +#define __pyx_n_u_TA_CCI_Update __pyx_string_tab[928] +#define __pyx_n_u_TA_CCI_Value __pyx_string_tab[929] +#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[930] +#define __pyx_n_u_TA_CDL2CROWS_Clone __pyx_string_tab[931] +#define __pyx_n_u_TA_CDL2CROWS_Open __pyx_string_tab[932] +#define __pyx_n_u_TA_CDL2CROWS_OpenAndFill __pyx_string_tab[933] +#define __pyx_n_u_TA_CDL2CROWS_Peek __pyx_string_tab[934] +#define __pyx_n_u_TA_CDL2CROWS_Update __pyx_string_tab[935] +#define __pyx_n_u_TA_CDL2CROWS_Value __pyx_string_tab[936] +#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[937] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Clone __pyx_string_tab[938] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Open __pyx_string_tab[939] +#define __pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill __pyx_string_tab[940] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Peek __pyx_string_tab[941] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Update __pyx_string_tab[942] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Value __pyx_string_tab[943] +#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[944] +#define __pyx_n_u_TA_CDL3INSIDE_Clone __pyx_string_tab[945] +#define __pyx_n_u_TA_CDL3INSIDE_Open __pyx_string_tab[946] +#define __pyx_n_u_TA_CDL3INSIDE_OpenAndFill __pyx_string_tab[947] +#define __pyx_n_u_TA_CDL3INSIDE_Peek __pyx_string_tab[948] +#define __pyx_n_u_TA_CDL3INSIDE_Update __pyx_string_tab[949] +#define __pyx_n_u_TA_CDL3INSIDE_Value __pyx_string_tab[950] +#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[951] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Clone __pyx_string_tab[952] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Open __pyx_string_tab[953] +#define __pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill __pyx_string_tab[954] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Peek __pyx_string_tab[955] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Update __pyx_string_tab[956] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Value __pyx_string_tab[957] +#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[958] +#define __pyx_n_u_TA_CDL3OUTSIDE_Clone __pyx_string_tab[959] +#define __pyx_n_u_TA_CDL3OUTSIDE_Open __pyx_string_tab[960] +#define __pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill __pyx_string_tab[961] +#define __pyx_n_u_TA_CDL3OUTSIDE_Peek __pyx_string_tab[962] +#define __pyx_n_u_TA_CDL3OUTSIDE_Update __pyx_string_tab[963] +#define __pyx_n_u_TA_CDL3OUTSIDE_Value __pyx_string_tab[964] +#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[965] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Clone __pyx_string_tab[966] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Open __pyx_string_tab[967] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill __pyx_string_tab[968] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Peek __pyx_string_tab[969] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Update __pyx_string_tab[970] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Value __pyx_string_tab[971] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[972] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Clone __pyx_string_tab[973] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Open __pyx_string_tab[974] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill __pyx_string_tab[975] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Peek __pyx_string_tab[976] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Update __pyx_string_tab[977] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Value __pyx_string_tab[978] +#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[979] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Clone __pyx_string_tab[980] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Open __pyx_string_tab[981] +#define __pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill __pyx_string_tab[982] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Peek __pyx_string_tab[983] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Update __pyx_string_tab[984] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Value __pyx_string_tab[985] +#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[986] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Clone __pyx_string_tab[987] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Open __pyx_string_tab[988] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill __pyx_string_tab[989] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Peek __pyx_string_tab[990] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Update __pyx_string_tab[991] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Value __pyx_string_tab[992] +#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[993] +#define __pyx_n_u_TA_CDLBELTHOLD_Clone __pyx_string_tab[994] +#define __pyx_n_u_TA_CDLBELTHOLD_Open __pyx_string_tab[995] +#define __pyx_n_u_TA_CDLBELTHOLD_OpenAndFill __pyx_string_tab[996] +#define __pyx_n_u_TA_CDLBELTHOLD_Peek __pyx_string_tab[997] +#define __pyx_n_u_TA_CDLBELTHOLD_Update __pyx_string_tab[998] +#define __pyx_n_u_TA_CDLBELTHOLD_Value __pyx_string_tab[999] +#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[1000] +#define __pyx_n_u_TA_CDLBREAKAWAY_Clone __pyx_string_tab[1001] +#define __pyx_n_u_TA_CDLBREAKAWAY_Open __pyx_string_tab[1002] +#define __pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill __pyx_string_tab[1003] +#define __pyx_n_u_TA_CDLBREAKAWAY_Peek __pyx_string_tab[1004] +#define __pyx_n_u_TA_CDLBREAKAWAY_Update __pyx_string_tab[1005] +#define __pyx_n_u_TA_CDLBREAKAWAY_Value __pyx_string_tab[1006] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[1007] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone __pyx_string_tab[1008] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open __pyx_string_tab[1009] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil __pyx_string_tab[1010] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek __pyx_string_tab[1011] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update __pyx_string_tab[1012] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value __pyx_string_tab[1013] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[1014] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone __pyx_string_tab[1015] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Open __pyx_string_tab[1016] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi __pyx_string_tab[1017] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek __pyx_string_tab[1018] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Update __pyx_string_tab[1019] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Value __pyx_string_tab[1020] +#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[1021] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Clone __pyx_string_tab[1022] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Open __pyx_string_tab[1023] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill __pyx_string_tab[1024] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Peek __pyx_string_tab[1025] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Update __pyx_string_tab[1026] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Value __pyx_string_tab[1027] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[1028] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone __pyx_string_tab[1029] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Open __pyx_string_tab[1030] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill __pyx_string_tab[1031] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek __pyx_string_tab[1032] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Update __pyx_string_tab[1033] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Value __pyx_string_tab[1034] +#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[1035] +#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[1036] +#define __pyx_n_u_TA_CDLDOJISTAR_Clone __pyx_string_tab[1037] +#define __pyx_n_u_TA_CDLDOJISTAR_Open __pyx_string_tab[1038] +#define __pyx_n_u_TA_CDLDOJISTAR_OpenAndFill __pyx_string_tab[1039] +#define __pyx_n_u_TA_CDLDOJISTAR_Peek __pyx_string_tab[1040] +#define __pyx_n_u_TA_CDLDOJISTAR_Update __pyx_string_tab[1041] +#define __pyx_n_u_TA_CDLDOJISTAR_Value __pyx_string_tab[1042] +#define __pyx_n_u_TA_CDLDOJI_Clone __pyx_string_tab[1043] +#define __pyx_n_u_TA_CDLDOJI_Open __pyx_string_tab[1044] +#define __pyx_n_u_TA_CDLDOJI_OpenAndFill __pyx_string_tab[1045] +#define __pyx_n_u_TA_CDLDOJI_Peek __pyx_string_tab[1046] +#define __pyx_n_u_TA_CDLDOJI_Update __pyx_string_tab[1047] +#define __pyx_n_u_TA_CDLDOJI_Value __pyx_string_tab[1048] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[1049] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone __pyx_string_tab[1050] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Open __pyx_string_tab[1051] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill __pyx_string_tab[1052] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek __pyx_string_tab[1053] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Update __pyx_string_tab[1054] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Value __pyx_string_tab[1055] +#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[1056] +#define __pyx_n_u_TA_CDLENGULFING_Clone __pyx_string_tab[1057] +#define __pyx_n_u_TA_CDLENGULFING_Open __pyx_string_tab[1058] +#define __pyx_n_u_TA_CDLENGULFING_OpenAndFill __pyx_string_tab[1059] +#define __pyx_n_u_TA_CDLENGULFING_Peek __pyx_string_tab[1060] +#define __pyx_n_u_TA_CDLENGULFING_Update __pyx_string_tab[1061] +#define __pyx_n_u_TA_CDLENGULFING_Value __pyx_string_tab[1062] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[1063] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone __pyx_string_tab[1064] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Open __pyx_string_tab[1065] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil __pyx_string_tab[1066] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek __pyx_string_tab[1067] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Update __pyx_string_tab[1068] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Value __pyx_string_tab[1069] +#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[1070] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Clone __pyx_string_tab[1071] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Open __pyx_string_tab[1072] +#define __pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill __pyx_string_tab[1073] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Peek __pyx_string_tab[1074] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Update __pyx_string_tab[1075] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Value __pyx_string_tab[1076] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[1077] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone __pyx_string_tab[1078] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open __pyx_string_tab[1079] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi __pyx_string_tab[1080] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek __pyx_string_tab[1081] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update __pyx_string_tab[1082] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value __pyx_string_tab[1083] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[1084] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone __pyx_string_tab[1085] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Open __pyx_string_tab[1086] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill __pyx_string_tab[1087] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek __pyx_string_tab[1088] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Update __pyx_string_tab[1089] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Value __pyx_string_tab[1090] +#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[1091] +#define __pyx_n_u_TA_CDLHAMMER_Clone __pyx_string_tab[1092] +#define __pyx_n_u_TA_CDLHAMMER_Open __pyx_string_tab[1093] +#define __pyx_n_u_TA_CDLHAMMER_OpenAndFill __pyx_string_tab[1094] +#define __pyx_n_u_TA_CDLHAMMER_Peek __pyx_string_tab[1095] +#define __pyx_n_u_TA_CDLHAMMER_Update __pyx_string_tab[1096] +#define __pyx_n_u_TA_CDLHAMMER_Value __pyx_string_tab[1097] +#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[1098] +#define __pyx_n_u_TA_CDLHANGINGMAN_Clone __pyx_string_tab[1099] +#define __pyx_n_u_TA_CDLHANGINGMAN_Open __pyx_string_tab[1100] +#define __pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill __pyx_string_tab[1101] +#define __pyx_n_u_TA_CDLHANGINGMAN_Peek __pyx_string_tab[1102] +#define __pyx_n_u_TA_CDLHANGINGMAN_Update __pyx_string_tab[1103] +#define __pyx_n_u_TA_CDLHANGINGMAN_Value __pyx_string_tab[1104] +#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[1105] +#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[1106] +#define __pyx_n_u_TA_CDLHARAMICROSS_Clone __pyx_string_tab[1107] +#define __pyx_n_u_TA_CDLHARAMICROSS_Open __pyx_string_tab[1108] +#define __pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill __pyx_string_tab[1109] +#define __pyx_n_u_TA_CDLHARAMICROSS_Peek __pyx_string_tab[1110] +#define __pyx_n_u_TA_CDLHARAMICROSS_Update __pyx_string_tab[1111] +#define __pyx_n_u_TA_CDLHARAMICROSS_Value __pyx_string_tab[1112] +#define __pyx_n_u_TA_CDLHARAMI_Clone __pyx_string_tab[1113] +#define __pyx_n_u_TA_CDLHARAMI_Open __pyx_string_tab[1114] +#define __pyx_n_u_TA_CDLHARAMI_OpenAndFill __pyx_string_tab[1115] +#define __pyx_n_u_TA_CDLHARAMI_Peek __pyx_string_tab[1116] +#define __pyx_n_u_TA_CDLHARAMI_Update __pyx_string_tab[1117] +#define __pyx_n_u_TA_CDLHARAMI_Value __pyx_string_tab[1118] +#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[1119] +#define __pyx_n_u_TA_CDLHIGHWAVE_Clone __pyx_string_tab[1120] +#define __pyx_n_u_TA_CDLHIGHWAVE_Open __pyx_string_tab[1121] +#define __pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill __pyx_string_tab[1122] +#define __pyx_n_u_TA_CDLHIGHWAVE_Peek __pyx_string_tab[1123] +#define __pyx_n_u_TA_CDLHIGHWAVE_Update __pyx_string_tab[1124] +#define __pyx_n_u_TA_CDLHIGHWAVE_Value __pyx_string_tab[1125] +#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[1126] +#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[1127] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Clone __pyx_string_tab[1128] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Open __pyx_string_tab[1129] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill __pyx_string_tab[1130] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Peek __pyx_string_tab[1131] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Update __pyx_string_tab[1132] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Value __pyx_string_tab[1133] +#define __pyx_n_u_TA_CDLHIKKAKE_Clone __pyx_string_tab[1134] +#define __pyx_n_u_TA_CDLHIKKAKE_Open __pyx_string_tab[1135] +#define __pyx_n_u_TA_CDLHIKKAKE_OpenAndFill __pyx_string_tab[1136] +#define __pyx_n_u_TA_CDLHIKKAKE_Peek __pyx_string_tab[1137] +#define __pyx_n_u_TA_CDLHIKKAKE_Update __pyx_string_tab[1138] +#define __pyx_n_u_TA_CDLHIKKAKE_Value __pyx_string_tab[1139] +#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[1140] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Clone __pyx_string_tab[1141] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Open __pyx_string_tab[1142] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill __pyx_string_tab[1143] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Peek __pyx_string_tab[1144] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Update __pyx_string_tab[1145] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Value __pyx_string_tab[1146] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[1147] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone __pyx_string_tab[1148] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Open __pyx_string_tab[1149] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil __pyx_string_tab[1150] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek __pyx_string_tab[1151] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Update __pyx_string_tab[1152] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Value __pyx_string_tab[1153] +#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[1154] +#define __pyx_n_u_TA_CDLINNECK_Clone __pyx_string_tab[1155] +#define __pyx_n_u_TA_CDLINNECK_Open __pyx_string_tab[1156] +#define __pyx_n_u_TA_CDLINNECK_OpenAndFill __pyx_string_tab[1157] +#define __pyx_n_u_TA_CDLINNECK_Peek __pyx_string_tab[1158] +#define __pyx_n_u_TA_CDLINNECK_Update __pyx_string_tab[1159] +#define __pyx_n_u_TA_CDLINNECK_Value __pyx_string_tab[1160] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[1161] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Clone __pyx_string_tab[1162] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Open __pyx_string_tab[1163] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill __pyx_string_tab[1164] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Peek __pyx_string_tab[1165] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Update __pyx_string_tab[1166] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Value __pyx_string_tab[1167] +#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[1168] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[1169] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone __pyx_string_tab[1170] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Open __pyx_string_tab[1171] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil __pyx_string_tab[1172] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek __pyx_string_tab[1173] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Update __pyx_string_tab[1174] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Value __pyx_string_tab[1175] +#define __pyx_n_u_TA_CDLKICKING_Clone __pyx_string_tab[1176] +#define __pyx_n_u_TA_CDLKICKING_Open __pyx_string_tab[1177] +#define __pyx_n_u_TA_CDLKICKING_OpenAndFill __pyx_string_tab[1178] +#define __pyx_n_u_TA_CDLKICKING_Peek __pyx_string_tab[1179] +#define __pyx_n_u_TA_CDLKICKING_Update __pyx_string_tab[1180] +#define __pyx_n_u_TA_CDLKICKING_Value __pyx_string_tab[1181] +#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[1182] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Clone __pyx_string_tab[1183] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Open __pyx_string_tab[1184] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill __pyx_string_tab[1185] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Peek __pyx_string_tab[1186] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Update __pyx_string_tab[1187] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Value __pyx_string_tab[1188] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[1189] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone __pyx_string_tab[1190] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open __pyx_string_tab[1191] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill __pyx_string_tab[1192] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek __pyx_string_tab[1193] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update __pyx_string_tab[1194] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value __pyx_string_tab[1195] +#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[1196] +#define __pyx_n_u_TA_CDLLONGLINE_Clone __pyx_string_tab[1197] +#define __pyx_n_u_TA_CDLLONGLINE_Open __pyx_string_tab[1198] +#define __pyx_n_u_TA_CDLLONGLINE_OpenAndFill __pyx_string_tab[1199] +#define __pyx_n_u_TA_CDLLONGLINE_Peek __pyx_string_tab[1200] +#define __pyx_n_u_TA_CDLLONGLINE_Update __pyx_string_tab[1201] +#define __pyx_n_u_TA_CDLLONGLINE_Value __pyx_string_tab[1202] +#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[1203] +#define __pyx_n_u_TA_CDLMARUBOZU_Clone __pyx_string_tab[1204] +#define __pyx_n_u_TA_CDLMARUBOZU_Open __pyx_string_tab[1205] +#define __pyx_n_u_TA_CDLMARUBOZU_OpenAndFill __pyx_string_tab[1206] +#define __pyx_n_u_TA_CDLMARUBOZU_Peek __pyx_string_tab[1207] +#define __pyx_n_u_TA_CDLMARUBOZU_Update __pyx_string_tab[1208] +#define __pyx_n_u_TA_CDLMARUBOZU_Value __pyx_string_tab[1209] +#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[1210] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Clone __pyx_string_tab[1211] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Open __pyx_string_tab[1212] +#define __pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill __pyx_string_tab[1213] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Peek __pyx_string_tab[1214] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Update __pyx_string_tab[1215] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Value __pyx_string_tab[1216] +#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[1217] +#define __pyx_n_u_TA_CDLMATHOLD_Clone __pyx_string_tab[1218] +#define __pyx_n_u_TA_CDLMATHOLD_Open __pyx_string_tab[1219] +#define __pyx_n_u_TA_CDLMATHOLD_OpenAndFill __pyx_string_tab[1220] +#define __pyx_n_u_TA_CDLMATHOLD_Peek __pyx_string_tab[1221] +#define __pyx_n_u_TA_CDLMATHOLD_Update __pyx_string_tab[1222] +#define __pyx_n_u_TA_CDLMATHOLD_Value __pyx_string_tab[1223] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[1224] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone __pyx_string_tab[1225] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Open __pyx_string_tab[1226] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil __pyx_string_tab[1227] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek __pyx_string_tab[1228] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Update __pyx_string_tab[1229] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Value __pyx_string_tab[1230] +#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[1231] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Clone __pyx_string_tab[1232] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Open __pyx_string_tab[1233] +#define __pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill __pyx_string_tab[1234] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Peek __pyx_string_tab[1235] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Update __pyx_string_tab[1236] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Value __pyx_string_tab[1237] +#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[1238] +#define __pyx_n_u_TA_CDLONNECK_Clone __pyx_string_tab[1239] +#define __pyx_n_u_TA_CDLONNECK_Open __pyx_string_tab[1240] +#define __pyx_n_u_TA_CDLONNECK_OpenAndFill __pyx_string_tab[1241] +#define __pyx_n_u_TA_CDLONNECK_Peek __pyx_string_tab[1242] +#define __pyx_n_u_TA_CDLONNECK_Update __pyx_string_tab[1243] +#define __pyx_n_u_TA_CDLONNECK_Value __pyx_string_tab[1244] +#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[1245] +#define __pyx_n_u_TA_CDLPIERCING_Clone __pyx_string_tab[1246] +#define __pyx_n_u_TA_CDLPIERCING_Open __pyx_string_tab[1247] +#define __pyx_n_u_TA_CDLPIERCING_OpenAndFill __pyx_string_tab[1248] +#define __pyx_n_u_TA_CDLPIERCING_Peek __pyx_string_tab[1249] +#define __pyx_n_u_TA_CDLPIERCING_Update __pyx_string_tab[1250] +#define __pyx_n_u_TA_CDLPIERCING_Value __pyx_string_tab[1251] +#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[1252] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Clone __pyx_string_tab[1253] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Open __pyx_string_tab[1254] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill __pyx_string_tab[1255] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Peek __pyx_string_tab[1256] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Update __pyx_string_tab[1257] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Value __pyx_string_tab[1258] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[1259] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Clone __pyx_string_tab[1260] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Open __pyx_string_tab[1261] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi __pyx_string_tab[1262] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Peek __pyx_string_tab[1263] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Update __pyx_string_tab[1264] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Value __pyx_string_tab[1265] +#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[1266] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Clone __pyx_string_tab[1267] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Open __pyx_string_tab[1268] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil __pyx_string_tab[1269] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Peek __pyx_string_tab[1270] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Update __pyx_string_tab[1271] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Value __pyx_string_tab[1272] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[1273] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Clone __pyx_string_tab[1274] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Open __pyx_string_tab[1275] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill __pyx_string_tab[1276] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Peek __pyx_string_tab[1277] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Update __pyx_string_tab[1278] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Value __pyx_string_tab[1279] +#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[1280] +#define __pyx_n_u_TA_CDLSHORTLINE_Clone __pyx_string_tab[1281] +#define __pyx_n_u_TA_CDLSHORTLINE_Open __pyx_string_tab[1282] +#define __pyx_n_u_TA_CDLSHORTLINE_OpenAndFill __pyx_string_tab[1283] +#define __pyx_n_u_TA_CDLSHORTLINE_Peek __pyx_string_tab[1284] +#define __pyx_n_u_TA_CDLSHORTLINE_Update __pyx_string_tab[1285] +#define __pyx_n_u_TA_CDLSHORTLINE_Value __pyx_string_tab[1286] +#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[1287] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Clone __pyx_string_tab[1288] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Open __pyx_string_tab[1289] +#define __pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill __pyx_string_tab[1290] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Peek __pyx_string_tab[1291] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Update __pyx_string_tab[1292] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Value __pyx_string_tab[1293] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[1294] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Clone __pyx_string_tab[1295] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Open __pyx_string_tab[1296] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill __pyx_string_tab[1297] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Peek __pyx_string_tab[1298] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Update __pyx_string_tab[1299] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Value __pyx_string_tab[1300] +#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[1301] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Clone __pyx_string_tab[1302] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Open __pyx_string_tab[1303] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill __pyx_string_tab[1304] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Peek __pyx_string_tab[1305] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Update __pyx_string_tab[1306] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Value __pyx_string_tab[1307] +#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[1308] +#define __pyx_n_u_TA_CDLTAKURI_Clone __pyx_string_tab[1309] +#define __pyx_n_u_TA_CDLTAKURI_Open __pyx_string_tab[1310] +#define __pyx_n_u_TA_CDLTAKURI_OpenAndFill __pyx_string_tab[1311] +#define __pyx_n_u_TA_CDLTAKURI_Peek __pyx_string_tab[1312] +#define __pyx_n_u_TA_CDLTAKURI_Update __pyx_string_tab[1313] +#define __pyx_n_u_TA_CDLTAKURI_Value __pyx_string_tab[1314] +#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[1315] +#define __pyx_n_u_TA_CDLTASUKIGAP_Clone __pyx_string_tab[1316] +#define __pyx_n_u_TA_CDLTASUKIGAP_Open __pyx_string_tab[1317] +#define __pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill __pyx_string_tab[1318] +#define __pyx_n_u_TA_CDLTASUKIGAP_Peek __pyx_string_tab[1319] +#define __pyx_n_u_TA_CDLTASUKIGAP_Update __pyx_string_tab[1320] +#define __pyx_n_u_TA_CDLTASUKIGAP_Value __pyx_string_tab[1321] +#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[1322] +#define __pyx_n_u_TA_CDLTHRUSTING_Clone __pyx_string_tab[1323] +#define __pyx_n_u_TA_CDLTHRUSTING_Open __pyx_string_tab[1324] +#define __pyx_n_u_TA_CDLTHRUSTING_OpenAndFill __pyx_string_tab[1325] +#define __pyx_n_u_TA_CDLTHRUSTING_Peek __pyx_string_tab[1326] +#define __pyx_n_u_TA_CDLTHRUSTING_Update __pyx_string_tab[1327] +#define __pyx_n_u_TA_CDLTHRUSTING_Value __pyx_string_tab[1328] +#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[1329] +#define __pyx_n_u_TA_CDLTRISTAR_Clone __pyx_string_tab[1330] +#define __pyx_n_u_TA_CDLTRISTAR_Open __pyx_string_tab[1331] +#define __pyx_n_u_TA_CDLTRISTAR_OpenAndFill __pyx_string_tab[1332] +#define __pyx_n_u_TA_CDLTRISTAR_Peek __pyx_string_tab[1333] +#define __pyx_n_u_TA_CDLTRISTAR_Update __pyx_string_tab[1334] +#define __pyx_n_u_TA_CDLTRISTAR_Value __pyx_string_tab[1335] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[1336] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Clone __pyx_string_tab[1337] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Open __pyx_string_tab[1338] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill __pyx_string_tab[1339] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Peek __pyx_string_tab[1340] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Update __pyx_string_tab[1341] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Value __pyx_string_tab[1342] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[1343] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone __pyx_string_tab[1344] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open __pyx_string_tab[1345] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil __pyx_string_tab[1346] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek __pyx_string_tab[1347] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update __pyx_string_tab[1348] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value __pyx_string_tab[1349] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[1350] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone __pyx_string_tab[1351] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open __pyx_string_tab[1352] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi __pyx_string_tab[1353] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek __pyx_string_tab[1354] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update __pyx_string_tab[1355] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value __pyx_string_tab[1356] +#define __pyx_n_u_TA_CEIL __pyx_string_tab[1357] +#define __pyx_n_u_TA_CEIL_Clone __pyx_string_tab[1358] +#define __pyx_n_u_TA_CEIL_Open __pyx_string_tab[1359] +#define __pyx_n_u_TA_CEIL_OpenAndFill __pyx_string_tab[1360] +#define __pyx_n_u_TA_CEIL_Peek __pyx_string_tab[1361] +#define __pyx_n_u_TA_CEIL_Update __pyx_string_tab[1362] +#define __pyx_n_u_TA_CEIL_Value __pyx_string_tab[1363] +#define __pyx_n_u_TA_CMF __pyx_string_tab[1364] +#define __pyx_n_u_TA_CMF_Clone __pyx_string_tab[1365] +#define __pyx_n_u_TA_CMF_Open __pyx_string_tab[1366] +#define __pyx_n_u_TA_CMF_OpenAndFill __pyx_string_tab[1367] +#define __pyx_n_u_TA_CMF_Peek __pyx_string_tab[1368] +#define __pyx_n_u_TA_CMF_Update __pyx_string_tab[1369] +#define __pyx_n_u_TA_CMF_Value __pyx_string_tab[1370] +#define __pyx_n_u_TA_CMO __pyx_string_tab[1371] +#define __pyx_n_u_TA_CMOU __pyx_string_tab[1372] +#define __pyx_n_u_TA_CMOU_Clone __pyx_string_tab[1373] +#define __pyx_n_u_TA_CMOU_Open __pyx_string_tab[1374] +#define __pyx_n_u_TA_CMOU_OpenAndFill __pyx_string_tab[1375] +#define __pyx_n_u_TA_CMOU_Peek __pyx_string_tab[1376] +#define __pyx_n_u_TA_CMOU_Update __pyx_string_tab[1377] +#define __pyx_n_u_TA_CMOU_Value __pyx_string_tab[1378] +#define __pyx_n_u_TA_CMO_Clone __pyx_string_tab[1379] +#define __pyx_n_u_TA_CMO_Open __pyx_string_tab[1380] +#define __pyx_n_u_TA_CMO_OpenAndFill __pyx_string_tab[1381] +#define __pyx_n_u_TA_CMO_Peek __pyx_string_tab[1382] +#define __pyx_n_u_TA_CMO_Update __pyx_string_tab[1383] +#define __pyx_n_u_TA_CMO_Value __pyx_string_tab[1384] +#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[1385] +#define __pyx_n_u_TA_COPPOCK_Clone __pyx_string_tab[1386] +#define __pyx_n_u_TA_COPPOCK_Open __pyx_string_tab[1387] +#define __pyx_n_u_TA_COPPOCK_OpenAndFill __pyx_string_tab[1388] +#define __pyx_n_u_TA_COPPOCK_Peek __pyx_string_tab[1389] +#define __pyx_n_u_TA_COPPOCK_Update __pyx_string_tab[1390] +#define __pyx_n_u_TA_COPPOCK_Value __pyx_string_tab[1391] +#define __pyx_n_u_TA_CORREL __pyx_string_tab[1392] +#define __pyx_n_u_TA_CORREL_Clone __pyx_string_tab[1393] +#define __pyx_n_u_TA_CORREL_Open __pyx_string_tab[1394] +#define __pyx_n_u_TA_CORREL_OpenAndFill __pyx_string_tab[1395] +#define __pyx_n_u_TA_CORREL_Peek __pyx_string_tab[1396] +#define __pyx_n_u_TA_CORREL_Update __pyx_string_tab[1397] +#define __pyx_n_u_TA_CORREL_Value __pyx_string_tab[1398] +#define __pyx_n_u_TA_COS __pyx_string_tab[1399] +#define __pyx_n_u_TA_COSH __pyx_string_tab[1400] +#define __pyx_n_u_TA_COSH_Clone __pyx_string_tab[1401] +#define __pyx_n_u_TA_COSH_Open __pyx_string_tab[1402] +#define __pyx_n_u_TA_COSH_OpenAndFill __pyx_string_tab[1403] +#define __pyx_n_u_TA_COSH_Peek __pyx_string_tab[1404] +#define __pyx_n_u_TA_COSH_Update __pyx_string_tab[1405] +#define __pyx_n_u_TA_COSH_Value __pyx_string_tab[1406] +#define __pyx_n_u_TA_COS_Clone __pyx_string_tab[1407] +#define __pyx_n_u_TA_COS_Open __pyx_string_tab[1408] +#define __pyx_n_u_TA_COS_OpenAndFill __pyx_string_tab[1409] +#define __pyx_n_u_TA_COS_Peek __pyx_string_tab[1410] +#define __pyx_n_u_TA_COS_Update __pyx_string_tab[1411] +#define __pyx_n_u_TA_COS_Value __pyx_string_tab[1412] +#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[1413] +#define __pyx_n_u_TA_CUMSUM_Clone __pyx_string_tab[1414] +#define __pyx_n_u_TA_CUMSUM_Open __pyx_string_tab[1415] +#define __pyx_n_u_TA_CUMSUM_OpenAndFill __pyx_string_tab[1416] +#define __pyx_n_u_TA_CUMSUM_Peek __pyx_string_tab[1417] +#define __pyx_n_u_TA_CUMSUM_Update __pyx_string_tab[1418] +#define __pyx_n_u_TA_CUMSUM_Value __pyx_string_tab[1419] +#define __pyx_n_u_TA_CVI __pyx_string_tab[1420] +#define __pyx_n_u_TA_CVI_Clone __pyx_string_tab[1421] +#define __pyx_n_u_TA_CVI_Open __pyx_string_tab[1422] +#define __pyx_n_u_TA_CVI_OpenAndFill __pyx_string_tab[1423] +#define __pyx_n_u_TA_CVI_Peek __pyx_string_tab[1424] +#define __pyx_n_u_TA_CVI_Update __pyx_string_tab[1425] +#define __pyx_n_u_TA_CVI_Value __pyx_string_tab[1426] +#define __pyx_n_u_TA_DEMA __pyx_string_tab[1427] +#define __pyx_n_u_TA_DEMA_Clone __pyx_string_tab[1428] +#define __pyx_n_u_TA_DEMA_Open __pyx_string_tab[1429] +#define __pyx_n_u_TA_DEMA_OpenAndFill __pyx_string_tab[1430] +#define __pyx_n_u_TA_DEMA_Peek __pyx_string_tab[1431] +#define __pyx_n_u_TA_DEMA_Update __pyx_string_tab[1432] +#define __pyx_n_u_TA_DEMA_Value __pyx_string_tab[1433] +#define __pyx_n_u_TA_DIV __pyx_string_tab[1434] +#define __pyx_n_u_TA_DIV_Clone __pyx_string_tab[1435] +#define __pyx_n_u_TA_DIV_Open __pyx_string_tab[1436] +#define __pyx_n_u_TA_DIV_OpenAndFill __pyx_string_tab[1437] +#define __pyx_n_u_TA_DIV_Peek __pyx_string_tab[1438] +#define __pyx_n_u_TA_DIV_Update __pyx_string_tab[1439] +#define __pyx_n_u_TA_DIV_Value __pyx_string_tab[1440] +#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[1441] +#define __pyx_n_u_TA_DONCHIAN_Clone __pyx_string_tab[1442] +#define __pyx_n_u_TA_DONCHIAN_Open __pyx_string_tab[1443] +#define __pyx_n_u_TA_DONCHIAN_OpenAndFill __pyx_string_tab[1444] +#define __pyx_n_u_TA_DONCHIAN_Peek __pyx_string_tab[1445] +#define __pyx_n_u_TA_DONCHIAN_Update __pyx_string_tab[1446] +#define __pyx_n_u_TA_DONCHIAN_Value __pyx_string_tab[1447] +#define __pyx_n_u_TA_DPO __pyx_string_tab[1448] +#define __pyx_n_u_TA_DPO_Clone __pyx_string_tab[1449] +#define __pyx_n_u_TA_DPO_Open __pyx_string_tab[1450] +#define __pyx_n_u_TA_DPO_OpenAndFill __pyx_string_tab[1451] +#define __pyx_n_u_TA_DPO_Peek __pyx_string_tab[1452] +#define __pyx_n_u_TA_DPO_Update __pyx_string_tab[1453] +#define __pyx_n_u_TA_DPO_Value __pyx_string_tab[1454] +#define __pyx_n_u_TA_DX __pyx_string_tab[1455] +#define __pyx_n_u_TA_DX_Clone __pyx_string_tab[1456] +#define __pyx_n_u_TA_DX_Open __pyx_string_tab[1457] +#define __pyx_n_u_TA_DX_OpenAndFill __pyx_string_tab[1458] +#define __pyx_n_u_TA_DX_Peek __pyx_string_tab[1459] +#define __pyx_n_u_TA_DX_Update __pyx_string_tab[1460] +#define __pyx_n_u_TA_DX_Value __pyx_string_tab[1461] +#define __pyx_n_u_TA_EFI __pyx_string_tab[1462] +#define __pyx_n_u_TA_EFI_Clone __pyx_string_tab[1463] +#define __pyx_n_u_TA_EFI_Open __pyx_string_tab[1464] +#define __pyx_n_u_TA_EFI_OpenAndFill __pyx_string_tab[1465] +#define __pyx_n_u_TA_EFI_Peek __pyx_string_tab[1466] +#define __pyx_n_u_TA_EFI_Update __pyx_string_tab[1467] +#define __pyx_n_u_TA_EFI_Value __pyx_string_tab[1468] +#define __pyx_n_u_TA_EMA __pyx_string_tab[1469] +#define __pyx_n_u_TA_EMA_Clone __pyx_string_tab[1470] +#define __pyx_n_u_TA_EMA_Open __pyx_string_tab[1471] +#define __pyx_n_u_TA_EMA_OpenAndFill __pyx_string_tab[1472] +#define __pyx_n_u_TA_EMA_Peek __pyx_string_tab[1473] +#define __pyx_n_u_TA_EMA_Update __pyx_string_tab[1474] +#define __pyx_n_u_TA_EMA_Value __pyx_string_tab[1475] +#define __pyx_n_u_TA_ER __pyx_string_tab[1476] +#define __pyx_n_u_TA_ERI __pyx_string_tab[1477] +#define __pyx_n_u_TA_ERI_Clone __pyx_string_tab[1478] +#define __pyx_n_u_TA_ERI_Open __pyx_string_tab[1479] +#define __pyx_n_u_TA_ERI_OpenAndFill __pyx_string_tab[1480] +#define __pyx_n_u_TA_ERI_Peek __pyx_string_tab[1481] +#define __pyx_n_u_TA_ERI_Update __pyx_string_tab[1482] +#define __pyx_n_u_TA_ERI_Value __pyx_string_tab[1483] +#define __pyx_n_u_TA_ER_Clone __pyx_string_tab[1484] +#define __pyx_n_u_TA_ER_Open __pyx_string_tab[1485] +#define __pyx_n_u_TA_ER_OpenAndFill __pyx_string_tab[1486] +#define __pyx_n_u_TA_ER_Peek __pyx_string_tab[1487] +#define __pyx_n_u_TA_ER_Update __pyx_string_tab[1488] +#define __pyx_n_u_TA_ER_Value __pyx_string_tab[1489] +#define __pyx_n_u_TA_EXP __pyx_string_tab[1490] +#define __pyx_n_u_TA_EXP_Clone __pyx_string_tab[1491] +#define __pyx_n_u_TA_EXP_Open __pyx_string_tab[1492] +#define __pyx_n_u_TA_EXP_OpenAndFill __pyx_string_tab[1493] +#define __pyx_n_u_TA_EXP_Peek __pyx_string_tab[1494] +#define __pyx_n_u_TA_EXP_Update __pyx_string_tab[1495] +#define __pyx_n_u_TA_EXP_Value __pyx_string_tab[1496] +#define __pyx_n_u_TA_FLOOR __pyx_string_tab[1497] +#define __pyx_n_u_TA_FLOOR_Clone __pyx_string_tab[1498] +#define __pyx_n_u_TA_FLOOR_Open __pyx_string_tab[1499] +#define __pyx_n_u_TA_FLOOR_OpenAndFill __pyx_string_tab[1500] +#define __pyx_n_u_TA_FLOOR_Peek __pyx_string_tab[1501] +#define __pyx_n_u_TA_FLOOR_Update __pyx_string_tab[1502] +#define __pyx_n_u_TA_FLOOR_Value __pyx_string_tab[1503] +#define __pyx_n_u_TA_FOSC __pyx_string_tab[1504] +#define __pyx_n_u_TA_FOSC_Clone __pyx_string_tab[1505] +#define __pyx_n_u_TA_FOSC_Open __pyx_string_tab[1506] +#define __pyx_n_u_TA_FOSC_OpenAndFill __pyx_string_tab[1507] +#define __pyx_n_u_TA_FOSC_Peek __pyx_string_tab[1508] +#define __pyx_n_u_TA_FOSC_Update __pyx_string_tab[1509] +#define __pyx_n_u_TA_FOSC_Value __pyx_string_tab[1510] +#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[1511] +#define __pyx_n_u_TA_FRACTAL_Clone __pyx_string_tab[1512] +#define __pyx_n_u_TA_FRACTAL_Open __pyx_string_tab[1513] +#define __pyx_n_u_TA_FRACTAL_OpenAndFill __pyx_string_tab[1514] +#define __pyx_n_u_TA_FRACTAL_Peek __pyx_string_tab[1515] +#define __pyx_n_u_TA_FRACTAL_Update __pyx_string_tab[1516] +#define __pyx_n_u_TA_FRACTAL_Value __pyx_string_tab[1517] +#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[1518] +#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[1519] +#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[1520] +#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[1521] +#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[1522] +#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[1523] +#define __pyx_n_u_TA_GetLookback __pyx_string_tab[1524] +#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[1525] +#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[1526] +#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[1527] +#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[1528] +#define __pyx_n_u_TA_HA __pyx_string_tab[1529] +#define __pyx_n_u_TA_HA_Clone __pyx_string_tab[1530] +#define __pyx_n_u_TA_HA_Open __pyx_string_tab[1531] +#define __pyx_n_u_TA_HA_OpenAndFill __pyx_string_tab[1532] +#define __pyx_n_u_TA_HA_Peek __pyx_string_tab[1533] +#define __pyx_n_u_TA_HA_Update __pyx_string_tab[1534] +#define __pyx_n_u_TA_HA_Value __pyx_string_tab[1535] +#define __pyx_n_u_TA_HMA __pyx_string_tab[1536] +#define __pyx_n_u_TA_HMA_Clone __pyx_string_tab[1537] +#define __pyx_n_u_TA_HMA_Open __pyx_string_tab[1538] +#define __pyx_n_u_TA_HMA_OpenAndFill __pyx_string_tab[1539] +#define __pyx_n_u_TA_HMA_Peek __pyx_string_tab[1540] +#define __pyx_n_u_TA_HMA_Update __pyx_string_tab[1541] +#define __pyx_n_u_TA_HMA_Value __pyx_string_tab[1542] +#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[1543] +#define __pyx_n_u_TA_HT_DCPERIOD_Clone __pyx_string_tab[1544] +#define __pyx_n_u_TA_HT_DCPERIOD_Open __pyx_string_tab[1545] +#define __pyx_n_u_TA_HT_DCPERIOD_OpenAndFill __pyx_string_tab[1546] +#define __pyx_n_u_TA_HT_DCPERIOD_Peek __pyx_string_tab[1547] +#define __pyx_n_u_TA_HT_DCPERIOD_Update __pyx_string_tab[1548] +#define __pyx_n_u_TA_HT_DCPERIOD_Value __pyx_string_tab[1549] +#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[1550] +#define __pyx_n_u_TA_HT_DCPHASE_Clone __pyx_string_tab[1551] +#define __pyx_n_u_TA_HT_DCPHASE_Open __pyx_string_tab[1552] +#define __pyx_n_u_TA_HT_DCPHASE_OpenAndFill __pyx_string_tab[1553] +#define __pyx_n_u_TA_HT_DCPHASE_Peek __pyx_string_tab[1554] +#define __pyx_n_u_TA_HT_DCPHASE_Update __pyx_string_tab[1555] +#define __pyx_n_u_TA_HT_DCPHASE_Value __pyx_string_tab[1556] +#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[1557] +#define __pyx_n_u_TA_HT_PHASOR_Clone __pyx_string_tab[1558] +#define __pyx_n_u_TA_HT_PHASOR_Open __pyx_string_tab[1559] +#define __pyx_n_u_TA_HT_PHASOR_OpenAndFill __pyx_string_tab[1560] +#define __pyx_n_u_TA_HT_PHASOR_Peek __pyx_string_tab[1561] +#define __pyx_n_u_TA_HT_PHASOR_Update __pyx_string_tab[1562] +#define __pyx_n_u_TA_HT_PHASOR_Value __pyx_string_tab[1563] +#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[1564] +#define __pyx_n_u_TA_HT_SINE_Clone __pyx_string_tab[1565] +#define __pyx_n_u_TA_HT_SINE_Open __pyx_string_tab[1566] +#define __pyx_n_u_TA_HT_SINE_OpenAndFill __pyx_string_tab[1567] +#define __pyx_n_u_TA_HT_SINE_Peek __pyx_string_tab[1568] +#define __pyx_n_u_TA_HT_SINE_Update __pyx_string_tab[1569] +#define __pyx_n_u_TA_HT_SINE_Value __pyx_string_tab[1570] +#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[1571] +#define __pyx_n_u_TA_HT_TRENDLINE_Clone __pyx_string_tab[1572] +#define __pyx_n_u_TA_HT_TRENDLINE_Open __pyx_string_tab[1573] +#define __pyx_n_u_TA_HT_TRENDLINE_OpenAndFill __pyx_string_tab[1574] +#define __pyx_n_u_TA_HT_TRENDLINE_Peek __pyx_string_tab[1575] +#define __pyx_n_u_TA_HT_TRENDLINE_Update __pyx_string_tab[1576] +#define __pyx_n_u_TA_HT_TRENDLINE_Value __pyx_string_tab[1577] +#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[1578] +#define __pyx_n_u_TA_HT_TRENDMODE_Clone __pyx_string_tab[1579] +#define __pyx_n_u_TA_HT_TRENDMODE_Open __pyx_string_tab[1580] +#define __pyx_n_u_TA_HT_TRENDMODE_OpenAndFill __pyx_string_tab[1581] +#define __pyx_n_u_TA_HT_TRENDMODE_Peek __pyx_string_tab[1582] +#define __pyx_n_u_TA_HT_TRENDMODE_Update __pyx_string_tab[1583] +#define __pyx_n_u_TA_HT_TRENDMODE_Value __pyx_string_tab[1584] +#define __pyx_n_u_TA_IMI __pyx_string_tab[1585] +#define __pyx_n_u_TA_IMI_Clone __pyx_string_tab[1586] +#define __pyx_n_u_TA_IMI_Open __pyx_string_tab[1587] +#define __pyx_n_u_TA_IMI_OpenAndFill __pyx_string_tab[1588] +#define __pyx_n_u_TA_IMI_Peek __pyx_string_tab[1589] +#define __pyx_n_u_TA_IMI_Update __pyx_string_tab[1590] +#define __pyx_n_u_TA_IMI_Value __pyx_string_tab[1591] +#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[1592] +#define __pyx_n_u_TA_Initialize __pyx_string_tab[1593] +#define __pyx_n_u_TA_KAMA __pyx_string_tab[1594] +#define __pyx_n_u_TA_KAMA_Clone __pyx_string_tab[1595] +#define __pyx_n_u_TA_KAMA_Open __pyx_string_tab[1596] +#define __pyx_n_u_TA_KAMA_OpenAndFill __pyx_string_tab[1597] +#define __pyx_n_u_TA_KAMA_Peek __pyx_string_tab[1598] +#define __pyx_n_u_TA_KAMA_Update __pyx_string_tab[1599] +#define __pyx_n_u_TA_KAMA_Value __pyx_string_tab[1600] +#define __pyx_n_u_TA_KC __pyx_string_tab[1601] +#define __pyx_n_u_TA_KC_Clone __pyx_string_tab[1602] +#define __pyx_n_u_TA_KC_Open __pyx_string_tab[1603] +#define __pyx_n_u_TA_KC_OpenAndFill __pyx_string_tab[1604] +#define __pyx_n_u_TA_KC_Peek __pyx_string_tab[1605] +#define __pyx_n_u_TA_KC_Update __pyx_string_tab[1606] +#define __pyx_n_u_TA_KC_Value __pyx_string_tab[1607] +#define __pyx_n_u_TA_KDJ __pyx_string_tab[1608] +#define __pyx_n_u_TA_KDJ_Clone __pyx_string_tab[1609] +#define __pyx_n_u_TA_KDJ_Open __pyx_string_tab[1610] +#define __pyx_n_u_TA_KDJ_OpenAndFill __pyx_string_tab[1611] +#define __pyx_n_u_TA_KDJ_Peek __pyx_string_tab[1612] +#define __pyx_n_u_TA_KDJ_Update __pyx_string_tab[1613] +#define __pyx_n_u_TA_KDJ_Value __pyx_string_tab[1614] +#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[1615] +#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[1616] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Clone __pyx_string_tab[1617] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Open __pyx_string_tab[1618] +#define __pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill __pyx_string_tab[1619] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Peek __pyx_string_tab[1620] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Update __pyx_string_tab[1621] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Value __pyx_string_tab[1622] +#define __pyx_n_u_TA_LINEARREG_Clone __pyx_string_tab[1623] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[1624] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Clone __pyx_string_tab[1625] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Open __pyx_string_tab[1626] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi __pyx_string_tab[1627] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Peek __pyx_string_tab[1628] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Update __pyx_string_tab[1629] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Value __pyx_string_tab[1630] +#define __pyx_n_u_TA_LINEARREG_Open __pyx_string_tab[1631] +#define __pyx_n_u_TA_LINEARREG_OpenAndFill __pyx_string_tab[1632] +#define __pyx_n_u_TA_LINEARREG_Peek __pyx_string_tab[1633] +#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[1634] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Clone __pyx_string_tab[1635] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Open __pyx_string_tab[1636] +#define __pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill __pyx_string_tab[1637] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Peek __pyx_string_tab[1638] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Update __pyx_string_tab[1639] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Value __pyx_string_tab[1640] +#define __pyx_n_u_TA_LINEARREG_Update __pyx_string_tab[1641] +#define __pyx_n_u_TA_LINEARREG_Value __pyx_string_tab[1642] +#define __pyx_n_u_TA_LN __pyx_string_tab[1643] +#define __pyx_n_u_TA_LN_Clone __pyx_string_tab[1644] +#define __pyx_n_u_TA_LN_Open __pyx_string_tab[1645] +#define __pyx_n_u_TA_LN_OpenAndFill __pyx_string_tab[1646] +#define __pyx_n_u_TA_LN_Peek __pyx_string_tab[1647] +#define __pyx_n_u_TA_LN_Update __pyx_string_tab[1648] +#define __pyx_n_u_TA_LN_Value __pyx_string_tab[1649] +#define __pyx_n_u_TA_LOG10 __pyx_string_tab[1650] +#define __pyx_n_u_TA_LOG10_Clone __pyx_string_tab[1651] +#define __pyx_n_u_TA_LOG10_Open __pyx_string_tab[1652] +#define __pyx_n_u_TA_LOG10_OpenAndFill __pyx_string_tab[1653] +#define __pyx_n_u_TA_LOG10_Peek __pyx_string_tab[1654] +#define __pyx_n_u_TA_LOG10_Update __pyx_string_tab[1655] +#define __pyx_n_u_TA_LOG10_Value __pyx_string_tab[1656] +#define __pyx_n_u_TA_MA __pyx_string_tab[1657] +#define __pyx_n_u_TA_MACD __pyx_string_tab[1658] +#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[1659] +#define __pyx_n_u_TA_MACDEXT_Clone __pyx_string_tab[1660] +#define __pyx_n_u_TA_MACDEXT_Open __pyx_string_tab[1661] +#define __pyx_n_u_TA_MACDEXT_OpenAndFill __pyx_string_tab[1662] +#define __pyx_n_u_TA_MACDEXT_Peek __pyx_string_tab[1663] +#define __pyx_n_u_TA_MACDEXT_Update __pyx_string_tab[1664] +#define __pyx_n_u_TA_MACDEXT_Value __pyx_string_tab[1665] +#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[1666] +#define __pyx_n_u_TA_MACDFIX_Clone __pyx_string_tab[1667] +#define __pyx_n_u_TA_MACDFIX_Open __pyx_string_tab[1668] +#define __pyx_n_u_TA_MACDFIX_OpenAndFill __pyx_string_tab[1669] +#define __pyx_n_u_TA_MACDFIX_Peek __pyx_string_tab[1670] +#define __pyx_n_u_TA_MACDFIX_Update __pyx_string_tab[1671] +#define __pyx_n_u_TA_MACDFIX_Value __pyx_string_tab[1672] +#define __pyx_n_u_TA_MACD_Clone __pyx_string_tab[1673] +#define __pyx_n_u_TA_MACD_Open __pyx_string_tab[1674] +#define __pyx_n_u_TA_MACD_OpenAndFill __pyx_string_tab[1675] +#define __pyx_n_u_TA_MACD_Peek __pyx_string_tab[1676] +#define __pyx_n_u_TA_MACD_Update __pyx_string_tab[1677] +#define __pyx_n_u_TA_MACD_Value __pyx_string_tab[1678] +#define __pyx_n_u_TA_MAMA __pyx_string_tab[1679] +#define __pyx_n_u_TA_MAMA_Clone __pyx_string_tab[1680] +#define __pyx_n_u_TA_MAMA_Open __pyx_string_tab[1681] +#define __pyx_n_u_TA_MAMA_OpenAndFill __pyx_string_tab[1682] +#define __pyx_n_u_TA_MAMA_Peek __pyx_string_tab[1683] +#define __pyx_n_u_TA_MAMA_Update __pyx_string_tab[1684] +#define __pyx_n_u_TA_MAMA_Value __pyx_string_tab[1685] +#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[1686] +#define __pyx_n_u_TA_MARKETFI_Clone __pyx_string_tab[1687] +#define __pyx_n_u_TA_MARKETFI_Open __pyx_string_tab[1688] +#define __pyx_n_u_TA_MARKETFI_OpenAndFill __pyx_string_tab[1689] +#define __pyx_n_u_TA_MARKETFI_Peek __pyx_string_tab[1690] +#define __pyx_n_u_TA_MARKETFI_Update __pyx_string_tab[1691] +#define __pyx_n_u_TA_MARKETFI_Value __pyx_string_tab[1692] +#define __pyx_n_u_TA_MASSI __pyx_string_tab[1693] +#define __pyx_n_u_TA_MASSI_Clone __pyx_string_tab[1694] +#define __pyx_n_u_TA_MASSI_Open __pyx_string_tab[1695] +#define __pyx_n_u_TA_MASSI_OpenAndFill __pyx_string_tab[1696] +#define __pyx_n_u_TA_MASSI_Peek __pyx_string_tab[1697] +#define __pyx_n_u_TA_MASSI_Update __pyx_string_tab[1698] +#define __pyx_n_u_TA_MASSI_Value __pyx_string_tab[1699] +#define __pyx_n_u_TA_MAVP __pyx_string_tab[1700] +#define __pyx_n_u_TA_MAVP_Clone __pyx_string_tab[1701] +#define __pyx_n_u_TA_MAVP_Open __pyx_string_tab[1702] +#define __pyx_n_u_TA_MAVP_OpenAndFill __pyx_string_tab[1703] +#define __pyx_n_u_TA_MAVP_Peek __pyx_string_tab[1704] +#define __pyx_n_u_TA_MAVP_Update __pyx_string_tab[1705] +#define __pyx_n_u_TA_MAVP_Value __pyx_string_tab[1706] +#define __pyx_n_u_TA_MAX __pyx_string_tab[1707] +#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[1708] +#define __pyx_n_u_TA_MAXINDEX_Clone __pyx_string_tab[1709] +#define __pyx_n_u_TA_MAXINDEX_Open __pyx_string_tab[1710] +#define __pyx_n_u_TA_MAXINDEX_OpenAndFill __pyx_string_tab[1711] +#define __pyx_n_u_TA_MAXINDEX_Peek __pyx_string_tab[1712] +#define __pyx_n_u_TA_MAXINDEX_Update __pyx_string_tab[1713] +#define __pyx_n_u_TA_MAXINDEX_Value __pyx_string_tab[1714] +#define __pyx_n_u_TA_MAX_Clone __pyx_string_tab[1715] +#define __pyx_n_u_TA_MAX_Open __pyx_string_tab[1716] +#define __pyx_n_u_TA_MAX_OpenAndFill __pyx_string_tab[1717] +#define __pyx_n_u_TA_MAX_Peek __pyx_string_tab[1718] +#define __pyx_n_u_TA_MAX_Update __pyx_string_tab[1719] +#define __pyx_n_u_TA_MAX_Value __pyx_string_tab[1720] +#define __pyx_n_u_TA_MA_Clone __pyx_string_tab[1721] +#define __pyx_n_u_TA_MA_Open __pyx_string_tab[1722] +#define __pyx_n_u_TA_MA_OpenAndFill __pyx_string_tab[1723] +#define __pyx_n_u_TA_MA_Peek __pyx_string_tab[1724] +#define __pyx_n_u_TA_MA_Update __pyx_string_tab[1725] +#define __pyx_n_u_TA_MA_Value __pyx_string_tab[1726] +#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[1727] +#define __pyx_n_u_TA_MEDPRICE_Clone __pyx_string_tab[1728] +#define __pyx_n_u_TA_MEDPRICE_Open __pyx_string_tab[1729] +#define __pyx_n_u_TA_MEDPRICE_OpenAndFill __pyx_string_tab[1730] +#define __pyx_n_u_TA_MEDPRICE_Peek __pyx_string_tab[1731] +#define __pyx_n_u_TA_MEDPRICE_Update __pyx_string_tab[1732] +#define __pyx_n_u_TA_MEDPRICE_Value __pyx_string_tab[1733] +#define __pyx_n_u_TA_MFI __pyx_string_tab[1734] +#define __pyx_n_u_TA_MFI_Clone __pyx_string_tab[1735] +#define __pyx_n_u_TA_MFI_Open __pyx_string_tab[1736] +#define __pyx_n_u_TA_MFI_OpenAndFill __pyx_string_tab[1737] +#define __pyx_n_u_TA_MFI_Peek __pyx_string_tab[1738] +#define __pyx_n_u_TA_MFI_Update __pyx_string_tab[1739] +#define __pyx_n_u_TA_MFI_Value __pyx_string_tab[1740] +#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[1741] +#define __pyx_n_u_TA_MIDPOINT_Clone __pyx_string_tab[1742] +#define __pyx_n_u_TA_MIDPOINT_Open __pyx_string_tab[1743] +#define __pyx_n_u_TA_MIDPOINT_OpenAndFill __pyx_string_tab[1744] +#define __pyx_n_u_TA_MIDPOINT_Peek __pyx_string_tab[1745] +#define __pyx_n_u_TA_MIDPOINT_Update __pyx_string_tab[1746] +#define __pyx_n_u_TA_MIDPOINT_Value __pyx_string_tab[1747] +#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[1748] +#define __pyx_n_u_TA_MIDPRICE_Clone __pyx_string_tab[1749] +#define __pyx_n_u_TA_MIDPRICE_Open __pyx_string_tab[1750] +#define __pyx_n_u_TA_MIDPRICE_OpenAndFill __pyx_string_tab[1751] +#define __pyx_n_u_TA_MIDPRICE_Peek __pyx_string_tab[1752] +#define __pyx_n_u_TA_MIDPRICE_Update __pyx_string_tab[1753] +#define __pyx_n_u_TA_MIDPRICE_Value __pyx_string_tab[1754] +#define __pyx_n_u_TA_MIN __pyx_string_tab[1755] +#define __pyx_n_u_TA_MININDEX __pyx_string_tab[1756] +#define __pyx_n_u_TA_MININDEX_Clone __pyx_string_tab[1757] +#define __pyx_n_u_TA_MININDEX_Open __pyx_string_tab[1758] +#define __pyx_n_u_TA_MININDEX_OpenAndFill __pyx_string_tab[1759] +#define __pyx_n_u_TA_MININDEX_Peek __pyx_string_tab[1760] +#define __pyx_n_u_TA_MININDEX_Update __pyx_string_tab[1761] +#define __pyx_n_u_TA_MININDEX_Value __pyx_string_tab[1762] +#define __pyx_n_u_TA_MINMAX __pyx_string_tab[1763] +#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[1764] +#define __pyx_n_u_TA_MINMAXINDEX_Clone __pyx_string_tab[1765] +#define __pyx_n_u_TA_MINMAXINDEX_Open __pyx_string_tab[1766] +#define __pyx_n_u_TA_MINMAXINDEX_OpenAndFill __pyx_string_tab[1767] +#define __pyx_n_u_TA_MINMAXINDEX_Peek __pyx_string_tab[1768] +#define __pyx_n_u_TA_MINMAXINDEX_Update __pyx_string_tab[1769] +#define __pyx_n_u_TA_MINMAXINDEX_Value __pyx_string_tab[1770] +#define __pyx_n_u_TA_MINMAX_Clone __pyx_string_tab[1771] +#define __pyx_n_u_TA_MINMAX_Open __pyx_string_tab[1772] +#define __pyx_n_u_TA_MINMAX_OpenAndFill __pyx_string_tab[1773] +#define __pyx_n_u_TA_MINMAX_Peek __pyx_string_tab[1774] +#define __pyx_n_u_TA_MINMAX_Update __pyx_string_tab[1775] +#define __pyx_n_u_TA_MINMAX_Value __pyx_string_tab[1776] +#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[1777] +#define __pyx_n_u_TA_MINUS_DI_Clone __pyx_string_tab[1778] +#define __pyx_n_u_TA_MINUS_DI_Open __pyx_string_tab[1779] +#define __pyx_n_u_TA_MINUS_DI_OpenAndFill __pyx_string_tab[1780] +#define __pyx_n_u_TA_MINUS_DI_Peek __pyx_string_tab[1781] +#define __pyx_n_u_TA_MINUS_DI_Update __pyx_string_tab[1782] +#define __pyx_n_u_TA_MINUS_DI_Value __pyx_string_tab[1783] +#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[1784] +#define __pyx_n_u_TA_MINUS_DM_Clone __pyx_string_tab[1785] +#define __pyx_n_u_TA_MINUS_DM_Open __pyx_string_tab[1786] +#define __pyx_n_u_TA_MINUS_DM_OpenAndFill __pyx_string_tab[1787] +#define __pyx_n_u_TA_MINUS_DM_Peek __pyx_string_tab[1788] +#define __pyx_n_u_TA_MINUS_DM_Update __pyx_string_tab[1789] +#define __pyx_n_u_TA_MINUS_DM_Value __pyx_string_tab[1790] +#define __pyx_n_u_TA_MIN_Clone __pyx_string_tab[1791] +#define __pyx_n_u_TA_MIN_Open __pyx_string_tab[1792] +#define __pyx_n_u_TA_MIN_OpenAndFill __pyx_string_tab[1793] +#define __pyx_n_u_TA_MIN_Peek __pyx_string_tab[1794] +#define __pyx_n_u_TA_MIN_Update __pyx_string_tab[1795] +#define __pyx_n_u_TA_MIN_Value __pyx_string_tab[1796] +#define __pyx_n_u_TA_MOM __pyx_string_tab[1797] +#define __pyx_n_u_TA_MOM_Clone __pyx_string_tab[1798] +#define __pyx_n_u_TA_MOM_Open __pyx_string_tab[1799] +#define __pyx_n_u_TA_MOM_OpenAndFill __pyx_string_tab[1800] +#define __pyx_n_u_TA_MOM_Peek __pyx_string_tab[1801] +#define __pyx_n_u_TA_MOM_Update __pyx_string_tab[1802] +#define __pyx_n_u_TA_MOM_Value __pyx_string_tab[1803] +#define __pyx_n_u_TA_MULT __pyx_string_tab[1804] +#define __pyx_n_u_TA_MULT_Clone __pyx_string_tab[1805] +#define __pyx_n_u_TA_MULT_Open __pyx_string_tab[1806] +#define __pyx_n_u_TA_MULT_OpenAndFill __pyx_string_tab[1807] +#define __pyx_n_u_TA_MULT_Peek __pyx_string_tab[1808] +#define __pyx_n_u_TA_MULT_Update __pyx_string_tab[1809] +#define __pyx_n_u_TA_MULT_Value __pyx_string_tab[1810] +#define __pyx_n_u_TA_NATR __pyx_string_tab[1811] +#define __pyx_n_u_TA_NATR_Clone __pyx_string_tab[1812] +#define __pyx_n_u_TA_NATR_Open __pyx_string_tab[1813] +#define __pyx_n_u_TA_NATR_OpenAndFill __pyx_string_tab[1814] +#define __pyx_n_u_TA_NATR_Peek __pyx_string_tab[1815] +#define __pyx_n_u_TA_NATR_Update __pyx_string_tab[1816] +#define __pyx_n_u_TA_NATR_Value __pyx_string_tab[1817] +#define __pyx_n_u_TA_NVI __pyx_string_tab[1818] +#define __pyx_n_u_TA_NVI_Clone __pyx_string_tab[1819] +#define __pyx_n_u_TA_NVI_Open __pyx_string_tab[1820] +#define __pyx_n_u_TA_NVI_OpenAndFill __pyx_string_tab[1821] +#define __pyx_n_u_TA_NVI_Peek __pyx_string_tab[1822] +#define __pyx_n_u_TA_NVI_Update __pyx_string_tab[1823] +#define __pyx_n_u_TA_NVI_Value __pyx_string_tab[1824] +#define __pyx_n_u_TA_OBV __pyx_string_tab[1825] +#define __pyx_n_u_TA_OBV_Clone __pyx_string_tab[1826] +#define __pyx_n_u_TA_OBV_Open __pyx_string_tab[1827] +#define __pyx_n_u_TA_OBV_OpenAndFill __pyx_string_tab[1828] +#define __pyx_n_u_TA_OBV_Peek __pyx_string_tab[1829] +#define __pyx_n_u_TA_OBV_Update __pyx_string_tab[1830] +#define __pyx_n_u_TA_OBV_Value __pyx_string_tab[1831] +#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[1832] +#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[1833] +#define __pyx_n_u_TA_PERCENTILE_Clone __pyx_string_tab[1834] +#define __pyx_n_u_TA_PERCENTILE_Open __pyx_string_tab[1835] +#define __pyx_n_u_TA_PERCENTILE_OpenAndFill __pyx_string_tab[1836] +#define __pyx_n_u_TA_PERCENTILE_Peek __pyx_string_tab[1837] +#define __pyx_n_u_TA_PERCENTILE_Update __pyx_string_tab[1838] +#define __pyx_n_u_TA_PERCENTILE_Value __pyx_string_tab[1839] +#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[1840] +#define __pyx_n_u_TA_PERCENTRANK_Clone __pyx_string_tab[1841] +#define __pyx_n_u_TA_PERCENTRANK_Open __pyx_string_tab[1842] +#define __pyx_n_u_TA_PERCENTRANK_OpenAndFill __pyx_string_tab[1843] +#define __pyx_n_u_TA_PERCENTRANK_Peek __pyx_string_tab[1844] +#define __pyx_n_u_TA_PERCENTRANK_Update __pyx_string_tab[1845] +#define __pyx_n_u_TA_PERCENTRANK_Value __pyx_string_tab[1846] +#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[1847] +#define __pyx_n_u_TA_PLUS_DI_Clone __pyx_string_tab[1848] +#define __pyx_n_u_TA_PLUS_DI_Open __pyx_string_tab[1849] +#define __pyx_n_u_TA_PLUS_DI_OpenAndFill __pyx_string_tab[1850] +#define __pyx_n_u_TA_PLUS_DI_Peek __pyx_string_tab[1851] +#define __pyx_n_u_TA_PLUS_DI_Update __pyx_string_tab[1852] +#define __pyx_n_u_TA_PLUS_DI_Value __pyx_string_tab[1853] +#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[1854] +#define __pyx_n_u_TA_PLUS_DM_Clone __pyx_string_tab[1855] +#define __pyx_n_u_TA_PLUS_DM_Open __pyx_string_tab[1856] +#define __pyx_n_u_TA_PLUS_DM_OpenAndFill __pyx_string_tab[1857] +#define __pyx_n_u_TA_PLUS_DM_Peek __pyx_string_tab[1858] +#define __pyx_n_u_TA_PLUS_DM_Update __pyx_string_tab[1859] +#define __pyx_n_u_TA_PLUS_DM_Value __pyx_string_tab[1860] +#define __pyx_n_u_TA_PPO __pyx_string_tab[1861] +#define __pyx_n_u_TA_PPO_Clone __pyx_string_tab[1862] +#define __pyx_n_u_TA_PPO_Open __pyx_string_tab[1863] +#define __pyx_n_u_TA_PPO_OpenAndFill __pyx_string_tab[1864] +#define __pyx_n_u_TA_PPO_Peek __pyx_string_tab[1865] +#define __pyx_n_u_TA_PPO_Update __pyx_string_tab[1866] +#define __pyx_n_u_TA_PPO_Value __pyx_string_tab[1867] +#define __pyx_n_u_TA_PVI __pyx_string_tab[1868] +#define __pyx_n_u_TA_PVI_Clone __pyx_string_tab[1869] +#define __pyx_n_u_TA_PVI_Open __pyx_string_tab[1870] +#define __pyx_n_u_TA_PVI_OpenAndFill __pyx_string_tab[1871] +#define __pyx_n_u_TA_PVI_Peek __pyx_string_tab[1872] +#define __pyx_n_u_TA_PVI_Update __pyx_string_tab[1873] +#define __pyx_n_u_TA_PVI_Value __pyx_string_tab[1874] +#define __pyx_n_u_TA_PVO __pyx_string_tab[1875] +#define __pyx_n_u_TA_PVO_Clone __pyx_string_tab[1876] +#define __pyx_n_u_TA_PVO_Open __pyx_string_tab[1877] +#define __pyx_n_u_TA_PVO_OpenAndFill __pyx_string_tab[1878] +#define __pyx_n_u_TA_PVO_Peek __pyx_string_tab[1879] +#define __pyx_n_u_TA_PVO_Update __pyx_string_tab[1880] +#define __pyx_n_u_TA_PVO_Value __pyx_string_tab[1881] +#define __pyx_n_u_TA_PVT __pyx_string_tab[1882] +#define __pyx_n_u_TA_PVT_Clone __pyx_string_tab[1883] +#define __pyx_n_u_TA_PVT_Open __pyx_string_tab[1884] +#define __pyx_n_u_TA_PVT_OpenAndFill __pyx_string_tab[1885] +#define __pyx_n_u_TA_PVT_Peek __pyx_string_tab[1886] +#define __pyx_n_u_TA_PVT_Update __pyx_string_tab[1887] +#define __pyx_n_u_TA_PVT_Value __pyx_string_tab[1888] +#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[1889] +#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[1890] +#define __pyx_n_u_TA_QSTICK __pyx_string_tab[1891] +#define __pyx_n_u_TA_QSTICK_Clone __pyx_string_tab[1892] +#define __pyx_n_u_TA_QSTICK_Open __pyx_string_tab[1893] +#define __pyx_n_u_TA_QSTICK_OpenAndFill __pyx_string_tab[1894] +#define __pyx_n_u_TA_QSTICK_Peek __pyx_string_tab[1895] +#define __pyx_n_u_TA_QSTICK_Update __pyx_string_tab[1896] +#define __pyx_n_u_TA_QSTICK_Value __pyx_string_tab[1897] +#define __pyx_n_u_TA_RMA __pyx_string_tab[1898] +#define __pyx_n_u_TA_RMA_Clone __pyx_string_tab[1899] +#define __pyx_n_u_TA_RMA_Open __pyx_string_tab[1900] +#define __pyx_n_u_TA_RMA_OpenAndFill __pyx_string_tab[1901] +#define __pyx_n_u_TA_RMA_Peek __pyx_string_tab[1902] +#define __pyx_n_u_TA_RMA_Update __pyx_string_tab[1903] +#define __pyx_n_u_TA_RMA_Value __pyx_string_tab[1904] +#define __pyx_n_u_TA_ROC __pyx_string_tab[1905] +#define __pyx_n_u_TA_ROCP __pyx_string_tab[1906] +#define __pyx_n_u_TA_ROCP_Clone __pyx_string_tab[1907] +#define __pyx_n_u_TA_ROCP_Open __pyx_string_tab[1908] +#define __pyx_n_u_TA_ROCP_OpenAndFill __pyx_string_tab[1909] +#define __pyx_n_u_TA_ROCP_Peek __pyx_string_tab[1910] +#define __pyx_n_u_TA_ROCP_Update __pyx_string_tab[1911] +#define __pyx_n_u_TA_ROCP_Value __pyx_string_tab[1912] +#define __pyx_n_u_TA_ROCR __pyx_string_tab[1913] +#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[1914] +#define __pyx_n_u_TA_ROCR100_Clone __pyx_string_tab[1915] +#define __pyx_n_u_TA_ROCR100_Open __pyx_string_tab[1916] +#define __pyx_n_u_TA_ROCR100_OpenAndFill __pyx_string_tab[1917] +#define __pyx_n_u_TA_ROCR100_Peek __pyx_string_tab[1918] +#define __pyx_n_u_TA_ROCR100_Update __pyx_string_tab[1919] +#define __pyx_n_u_TA_ROCR100_Value __pyx_string_tab[1920] +#define __pyx_n_u_TA_ROCR_Clone __pyx_string_tab[1921] +#define __pyx_n_u_TA_ROCR_Open __pyx_string_tab[1922] +#define __pyx_n_u_TA_ROCR_OpenAndFill __pyx_string_tab[1923] +#define __pyx_n_u_TA_ROCR_Peek __pyx_string_tab[1924] +#define __pyx_n_u_TA_ROCR_Update __pyx_string_tab[1925] +#define __pyx_n_u_TA_ROCR_Value __pyx_string_tab[1926] +#define __pyx_n_u_TA_ROC_Clone __pyx_string_tab[1927] +#define __pyx_n_u_TA_ROC_Open __pyx_string_tab[1928] +#define __pyx_n_u_TA_ROC_OpenAndFill __pyx_string_tab[1929] +#define __pyx_n_u_TA_ROC_Peek __pyx_string_tab[1930] +#define __pyx_n_u_TA_ROC_Update __pyx_string_tab[1931] +#define __pyx_n_u_TA_ROC_Value __pyx_string_tab[1932] +#define __pyx_n_u_TA_RSI __pyx_string_tab[1933] +#define __pyx_n_u_TA_RSI_Clone __pyx_string_tab[1934] +#define __pyx_n_u_TA_RSI_Open __pyx_string_tab[1935] +#define __pyx_n_u_TA_RSI_OpenAndFill __pyx_string_tab[1936] +#define __pyx_n_u_TA_RSI_Peek __pyx_string_tab[1937] +#define __pyx_n_u_TA_RSI_Update __pyx_string_tab[1938] +#define __pyx_n_u_TA_RSI_Value __pyx_string_tab[1939] +#define __pyx_n_u_TA_RVI __pyx_string_tab[1940] +#define __pyx_n_u_TA_RVI_Clone __pyx_string_tab[1941] +#define __pyx_n_u_TA_RVI_Open __pyx_string_tab[1942] +#define __pyx_n_u_TA_RVI_OpenAndFill __pyx_string_tab[1943] +#define __pyx_n_u_TA_RVI_Peek __pyx_string_tab[1944] +#define __pyx_n_u_TA_RVI_Update __pyx_string_tab[1945] +#define __pyx_n_u_TA_RVI_Value __pyx_string_tab[1946] +#define __pyx_n_u_TA_RVOL __pyx_string_tab[1947] +#define __pyx_n_u_TA_RVOL_Clone __pyx_string_tab[1948] +#define __pyx_n_u_TA_RVOL_Open __pyx_string_tab[1949] +#define __pyx_n_u_TA_RVOL_OpenAndFill __pyx_string_tab[1950] +#define __pyx_n_u_TA_RVOL_Peek __pyx_string_tab[1951] +#define __pyx_n_u_TA_RVOL_Update __pyx_string_tab[1952] +#define __pyx_n_u_TA_RVOL_Value __pyx_string_tab[1953] +#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[1954] +#define __pyx_n_u_TA_SAR __pyx_string_tab[1955] +#define __pyx_n_u_TA_SAREXT __pyx_string_tab[1956] +#define __pyx_n_u_TA_SAREXT_Clone __pyx_string_tab[1957] +#define __pyx_n_u_TA_SAREXT_Open __pyx_string_tab[1958] +#define __pyx_n_u_TA_SAREXT_OpenAndFill __pyx_string_tab[1959] +#define __pyx_n_u_TA_SAREXT_Peek __pyx_string_tab[1960] +#define __pyx_n_u_TA_SAREXT_Update __pyx_string_tab[1961] +#define __pyx_n_u_TA_SAREXT_Value __pyx_string_tab[1962] +#define __pyx_n_u_TA_SAR_Clone __pyx_string_tab[1963] +#define __pyx_n_u_TA_SAR_Open __pyx_string_tab[1964] +#define __pyx_n_u_TA_SAR_OpenAndFill __pyx_string_tab[1965] +#define __pyx_n_u_TA_SAR_Peek __pyx_string_tab[1966] +#define __pyx_n_u_TA_SAR_Update __pyx_string_tab[1967] +#define __pyx_n_u_TA_SAR_Value __pyx_string_tab[1968] +#define __pyx_n_u_TA_SIN __pyx_string_tab[1969] +#define __pyx_n_u_TA_SINH __pyx_string_tab[1970] +#define __pyx_n_u_TA_SINH_Clone __pyx_string_tab[1971] +#define __pyx_n_u_TA_SINH_Open __pyx_string_tab[1972] +#define __pyx_n_u_TA_SINH_OpenAndFill __pyx_string_tab[1973] +#define __pyx_n_u_TA_SINH_Peek __pyx_string_tab[1974] +#define __pyx_n_u_TA_SINH_Update __pyx_string_tab[1975] +#define __pyx_n_u_TA_SINH_Value __pyx_string_tab[1976] +#define __pyx_n_u_TA_SIN_Clone __pyx_string_tab[1977] +#define __pyx_n_u_TA_SIN_Open __pyx_string_tab[1978] +#define __pyx_n_u_TA_SIN_OpenAndFill __pyx_string_tab[1979] +#define __pyx_n_u_TA_SIN_Peek __pyx_string_tab[1980] +#define __pyx_n_u_TA_SIN_Update __pyx_string_tab[1981] +#define __pyx_n_u_TA_SIN_Value __pyx_string_tab[1982] +#define __pyx_n_u_TA_SMA __pyx_string_tab[1983] +#define __pyx_n_u_TA_SMA_Clone __pyx_string_tab[1984] +#define __pyx_n_u_TA_SMA_Open __pyx_string_tab[1985] +#define __pyx_n_u_TA_SMA_OpenAndFill __pyx_string_tab[1986] +#define __pyx_n_u_TA_SMA_Peek __pyx_string_tab[1987] +#define __pyx_n_u_TA_SMA_Update __pyx_string_tab[1988] +#define __pyx_n_u_TA_SMA_Value __pyx_string_tab[1989] +#define __pyx_n_u_TA_SMI __pyx_string_tab[1990] +#define __pyx_n_u_TA_SMI_Clone __pyx_string_tab[1991] +#define __pyx_n_u_TA_SMI_Open __pyx_string_tab[1992] +#define __pyx_n_u_TA_SMI_OpenAndFill __pyx_string_tab[1993] +#define __pyx_n_u_TA_SMI_Peek __pyx_string_tab[1994] +#define __pyx_n_u_TA_SMI_Update __pyx_string_tab[1995] +#define __pyx_n_u_TA_SMI_Value __pyx_string_tab[1996] +#define __pyx_n_u_TA_SQRT __pyx_string_tab[1997] +#define __pyx_n_u_TA_SQRT_Clone __pyx_string_tab[1998] +#define __pyx_n_u_TA_SQRT_Open __pyx_string_tab[1999] +#define __pyx_n_u_TA_SQRT_OpenAndFill __pyx_string_tab[2000] +#define __pyx_n_u_TA_SQRT_Peek __pyx_string_tab[2001] +#define __pyx_n_u_TA_SQRT_Update __pyx_string_tab[2002] +#define __pyx_n_u_TA_SQRT_Value __pyx_string_tab[2003] +#define __pyx_n_u_TA_STDDEV __pyx_string_tab[2004] +#define __pyx_n_u_TA_STDDEV_Clone __pyx_string_tab[2005] +#define __pyx_n_u_TA_STDDEV_Open __pyx_string_tab[2006] +#define __pyx_n_u_TA_STDDEV_OpenAndFill __pyx_string_tab[2007] +#define __pyx_n_u_TA_STDDEV_Peek __pyx_string_tab[2008] +#define __pyx_n_u_TA_STDDEV_Update __pyx_string_tab[2009] +#define __pyx_n_u_TA_STDDEV_Value __pyx_string_tab[2010] +#define __pyx_n_u_TA_STOCH __pyx_string_tab[2011] +#define __pyx_n_u_TA_STOCHF __pyx_string_tab[2012] +#define __pyx_n_u_TA_STOCHF_Clone __pyx_string_tab[2013] +#define __pyx_n_u_TA_STOCHF_Open __pyx_string_tab[2014] +#define __pyx_n_u_TA_STOCHF_OpenAndFill __pyx_string_tab[2015] +#define __pyx_n_u_TA_STOCHF_Peek __pyx_string_tab[2016] +#define __pyx_n_u_TA_STOCHF_Update __pyx_string_tab[2017] +#define __pyx_n_u_TA_STOCHF_Value __pyx_string_tab[2018] +#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[2019] +#define __pyx_n_u_TA_STOCHRSI_Clone __pyx_string_tab[2020] +#define __pyx_n_u_TA_STOCHRSI_Open __pyx_string_tab[2021] +#define __pyx_n_u_TA_STOCHRSI_OpenAndFill __pyx_string_tab[2022] +#define __pyx_n_u_TA_STOCHRSI_Peek __pyx_string_tab[2023] +#define __pyx_n_u_TA_STOCHRSI_Update __pyx_string_tab[2024] +#define __pyx_n_u_TA_STOCHRSI_Value __pyx_string_tab[2025] +#define __pyx_n_u_TA_STOCH_Clone __pyx_string_tab[2026] +#define __pyx_n_u_TA_STOCH_Open __pyx_string_tab[2027] +#define __pyx_n_u_TA_STOCH_OpenAndFill __pyx_string_tab[2028] +#define __pyx_n_u_TA_STOCH_Peek __pyx_string_tab[2029] +#define __pyx_n_u_TA_STOCH_Update __pyx_string_tab[2030] +#define __pyx_n_u_TA_STOCH_Value __pyx_string_tab[2031] +#define __pyx_n_u_TA_SUB __pyx_string_tab[2032] +#define __pyx_n_u_TA_SUB_Clone __pyx_string_tab[2033] +#define __pyx_n_u_TA_SUB_Open __pyx_string_tab[2034] +#define __pyx_n_u_TA_SUB_OpenAndFill __pyx_string_tab[2035] +#define __pyx_n_u_TA_SUB_Peek __pyx_string_tab[2036] +#define __pyx_n_u_TA_SUB_Update __pyx_string_tab[2037] +#define __pyx_n_u_TA_SUB_Value __pyx_string_tab[2038] +#define __pyx_n_u_TA_SUM __pyx_string_tab[2039] +#define __pyx_n_u_TA_SUM_Clone __pyx_string_tab[2040] +#define __pyx_n_u_TA_SUM_Open __pyx_string_tab[2041] +#define __pyx_n_u_TA_SUM_OpenAndFill __pyx_string_tab[2042] +#define __pyx_n_u_TA_SUM_Peek __pyx_string_tab[2043] +#define __pyx_n_u_TA_SUM_Update __pyx_string_tab[2044] +#define __pyx_n_u_TA_SUM_Value __pyx_string_tab[2045] +#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[2046] +#define __pyx_n_u_TA_SUPERTREND_Clone __pyx_string_tab[2047] +#define __pyx_n_u_TA_SUPERTREND_Open __pyx_string_tab[2048] +#define __pyx_n_u_TA_SUPERTREND_OpenAndFill __pyx_string_tab[2049] +#define __pyx_n_u_TA_SUPERTREND_Peek __pyx_string_tab[2050] +#define __pyx_n_u_TA_SUPERTREND_Update __pyx_string_tab[2051] +#define __pyx_n_u_TA_SUPERTREND_Value __pyx_string_tab[2052] +#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[2053] +#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[2054] +#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[2055] +#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[2056] +#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[2057] +#define __pyx_n_u_TA_Shutdown __pyx_string_tab[2058] +#define __pyx_n_u_TA_T3 __pyx_string_tab[2059] +#define __pyx_n_u_TA_T3_Clone __pyx_string_tab[2060] +#define __pyx_n_u_TA_T3_Open __pyx_string_tab[2061] +#define __pyx_n_u_TA_T3_OpenAndFill __pyx_string_tab[2062] +#define __pyx_n_u_TA_T3_Peek __pyx_string_tab[2063] +#define __pyx_n_u_TA_T3_Update __pyx_string_tab[2064] +#define __pyx_n_u_TA_T3_Value __pyx_string_tab[2065] +#define __pyx_n_u_TA_TAN __pyx_string_tab[2066] +#define __pyx_n_u_TA_TANH __pyx_string_tab[2067] +#define __pyx_n_u_TA_TANH_Clone __pyx_string_tab[2068] +#define __pyx_n_u_TA_TANH_Open __pyx_string_tab[2069] +#define __pyx_n_u_TA_TANH_OpenAndFill __pyx_string_tab[2070] +#define __pyx_n_u_TA_TANH_Peek __pyx_string_tab[2071] +#define __pyx_n_u_TA_TANH_Update __pyx_string_tab[2072] +#define __pyx_n_u_TA_TANH_Value __pyx_string_tab[2073] +#define __pyx_n_u_TA_TAN_Clone __pyx_string_tab[2074] +#define __pyx_n_u_TA_TAN_Open __pyx_string_tab[2075] +#define __pyx_n_u_TA_TAN_OpenAndFill __pyx_string_tab[2076] +#define __pyx_n_u_TA_TAN_Peek __pyx_string_tab[2077] +#define __pyx_n_u_TA_TAN_Update __pyx_string_tab[2078] +#define __pyx_n_u_TA_TAN_Value __pyx_string_tab[2079] +#define __pyx_n_u_TA_TEMA __pyx_string_tab[2080] +#define __pyx_n_u_TA_TEMA_Clone __pyx_string_tab[2081] +#define __pyx_n_u_TA_TEMA_Open __pyx_string_tab[2082] +#define __pyx_n_u_TA_TEMA_OpenAndFill __pyx_string_tab[2083] +#define __pyx_n_u_TA_TEMA_Peek __pyx_string_tab[2084] +#define __pyx_n_u_TA_TEMA_Update __pyx_string_tab[2085] +#define __pyx_n_u_TA_TEMA_Value __pyx_string_tab[2086] +#define __pyx_n_u_TA_TRANGE __pyx_string_tab[2087] +#define __pyx_n_u_TA_TRANGE_Clone __pyx_string_tab[2088] +#define __pyx_n_u_TA_TRANGE_Open __pyx_string_tab[2089] +#define __pyx_n_u_TA_TRANGE_OpenAndFill __pyx_string_tab[2090] +#define __pyx_n_u_TA_TRANGE_Peek __pyx_string_tab[2091] +#define __pyx_n_u_TA_TRANGE_Update __pyx_string_tab[2092] +#define __pyx_n_u_TA_TRANGE_Value __pyx_string_tab[2093] +#define __pyx_n_u_TA_TRIMA __pyx_string_tab[2094] +#define __pyx_n_u_TA_TRIMA_Clone __pyx_string_tab[2095] +#define __pyx_n_u_TA_TRIMA_Open __pyx_string_tab[2096] +#define __pyx_n_u_TA_TRIMA_OpenAndFill __pyx_string_tab[2097] +#define __pyx_n_u_TA_TRIMA_Peek __pyx_string_tab[2098] +#define __pyx_n_u_TA_TRIMA_Update __pyx_string_tab[2099] +#define __pyx_n_u_TA_TRIMA_Value __pyx_string_tab[2100] +#define __pyx_n_u_TA_TRIX __pyx_string_tab[2101] +#define __pyx_n_u_TA_TRIX_Clone __pyx_string_tab[2102] +#define __pyx_n_u_TA_TRIX_Open __pyx_string_tab[2103] +#define __pyx_n_u_TA_TRIX_OpenAndFill __pyx_string_tab[2104] +#define __pyx_n_u_TA_TRIX_Peek __pyx_string_tab[2105] +#define __pyx_n_u_TA_TRIX_Update __pyx_string_tab[2106] +#define __pyx_n_u_TA_TRIX_Value __pyx_string_tab[2107] +#define __pyx_n_u_TA_TSF __pyx_string_tab[2108] +#define __pyx_n_u_TA_TSF_Clone __pyx_string_tab[2109] +#define __pyx_n_u_TA_TSF_Open __pyx_string_tab[2110] +#define __pyx_n_u_TA_TSF_OpenAndFill __pyx_string_tab[2111] +#define __pyx_n_u_TA_TSF_Peek __pyx_string_tab[2112] +#define __pyx_n_u_TA_TSF_Update __pyx_string_tab[2113] +#define __pyx_n_u_TA_TSF_Value __pyx_string_tab[2114] +#define __pyx_n_u_TA_TSI __pyx_string_tab[2115] +#define __pyx_n_u_TA_TSI_Clone __pyx_string_tab[2116] +#define __pyx_n_u_TA_TSI_Open __pyx_string_tab[2117] +#define __pyx_n_u_TA_TSI_OpenAndFill __pyx_string_tab[2118] +#define __pyx_n_u_TA_TSI_Peek __pyx_string_tab[2119] +#define __pyx_n_u_TA_TSI_Update __pyx_string_tab[2120] +#define __pyx_n_u_TA_TSI_Value __pyx_string_tab[2121] +#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[2122] +#define __pyx_n_u_TA_TYPPRICE_Clone __pyx_string_tab[2123] +#define __pyx_n_u_TA_TYPPRICE_Open __pyx_string_tab[2124] +#define __pyx_n_u_TA_TYPPRICE_OpenAndFill __pyx_string_tab[2125] +#define __pyx_n_u_TA_TYPPRICE_Peek __pyx_string_tab[2126] +#define __pyx_n_u_TA_TYPPRICE_Update __pyx_string_tab[2127] +#define __pyx_n_u_TA_TYPPRICE_Value __pyx_string_tab[2128] +#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[2129] +#define __pyx_n_u_TA_ULTOSC_Clone __pyx_string_tab[2130] +#define __pyx_n_u_TA_ULTOSC_Open __pyx_string_tab[2131] +#define __pyx_n_u_TA_ULTOSC_OpenAndFill __pyx_string_tab[2132] +#define __pyx_n_u_TA_ULTOSC_Peek __pyx_string_tab[2133] +#define __pyx_n_u_TA_ULTOSC_Update __pyx_string_tab[2134] +#define __pyx_n_u_TA_ULTOSC_Value __pyx_string_tab[2135] +#define __pyx_n_u_TA_VAR __pyx_string_tab[2136] +#define __pyx_n_u_TA_VAR_Clone __pyx_string_tab[2137] +#define __pyx_n_u_TA_VAR_Open __pyx_string_tab[2138] +#define __pyx_n_u_TA_VAR_OpenAndFill __pyx_string_tab[2139] +#define __pyx_n_u_TA_VAR_Peek __pyx_string_tab[2140] +#define __pyx_n_u_TA_VAR_Update __pyx_string_tab[2141] +#define __pyx_n_u_TA_VAR_Value __pyx_string_tab[2142] +#define __pyx_n_u_TA_VHF __pyx_string_tab[2143] +#define __pyx_n_u_TA_VHF_Clone __pyx_string_tab[2144] +#define __pyx_n_u_TA_VHF_Open __pyx_string_tab[2145] +#define __pyx_n_u_TA_VHF_OpenAndFill __pyx_string_tab[2146] +#define __pyx_n_u_TA_VHF_Peek __pyx_string_tab[2147] +#define __pyx_n_u_TA_VHF_Update __pyx_string_tab[2148] +#define __pyx_n_u_TA_VHF_Value __pyx_string_tab[2149] +#define __pyx_n_u_TA_VORTEX __pyx_string_tab[2150] +#define __pyx_n_u_TA_VORTEX_Clone __pyx_string_tab[2151] +#define __pyx_n_u_TA_VORTEX_Open __pyx_string_tab[2152] +#define __pyx_n_u_TA_VORTEX_OpenAndFill __pyx_string_tab[2153] +#define __pyx_n_u_TA_VORTEX_Peek __pyx_string_tab[2154] +#define __pyx_n_u_TA_VORTEX_Update __pyx_string_tab[2155] +#define __pyx_n_u_TA_VORTEX_Value __pyx_string_tab[2156] +#define __pyx_n_u_TA_VWAP __pyx_string_tab[2157] +#define __pyx_n_u_TA_VWAP_Clone __pyx_string_tab[2158] +#define __pyx_n_u_TA_VWAP_Open __pyx_string_tab[2159] +#define __pyx_n_u_TA_VWAP_OpenAndFill __pyx_string_tab[2160] +#define __pyx_n_u_TA_VWAP_Peek __pyx_string_tab[2161] +#define __pyx_n_u_TA_VWAP_Update __pyx_string_tab[2162] +#define __pyx_n_u_TA_VWAP_Value __pyx_string_tab[2163] +#define __pyx_n_u_TA_VWMA __pyx_string_tab[2164] +#define __pyx_n_u_TA_VWMA_Clone __pyx_string_tab[2165] +#define __pyx_n_u_TA_VWMA_Open __pyx_string_tab[2166] +#define __pyx_n_u_TA_VWMA_OpenAndFill __pyx_string_tab[2167] +#define __pyx_n_u_TA_VWMA_Peek __pyx_string_tab[2168] +#define __pyx_n_u_TA_VWMA_Update __pyx_string_tab[2169] +#define __pyx_n_u_TA_VWMA_Value __pyx_string_tab[2170] +#define __pyx_n_u_TA_WAD __pyx_string_tab[2171] +#define __pyx_n_u_TA_WAD_Clone __pyx_string_tab[2172] +#define __pyx_n_u_TA_WAD_Open __pyx_string_tab[2173] +#define __pyx_n_u_TA_WAD_OpenAndFill __pyx_string_tab[2174] +#define __pyx_n_u_TA_WAD_Peek __pyx_string_tab[2175] +#define __pyx_n_u_TA_WAD_Update __pyx_string_tab[2176] +#define __pyx_n_u_TA_WAD_Value __pyx_string_tab[2177] +#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[2178] +#define __pyx_n_u_TA_WCLPRICE_Clone __pyx_string_tab[2179] +#define __pyx_n_u_TA_WCLPRICE_Open __pyx_string_tab[2180] +#define __pyx_n_u_TA_WCLPRICE_OpenAndFill __pyx_string_tab[2181] +#define __pyx_n_u_TA_WCLPRICE_Peek __pyx_string_tab[2182] +#define __pyx_n_u_TA_WCLPRICE_Update __pyx_string_tab[2183] +#define __pyx_n_u_TA_WCLPRICE_Value __pyx_string_tab[2184] +#define __pyx_n_u_TA_WILLR __pyx_string_tab[2185] +#define __pyx_n_u_TA_WILLR_Clone __pyx_string_tab[2186] +#define __pyx_n_u_TA_WILLR_Open __pyx_string_tab[2187] +#define __pyx_n_u_TA_WILLR_OpenAndFill __pyx_string_tab[2188] +#define __pyx_n_u_TA_WILLR_Peek __pyx_string_tab[2189] +#define __pyx_n_u_TA_WILLR_Update __pyx_string_tab[2190] +#define __pyx_n_u_TA_WILLR_Value __pyx_string_tab[2191] +#define __pyx_n_u_TA_WMA __pyx_string_tab[2192] +#define __pyx_n_u_TA_WMA_Clone __pyx_string_tab[2193] +#define __pyx_n_u_TA_WMA_Open __pyx_string_tab[2194] +#define __pyx_n_u_TA_WMA_OpenAndFill __pyx_string_tab[2195] +#define __pyx_n_u_TA_WMA_Peek __pyx_string_tab[2196] +#define __pyx_n_u_TA_WMA_Update __pyx_string_tab[2197] +#define __pyx_n_u_TA_WMA_Value __pyx_string_tab[2198] +#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[2199] +#define __pyx_n_u_TA_ZLEMA_Clone __pyx_string_tab[2200] +#define __pyx_n_u_TA_ZLEMA_Open __pyx_string_tab[2201] +#define __pyx_n_u_TA_ZLEMA_OpenAndFill __pyx_string_tab[2202] +#define __pyx_n_u_TA_ZLEMA_Peek __pyx_string_tab[2203] +#define __pyx_n_u_TA_ZLEMA_Update __pyx_string_tab[2204] +#define __pyx_n_u_TA_ZLEMA_Value __pyx_string_tab[2205] +#define __pyx_n_u_TEMA __pyx_string_tab[2206] +#define __pyx_n_u_TEMA_Stream __pyx_string_tab[2207] +#define __pyx_n_u_TEMA_Stream_open_and_fill __pyx_string_tab[2208] +#define __pyx_n_u_TRANGE __pyx_string_tab[2209] +#define __pyx_n_u_TRANGE_Stream __pyx_string_tab[2210] +#define __pyx_n_u_TRANGE_Stream_open_and_fill __pyx_string_tab[2211] +#define __pyx_n_u_TRIMA __pyx_string_tab[2212] +#define __pyx_n_u_TRIMA_Stream __pyx_string_tab[2213] +#define __pyx_n_u_TRIMA_Stream_open_and_fill __pyx_string_tab[2214] +#define __pyx_n_u_TRIX __pyx_string_tab[2215] +#define __pyx_n_u_TRIX_Stream __pyx_string_tab[2216] +#define __pyx_n_u_TRIX_Stream_open_and_fill __pyx_string_tab[2217] +#define __pyx_n_u_TSF __pyx_string_tab[2218] +#define __pyx_n_u_TSF_Stream __pyx_string_tab[2219] +#define __pyx_n_u_TSF_Stream_open_and_fill __pyx_string_tab[2220] +#define __pyx_n_u_TSI __pyx_string_tab[2221] +#define __pyx_n_u_TSI_Stream __pyx_string_tab[2222] +#define __pyx_n_u_TSI_Stream_open_and_fill __pyx_string_tab[2223] +#define __pyx_n_u_TYPPRICE __pyx_string_tab[2224] +#define __pyx_n_u_TYPPRICE_Stream __pyx_string_tab[2225] +#define __pyx_n_u_TYPPRICE_Stream_open_and_fill __pyx_string_tab[2226] +#define __pyx_n_u_ULTOSC __pyx_string_tab[2227] +#define __pyx_n_u_ULTOSC_Stream __pyx_string_tab[2228] +#define __pyx_n_u_ULTOSC_Stream_open_and_fill __pyx_string_tab[2229] +#define __pyx_n_u_VAR __pyx_string_tab[2230] +#define __pyx_n_u_VAR_Stream __pyx_string_tab[2231] +#define __pyx_n_u_VAR_Stream_open_and_fill __pyx_string_tab[2232] +#define __pyx_n_u_VHF __pyx_string_tab[2233] +#define __pyx_n_u_VHF_Stream __pyx_string_tab[2234] +#define __pyx_n_u_VHF_Stream_open_and_fill __pyx_string_tab[2235] +#define __pyx_n_u_VORTEX __pyx_string_tab[2236] +#define __pyx_n_u_VORTEX_Stream __pyx_string_tab[2237] +#define __pyx_n_u_VORTEX_Stream_open_and_fill __pyx_string_tab[2238] +#define __pyx_n_u_VORTEX_Value __pyx_string_tab[2239] +#define __pyx_n_u_VWAP __pyx_string_tab[2240] +#define __pyx_n_u_VWAP_Stream __pyx_string_tab[2241] +#define __pyx_n_u_VWAP_Stream_open_and_fill __pyx_string_tab[2242] +#define __pyx_n_u_VWMA __pyx_string_tab[2243] +#define __pyx_n_u_VWMA_Stream __pyx_string_tab[2244] +#define __pyx_n_u_VWMA_Stream_open_and_fill __pyx_string_tab[2245] +#define __pyx_n_u_WAD __pyx_string_tab[2246] +#define __pyx_n_u_WAD_Stream __pyx_string_tab[2247] +#define __pyx_n_u_WAD_Stream_open_and_fill __pyx_string_tab[2248] +#define __pyx_n_u_WCLPRICE __pyx_string_tab[2249] +#define __pyx_n_u_WCLPRICE_Stream __pyx_string_tab[2250] +#define __pyx_n_u_WCLPRICE_Stream_open_and_fill __pyx_string_tab[2251] +#define __pyx_n_u_WILLR __pyx_string_tab[2252] +#define __pyx_n_u_WILLR_Stream __pyx_string_tab[2253] +#define __pyx_n_u_WILLR_Stream_open_and_fill __pyx_string_tab[2254] +#define __pyx_n_u_WMA __pyx_string_tab[2255] +#define __pyx_n_u_WMA_Stream __pyx_string_tab[2256] +#define __pyx_n_u_WMA_Stream_open_and_fill __pyx_string_tab[2257] +#define __pyx_n_u_ZLEMA __pyx_string_tab[2258] +#define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2259] +#define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2260] +#define __pyx_n_u_Function__call_function __pyx_string_tab[2261] +#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2262] +#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2263] +#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2264] +#define __pyx_n_u_Function__local __pyx_string_tab[2265] +#define __pyx_n_u_Function__localdata __pyx_string_tab[2266] +#define __pyx_n_u_Function__name __pyx_string_tab[2267] +#define __pyx_n_u_Function__namestr __pyx_string_tab[2268] +#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2269] +#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2270] +#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2271] +#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2272] +#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[2273] +#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[2274] +#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[2275] +#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[2276] +#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[2277] +#define __pyx_n_u_all __pyx_string_tab[2278] +#define __pyx_n_u_annotate __pyx_string_tab[2279] +#define __pyx_n_u_call __pyx_string_tab[2280] +#define __pyx_n_u_call_function __pyx_string_tab[2281] +#define __pyx_n_u_check_opt_input_value __pyx_string_tab[2282] +#define __pyx_n_u_class_getitem __pyx_string_tab[2283] +#define __pyx_n_u_copy_2 __pyx_string_tab[2284] +#define __pyx_n_u_deepcopy __pyx_string_tab[2285] +#define __pyx_n_u_dict __pyx_string_tab[2286] +#define __pyx_n_u_doc __pyx_string_tab[2287] +#define __pyx_n_u_func __pyx_string_tab[2288] +#define __pyx_n_u_get_flags __pyx_string_tab[2289] +#define __pyx_n_u_get_opt_input_value __pyx_string_tab[2290] +#define __pyx_n_u_getitem __pyx_string_tab[2291] +#define __pyx_n_u_init __pyx_string_tab[2292] +#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[2293] +#define __pyx_n_u_local_2 __pyx_string_tab[2294] +#define __pyx_n_u_main __pyx_string_tab[2295] +#define __pyx_n_u_metaclass __pyx_string_tab[2296] +#define __pyx_n_u_module __pyx_string_tab[2297] +#define __pyx_n_u_mro_entries __pyx_string_tab[2298] +#define __pyx_n_u_name_2 __pyx_string_tab[2299] +#define __pyx_n_u_new __pyx_string_tab[2300] +#define __pyx_n_u_prepare __pyx_string_tab[2301] +#define __pyx_n_u_pyx_vtable __pyx_string_tab[2302] +#define __pyx_n_u_qualname __pyx_string_tab[2303] +#define __pyx_n_u_reduce __pyx_string_tab[2304] +#define __pyx_n_u_repr __pyx_string_tab[2305] +#define __pyx_n_u_set_name __pyx_string_tab[2306] +#define __pyx_n_u_str __pyx_string_tab[2307] +#define __pyx_n_u_ta_version __pyx_string_tab[2308] +#define __pyx_n_u_test __pyx_string_tab[2309] +#define __pyx_n_u_unicode __pyx_string_tab[2310] +#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[2311] +#define __pyx_n_u_is_coroutine __pyx_string_tab[2312] +#define __pyx_n_u_lookup __pyx_string_tab[2313] +#define __pyx_n_u_ta_check_success __pyx_string_tab[2314] +#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[2315] +#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[2316] +#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[2317] +#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[2318] +#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[2319] +#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[2320] +#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[2321] +#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[2322] +#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[2323] +#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[2324] +#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[2325] +#define __pyx_n_u_ta_initialize __pyx_string_tab[2326] +#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[2327] +#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[2328] +#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[2329] +#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[2330] +#define __pyx_n_u_ta_shutdown __pyx_string_tab[2331] +#define __pyx_n_u_a_close __pyx_string_tab[2332] +#define __pyx_n_u_a_high __pyx_string_tab[2333] +#define __pyx_n_u_a_low __pyx_string_tab[2334] +#define __pyx_n_u_a_open __pyx_string_tab[2335] +#define __pyx_n_u_a_periods __pyx_string_tab[2336] +#define __pyx_n_u_a_real __pyx_string_tab[2337] +#define __pyx_n_u_a_real0 __pyx_string_tab[2338] +#define __pyx_n_u_a_real1 __pyx_string_tab[2339] +#define __pyx_n_u_a_volume __pyx_string_tab[2340] +#define __pyx_n_u_acceleration __pyx_string_tab[2341] +#define __pyx_n_u_accelerationinitlong __pyx_string_tab[2342] +#define __pyx_n_u_accelerationinitshort __pyx_string_tab[2343] +#define __pyx_n_u_accelerationlong __pyx_string_tab[2344] +#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[2345] +#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[2346] +#define __pyx_n_u_accelerationshort __pyx_string_tab[2347] +#define __pyx_n_u_append __pyx_string_tab[2348] +#define __pyx_n_u_arg __pyx_string_tab[2349] +#define __pyx_n_u_args __pyx_string_tab[2350] +#define __pyx_n_u_arrays __pyx_string_tab[2351] +#define __pyx_n_u_ascii __pyx_string_tab[2352] +#define __pyx_n_u_astype __pyx_string_tab[2353] +#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[2354] +#define __pyx_n_u_atrperiod __pyx_string_tab[2355] +#define __pyx_n_u_avgperiod __pyx_string_tab[2356] +#define __pyx_n_u_b __pyx_string_tab[2357] +#define __pyx_n_u_begidx __pyx_string_tab[2358] +#define __pyx_n_u_bit __pyx_string_tab[2359] +#define __pyx_n_u_bytes2str __pyx_string_tab[2360] +#define __pyx_n_u_candlestick __pyx_string_tab[2361] +#define __pyx_n_u_cline_in_traceback __pyx_string_tab[2362] +#define __pyx_n_u_clone __pyx_string_tab[2363] +#define __pyx_n_u_close __pyx_string_tab[2364] +#define __pyx_n_u_collections __pyx_string_tab[2365] +#define __pyx_n_u_column_stack __pyx_string_tab[2366] +#define __pyx_n_u_columns __pyx_string_tab[2367] +#define __pyx_n_u_copy __pyx_string_tab[2368] +#define __pyx_n_u_d __pyx_string_tab[2369] +#define __pyx_n_u_decode __pyx_string_tab[2370] +#define __pyx_n_u_default_value __pyx_string_tab[2371] +#define __pyx_n_u_defaults __pyx_string_tab[2372] +#define __pyx_n_u_description __pyx_string_tab[2373] +#define __pyx_n_u_display_name __pyx_string_tab[2374] +#define __pyx_n_u_docs __pyx_string_tab[2375] +#define __pyx_n_u_documentation __pyx_string_tab[2376] +#define __pyx_n_u_empty __pyx_string_tab[2377] +#define __pyx_n_u_endidx __pyx_string_tab[2378] +#define __pyx_n_u_endswith __pyx_string_tab[2379] +#define __pyx_n_u_enumerate __pyx_string_tab[2380] +#define __pyx_n_u_factor __pyx_string_tab[2381] +#define __pyx_n_u_fastd_matype __pyx_string_tab[2382] +#define __pyx_n_u_fastd_period __pyx_string_tab[2383] +#define __pyx_n_u_fastk_period __pyx_string_tab[2384] +#define __pyx_n_u_fastlimit __pyx_string_tab[2385] +#define __pyx_n_u_fastmatype __pyx_string_tab[2386] +#define __pyx_n_u_fastperiod __pyx_string_tab[2387] +#define __pyx_n_u_firstperiod __pyx_string_tab[2388] +#define __pyx_n_u_flag __pyx_string_tab[2389] +#define __pyx_n_u_flags __pyx_string_tab[2390] +#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[2391] +#define __pyx_n_u_func_args __pyx_string_tab[2392] +#define __pyx_n_u_func_info __pyx_string_tab[2393] +#define __pyx_n_u_func_line __pyx_string_tab[2394] +#define __pyx_n_u_func_object __pyx_string_tab[2395] +#define __pyx_n_u_function_flags __pyx_string_tab[2396] +#define __pyx_n_u_function_name __pyx_string_tab[2397] +#define __pyx_n_u_functions __pyx_string_tab[2398] +#define __pyx_n_u_get_input_arrays __pyx_string_tab[2399] +#define __pyx_n_u_get_input_names __pyx_string_tab[2400] +#define __pyx_n_u_get_parameters __pyx_string_tab[2401] +#define __pyx_n_u_group __pyx_string_tab[2402] +#define __pyx_n_u_groups __pyx_string_tab[2403] +#define __pyx_n_u_handle __pyx_string_tab[2404] +#define __pyx_n_u_help __pyx_string_tab[2405] +#define __pyx_n_u_high __pyx_string_tab[2406] +#define __pyx_n_u_historylen __pyx_string_tab[2407] +#define __pyx_n_u_holder __pyx_string_tab[2408] +#define __pyx_n_u_i __pyx_string_tab[2409] +#define __pyx_n_u_id __pyx_string_tab[2410] +#define __pyx_n_u_idx __pyx_string_tab[2411] +#define __pyx_n_u_import_error __pyx_string_tab[2412] +#define __pyx_n_u_in __pyx_string_tab[2413] +#define __pyx_n_u_index __pyx_string_tab[2414] +#define __pyx_n_u_info __pyx_string_tab[2415] +#define __pyx_n_u_input_arrays __pyx_string_tab[2416] +#define __pyx_n_u_input_name __pyx_string_tab[2417] +#define __pyx_n_u_input_names __pyx_string_tab[2418] +#define __pyx_n_u_input_price_series_names __pyx_string_tab[2419] +#define __pyx_n_u_integer __pyx_string_tab[2420] +#define __pyx_n_u_is_empty __pyx_string_tab[2421] +#define __pyx_n_u_items __pyx_string_tab[2422] +#define __pyx_n_u_key __pyx_string_tab[2423] +#define __pyx_n_u_keys __pyx_string_tab[2424] +#define __pyx_n_u_kwargs __pyx_string_tab[2425] +#define __pyx_n_u_leftbars __pyx_string_tab[2426] +#define __pyx_n_u_length __pyx_string_tab[2427] +#define __pyx_n_u_local __pyx_string_tab[2428] +#define __pyx_n_u_lookback __pyx_string_tab[2429] +#define __pyx_n_u_low __pyx_string_tab[2430] +#define __pyx_n_u_lower __pyx_string_tab[2431] +#define __pyx_n_u_matype __pyx_string_tab[2432] +#define __pyx_n_u_maximum __pyx_string_tab[2433] +#define __pyx_n_u_maxperiod __pyx_string_tab[2434] +#define __pyx_n_u_memo __pyx_string_tab[2435] +#define __pyx_n_u_minperiod __pyx_string_tab[2436] +#define __pyx_n_u_missing __pyx_string_tab[2437] +#define __pyx_n_u_missing_keys __pyx_string_tab[2438] +#define __pyx_n_u_module_2 __pyx_string_tab[2439] +#define __pyx_n_u_msg __pyx_string_tab[2440] +#define __pyx_n_u_multiplier __pyx_string_tab[2441] +#define __pyx_n_u_n __pyx_string_tab[2442] +#define __pyx_n_u_name __pyx_string_tab[2443] +#define __pyx_n_u_namedtuple __pyx_string_tab[2444] +#define __pyx_n_u_nan __pyx_string_tab[2445] +#define __pyx_n_u_nbdev __pyx_string_tab[2446] +#define __pyx_n_u_nbdevdn __pyx_string_tab[2447] +#define __pyx_n_u_nbdevup __pyx_string_tab[2448] +#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[2449] +#define __pyx_n_u_num_inputs __pyx_string_tab[2450] +#define __pyx_n_u_num_opt_inputs __pyx_string_tab[2451] +#define __pyx_n_u_num_outputs __pyx_string_tab[2452] +#define __pyx_n_u_numpy __pyx_string_tab[2453] +#define __pyx_n_u_object __pyx_string_tab[2454] +#define __pyx_n_u_offsetonreverse __pyx_string_tab[2455] +#define __pyx_n_u_open __pyx_string_tab[2456] +#define __pyx_n_u_openInterest __pyx_string_tab[2457] +#define __pyx_n_u_open_and_fill __pyx_string_tab[2458] +#define __pyx_n_u_optIn __pyx_string_tab[2459] +#define __pyx_n_u_opt_input __pyx_string_tab[2460] +#define __pyx_n_u_opt_input_values __pyx_string_tab[2461] +#define __pyx_n_u_opt_inputs __pyx_string_tab[2462] +#define __pyx_n_u_ordereddict __pyx_string_tab[2463] +#define __pyx_n_u_out __pyx_string_tab[2464] +#define __pyx_n_u_outaroondown __pyx_string_tab[2465] +#define __pyx_n_u_outaroonup __pyx_string_tab[2466] +#define __pyx_n_u_outbearpower __pyx_string_tab[2467] +#define __pyx_n_u_outbegidx __pyx_string_tab[2468] +#define __pyx_n_u_outbullpower __pyx_string_tab[2469] +#define __pyx_n_u_outd __pyx_string_tab[2470] +#define __pyx_n_u_outfama __pyx_string_tab[2471] +#define __pyx_n_u_outfastd __pyx_string_tab[2472] +#define __pyx_n_u_outfastk __pyx_string_tab[2473] +#define __pyx_n_u_outhaclose __pyx_string_tab[2474] +#define __pyx_n_u_outhahigh __pyx_string_tab[2475] +#define __pyx_n_u_outhalow __pyx_string_tab[2476] +#define __pyx_n_u_outhaopen __pyx_string_tab[2477] +#define __pyx_n_u_outinphase __pyx_string_tab[2478] +#define __pyx_n_u_outinteger __pyx_string_tab[2479] +#define __pyx_n_u_outinteger_data __pyx_string_tab[2480] +#define __pyx_n_u_outj __pyx_string_tab[2481] +#define __pyx_n_u_outk __pyx_string_tab[2482] +#define __pyx_n_u_outleadsine __pyx_string_tab[2483] +#define __pyx_n_u_outlowerband __pyx_string_tab[2484] +#define __pyx_n_u_outmacd __pyx_string_tab[2485] +#define __pyx_n_u_outmacdhist __pyx_string_tab[2486] +#define __pyx_n_u_outmacdsignal __pyx_string_tab[2487] +#define __pyx_n_u_outmama __pyx_string_tab[2488] +#define __pyx_n_u_outmax __pyx_string_tab[2489] +#define __pyx_n_u_outmaxidx __pyx_string_tab[2490] +#define __pyx_n_u_outmaxidx_data __pyx_string_tab[2491] +#define __pyx_n_u_outmiddleband __pyx_string_tab[2492] +#define __pyx_n_u_outmin __pyx_string_tab[2493] +#define __pyx_n_u_outminidx __pyx_string_tab[2494] +#define __pyx_n_u_outminidx_data __pyx_string_tab[2495] +#define __pyx_n_u_outminusvi __pyx_string_tab[2496] +#define __pyx_n_u_outnbelement __pyx_string_tab[2497] +#define __pyx_n_u_outplusvi __pyx_string_tab[2498] +#define __pyx_n_u_output __pyx_string_tab[2499] +#define __pyx_n_u_output_flags __pyx_string_tab[2500] +#define __pyx_n_u_output_name __pyx_string_tab[2501] +#define __pyx_n_u_output_names __pyx_string_tab[2502] +#define __pyx_n_u_outputs __pyx_string_tab[2503] +#define __pyx_n_u_outputs_valid __pyx_string_tab[2504] +#define __pyx_n_u_outquadrature __pyx_string_tab[2505] +#define __pyx_n_u_outreal __pyx_string_tab[2506] +#define __pyx_n_u_outreallowerband __pyx_string_tab[2507] +#define __pyx_n_u_outrealmiddleband __pyx_string_tab[2508] +#define __pyx_n_u_outrealupperband __pyx_string_tab[2509] +#define __pyx_n_u_outsine __pyx_string_tab[2510] +#define __pyx_n_u_outslowd __pyx_string_tab[2511] +#define __pyx_n_u_outslowk __pyx_string_tab[2512] +#define __pyx_n_u_outsmi __pyx_string_tab[2513] +#define __pyx_n_u_outsmisignal __pyx_string_tab[2514] +#define __pyx_n_u_outswinghigh __pyx_string_tab[2515] +#define __pyx_n_u_outswinglow __pyx_string_tab[2516] +#define __pyx_n_u_outupperband __pyx_string_tab[2517] +#define __pyx_n_u_pandas __pyx_string_tab[2518] +#define __pyx_n_u_param __pyx_string_tab[2519] +#define __pyx_n_u_param_name __pyx_string_tab[2520] +#define __pyx_n_u_parameters __pyx_string_tab[2521] +#define __pyx_n_u_params __pyx_string_tab[2522] +#define __pyx_n_u_penetration __pyx_string_tab[2523] +#define __pyx_n_u_percentile __pyx_string_tab[2524] +#define __pyx_n_u_period __pyx_string_tab[2525] +#define __pyx_n_u_periods __pyx_string_tab[2526] +#define __pyx_n_u_polars __pyx_string_tab[2527] +#define __pyx_n_u_pop __pyx_string_tab[2528] +#define __pyx_n_u_price __pyx_string_tab[2529] +#define __pyx_n_u_price0 __pyx_string_tab[2530] +#define __pyx_n_u_price1 __pyx_string_tab[2531] +#define __pyx_n_u_price_series __pyx_string_tab[2532] +#define __pyx_n_u_price_series_name_values __pyx_string_tab[2533] +#define __pyx_n_u_prices __pyx_string_tab[2534] +#define __pyx_n_u_property __pyx_string_tab[2535] +#define __pyx_n_u_rangetype __pyx_string_tab[2536] +#define __pyx_n_u_real __pyx_string_tab[2537] +#define __pyx_n_u_real0 __pyx_string_tab[2538] +#define __pyx_n_u_real1 __pyx_string_tab[2539] +#define __pyx_n_u_replace __pyx_string_tab[2540] +#define __pyx_n_u_results __pyx_string_tab[2541] +#define __pyx_n_u_ret __pyx_string_tab[2542] +#define __pyx_n_u_retCode __pyx_string_tab[2543] +#define __pyx_n_u_ret_code __pyx_string_tab[2544] +#define __pyx_n_u_rightbars __pyx_string_tab[2545] +#define __pyx_n_u_roc1period __pyx_string_tab[2546] +#define __pyx_n_u_roc2period __pyx_string_tab[2547] +#define __pyx_n_u_rocperiod __pyx_string_tab[2548] +#define __pyx_n_u_run __pyx_string_tab[2549] +#define __pyx_n_u_s __pyx_string_tab[2550] +#define __pyx_n_u_schema __pyx_string_tab[2551] +#define __pyx_n_u_secondperiod __pyx_string_tab[2552] +#define __pyx_n_u_self __pyx_string_tab[2553] +#define __pyx_n_u_series __pyx_string_tab[2554] +#define __pyx_n_u_set_function_args __pyx_string_tab[2555] +#define __pyx_n_u_set_input_arrays __pyx_string_tab[2556] +#define __pyx_n_u_set_input_names __pyx_string_tab[2557] +#define __pyx_n_u_set_parameters __pyx_string_tab[2558] +#define __pyx_n_u_setdefault __pyx_string_tab[2559] +#define __pyx_n_u_settingtype __pyx_string_tab[2560] +#define __pyx_n_u_signalmatype __pyx_string_tab[2561] +#define __pyx_n_u_signalperiod __pyx_string_tab[2562] +#define __pyx_n_u_skip_first __pyx_string_tab[2563] +#define __pyx_n_u_slowd_matype __pyx_string_tab[2564] +#define __pyx_n_u_slowd_period __pyx_string_tab[2565] +#define __pyx_n_u_slowk_matype __pyx_string_tab[2566] +#define __pyx_n_u_slowk_period __pyx_string_tab[2567] +#define __pyx_n_u_slowlimit __pyx_string_tab[2568] +#define __pyx_n_u_slowmatype __pyx_string_tab[2569] +#define __pyx_n_u_slowperiod __pyx_string_tab[2570] +#define __pyx_n_u_stacklevel __pyx_string_tab[2571] +#define __pyx_n_u_startvalue __pyx_string_tab[2572] +#define __pyx_n_u_staticmethod __pyx_string_tab[2573] +#define __pyx_n_u_stddevperiod __pyx_string_tab[2574] +#define __pyx_n_u_str2bytes __pyx_string_tab[2575] +#define __pyx_n_u_stream __pyx_string_tab[2576] +#define __pyx_n_u_sys __pyx_string_tab[2577] +#define __pyx_n_u_table __pyx_string_tab[2578] +#define __pyx_n_u_talib__ta_lib __pyx_string_tab[2579] +#define __pyx_n_u_threading __pyx_string_tab[2580] +#define __pyx_n_u_timeStamp __pyx_string_tab[2581] +#define __pyx_n_u_timeperiod __pyx_string_tab[2582] +#define __pyx_n_u_timeperiod1 __pyx_string_tab[2583] +#define __pyx_n_u_timeperiod2 __pyx_string_tab[2584] +#define __pyx_n_u_timeperiod3 __pyx_string_tab[2585] +#define __pyx_n_u_to_numpy __pyx_string_tab[2586] +#define __pyx_n_u_type_2 __pyx_string_tab[2587] +#define __pyx_n_u_type __pyx_string_tab[2588] +#define __pyx_n_u_unst_id __pyx_string_tab[2589] +#define __pyx_n_u_update __pyx_string_tab[2590] +#define __pyx_n_u_update_info __pyx_string_tab[2591] +#define __pyx_n_u_upper __pyx_string_tab[2592] +#define __pyx_n_u_value __pyx_string_tab[2593] +#define __pyx_n_u_values __pyx_string_tab[2594] +#define __pyx_n_u_version __pyx_string_tab[2595] +#define __pyx_n_u_vfactor __pyx_string_tab[2596] +#define __pyx_n_u_volume __pyx_string_tab[2597] +#define __pyx_n_u_warn __pyx_string_tab[2598] +#define __pyx_n_u_warnings __pyx_string_tab[2599] +#define __pyx_n_u_wmaperiod __pyx_string_tab[2600] +#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[2601] +#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[2602] +#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[2603] +#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[2604] +#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[2605] +#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[2606] +#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[2607] +#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[2608] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[2609] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[2610] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[2611] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[2612] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[2613] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[2614] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[2615] +#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[2616] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[2617] +#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[2618] +#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[2619] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[2620] +#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[2621] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[2622] +#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[2623] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[2624] +#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[2625] +#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[2626] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[2627] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[2628] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[2629] +#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[2630] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[2631] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[2632] +#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[2633] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[2634] +#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[2635] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[2636] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[2637] +#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[2638] +#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[2639] +#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[2640] +#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[2641] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[2642] +#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[2643] +#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[2644] +#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[2645] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[2646] +#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[2647] +#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2648] +#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[2649] +#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[2650] +#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[2651] +#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[2652] +#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[2653] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[2654] +#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[2655] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[2656] +#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[2657] +#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[2658] +#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[2659] +#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[2660] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2661] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2662] +#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[2663] +#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[2664] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[2665] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[2666] +#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[2667] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[2668] +#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2669] +#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2670] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[2671] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2672] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2673] +#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[2674] +#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[2675] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[2676] +#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2677] +#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2678] +#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2679] +#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2680] +#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[2681] +#define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[2682] +#define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[2683] +#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[2684] +#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[2685] +#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[2686] +#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[2687] +#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[2688] +#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2689] +#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2690] +#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2691] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[2692] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[2693] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[2694] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[2695] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[2696] +#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[2697] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[2698] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[2699] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[2700] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[2701] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[2702] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[2703] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[2704] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[2705] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[2706] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[2707] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[2708] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[2709] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[2710] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[2711] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[2712] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[2713] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[2714] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[2715] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[2716] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[2717] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[2718] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[2719] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[2720] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[2721] +#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[2722] +#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[2723] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[2724] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[2725] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[2726] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[2727] +#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[2728] +#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2729] +#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2730] +#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2731] +#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[2732] +#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[2733] +#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[2734] +#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[2735] +#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[2736] +#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2737] +#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2738] +#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2739] +#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[2740] +#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2741] +#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU __pyx_string_tab[2742] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3 __pyx_string_tab[2743] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2744] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2 __pyx_string_tab[2745] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6 __pyx_string_tab[2746] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_2_81_2 __pyx_string_tab[2747] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_31HA_7q __pyx_string_tab[2748] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_8 __pyx_string_tab[2749] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_31HA_9 __pyx_string_tab[2750] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8 __pyx_string_tab[2751] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_aq_31HA_1 __pyx_string_tab[2752] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh_2 __pyx_string_tab[2753] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_N_81_N_81 __pyx_string_tab[2754] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2 __pyx_string_tab[2755] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_H_31HA_6Q __pyx_string_tab[2756] +#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2757] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_Q_31HA_Q __pyx_string_tab[2758] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1L_31HA_7q __pyx_string_tab[2759] +#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2760] +#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[2761] +#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR __pyx_string_tab[2762] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_G5_1L __pyx_string_tab[2763] +#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_G5_9_lRS_3 __pyx_string_tab[2764] +#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_G5_8_Q_31H __pyx_string_tab[2765] +#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_G5_Ql __pyx_string_tab[2766] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_q_A_31H __pyx_string_tab[2767] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_8_a_31H __pyx_string_tab[2768] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_9 __pyx_string_tab[2769] +#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_G5_9_31HA_a_5Qax __pyx_string_tab[2770] +#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_G5_8_QR_31 __pyx_string_tab[2771] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_9_Q_31H __pyx_string_tab[2772] +#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_G5_AZq __pyx_string_tab[2773] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_8_31 __pyx_string_tab[2774] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_1_8 __pyx_string_tab[2775] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_AQ_3 __pyx_string_tab[2776] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3 __pyx_string_tab[2777] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_8 __pyx_string_tab[2778] +#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_G5_8_Q __pyx_string_tab[2779] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_A __pyx_string_tab[2780] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_3 __pyx_string_tab[2781] +#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_G5_q __pyx_string_tab[2782] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_8_31H __pyx_string_tab[2783] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_1A_31 __pyx_string_tab[2784] +#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2785] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2786] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_1A_31H __pyx_string_tab[2787] +#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_G5_9_PQ __pyx_string_tab[2788] +#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[2789] +#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2790] +#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_G5_8_q __pyx_string_tab[2791] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_q __pyx_string_tab[2792] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8 __pyx_string_tab[2793] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8_2 __pyx_string_tab[2794] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9 __pyx_string_tab[2795] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1_2 __pyx_string_tab[2796] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1 __pyx_string_tab[2797] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_A __pyx_string_tab[2798] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_2 __pyx_string_tab[2799] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q __pyx_string_tab[2800] +#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2801] +#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_G __pyx_string_tab[2802] +#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5 __pyx_string_tab[2803] +#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2804] +#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2805] +#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[2806] +#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[2807] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8 __pyx_string_tab[2808] +#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_G __pyx_string_tab[2809] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[2810] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[2811] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[2812] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2813] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2814] +#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[2815] +#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[2816] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3_2 __pyx_string_tab[2817] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2 __pyx_string_tab[2818] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5 __pyx_string_tab[2819] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq __pyx_string_tab[2820] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_7q __pyx_string_tab[2821] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_7q __pyx_string_tab[2822] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_a_6axq_9_1 __pyx_string_tab[2823] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_1 __pyx_string_tab[2824] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh __pyx_string_tab[2825] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_a_Q __pyx_string_tab[2826] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_1HA_a_Qa __pyx_string_tab[2827] +#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_G5_Q_31HA __pyx_string_tab[2828] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_8_3 __pyx_string_tab[2829] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_1_3 __pyx_string_tab[2830] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3 __pyx_string_tab[2831] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_q __pyx_string_tab[2832] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_9 __pyx_string_tab[2833] +#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_G5_Q_31H __pyx_string_tab[2834] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_15 __pyx_string_tab[2835] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_2 __pyx_string_tab[2836] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_13 __pyx_string_tab[2837] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5 __pyx_string_tab[2838] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3 __pyx_string_tab[2839] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5 __pyx_string_tab[2840] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6 __pyx_string_tab[2841] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10 __pyx_string_tab[2842] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14 __pyx_string_tab[2843] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4 __pyx_string_tab[2844] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9 __pyx_string_tab[2845] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7 __pyx_string_tab[2846] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8 __pyx_string_tab[2847] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11 __pyx_string_tab[2848] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12 __pyx_string_tab[2849] +#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2850] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2851] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a __pyx_string_tab[2852] +#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2853] +#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[2854] +#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2855] +#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2856] +#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2857] +#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[2858] +#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[2859] +#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[2860] +#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[2861] +#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2862] +#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2863] +#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2864] +#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[2865] +#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2866] +#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[2867] +#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2868] +#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[2869] +#define __pyx_float_0_2 __pyx_number_tab[0] +#define __pyx_float_0_3 __pyx_number_tab[1] +#define __pyx_float_0_5 __pyx_number_tab[2] +#define __pyx_float_3_0 __pyx_number_tab[3] +#define __pyx_float_0_02 __pyx_number_tab[4] +#define __pyx_float_neg_4e37 __pyx_number_tab[5] +#define __pyx_float_50_0 __pyx_number_tab[6] +#define __pyx_int_0 __pyx_number_tab[7] +#define __pyx_int_neg_1 __pyx_number_tab[8] +#define __pyx_int_1 __pyx_number_tab[9] +#define __pyx_int_2 __pyx_number_tab[10] +#define __pyx_int_3 __pyx_number_tab[11] +#define __pyx_int_4 __pyx_number_tab[12] +#define __pyx_int_8 __pyx_number_tab[13] +#define __pyx_int_12 __pyx_number_tab[14] +#define __pyx_int_13 __pyx_number_tab[15] +#define __pyx_int_14 __pyx_number_tab[16] +#define __pyx_int_16 __pyx_number_tab[17] +#define __pyx_int_32 __pyx_number_tab[18] +#define __pyx_int_64 __pyx_number_tab[19] +#define __pyx_int_128 __pyx_number_tab[20] +#define __pyx_int_256 __pyx_number_tab[21] +#define __pyx_int_512 __pyx_number_tab[22] +#define __pyx_int_1024 __pyx_number_tab[23] +#define __pyx_int_2048 __pyx_number_tab[24] +#define __pyx_int_4096 __pyx_number_tab[25] +#define __pyx_int_8192 __pyx_number_tab[26] +#define __pyx_int_16777216 __pyx_number_tab[27] +#define __pyx_int_33554432 __pyx_number_tab[28] +#define __pyx_int_67108864 __pyx_number_tab[29] +#define __pyx_int_134217728 __pyx_number_tab[30] +#define __pyx_int_268435456 __pyx_number_tab[31] +#define __pyx_int_536870912 __pyx_number_tab[32] +#define __pyx_int_1073741824 __pyx_number_tab[33] +#define __pyx_int_neg_2147483648 __pyx_number_tab[34] +/* #### Code section: module_state_clear ### */ +#if CYTHON_USE_MODULE_STATE +static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { + __pyx_mstatetype *clear_module_state = __Pyx_PyModule_GetState(m); + if (!clear_module_state) return 0; + Py_CLEAR(clear_module_state->__pyx_d); + Py_CLEAR(clear_module_state->__pyx_b); + Py_CLEAR(clear_module_state->__pyx_cython_runtime); + Py_CLEAR(clear_module_state->__pyx_empty_tuple); + Py_CLEAR(clear_module_state->__pyx_empty_bytes); + Py_CLEAR(clear_module_state->__pyx_empty_unicode); + #if CYTHON_PEP489_MULTI_PHASE_INIT + __Pyx_State_RemoveModule(NULL); + #endif + Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character); + Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ACOS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ADD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ADOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ADR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ADX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ADXR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AO_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_APO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_APO_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AROON_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AROONOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ASIN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ATAN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ATR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AVGDEV_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_BBANDS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_BETA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_BOP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CCI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CEIL_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CMF_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CMO_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CMOU_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_COPPOCK_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CORREL_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_COS_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_COS_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_COSH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CUMSUM_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_CVI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DEMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DIV_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DPO_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_DX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_DX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_EFI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_EMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ER_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ER_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ERI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_EXP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FLOOR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_FRACTAL_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_SINE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_IMI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KAMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_KDJ_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_LN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_LOG10_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MACD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MACDEXT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MACDFIX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MAMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MARKETFI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MASSI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MAVP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MAX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MFI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MIN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MININDEX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MINMAX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MOM_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_MULT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_NATR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_NVI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_OBV_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PPO_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PVI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PVO_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_PVT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_QSTICK_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ROC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ROCP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ROCR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ROCR100_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RSI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RVI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_RVOL_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SAREXT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SIN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SINH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SMI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SQRT_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_STDDEV_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_STOCH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_STOCHF_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SUB_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SUM_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_T3_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_T3_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TAN_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TANH_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TEMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TRANGE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TRIMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TRIX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TSF_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TSI_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ULTOSC_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VAR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VHF_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VORTEX_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VWAP_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_VWMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WAD_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WILLR_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_WMA_Stream); + Py_CLEAR(clear_module_state->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); + Py_CLEAR(clear_module_state->__pyx_type_5talib_7_ta_lib_ZLEMA_Stream); + Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_items.method); + Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_pop.method); + Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method); + for (int i=0; i<59; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } + for (int i=0; i<453; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<2870; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<35; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } +/* #### Code section: module_state_clear_contents ### */ +/* CommonTypesMetaclass.module_state_clear */ +Py_CLEAR(clear_module_state->__pyx_CommonTypesMetaclassType); + +/* CythonFunctionPerModule.module_state_clear */ +Py_CLEAR(clear_module_state->__pyx_CyFunctionType); + +/* #### Code section: module_state_clear_end ### */ +return 0; +} +#endif +/* #### Code section: module_state_traverse ### */ +#if CYTHON_USE_MODULE_STATE +static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { + __pyx_mstatetype *traverse_module_state = __Pyx_PyModule_GetState(m); + if (!traverse_module_state) return 0; + Py_VISIT(traverse_module_state->__pyx_d); + Py_VISIT(traverse_module_state->__pyx_b); + Py_VISIT(traverse_module_state->__pyx_cython_runtime); + __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_tuple); + __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_bytes); + __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode); + Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character); + Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ACOS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ADD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ADOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ADR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ADX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ADXR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AO_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_APO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_APO_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AROON_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AROONOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ASIN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ATAN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ATR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AVGDEV_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_BBANDS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_BETA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_BOP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CCI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CEIL_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CMF_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CMO_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CMOU_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_COPPOCK_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CORREL_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_COS_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_COS_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_COSH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CUMSUM_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_CVI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DEMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DIV_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DPO_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_DX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_DX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_EFI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_EMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ER_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ER_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ERI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_EXP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FLOOR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_FRACTAL_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_SINE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_IMI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KAMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_KDJ_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_LN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_LOG10_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MACD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MACDEXT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MACDFIX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MAMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MARKETFI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MASSI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MAVP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MAX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MFI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MIN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MININDEX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MINMAX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MOM_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_MULT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_NATR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_NVI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_OBV_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PPO_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PVI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PVO_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_PVT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_QSTICK_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ROC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ROCP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ROCR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ROCR100_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RSI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RVI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_RVOL_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SAREXT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SIN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SINH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SMI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SQRT_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_STDDEV_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_STOCH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_STOCHF_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SUB_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SUM_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_T3_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_T3_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TAN_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TANH_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TEMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TRANGE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TRIMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TRIX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TSF_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TSI_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ULTOSC_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VAR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VHF_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VORTEX_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VWAP_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_VWMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WAD_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WILLR_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_WMA_Stream); + Py_VISIT(traverse_module_state->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); + Py_VISIT(traverse_module_state->__pyx_type_5talib_7_ta_lib_ZLEMA_Stream); + Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_items.method); + Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_pop.method); + Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method); + for (int i=0; i<59; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } + for (int i=0; i<453; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<2870; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<35; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } +/* #### Code section: module_state_traverse_contents ### */ +/* CommonTypesMetaclass.module_state_traverse */ +Py_VISIT(traverse_module_state->__pyx_CommonTypesMetaclassType); + +/* CythonFunctionPerModule.module_state_traverse */ +Py_VISIT(traverse_module_state->__pyx_CyFunctionType); + +/* #### Code section: module_state_traverse_end ### */ +return 0; +} +#endif +/* #### Code section: module_code ### */ + + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize___get__(PyArray_Descr *__pyx_v_self) { + npy_intp __pyx_r; + + { + + __pyx_r = PyDataType_ELSIZE(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment___get__(PyArray_Descr *__pyx_v_self) { + npy_intp __pyx_r; + + { + + __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields___get__(PyArray_Descr *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self); + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(((PyObject *)__pyx_t_1)); + __pyx_r = ((PyObject *)__pyx_t_1); + } + __Pyx_XDECREF(__pyx_temp); + } + + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names___get__(PyArray_Descr *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_t_1 = PyDataType_NAMES(__pyx_v_self); + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(((PyObject*)__pyx_t_1)); + __pyx_r = ((PyObject*)__pyx_t_1); + } + __Pyx_XDECREF(__pyx_temp); + } + + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray___get__(PyArray_Descr *__pyx_v_self) { + PyArray_ArrayDescr *__pyx_r; + + { + + __pyx_r = PyDataType_SUBARRAY(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags___get__(PyArray_Descr *__pyx_v_self) { + npy_uint64 __pyx_r; + + { + + __pyx_r = PyDataType_FLAGS(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter___get__(PyArrayMultiIterObject *__pyx_v_self) { + int __pyx_r; + + { + + __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size___get__(PyArrayMultiIterObject *__pyx_v_self) { + npy_intp __pyx_r; + + { + + __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index___get__(PyArrayMultiIterObject *__pyx_v_self) { + npy_intp __pyx_r; + + { + + __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd___get__(PyArrayMultiIterObject *__pyx_v_self) { + int __pyx_r; + + { + + __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions___get__(PyArrayMultiIterObject *__pyx_v_self) { + npy_intp *__pyx_r; + + { + + __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters___get__(PyArrayMultiIterObject *__pyx_v_self) { + void **__pyx_r; + + { + + __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base___get__(PyArrayObject *__pyx_v_self) { + PyObject *__pyx_r; + + { + + __pyx_r = PyArray_BASE(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr___get__(PyArrayObject *__pyx_v_self) { + PyArray_Descr *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyArray_Descr *__pyx_t_1; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_t_1 = PyArray_DESCR(__pyx_v_self); + + { + PyArray_Descr *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1)); + __pyx_r = ((PyArray_Descr *)__pyx_t_1); + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim___get__(PyArrayObject *__pyx_v_self) { + int __pyx_r; + + { + + __pyx_r = PyArray_NDIM(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape___get__(PyArrayObject *__pyx_v_self) { + npy_intp *__pyx_r; + + { + + __pyx_r = PyArray_DIMS(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides___get__(PyArrayObject *__pyx_v_self) { + npy_intp *__pyx_r; + + { + + __pyx_r = PyArray_STRIDES(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size___get__(PyArrayObject *__pyx_v_self) { + npy_intp __pyx_r; + + { + + __pyx_r = PyArray_SIZE(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data___get__(PyArrayObject *__pyx_v_self) { + char *__pyx_r; + + { + + __pyx_r = PyArray_BYTES(__pyx_v_self); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); + + __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); + + __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); + + __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); + + __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); + + __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2; + __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); + + __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray___get__(__pyx_v_d)->shape; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(((PyObject*)__pyx_t_2)); + __pyx_r = ((PyObject*)__pyx_t_2); + } + __Pyx_XDECREF(__pyx_temp); + } + + goto __pyx_L0; + + } + + /*else*/ { + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_mstate_global->__pyx_empty_tuple); + __pyx_r = __pyx_mstate_global->__pyx_empty_tuple; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + } + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + Py_INCREF(__pyx_v_base); + + __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(4, 1028, __pyx_L1_error) + + + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_L0:; + +} + + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { + PyObject *__pyx_v_base; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("get_array_base", 0); + + __pyx_v_base = PyArray_BASE(__pyx_v_arr); + + __pyx_t_1 = (__pyx_v_base == NULL); + + if (__pyx_t_1) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(((PyObject *)__pyx_v_base)); + __pyx_r = ((PyObject *)__pyx_v_base); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_array", 0); + + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 1040, __pyx_L3_error) + + + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(4, 1041, __pyx_L5_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + + __pyx_t_9 = NULL; + __pyx_t_10 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 1042, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(4, 1042, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + + __pyx_L5_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L8_try_end:; + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_umath", 0); + + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 1046, __pyx_L3_error) + + + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(4, 1047, __pyx_L5_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + + __pyx_t_9 = NULL; + __pyx_t_10 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 1048, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(4, 1048, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + + __pyx_L5_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L8_try_end:; + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_ufunc", 0); + + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 1052, __pyx_L3_error) + + + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + + __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); + if (__pyx_t_4) { + __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(4, 1053, __pyx_L5_except_error) + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + + __pyx_t_9 = NULL; + __pyx_t_10 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ImportError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(4, 1054, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(4, 1054, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + + __pyx_L5_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L8_try_end:; + } + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { + int __pyx_r; + + { + + __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { + int __pyx_r; + + { + + __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { + npy_datetime __pyx_r; + + { + + __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { + npy_timedelta __pyx_r; + + { + + __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { + NPY_DATETIMEUNIT __pyx_r; + + { + + __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code, CYTHON_UNUSED int __pyx_skip_dispatch) { + PyObject *__pyx_v_description = NULL; + PyObject *__pyx_v_error = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7[5]; + Py_ssize_t __pyx_t_8; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_check_success", 0); + + switch (__pyx_v_ret_code) { + case 0: + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + break; + case 1: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Library_Not_Initialized_TA_LIB_N); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Library_Not_Initialized_TA_LIB_N; + + break; + case 2: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Bad_Parameter_TA_BAD_PARAM); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Bad_Parameter_TA_BAD_PARAM; + + break; + case 3: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Allocation_Error_TA_ALLOC_ERR); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Allocation_Error_TA_ALLOC_ERR; + + break; + case 4: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU; + + break; + case 5: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F; + + break; + case 6: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE; + + break; + case 7: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_TA_INVA); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_TA_INVA; + + break; + case 8: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_Type_TA); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Holder_Type_TA; + + break; + case 9: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Function_TA_IN); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_Parameter_Function_TA_IN; + + break; + case 10: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Input_Not_All_Initialized_TA_INP); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Input_Not_All_Initialized_TA_INP; + + break; + case 11: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Output_Not_All_Initialized_TA_OU); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Output_Not_All_Initialized_TA_OU; + + break; + case 12: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Out_of_Range_Start_Index_TA_OUT); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Out_of_Range_Start_Index_TA_OUT; + + break; + case 13: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF; + + break; + case 14: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS; + + break; + case 15: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Bad_Object_TA_BAD_OBJECT); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Bad_Object_TA_BAD_OBJECT; + + break; + case 16: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED; + + break; + case 17: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Insufficient_History_TA_INSUFFIC); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Insufficient_History_TA_INSUFFIC; + + break; + case 0x1388: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR; + + break; + case 0xFFFF: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR; + + break; + default: + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_Unknown_Error); + __pyx_v_description = __pyx_mstate_global->__pyx_kp_u_Unknown_Error; + break; + } + + __pyx_t_2 = (__pyx_v_ret_code == 17); + + if (__pyx_t_2) { + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_InsufficientHistory); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __pyx_t_3; + __pyx_t_3 = 0; + } else { + __Pyx_INCREF((PyObject *)(((PyTypeObject*)PyExc_Exception))); + __pyx_t_1 = ((PyObject *)(((PyTypeObject*)PyExc_Exception))); + } + + __pyx_v_error = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_3 = NULL; + __Pyx_INCREF(__pyx_v_error); + __pyx_t_4 = __pyx_v_error; + + __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyUnicode_From_TA_RetCode(__pyx_v_ret_code, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7[0] = __pyx_t_5; + __pyx_t_7[1] = __pyx_mstate_global->__pyx_kp_u_function_failed_with_error_code; + __pyx_t_7[2] = __pyx_t_6; + __pyx_t_7[3] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_7[4] = __pyx_v_description; + + __pyx_t_8 = 35; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7[2]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7[4]); + #endif + __pyx_t_9 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_9 |= __Pyx_PyUnicode_KIND_04(__pyx_t_7[0]) | __Pyx_PyUnicode_KIND_04(__pyx_t_7[4]); + #endif + __pyx_t_10 = __Pyx_PyUnicode_Join(__pyx_t_7, 5, __pyx_t_8, __pyx_t_9); + if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_11, (2-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(1, 59, __pyx_L1_error) + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_description); + __Pyx_XDECREF(__pyx_v_error); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib__ta_check_success, "_ta_check_success(str function_name, TA_RetCode ret_code)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_1_ta_check_success = {"_ta_check_success", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_1_ta_check_success, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib__ta_check_success}; +static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_function_name = 0; + TA_RetCode __pyx_v_ret_code; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_check_success (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_ret_code,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 15, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 15, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 15, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_check_success", 0) < (0)) __PYX_ERR(1, 15, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, i); __PYX_ERR(1, 15, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 15, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 15, __pyx_L3_error) + } + __pyx_v_function_name = ((PyObject*)values[0]); + __pyx_v_ret_code = __Pyx_PyLong_As_TA_RetCode(values[1]); if (unlikely((__pyx_v_ret_code == ((TA_RetCode)-1)) && PyErr_Occurred())) __PYX_ERR(1, 15, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_check_success", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 15, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_function_name), (&PyUnicode_Type), 1, "function_name", 1))) __PYX_ERR(1, 15, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib__ta_check_success(__pyx_self, __pyx_v_function_name, __pyx_v_ret_code); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_check_success", 0); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_ret_code, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib._ta_check_success", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_2_ta_initialize, "_ta_initialize()"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_3_ta_initialize = {"_ta_initialize", (PyCFunction)__pyx_pw_5talib_7_ta_lib_3_ta_initialize, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_2_ta_initialize}; +static PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_initialize (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_2_ta_initialize(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self) { + TA_RetCode __pyx_v_ret_code; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_initialize", 0); + + __pyx_v_ret_code = TA_Initialize(); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Initialize, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib._ta_initialize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_4_ta_shutdown, "_ta_shutdown()"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_5_ta_shutdown = {"_ta_shutdown", (PyCFunction)__pyx_pw_5talib_7_ta_lib_5_ta_shutdown, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_4_ta_shutdown}; +static PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_shutdown (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_4_ta_shutdown(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject *__pyx_self) { + TA_RetCode __pyx_v_ret_code; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_shutdown", 0); + + __pyx_v_ret_code = TA_Shutdown(); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_Shutdown, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib._ta_shutdown", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_7MA_Type___init__, "MA_Type.__init__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_7MA_Type___init__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 76, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 76, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(1, 76, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(1, 76, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 76, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 76, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MA_Type.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type___init__(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Simple_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Exponential_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_WMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Weighted_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Double_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TRIMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Triangular_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_KAMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kaufman_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_MESA_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Generalized_Double_Expone) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Hull_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DISABLED); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_No_Moving_Average_identity) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEFAULT); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_The_Function_s_Own_Default_Movin) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ZLEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Zero_Lag_Exponential_Moving_Aver) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Wilder_s_Smoothed_Moving_Average) < (0)) __PYX_ERR(1, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_1) < (0)) __PYX_ERR(1, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MA_Type.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_7MA_Type_2__getitem__, "MA_Type.__getitem__(self, type_)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__ = {"__getitem__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_7MA_Type_2__getitem__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_type_ = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_type,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 94, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 94, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 94, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__getitem__", 0) < (0)) __PYX_ERR(1, 94, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, i); __PYX_ERR(1, 94, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 94, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 94, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_type_ = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 94, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MA_Type.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(__pyx_self, __pyx_v_self, __pyx_v_type_); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MA_Type.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6_ta_func_unst_id, "_ta_func_unst_id(name)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id = {"_ta_func_unst_id", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6_ta_func_unst_id}; +static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_name = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_func_unst_id (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 143, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 143, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_func_unst_id", 0) < (0)) __PYX_ERR(1, 143, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, i); __PYX_ERR(1, 143, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 143, __pyx_L3_error) + } + __pyx_v_name = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 143, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_func_unst_id", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(__pyx_self, __pyx_v_name); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8[4]; + Py_ssize_t __pyx_t_9; + int __pyx_t_10; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_func_unst_id", 0); + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 144, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_7), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_unstable_period; + __pyx_t_8[1] = __pyx_t_4; + __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u_is_deprecated_and_has_no_effect; + __pyx_t_8[3] = __pyx_t_6; + + __pyx_t_9 = 52; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[3]); + #endif + __pyx_t_10 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_8[3]); + #endif + __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, __pyx_t_9, __pyx_t_10); + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_7, ((PyObject *)(((PyTypeObject*)PyExc_DeprecationWarning))), __pyx_mstate_global->__pyx_int_3}; + #if CYTHON_VECTORCALL + __pyx_t_6 = __pyx_mstate_global->__pyx_tuple[0]; + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 145, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_6); + #else + { + PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_stacklevel}; + __pyx_t_6 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+3, 1); + if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + #endif + __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib._ta_func_unst_id", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8_ta_set_unstable_period, "_ta_set_unstable_period(name, period)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period = {"_ta_set_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8_ta_set_unstable_period}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_period = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_set_unstable_period (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_period,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 152, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 152, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 152, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_unstable_period", 0) < (0)) __PYX_ERR(1, 152, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, i); __PYX_ERR(1, 152, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 152, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 152, __pyx_L3_error) + } + __pyx_v_name = values[0]; + __pyx_v_period = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 152, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_set_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(__pyx_self, __pyx_v_name, __pyx_v_period); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period) { + TA_RetCode __pyx_v_ret_code; + TA_FuncUnstId __pyx_v_id; + PyObject *__pyx_v_unst_id = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + TA_FuncUnstId __pyx_t_6; + unsigned int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_set_unstable_period", 0); + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_unst_id = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_5 = (__pyx_v_unst_id == Py_None); + if (__pyx_t_5) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 158, __pyx_L1_error) + __pyx_v_id = __pyx_t_6; + + __pyx_t_7 = __Pyx_PyLong_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_7 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 159, __pyx_L1_error) + __pyx_v_ret_code = TA_SetUnstablePeriod(__pyx_v_id, __pyx_t_7); + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib._ta_set_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_unst_id); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10_ta_get_unstable_period, "_ta_get_unstable_period(name)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period = {"_ta_get_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10_ta_get_unstable_period}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_name = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_get_unstable_period (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 162, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 162, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_get_unstable_period", 0) < (0)) __PYX_ERR(1, 162, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, i); __PYX_ERR(1, 162, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 162, __pyx_L3_error) + } + __pyx_v_name = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 162, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_get_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(__pyx_self, __pyx_v_name); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) { + unsigned int __pyx_v_period; + TA_FuncUnstId __pyx_v_id; + PyObject *__pyx_v_unst_id = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + TA_FuncUnstId __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_get_unstable_period", 0); + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_unst_id = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_5 = (__pyx_v_unst_id == Py_None); + if (__pyx_t_5) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_r = __pyx_mstate_global->__pyx_int_0; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 168, __pyx_L1_error) + __pyx_v_id = __pyx_t_6; + + __pyx_v_period = TA_GetUnstablePeriod(__pyx_v_id); + + __pyx_t_1 = __Pyx_PyLong_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib._ta_get_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_unst_id); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12_ta_set_compatibility, "_ta_set_compatibility(value)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility = {"_ta_set_compatibility", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12_ta_set_compatibility}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_value = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_set_compatibility (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 172, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 172, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_compatibility", 0) < (0)) __PYX_ERR(1, 172, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, i); __PYX_ERR(1, 172, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 172, __pyx_L3_error) + } + __pyx_v_value = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 172, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_set_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(__pyx_self, __pyx_v_value); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value) { + TA_RetCode __pyx_v_ret_code; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_Compatibility __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_set_compatibility", 0); + + __pyx_t_1 = __Pyx_PyLong_As_TA_Compatibility(__pyx_v_value); if (unlikely((__pyx_t_1 == ((TA_Compatibility)-1)) && PyErr_Occurred())) __PYX_ERR(1, 174, __pyx_L1_error) + __pyx_v_ret_code = TA_SetCompatibility(__pyx_t_1); + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib._ta_set_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility, "_ta_get_compatibility()"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility = {"_ta_get_compatibility", (PyCFunction)__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_get_compatibility (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self) { + int __pyx_v_value; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_get_compatibility", 0); + + __pyx_v_value = TA_GetCompatibility(); + + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib._ta_get_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings, "_ta_set_candle_settings(settingtype, rangetype, avgperiod, factor)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings = {"_ta_set_candle_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_settingtype = 0; + PyObject *__pyx_v_rangetype = 0; + PyObject *__pyx_v_avgperiod = 0; + PyObject *__pyx_v_factor = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_set_candle_settings (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,&__pyx_mstate_global->__pyx_n_u_rangetype,&__pyx_mstate_global->__pyx_n_u_avgperiod,&__pyx_mstate_global->__pyx_n_u_factor,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 194, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 194, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 194, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 194, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 194, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_candle_settings", 0) < (0)) __PYX_ERR(1, 194, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, i); __PYX_ERR(1, 194, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 194, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 194, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 194, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 194, __pyx_L3_error) + } + __pyx_v_settingtype = values[0]; + __pyx_v_rangetype = values[1]; + __pyx_v_avgperiod = values[2]; + __pyx_v_factor = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, __pyx_nargs); __PYX_ERR(1, 194, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_set_candle_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(__pyx_self, __pyx_v_settingtype, __pyx_v_rangetype, __pyx_v_avgperiod, __pyx_v_factor); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor) { + TA_RetCode __pyx_v_ret_code; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_CandleSettingType __pyx_t_1; + TA_RangeType __pyx_t_2; + int __pyx_t_3; + double __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_set_candle_settings", 0); + + __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 196, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_As_TA_RangeType(__pyx_v_rangetype); if (unlikely((__pyx_t_2 == ((TA_RangeType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 196, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_v_avgperiod); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 196, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyFloat_AsDouble(__pyx_v_factor); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 196, __pyx_L1_error) + __pyx_v_ret_code = TA_SetCandleSettings(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4); + + + + + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib._ta_set_candle_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings, "_ta_restore_candle_default_settings(settingtype)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings = {"_ta_restore_candle_default_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_settingtype = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 199, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 199, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_restore_candle_default_settings", 0) < (0)) __PYX_ERR(1, 199, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, i); __PYX_ERR(1, 199, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 199, __pyx_L3_error) + } + __pyx_v_settingtype = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 199, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_restore_candle_default_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(__pyx_self, __pyx_v_settingtype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype) { + TA_RetCode __pyx_v_ret_code; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_CandleSettingType __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings", 0); + + __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 201, __pyx_L1_error) + __pyx_v_ret_code = TA_RestoreCandleDefaultSettings(__pyx_t_1); + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib._ta_restore_candle_default_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *__pyx_v_real) { + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_array", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = (PyArray_TYPE(__pyx_v_real) != NPY_DOUBLE); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_type_is_not_double}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 22, __pyx_L1_error) + + } + + __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_real) != 1); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_has_wrong_dimensions}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 24, __pyx_L1_error) + + } + + __pyx_t_1 = (!((PyArray_FLAGS(__pyx_v_real) & NPY_ARRAY_C_CONTIGUOUS) != 0)); + + if (__pyx_t_1) { + + + __pyx_t_2 = ((PyObject *)PyArray_GETCONTIGUOUS(__pyx_v_real)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + } + + { + PyArrayObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_real); + __pyx_r = __pyx_v_real; + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.check_array", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2) { + npy_intp __pyx_v_length; + npy_intp __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_length2", 0); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a1)[0]); + + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a2)[0])); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 34, __pyx_L1_error) + + } + + { + + __pyx_r = __pyx_v_length; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.check_length2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3) { + npy_intp __pyx_v_length; + npy_intp __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_length3", 0); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a1)[0]); + + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a2)[0])); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 42, __pyx_L1_error) + + } + + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a3)[0])); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 44, __pyx_L1_error) + + } + + { + + __pyx_r = __pyx_v_length; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.check_length3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3, PyArrayObject *__pyx_v_a4) { + npy_intp __pyx_v_length; + npy_intp __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_length4", 0); + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a1)[0]); + + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a2)[0])); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 52, __pyx_L1_error) + + } + + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a3)[0])); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 54, __pyx_L1_error) + + } + + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a4)[0])); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(5, 56, __pyx_L1_error) + + } + + { + + __pyx_r = __pyx_v_length; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.check_length4", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp __pyx_v_length, double *__pyx_v_a1) { + double __pyx_v_val; + long __pyx_v_i; + npy_int __pyx_r; + npy_intp __pyx_t_1; + int __pyx_t_2; + + __pyx_t_1 = __pyx_v_length; + + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + + __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + { + + __pyx_r = __pyx_v_i; + } + goto __pyx_L0; + __pyx_L3_continue:; + } + /*else*/ { + + { + + __pyx_r = (__pyx_v_length - 1); + } + goto __pyx_L0; + } + + + + /* function exit code */ + __pyx_L0:; + + + + return __pyx_r; +} + + +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2) { + double __pyx_v_val; + long __pyx_v_i; + npy_int __pyx_r; + npy_intp __pyx_t_1; + int __pyx_t_2; + + __pyx_t_1 = __pyx_v_length; + + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + + __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + { + + __pyx_r = __pyx_v_i; + } + goto __pyx_L0; + __pyx_L3_continue:; + } + /*else*/ { + + { + + __pyx_r = (__pyx_v_length - 1); + } + goto __pyx_L0; + } + + + + /* function exit code */ + __pyx_L0:; + + + + return __pyx_r; +} + + +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3) { + double __pyx_v_val; + long __pyx_v_i; + npy_int __pyx_r; + npy_intp __pyx_t_1; + int __pyx_t_2; + + __pyx_t_1 = __pyx_v_length; + + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + + __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + __pyx_v_val = (__pyx_v_a3[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + { + + __pyx_r = __pyx_v_i; + } + goto __pyx_L0; + __pyx_L3_continue:; + } + /*else*/ { + + { + + __pyx_r = (__pyx_v_length - 1); + } + goto __pyx_L0; + } + + + + /* function exit code */ + __pyx_L0:; + + + + return __pyx_r; +} + + +static npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3, double *__pyx_v_a4) { + double __pyx_v_val; + long __pyx_v_i; + npy_int __pyx_r; + npy_intp __pyx_t_1; + int __pyx_t_2; + + __pyx_t_1 = __pyx_v_length; + + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + + __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + __pyx_v_val = (__pyx_v_a3[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + __pyx_v_val = (__pyx_v_a4[__pyx_v_i]); + + __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + + if (__pyx_t_2) { + + + goto __pyx_L3_continue; + + } + + { + + __pyx_r = __pyx_v_i; + } + goto __pyx_L0; + __pyx_L3_continue:; + } + /*else*/ { + + { + + __pyx_r = (__pyx_v_length - 1); + } + goto __pyx_L0; + } + + + + /* function exit code */ + __pyx_L0:; + + + + return __pyx_r; +} + + +static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v_length, int __pyx_v_lookback) { + PyArrayObject *__pyx_v_outreal = 0; + double *__pyx_v_outreal_data; + long __pyx_v_i; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + npy_intp __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("make_double_array", 0); + + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_DOUBLE, NPY_ARRAY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_outreal_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)); + + + __pyx_t_2 = __pyx_v_length; + + __pyx_t_3 = __pyx_v_lookback; + __pyx_t_5 = (__pyx_t_2 < __pyx_t_3); + + if (__pyx_t_5) { + + __pyx_t_4 = __pyx_t_2; + } else { + + __pyx_t_4 = __pyx_t_3; + } + + __pyx_t_2 = __pyx_t_4; + + + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + + (__pyx_v_outreal_data[__pyx_v_i]) = __pyx_v_5talib_7_ta_lib_NaN; + } + + + { + PyArrayObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_v_outreal; + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.make_double_array", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_length, int __pyx_v_lookback) { + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + long __pyx_v_i; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + npy_intp __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("make_int_array", 0); + + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_INT32, NPY_ARRAY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + + __pyx_t_2 = __pyx_v_length; + + __pyx_t_3 = __pyx_v_lookback; + __pyx_t_5 = (__pyx_t_2 < __pyx_t_3); + + if (__pyx_t_5) { + + __pyx_t_4 = __pyx_t_2; + } else { + + __pyx_t_4 = __pyx_t_3; + } + + __pyx_t_2 = __pyx_t_4; + + + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + + (__pyx_v_outinteger_data[__pyx_v_i]) = 0; + } + + + { + PyArrayObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_v_outinteger; + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.make_int_array", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20AC, "AC(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21AC = {"AC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21AC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20AC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AC (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 142, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AC", 0) < (0)) __PYX_ERR(5, 142, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AC", 0, 2, 5, i); __PYX_ERR(5, 142, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 142, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 142, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 144, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 144, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 144, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AC", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 142, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 144, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 144, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_20AC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("AC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 167, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 168, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23ACCBANDS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22ACCBANDS, "ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23ACCBANDS = {"ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22ACCBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23ACCBANDS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ACCBANDS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 176, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 176, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 176, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 176, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 176, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACCBANDS", 0) < (0)) __PYX_ERR(5, 176, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, i); __PYX_ERR(5, 176, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 176, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 176, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 176, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 176, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 178, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 176, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 178, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_22ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ACCBANDS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 204, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 205, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ACCBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 213, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 213, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 213, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24ACOS, "ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ACOS = {"ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ACOS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ACOS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 215, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 215, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACOS", 0) < (0)) __PYX_ERR(5, 215, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, i); __PYX_ERR(5, 215, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 215, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 215, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 217, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_24ACOS(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ACOS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 236, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ACOS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26AD, "AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_27AD = {"AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_27AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26AD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 244, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 244, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 244, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 244, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 244, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AD", 0) < (0)) __PYX_ERR(5, 244, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, i); __PYX_ERR(5, 244, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 244, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 244, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 244, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 244, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 244, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 246, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 246, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 246, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 246, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_26AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("AD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 267, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 268, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_28ADD, "ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_29ADD = {"ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_29ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28ADD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ADD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 276, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 276, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 276, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADD", 0) < (0)) __PYX_ERR(5, 276, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, i); __PYX_ERR(5, 276, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 276, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 276, __pyx_L3_error) + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 276, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 278, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 278, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ADD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 298, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 299, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ADD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_30ADOSC, "ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_31ADOSC = {"ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_31ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30ADOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ADOSC (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 307, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADOSC", 0) < (0)) __PYX_ERR(5, 307, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, i); __PYX_ERR(5, 307, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 307, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 307, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 307, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 307, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 307, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 309, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 309, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(5, 307, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 309, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 309, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 309, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 309, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ADOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 333, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 334, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ADOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_32ADR, "ADR(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_33ADR = {"ADR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_33ADR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32ADR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ADR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 342, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 342, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 342, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 342, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADR", 0) < (0)) __PYX_ERR(5, 342, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, i); __PYX_ERR(5, 342, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 342, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 342, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 342, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 344, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 342, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 344, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 344, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_32ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ADR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 365, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 366, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ADR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_34ADX, "ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_35ADX = {"ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_35ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34ADX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ADX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 374, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 374, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 374, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 374, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 374, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADX", 0) < (0)) __PYX_ERR(5, 374, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, i); __PYX_ERR(5, 374, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 374, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 374, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 374, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 374, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 376, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 374, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 376, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_34ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ADX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 398, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 399, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_36ADXR, "ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_37ADXR = {"ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_37ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_36ADXR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ADXR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 407, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 407, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 407, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 407, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 407, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADXR", 0) < (0)) __PYX_ERR(5, 407, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, i); __PYX_ERR(5, 407, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 407, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 407, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 407, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 407, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 409, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 407, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 409, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 409, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 409, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_36ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ADXR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 431, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 432, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_38AO, "AO(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_39AO = {"AO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_39AO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_38AO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AO (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 440, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AO", 0) < (0)) __PYX_ERR(5, 440, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, i); __PYX_ERR(5, 440, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 442, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 442, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 440, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 442, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 442, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_38AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("AO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 464, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 465, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_40APO, "APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_41APO = {"APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_41APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40APO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("APO (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 473, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(5, 473, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(5, 473, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 473, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 473, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 475, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 475, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 475, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 473, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 475, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_40APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("APO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 498, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_42AROON, "AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_43AROON = {"AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_43AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42AROON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AROON (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 506, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(5, 506, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(5, 506, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 506, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 506, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 508, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 506, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 508, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 508, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_42AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outaroondown = 0; + PyArrayObject *__pyx_v_outaroonup = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("AROON", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 531, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 532, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outaroondown); + __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(5, 539, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outaroonup); + __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(5, 539, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown); + __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_44AROONOSC, "AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_45AROONOSC = {"AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_45AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44AROONOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AROONOSC (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 541, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 541, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 541, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 541, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(5, 541, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(5, 541, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 541, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 541, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 541, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 543, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 541, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 543, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 543, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_44AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("AROONOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 564, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 565, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_46ASIN, "ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_47ASIN = {"ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_47ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46ASIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ASIN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 573, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 573, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(5, 573, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(5, 573, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 573, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 573, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 575, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_46ASIN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ASIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 594, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_48ATAN, "ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_49ATAN = {"ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_49ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48ATAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ATAN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 602, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 602, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(5, 602, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(5, 602, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 602, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 602, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 604, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_48ATAN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ATAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 623, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_50ATR, "ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_51ATR = {"ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_51ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50ATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ATR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 631, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 631, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 631, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 631, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 631, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(5, 631, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(5, 631, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 631, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 631, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 631, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 631, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 633, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 631, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 633, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_50ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ATR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 655, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 656, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_52AVGDEV, "AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_53AVGDEV = {"AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_53AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52AVGDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AVGDEV (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 664, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 664, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 664, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(5, 664, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(5, 664, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 664, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 664, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 666, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 664, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 666, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_52AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("AVGDEV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 687, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_54AVGPRICE, "AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_55AVGPRICE = {"AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_55AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54AVGPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("AVGPRICE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 695, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 695, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 695, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 695, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 695, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(5, 695, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(5, 695, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 695, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 695, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 695, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 695, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 695, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 697, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_54AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("AVGPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 718, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 719, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_56BBANDS, "BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_57BBANDS = {"BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_57BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56BBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("BBANDS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 727, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(5, 727, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(5, 727, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 727, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 727, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 729, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_56BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("BBANDS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 757, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 765, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_58BETA, "BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_59BETA = {"BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_59BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58BETA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("BETA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 767, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(5, 767, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(5, 767, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 767, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 767, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 769, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 767, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 769, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_58BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("BETA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 791, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 792, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_60BOP, "BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_61BOP = {"BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_61BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60BOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("BOP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 800, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 800, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(5, 800, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(5, 800, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 800, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 800, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 800, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 800, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 800, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 802, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 802, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 802, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 802, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_60BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("BOP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 823, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 824, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_62CCI, "CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_63CCI = {"CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_63CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62CCI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CCI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 832, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 832, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 832, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 832, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 832, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(5, 832, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(5, 832, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 832, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 832, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 832, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 832, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 834, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 832, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 834, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 834, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 834, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_62CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CCI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 856, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 857, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_64CDL2CROWS, "CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_65CDL2CROWS = {"CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_65CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64CDL2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL2CROWS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 865, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(5, 865, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(5, 865, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 865, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 865, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 865, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 865, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 865, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 867, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL2CROWS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 888, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 889, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS, "CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS = {"CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL3BLACKCROWS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 897, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(5, 897, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(5, 897, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 897, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 897, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 897, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 897, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 897, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 899, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL3BLACKCROWS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 920, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 921, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3INSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 929, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(5, 929, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(5, 929, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 929, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 929, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 929, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 929, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 929, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 931, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL3INSIDE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 952, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 953, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 961, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(5, 961, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(5, 961, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 961, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 961, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 961, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 961, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 961, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 963, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL3LINESTRIKE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 984, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 985, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE, "CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE = {"CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL3OUTSIDE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 993, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(5, 993, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(5, 993, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 993, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 993, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 993, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 993, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 993, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 995, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL3OUTSIDE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1016, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1017, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH, "CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH = {"CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL3STARSINSOUTH (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1025, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(5, 1025, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(5, 1025, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1025, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1025, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1025, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1025, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1025, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL3STARSINSOUTH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1048, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1049, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS, "CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS = {"CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1057, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(5, 1057, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(5, 1057, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1057, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1057, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1057, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1057, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1057, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1080, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1081, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY, "CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY = {"CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLABANDONEDBABY (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1089, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(5, 1089, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(5, 1089, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1089, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1089, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1089, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1089, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1091, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1089, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLABANDONEDBABY", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1114, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1115, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK, "CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK = {"CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLADVANCEBLOCK (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1123, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1123, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1123, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1123, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1123, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(5, 1123, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(5, 1123, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1123, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1123, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1123, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1123, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1123, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLADVANCEBLOCK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1146, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1147, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1155, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1155, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1155, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1155, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1155, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(5, 1155, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(5, 1155, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1155, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1155, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1155, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1155, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1155, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1178, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1179, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1187, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(5, 1187, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(5, 1187, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1187, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1187, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1187, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1187, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1187, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1210, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1211, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1219, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(5, 1219, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 1219, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1219, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1219, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1219, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1219, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1219, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1242, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1243, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1251, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(5, 1251, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(5, 1251, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1251, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1251, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1251, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1251, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1251, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1274, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1275, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1283, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1283, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(5, 1283, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(5, 1283, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1283, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1283, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1283, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1283, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1283, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1306, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1307, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1315, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(5, 1315, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(5, 1315, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1315, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1315, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1315, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1315, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1315, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1317, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1315, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1340, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1341, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1349, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1349, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1349, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1349, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1349, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(5, 1349, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(5, 1349, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1349, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1349, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1349, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1349, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1349, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLDOJI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1372, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1373, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1381, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1381, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1381, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1381, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1381, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(5, 1381, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(5, 1381, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1381, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1381, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1381, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1381, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1381, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1404, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1405, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1413, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(5, 1413, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(5, 1413, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1413, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1413, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1413, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1413, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1413, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1436, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1437, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLENGULFING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1445, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1445, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1445, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1445, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1445, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(5, 1445, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(5, 1445, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1445, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1445, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1445, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1445, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1445, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLENGULFING", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1468, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1469, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1477, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 1477, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 1477, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1477, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1477, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1477, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1477, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1479, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1477, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1502, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1503, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1511, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(5, 1511, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 1511, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1511, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1511, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1511, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1511, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1513, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1511, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1536, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1537, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1545, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1545, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1545, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1545, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1545, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(5, 1545, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(5, 1545, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1545, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1545, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1545, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1545, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1545, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1568, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1569, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1577, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(5, 1577, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(5, 1577, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1577, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1577, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1577, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1577, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1577, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1600, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1601, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1609, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(5, 1609, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1609, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1609, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1609, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1609, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1609, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1609, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHAMMER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1632, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1633, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1641, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1641, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1641, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1641, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1641, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(5, 1641, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(5, 1641, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1641, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1641, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1641, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1641, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1641, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1664, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1665, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHARAMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1673, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1673, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(5, 1673, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(5, 1673, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1673, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1673, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1673, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1673, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1673, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHARAMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1696, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1697, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1705, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(5, 1705, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(5, 1705, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1705, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1705, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1705, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1705, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1705, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1728, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1729, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1737, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1737, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1737, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1737, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1737, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(5, 1737, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(5, 1737, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1737, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1737, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1737, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1737, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1737, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1760, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1761, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1769, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1769, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1769, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1769, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1769, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(5, 1769, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(5, 1769, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1769, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1769, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1769, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1769, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1769, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1792, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1793, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1801, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1801, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(5, 1801, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(5, 1801, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1801, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1801, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1801, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1801, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1801, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1824, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1825, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON, "CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON = {"CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHOMINGPIGEON (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1833, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1833, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(5, 1833, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(5, 1833, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1833, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1833, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1833, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1833, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1833, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHOMINGPIGEON", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1856, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1857, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS, "CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS = {"CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1865, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(5, 1865, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(5, 1865, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1865, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1865, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1865, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1865, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1865, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1888, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1889, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_128CDLINNECK, "CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLINNECK = {"CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLINNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLINNECK (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1897, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1897, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(5, 1897, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(5, 1897, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1897, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1897, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1897, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1897, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1897, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLINNECK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1920, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1921, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER, "CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER = {"CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1929, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1929, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(5, 1929, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1929, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1929, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1929, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1929, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1929, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1929, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1952, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1953, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_132CDLKICKING, "CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLKICKING = {"CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLKICKING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLKICKING (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1961, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(5, 1961, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(5, 1961, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1961, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1961, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1961, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1961, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1961, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLKICKING", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1984, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1985, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1993, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1993, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(5, 1993, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(5, 1993, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1993, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1993, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1993, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1993, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1993, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2016, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2017, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2025, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(5, 2025, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(5, 2025, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2025, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2025, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2025, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2025, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2025, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2048, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2049, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2057, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(5, 2057, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(5, 2057, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2057, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2057, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2057, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2057, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2057, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2080, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2081, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLLONGLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2089, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2089, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(5, 2089, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(5, 2089, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2089, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2089, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2089, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2089, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2089, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLLONGLINE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2112, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2113, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2121, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(5, 2121, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 2121, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2121, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2121, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2121, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2121, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2121, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2144, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2145, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW}; +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2153, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2153, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2153, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2153, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2153, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(5, 2153, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(5, 2153, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2153, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2153, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2153, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2153, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2153, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2176, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2177, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLMATHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2185, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(5, 2185, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(5, 2185, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2185, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2185, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2185, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2185, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2187, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2185, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLMATHOLD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2210, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2211, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2219, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 2219, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 2219, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2219, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2219, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2219, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2219, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2221, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2219, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2244, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2245, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2253, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(5, 2253, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 2253, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2253, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2253, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2253, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2253, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2253, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2255, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2253, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2278, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2279, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLONNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2287, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2287, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2287, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2287, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2287, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(5, 2287, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(5, 2287, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2287, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2287, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2287, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2287, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2287, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLONNECK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2310, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2311, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLPIERCING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2319, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(5, 2319, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(5, 2319, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2319, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2319, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2319, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2319, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2319, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLPIERCING", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2342, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2343, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2351, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2351, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2351, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2351, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2351, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(5, 2351, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(5, 2351, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2351, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2351, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2351, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2351, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2351, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2374, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2375, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2383, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(5, 2383, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2383, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2383, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2383, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2383, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2383, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2383, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2406, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2407, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES}; +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2415, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2415, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2415, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2415, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2415, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(5, 2415, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(5, 2415, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2415, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2415, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2415, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2415, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2415, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2438, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2439, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2447, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2447, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(5, 2447, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(5, 2447, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2447, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2447, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2447, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2447, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2447, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2470, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2471, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2479, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2479, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2479, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2479, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2479, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(5, 2479, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(5, 2479, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2479, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2479, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2479, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2479, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2479, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2502, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2503, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2511, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2511, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(5, 2511, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(5, 2511, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2511, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2511, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2511, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2511, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2511, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2534, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2535, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN, "CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN = {"CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2543, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2543, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2543, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2543, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2543, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(5, 2543, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(5, 2543, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2543, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2543, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2543, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2543, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2543, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2566, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2567, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH, "CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH = {"CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLSTICKSANDWICH (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2575, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2575, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2575, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2575, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2575, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(5, 2575, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(5, 2575, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2575, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2575, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2575, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2575, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2575, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLSTICKSANDWICH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2598, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2599, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_172CDLTAKURI, "CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLTAKURI = {"CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLTAKURI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLTAKURI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2607, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(5, 2607, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(5, 2607, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2607, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2607, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2607, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2607, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2607, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLTAKURI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2630, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2631, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP, "CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP = {"CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLTASUKIGAP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2639, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(5, 2639, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(5, 2639, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2639, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2639, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2639, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2639, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2639, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLTASUKIGAP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2662, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2663, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING, "CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING = {"CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLTHRUSTING (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2671, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(5, 2671, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(5, 2671, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2671, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2671, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2671, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2671, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2671, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLTHRUSTING", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2694, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2695, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_178CDLTRISTAR, "CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR = {"CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CDLTRISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLTRISTAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2703, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(5, 2703, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(5, 2703, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2703, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2703, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2703, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2703, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2703, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLTRISTAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2726, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2727, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER, "CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER = {"CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2735, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2735, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2735, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2735, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2735, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(5, 2735, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(5, 2735, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2735, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2735, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2735, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2735, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2735, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2758, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2759, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS, "CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS = {"CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2767, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(5, 2767, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(5, 2767, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2767, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2767, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2767, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2767, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2767, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2790, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2791, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS, "CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS = {"CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2799, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2799, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(5, 2799, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2799, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2799, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2799, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2799, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2799, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2799, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2822, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2823, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_186CEIL, "CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_187CEIL = {"CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_187CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186CEIL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CEIL (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2831, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2831, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(5, 2831, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(5, 2831, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2831, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2831, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2833, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_186CEIL(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CEIL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2852, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_188CMF, "CMF(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_189CMF = {"CMF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_189CMF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188CMF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CMF (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2860, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMF", 0) < (0)) __PYX_ERR(5, 2860, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, i); __PYX_ERR(5, 2860, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2860, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2860, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2860, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2860, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2862, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2860, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_188CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CMF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2885, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2886, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CMF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_190CMO, "CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_191CMO = {"CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_191CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190CMO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CMO (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2894, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(5, 2894, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(5, 2894, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2894, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2896, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 2894, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2896, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_190CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CMO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2917, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_192CMOU, "CMOU(ndarray real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_193CMOU = {"CMOU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_193CMOU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_192CMOU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CMOU (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2925, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2925, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2925, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMOU", 0) < (0)) __PYX_ERR(5, 2925, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, i); __PYX_ERR(5, 2925, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2925, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2925, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2927, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 2925, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2927, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_192CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CMOU", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2948, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CMOU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_194COPPOCK, "COPPOCK(ndarray real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_195COPPOCK = {"COPPOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_195COPPOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_194COPPOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("COPPOCK (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2956, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COPPOCK", 0) < (0)) __PYX_ERR(5, 2956, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, i); __PYX_ERR(5, 2956, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2956, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2958, __pyx_L3_error) + } else { + __pyx_v_wmaperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2958, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2958, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 2956, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2958, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_194COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("COPPOCK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2981, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_COPPOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_196CORREL, "CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson\047s Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_197CORREL = {"CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_197CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_196CORREL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CORREL (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2989, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2989, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2989, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2989, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(5, 2989, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(5, 2989, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2989, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2989, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2989, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2991, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 2989, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 2991, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 2991, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_196CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CORREL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3013, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3014, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_198COS, "COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_199COS = {"COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_199COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_198COS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("COS (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3022, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(5, 3022, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(5, 3022, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3022, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3022, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3024, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_198COS(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("COS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3043, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_200COSH, "COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_201COSH = {"COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_201COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_200COSH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("COSH (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3051, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3051, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(5, 3051, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(5, 3051, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3051, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3051, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3053, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_200COSH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("COSH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3072, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_202CUMSUM, "CUMSUM(ndarray real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_203CUMSUM = {"CUMSUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_203CUMSUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_202CUMSUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CUMSUM (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3080, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3080, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CUMSUM", 0) < (0)) __PYX_ERR(5, 3080, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, i); __PYX_ERR(5, 3080, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3080, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3080, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3082, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_202CUMSUM(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CUMSUM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3101, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CUMSUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_204CVI, "CVI(ndarray high, ndarray low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin\047s Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_205CVI = {"CVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_205CVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_204CVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + int __pyx_v_rocperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CVI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3109, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CVI", 0) < (0)) __PYX_ERR(5, 3109, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, i); __PYX_ERR(5, 3109, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3109, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3109, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3111, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3111, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3109, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3111, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_204CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3133, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3134, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_207DEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_206DEMA, "DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_207DEMA = {"DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_207DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_206DEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_207DEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("DEMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3142, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(5, 3142, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(5, 3142, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3142, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3144, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3142, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3144, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_206DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("DEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3165, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_208DIV, "DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_209DIV = {"DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_209DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208DIV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("DIV (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3173, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3173, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3173, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(5, 3173, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(5, 3173, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3173, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3173, __pyx_L3_error) + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3173, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3175, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3175, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_208DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("DIV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3195, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3196, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_210DONCHIAN, "DONCHIAN(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_211DONCHIAN = {"DONCHIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_211DONCHIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210DONCHIAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("DONCHIAN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3204, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3204, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3204, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3204, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DONCHIAN", 0) < (0)) __PYX_ERR(5, 3204, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, i); __PYX_ERR(5, 3204, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3204, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3204, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3204, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3206, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3204, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3206, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3206, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_210DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("DONCHIAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3231, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3232, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_DONCHIAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 3240, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 3240, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 3240, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_212DPO, "DPO(ndarray real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_213DPO = {"DPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_213DPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212DPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("DPO (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3242, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3242, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3242, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DPO", 0) < (0)) __PYX_ERR(5, 3242, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, i); __PYX_ERR(5, 3242, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3242, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3242, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3244, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3242, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3244, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_212DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("DPO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3265, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_DPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_214DX, "DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_215DX = {"DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_215DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214DX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("DX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3273, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(5, 3273, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(5, 3273, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3273, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3273, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3273, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3273, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3275, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3273, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3275, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3275, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3275, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_214DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("DX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3297, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3298, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_216EFI, "EFI(ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder\047s Force Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nParameters:\n timeperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_217EFI = {"EFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_217EFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216EFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("EFI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3306, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3306, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3306, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3306, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EFI", 0) < (0)) __PYX_ERR(5, 3306, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, i); __PYX_ERR(5, 3306, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3306, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3306, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3306, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3308, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3306, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3308, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 3308, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_216EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("EFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3329, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3330, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_EFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_218EMA, "EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_219EMA = {"EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_219EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_218EMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("EMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3338, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3338, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3338, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(5, 3338, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(5, 3338, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3338, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3338, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3340, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3338, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3340, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_218EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("EMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3361, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_220ER, "ER(ndarray real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_221ER = {"ER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_221ER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_220ER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ER (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3369, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ER", 0) < (0)) __PYX_ERR(5, 3369, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, i); __PYX_ERR(5, 3369, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3369, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3371, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3369, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3371, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_220ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ER", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3392, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_222ERI, "ERI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_223ERI = {"ERI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_223ERI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222ERI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ERI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3400, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ERI", 0) < (0)) __PYX_ERR(5, 3400, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, i); __PYX_ERR(5, 3400, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3400, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3400, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3400, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3402, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3400, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3402, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3402, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3402, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_222ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outbullpower = 0; + PyArrayObject *__pyx_v_outbearpower = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ERI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3426, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3427, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ERI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outbullpower); + __Pyx_GIVEREF((PyObject *)__pyx_v_outbullpower); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outbullpower)) != (0)) __PYX_ERR(5, 3434, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outbearpower); + __Pyx_GIVEREF((PyObject *)__pyx_v_outbearpower); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outbearpower)) != (0)) __PYX_ERR(5, 3434, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); + __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_224EXP, "EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_225EXP = {"EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_225EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224EXP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("EXP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3436, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(5, 3436, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(5, 3436, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3436, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3438, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_224EXP(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("EXP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3457, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_226FLOOR, "FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_227FLOOR = {"FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_227FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226FLOOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("FLOOR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3465, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(5, 3465, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(5, 3465, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3465, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3467, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_226FLOOR(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("FLOOR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3486, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_228FOSC, "FOSC(ndarray real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_229FOSC = {"FOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_229FOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228FOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("FOSC (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3494, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FOSC", 0) < (0)) __PYX_ERR(5, 3494, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, i); __PYX_ERR(5, 3494, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3496, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3494, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3496, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_228FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("FOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3517, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_FOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_230FRACTAL, "FRACTAL(ndarray high, ndarray low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_231FRACTAL = {"FRACTAL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_231FRACTAL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230FRACTAL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_leftbars; + int __pyx_v_rightbars; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("FRACTAL (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3525, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRACTAL", 0) < (0)) __PYX_ERR(5, 3525, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, i); __PYX_ERR(5, 3525, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3525, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3525, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3525, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3527, __pyx_L3_error) + } else { + __pyx_v_leftbars = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3527, __pyx_L3_error) + } else { + __pyx_v_rightbars = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3525, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3527, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3527, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_230FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outswinghigh = 0; + PyArrayObject *__pyx_v_outswinglow = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("FRACTAL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3551, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3552, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_FRACTAL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outswinghigh); + __Pyx_GIVEREF((PyObject *)__pyx_v_outswinghigh); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outswinghigh)) != (0)) __PYX_ERR(5, 3559, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outswinglow); + __Pyx_GIVEREF((PyObject *)__pyx_v_outswinglow); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outswinglow)) != (0)) __PYX_ERR(5, 3559, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outswinghigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_232HA, "HA(ndarray open, ndarray high, ndarray low, ndarray close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n haopen\n hahigh\n halow\n haclose"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_233HA = {"HA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_233HA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232HA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3561, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3561, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HA", 0) < (0)) __PYX_ERR(5, 3561, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, i); __PYX_ERR(5, 3561, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3561, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3561, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3561, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3561, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 3561, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_232HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outhaopen = 0; + PyArrayObject *__pyx_v_outhahigh = 0; + PyArrayObject *__pyx_v_outhalow = 0; + PyArrayObject *__pyx_v_outhaclose = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3590, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3591, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outhaopen); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhaopen); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outhaopen)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhahigh); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhahigh); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outhahigh)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhalow); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhalow); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outhalow)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outhaclose); + __Pyx_GIVEREF((PyObject *)__pyx_v_outhaclose); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_outhaclose)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outhaopen); + __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); + __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_234HMA, "HMA(ndarray real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_235HMA = {"HMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_235HMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234HMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3602, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3602, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3602, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HMA", 0) < (0)) __PYX_ERR(5, 3602, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, i); __PYX_ERR(5, 3602, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3602, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3602, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3604, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3602, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3604, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_234HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3625, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD, "HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD = {"HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HT_DCPERIOD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3633, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3633, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(5, 3633, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(5, 3633, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3633, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3633, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3635, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3654, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_238HT_DCPHASE, "HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE = {"HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238HT_DCPHASE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HT_DCPHASE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3662, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3662, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(5, 3662, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(5, 3662, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3662, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3662, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3664, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HT_DCPHASE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3683, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_240HT_PHASOR, "HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_241HT_PHASOR = {"HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_241HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240HT_PHASOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HT_PHASOR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3691, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3691, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(5, 3691, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(5, 3691, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3691, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3691, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3693, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_240HT_PHASOR(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinphase = 0; + PyArrayObject *__pyx_v_outquadrature = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HT_PHASOR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3714, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outinphase); + __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(5, 3721, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outquadrature); + __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(5, 3721, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinphase); + __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_242HT_SINE, "HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_243HT_SINE = {"HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_243HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242HT_SINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HT_SINE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3723, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3723, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(5, 3723, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(5, 3723, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3723, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3723, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3725, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_242HT_SINE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outsine = 0; + PyArrayObject *__pyx_v_outleadsine = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HT_SINE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3746, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outsine); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsine); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(5, 3753, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outleadsine); + __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(5, 3753, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outsine); + __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE, "HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE = {"HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HT_TRENDLINE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3755, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3755, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(5, 3755, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(5, 3755, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3755, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3755, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3757, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3776, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE, "HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE = {"HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("HT_TRENDMODE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3784, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(5, 3784, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(5, 3784, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3784, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3784, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3786, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("HT_TRENDMODE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3805, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_248IMI, "IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_249IMI = {"IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_249IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248IMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("IMI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3813, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(5, 3813, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(5, 3813, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3813, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3813, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3815, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3813, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3815, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3815, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_248IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("IMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3836, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3837, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_250KAMA, "KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_251KAMA = {"KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_251KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250KAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("KAMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3845, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(5, 3845, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(5, 3845, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3847, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3845, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3847, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_250KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("KAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3868, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_252KC, "KC(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_253KC = {"KC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_253KC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252KC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_atrperiod; + double __pyx_v_nbdev; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("KC (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3876, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KC", 0) < (0)) __PYX_ERR(5, 3876, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, i); __PYX_ERR(5, 3876, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3876, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3876, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3876, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3876, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3878, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3878, __pyx_L3_error) + } else { + __pyx_v_atrperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 3878, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 3876, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3878, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3878, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3878, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_252KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outrealupperband = 0; + PyArrayObject *__pyx_v_outrealmiddleband = 0; + PyArrayObject *__pyx_v_outreallowerband = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("KC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3906, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3907, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_KC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 3915, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 3915, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 3915, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_254KDJ, "KDJ(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder\047s Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder\047s Smoothed Moving Average)\nOutputs:\n k\n d\n j"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_255KDJ = {"KDJ", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_255KDJ, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254KDJ}; +static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("KDJ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3917, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KDJ", 0) < (0)) __PYX_ERR(5, 3917, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, i); __PYX_ERR(5, 3917, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3917, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3917, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3917, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)13)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)13)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 3917, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3919, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_254KDJ(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outk = 0; + PyArrayObject *__pyx_v_outd = 0; + PyArrayObject *__pyx_v_outj = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("KDJ", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3949, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3950, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_KDJ(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outk)) != (0)) __PYX_ERR(5, 3958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outd)) != (0)) __PYX_ERR(5, 3958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outj); + __Pyx_GIVEREF((PyObject *)__pyx_v_outj); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outj)) != (0)) __PYX_ERR(5, 3958, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outk); + __Pyx_XDECREF((PyObject *)__pyx_v_outd); + __Pyx_XDECREF((PyObject *)__pyx_v_outj); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_256LINEARREG, "LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_257LINEARREG = {"LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_257LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256LINEARREG}; +static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("LINEARREG (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3960, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(5, 3960, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(5, 3960, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3960, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3960, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3962, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3960, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3962, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_256LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("LINEARREG", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3983, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE, "LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE = {"LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("LINEARREG_ANGLE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3991, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3991, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3991, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(5, 3991, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(5, 3991, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3991, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3991, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3993, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3991, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3993, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT, "LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT = {"LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4022, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(5, 4022, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(5, 4022, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4022, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4022, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4024, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4022, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4024, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4045, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE, "LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE = {"LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("LINEARREG_SLOPE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4053, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4053, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4053, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(5, 4053, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(5, 4053, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4053, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4053, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4055, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4053, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4055, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4076, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_264LN, "LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_265LN = {"LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_265LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264LN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("LN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4084, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(5, 4084, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(5, 4084, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4084, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4084, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4086, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_264LN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("LN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4105, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_267LOG10(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_266LOG10, "LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_267LOG10 = {"LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_267LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266LOG10}; +static PyObject *__pyx_pw_5talib_7_ta_lib_267LOG10(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("LOG10 (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4113, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(5, 4113, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(5, 4113, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4113, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4113, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4115, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_266LOG10(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("LOG10", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4134, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_268MA, "MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_269MA = {"MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_269MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268MA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4142, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(5, 4142, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(5, 4142, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4142, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4142, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4144, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4144, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4142, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4144, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_268MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4166, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_270MACD, "MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_271MACD = {"MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_271MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270MACD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MACD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4174, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(5, 4174, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(5, 4174, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4174, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4174, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4176, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4176, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4176, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 4174, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4176, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_270MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MACD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4203, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4211, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4211, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4211, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_272MACDEXT, "MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_273MACDEXT = {"MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_273MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272MACDEXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[7] = {0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MACDEXT (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4213, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(5, 4213, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(5, 4213, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4213, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)((int)0)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)((int)0)); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 4213, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_272MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MACDEXT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4245, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4253, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_274MACDFIX, "MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_275MACDFIX = {"MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_275MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274MACDFIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MACDFIX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4255, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4255, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4255, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(5, 4255, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(5, 4255, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4255, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4255, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4257, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4255, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4257, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_274MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MACDFIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4282, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmacd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4290, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4290, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4290, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_276MAMA, "MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_277MAMA = {"MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_277MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276MAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MAMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4292, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(5, 4292, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(5, 4292, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4292, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4292, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4294, __pyx_L3_error) + } else { + __pyx_v_fastlimit = ((double)((double)-4e37)); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4294, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4292, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4294, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_276MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outmama = 0; + PyArrayObject *__pyx_v_outfama = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4318, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmama); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmama); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(5, 4325, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfama); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfama); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(5, 4325, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmama); + __Pyx_XDECREF((PyObject *)__pyx_v_outfama); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_278MARKETFI, "MARKETFI(ndarray high, ndarray low, ndarray volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_279MARKETFI = {"MARKETFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_279MARKETFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278MARKETFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MARKETFI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4327, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MARKETFI", 0) < (0)) __PYX_ERR(5, 4327, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, i); __PYX_ERR(5, 4327, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4327, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4327, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4327, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_volume = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 4327, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4329, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4329, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4329, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_278MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MARKETFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4349, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4350, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MARKETFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_280MASSI, "MASSI(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_281MASSI = {"MASSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_281MASSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280MASSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MASSI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4358, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MASSI", 0) < (0)) __PYX_ERR(5, 4358, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, i); __PYX_ERR(5, 4358, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4358, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4358, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4358, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4360, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4360, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 4358, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4360, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4360, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_280MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MASSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4382, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4383, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MASSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_282MAVP, "MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_283MAVP = {"MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_283MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282MAVP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MAVP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4391, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(5, 4391, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(5, 4391, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4391, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4391, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4391, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_periods = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4393, __pyx_L3_error) + } else { + __pyx_v_minperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4393, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4393, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 4391, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(5, 4393, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_282MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MAVP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_periods); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4417, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4418, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_periods); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_284MAX, "MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_285MAX = {"MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_285MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284MAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MAX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4426, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4426, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4426, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(5, 4426, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(5, 4426, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4426, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4426, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4428, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4426, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4428, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_284MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MAX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4449, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286MAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4457, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4457, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4457, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(5, 4457, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4457, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4457, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4457, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4459, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4457, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4459, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_286MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + npy_intp __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MAXINDEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4480, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + __pyx_t_3 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); + } + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_288MEDPRICE, "MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_289MEDPRICE = {"MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_289MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_288MEDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MEDPRICE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4491, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4491, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4491, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(5, 4491, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(5, 4491, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4491, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4491, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4491, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4493, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4493, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_288MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MEDPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4512, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4513, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_291MFI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_290MFI, "MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_291MFI = {"MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_291MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290MFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_291MFI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MFI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4521, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(5, 4521, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(5, 4521, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4521, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4521, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4521, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4521, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4523, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 4521, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_290MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MFI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4546, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4547, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_292MIDPOINT, "MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_293MIDPOINT = {"MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_293MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_292MIDPOINT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MIDPOINT (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4555, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4555, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4555, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(5, 4555, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(5, 4555, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4555, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4555, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4557, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4555, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4557, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_292MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MIDPOINT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4578, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_294MIDPRICE, "MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_295MIDPRICE = {"MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_295MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294MIDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MIDPRICE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4586, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(5, 4586, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(5, 4586, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4586, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4586, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4588, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4586, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4588, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4588, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_294MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MIDPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4609, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4610, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_296MIN, "MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_297MIN = {"MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_297MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296MIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MIN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4618, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(5, 4618, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(5, 4618, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4618, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4618, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4620, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4618, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4620, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_296MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4641, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_298MININDEX, "MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_299MININDEX = {"MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_299MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298MININDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MININDEX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4649, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4649, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4649, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(5, 4649, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(5, 4649, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4649, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4649, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4651, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4649, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4651, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_298MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + npy_intp __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MININDEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4672, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + __pyx_t_3 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); + } + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_300MINMAX, "MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_301MINMAX = {"MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_301MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300MINMAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MINMAX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4683, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(5, 4683, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(5, 4683, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4683, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4685, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4683, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4685, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_300MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outmin = 0; + PyArrayObject *__pyx_v_outmax = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MINMAX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4708, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outmin); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmin); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(5, 4715, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmax); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmax); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(5, 4715, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmin); + __Pyx_XDECREF((PyObject *)__pyx_v_outmax); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_302MINMAXINDEX, "MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX = {"MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302MINMAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MINMAXINDEX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4717, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(5, 4717, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4717, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4717, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4719, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4717, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4719, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outminidx = 0; + PyArrayObject *__pyx_v_outmaxidx = 0; + int *__pyx_v_outminidx_data; + int __pyx_v_i; + int *__pyx_v_outmaxidx_data; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + npy_intp __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MINMAXINDEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4742, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); + + __pyx_t_3 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outminidx_data[__pyx_t_4]) = ((__pyx_v_outminidx_data[__pyx_t_4]) + __pyx_v_begidx); + } + + + __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); + + __pyx_t_3 = __pyx_v_length; + + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outmaxidx_data[__pyx_t_4]) = ((__pyx_v_outmaxidx_data[__pyx_t_4]) + __pyx_v_begidx); + } + + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outminidx); + __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(5, 4755, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx); + __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(5, 4755, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); + __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_304MINUS_DI, "MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_305MINUS_DI = {"MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_305MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304MINUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MINUS_DI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4757, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(5, 4757, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(5, 4757, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4757, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4757, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4757, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4759, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4757, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4759, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_304MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MINUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4781, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4782, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_306MINUS_DM, "MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_307MINUS_DM = {"MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_307MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306MINUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MINUS_DM (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4790, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(5, 4790, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(5, 4790, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4790, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4790, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4792, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4790, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4792, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4792, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_306MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MINUS_DM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4813, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4814, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_308MOM, "MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_309MOM = {"MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_309MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_308MOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MOM (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4822, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4822, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4822, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(5, 4822, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(5, 4822, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4822, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4822, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4824, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4822, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4824, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_308MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MOM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4845, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_310MULT, "MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_311MULT = {"MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_311MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_310MULT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MULT (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4853, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4853, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(5, 4853, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(5, 4853, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4853, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4853, __pyx_L3_error) + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4853, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 4855, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 4855, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_310MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MULT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4875, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4876, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_312NATR, "NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_313NATR = {"NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_313NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312NATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("NATR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4884, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(5, 4884, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(5, 4884, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4884, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4884, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4884, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4886, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4884, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4886, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_312NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("NATR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4908, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4909, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_314NVI, "NVI(ndarray close, ndarray volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_315NVI = {"NVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_315NVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314NVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("NVI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4917, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4917, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NVI", 0) < (0)) __PYX_ERR(5, 4917, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, i); __PYX_ERR(5, 4917, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4917, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4917, __pyx_L3_error) + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4917, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4919, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_314NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("NVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4938, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4939, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_NVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_316OBV, "OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_317OBV = {"OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_317OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316OBV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("OBV (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4947, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4947, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4947, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(5, 4947, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(5, 4947, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4947, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4947, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4947, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4949, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4949, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_316OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("OBV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4969, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4970, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_318PERCENTILE, "PERCENTILE(ndarray real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_319PERCENTILE = {"PERCENTILE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_319PERCENTILE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318PERCENTILE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_percentile; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PERCENTILE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4978, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTILE", 0) < (0)) __PYX_ERR(5, 4978, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, i); __PYX_ERR(5, 4978, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4980, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4980, __pyx_L3_error) + } else { + __pyx_v_percentile = ((double)((double)50.0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4978, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4980, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_318PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PERCENTILE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5002, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PERCENTILE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_320PERCENTRANK, "PERCENTRANK(ndarray real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_321PERCENTRANK = {"PERCENTRANK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_321PERCENTRANK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320PERCENTRANK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PERCENTRANK (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5010, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5010, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5010, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTRANK", 0) < (0)) __PYX_ERR(5, 5010, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, i); __PYX_ERR(5, 5010, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5010, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5010, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5012, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5010, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5012, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_320PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PERCENTRANK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5033, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PERCENTRANK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_322PLUS_DI, "PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_323PLUS_DI = {"PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_323PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322PLUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PLUS_DI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5041, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(5, 5041, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(5, 5041, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5041, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5041, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5041, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5041, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5043, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5041, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_322PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PLUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5065, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5066, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_324PLUS_DM, "PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_325PLUS_DM = {"PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_325PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324PLUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PLUS_DM (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5074, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(5, 5074, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(5, 5074, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5074, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5074, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5076, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5074, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5076, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5076, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_324PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PLUS_DM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5097, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5098, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_326PPO, "PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_327PPO = {"PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_327PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326PPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PPO (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5106, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(5, 5106, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(5, 5106, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5106, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5106, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5108, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5108, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5108, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5106, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5108, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_326PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PPO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5131, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_328PVI, "PVI(ndarray close, ndarray volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_329PVI = {"PVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_329PVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328PVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PVI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5139, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5139, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5139, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVI", 0) < (0)) __PYX_ERR(5, 5139, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, i); __PYX_ERR(5, 5139, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5139, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5139, __pyx_L3_error) + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5139, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5141, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5141, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_328PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5160, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5161, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_330PVO, "PVO(ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_331PVO = {"PVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_331PVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330PVO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PVO (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5169, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVO", 0) < (0)) __PYX_ERR(5, 5169, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, i); __PYX_ERR(5, 5169, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5169, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5169, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5171, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5171, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5171, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)1)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5169, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5171, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_330PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PVO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5194, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PVO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_332PVT, "PVT(ndarray close, ndarray volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_333PVT = {"PVT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_333PVT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332PVT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PVT (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5202, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5202, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5202, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVT", 0) < (0)) __PYX_ERR(5, 5202, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, i); __PYX_ERR(5, 5202, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5202, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5202, __pyx_L3_error) + } + __pyx_v_close = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5202, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5204, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5204, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_332PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PVT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5223, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_PVT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_334QSTICK, "QSTICK(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_335QSTICK = {"QSTICK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_335QSTICK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_334QSTICK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("QSTICK (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5232, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5232, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5232, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5232, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "QSTICK", 0) < (0)) __PYX_ERR(5, 5232, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, i); __PYX_ERR(5, 5232, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5232, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5232, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5232, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_close = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5234, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5232, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 5234, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5234, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_334QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("QSTICK", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5255, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5256, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_QSTICK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_336RMA, "RMA(ndarray real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder\047s Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_337RMA = {"RMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_337RMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_336RMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("RMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5264, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RMA", 0) < (0)) __PYX_ERR(5, 5264, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, i); __PYX_ERR(5, 5264, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5264, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5266, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5264, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5266, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_336RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("RMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5287, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_RMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_338ROC, "ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_339ROC = {"ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_339ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_338ROC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ROC (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5295, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5295, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5295, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(5, 5295, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(5, 5295, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5295, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5295, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5297, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5295, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5297, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_338ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ROC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5318, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_340ROCP, "ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_341ROCP = {"ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_341ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_340ROCP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ROCP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5326, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5326, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5326, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(5, 5326, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(5, 5326, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5326, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5326, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5328, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5326, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5328, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_340ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ROCP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5349, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_342ROCR, "ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_343ROCR = {"ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_343ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_342ROCR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ROCR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5357, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5357, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5357, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(5, 5357, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(5, 5357, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5357, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5357, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5359, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5357, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5359, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_342ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ROCR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5380, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_344ROCR100, "ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_345ROCR100 = {"ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_345ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_344ROCR100}; +static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ROCR100 (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5388, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5388, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5388, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(5, 5388, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(5, 5388, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5388, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5388, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5390, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5388, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5390, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_344ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ROCR100", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5411, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_346RSI, "RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_347RSI = {"RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_347RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346RSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("RSI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5419, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(5, 5419, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(5, 5419, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5419, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5421, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5419, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5421, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_346RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("RSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5442, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_348RVI, "RVI(ndarray real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_349RVI = {"RVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_349RVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_348RVI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("RVI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5450, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVI", 0) < (0)) __PYX_ERR(5, 5450, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, i); __PYX_ERR(5, 5450, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5450, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5450, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5452, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5452, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5450, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5452, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_348RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("RVI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5474, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_RVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_350RVOL, "RVOL(ndarray volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_351RVOL = {"RVOL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_351RVOL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350RVOL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("RVOL (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5482, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVOL", 0) < (0)) __PYX_ERR(5, 5482, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, i); __PYX_ERR(5, 5482, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5482, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5484, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5482, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5484, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_350RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("RVOL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5505, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_RVOL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_352SAR, "SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_353SAR = {"SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_353SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352SAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5513, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(5, 5513, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(5, 5513, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5513, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5513, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5515, __pyx_L3_error) + } else { + __pyx_v_acceleration = ((double)((double)0.02)); + } + if (values[3]) { + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5515, __pyx_L3_error) + } else { + __pyx_v_maximum = ((double)((double)0.2)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 5513, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5515, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5515, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_352SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5537, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5538, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_354SAREXT, "SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_355SAREXT = {"SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_355SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354SAREXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SAREXT (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5546, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(5, 5546, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(5, 5546, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5546, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5546, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_startvalue = ((double)((double)-4e37)); + } + if (values[3]) { + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_offsetonreverse = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationinitlong = ((double)((double)-4e37)); + } + if (values[5]) { + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationlong = ((double)((double)-4e37)); + } + if (values[6]) { + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); + } + if (values[7]) { + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationinitshort = ((double)((double)-4e37)); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)((double)-4e37)); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(5, 5546, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_354SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SAREXT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5576, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5577, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_356SIN, "SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_357SIN = {"SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_357SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_356SIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SIN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5585, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(5, 5585, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(5, 5585, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5585, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5585, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5587, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_356SIN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5606, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358SINH, "SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359SINH = {"SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358SINH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SINH (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5614, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5614, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(5, 5614, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(5, 5614, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5614, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5614, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5616, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_358SINH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SINH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5635, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360SMA, "SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361SMA = {"SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360SMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5643, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5643, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5643, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(5, 5643, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(5, 5643, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5643, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5643, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5645, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5643, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5645, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_360SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5666, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362SMI, "SMI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363SMI = {"SMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363SMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362SMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[7] = {0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SMI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5674, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMI", 0) < (0)) __PYX_ERR(5, 5674, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, i); __PYX_ERR(5, 5674, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5674, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(5, 5674, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_362SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outsmi = 0; + PyArrayObject *__pyx_v_outsmisignal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SMI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5703, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5704, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outsmi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsmi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsmi)) != (0)) __PYX_ERR(5, 5711, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsmisignal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsmisignal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outsmisignal)) != (0)) __PYX_ERR(5, 5711, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); + __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364SQRT, "SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365SQRT = {"SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364SQRT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SQRT (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5713, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(5, 5713, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(5, 5713, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5713, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5713, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5715, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_364SQRT(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SQRT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5734, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366STDDEV, "STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367STDDEV = {"STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366STDDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("STDDEV (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5742, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(5, 5742, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(5, 5742, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5742, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5744, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5744, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5742, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5744, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_366STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STDDEV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5766, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368STOCH, "STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369STOCH = {"STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368STOCH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("STOCH (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5774, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(5, 5774, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(5, 5774, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5774, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5774, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5774, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)0)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 5774, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5776, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5776, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5776, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_368STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outslowk = 0; + PyArrayObject *__pyx_v_outslowd = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STOCH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5804, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5805, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outslowk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(5, 5812, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outslowd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(5, 5812, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outslowk); + __Pyx_XDECREF((PyObject *)__pyx_v_outslowd); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370STOCHF, "STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371STOCHF = {"STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370STOCHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("STOCHF (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5814, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(5, 5814, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(5, 5814, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5814, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5814, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5814, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5814, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5816, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5816, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5816, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 5814, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5816, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5816, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5816, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_370STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STOCHF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5839, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5842, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5843, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outfastk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(5, 5850, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfastd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(5, 5850, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372STOCHRSI, "STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373STOCHRSI = {"STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372STOCHRSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("STOCHRSI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5852, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(5, 5852, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(5, 5852, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5852, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 5852, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5854, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_372STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STOCHRSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5880, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outfastk); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(5, 5887, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outfastd); + __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(5, 5887, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374SUB, "SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375SUB = {"SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374SUB}; +static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real0 = 0; + PyArrayObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SUB (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5889, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5889, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5889, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(5, 5889, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(5, 5889, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5889, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5889, __pyx_L3_error) + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5889, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 5891, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 5891, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_374SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SUB", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5911, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5912, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376SUM, "SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377SUM = {"SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376SUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SUM (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5920, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5920, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5920, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(5, 5920, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(5, 5920, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5920, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5920, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5922, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5920, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5922, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_376SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SUM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5943, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378SUPERTREND, "SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379SUPERTREND = {"SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378SUPERTREND}; +static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SUPERTREND (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5951, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUPERTREND", 0) < (0)) __PYX_ERR(5, 5951, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, i); __PYX_ERR(5, 5951, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5951, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5951, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5951, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5951, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5953, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5953, __pyx_L3_error) + } else { + __pyx_v_multiplier = ((double)((double)3.0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(5, 5951, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5953, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5953, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5953, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_378SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SUPERTREND", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5978, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5979, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __Pyx_GIVEREF((PyObject *)__pyx_v_outreal); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outreal)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __Pyx_GIVEREF((PyObject *)__pyx_v_outinteger); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outinteger)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380T3, "T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381T3 = {"T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380T3}; +static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_vfactor; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("T3 (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5988, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(5, 5988, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(5, 5988, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5988, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5988, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5990, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5990, __pyx_L3_error) + } else { + __pyx_v_vfactor = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5988, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5990, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_380T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("T3", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6012, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382TAN, "TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383TAN = {"TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382TAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TAN (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6020, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6020, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(5, 6020, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(5, 6020, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6020, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6020, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6022, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_382TAN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6041, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384TANH, "TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385TANH = {"TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384TANH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TANH (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6049, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6049, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(5, 6049, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(5, 6049, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6049, __pyx_L3_error) + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6049, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6051, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_384TANH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TANH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6070, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_387TEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386TEMA, "TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387TEMA = {"TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386TEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_387TEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TEMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6078, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6078, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6078, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(5, 6078, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(5, 6078, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6078, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6078, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6080, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6078, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6080, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_386TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6101, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388TRANGE, "TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389TRANGE = {"TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388TRANGE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6109, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(5, 6109, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(5, 6109, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6109, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6109, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6109, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6109, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6111, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_388TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TRANGE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6131, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6132, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390TRIMA, "TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391TRIMA = {"TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390TRIMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6140, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(5, 6140, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(5, 6140, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6140, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6140, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6142, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6140, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6142, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_390TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TRIMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6163, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392TRIX, "TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393TRIX = {"TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392TRIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TRIX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6171, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(5, 6171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(5, 6171, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6171, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6173, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6171, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6173, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_392TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TRIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6194, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394TSF, "TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395TSF = {"TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394TSF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TSF (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6202, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6202, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6202, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(5, 6202, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(5, 6202, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6202, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6202, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6204, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6202, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6204, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_394TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TSF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6225, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_397TSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396TSI, "TSI(ndarray real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397TSI = {"TSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397TSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396TSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_397TSI(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TSI (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6233, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSI", 0) < (0)) __PYX_ERR(5, 6233, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, i); __PYX_ERR(5, 6233, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6233, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6233, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6235, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6235, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6233, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6235, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_396TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6257, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_399TYPPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398TYPPRICE, "TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399TYPPRICE = {"TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398TYPPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_399TYPPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6265, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6265, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(5, 6265, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(5, 6265, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6265, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6265, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6265, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6265, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6267, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_398TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TYPPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6287, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6288, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400ULTOSC, "ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401ULTOSC = {"ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400ULTOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6296, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(5, 6296, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(5, 6296, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6296, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6296, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6296, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6298, __pyx_L3_error) + } else { + __pyx_v_timeperiod1 = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6298, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6298, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 6296, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6298, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6298, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6298, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_400ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ULTOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6322, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6323, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_403VAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402VAR, "VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403VAR = {"VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402VAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_403VAR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VAR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6331, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(5, 6331, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(5, 6331, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6331, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6331, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6333, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6333, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6331, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6333, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_402VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("VAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6355, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404VHF, "VHF(ndarray real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405VHF = {"VHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405VHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404VHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VHF (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6363, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VHF", 0) < (0)) __PYX_ERR(5, 6363, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, i); __PYX_ERR(5, 6363, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6363, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6365, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6363, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6365, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_404VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("VHF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6386, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_VHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406VORTEX, "VORTEX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407VORTEX = {"VORTEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407VORTEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406VORTEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VORTEX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6394, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VORTEX", 0) < (0)) __PYX_ERR(5, 6394, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, i); __PYX_ERR(5, 6394, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6394, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6394, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6394, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6396, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6394, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6396, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6396, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6396, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_406VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outplusvi = 0; + PyArrayObject *__pyx_v_outminusvi = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("VORTEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6420, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6421, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_VORTEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_outplusvi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outplusvi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outplusvi)) != (0)) __PYX_ERR(5, 6428, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outminusvi); + __Pyx_GIVEREF((PyObject *)__pyx_v_outminusvi); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outminusvi)) != (0)) __PYX_ERR(5, 6428, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408VWAP, "VWAP(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409VWAP = {"VWAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409VWAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408VWAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + PyArrayObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VWAP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6430, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6430, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6430, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6430, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6430, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWAP", 0) < (0)) __PYX_ERR(5, 6430, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, i); __PYX_ERR(5, 6430, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6430, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6430, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6430, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6430, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_volume = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 6430, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_408VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("VWAP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6453, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6454, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_VWAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410VWMA, "VWMA(ndarray real, ndarray volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411VWMA = {"VWMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411VWMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410VWMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + PyArrayObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VWMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6462, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWMA", 0) < (0)) __PYX_ERR(5, 6462, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, i); __PYX_ERR(5, 6462, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6462, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6462, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6464, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 6462, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6464, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6464, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_410VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("VWMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6486, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6487, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_VWMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412WAD, "WAD(ndarray high, ndarray low, ndarray close)\n\nWAD(high, low, close)\n\nWilliams\047 Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413WAD = {"WAD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413WAD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412WAD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("WAD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6495, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6495, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6495, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6495, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAD", 0) < (0)) __PYX_ERR(5, 6495, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, i); __PYX_ERR(5, 6495, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6495, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6495, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6495, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6495, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6497, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6497, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6497, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_412WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("WAD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6517, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6518, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_WAD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414WCLPRICE, "WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415WCLPRICE = {"WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414WCLPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("WCLPRICE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6526, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6526, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6526, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6526, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(5, 6526, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(5, 6526, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6526, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6526, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6526, __pyx_L3_error) + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6526, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6528, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6528, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6528, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_414WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("WCLPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6548, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6549, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416WILLR, "WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams\047 %R (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417WILLR = {"WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416WILLR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("WILLR (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6557, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(5, 6557, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(5, 6557, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6557, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6557, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6557, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_close = ((PyArrayObject *)values[2]); + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6559, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6557, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6559, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_416WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("WILLR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6581, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6582, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418WMA, "WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419WMA = {"WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418WMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("WMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6590, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(5, 6590, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(5, 6590, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6590, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6592, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6590, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6592, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_418WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("WMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6613, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420ZLEMA, "ZLEMA(ndarray real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421ZLEMA = {"ZLEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421ZLEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420ZLEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ZLEMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6621, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZLEMA", 0) < (0)) __PYX_ERR(5, 6621, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(5, 6621, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6621, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6623, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6621, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6623, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_420ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ZLEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6644, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_ZLEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422str2bytes, "str2bytes(s)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422str2bytes}; +static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_s = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 73, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 73, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 73, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + } + __pyx_v_s = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 73, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_422str2bytes(__pyx_self, __pyx_v_s); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("str2bytes", 0); + + __pyx_t_2 = NULL; + __pyx_t_3 = 1; + { + PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_s, __pyx_mstate_global->__pyx_n_u_ascii}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424bytes2str, "bytes2str(b)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424bytes2str}; +static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_b = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 76, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 76, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 76, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + } + __pyx_v_b = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 76, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_424bytes2str(__pyx_self, __pyx_v_b); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("bytes2str", 0); + + __pyx_t_2 = __pyx_v_b; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426str2bytes, "str2bytes(s)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426str2bytes}; +static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_s = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 81, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 81, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 81, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + } + __pyx_v_s = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 81, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_426str2bytes(__pyx_self, __pyx_v_s); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("str2bytes", 0); + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_s); + __pyx_r = __pyx_v_s; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428bytes2str, "bytes2str(b)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428bytes2str}; +static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_b = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 84, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 84, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 84, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) + } + __pyx_v_b = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 84, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_428bytes2str(__pyx_self, __pyx_v_b); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bytes2str", 0); + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_b); + __pyx_r = __pyx_v_b; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function___init__, "Function.__init__(self, function_name, func_object, *args, **kwargs)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function___init__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_function_name = 0; + PyObject *__pyx_v_func_object = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 3, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_func_object,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 116, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + default: + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + const Py_ssize_t used_pos_args = (kwd_pos_args < 3) ? kwd_pos_args : 3; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__init__", 1) < (0)) __PYX_ERR(2, 116, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, i); __PYX_ERR(2, 116, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_function_name = values[1]; + __pyx_v_func_object = values[2]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, __pyx_nargs); __PYX_ERR(2, 116, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_2 = __pyx_v_function_name; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 118, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__namestr, __pyx_t_1) < (0)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str2bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_local); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_3 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); + __pyx_t_3 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata, __pyx_t_1) < (0)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object, __pyx_v_func_object) < (0)) __PYX_ERR(2, 127, __pyx_L1_error) + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_2__local, "Function.__local(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__local = {"__local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_3__local, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_2__local}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__local (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 129, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__local", 0) < (0)) __PYX_ERR(2, 129, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, i); __PYX_ERR(2, 129, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 129, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__local(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_info = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_param_name = NULL; + PyObject *__pyx_v_output_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__local", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 132, __pyx_L1_error) + __pyx_t_3 = (!__pyx_t_2); + + + if (__pyx_t_3) { + + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, Py_None) < (0)) __PYX_ERR(2, 133, __pyx_L1_error) + + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_1) < (0)) __PYX_ERR(2, 134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs, __pyx_t_1) < (0)) __PYX_ERR(2, 138, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 140, __pyx_L1_error) + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_1) < (0)) __PYX_ERR(2, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __pyx_t_8; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_inputs}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + { + __pyx_t_1 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 146, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_8) < 0))) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(2, 151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_7) < 0))) __PYX_ERR(2, 152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_8 = NULL; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_opt_inputs}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_1}; + __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + for (;;) { + { + __pyx_t_7 = __pyx_t_9(__pyx_t_1); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 155, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_8 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_8); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_v_i}; + __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(2, 158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_7 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_7); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_1) < 0))) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __pyx_t_8; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_outputs}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + { + __pyx_t_1 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 163, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_output_name, __pyx_t_1) < 0))) __PYX_ERR(2, 166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(2, 167, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_7) < 0))) __PYX_ERR(2, 168, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_local); + __pyx_r = __pyx_v_local; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_info); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XDECREF(__pyx_v_output_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_4info, "Function.info(self)\n\nReturns a copy of the function\047s info dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {"info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_5info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_4info}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("info (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 171, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "info", 0) < (0)) __PYX_ERR(2, 171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, i); __PYX_ERR(2, 171, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 171, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("info", 0); + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_6function_flags, "Function.function_flags(self)\n\nReturns any function flags defined for this indicator function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {"function_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("function_flags (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 178, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "function_flags", 0) < (0)) __PYX_ERR(2, 178, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, i); __PYX_ERR(2, 178, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 178, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("function_flags", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_8output_flags, "Function.output_flags(self)\n\nReturns the flags for each output for this indicator function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {"output_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("output_flags (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 185, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_flags", 0) < (0)) __PYX_ERR(2, 185, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, i); __PYX_ERR(2, 185, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 185, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("output_flags", 0); + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_3; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_10get_input_names, "Function.get_input_names(self)\n\nReturns the dict of input price series names that specifies which\nof the ndarrays in input_arrays will be used to calculate the function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {"get_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_input_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 192, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_names", 0) < (0)) __PYX_ERR(2, 192, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, i); __PYX_ERR(2, 192, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 192, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_input_names", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 199, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 199, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(2, 200, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_12set_input_names, "Function.set_input_names(self, input_names)\n\nSets the input price series names to use."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {"set_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_names = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_input_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_names,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 203, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_names", 0) < (0)) __PYX_ERR(2, 203, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, i); __PYX_ERR(2, 203, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_names = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 203, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_input_names", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_input_names; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 208, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 208, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 208, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_7); + } else { + __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + } + #else + __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 208, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(2, 209, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(2, 210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 211, __pyx_L1_error) + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays, "Function.get_input_arrays(self)\n\nReturns a copy of the dict of input arrays in use."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {"get_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_input_arrays (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 215, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_arrays", 0) < (0)) __PYX_ERR(2, 215, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, i); __PYX_ERR(2, 215, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 215, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_input_arrays", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + } else { + + __pyx_t_2 = __pyx_t_3; + + goto __pyx_L4_bool_binop_done; + } + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 221, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_2 = __pyx_t_3; + + __pyx_L4_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + } + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays, "Function.set_input_arrays(self, input_arrays)\n\nSets the dict of input_arrays to use. Returns True/False for\nsubclasses:\n\nIf input_arrays is a dict with the keys open, high, low, close and\nvolume, it is assigned as the input_array to use and this function\nreturns True, returning False otherwise. If you implement your own\ndata type and wish to subclass Function, you should wrap this function\nwith an if-statement:\n\nclass CustomFunction(Function):\n def __init__(self, function_name):\n Function.__init__(self, function_name)\n\n def set_input_arrays(self, input_data):\n if Function.set_input_arrays(self, input_data):\n return True\n elif isinstance(input_data, some_module.CustomDataType):\n input_arrays = Function.get_input_arrays(self)\n # convert input_data to input_arrays and then call the super\n Function.set_input_arrays(self, input_arrays)\n return True\n return False"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {"set_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_arrays = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_input_arrays (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 226, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_arrays", 0) < (0)) __PYX_ERR(2, 226, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, i); __PYX_ERR(2, 226, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_arrays = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 226, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_missing_keys = NULL; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_missing = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11[4]; + int __pyx_t_12; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_input_arrays", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 252, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_missing_keys = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 254, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 254, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); + __pyx_t_1 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + } else { + + __pyx_t_2 = __pyx_t_7; + + goto __pyx_L7_bool_binop_done; + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 256, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_t_7; + + __pyx_L7_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); + __pyx_t_1 = 0; + + goto __pyx_L6; + } + + /*else*/ { + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 259, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); + __pyx_t_1 = 0; + } + __pyx_L6:; + + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 260, __pyx_L1_error) + if (__pyx_t_2) { + + + __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 261, __pyx_L1_error) + + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 262, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_5 == 0); + + + if (likely(__pyx_t_2)) { + + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_v_input_arrays) < (0)) __PYX_ERR(2, 263, __pyx_L1_error) + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 264, __pyx_L1_error) + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_1 = NULL; + + __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 268, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_5 > 1); + + + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_s); + __pyx_t_9 = __pyx_mstate_global->__pyx_n_u_s; + } else { + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3); + __pyx_t_9 = __pyx_mstate_global->__pyx_kp_u__3; + } + + __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_missing_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_input_arrays_parameter_missing_r; + __pyx_t_11[1] = __pyx_t_10; + __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_11[3] = __pyx_t_9; + + __pyx_t_5 = 50; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[3]); + #endif + __pyx_t_12 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_12 |= __Pyx_PyUnicode_KIND_04(__pyx_t_11[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_11[3]); + #endif + __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_11, 4, __pyx_t_5, __pyx_t_12); + if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_13}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 267, __pyx_L1_error) + } + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_missing_keys); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_missing); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_18get_parameters, "Function.get_parameters(self)\n\nReturns the function\047s optional parameters and their default values."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {"get_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 275, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_parameters", 0) < (0)) __PYX_ERR(2, 275, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, i); __PYX_ERR(2, 275, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 275, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_parameters", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_4 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 281, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 281, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(2, 282, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_20set_parameters, "Function.set_parameters(self, parameters=None, **kwargs)\n\nSets the function parameter values."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {"set_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_parameters = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_parameters (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parameters,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 285, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, kwd_pos_args, __pyx_kwds_len, "set_parameters", 1) < (0)) __PYX_ERR(2, 285, __pyx_L3_error) + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, i); __PYX_ERR(2, 285, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + } + __pyx_v_self = values[0]; + __pyx_v_parameters = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 285, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(__pyx_self, __pyx_v_self, __pyx_v_parameters, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_param = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_parameters", 0); + __Pyx_INCREF(__pyx_v_parameters); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 290, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __Pyx_INCREF(__pyx_v_parameters); + __pyx_t_1 = __pyx_v_parameters; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_1 = __pyx_t_3; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_L3_bool_binop_done:; + __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_v_parameters; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_kwargs}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_v_parameters; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 292, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 292, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 292, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_7); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_8); + } else { + __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_8); + } + #else + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); + __pyx_t_8 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param, __pyx_v_value}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 293, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 295, __pyx_L1_error) + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < 0))) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_param); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_parameters); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_22set_function_args, "Function.set_function_args(self, *args, **kwargs)\n\noptional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {"set_function_args", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_function_args (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 300, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + default: + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 300, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "set_function_args", 1) < (0)) __PYX_ERR(2, 300, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, i); __PYX_ERR(2, 300, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 300, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 300, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + int __pyx_v_update_info; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_skip_first = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_param_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_function_args", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_v_update_info = 0; + + __pyx_t_2 = 0; + __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_5; + __pyx_t_5 = 0; + while (1) { + __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4); + if (unlikely(__pyx_t_6 == 0)) break; + if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(2, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 308, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_v_value}; + __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 310, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_value, __pyx_t_5) < 0))) __PYX_ERR(2, 311, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_v_update_info = 1; + + } + + goto __pyx_L5; + } + + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 313, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_5) < 0))) __PYX_ERR(2, 314, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(2, 315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + } + __pyx_L5:; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 317, __pyx_L1_error) + __pyx_t_7 = (__pyx_temp != 0); + } + + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_v_skip_first = __pyx_mstate_global->__pyx_int_0; + + __pyx_t_5 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_5); + __pyx_t_10 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); + __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_mstate_global->__pyx_int_1); + + } + + __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 321, __pyx_L1_error) + __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_t_7 = __Pyx_PyObject_CompareBoolGt_int_int(__pyx_t_1, __pyx_v_skip_first, Py_GT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 321, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { + __pyx_t_5 = __pyx_t_10; __Pyx_INCREF(__pyx_t_5); + __pyx_t_3 = 0; + __pyx_t_11 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 322, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + for (;;) { + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 322, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + __pyx_t_10 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_3; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 322, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3)); + #else + __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); + #endif + ++__pyx_t_3; + } + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error) + } else { + __pyx_t_10 = __pyx_t_11(__pyx_t_5); + if (unlikely(!__pyx_t_10)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 322, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_10); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_10); + __pyx_t_10 = 0; + __Pyx_INCREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_10 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_10; + __pyx_t_10 = 0; + + __pyx_t_10 = __Pyx_PyNumber_InPlaceAdd_object_int(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_10); + __pyx_t_10 = 0; + + __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 324, __pyx_L1_error) + __pyx_t_10 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + + __pyx_t_7 = __Pyx_PyObject_CompareBoolLt_object_int(__pyx_v_i, __pyx_t_10, Py_LT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 324, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__pyx_t_7) { + + + __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_10); + __pyx_t_10 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param_name, __pyx_v_value}; + __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__pyx_t_7) { + + + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_param_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + __pyx_v_update_info = 1; + + } + + } + + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + } + + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 330, __pyx_L1_error) + __pyx_t_12 = (__pyx_temp != 0); + } + + if (!__pyx_t_12) { + + } else { + + __pyx_t_7 = __pyx_t_12; + + goto __pyx_L16_bool_binop_done; + } + { + Py_ssize_t __pyx_temp = __Pyx_PyDict_GET_SIZE(__pyx_v_kwargs); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 330, __pyx_L1_error) + __pyx_t_12 = (__pyx_temp != 0); + } + + + __pyx_t_7 = __pyx_t_12; + + __pyx_L16_bool_binop_done:; + if (__pyx_t_7) { + + + if (__pyx_v_update_info) { + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 332, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 333, __pyx_L1_error) + + } + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_skip_first); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_24lookback, "Function.lookback(self)\n\nReturns the lookback window size for the function with the parameter\nvalues that are currently set."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {"lookback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_24lookback}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("lookback (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 335, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 335, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookback", 0) < (0)) __PYX_ERR(2, 335, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, i); __PYX_ERR(2, 335, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 335, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 335, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + TA_ParamHolder *__pyx_v_holder; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_type_ = NULL; + int __pyx_v_lookback; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + TA_ParamHolder *__pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_t_10; + int __pyx_t_11; + int __pyx_t_12; + double __pyx_t_13; + int __pyx_t_14; + int __pyx_t_15; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("lookback", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(2, 343, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 343, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_v_holder = __pyx_t_3; + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 344, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) + } else { + __pyx_t_4 = __pyx_t_7(__pyx_t_5); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 344, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_INCREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_4; + __pyx_t_4 = 0; + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_opt_input}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!__pyx_t_11) { + + } else { + + __pyx_t_10 = __pyx_t_11; + + goto __pyx_L6_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_10 = __pyx_t_11; + + __pyx_L6_bool_binop_done:; + if (__pyx_t_10) { + + + __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) + __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_12, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) + + + + + goto __pyx_L5; + } + + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!__pyx_t_11) { + + } else { + + __pyx_t_10 = __pyx_t_11; + + goto __pyx_L8_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_10 = __pyx_t_11; + + __pyx_L8_bool_binop_done:; + if (__pyx_t_10) { + + + __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) + + + + + } + __pyx_L5:; + + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 352, __pyx_L1_error) + __pyx_v_lookback = __pyx_t_15; + + __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 353, __pyx_L1_error) + + + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_type_); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_26output_names, "Function.output_names(self)\n\nReturns a list of the output names returned by this function."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {"output_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_26output_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("output_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 356, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 356, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_names", 0) < (0)) __PYX_ERR(2, 356, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, i); __PYX_ERR(2, 356, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 356, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 356, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("output_names", 0); + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_6 = PyList_Check(__pyx_v_ret); + __pyx_t_7 = (!__pyx_t_6); + + + if (__pyx_t_7) { + + + __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); + __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_ret); + __pyx_r = __pyx_v_ret; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_28outputs, "Function.outputs(self)\n\nReturns the TA function values for the currently set input_arrays and\nparameters. Returned values are a ndarray if there is only one output\nor a list of ndarrays for more than one output."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {"outputs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_28outputs}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("outputs (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 366, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 366, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "outputs", 0) < (0)) __PYX_ERR(2, 366, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, i); __PYX_ERR(2, 366, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 366, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 366, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_ret = NULL; + PyObject *__pyx_v_index = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + Py_ssize_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("outputs", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 374, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (!__pyx_t_2); + + + if (__pyx_t_3) { + + + __pyx_t_4 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_ret = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_3 = PyList_Check(__pyx_v_ret); + __pyx_t_2 = (!__pyx_t_3); + + + if (__pyx_t_2) { + + + __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); + __pyx_t_1 = 0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + } else { + + __pyx_t_2 = __pyx_t_3; + + goto __pyx_L6_bool_binop_done; + } + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 380, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_2 = __pyx_t_3; + + __pyx_L6_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_index = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 382, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + + + if (__pyx_t_2) { + + + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_8, __pyx_v_index}; + #if CYTHON_VECTORCALL + __pyx_t_9 = __pyx_mstate_global->__pyx_tuple[1]; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_9); + #else + { + PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; + __pyx_t_9 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + #endif + __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_ret}; + __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + + __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_8, __pyx_v_index, __pyx_t_11}; + #if CYTHON_VECTORCALL + __pyx_t_6 = __pyx_mstate_global->__pyx_tuple[2]; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_6); + #else + { + PyObject *__pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_index, __pyx_mstate_global->__pyx_n_u_columns}; + __pyx_t_6 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 2); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + #endif + __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + } + + } + + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { + + } else { + + __pyx_t_2 = __pyx_t_3; + + goto __pyx_L9_bool_binop_done; + } + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 389, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_2 = __pyx_t_3; + + __pyx_L9_bool_binop_done:; + + if (__pyx_t_2) { + + + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 390, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + + + if (__pyx_t_2) { + + + __pyx_t_1 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_1); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_9; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_9 = 0; + goto __pyx_L0; + + } + + /*else*/ { + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_8 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_10))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); + assert(__pyx_t_8); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_ret}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + + __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_11))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_10}; + #if CYTHON_VECTORCALL + __pyx_t_8 = __pyx_mstate_global->__pyx_tuple[3]; + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_8); + #else + { + PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_schema}; + __pyx_t_8 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + #endif + __pyx_t_9 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_9; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_9 = 0; + goto __pyx_L0; + } + + } + + /*else*/ { + __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 396, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_7 == 1); + + + if (__pyx_t_2) { + __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __pyx_t_11; + __pyx_t_11 = 0; + } else { + __Pyx_INCREF(__pyx_v_ret); + __pyx_t_9 = __pyx_v_ret; + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_9; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_9 = 0; + goto __pyx_L0; + } + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_ret); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_30run, "Function.run(self, input_arrays=None)\n\nrun([input_arrays=None])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {"run", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_arrays = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("run (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 398, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 398, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 398, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "run", 0) < (0)) __PYX_ERR(2, 398, __pyx_L3_error) + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, i); __PYX_ERR(2, 398, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 398, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 398, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + } + __pyx_v_self = values[0]; + __pyx_v_input_arrays = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 398, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("run", 0); + + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 405, __pyx_L1_error) + if (__pyx_t_1) { + + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_32__call__, "Function.__call__(self, *args, **kwargs)\n\nfunc_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict and function parameters."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {"__call__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 410, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + default: + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 410, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__call__", 1) < (0)) __PYX_ERR(2, 410, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, i); __PYX_ERR(2, 410, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 410, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 410, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_32__call__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_DECREF(__pyx_v_args); + __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_opt_input_values = NULL; + PyObject *__pyx_v_price_series_name_values = NULL; + PyObject *__pyx_v_input_arrays = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_arg = NULL; + PyObject *__pyx_v_msg = NULL; + PyObject *__pyx_v_no_existing_input_arrays = NULL; + PyObject *__pyx_v_param_name = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_n = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_t_14; + PyObject *__pyx_t_15 = NULL; + Py_ssize_t __pyx_t_16; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19[5]; + PyObject *__pyx_t_20 = NULL; + PyObject *(*__pyx_t_21)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + __Pyx_INCREF(__pyx_v_args); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 420, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 420, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 420, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_7(__pyx_t_4); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 420, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_param_name); + __Pyx_GIVEREF(__pyx_v_param_name); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name) != (0)) __PYX_ERR(2, 419, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 419, __pyx_L1_error); + __pyx_t_2 = 0; + __Pyx_GIVEREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_3))) __PYX_ERR(2, 419, __pyx_L1_error) + __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 422, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 422, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 422, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) + } else { + __pyx_t_4 = __pyx_t_7(__pyx_t_3); + if (unlikely(!__pyx_t_4)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 422, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_n); + __Pyx_GIVEREF(__pyx_v_n); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n) != (0)) __PYX_ERR(2, 421, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 421, __pyx_L1_error); + __pyx_t_4 = 0; + __Pyx_GIVEREF(__pyx_t_2); + if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_2))) __PYX_ERR(2, 421, __pyx_L1_error) + __pyx_t_2 = 0; + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_input_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_input_price_series_names = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 428, __pyx_L1_error) + if (__pyx_t_9) { + + } else { + + __pyx_t_8 = __pyx_t_9; + + goto __pyx_L10_bool_binop_done; + } + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 428, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = (!__pyx_t_9); + + + + __pyx_t_8 = __pyx_t_10; + + __pyx_L10_bool_binop_done:; + if (__pyx_t_8) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_3 = __pyx_mstate_global->__pyx_int_0; + if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { + __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); + __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 429, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_7)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 429, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_6; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 429, __pyx_L1_error) + #endif + if (__pyx_t_6 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); + #endif + ++__pyx_t_6; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_7(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 429, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_2; + __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 430, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_10 = (!__pyx_t_8); + + + if (__pyx_t_10) { + + + goto __pyx_L13_break; + + } + + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + /*try:*/ { + + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 434, __pyx_L15_error) + __Pyx_GOTREF(__pyx_t_2); + if (unlikely((PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0))) __PYX_ERR(2, 434, __pyx_L15_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L22_try_end; + __pyx_L15_error:; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError)))); + if (__pyx_t_14) { + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(2, 435, __pyx_L17_except_error) + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_15); + + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 437, __pyx_L17_except_error) + __pyx_t_17 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 437, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_17); + + + __pyx_t_18 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(2, 438, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Too_many_price_arguments_expecte; + __pyx_t_19[1] = __pyx_t_17; + __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; + __pyx_t_19[3] = __pyx_t_18; + __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; + + __pyx_t_16 = 38; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); + #endif + __pyx_t_14 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); + #endif + __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); + if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 436, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_20); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_v_msg = ((PyObject*)__pyx_t_20); + __pyx_t_20 = 0; + + __pyx_t_18 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_msg}; + __pyx_t_20 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 439, __pyx_L17_except_error) + __Pyx_GOTREF(__pyx_t_20); + } + __Pyx_Raise(__pyx_t_20, 0, 0, 0); + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __PYX_ERR(2, 439, __pyx_L17_except_error) + } + goto __pyx_L17_except_error; + + __pyx_L17_except_error:; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + goto __pyx_L1_error; + __pyx_L22_try_end:; + } + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L25_for_end; + __pyx_L13_break:; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L25_for_end; + __pyx_L25_for_end:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = (__pyx_t_3 != Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L27_bool_binop_done; + } + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 442, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_10 = __pyx_t_8; + + __pyx_L27_bool_binop_done:; + + if (__pyx_t_10) { + + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_no_existing_input_arrays = __pyx_t_3; + __pyx_t_3 = 0; + + goto __pyx_L26; + } + + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = (__pyx_t_3 != Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L29_bool_binop_done; + } + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_10 = __pyx_t_8; + + __pyx_L29_bool_binop_done:; + + if (__pyx_t_10) { + + + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = __pyx_t_15; + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_empty, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_no_existing_input_arrays = __pyx_t_1; + __pyx_t_1 = 0; + + goto __pyx_L26; + } + + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyBool_FromLong((!(!(!__pyx_t_10)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __pyx_v_no_existing_input_arrays = __pyx_t_1; + __pyx_t_1 = 0; + } + __pyx_L26:; + + __pyx_t_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(2, 450, __pyx_L1_error) + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 450, __pyx_L1_error) + __pyx_t_10 = (__pyx_t_6 == __pyx_t_16); + + + + if (__pyx_t_10) { + + + __pyx_t_15 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_15); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_input_arrays}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 452, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_16, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); + __pyx_t_1 = 0; + + goto __pyx_L31; + } + + __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) + __pyx_t_8 = (__pyx_t_16 != 0); + + + if (!__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L32_bool_binop_done; + } + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 453, __pyx_L1_error) + if (__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L32_bool_binop_done; + } + + __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 454, __pyx_L1_error) + __pyx_t_8 = (!(__pyx_t_16 != 0)); + + + if (!__pyx_t_8) { + + } else { + + __pyx_t_10 = __pyx_t_8; + + goto __pyx_L32_bool_binop_done; + } + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 454, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_9 = (!__pyx_t_8); + + + + __pyx_t_10 = __pyx_t_9; + + __pyx_L32_bool_binop_done:; + + if (unlikely(__pyx_t_10)) { + + + __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 456, __pyx_L1_error) + __pyx_t_15 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + + + __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Not_enough_price_arguments_expec; + __pyx_t_19[1] = __pyx_t_15; + __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; + __pyx_t_19[3] = __pyx_t_1; + __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; + + __pyx_t_16 = 40; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); + #endif + __pyx_t_14 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); + #endif + __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_msg = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + __pyx_t_1 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_msg}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(2, 458, __pyx_L1_error) + + } + __pyx_L31:; + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_15 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_15); + __pyx_t_5 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 464, __pyx_L1_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { + PyObject* sequence = __pyx_t_15; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 464, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_1); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_3); + } else { + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_3); + } + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L38_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 464, __pyx_L1_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L39_unpacking_done; + __pyx_L38_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 464, __pyx_L1_error) + __pyx_L39_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); + __pyx_t_3 = 0; + + __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 465, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 466, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); + __pyx_t_16 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 469, __pyx_L1_error) + #endif + if (__pyx_t_16 >= __pyx_temp) break; + } + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_16; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 469, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_15); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_1); + } else { + __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_1); + } + #else + __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); + index = 0; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L43_unpacking_failed; + __Pyx_GOTREF(__pyx_t_15); + index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L43_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 469, __pyx_L1_error) + __pyx_t_21 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L44_unpacking_done; + __pyx_L43_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_21 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 469, __pyx_L1_error) + __pyx_L44_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15); + __pyx_t_15 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 470, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_opt_input_values); + __Pyx_XDECREF(__pyx_v_price_series_name_values); + __Pyx_XDECREF(__pyx_v_input_arrays); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_arg); + __Pyx_XDECREF(__pyx_v_msg); + __Pyx_XDECREF(__pyx_v_no_existing_input_arrays); + __Pyx_XDECREF(__pyx_v_param_name); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_n); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names, "Function.__input_price_series_names(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {"__input_price_series_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__input_price_series_names (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 476, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 476, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__input_price_series_names", 0) < (0)) __PYX_ERR(2, 476, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, i); __PYX_ERR(2, 476, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 476, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 476, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *(*__pyx_t_4)(PyObject *); + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + Py_ssize_t __pyx_t_7; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__input_price_series_names", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_4 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 479, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 479, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_3; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 479, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_4(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 479, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_6 = PyList_Check(__pyx_v_price_series); + if (__pyx_t_6) { + + + if (likely(PyList_CheckExact(__pyx_v_price_series)) || PyTuple_CheckExact(__pyx_v_price_series)) { + __pyx_t_1 = __pyx_v_price_series; __Pyx_INCREF(__pyx_t_1); + __pyx_t_7 = 0; + __pyx_t_8 = NULL; + } else { + __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 482, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_8)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 482, __pyx_L1_error) + #endif + if (__pyx_t_7 >= __pyx_temp) break; + } + __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_7; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 482, __pyx_L1_error) + #endif + if (__pyx_t_7 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); + #else + __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); + #endif + ++__pyx_t_7; + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 482, __pyx_L1_error) + } else { + __pyx_t_5 = __pyx_t_8(__pyx_t_1); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 482, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 483, __pyx_L1_error) + + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + goto __pyx_L5; + } + + /*else*/ { + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 485, __pyx_L1_error) + + } + __pyx_L5:; + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_input_price_series_names); + __pyx_r = __pyx_v_input_price_series_names; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_36__call_function, "Function.__call_function(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {"__call_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_36__call_function}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call_function (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 488, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 488, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__call_function", 0) < (0)) __PYX_ERR(2, 488, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, i); __PYX_ERR(2, 488, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 488, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 488, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_input_price_series_names = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_price_series = NULL; + PyObject *__pyx_v_series = NULL; + PyObject *__pyx_v_opt_input = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_results = NULL; + PyObject *__pyx_v_keys = NULL; + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_output = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call_function", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_v_input_price_series_names = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_args = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) { + __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 494, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 494, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 494, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 494, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 494, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = (__pyx_t_6 != Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_7 = __pyx_t_8; + + goto __pyx_L6_bool_binop_done; + } + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 497, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_7 = __pyx_t_8; + + __pyx_L6_bool_binop_done:; + + if (__pyx_t_7) { + + + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_mstate_global->__pyx_n_u_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __pyx_t_9; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; + + goto __pyx_L5; + } + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = (__pyx_t_6 != Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_8) { + + } else { + + __pyx_t_7 = __pyx_t_8; + + goto __pyx_L8_bool_binop_done; + } + + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 500, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_7 = __pyx_t_8; + + __pyx_L8_bool_binop_done:; + + if (__pyx_t_7) { + + + __pyx_t_10 = __pyx_v_series; + __Pyx_INCREF(__pyx_t_10); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_t_9 = __pyx_t_2; + __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); + __pyx_t_6 = 0; + + } + __pyx_L5:; + + __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 502, __pyx_L1_error) + + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { + __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 503, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_6))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 503, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_6, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 503, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 503, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_6); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 503, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 505, __pyx_L1_error) + + + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_results = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); + if (__pyx_t_7) { + + + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __pyx_t_6; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_keys = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = PyList_Check(__pyx_v_keys); + __pyx_t_8 = (!__pyx_t_7); + + + if (__pyx_t_8) { + + + __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2); + __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_t_6, __pyx_v_results) < 0))) __PYX_ERR(2, 513, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + goto __pyx_L14; + } + + /*else*/ { + __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); + __pyx_t_6 = __pyx_mstate_global->__pyx_int_0; + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 515, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 515, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 515, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) + } else { + __pyx_t_2 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_2)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 515, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_INCREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); + __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); + __pyx_t_6 = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0))) __PYX_ERR(2, 516, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __pyx_L14:; + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_True) < (0)) __PYX_ERR(2, 517, __pyx_L1_error) + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_input_price_series_names); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_price_series); + __Pyx_XDECREF(__pyx_v_series); + __Pyx_XDECREF(__pyx_v_opt_input); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_results); + __Pyx_XDECREF(__pyx_v_keys); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_output); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value, "Function.__check_opt_input_value(self, input_name, value)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {"__check_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_name = 0; + PyObject *__pyx_v_value = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__check_opt_input_value (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,&__pyx_mstate_global->__pyx_n_u_value,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 519, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__check_opt_input_value", 0) < (0)) __PYX_ERR(2, 519, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, i); __PYX_ERR(2, 519, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 519, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 519, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 519, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_name = values[1]; + __pyx_v_value = values[2]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 519, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value) { + PyObject *__pyx_v_type_ = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9[7]; + Py_ssize_t __pyx_t_10; + int __pyx_t_11; + size_t __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__check_opt_input_value", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_type_ = __pyx_t_2; + __pyx_t_2 = 0; + + __Pyx_INCREF(__pyx_v_type_); + __pyx_t_2 = __pyx_v_type_; + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_4) { + + } else { + + __pyx_t_3 = __pyx_t_4; + + goto __pyx_L4_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_3 = __pyx_t_4; + + __pyx_L4_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __pyx_t_3; + + + if (__pyx_t_4) { + + + __Pyx_INCREF((PyObject *)(&PyLong_Type)); + __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type))); + + goto __pyx_L3; + } + + __Pyx_INCREF(__pyx_v_type_); + __pyx_t_2 = __pyx_v_type_; + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!__pyx_t_3) { + + } else { + + __pyx_t_4 = __pyx_t_3; + + goto __pyx_L6_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 523, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_4 = __pyx_t_3; + + __pyx_L6_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = __pyx_t_4; + + + if (__pyx_t_3) { + + + __Pyx_INCREF((PyObject *)(&PyFloat_Type)); + __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); + + } + __pyx_L3:; + + __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 526, __pyx_L1_error) + if (__pyx_t_3) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_True); + __pyx_r = Py_True; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + __pyx_t_3 = (__pyx_v_value != Py_None); + if (unlikely(__pyx_t_3)) { + + + __pyx_t_1 = NULL; + + __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for; + __pyx_t_9[1] = __pyx_t_5; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_expected; + __pyx_t_9[3] = __pyx_t_7; + __pyx_t_9[4] = __pyx_mstate_global->__pyx_kp_u_got; + __pyx_t_9[5] = __pyx_t_8; + __pyx_t_9[6] = __pyx_mstate_global->__pyx_kp_u__6; + + __pyx_t_10 = 46; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[5]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[5]); + #endif + __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 7, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_12 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(2, 529, __pyx_L1_error) + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(Py_False); + __pyx_r = Py_False; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_type_); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value, "Function.__get_opt_input_value(self, input_name)\n\nReturns the user-set value if there is one, otherwise the default."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {"__get_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_input_name = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 534, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 534, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 534, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_opt_input_value", 0) < (0)) __PYX_ERR(2, 534, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, i); __PYX_ERR(2, 534, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 534, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 534, __pyx_L3_error) + } + __pyx_v_self = values[0]; + __pyx_v_input_name = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 534, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) { + PyObject *__pyx_v_local = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get_opt_input_value", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_value = __pyx_t_1; + __pyx_t_1 = 0; + + __pyx_t_3 = (__pyx_v_value == Py_None); + if (__pyx_t_3) { + + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_value); + __pyx_r = __pyx_v_value; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_42__repr__, "Function.__repr__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_42__repr__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 544, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 544, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(2, 544, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(2, 544, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 544, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 544, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__repr__", 0); + + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_44__unicode__, "Function.__unicode__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {"__unicode__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_44__unicode__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__unicode__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 547, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 547, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__unicode__", 0) < (0)) __PYX_ERR(2, 547, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, i); __PYX_ERR(2, 547, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 547, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 547, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__unicode__", 0); + + __pyx_t_2 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_str, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_46__str__, "Function.__str__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_46__str__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_self = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 550, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 550, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(2, 550, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(2, 550, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 550, __pyx_L3_error) + } + __pyx_v_self = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 550, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, __pyx_v_self); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__str__", 0); + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable, "_ta_getGroupTable()\n\nReturns the list of available TALIB function group names. *slow*"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable = {"_ta_getGroupTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable}; +static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getGroupTable (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self) { + TA_StringTable *__pyx_v_table; + PyObject *__pyx_v_groups = NULL; + unsigned int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + unsigned int __pyx_t_2; + unsigned int __pyx_t_3; + unsigned int __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getGroupTable", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableAlloc, TA_GroupTableAlloc((&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_groups = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + + __pyx_t_2 = __pyx_v_table->size; + __pyx_t_3 = __pyx_t_2; + + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_groups, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 572, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, TA_GroupTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_groups); + __pyx_r = __pyx_v_groups; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF(__pyx_v_groups); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable, "_ta_getFuncTable(char *group)\n\nReturns a list of the functions for the specified group name. *slow*"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable = {"_ta_getFuncTable", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable}; +static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_group; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getFuncTable (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_group,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 576, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 576, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncTable", 0) < (0)) __PYX_ERR(2, 576, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, i); __PYX_ERR(2, 576, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 576, __pyx_L3_error) + } + __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 576, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 576, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(__pyx_self, __pyx_v_group); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group) { + TA_StringTable *__pyx_v_table; + PyObject *__pyx_v_functions = NULL; + unsigned int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + unsigned int __pyx_t_2; + unsigned int __pyx_t_3; + unsigned int __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getFuncTable", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableAlloc, TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_functions = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + + __pyx_t_2 = __pyx_v_table->size; + __pyx_t_3 = __pyx_t_2; + + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_functions, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, TA_FuncTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_functions); + __pyx_r = __pyx_v_functions; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XDECREF(__pyx_v_functions); + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434__get_flags, "__get_flags(int flag, dict flags_lookup_dict)\n\nTA-LIB provides hints for multiple flags as a bitwise-ORed int.\nThis function returns the flags from flag found in the provided\nflags_lookup_dict."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435__get_flags = {"__get_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435__get_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434__get_flags}; +static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + int __pyx_v_flag; + PyObject *__pyx_v_flags_lookup_dict = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get_flags (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 588, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 588, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_flags", 0) < (0)) __PYX_ERR(2, 588, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, i); __PYX_ERR(2, 588, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 588, __pyx_L3_error) + } + __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 588, __pyx_L3_error) + __pyx_v_flags_lookup_dict = ((PyObject*)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 588, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(2, 588, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_434__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict) { + PyObject *__pyx_v_bit = NULL; + PyObject *__pyx_v_description = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get_flags", 0); + + __pyx_t_1 = (__pyx_v_flag < 1); + + if (__pyx_t_1) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { + PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items"); + __PYX_ERR(2, 599, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely((PyList_Sort(__pyx_t_4) < 0))) __PYX_ERR(2, 599, __pyx_L1_error) + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 599, __pyx_L1_error) + #endif + if (__pyx_t_5 >= __pyx_temp) break; + } + __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_5; + if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { + PyObject* sequence = __pyx_t_4; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 599, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_7); + } else { + __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_7); + } + #else + __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); + index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 599, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 599, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_bit, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_XDECREF_SET(__pyx_v_description, __pyx_t_7); + __pyx_t_7 = 0; + + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = __Pyx_PyNumber_And_object_int(__pyx_v_bit, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 600, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_1) { + + + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, __pyx_v_description))) __PYX_ERR(2, 598, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_bit); + __Pyx_XDECREF(__pyx_v_description); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo, "_ta_getFuncInfo(char *function_name)\n\nReturns the info dict for the function. It has the following keys: name,\ngroup, help, flags, num_inputs, num_opt_inputs and num_outputs."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo = {"_ta_getFuncInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getFuncInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 641, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 641, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncInfo", 0) < (0)) __PYX_ERR(2, 641, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, i); __PYX_ERR(2, 641, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 641, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 641, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 641, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(__pyx_self, __pyx_v_function_name); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) { + TA_FuncInfo const *__pyx_v_info; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getFuncInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 647, __pyx_L1_error) + __pyx_v_retCode = TA_GetFuncInfo(__pyx_t_1, (&__pyx_v_info)); + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_group, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_6 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_6); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_6, __pyx_t_8}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_5 = NULL; + __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_8 = NULL; + __pyx_t_5 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_opt_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_5 = NULL; + __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo, "_ta_getInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s input info dict for the given index. It has two\nkeys: name and flags."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo = {"_ta_getInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + int __pyx_v_idx; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getInputParameterInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 660, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 660, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 660, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getInputParameterInfo", 0) < (0)) __PYX_ERR(2, 660, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 660, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 660, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 660, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 660, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 660, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 660, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_InputParameterInfo const *__pyx_v_info; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getInputParameterInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 666, __pyx_L1_error) + __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_in); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 670, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_4 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 671, __pyx_L1_error) + if (__pyx_t_8) { + + + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[4], NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5); + __pyx_t_5 = 0; + + goto __pyx_L3; + } + + __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 673, __pyx_L1_error) + if (__pyx_t_8) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices); + + } + __pyx_L3:; + + __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 677, __pyx_L1_error) + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_9, __pyx_t_10}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 677, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo, "_ta_getOptInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s opt_input info dict for the given index. It has the\nfollowing keys: name, display_name, type, help, default_value and value."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo = {"_ta_getOptInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + int __pyx_v_idx; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 681, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 681, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 681, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOptInputParameterInfo", 0) < (0)) __PYX_ERR(2, 681, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 681, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 681, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 681, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 681, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 681, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 681, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_OptInputParameterInfo const *__pyx_v_info; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_v_default_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 687, __pyx_L1_error) + __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_optIn); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 691, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_4 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_8 = (__pyx_v_info->type > 1); + + if (__pyx_t_8) { + __pyx_t_5 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __pyx_t_5; + __pyx_t_5 = 0; + } else { + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __pyx_t_5; + __pyx_t_5 = 0; + } + + __pyx_v_default_value = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyLong_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type_2, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value, __pyx_v_default_value) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF(__pyx_v_default_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo, "_ta_getOutputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s output info dict for the given index. It has two\nkeys: name and flags."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo = {"_ta_getOutputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo}; +static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + char *__pyx_v_function_name; + int __pyx_v_idx; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 703, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 703, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 703, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 703, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 703, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 703, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 703, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 703, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 703, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { + TA_OutputParameterInfo const *__pyx_v_info; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 709, __pyx_L1_error) + __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_out); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 713, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_4 = __pyx_t_5; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_6 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + if (__pyx_t_9) { + + } else { + + __pyx_t_8 = __pyx_t_9; + + goto __pyx_L4_bool_binop_done; + } + __Pyx_INCREF(__pyx_v_name); + __pyx_t_2 = __pyx_v_name; + __pyx_t_10 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real, Py_NE); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + if (__pyx_t_10) { + + } else { + + __pyx_t_9 = __pyx_t_10; + + goto __pyx_L6_bool_binop_done; + } + __pyx_t_10 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real0, Py_NE); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + if (__pyx_t_10) { + + } else { + + __pyx_t_9 = __pyx_t_10; + + goto __pyx_L6_bool_binop_done; + } + __pyx_t_10 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real1, Py_NE); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) + + __pyx_t_9 = __pyx_t_10; + + __pyx_L6_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_10 = __pyx_t_9; + + + + __pyx_t_8 = __pyx_t_10; + + __pyx_L4_bool_binop_done:; + if (__pyx_t_8) { + + + __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_real); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 716, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 719, __pyx_L1_error) + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_6 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); + __pyx_t_6 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_12}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_5) < (0)) __PYX_ERR(2, 719, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs, "_get_defaults_and_docs(func_info)\n\nReturns a tuple with two outputs: defaults, a dict of parameter defaults,\nand documentation, a formatted docstring for the function.\n.. Note: func_info should come from Function.info, *not* _ta_getFuncInfo."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs = {"_get_defaults_and_docs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs}; +static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_func_info = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_get_defaults_and_docs (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func_info,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 723, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 723, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_get_defaults_and_docs", 0) < (0)) __PYX_ERR(2, 723, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, i); __PYX_ERR(2, 723, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 723, __pyx_L3_error) + } + __pyx_v_func_info = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 723, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(__pyx_self, __pyx_v_func_info); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info) { + PyObject *__pyx_v_defaults = NULL; + PyObject *__pyx_v_func_line = NULL; + PyObject *__pyx_v_func_args = NULL; + PyObject *__pyx_v_docs = NULL; + PyObject *__pyx_v_input_names = NULL; + PyObject *__pyx_v_input_name = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_v_params = NULL; + PyObject *__pyx_v_param = NULL; + PyObject *__pyx_v_outputs = NULL; + PyObject *__pyx_v_candlestick = NULL; + PyObject *__pyx_v_output = NULL; + PyObject *__pyx_v_documentation = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + int __pyx_t_6; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9[4]; + Py_ssize_t __pyx_t_10; + int __pyx_t_11; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13[5]; + size_t __pyx_t_14; + PyObject *__pyx_t_15 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_get_defaults_and_docs", 0); + + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_defaults = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 730, __pyx_L1_error); + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7); + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__7); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_kp_u__7) != (0)) __PYX_ERR(2, 730, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_v_func_line = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_kp_u_input_arrays_2) != (0)) __PYX_ERR(2, 731, __pyx_L1_error); + __pyx_v_func_args = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_docs = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 733, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_input_names = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 736, __pyx_L1_error) + + + if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) { + __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 737, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 737, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 737, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 737, __pyx_L1_error) + } else { + __pyx_t_1 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_1)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 737, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_6 = PyList_Check(__pyx_v_value); + __pyx_t_7 = (!__pyx_t_6); + + + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_any_ndarray); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u_any_ndarray); + + } + + __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_value), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; + __pyx_t_9[1] = __pyx_t_1; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_9[3] = __pyx_t_8; + __pyx_t_10 = 6; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); + #endif + __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_12); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 741, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_params = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 744, __pyx_L1_error) + if (__pyx_t_7) { + + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 745, __pyx_L1_error) + + + } + + if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) { + __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 746, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 746, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_12 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 746, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_12 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 746, __pyx_L1_error) + } else { + __pyx_t_12 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_12)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 746, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_12); + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_12); + __pyx_t_12 = 0; + + __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_8), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; + __pyx_t_9[1] = __pyx_t_12; + __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_9[3] = __pyx_t_1; + __pyx_t_10 = 6; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); + #endif + __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 747, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u__9; + __pyx_t_13[1] = __pyx_t_8; + __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__10; + __pyx_t_13[3] = __pyx_t_12; + __pyx_t_13[4] = __pyx_mstate_global->__pyx_kp_u__11; + __pyx_t_10 = 3; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[3]); + #endif + __pyx_t_11 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_13[3]); + #endif + __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_13, 5, __pyx_t_10, __pyx_t_11); + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_1) < 0))) __PYX_ERR(2, 749, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + __pyx_t_12 = __pyx_v_param; + __Pyx_INCREF(__pyx_t_12); + __pyx_t_14 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_mstate_global->__pyx_n_u_matype}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_endswith, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 750, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_7) { + + + __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_15 = PyList_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 751, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 751, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_8 = 0; + __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__12, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_8, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(2, 751, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_outputs = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 754, __pyx_L1_error) + if (!__pyx_t_7) { + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else { + __Pyx_INCREF(__pyx_t_8); + __pyx_t_2 = __pyx_t_8; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_8); + __pyx_t_2 = __pyx_t_8; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_L12_bool_binop_done:; + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick, __pyx_t_2, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + __pyx_v_candlestick = __pyx_t_2; + __pyx_t_2 = 0; + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 755, __pyx_L1_error) + + + if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) { + __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 756, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_4; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 756, __pyx_L1_error) + #endif + if (__pyx_t_4 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); + #else + __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); + #endif + ++__pyx_t_4; + } + if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 756, __pyx_L1_error) + } else { + __pyx_t_8 = __pyx_t_5(__pyx_t_2); + if (unlikely(!__pyx_t_8)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 756, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_8); + __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8); + __pyx_t_8 = 0; + + __pyx_t_6 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_output, __pyx_mstate_global->__pyx_n_u_integer, Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 757, __pyx_L1_error) + if (__pyx_t_6) { + + } else { + + __pyx_t_7 = __pyx_t_6; + + goto __pyx_L17_bool_binop_done; + } + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_candlestick); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 757, __pyx_L1_error) + + __pyx_t_7 = __pyx_t_6; + + __pyx_L17_bool_binop_done:; + if (__pyx_t_7) { + + + __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + __Pyx_DECREF_SET(__pyx_v_output, __pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); + + } + + __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_4, __pyx_v_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 759, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 761, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_mstate_global->__pyx_kp_u__13); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 762, __pyx_L1_error) + + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyList_Insert(__pyx_v_docs, 0, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 763, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__14, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_documentation = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_defaults); + __Pyx_GIVEREF(__pyx_v_defaults); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults) != (0)) __PYX_ERR(2, 765, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_documentation); + __Pyx_GIVEREF(__pyx_v_documentation); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation) != (0)) __PYX_ERR(2, 765, __pyx_L1_error); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_defaults); + __Pyx_XDECREF(__pyx_v_func_line); + __Pyx_XDECREF(__pyx_v_func_args); + __Pyx_XDECREF(__pyx_v_docs); + __Pyx_XDECREF(__pyx_v_input_names); + __Pyx_XDECREF(__pyx_v_input_name); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_params); + __Pyx_XDECREF(__pyx_v_param); + __Pyx_XDECREF(__pyx_v_outputs); + __Pyx_XDECREF(__pyx_v_candlestick); + __Pyx_XDECREF(__pyx_v_output); + __Pyx_XDECREF(__pyx_v_documentation); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) { + TA_FuncHandle const *__pyx_v_handle; + TA_FuncHandle const *__pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_getFuncHandle", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncHandle, TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + + __pyx_r = __pyx_v_handle; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_getFuncHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) { + TA_ParamHolder *__pyx_v_holder; + TA_RetCode __pyx_v_retCode; + TA_ParamHolder *__pyx_r; + __Pyx_RefNannyDeclarations + TA_FuncHandle const *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 789, __pyx_L1_error) + __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_t_1, (&__pyx_v_holder)); + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + { + + __pyx_r = __pyx_v_holder; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_paramHolderFree", 0); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderFree, TA_ParamHolderFree(__pyx_v_params), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) { + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_setOptInputParamInteger", 0); + + __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamInteger", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, double __pyx_v_value) { + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 0); + + __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) { + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__ta_getLookback", 0); + + __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + + __pyx_r = __pyx_v_lookback; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.__ta_getLookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static npy_intp __pyx_f_5talib_7_ta_lib_check_length(PyObject *__pyx_v_arrays) { + npy_intp __pyx_v_length; + PyObject *__pyx_v_other = NULL; + npy_intp __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + size_t __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_length", 0); + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); + __PYX_ERR(3, 2429, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v_arrays, 0, Py_ssize_t, 1, PyLong_FromSsize_t, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_t_1))[0]); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); + __PYX_ERR(3, 2430, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyTuple_GetSlice(__pyx_v_arrays, 1, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2430, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_other, __pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_4 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(((PyArrayObject *)__pyx_v_other))[0])); + + if (unlikely(__pyx_t_4)) { + + + __pyx_t_5 = NULL; + __pyx_t_6 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(3, 2432, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + { + + __pyx_r = __pyx_v_length; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.check_length", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + + __Pyx_XDECREF(__pyx_v_other); + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib_check_begidx(npy_intp __pyx_v_length, PyObject *__pyx_v_arrays) { + double *__pyx_v_data[8]; + npy_intp __pyx_v_i; + int __pyx_v_k; + int __pyx_v_count; + int __pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + npy_intp __pyx_t_9; + npy_intp __pyx_t_10; + npy_intp __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("check_begidx", 0); + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type \047NoneType\047 has no len()"); + __PYX_ERR(3, 2440, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_arrays); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(3, 2440, __pyx_L1_error) + __pyx_v_count = __pyx_t_1; + + __pyx_t_2 = (__pyx_v_count > 8); + + if (unlikely(__pyx_t_2)) { + + + __pyx_t_4 = NULL; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_too_many_input_arrays}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(3, 2442, __pyx_L1_error) + + } + + + __pyx_t_6 = __pyx_v_count; + __pyx_t_7 = __pyx_t_6; + + for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { + __pyx_v_k = __pyx_t_8; + + if (unlikely(__pyx_v_arrays == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not subscriptable"); + __PYX_ERR(3, 2444, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_GetItemInt_Tuple(__pyx_v_arrays, __pyx_v_k, int, 1, __Pyx_PyLong_From_int, 1, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + (__pyx_v_data[__pyx_v_k]) = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(((PyArrayObject *)__pyx_t_3))); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + + + + __pyx_t_9 = __pyx_v_length; + __pyx_t_10 = __pyx_t_9; + + for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) { + __pyx_v_i = __pyx_t_11; + + + __pyx_t_6 = __pyx_v_count; + __pyx_t_7 = __pyx_t_6; + + for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { + __pyx_v_k = __pyx_t_8; + + __pyx_t_2 = (((__pyx_v_data[__pyx_v_k])[__pyx_v_i]) != ((__pyx_v_data[__pyx_v_k])[__pyx_v_i])); + + if (__pyx_t_2) { + + + goto __pyx_L9_break; + + } + } + /*else*/ { + + { + + __pyx_r = ((int)__pyx_v_i); + } + goto __pyx_L0; + } + __pyx_L9_break:; + + } + + + { + + __pyx_r = (((int)__pyx_v_length) - 1); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.check_begidx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -2; + __pyx_L0:; + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyArrayObject *__pyx_f_5talib_7_ta_lib__stream_input(PyObject *__pyx_v_values) { + PyObject *__pyx_v_series = NULL; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_input", 0); + + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_values, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); + if (__pyx_t_1) { + + + if (!(likely(((__pyx_v_values) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_values, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 2461, __pyx_L1_error) + __pyx_t_2 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(((PyArrayObject *)__pyx_v_values))); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyArrayObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = ((PyArrayObject *)__pyx_t_2); + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + } + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 2462, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 2462, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { + if (__pyx_t_5 >= 2) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); + #endif + ++__pyx_t_5; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_4); + __pyx_t_4 = 0; + + __pyx_t_6 = (__pyx_v_series != Py_None); + if (__pyx_t_6) { + + } else { + + __pyx_t_1 = __pyx_t_6; + + goto __pyx_L7_bool_binop_done; + } + __pyx_t_6 = PyObject_IsInstance(__pyx_v_values, __pyx_v_series); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2463, __pyx_L1_error) + + __pyx_t_1 = __pyx_t_6; + + __pyx_L7_bool_binop_done:; + if (__pyx_t_1) { + + + __pyx_t_8 = __pyx_v_values; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_8, NULL}; + __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_9, (1-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_2 = __pyx_t_7; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_9 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; + __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 2464, __pyx_L1_error) + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(((PyArrayObject *)__pyx_t_4))); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + { + PyArrayObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = ((PyArrayObject *)__pyx_t_7); + } + __Pyx_XDECREF((PyObject *)__pyx_temp); + } + __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L0; + + } + + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_7 = NULL; + + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_values)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_input_must_be_a_numpy_array_or_a, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_2}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(3, 2465, __pyx_L1_error) + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib._stream_input", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_series); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static int __pyx_f_5talib_7_ta_lib__stream_history(npy_intp __pyx_v_length, int __pyx_v_begidx) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_history", 0); + + __pyx_t_1 = (__pyx_v_begidx < 0); + + if (unlikely(__pyx_t_1)) { + + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InsufficientHistory); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_5 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_no_history_the_input_array_is_em}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(3, 2471, __pyx_L1_error) + + } + + { + + __pyx_r = ((int)(__pyx_v_length - __pyx_v_begidx)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib._stream_history", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyObject *__pyx_f_5talib_7_ta_lib__stream_open_failed(PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_retCode, int __pyx_v_historylen, int __pyx_v_need) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8[6]; + Py_ssize_t __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + size_t __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_open_failed", 0); + + + __pyx_t_1 = (__pyx_v_retCode == 17); + + if (__pyx_t_1) { + + + __pyx_t_1 = (__pyx_v_need <= __pyx_v_historylen); + + if (__pyx_t_1) { + + + __pyx_v_need = (__pyx_v_historylen + 1); + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InsufficientHistory); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_5 = __Pyx_PyUnicode_Unicode(__pyx_v_function_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_historylen, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyUnicode_From_int(__pyx_v_need, 0, ' ', 'd'); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8[0] = __pyx_t_5; + __pyx_t_8[1] = __pyx_mstate_global->__pyx_kp_u_; + __pyx_t_8[2] = __pyx_t_6; + __pyx_t_8[3] = __pyx_mstate_global->__pyx_kp_u_bars_of_history_at_least; + __pyx_t_8[4] = __pyx_t_7; + __pyx_t_8[5] = __pyx_mstate_global->__pyx_kp_u_needed_a_leading_bar_that_is_Na; + + __pyx_t_9 = 92; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[0]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[2]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[4]); + #endif + __pyx_t_10 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[0]); + #endif + __pyx_t_11 = __Pyx_PyUnicode_Join(__pyx_t_8, 6, __pyx_t_9, __pyx_t_10); + if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 2480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_12 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_12 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_11}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(3, 2479, __pyx_L1_error) + + } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_v_function_name, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("talib._ta_lib._stream_open_failed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static PyObject *__pyx_f_5talib_7_ta_lib__stream_like(PyObject *__pyx_v_sources, PyObject *__pyx_v_result) { + PyObject *__pyx_v_pandas = NULL; + PyObject *__pyx_v_polars = NULL; + PyObject *__pyx_v_s = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + size_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stream_like", 0); + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(__pyx_v_sources == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable"); + __PYX_ERR(3, 2486, __pyx_L1_error) + } + __pyx_t_2 = __pyx_v_sources; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2486, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_4); + __pyx_t_4 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = (__pyx_t_4 != Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_6) { + + } else { + + __pyx_t_5 = __pyx_t_6; + + goto __pyx_L6_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyObject_IsInstance(__pyx_v_s, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2487, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_5 = __pyx_t_6; + + __pyx_L6_bool_binop_done:; + if (__pyx_t_5) { + + + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, __pyx_v_s))) __PYX_ERR(3, 2486, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_pandas = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(__pyx_v_sources == Py_None)) { + PyErr_SetString(PyExc_TypeError, "\047NoneType\047 object is not iterable"); + __PYX_ERR(3, 2488, __pyx_L1_error) + } + __pyx_t_2 = __pyx_v_sources; __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + for (;;) { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(3, 2488, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); + #else + __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); + #endif + ++__pyx_t_3; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_4); + __pyx_t_4 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = (__pyx_t_4 != Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_6) { + + } else { + + __pyx_t_5 = __pyx_t_6; + + goto __pyx_L12_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyObject_IsInstance(__pyx_v_s, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(3, 2489, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_5 = __pyx_t_6; + + __pyx_L12_bool_binop_done:; + if (__pyx_t_5) { + + + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, __pyx_v_s))) __PYX_ERR(3, 2488, __pyx_L1_error) + + } + + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_polars = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_pandas); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2490, __pyx_L1_error) + __pyx_t_6 = (__pyx_temp != 0); + } + + if (__pyx_t_6) { + + } else { + + __pyx_t_5 = __pyx_t_6; + + goto __pyx_L16_bool_binop_done; + } + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_polars); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2490, __pyx_L1_error) + __pyx_t_6 = (__pyx_temp != 0); + } + + + __pyx_t_5 = __pyx_t_6; + + __pyx_L16_bool_binop_done:; + if (unlikely(__pyx_t_5)) { + + + __pyx_t_2 = NULL; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Cannot_mix_polars_and_pandas}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(3, 2491, __pyx_L1_error) + + } + + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_pandas); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2492, __pyx_L1_error) + __pyx_t_5 = (__pyx_temp != 0); + } + + if (__pyx_t_5) { + + + __pyx_t_2 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_pandas, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_result, __pyx_t_9}; + #if CYTHON_VECTORCALL + __pyx_t_8 = __pyx_mstate_global->__pyx_tuple[1]; + if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2493, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_8); + #else + { + PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; + __pyx_t_8 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); + if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + #endif + __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_v_polars); + if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(3, 2494, __pyx_L1_error) + __pyx_t_5 = (__pyx_temp != 0); + } + + if (__pyx_t_5) { + + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v_result}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib._stream_like", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_pandas); + __Pyx_XDECREF(__pyx_v_polars); + __Pyx_XDECREF(__pyx_v_s); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_6Stream_1__cinit__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_6Stream_1__cinit__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return -1; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__cinit__", __pyx_kwds); return -1;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_6Stream___cinit__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + int __pyx_r; + + __pyx_v_self->_handle = NULL; + + + /* function exit code */ + __pyx_r = 0; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__out_range(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED int *__pyx_v_outbegidx, CYTHON_UNUSED int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BAD_PARAM; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_6Stream__advance(CYTHON_UNUSED struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BAD_PARAM; + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9out_range_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9out_range_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_9out_range___get__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_RetCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_t_1 = ((struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *)__pyx_v_self->__pyx_vtab)->_out_range(__pyx_v_self, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement)); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2521, __pyx_L1_error) + __pyx_v_retCode = __pyx_t_1; + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_out_range, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(((PyObject*)__pyx_t_4), __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OutRange); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outbegidx + __pyx_v_self->_begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyLong_From_int(__pyx_v_outnbelement); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + assert(__pyx_t_4); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_6, __pyx_t_7}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_8, (3-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_3; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.Stream.out_range.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_3advance(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_2advance, "Stream.advance(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_3advance(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("advance (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("advance", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("advance", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_2advance(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_2advance(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TA_RetCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("advance", 0); + + __pyx_t_1 = ((struct __pyx_vtabstruct_5talib_7_ta_lib_Stream *)__pyx_v_self->__pyx_vtab)->_advance(__pyx_v_self); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 2528, __pyx_L1_error) + __pyx_v_retCode = __pyx_t_1; + + __pyx_t_2 = (__pyx_v_retCode != 0); + + if (__pyx_t_2) { + + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_advance, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__ta_check_success(((PyObject*)__pyx_t_4), __pyx_v_retCode, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + } + + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Stream.advance", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_4__copy__, "Stream.__copy__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_5__copy__ = {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_4__copy__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__copy__", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__copy__", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_4__copy__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_4__copy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__copy__", 0); + + __pyx_t_2 = ((PyObject *)__pyx_v_self); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Stream.__copy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_6__deepcopy__, "Stream.__deepcopy__(self, memo)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_7__deepcopy__ = {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_6__deepcopy__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + CYTHON_UNUSED PyObject *__pyx_v_memo = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_memo,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2535, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2535, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__deepcopy__", 0) < (0)) __PYX_ERR(3, 2535, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, i); __PYX_ERR(3, 2535, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2535, __pyx_L3_error) + } + __pyx_v_memo = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2535, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.Stream.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_6__deepcopy__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self), __pyx_v_memo); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_6__deepcopy__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_memo) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + size_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__deepcopy__", 0); + + __pyx_t_2 = ((PyObject *)__pyx_v_self); + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.Stream.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6Stream_8__reduce__, "Stream.__reduce__(self)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_6Stream_9__reduce__ = {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_8__reduce__}; +static PyObject *__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce__ (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("__reduce__", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce__", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(((struct __pyx_obj_5talib_7_ta_lib_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_6Stream_8__reduce__(struct __pyx_obj_5talib_7_ta_lib_Stream *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + size_t __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce__", 0); + + __pyx_t_2 = NULL; + + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_cannot_pickle_s_a_stream_handle, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(3, 2539, __pyx_L1_error) + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("talib._ta_lib.Stream.__reduce__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9AC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9AC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9AC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AC_Close(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2564, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2564, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 2564, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2564, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2564, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2564, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2564, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2564, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 2564, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9AC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2567, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2567, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2568, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2569, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2570, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AC_Close(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_4open_and_fill, "AC_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2581, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2581, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 2581, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2581, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2581, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2581, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2582, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2582, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2582, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 2581, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AC_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2585, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2585, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2586, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2587, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2588, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2600, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2600, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2600, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 2600, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_6update, "AC_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2602, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2602, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2602, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2602, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 2602, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2602, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2602, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2603, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2603, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2602, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_AC_Update(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_8peek, "AC_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2610, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2610, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 2610, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2610, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2610, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2611, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2611, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2610, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_AC_Peek(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_AC_Value(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2624, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AC_OutRange(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AC_Advance(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AC_Stream_10copy, "AC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_self) { + TA_AC_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_AC_Clone(((TA_AC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream))))) __PYX_ERR(3, 2638, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ACCBANDS_Close(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2666, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2666, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 2666, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2666, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2666, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2666, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2666, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2666, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ACCBANDS_Stream *__pyx_v_handle; + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2670, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2670, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2670, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2671, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2672, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2673, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ACCBANDS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ACCBANDS_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ACCBANDS_Close(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill, "ACCBANDS_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2686, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2686, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 2686, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2686, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2686, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2686, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2687, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2686, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outupperband = 0; + PyArrayObject *__pyx_v_outmiddleband = 0; + PyArrayObject *__pyx_v_outlowerband = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ACCBANDS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2691, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2691, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2691, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2692, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2693, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2694, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ACCBANDS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_6update, "ACCBANDS_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2710, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2710, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2710, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2710, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2710, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 2710, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2710, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2710, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2710, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2711, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2711, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2711, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2710, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ACCBANDS_Update(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_8peek, "ACCBANDS_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2720, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2720, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2720, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2720, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2720, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 2720, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2720, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2720, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2720, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2721, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2721, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2721, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2720, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ACCBANDS_Peek(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ACCBANDS_Value(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACCBANDS_OutRange(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACCBANDS_Advance(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_10copy, "ACCBANDS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_self) { + TA_ACCBANDS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ACCBANDS_Clone(((TA_ACCBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream))))) __PYX_ERR(3, 2752, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ACOS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ACOS_Close(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2774, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2774, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2774, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 2774, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2774, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2774, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ACOS_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2776, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2777, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2778, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2779, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ACOS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ACOS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ACOS_Close(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill, "ACOS_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2790, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2790, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 2790, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2790, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2790, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ACOS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2793, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2793, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2794, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2795, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2796, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ACOS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 2808, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2808, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 2808, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_6update, "ACOS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2810, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2810, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2810, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 2810, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2810, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2811, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2810, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ACOS_Update(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_8peek, "ACOS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2818, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2818, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2818, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 2818, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2818, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2819, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2818, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ACOS_Peek(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ACOS_Value(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACOS_OutRange(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ACOS_Advance(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ACOS_Stream_10copy, "ACOS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_self) { + TA_ACOS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ACOS_Clone(((TA_ACOS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream))))) __PYX_ERR(3, 2846, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ACOS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9AD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9AD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9AD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AD_Close(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2868, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2868, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2868, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 2868, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2868, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2868, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2868, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2868, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2868, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AD_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2874, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2875, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2876, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AD_Close(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_4open_and_fill, "AD_Stream.open_and_fill(high, low, close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2887, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2887, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2887, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2887, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2887, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2887, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 2887, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2887, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2887, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2887, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2887, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2887, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2894, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2895, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2896, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_6update, "AD_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2910, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2910, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2910, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2910, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2910, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2910, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 2910, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2910, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2910, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2910, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2910, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2910, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_AD_Update(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_8peek, "AD_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2918, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2918, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2918, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2918, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2918, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2918, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 2918, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2918, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2918, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2918, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2918, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2918, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_AD_Peek(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_AD_Value(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AD_OutRange(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AD_Advance(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AD_Stream_10copy, "AD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_self) { + TA_AD_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_AD_Clone(((TA_AD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream))))) __PYX_ERR(3, 2946, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ADD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ADD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ADD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADD_Close(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2969, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2969, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 2969, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2969, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2969, __pyx_L3_error) + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2969, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADD_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 2972, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 2972, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2973, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2974, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2975, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADD_Close(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_4open_and_fill, "ADD_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2986, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2986, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2986, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2986, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 2986, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2986, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2986, __pyx_L3_error) + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2986, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 2990, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 2990, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2991, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2992, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2993, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_6update, "ADD_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3007, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3007, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3007, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3007, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3007, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3007, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3007, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3008, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3008, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3007, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ADD_Update(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_8peek, "ADD_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3015, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3015, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3015, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3015, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3015, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3016, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3016, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3015, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ADD_Peek(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ADD_Value(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADD_OutRange(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADD_Advance(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADD_Stream_10copy, "ADD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_self) { + TA_ADD_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ADD_Clone(((TA_ADD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream))))) __PYX_ERR(3, 3043, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADOSC_Close(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3068, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3068, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, i); __PYX_ERR(3, 3068, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3068, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3068, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3068, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3068, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3068, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3068, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3068, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3068, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3074, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3075, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3076, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADOSC_Close(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill, "ADOSC_Stream.open_and_fill(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3087, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3087, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, i); __PYX_ERR(3, 3087, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3087, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3087, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3087, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3087, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3087, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3088, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3088, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3087, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADOSC_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3094, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3095, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3096, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_6update, "ADOSC_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3110, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3110, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 3110, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3110, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3110, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3110, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3110, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3110, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ADOSC_Update(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_8peek, "ADOSC_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3118, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3118, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3118, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3118, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3118, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3118, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 3118, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3118, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3118, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3118, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3118, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3118, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ADOSC_Peek(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ADOSC_Value(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADOSC_OutRange(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADOSC_Advance(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_10copy, "ADOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_self) { + TA_ADOSC_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ADOSC_Clone(((TA_ADOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream))))) __PYX_ERR(3, 3146, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ADR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ADR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ADR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADR_Close(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3170, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3170, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3170, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3170, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3170, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3170, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3170, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3170, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3170, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3170, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3170, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3173, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3173, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3174, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3175, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3176, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADR_Close(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_4open_and_fill, "ADR_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3187, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3187, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3187, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3187, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3187, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3188, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3187, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3191, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3191, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3192, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3193, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3194, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_6update, "ADR_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3208, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3208, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3208, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3208, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3208, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3208, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3208, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3209, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3209, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3208, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ADR_Update(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_8peek, "ADR_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3216, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3216, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3216, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3216, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3216, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3216, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3216, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3217, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3217, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3216, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ADR_Peek(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ADR_Value(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADR_OutRange(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADR_Advance(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADR_Stream_10copy, "ADR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_self) { + TA_ADR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ADR_Clone(((TA_ADR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream))))) __PYX_ERR(3, 3244, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ADX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ADX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ADX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADX_Close(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3268, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3268, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3268, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3268, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3268, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3268, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3268, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3268, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3268, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3268, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3268, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3268, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3268, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADX_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3272, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3272, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3272, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3273, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3274, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3275, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADX_Close(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_4open_and_fill, "ADX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3286, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3286, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3286, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3286, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3286, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3286, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3287, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3286, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3291, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3291, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3291, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3292, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3293, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3294, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_6update, "ADX_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3308, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3308, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3308, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3308, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3308, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3308, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3308, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3308, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3308, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3309, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3309, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3309, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3308, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ADX_Update(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_8peek, "ADX_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3316, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3316, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3316, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3316, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3316, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3316, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3316, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3316, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3316, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3317, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3317, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3317, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3316, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ADX_Peek(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ADX_Value(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADX_OutRange(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ADX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADX_Advance(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ADX_Stream_10copy, "ADX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ADX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_self) { + TA_ADX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ADX_Clone(((TA_ADX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream))))) __PYX_ERR(3, 3344, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ADXR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ADXR_Close(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3368, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3368, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3368, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3368, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3368, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3368, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3368, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3368, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3368, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3368, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3368, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3368, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3368, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ADXR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3372, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3372, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3372, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3373, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3374, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3375, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADXR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADXR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ADXR_Close(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill, "ADXR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3386, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3386, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3386, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3386, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3386, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3386, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3387, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3386, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ADXR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3391, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3391, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3391, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3392, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3393, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3394, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ADXR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_6update, "ADXR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3408, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3408, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3408, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3408, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3408, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3408, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3408, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3409, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3409, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3409, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3408, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ADXR_Update(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_8peek, "ADXR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3416, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3416, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3416, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3416, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3416, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3416, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3416, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3416, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3416, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3417, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3417, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3417, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3416, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ADXR_Peek(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ADXR_Value(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADXR_OutRange(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ADXR_Advance(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ADXR_Stream_10copy, "ADXR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_self) { + TA_ADXR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ADXR_Clone(((TA_ADXR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream))))) __PYX_ERR(3, 3444, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ADXR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9AO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9AO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9AO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AO_Close(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3469, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3469, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3469, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3469, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3469, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3469, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 3469, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3469, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3469, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3469, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3469, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3469, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3469, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3469, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AO_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3472, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3473, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3474, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3475, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AO_Close(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_4open_and_fill, "AO_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3486, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3486, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 3486, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3486, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3486, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3487, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3487, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3486, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AO_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3490, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3490, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3491, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3492, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3493, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_6update, "AO_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3507, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3507, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3507, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3507, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3507, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3507, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3507, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3508, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3508, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3507, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_AO_Update(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_8peek, "AO_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3515, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3515, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3515, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3515, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3515, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3515, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3515, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3516, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3516, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3515, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_AO_Peek(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_AO_Value(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AO_OutRange(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9AO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AO_Advance(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9AO_Stream_10copy, "AO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9AO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_self) { + TA_AO_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_AO_Clone(((TA_AO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream))))) __PYX_ERR(3, 3543, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10APO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10APO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10APO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_APO_Close(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3569, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3569, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 3569, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3569, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3569, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3569, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3569, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 3569, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_APO_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3571, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3572, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3573, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3574, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_APO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_APO_Close(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_4open_and_fill, "APO_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10APO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3585, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3585, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 3585, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3585, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3585, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3586, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3586, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3586, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 3585, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_APO_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3588, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3589, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3590, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3591, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_APO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_APO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_6update, "APO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3605, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3605, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3605, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3605, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3605, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3606, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3605, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_APO_Update(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_8peek, "APO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3613, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3613, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 3613, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3613, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3614, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3613, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_APO_Peek(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_APO_Value(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_APO_OutRange(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10APO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_APO_Advance(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10APO_Stream_10copy, "APO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10APO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_self) { + TA_APO_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_APO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_APO_Clone(((TA_APO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream))))) __PYX_ERR(3, 3641, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.APO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12AROON_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12AROON_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12AROON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AROON_Close(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3668, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3668, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3668, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3668, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3668, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3668, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3668, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3668, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3668, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3668, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3668, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AROON_Stream *__pyx_v_handle; + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3671, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3671, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3672, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3673, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3674, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AROON_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AROON_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AROON_Close(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_4open_and_fill, "AROON_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12AROON_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3686, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3686, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3686, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3686, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3686, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3687, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3686, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outaroondown = 0; + PyArrayObject *__pyx_v_outaroonup = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AROON_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3690, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3690, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3691, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3692, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3693, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AROON_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outaroondown)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outaroonup)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown); + __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_6update, "AROON_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3708, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3708, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3708, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3708, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3708, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3708, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3708, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3709, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3709, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3708, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_AROON_Update(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_8peek, "AROON_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3717, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3717, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3717, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3717, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3717, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3717, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3718, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3718, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3717, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_AROON_Peek(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_AROON_Value(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROON_OutRange(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12AROON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROON_Advance(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12AROON_Stream_10copy, "AROON_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12AROON_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_self) { + TA_AROON_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_AROON_Clone(((TA_AROON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream))))) __PYX_ERR(3, 3747, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AROONOSC_Close(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3771, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3771, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3771, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3771, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3771, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3771, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3771, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AROONOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3774, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3774, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3775, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3776, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3777, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AROONOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AROONOSC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AROONOSC_Close(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill, "AROONOSC_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3788, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3788, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3788, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3788, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3788, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3788, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3788, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3788, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3788, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3789, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3788, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AROONOSC_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3792, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3792, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3793, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3794, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3795, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AROONOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_6update, "AROONOSC_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3809, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3809, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3809, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3809, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3809, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3809, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3809, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3810, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3810, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3809, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_AROONOSC_Update(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_8peek, "AROONOSC_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3817, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3817, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3817, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3817, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3817, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3817, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3817, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3818, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3818, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3817, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_AROONOSC_Peek(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3823, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_AROONOSC_Value(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROONOSC_OutRange(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AROONOSC_Advance(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_10copy, "AROONOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_self) { + TA_AROONOSC_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_AROONOSC_Clone(((TA_AROONOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream))))) __PYX_ERR(3, 3845, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AROONOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ASIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ASIN_Close(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3867, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3867, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3867, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 3867, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3867, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3867, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ASIN_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3868, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3869, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3870, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3871, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3872, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ASIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ASIN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ASIN_Close(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill, "ASIN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3883, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3883, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3883, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 3883, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3883, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3883, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ASIN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3886, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3887, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3888, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3889, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ASIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3901, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3901, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3901, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_6update, "ASIN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3903, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3903, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3903, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3903, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3903, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3904, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3903, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ASIN_Update(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_8peek, "ASIN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3911, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3911, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3911, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 3911, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3911, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3912, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3911, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ASIN_Peek(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ASIN_Value(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ASIN_OutRange(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ASIN_Advance(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ASIN_Stream_10copy, "ASIN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_self) { + TA_ASIN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ASIN_Clone(((TA_ASIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream))))) __PYX_ERR(3, 3939, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ASIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11ATAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ATAN_Close(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3961, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3961, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3961, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 3961, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3961, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3961, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ATAN_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3963, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3964, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3965, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3966, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ATAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ATAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ATAN_Close(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill, "ATAN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3977, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3977, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 3977, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3977, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3977, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ATAN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3980, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3981, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3982, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3983, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ATAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3995, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3995, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3995, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_6update, "ATAN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3997, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3997, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3997, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3997, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3997, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3998, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3997, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ATAN_Update(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_8peek, "ATAN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4005, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4005, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4005, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4005, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4005, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4006, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4005, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ATAN_Peek(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ATAN_Value(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATAN_OutRange(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATAN_Advance(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ATAN_Stream_10copy, "ATAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_self) { + TA_ATAN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ATAN_Clone(((TA_ATAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream))))) __PYX_ERR(3, 4033, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ATR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ATR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ATR_Close(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4057, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4057, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4057, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4057, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4057, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4057, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4057, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4057, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4057, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ATR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4061, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4061, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4061, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4062, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4063, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4064, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ATR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ATR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ATR_Close(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_4open_and_fill, "ATR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ATR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4075, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4075, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4075, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4075, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4075, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4075, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4076, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4075, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ATR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4080, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4080, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4080, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4081, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4082, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4083, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ATR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_6update, "ATR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4097, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4097, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4097, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4097, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4097, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4097, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4097, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4097, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4097, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4098, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4098, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4098, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4097, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ATR_Update(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_8peek, "ATR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4105, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4105, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4105, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4105, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4105, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4105, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4106, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4106, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4106, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4105, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ATR_Peek(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ATR_Value(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATR_OutRange(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ATR_Advance(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ATR_Stream_10copy, "ATR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ATR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_self) { + TA_ATR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ATR_Clone(((TA_ATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream))))) __PYX_ERR(3, 4133, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ATR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AVGDEV_Close(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4157, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4157, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4157, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4157, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 4157, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4157, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4157, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4157, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4157, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AVGDEV_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4159, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4160, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4161, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4162, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AVGDEV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AVGDEV_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AVGDEV_Close(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill, "AVGDEV_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4173, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4173, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4173, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4173, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 4173, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4173, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4173, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4174, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4173, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AVGDEV_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4176, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4177, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4178, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4179, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AVGDEV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4191, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4191, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4191, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_6update, "AVGDEV_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4193, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4193, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4193, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4193, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4193, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4194, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4193, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_AVGDEV_Update(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_8peek, "AVGDEV_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4201, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4201, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4201, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4201, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4201, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4202, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4201, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_AVGDEV_Peek(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_AVGDEV_Value(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGDEV_OutRange(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGDEV_Advance(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_10copy, "AVGDEV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_self) { + TA_AVGDEV_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_AVGDEV_Clone(((TA_AVGDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream))))) __PYX_ERR(3, 4229, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGDEV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_AVGPRICE_Close(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4251, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4251, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4251, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4251, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4251, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4251, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4251, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4251, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4251, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_AVGPRICE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4257, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4258, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4259, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AVGPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AVGPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_AVGPRICE_Close(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill, "AVGPRICE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4270, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4270, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4270, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4270, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4270, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4270, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4270, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4270, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4270, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4270, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4270, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4270, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_AVGPRICE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4277, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4278, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4279, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_AVGPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_6update, "AVGPRICE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4293, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4293, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4293, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4293, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4293, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4293, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4293, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4293, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4293, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4293, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4293, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4293, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_AVGPRICE_Update(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_8peek, "AVGPRICE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4301, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4301, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4301, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4301, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4301, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4301, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4301, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4301, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4301, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4301, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4301, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4301, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_AVGPRICE_Peek(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_AVGPRICE_Value(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGPRICE_OutRange(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_AVGPRICE_Advance(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_10copy, "AVGPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_self) { + TA_AVGPRICE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_AVGPRICE_Clone(((TA_AVGPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream))))) __PYX_ERR(3, 4329, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.AVGPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_BBANDS_Close(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4360, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4360, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 4360, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4360, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4360, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 4360, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_BBANDS_Stream *__pyx_v_handle; + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4362, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4363, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4364, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4365, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_BBANDS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_BBANDS_Close(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill, "BBANDS_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4378, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4378, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 4378, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4378, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + } else { + __pyx_v_nbdevup = ((double)-4e37); + } + if (values[3]) { + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)-4e37); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 4378, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outupperband = 0; + PyArrayObject *__pyx_v_outmiddleband = 0; + PyArrayObject *__pyx_v_outlowerband = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_BBANDS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4381, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4382, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4383, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4384, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_BBANDS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_6update, "BBANDS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4400, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4400, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4400, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4400, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4401, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4400, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_BBANDS_Update(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_8peek, "BBANDS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4410, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4410, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4410, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4410, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4410, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4411, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4410, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_BBANDS_Peek(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_BBANDS_Value(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BBANDS_OutRange(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BBANDS_Advance(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_10copy, "BBANDS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_self) { + TA_BBANDS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_BBANDS_Clone(((TA_BBANDS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream))))) __PYX_ERR(3, 4442, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11BETA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11BETA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11BETA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_BETA_Close(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4467, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4467, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 4467, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4467, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4467, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4467, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4467, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_BETA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 4470, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 4470, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4471, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4472, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4473, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_BETA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BETA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_BETA_Close(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_4open_and_fill, "BETA_Stream.open_and_fill(real0, real1, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11BETA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4484, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4484, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 4484, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4484, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4484, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4485, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4484, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_BETA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 4488, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 4488, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4489, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4490, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4491, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_BETA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BETA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_6update, "BETA_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4505, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4505, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4505, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4505, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4505, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4505, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4505, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4506, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4506, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4505, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_BETA_Update(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_8peek, "BETA_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4513, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4513, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4513, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4513, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4513, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4514, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4514, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4513, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_BETA_Peek(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_BETA_Value(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BETA_OutRange(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11BETA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BETA_Advance(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11BETA_Stream_10copy, "BETA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11BETA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_self) { + TA_BETA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_BETA_Clone(((TA_BETA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream))))) __PYX_ERR(3, 4541, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BETA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10BOP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10BOP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10BOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_BOP_Close(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4563, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4563, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4563, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4563, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4563, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4563, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4563, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4563, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4563, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4563, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4563, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4563, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_BOP_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4569, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4570, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4571, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_BOP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BOP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_BOP_Close(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_4open_and_fill, "BOP_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BOP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4582, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4582, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4582, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4582, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4582, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4582, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4582, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4582, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4582, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_BOP_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4589, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4590, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4591, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_BOP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_6update, "BOP_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4605, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4605, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4605, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4605, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4605, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4605, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4605, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4605, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4605, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4605, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4605, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4605, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_BOP_Update(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_8peek, "BOP_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4613, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4613, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4613, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4613, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4613, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4613, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4613, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4613, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_BOP_Peek(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_BOP_Value(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BOP_OutRange(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10BOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_BOP_Advance(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10BOP_Stream_10copy, "BOP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10BOP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_self) { + TA_BOP_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_BOP_Clone(((TA_BOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream))))) __PYX_ERR(3, 4641, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.BOP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10CCI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CCI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10CCI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CCI_Close(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4665, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4665, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4665, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4665, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4665, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4665, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4665, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4665, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CCI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4669, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4669, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4669, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4670, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4671, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4672, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CCI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CCI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CCI_Close(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_4open_and_fill, "CCI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CCI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4683, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4683, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4683, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4683, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4683, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4683, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4684, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4683, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CCI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4688, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4688, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4688, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4689, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4690, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4691, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CCI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CCI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_6update, "CCI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4705, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4705, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4705, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4705, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4705, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4705, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4705, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4706, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4706, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4706, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4705, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CCI_Update(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_8peek, "CCI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4713, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4713, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4713, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4713, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4713, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4713, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4714, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4714, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4714, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4713, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CCI_Peek(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CCI_Value(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CCI_OutRange(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CCI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CCI_Advance(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CCI_Stream_10copy, "CCI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CCI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_self) { + TA_CCI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CCI_Clone(((TA_CCI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream))))) __PYX_ERR(3, 4741, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CCI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL2CROWS_Close(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4763, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4763, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4763, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4763, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4763, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4763, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4763, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4763, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4763, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4763, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4763, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4763, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL2CROWS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4769, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4770, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4771, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL2CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL2CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL2CROWS_Close(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill, "CDL2CROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4782, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4782, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4782, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4782, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4782, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4782, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4782, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4782, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4782, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4782, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4782, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4782, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL2CROWS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4789, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4790, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4791, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4793, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL2CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_6update, "CDL2CROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4805, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4805, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4805, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4805, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4805, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4805, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4805, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4805, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4805, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDL2CROWS_Update(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek, "CDL2CROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4813, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4813, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4813, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4813, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4813, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4813, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4813, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4813, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDL2CROWS_Peek(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDL2CROWS_Value(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL2CROWS_OutRange(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL2CROWS_Advance(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy, "CDL2CROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_self) { + TA_CDL2CROWS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDL2CROWS_Clone(((TA_CDL2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream))))) __PYX_ERR(3, 4841, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3BLACKCROWS_Close(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4863, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4863, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4863, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4863, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4863, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4863, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4863, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4863, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4863, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4863, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4863, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4863, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3BLACKCROWS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4868, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4869, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4870, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4871, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3BLACKCROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3BLACKCROWS_Close(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill, "CDL3BLACKCROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4882, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4882, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4882, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4882, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4882, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4882, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4882, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4882, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4882, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4882, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4882, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4882, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3BLACKCROWS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4889, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4890, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4891, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3BLACKCROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update, "CDL3BLACKCROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4905, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4905, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4905, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4905, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4905, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4905, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4905, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4905, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4905, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4905, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4905, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4905, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Update(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek, "CDL3BLACKCROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4913, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4913, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4913, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4913, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4913, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4913, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4913, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4913, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Peek(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Value(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3BLACKCROWS_OutRange(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3BLACKCROWS_Advance(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy, "CDL3BLACKCROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_self) { + TA_CDL3BLACKCROWS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDL3BLACKCROWS_Clone(((TA_CDL3BLACKCROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream))))) __PYX_ERR(3, 4941, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3INSIDE_Close(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4963, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4963, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4963, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4963, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4963, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4963, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4963, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4963, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4963, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4963, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4963, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4963, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3INSIDE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4969, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4970, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4971, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3INSIDE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3INSIDE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3INSIDE_Close(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill, "CDL3INSIDE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4982, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4982, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4982, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4982, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4982, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4982, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4982, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4982, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4982, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4982, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4982, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4982, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3INSIDE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4989, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4990, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4991, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3INSIDE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update, "CDL3INSIDE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5005, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5005, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5005, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5005, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5005, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5005, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5005, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5005, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5005, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5005, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5005, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5005, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDL3INSIDE_Update(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek, "CDL3INSIDE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5013, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5013, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5013, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5013, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5013, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5013, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5013, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5013, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDL3INSIDE_Peek(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDL3INSIDE_Value(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3INSIDE_OutRange(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3INSIDE_Advance(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy, "CDL3INSIDE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_self) { + TA_CDL3INSIDE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDL3INSIDE_Clone(((TA_CDL3INSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream))))) __PYX_ERR(3, 5041, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3LINESTRIKE_Close(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5063, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5063, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5063, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5063, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5063, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5063, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5063, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5063, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5063, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5063, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5063, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5063, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3LINESTRIKE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5069, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5070, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5071, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3LINESTRIKE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3LINESTRIKE_Close(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill, "CDL3LINESTRIKE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5082, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5082, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5082, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5082, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5082, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5082, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5082, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5082, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5082, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5082, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5082, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5082, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3LINESTRIKE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5089, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5090, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5091, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3LINESTRIKE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update, "CDL3LINESTRIKE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5105, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5105, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5105, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5105, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5105, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5105, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5105, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5105, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5105, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Update(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek, "CDL3LINESTRIKE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5113, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5113, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5113, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5113, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5113, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5113, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5113, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5113, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Peek(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Value(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3LINESTRIKE_OutRange(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3LINESTRIKE_Advance(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy, "CDL3LINESTRIKE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_self) { + TA_CDL3LINESTRIKE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDL3LINESTRIKE_Clone(((TA_CDL3LINESTRIKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream))))) __PYX_ERR(3, 5141, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3OUTSIDE_Close(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5163, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5163, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5163, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5163, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5163, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5163, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5163, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5163, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5163, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3OUTSIDE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5169, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5170, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5171, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3OUTSIDE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3OUTSIDE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3OUTSIDE_Close(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill, "CDL3OUTSIDE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5182, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5182, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5182, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5182, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5182, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5182, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5182, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5182, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5182, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3OUTSIDE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5189, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5190, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5191, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3OUTSIDE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update, "CDL3OUTSIDE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5205, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5205, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5205, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5205, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5205, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5205, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5205, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5205, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDL3OUTSIDE_Update(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek, "CDL3OUTSIDE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5213, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5213, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5213, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5213, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5213, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5213, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5213, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5213, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDL3OUTSIDE_Peek(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDL3OUTSIDE_Value(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3OUTSIDE_OutRange(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3OUTSIDE_Advance(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy, "CDL3OUTSIDE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_self) { + TA_CDL3OUTSIDE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDL3OUTSIDE_Clone(((TA_CDL3OUTSIDE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream))))) __PYX_ERR(3, 5241, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3STARSINSOUTH_Close(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5263, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5263, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5263, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5263, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5263, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5263, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5263, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5263, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5263, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5263, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5263, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5263, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3STARSINSOUTH_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5269, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5270, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5271, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3STARSINSOUTH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3STARSINSOUTH_Close(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill, "CDL3STARSINSOUTH_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5282, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5282, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5282, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5282, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5282, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5282, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5282, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5282, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5282, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5282, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5282, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5282, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3STARSINSOUTH_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5289, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5290, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5291, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update, "CDL3STARSINSOUTH_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5305, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5305, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5305, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5305, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5305, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5305, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5305, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5305, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5305, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5305, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5305, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5305, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Update(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek, "CDL3STARSINSOUTH_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5313, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5313, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5313, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5313, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5313, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5313, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5313, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5313, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Peek(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Value(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3STARSINSOUTH_OutRange(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3STARSINSOUTH_Advance(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy, "CDL3STARSINSOUTH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_self) { + TA_CDL3STARSINSOUTH_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDL3STARSINSOUTH_Clone(((TA_CDL3STARSINSOUTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream))))) __PYX_ERR(3, 5341, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDL3WHITESOLDIERS_Close(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5363, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5363, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5363, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5363, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5363, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5363, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5363, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5363, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDL3WHITESOLDIERS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5369, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5370, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5371, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3WHITESOLDIERS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDL3WHITESOLDIERS_Close(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill, "CDL3WHITESOLDIERS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5382, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5382, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5382, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5382, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5382, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5382, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5382, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5382, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5382, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5382, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5382, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5382, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDL3WHITESOLDIERS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5389, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5390, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5391, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update, "CDL3WHITESOLDIERS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5405, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5405, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5405, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5405, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5405, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5405, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5405, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5405, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5405, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5405, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5405, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5405, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Update(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek, "CDL3WHITESOLDIERS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5413, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5413, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5413, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5413, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5413, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5413, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5413, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5413, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Peek(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Value(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3WHITESOLDIERS_OutRange(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDL3WHITESOLDIERS_Advance(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy, "CDL3WHITESOLDIERS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_self) { + TA_CDL3WHITESOLDIERS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDL3WHITESOLDIERS_Clone(((TA_CDL3WHITESOLDIERS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream))))) __PYX_ERR(3, 5441, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLABANDONEDBABY_Close(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5465, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5465, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5465, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5465, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5465, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5465, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5465, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 5465, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5465, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5465, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5465, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5465, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5465, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5465, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 5465, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLABANDONEDBABY_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5471, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5472, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5473, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLABANDONEDBABY_Close(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill, "CDLABANDONEDBABY_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5484, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5484, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 5484, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5484, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5484, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5484, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5484, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5484, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5485, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 5484, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLABANDONEDBABY_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5491, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5492, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5493, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLABANDONEDBABY_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update, "CDLABANDONEDBABY_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5507, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5507, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5507, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5507, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5507, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5507, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5507, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5507, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5507, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5507, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5507, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5507, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Update(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek, "CDLABANDONEDBABY_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5515, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5515, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5515, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5515, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5515, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5515, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5515, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5515, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5515, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5515, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5515, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5515, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Peek(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Value(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLABANDONEDBABY_OutRange(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLABANDONEDBABY_Advance(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy, "CDLABANDONEDBABY_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_self) { + TA_CDLABANDONEDBABY_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLABANDONEDBABY_Clone(((TA_CDLABANDONEDBABY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream))))) __PYX_ERR(3, 5543, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLADVANCEBLOCK_Close(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5565, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5565, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5565, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5565, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5565, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5565, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5565, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5565, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5565, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5565, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5565, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5565, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLADVANCEBLOCK_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5571, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5572, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5573, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLADVANCEBLOCK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLADVANCEBLOCK_Close(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill, "CDLADVANCEBLOCK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5584, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5584, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5584, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5584, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5584, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5584, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5584, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5584, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5584, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5584, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5584, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5584, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLADVANCEBLOCK_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5591, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5592, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5593, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update, "CDLADVANCEBLOCK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5607, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5607, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5607, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5607, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5607, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5607, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5607, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5607, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Update(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek, "CDLADVANCEBLOCK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5615, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5615, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5615, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5615, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5615, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5615, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5615, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5615, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5615, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5615, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5615, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5615, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Peek(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Value(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLADVANCEBLOCK_OutRange(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLADVANCEBLOCK_Advance(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy, "CDLADVANCEBLOCK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_self) { + TA_CDLADVANCEBLOCK_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLADVANCEBLOCK_Clone(((TA_CDLADVANCEBLOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream))))) __PYX_ERR(3, 5643, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLBELTHOLD_Close(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5665, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5665, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5665, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5665, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5665, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5665, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5665, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5665, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5665, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLBELTHOLD_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5671, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5672, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5673, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLBELTHOLD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLBELTHOLD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLBELTHOLD_Close(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill, "CDLBELTHOLD_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5684, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5684, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5684, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5684, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5684, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5684, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5684, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5684, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5684, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5684, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5684, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5684, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLBELTHOLD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5691, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5692, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5693, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLBELTHOLD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update, "CDLBELTHOLD_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5707, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5707, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5707, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5707, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5707, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5707, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5707, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5707, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5707, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5707, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5707, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5707, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLBELTHOLD_Update(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek, "CDLBELTHOLD_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5715, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5715, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5715, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5715, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5715, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5715, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5715, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5715, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5715, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5715, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5715, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5715, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLBELTHOLD_Peek(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLBELTHOLD_Value(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLBELTHOLD_OutRange(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLBELTHOLD_Advance(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy, "CDLBELTHOLD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_self) { + TA_CDLBELTHOLD_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLBELTHOLD_Clone(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream))))) __PYX_ERR(3, 5743, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLBREAKAWAY_Close(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5765, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5765, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5765, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5765, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5765, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5765, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5765, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5765, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5765, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5765, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5765, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5765, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLBREAKAWAY_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5771, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5772, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5773, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLBREAKAWAY_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLBREAKAWAY_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLBREAKAWAY_Close(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill, "CDLBREAKAWAY_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5784, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5784, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5784, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5784, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5784, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5784, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5784, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5784, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLBREAKAWAY_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5791, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5792, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5793, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLBREAKAWAY_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update, "CDLBREAKAWAY_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5807, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5807, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5807, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5807, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5807, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5807, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5807, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5807, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5807, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5807, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5807, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5807, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLBREAKAWAY_Update(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek, "CDLBREAKAWAY_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5815, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5815, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5815, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5815, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5815, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5815, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5815, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5815, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLBREAKAWAY_Peek(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLBREAKAWAY_Value(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLBREAKAWAY_OutRange(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLBREAKAWAY_Advance(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy, "CDLBREAKAWAY_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_self) { + TA_CDLBREAKAWAY_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLBREAKAWAY_Clone(((TA_CDLBREAKAWAY_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream))))) __PYX_ERR(3, 5843, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLCLOSINGMARUBOZU_Close(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5865, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5865, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5865, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5865, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5865, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5865, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5865, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5865, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5865, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5868, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5871, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5872, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5873, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCLOSINGMARUBOZU_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLCLOSINGMARUBOZU_Close(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill, "CDLCLOSINGMARUBOZU_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5884, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5884, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5884, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5884, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5884, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5884, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5884, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5884, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5884, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5891, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5892, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5893, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update, "CDLCLOSINGMARUBOZU_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5907, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5907, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5907, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5907, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5907, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5907, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5907, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5907, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5907, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5907, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5907, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5907, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Update(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek, "CDLCLOSINGMARUBOZU_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5915, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5915, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5915, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5915, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5915, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5915, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5915, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5915, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Peek(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Value(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLCLOSINGMARUBOZU_OutRange(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLCLOSINGMARUBOZU_Advance(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy, "CDLCLOSINGMARUBOZU_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_self) { + TA_CDLCLOSINGMARUBOZU_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU_Clone(((TA_CDLCLOSINGMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream))))) __PYX_ERR(3, 5943, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLCONCEALBABYSWALL_Close(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5965, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5965, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5965, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5965, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5965, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5965, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5965, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5965, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5971, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5972, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5973, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCONCEALBABYSWALL_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLCONCEALBABYSWALL_Close(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill, "CDLCONCEALBABYSWALL_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5984, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5984, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5984, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5984, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5984, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5984, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5984, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5984, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5984, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5991, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5992, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5993, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update, "CDLCONCEALBABYSWALL_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6007, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6007, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6007, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6007, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6007, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6007, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6007, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6007, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6007, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6007, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6007, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6007, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Update(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek, "CDLCONCEALBABYSWALL_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6015, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6015, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6015, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6015, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6015, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6015, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6015, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6015, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Peek(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Value(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLCONCEALBABYSWALL_OutRange(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLCONCEALBABYSWALL_Advance(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy, "CDLCONCEALBABYSWALL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_self) { + TA_CDLCONCEALBABYSWALL_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL_Clone(((TA_CDLCONCEALBABYSWALL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream))))) __PYX_ERR(3, 6043, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLCOUNTERATTACK_Close(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6065, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6065, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6065, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6065, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6065, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6065, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6065, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6065, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLCOUNTERATTACK_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6071, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6072, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6073, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCOUNTERATTACK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLCOUNTERATTACK_Close(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill, "CDLCOUNTERATTACK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6084, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6084, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6084, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6084, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6084, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6084, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6084, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6084, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLCOUNTERATTACK_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6091, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6092, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6093, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLCOUNTERATTACK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update, "CDLCOUNTERATTACK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6107, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6107, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6107, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6107, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6107, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6107, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6107, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6107, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6107, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6107, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6107, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6107, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Update(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek, "CDLCOUNTERATTACK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6115, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6115, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6115, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6115, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6115, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6115, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6115, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6115, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Peek(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Value(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLCOUNTERATTACK_OutRange(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLCOUNTERATTACK_Advance(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy, "CDLCOUNTERATTACK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_self) { + TA_CDLCOUNTERATTACK_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLCOUNTERATTACK_Clone(((TA_CDLCOUNTERATTACK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream))))) __PYX_ERR(3, 6143, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLDARKCLOUDCOVER_Close(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6167, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6167, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6167, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6167, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6167, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6167, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6167, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6167, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6167, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6173, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6174, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6175, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLDARKCLOUDCOVER_Close(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill, "CDLDARKCLOUDCOVER_Stream.open_and_fill(open, high, low, close, double penetration=0.5)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6186, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6186, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6186, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6186, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6186, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6186, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6186, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6187, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6186, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6193, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6194, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6195, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update, "CDLDARKCLOUDCOVER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6209, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6209, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6209, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6209, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6209, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6209, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6209, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6209, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6209, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6209, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6209, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6209, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Update(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek, "CDLDARKCLOUDCOVER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6217, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6217, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6217, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6217, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6217, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6217, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6217, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6217, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6217, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6217, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6217, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6217, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Peek(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Value(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDARKCLOUDCOVER_OutRange(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDARKCLOUDCOVER_Advance(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy, "CDLDARKCLOUDCOVER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_self) { + TA_CDLDARKCLOUDCOVER_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER_Clone(((TA_CDLDARKCLOUDCOVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream))))) __PYX_ERR(3, 6245, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLDOJI_Close(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6267, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6267, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6267, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6267, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6267, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6267, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6267, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6267, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6267, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLDOJI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6273, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6274, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6275, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLDOJI_Close(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill, "CDLDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6286, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6286, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6286, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6286, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6286, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6286, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6286, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6286, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLDOJI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6293, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6294, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6295, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_6update, "CDLDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6309, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6309, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6309, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6309, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6309, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6309, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6309, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6309, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6309, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6309, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6309, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6309, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLDOJI_Update(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_8peek, "CDLDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6317, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6317, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6317, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6317, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6317, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6317, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6317, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6317, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6317, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6317, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6317, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6317, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLDOJI_Peek(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLDOJI_Value(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDOJI_OutRange(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDOJI_Advance(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_10copy, "CDLDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_self) { + TA_CDLDOJI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLDOJI_Clone(((TA_CDLDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream))))) __PYX_ERR(3, 6345, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLDOJISTAR_Close(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6367, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6367, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6367, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6367, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6367, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6367, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6367, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6367, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6367, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6367, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6367, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6367, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLDOJISTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6373, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6374, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6375, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDOJISTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLDOJISTAR_Close(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill, "CDLDOJISTAR_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6386, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6386, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6386, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6386, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6386, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6386, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6386, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6386, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLDOJISTAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6393, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6394, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6395, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update, "CDLDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6409, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6409, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6409, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6409, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6409, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6409, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6409, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6409, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6409, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLDOJISTAR_Update(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek, "CDLDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6417, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6417, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6417, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6417, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6417, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6417, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6417, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6417, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6417, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6417, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6417, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6417, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLDOJISTAR_Peek(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLDOJISTAR_Value(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDOJISTAR_OutRange(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDOJISTAR_Advance(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy, "CDLDOJISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_self) { + TA_CDLDOJISTAR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLDOJISTAR_Clone(((TA_CDLDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream))))) __PYX_ERR(3, 6445, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLDRAGONFLYDOJI_Close(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6467, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6467, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6467, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6467, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6467, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6467, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6467, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6467, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6467, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6473, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6474, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6475, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDRAGONFLYDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLDRAGONFLYDOJI_Close(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill, "CDLDRAGONFLYDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6486, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6486, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6486, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6486, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6486, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6486, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6486, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6486, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6493, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6494, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6495, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update, "CDLDRAGONFLYDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6509, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6509, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6509, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6509, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6509, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6509, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6509, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6509, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6509, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6509, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6509, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6509, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Update(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek, "CDLDRAGONFLYDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6517, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6517, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6517, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6517, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6517, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6517, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6517, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6517, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6517, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Peek(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Value(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDRAGONFLYDOJI_OutRange(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLDRAGONFLYDOJI_Advance(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy, "CDLDRAGONFLYDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_self) { + TA_CDLDRAGONFLYDOJI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI_Clone(((TA_CDLDRAGONFLYDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream))))) __PYX_ERR(3, 6545, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLENGULFING_Close(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6567, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6567, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6567, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6567, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6567, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6567, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6567, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6567, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLENGULFING_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6573, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6574, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6575, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLENGULFING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLENGULFING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLENGULFING_Close(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill, "CDLENGULFING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6586, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6586, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6586, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6586, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6586, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6586, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6586, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6586, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLENGULFING_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6593, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6594, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6595, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLENGULFING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_6update, "CDLENGULFING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6609, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6609, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6609, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6609, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6609, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6609, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6609, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6609, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6609, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLENGULFING_Update(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek, "CDLENGULFING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6617, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6617, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6617, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6617, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6617, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6617, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6617, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6617, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6617, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLENGULFING_Peek(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLENGULFING_Value(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLENGULFING_OutRange(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLENGULFING_Advance(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy, "CDLENGULFING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_self) { + TA_CDLENGULFING_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLENGULFING_Clone(((TA_CDLENGULFING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6645, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream))))) __PYX_ERR(3, 6645, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLEVENINGDOJISTAR_Close(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6669, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6669, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6669, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6669, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6669, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6669, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6669, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6669, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6669, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6669, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6669, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6669, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6669, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6669, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6669, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6675, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6676, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6677, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLEVENINGDOJISTAR_Close(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill, "CDLEVENINGDOJISTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6688, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6688, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6688, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6688, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6688, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6688, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6688, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6688, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6688, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6688, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6688, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6688, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6688, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6689, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6688, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6695, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6696, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6697, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update, "CDLEVENINGDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6711, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6711, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6711, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6711, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6711, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6711, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6711, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6711, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6711, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Update(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek, "CDLEVENINGDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6719, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6719, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6719, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6719, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6719, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6719, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6719, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6719, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Peek(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Value(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLEVENINGDOJISTAR_OutRange(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLEVENINGDOJISTAR_Advance(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy, "CDLEVENINGDOJISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_self) { + TA_CDLEVENINGDOJISTAR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR_Clone(((TA_CDLEVENINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream))))) __PYX_ERR(3, 6747, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLEVENINGSTAR_Close(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6771, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6771, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6771, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6771, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6771, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6771, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6771, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6771, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6771, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLEVENINGSTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6777, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6778, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6779, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLEVENINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLEVENINGSTAR_Close(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill, "CDLEVENINGSTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6790, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6790, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6790, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6790, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6790, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6790, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6790, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6791, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6790, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLEVENINGSTAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6793, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6797, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6798, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6799, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLEVENINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update, "CDLEVENINGSTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6813, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6813, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6813, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6813, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6813, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6813, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6813, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6813, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLEVENINGSTAR_Update(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek, "CDLEVENINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6821, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6821, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6821, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6821, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6821, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6821, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6821, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6821, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLEVENINGSTAR_Peek(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLEVENINGSTAR_Value(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLEVENINGSTAR_OutRange(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLEVENINGSTAR_Advance(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy, "CDLEVENINGSTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_self) { + TA_CDLEVENINGSTAR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLEVENINGSTAR_Clone(((TA_CDLEVENINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream))))) __PYX_ERR(3, 6849, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLGAPSIDESIDEWHITE_Close(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6871, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6871, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6871, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6871, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6871, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6871, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6871, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6871, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6877, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6878, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6879, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLGAPSIDESIDEWHITE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLGAPSIDESIDEWHITE_Close(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill, "CDLGAPSIDESIDEWHITE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6890, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6890, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6890, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6890, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6890, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6890, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6890, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6890, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6897, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6898, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6899, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update, "CDLGAPSIDESIDEWHITE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6913, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6913, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6913, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6913, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6913, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6913, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6913, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6913, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Update(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek, "CDLGAPSIDESIDEWHITE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6921, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6921, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6921, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6921, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6921, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6921, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6921, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6921, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Peek(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Value(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLGAPSIDESIDEWHITE_OutRange(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLGAPSIDESIDEWHITE_Advance(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy, "CDLGAPSIDESIDEWHITE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_self) { + TA_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE_Clone(((TA_CDLGAPSIDESIDEWHITE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream))))) __PYX_ERR(3, 6949, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLGRAVESTONEDOJI_Close(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6971, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6971, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6971, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6971, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6971, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6971, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6971, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6971, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6977, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6978, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6979, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLGRAVESTONEDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLGRAVESTONEDOJI_Close(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill, "CDLGRAVESTONEDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6990, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6990, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6990, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6990, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6990, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6990, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6990, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6990, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6997, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6998, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6999, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update, "CDLGRAVESTONEDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7013, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7013, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7013, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7013, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7013, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7013, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7013, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7013, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Update(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek, "CDLGRAVESTONEDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7021, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7021, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7021, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7021, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7021, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7021, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7021, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7021, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Peek(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Value(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLGRAVESTONEDOJI_OutRange(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLGRAVESTONEDOJI_Advance(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy, "CDLGRAVESTONEDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_self) { + TA_CDLGRAVESTONEDOJI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI_Clone(((TA_CDLGRAVESTONEDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream))))) __PYX_ERR(3, 7049, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHAMMER_Close(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7071, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7071, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7071, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7071, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7071, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7071, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7071, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7071, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHAMMER_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7077, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7078, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7079, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHAMMER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHAMMER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHAMMER_Close(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill, "CDLHAMMER_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7090, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7090, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7090, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7090, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7090, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7090, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7090, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7090, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHAMMER_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7097, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7098, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7099, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHAMMER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_6update, "CDLHAMMER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7113, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7113, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7113, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7113, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7113, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7113, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7113, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7113, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHAMMER_Update(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek, "CDLHAMMER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7121, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7121, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7121, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7121, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7121, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7121, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7121, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7121, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHAMMER_Peek(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHAMMER_Value(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHAMMER_OutRange(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHAMMER_Advance(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy, "CDLHAMMER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_self) { + TA_CDLHAMMER_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHAMMER_Clone(((TA_CDLHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream))))) __PYX_ERR(3, 7149, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHANGINGMAN_Close(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7171, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7171, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7171, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7171, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7171, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7171, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7171, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHANGINGMAN_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7177, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7178, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7179, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHANGINGMAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHANGINGMAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHANGINGMAN_Close(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill, "CDLHANGINGMAN_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7190, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7190, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7190, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7190, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7190, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7190, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7190, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7190, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHANGINGMAN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7197, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7198, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7199, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHANGINGMAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update, "CDLHANGINGMAN_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7213, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7213, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7213, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7213, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7213, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7213, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7213, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7213, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHANGINGMAN_Update(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek, "CDLHANGINGMAN_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7221, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7221, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7221, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7221, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7221, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7221, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7221, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7221, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHANGINGMAN_Peek(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHANGINGMAN_Value(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHANGINGMAN_OutRange(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHANGINGMAN_Advance(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy, "CDLHANGINGMAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_self) { + TA_CDLHANGINGMAN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHANGINGMAN_Clone(((TA_CDLHANGINGMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream))))) __PYX_ERR(3, 7249, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHARAMI_Close(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7271, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7271, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7271, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7271, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7271, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7271, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7271, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7271, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHARAMI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7277, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7278, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7279, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHARAMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHARAMI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHARAMI_Close(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill, "CDLHARAMI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7290, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7290, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7290, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7290, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7290, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7290, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7290, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7290, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHARAMI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7297, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7298, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7299, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHARAMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_6update, "CDLHARAMI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7313, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7313, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7313, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7313, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7313, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7313, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7313, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7313, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHARAMI_Update(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek, "CDLHARAMI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7321, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7321, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7321, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7321, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7321, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7321, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7321, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7321, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHARAMI_Peek(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHARAMI_Value(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHARAMI_OutRange(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHARAMI_Advance(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy, "CDLHARAMI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_self) { + TA_CDLHARAMI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHARAMI_Clone(((TA_CDLHARAMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream))))) __PYX_ERR(3, 7349, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHARAMICROSS_Close(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7371, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7371, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7371, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7371, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7371, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7371, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7371, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7371, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHARAMICROSS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7377, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7378, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7379, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHARAMICROSS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHARAMICROSS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHARAMICROSS_Close(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill, "CDLHARAMICROSS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7390, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7390, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7390, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7390, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7390, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7390, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7390, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7390, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHARAMICROSS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7397, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7398, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7399, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHARAMICROSS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update, "CDLHARAMICROSS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7413, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7413, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7413, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7413, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7413, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7413, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7413, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7413, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHARAMICROSS_Update(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek, "CDLHARAMICROSS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7421, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7421, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7421, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7421, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7421, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7421, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7421, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7421, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHARAMICROSS_Peek(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHARAMICROSS_Value(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHARAMICROSS_OutRange(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHARAMICROSS_Advance(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy, "CDLHARAMICROSS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_self) { + TA_CDLHARAMICROSS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHARAMICROSS_Clone(((TA_CDLHARAMICROSS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream))))) __PYX_ERR(3, 7449, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHIGHWAVE_Close(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7471, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7471, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7471, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7471, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7471, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7471, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7471, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7471, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHIGHWAVE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7477, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7478, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7479, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHIGHWAVE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIGHWAVE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHIGHWAVE_Close(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill, "CDLHIGHWAVE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7490, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7490, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7490, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7490, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7490, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7490, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7490, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7490, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHIGHWAVE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7497, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7498, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7499, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHIGHWAVE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update, "CDLHIGHWAVE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7513, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7513, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7513, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7513, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7513, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7513, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7513, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7513, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHIGHWAVE_Update(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek, "CDLHIGHWAVE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7521, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7521, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7521, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7521, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7521, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7521, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7521, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7521, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHIGHWAVE_Peek(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHIGHWAVE_Value(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHIGHWAVE_OutRange(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHIGHWAVE_Advance(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy, "CDLHIGHWAVE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_self) { + TA_CDLHIGHWAVE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHIGHWAVE_Clone(((TA_CDLHIGHWAVE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream))))) __PYX_ERR(3, 7549, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHIKKAKE_Close(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7571, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7571, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7571, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7571, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7571, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7571, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7571, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7571, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHIKKAKE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7577, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7578, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7579, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHIKKAKE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIKKAKE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHIKKAKE_Close(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill, "CDLHIKKAKE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7590, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7590, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7590, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7590, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7590, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7590, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7590, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7590, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHIKKAKE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7597, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7598, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7599, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHIKKAKE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update, "CDLHIKKAKE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7613, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7613, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7613, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7613, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7613, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7613, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7613, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7613, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHIKKAKE_Update(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek, "CDLHIKKAKE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7621, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7621, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7621, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7621, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7621, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7621, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7621, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7621, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHIKKAKE_Peek(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHIKKAKE_Value(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHIKKAKE_OutRange(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHIKKAKE_Advance(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy, "CDLHIKKAKE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_self) { + TA_CDLHIKKAKE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHIKKAKE_Clone(((TA_CDLHIKKAKE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream))))) __PYX_ERR(3, 7649, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHIKKAKEMOD_Close(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7671, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7671, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7671, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7671, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7671, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7671, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7671, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7671, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHIKKAKEMOD_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7677, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7678, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7679, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIKKAKEMOD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHIKKAKEMOD_Close(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill, "CDLHIKKAKEMOD_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7690, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7690, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7690, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7690, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7690, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7690, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7690, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7690, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHIKKAKEMOD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7697, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7698, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7699, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHIKKAKEMOD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update, "CDLHIKKAKEMOD_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7713, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7713, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7713, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7713, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7713, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7713, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7713, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7713, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Update(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek, "CDLHIKKAKEMOD_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7721, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7721, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7721, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7721, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7721, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7721, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7721, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7721, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Peek(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Value(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHIKKAKEMOD_OutRange(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHIKKAKEMOD_Advance(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy, "CDLHIKKAKEMOD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_self) { + TA_CDLHIKKAKEMOD_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHIKKAKEMOD_Clone(((TA_CDLHIKKAKEMOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream))))) __PYX_ERR(3, 7749, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLHOMINGPIGEON_Close(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7771, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7771, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7771, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7771, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7771, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7771, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7771, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7771, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLHOMINGPIGEON_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7777, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7778, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7779, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHOMINGPIGEON_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLHOMINGPIGEON_Close(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill, "CDLHOMINGPIGEON_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7790, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7790, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7790, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7790, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7790, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7790, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7790, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7790, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLHOMINGPIGEON_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7793, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7797, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7798, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7799, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLHOMINGPIGEON_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update, "CDLHOMINGPIGEON_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7813, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7813, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7813, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7813, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7813, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7813, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7813, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7813, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Update(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek, "CDLHOMINGPIGEON_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7821, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7821, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7821, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7821, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7821, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7821, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7821, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7821, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Peek(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Value(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHOMINGPIGEON_OutRange(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLHOMINGPIGEON_Advance(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy, "CDLHOMINGPIGEON_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_self) { + TA_CDLHOMINGPIGEON_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLHOMINGPIGEON_Clone(((TA_CDLHOMINGPIGEON_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream))))) __PYX_ERR(3, 7849, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLIDENTICAL3CROWS_Close(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7871, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7871, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7871, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7871, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7871, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7871, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7871, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7871, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7877, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7878, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7879, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLIDENTICAL3CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLIDENTICAL3CROWS_Close(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill, "CDLIDENTICAL3CROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7890, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7890, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7890, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7890, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7890, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7890, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7890, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7890, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7890, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7897, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7898, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7899, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update, "CDLIDENTICAL3CROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7913, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7913, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7913, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7913, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7913, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7913, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7913, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7913, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Update(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek, "CDLIDENTICAL3CROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7921, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7921, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7921, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7921, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7921, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7921, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7921, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7921, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Peek(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Value(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLIDENTICAL3CROWS_OutRange(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLIDENTICAL3CROWS_Advance(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy, "CDLIDENTICAL3CROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_self) { + TA_CDLIDENTICAL3CROWS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS_Clone(((TA_CDLIDENTICAL3CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream))))) __PYX_ERR(3, 7949, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLINNECK_Close(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7971, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7971, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7971, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7971, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7971, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7971, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7971, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7971, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7971, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLINNECK_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7977, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7978, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7979, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLINNECK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLINNECK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLINNECK_Close(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill, "CDLINNECK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7990, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7990, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7990, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7990, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7990, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7990, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7990, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7990, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7990, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLINNECK_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7997, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7998, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7999, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLINNECK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_6update, "CDLINNECK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8013, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8013, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8013, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8013, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8013, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8013, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8013, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8013, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLINNECK_Update(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_8peek, "CDLINNECK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8021, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8021, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8021, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8021, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8021, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8021, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8021, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8021, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8021, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLINNECK_Peek(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLINNECK_Value(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLINNECK_OutRange(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLINNECK_Advance(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_10copy, "CDLINNECK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_self) { + TA_CDLINNECK_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLINNECK_Clone(((TA_CDLINNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream))))) __PYX_ERR(3, 8049, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLINNECK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLINVERTEDHAMMER_Close(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8071, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8071, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8071, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8071, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8071, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8071, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8071, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8071, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8071, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLINVERTEDHAMMER_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8077, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8078, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8079, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLINVERTEDHAMMER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLINVERTEDHAMMER_Close(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill, "CDLINVERTEDHAMMER_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8090, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8090, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8090, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8090, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8090, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8090, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8090, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8090, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8090, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLINVERTEDHAMMER_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8097, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8098, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8099, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update, "CDLINVERTEDHAMMER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8113, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8113, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8113, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8113, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8113, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8113, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8113, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8113, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8113, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Update(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek, "CDLINVERTEDHAMMER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8121, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8121, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8121, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8121, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8121, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8121, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8121, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8121, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8121, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Peek(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Value(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLINVERTEDHAMMER_OutRange(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLINVERTEDHAMMER_Advance(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy, "CDLINVERTEDHAMMER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_self) { + TA_CDLINVERTEDHAMMER_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLINVERTEDHAMMER_Clone(((TA_CDLINVERTEDHAMMER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream))))) __PYX_ERR(3, 8149, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLKICKING_Close(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8171, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8171, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8171, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8171, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8171, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8171, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8171, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLKICKING_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8177, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8178, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8179, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLKICKING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLKICKING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLKICKING_Close(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill, "CDLKICKING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8190, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8190, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8190, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8190, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8190, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8190, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8190, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8190, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8190, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLKICKING_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8197, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8198, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8199, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLKICKING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_6update, "CDLKICKING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8213, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8213, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8213, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8213, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8213, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8213, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8213, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8213, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8213, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLKICKING_Update(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_8peek, "CDLKICKING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8221, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8221, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8221, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8221, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8221, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8221, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8221, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8221, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8221, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLKICKING_Peek(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLKICKING_Value(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLKICKING_OutRange(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLKICKING_Advance(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_10copy, "CDLKICKING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_self) { + TA_CDLKICKING_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLKICKING_Clone(((TA_CDLKICKING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream))))) __PYX_ERR(3, 8249, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLKICKINGBYLENGTH_Close(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8271, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8271, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8271, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8271, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8271, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8271, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8271, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8271, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8277, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8278, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8279, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLKICKINGBYLENGTH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLKICKINGBYLENGTH_Close(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill, "CDLKICKINGBYLENGTH_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8290, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8290, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8290, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8290, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8290, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8290, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8290, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8290, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8290, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8297, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8298, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8299, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update, "CDLKICKINGBYLENGTH_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8313, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8313, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8313, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8313, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8313, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8313, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8313, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8313, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Update(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek, "CDLKICKINGBYLENGTH_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8321, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8321, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8321, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8321, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8321, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8321, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8321, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8321, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8321, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Peek(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Value(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLKICKINGBYLENGTH_OutRange(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLKICKINGBYLENGTH_Advance(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy, "CDLKICKINGBYLENGTH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_self) { + TA_CDLKICKINGBYLENGTH_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH_Clone(((TA_CDLKICKINGBYLENGTH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream))))) __PYX_ERR(3, 8349, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLLADDERBOTTOM_Close(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8371, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8371, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8371, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8371, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8371, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8371, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8371, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8371, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8371, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLLADDERBOTTOM_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8377, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8378, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8379, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLADDERBOTTOM_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLLADDERBOTTOM_Close(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill, "CDLLADDERBOTTOM_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8390, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8390, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8390, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8390, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8390, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8390, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8390, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8390, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8390, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLLADDERBOTTOM_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8397, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8398, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8399, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLLADDERBOTTOM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update, "CDLLADDERBOTTOM_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8413, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8413, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8413, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8413, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8413, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8413, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8413, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8413, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8413, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Update(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek, "CDLLADDERBOTTOM_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8421, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8421, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8421, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8421, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8421, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8421, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8421, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8421, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8421, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Peek(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Value(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLLADDERBOTTOM_OutRange(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLLADDERBOTTOM_Advance(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy, "CDLLADDERBOTTOM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_self) { + TA_CDLLADDERBOTTOM_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLLADDERBOTTOM_Clone(((TA_CDLLADDERBOTTOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream))))) __PYX_ERR(3, 8449, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLLONGLEGGEDDOJI_Close(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8471, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8471, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8471, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8471, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8471, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8471, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8471, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8471, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8477, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8478, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8479, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLONGLEGGEDDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLLONGLEGGEDDOJI_Close(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill, "CDLLONGLEGGEDDOJI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8490, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8490, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8490, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8490, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8490, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8490, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8490, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8490, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8497, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8498, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8499, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update, "CDLLONGLEGGEDDOJI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8513, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8513, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8513, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8513, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8513, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8513, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8513, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8513, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8513, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Update(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek, "CDLLONGLEGGEDDOJI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8521, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8521, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8521, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8521, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8521, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8521, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8521, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8521, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8521, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Peek(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Value(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLLONGLEGGEDDOJI_OutRange(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLLONGLEGGEDDOJI_Advance(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy, "CDLLONGLEGGEDDOJI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_self) { + TA_CDLLONGLEGGEDDOJI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI_Clone(((TA_CDLLONGLEGGEDDOJI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream))))) __PYX_ERR(3, 8549, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLLONGLINE_Close(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8571, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8571, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8571, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8571, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8571, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8571, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8571, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8571, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8571, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLLONGLINE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8577, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8578, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8579, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLLONGLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLONGLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLLONGLINE_Close(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill, "CDLLONGLINE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8590, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8590, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8590, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8590, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8590, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8590, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8590, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8590, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8590, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLLONGLINE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8597, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8598, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8599, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLLONGLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update, "CDLLONGLINE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8613, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8613, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8613, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8613, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8613, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8613, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8613, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8613, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8613, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLLONGLINE_Update(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek, "CDLLONGLINE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8621, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8621, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8621, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8621, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8621, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8621, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8621, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8621, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8621, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLLONGLINE_Peek(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLLONGLINE_Value(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLLONGLINE_OutRange(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLLONGLINE_Advance(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy, "CDLLONGLINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_self) { + TA_CDLLONGLINE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLLONGLINE_Clone(((TA_CDLLONGLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream))))) __PYX_ERR(3, 8649, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLMARUBOZU_Close(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8671, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8671, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8671, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8671, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8671, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8671, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8671, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8671, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8671, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLMARUBOZU_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8677, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8678, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8679, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMARUBOZU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMARUBOZU_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLMARUBOZU_Close(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill, "CDLMARUBOZU_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8690, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8690, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8690, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8690, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8690, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8690, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8690, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8690, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLMARUBOZU_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8697, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8698, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8699, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMARUBOZU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update, "CDLMARUBOZU_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8713, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8713, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8713, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8713, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8713, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8713, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8713, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8713, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8713, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLMARUBOZU_Update(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek, "CDLMARUBOZU_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8721, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8721, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8721, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8721, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8721, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8721, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8721, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8721, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8721, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLMARUBOZU_Peek(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLMARUBOZU_Value(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMARUBOZU_OutRange(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMARUBOZU_Advance(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy, "CDLMARUBOZU_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_self) { + TA_CDLMARUBOZU_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLMARUBOZU_Clone(((TA_CDLMARUBOZU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream))))) __PYX_ERR(3, 8749, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLMATCHINGLOW_Close(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8771, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8771, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8771, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8771, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8771, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8771, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8771, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8771, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8771, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLMATCHINGLOW_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8777, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8778, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8779, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMATCHINGLOW_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMATCHINGLOW_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLMATCHINGLOW_Close(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill, "CDLMATCHINGLOW_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8790, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8790, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8790, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8790, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8790, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8790, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8790, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8790, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8790, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLMATCHINGLOW_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8793, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8797, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8798, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8799, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMATCHINGLOW_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update, "CDLMATCHINGLOW_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8813, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8813, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8813, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8813, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8813, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8813, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8813, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8813, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8813, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLMATCHINGLOW_Update(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek, "CDLMATCHINGLOW_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8821, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8821, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8821, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8821, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8821, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8821, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8821, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8821, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8821, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLMATCHINGLOW_Peek(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLMATCHINGLOW_Value(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMATCHINGLOW_OutRange(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMATCHINGLOW_Advance(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy, "CDLMATCHINGLOW_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_self) { + TA_CDLMATCHINGLOW_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLMATCHINGLOW_Clone(((TA_CDLMATCHINGLOW_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream))))) __PYX_ERR(3, 8849, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLMATHOLD_Close(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8873, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8873, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8873, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8873, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8873, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8873, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8873, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8873, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8873, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8873, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8873, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8873, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8873, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8873, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8873, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLMATHOLD_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8879, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8880, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8881, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMATHOLD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMATHOLD_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLMATHOLD_Close(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill, "CDLMATHOLD_Stream.open_and_fill(open, high, low, close, double penetration=0.5)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8892, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8892, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8892, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8892, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8892, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8892, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8892, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8892, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8892, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8892, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8892, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8892, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8892, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8893, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.5); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8892, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLMATHOLD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8899, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8900, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8901, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMATHOLD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update, "CDLMATHOLD_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8915, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8915, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8915, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8915, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8915, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8915, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8915, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8915, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLMATHOLD_Update(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek, "CDLMATHOLD_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8923, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8923, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8923, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8923, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8923, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8923, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8923, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8923, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8923, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8923, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8923, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8923, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLMATHOLD_Peek(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLMATHOLD_Value(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMATHOLD_OutRange(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMATHOLD_Advance(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy, "CDLMATHOLD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_self) { + TA_CDLMATHOLD_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLMATHOLD_Clone(((TA_CDLMATHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream))))) __PYX_ERR(3, 8951, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLMORNINGDOJISTAR_Close(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8975, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8975, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8975, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8975, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8975, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8975, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8975, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8975, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8975, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8975, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8975, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8975, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8975, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8975, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8975, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8981, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8982, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8983, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLMORNINGDOJISTAR_Close(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill, "CDLMORNINGDOJISTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8994, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8994, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8994, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8994, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8994, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8994, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8994, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8994, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8995, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8994, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9001, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9002, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9003, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update, "CDLMORNINGDOJISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9017, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9017, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9017, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9017, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9017, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9017, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9017, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9017, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9017, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Update(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek, "CDLMORNINGDOJISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9025, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9025, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9025, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9025, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9025, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9025, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9025, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9025, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9025, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Peek(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Value(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMORNINGDOJISTAR_OutRange(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMORNINGDOJISTAR_Advance(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy, "CDLMORNINGDOJISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_self) { + TA_CDLMORNINGDOJISTAR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR_Clone(((TA_CDLMORNINGDOJISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream))))) __PYX_ERR(3, 9053, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLMORNINGSTAR_Close(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9077, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9077, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 9077, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9077, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9077, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9077, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9077, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9077, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9077, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLMORNINGSTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9083, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9084, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9085, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMORNINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLMORNINGSTAR_Close(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill, "CDLMORNINGSTAR_Stream.open_and_fill(open, high, low, close, double penetration=0.3)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + double __pyx_v_penetration; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9096, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9096, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 9096, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9096, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9096, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9096, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9096, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9097, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)0.3); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9096, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, double __pyx_v_penetration) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLMORNINGSTAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9103, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9104, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9105, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLMORNINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update, "CDLMORNINGSTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9119, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9119, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9119, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9119, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9119, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9119, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9119, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9119, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLMORNINGSTAR_Update(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek, "CDLMORNINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9127, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9127, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9127, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9127, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9127, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9127, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9127, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9127, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLMORNINGSTAR_Peek(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLMORNINGSTAR_Value(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMORNINGSTAR_OutRange(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLMORNINGSTAR_Advance(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy, "CDLMORNINGSTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_self) { + TA_CDLMORNINGSTAR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLMORNINGSTAR_Clone(((TA_CDLMORNINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream))))) __PYX_ERR(3, 9155, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLONNECK_Close(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9177, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9177, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9177, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9177, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9177, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9177, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9177, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9177, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLONNECK_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9183, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9184, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9185, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLONNECK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLONNECK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLONNECK_Close(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill, "CDLONNECK_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9196, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9196, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9196, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9196, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9196, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9196, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9196, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9196, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLONNECK_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9203, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9204, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9205, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLONNECK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_6update, "CDLONNECK_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9219, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9219, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9219, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9219, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9219, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9219, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9219, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9219, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLONNECK_Update(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_8peek, "CDLONNECK_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9227, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9227, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9227, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9227, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9227, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9227, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9227, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9227, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLONNECK_Peek(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLONNECK_Value(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLONNECK_OutRange(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLONNECK_Advance(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_10copy, "CDLONNECK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_self) { + TA_CDLONNECK_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLONNECK_Clone(((TA_CDLONNECK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream))))) __PYX_ERR(3, 9255, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLPIERCING_Close(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9277, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9277, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9277, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9277, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9277, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9277, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9277, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9277, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLPIERCING_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9283, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9284, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9285, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLPIERCING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLPIERCING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLPIERCING_Close(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill, "CDLPIERCING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9296, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9296, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9296, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9296, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9296, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9296, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9296, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9296, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLPIERCING_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9303, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9304, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9305, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLPIERCING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_6update, "CDLPIERCING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9319, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9319, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9319, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9319, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9319, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9319, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9319, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9319, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLPIERCING_Update(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek, "CDLPIERCING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9327, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9327, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9327, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9327, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9327, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9327, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9327, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9327, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLPIERCING_Peek(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLPIERCING_Value(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLPIERCING_OutRange(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLPIERCING_Advance(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy, "CDLPIERCING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_self) { + TA_CDLPIERCING_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLPIERCING_Clone(((TA_CDLPIERCING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream))))) __PYX_ERR(3, 9355, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLRICKSHAWMAN_Close(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9377, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9377, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9377, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9377, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9377, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9377, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9377, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9377, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLRICKSHAWMAN_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9383, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9384, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9385, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLRICKSHAWMAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLRICKSHAWMAN_Close(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill, "CDLRICKSHAWMAN_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9396, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9396, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9396, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9396, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9396, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9396, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9396, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9396, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLRICKSHAWMAN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9403, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9404, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9405, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLRICKSHAWMAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update, "CDLRICKSHAWMAN_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9419, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9419, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9419, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9419, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9419, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9419, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9419, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9419, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Update(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek, "CDLRICKSHAWMAN_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9427, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9427, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9427, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9427, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9427, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9427, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9427, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9427, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Peek(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Value(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLRICKSHAWMAN_OutRange(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLRICKSHAWMAN_Advance(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy, "CDLRICKSHAWMAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_self) { + TA_CDLRICKSHAWMAN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLRICKSHAWMAN_Clone(((TA_CDLRICKSHAWMAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream))))) __PYX_ERR(3, 9455, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLRISEFALL3METHODS_Close(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9477, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9477, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9477, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9477, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9477, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9477, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9477, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9477, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLRISEFALL3METHODS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9483, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9484, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9485, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLRISEFALL3METHODS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLRISEFALL3METHODS_Close(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill, "CDLRISEFALL3METHODS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9496, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9496, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9496, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9496, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9496, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9496, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9496, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9496, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLRISEFALL3METHODS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9503, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9504, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9505, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update, "CDLRISEFALL3METHODS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9519, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9519, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9519, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9519, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9519, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9519, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9519, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9519, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Update(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek, "CDLRISEFALL3METHODS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9527, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9527, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9527, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9527, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9527, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9527, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9527, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9527, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Peek(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Value(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLRISEFALL3METHODS_OutRange(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLRISEFALL3METHODS_Advance(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy, "CDLRISEFALL3METHODS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_self) { + TA_CDLRISEFALL3METHODS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLRISEFALL3METHODS_Clone(((TA_CDLRISEFALL3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream))))) __PYX_ERR(3, 9555, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLSEPARATINGLINES_Close(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9577, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9577, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9577, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9577, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9577, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9577, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9577, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9577, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLSEPARATINGLINES_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9583, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9584, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9585, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSEPARATINGLINES_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLSEPARATINGLINES_Close(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill, "CDLSEPARATINGLINES_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9596, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9596, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9596, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9596, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9596, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9596, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9596, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9596, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLSEPARATINGLINES_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9603, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9604, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9605, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSEPARATINGLINES_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update, "CDLSEPARATINGLINES_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9619, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9619, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9619, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9619, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9619, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9619, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9619, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9619, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Update(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9624, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek, "CDLSEPARATINGLINES_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9627, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9627, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9627, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9627, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9627, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9627, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9627, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9627, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Peek(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Value(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSEPARATINGLINES_OutRange(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSEPARATINGLINES_Advance(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy, "CDLSEPARATINGLINES_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_self) { + TA_CDLSEPARATINGLINES_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLSEPARATINGLINES_Clone(((TA_CDLSEPARATINGLINES_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream))))) __PYX_ERR(3, 9655, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLSHOOTINGSTAR_Close(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9677, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9677, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9677, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9677, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9677, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9677, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9677, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9677, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLSHOOTINGSTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9683, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9684, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9685, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSHOOTINGSTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLSHOOTINGSTAR_Close(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill, "CDLSHOOTINGSTAR_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9696, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9696, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9696, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9696, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9696, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9696, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9696, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9696, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLSHOOTINGSTAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9703, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9704, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9705, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update, "CDLSHOOTINGSTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9719, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9719, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9719, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9719, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9719, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9719, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9719, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9719, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Update(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek, "CDLSHOOTINGSTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9727, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9727, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9727, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9727, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9727, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9727, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9727, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9727, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Peek(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Value(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSHOOTINGSTAR_OutRange(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSHOOTINGSTAR_Advance(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy, "CDLSHOOTINGSTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_self) { + TA_CDLSHOOTINGSTAR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLSHOOTINGSTAR_Clone(((TA_CDLSHOOTINGSTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream))))) __PYX_ERR(3, 9755, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLSHORTLINE_Close(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9777, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9777, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9777, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9777, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9777, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9777, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9777, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9777, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLSHORTLINE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9783, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9784, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9785, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSHORTLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSHORTLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLSHORTLINE_Close(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill, "CDLSHORTLINE_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9796, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9796, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9796, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9796, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9796, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9796, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9796, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9796, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLSHORTLINE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9803, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9804, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9805, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSHORTLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update, "CDLSHORTLINE_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9819, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9819, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9819, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9819, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9819, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9819, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9819, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9819, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLSHORTLINE_Update(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek, "CDLSHORTLINE_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9827, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9827, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9827, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9827, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9827, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9827, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9827, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9827, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLSHORTLINE_Peek(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLSHORTLINE_Value(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSHORTLINE_OutRange(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSHORTLINE_Advance(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy, "CDLSHORTLINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_self) { + TA_CDLSHORTLINE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLSHORTLINE_Clone(((TA_CDLSHORTLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream))))) __PYX_ERR(3, 9855, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLSPINNINGTOP_Close(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9877, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9877, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9877, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9877, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9877, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9877, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9877, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9877, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9877, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9877, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9877, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9877, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLSPINNINGTOP_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9883, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9884, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9885, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSPINNINGTOP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSPINNINGTOP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLSPINNINGTOP_Close(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill, "CDLSPINNINGTOP_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9896, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9896, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9896, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9896, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9896, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9896, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9896, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9896, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9896, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9896, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9896, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9896, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLSPINNINGTOP_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9903, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9904, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9905, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSPINNINGTOP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update, "CDLSPINNINGTOP_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9919, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9919, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9919, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9919, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9919, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9919, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9919, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9919, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9919, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9919, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9919, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9919, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLSPINNINGTOP_Update(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek, "CDLSPINNINGTOP_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9927, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9927, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9927, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9927, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9927, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9927, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9927, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9927, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9927, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9927, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9927, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9927, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLSPINNINGTOP_Peek(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLSPINNINGTOP_Value(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSPINNINGTOP_OutRange(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSPINNINGTOP_Advance(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy, "CDLSPINNINGTOP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_self) { + TA_CDLSPINNINGTOP_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLSPINNINGTOP_Clone(((TA_CDLSPINNINGTOP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream))))) __PYX_ERR(3, 9955, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLSTALLEDPATTERN_Close(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9977, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9977, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9977, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9977, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9977, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9977, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9977, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9977, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLSTALLEDPATTERN_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9983, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9984, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9985, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSTALLEDPATTERN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLSTALLEDPATTERN_Close(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill, "CDLSTALLEDPATTERN_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9996, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9996, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9996, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9996, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9996, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9996, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9996, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9996, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9996, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLSTALLEDPATTERN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10003, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10004, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10005, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update, "CDLSTALLEDPATTERN_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10019, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10019, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10019, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10019, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10019, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10019, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10019, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10019, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10019, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10019, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10019, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10019, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Update(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek, "CDLSTALLEDPATTERN_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10027, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10027, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10027, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10027, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10027, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10027, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10027, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10027, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10027, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10027, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10027, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10027, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Peek(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Value(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSTALLEDPATTERN_OutRange(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSTALLEDPATTERN_Advance(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy, "CDLSTALLEDPATTERN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_self) { + TA_CDLSTALLEDPATTERN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLSTALLEDPATTERN_Clone(((TA_CDLSTALLEDPATTERN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream))))) __PYX_ERR(3, 10055, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLSTICKSANDWICH_Close(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10077, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10077, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10077, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10077, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10077, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10077, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10077, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10077, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10077, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLSTICKSANDWICH_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10083, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10084, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10085, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSTICKSANDWICH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLSTICKSANDWICH_Close(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill, "CDLSTICKSANDWICH_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10096, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10096, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10096, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10096, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10096, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10096, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10096, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10096, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10096, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLSTICKSANDWICH_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10103, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10104, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10105, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLSTICKSANDWICH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update, "CDLSTICKSANDWICH_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10119, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10119, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10119, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10119, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10119, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10119, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10119, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10119, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Update(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek, "CDLSTICKSANDWICH_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10127, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10127, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10127, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10127, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10127, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10127, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10127, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10127, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10127, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Peek(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Value(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSTICKSANDWICH_OutRange(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLSTICKSANDWICH_Advance(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy, "CDLSTICKSANDWICH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_self) { + TA_CDLSTICKSANDWICH_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLSTICKSANDWICH_Clone(((TA_CDLSTICKSANDWICH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream))))) __PYX_ERR(3, 10155, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLTAKURI_Close(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10177, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10177, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10177, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10177, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10177, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10177, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10177, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10177, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10177, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLTAKURI_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10183, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10184, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10185, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTAKURI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTAKURI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLTAKURI_Close(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill, "CDLTAKURI_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10196, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10196, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10196, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10196, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10196, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10196, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10196, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10196, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10196, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLTAKURI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10203, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10204, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10205, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTAKURI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_6update, "CDLTAKURI_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10219, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10219, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10219, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10219, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10219, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10219, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10219, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10219, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10219, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLTAKURI_Update(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek, "CDLTAKURI_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10227, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10227, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10227, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10227, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10227, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10227, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10227, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10227, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10227, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLTAKURI_Peek(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLTAKURI_Value(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTAKURI_OutRange(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTAKURI_Advance(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy, "CDLTAKURI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_self) { + TA_CDLTAKURI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLTAKURI_Clone(((TA_CDLTAKURI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream))))) __PYX_ERR(3, 10255, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLTASUKIGAP_Close(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10277, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10277, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10277, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10277, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10277, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10277, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10277, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10277, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLTASUKIGAP_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10283, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10284, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10285, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTASUKIGAP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTASUKIGAP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLTASUKIGAP_Close(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill, "CDLTASUKIGAP_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10296, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10296, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10296, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10296, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10296, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10296, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10296, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10296, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLTASUKIGAP_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10303, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10304, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10305, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTASUKIGAP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update, "CDLTASUKIGAP_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10319, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10319, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10319, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10319, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10319, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10319, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10319, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10319, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10319, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLTASUKIGAP_Update(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek, "CDLTASUKIGAP_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10327, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10327, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10327, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10327, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10327, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10327, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10327, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10327, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10327, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLTASUKIGAP_Peek(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLTASUKIGAP_Value(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTASUKIGAP_OutRange(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTASUKIGAP_Advance(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy, "CDLTASUKIGAP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_self) { + TA_CDLTASUKIGAP_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLTASUKIGAP_Clone(((TA_CDLTASUKIGAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream))))) __PYX_ERR(3, 10355, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLTHRUSTING_Close(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10377, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10377, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10377, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10377, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10377, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10377, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10377, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10377, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10377, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLTHRUSTING_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10383, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10384, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10385, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTHRUSTING_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTHRUSTING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLTHRUSTING_Close(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill, "CDLTHRUSTING_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10396, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10396, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10396, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10396, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10396, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10396, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10396, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10396, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10396, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLTHRUSTING_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10403, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10404, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10405, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTHRUSTING_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update, "CDLTHRUSTING_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10419, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10419, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10419, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10419, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10419, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10419, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10419, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10419, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10419, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLTHRUSTING_Update(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek, "CDLTHRUSTING_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10427, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10427, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10427, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10427, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10427, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10427, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10427, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10427, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10427, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLTHRUSTING_Peek(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLTHRUSTING_Value(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTHRUSTING_OutRange(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTHRUSTING_Advance(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy, "CDLTHRUSTING_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_self) { + TA_CDLTHRUSTING_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLTHRUSTING_Clone(((TA_CDLTHRUSTING_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream))))) __PYX_ERR(3, 10455, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLTRISTAR_Close(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10477, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10477, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10477, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10477, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10477, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10477, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10477, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10477, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10477, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLTRISTAR_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10483, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10484, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10485, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTRISTAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTRISTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLTRISTAR_Close(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill, "CDLTRISTAR_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10496, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10496, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10496, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10496, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10496, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10496, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10496, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10496, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10496, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLTRISTAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10503, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10504, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10505, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLTRISTAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update, "CDLTRISTAR_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10519, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10519, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10519, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10519, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10519, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10519, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10519, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10519, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10519, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLTRISTAR_Update(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek, "CDLTRISTAR_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10527, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10527, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10527, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10527, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10527, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10527, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10527, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10527, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10527, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLTRISTAR_Peek(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLTRISTAR_Value(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTRISTAR_OutRange(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLTRISTAR_Advance(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy, "CDLTRISTAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_self) { + TA_CDLTRISTAR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLTRISTAR_Clone(((TA_CDLTRISTAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream))))) __PYX_ERR(3, 10555, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLUNIQUE3RIVER_Close(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10577, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10577, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10577, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10577, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10577, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10577, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10577, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10577, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10577, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLUNIQUE3RIVER_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10583, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10584, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10585, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLUNIQUE3RIVER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLUNIQUE3RIVER_Close(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill, "CDLUNIQUE3RIVER_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10596, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10596, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10596, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10596, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10596, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10596, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10596, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10596, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLUNIQUE3RIVER_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10603, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10604, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10605, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update, "CDLUNIQUE3RIVER_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10619, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10619, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10619, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10619, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10619, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10619, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10619, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10619, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10619, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Update(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10624, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek, "CDLUNIQUE3RIVER_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10627, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10627, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10627, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10627, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10627, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10627, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10627, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10627, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10627, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Peek(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Value(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLUNIQUE3RIVER_OutRange(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLUNIQUE3RIVER_Advance(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy, "CDLUNIQUE3RIVER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_self) { + TA_CDLUNIQUE3RIVER_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLUNIQUE3RIVER_Clone(((TA_CDLUNIQUE3RIVER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream))))) __PYX_ERR(3, 10655, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLUPSIDEGAP2CROWS_Close(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10677, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10677, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10677, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10677, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10677, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10677, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10677, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10677, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10677, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10683, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10684, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10685, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLUPSIDEGAP2CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLUPSIDEGAP2CROWS_Close(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill, "CDLUPSIDEGAP2CROWS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10696, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10696, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10696, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10696, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10696, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10696, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10696, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10696, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10696, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10703, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10704, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10705, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update, "CDLUPSIDEGAP2CROWS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10719, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10719, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10719, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10719, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10719, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10719, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10719, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10719, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10719, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Update(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek, "CDLUPSIDEGAP2CROWS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10727, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10727, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10727, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10727, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10727, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10727, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10727, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10727, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10727, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Peek(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Value(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLUPSIDEGAP2CROWS_OutRange(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLUPSIDEGAP2CROWS_Advance(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy, "CDLUPSIDEGAP2CROWS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_self) { + TA_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS_Clone(((TA_CDLUPSIDEGAP2CROWS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream))))) __PYX_ERR(3, 10755, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CDLXSIDEGAP3METHODS_Close(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10777, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10777, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10777, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10777, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10777, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10777, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10777, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10777, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10783, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10784, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10785, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLXSIDEGAP3METHODS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CDLXSIDEGAP3METHODS_Close(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill, "CDLXSIDEGAP3METHODS_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10796, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10796, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10796, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10796, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10796, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10796, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10796, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10796, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10796, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10803, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10804, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10805, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update, "CDLXSIDEGAP3METHODS_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10819, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10819, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10819, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10819, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10819, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10819, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10819, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10819, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Update(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek, "CDLXSIDEGAP3METHODS_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10827, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10827, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10827, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10827, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10827, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10827, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10827, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10827, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10827, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Peek(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Value(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLXSIDEGAP3METHODS_OutRange(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CDLXSIDEGAP3METHODS_Advance(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy, "CDLXSIDEGAP3METHODS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_self) { + TA_CDLXSIDEGAP3METHODS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS_Clone(((TA_CDLXSIDEGAP3METHODS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream))))) __PYX_ERR(3, 10855, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11CEIL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CEIL_Close(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10877, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10877, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10877, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 10877, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10877, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10877, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CEIL_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 10879, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10880, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10881, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10882, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CEIL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CEIL_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CEIL_Close(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill, "CEIL_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10893, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10893, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10893, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 10893, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10893, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10893, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CEIL_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 10896, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10897, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10898, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10899, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CEIL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 10911, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10911, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10911, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_6update, "CEIL_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10913, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10913, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 10913, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10913, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10914, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10913, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CEIL_Update(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_8peek, "CEIL_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10921, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10921, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 10921, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10921, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10922, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10921, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CEIL_Peek(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CEIL_Value(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CEIL_OutRange(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CEIL_Advance(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CEIL_Stream_10copy, "CEIL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_self) { + TA_CEIL_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CEIL_Clone(((TA_CEIL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream))))) __PYX_ERR(3, 10949, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CEIL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10CMF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CMF_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10CMF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CMF_Close(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10973, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10973, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 10973, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10973, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10973, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10973, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10973, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10973, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 10973, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 10973, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CMF_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10979, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10980, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10981, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CMF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CMF_Close(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_4open_and_fill, "CMF_Stream.open_and_fill(high, low, close, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10992, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10992, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10992, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10992, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10992, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10992, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10992, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 10992, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10992, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10992, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10992, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10992, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10992, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 10993, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 10992, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CMF_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10999, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11000, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11001, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CMF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_6update, "CMF_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11015, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11015, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11015, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11015, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11015, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11015, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11015, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11015, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11015, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CMF_Update(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_8peek, "CMF_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11023, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11023, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11023, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11023, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11023, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11023, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11023, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11023, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CMF_Peek(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CMF_Value(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CMF_OutRange(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CMF_Advance(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMF_Stream_10copy, "CMF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMF_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_self) { + TA_CMF_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CMF_Clone(((TA_CMF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream))))) __PYX_ERR(3, 11051, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CMF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10CMO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CMO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10CMO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CMO_Close(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11075, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11075, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11075, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11075, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11075, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11075, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11075, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CMO_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11077, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11078, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11079, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11080, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CMO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMO_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CMO_Close(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_4open_and_fill, "CMO_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11091, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11091, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11091, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11091, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11091, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11091, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11091, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11092, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11091, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CMO_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11094, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11095, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11096, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11097, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CMO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11109, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11109, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11109, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_6update, "CMO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11111, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11111, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11111, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11111, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11111, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11112, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11111, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CMO_Update(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_8peek, "CMO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11119, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11119, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11119, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11119, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11119, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11120, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11119, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CMO_Peek(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CMO_Value(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CMO_OutRange(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CMO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CMO_Advance(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CMO_Stream_10copy, "CMO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CMO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_self) { + TA_CMO_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CMO_Clone(((TA_CMO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream))))) __PYX_ERR(3, 11147, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CMO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11CMOU_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CMOU_Close(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11171, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11171, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11171, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11171, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11171, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11171, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11171, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CMOU_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11173, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11174, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11175, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11176, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CMOU_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMOU_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CMOU_Close(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill, "CMOU_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11187, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11187, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11187, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11187, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11188, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11187, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CMOU_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11190, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11191, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11192, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11193, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CMOU_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11205, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11205, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11205, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_6update, "CMOU_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11207, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11207, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11207, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11207, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11207, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11208, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11207, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CMOU_Update(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_8peek, "CMOU_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11215, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11215, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11215, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11215, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11215, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11216, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11215, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CMOU_Peek(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CMOU_Value(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CMOU_OutRange(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CMOU_Advance(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11CMOU_Stream_10copy, "CMOU_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_self) { + TA_CMOU_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CMOU_Clone(((TA_CMOU_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream))))) __PYX_ERR(3, 11243, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CMOU_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_COPPOCK_Close(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11269, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11269, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 11269, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11269, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11269, __pyx_L3_error) + } else { + __pyx_v_wmaperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11269, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11269, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 11269, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_COPPOCK_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11271, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11272, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11273, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11274, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_COPPOCK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_COPPOCK_Close(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill, "COPPOCK_Stream.open_and_fill(real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_wmaperiod; + int __pyx_v_roc1period; + int __pyx_v_roc2period; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11285, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11285, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 11285, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11285, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11285, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11286, __pyx_L3_error) + } else { + __pyx_v_wmaperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11286, __pyx_L3_error) + } else { + __pyx_v_roc1period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11286, __pyx_L3_error) + } else { + __pyx_v_roc2period = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 11285, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(__pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_COPPOCK_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11288, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11289, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11290, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11291, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_COPPOCK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11303, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11303, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11303, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_6update, "COPPOCK_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11305, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11305, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11305, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11305, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11305, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11306, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11305, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_COPPOCK_Update(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_8peek, "COPPOCK_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11313, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11313, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11313, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11313, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11313, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11314, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11313, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_COPPOCK_Peek(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_COPPOCK_Value(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_COPPOCK_OutRange(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_COPPOCK_Advance(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_10copy, "COPPOCK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_self) { + TA_COPPOCK_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_COPPOCK_Clone(((TA_COPPOCK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream))))) __PYX_ERR(3, 11341, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.COPPOCK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13CORREL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CORREL_Close(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11366, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11366, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11366, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11366, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11366, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 11366, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11366, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11366, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11366, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11366, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 11366, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CORREL_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11369, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11369, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11370, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11371, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11372, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CORREL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CORREL_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CORREL_Close(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill, "CORREL_Stream.open_and_fill(real0, real1, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11383, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11383, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 11383, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11383, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11383, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11384, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 11383, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CORREL_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11387, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11387, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11388, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11389, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11390, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CORREL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_6update, "CORREL_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11404, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11404, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11404, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11404, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11404, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11404, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11404, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11405, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11405, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11404, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CORREL_Update(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_8peek, "CORREL_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11412, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11412, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11412, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11412, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11412, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11412, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11412, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11413, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11413, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11412, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CORREL_Peek(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CORREL_Value(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CORREL_OutRange(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CORREL_Advance(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CORREL_Stream_10copy, "CORREL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_self) { + TA_CORREL_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CORREL_Clone(((TA_CORREL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream))))) __PYX_ERR(3, 11440, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CORREL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10COS_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10COS_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10COS_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_COS_Close(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11462, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11462, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11462, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11462, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11462, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11462, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_COS_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11464, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11465, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11466, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11467, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_COS_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_COS_Close(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_4open_and_fill, "COS_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10COS_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11478, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11478, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11478, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11478, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11478, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11478, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_COS_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11481, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11482, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11483, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11484, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_COS_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11496, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11496, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11496, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_6update, "COS_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11498, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11498, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11498, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11498, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11498, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11499, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11498, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_COS_Update(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_8peek, "COS_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11506, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11506, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11506, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11506, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11506, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11507, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11506, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_COS_Peek(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_COS_Value(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_COS_OutRange(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10COS_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_COS_Advance(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10COS_Stream_10copy, "COS_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10COS_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_self) { + TA_COS_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_COS_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_COS_Clone(((TA_COS_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream))))) __PYX_ERR(3, 11534, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.COS_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11COSH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11COSH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11COSH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_COSH_Close(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11556, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11556, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11556, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11556, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11556, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11556, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_COSH_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11558, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11559, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11560, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11561, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_COSH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COSH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_COSH_Close(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_4open_and_fill, "COSH_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11COSH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11572, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11572, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11572, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11572, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11572, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11572, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_COSH_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11575, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11576, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11577, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11578, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_COSH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COSH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11590, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11590, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11590, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_6update, "COSH_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11592, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11592, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11592, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11592, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11592, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11593, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11592, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_COSH_Update(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_8peek, "COSH_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11600, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11600, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11600, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11600, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11600, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11601, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11600, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_COSH_Peek(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_COSH_Value(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_COSH_OutRange(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11COSH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_COSH_Advance(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11COSH_Stream_10copy, "COSH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11COSH_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_self) { + TA_COSH_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_COSH_Clone(((TA_COSH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream))))) __PYX_ERR(3, 11628, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.COSH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CUMSUM_Close(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11650, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11650, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11650, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11650, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11650, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11650, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CUMSUM_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11652, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11653, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11654, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11655, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CUMSUM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CUMSUM_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CUMSUM_Close(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill, "CUMSUM_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11666, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11666, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11666, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11666, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11666, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11666, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CUMSUM_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11669, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11670, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11671, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11672, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CUMSUM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11684, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11684, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11684, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_6update, "CUMSUM_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11686, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11686, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11686, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11686, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11686, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11687, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11686, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CUMSUM_Update(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_8peek, "CUMSUM_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11694, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11694, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11694, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11694, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11694, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11695, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11694, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CUMSUM_Peek(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CUMSUM_Value(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CUMSUM_OutRange(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CUMSUM_Advance(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_10copy, "CUMSUM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_self) { + TA_CUMSUM_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CUMSUM_Clone(((TA_CUMSUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream))))) __PYX_ERR(3, 11722, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CUMSUM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10CVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10CVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10CVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_CVI_Close(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + int __pyx_v_rocperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11747, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11747, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11747, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11747, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11747, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11747, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 11747, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11747, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11747, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11747, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11747, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11747, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11747, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 11747, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_CVI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11750, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11750, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11751, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11752, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11753, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_CVI_Close(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_4open_and_fill, "CVI_Stream.open_and_fill(high, low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + int __pyx_v_rocperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11764, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11764, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 11764, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11764, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11764, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11764, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11765, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11765, __pyx_L3_error) + } else { + __pyx_v_rocperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 11764, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_CVI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11768, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11768, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11769, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11770, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11771, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_CVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_6update, "CVI_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11785, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11785, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11785, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11785, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11785, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11786, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11786, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11785, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_CVI_Update(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_8peek, "CVI_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11793, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11793, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11793, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11793, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11793, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11793, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11793, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11794, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11794, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11793, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_CVI_Peek(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_CVI_Value(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CVI_OutRange(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10CVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_CVI_Advance(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10CVI_Stream_10copy, "CVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10CVI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_self) { + TA_CVI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_CVI_Clone(((TA_CVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream))))) __PYX_ERR(3, 11821, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.CVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11DEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_DEMA_Close(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11845, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11845, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11845, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11845, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11845, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11845, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11845, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_DEMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11847, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11848, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11849, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11850, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DEMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_DEMA_Close(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill, "DEMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11861, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11861, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11861, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11861, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11861, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11861, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11861, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11862, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11861, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_DEMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11864, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11865, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11866, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11867, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DEMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11879, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11879, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11879, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_6update, "DEMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11881, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11881, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11881, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11881, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11881, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11882, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11881, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_DEMA_Update(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_8peek, "DEMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11889, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11889, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11889, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11889, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11889, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11890, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11889, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_DEMA_Peek(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_DEMA_Value(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DEMA_OutRange(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DEMA_Advance(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11DEMA_Stream_10copy, "DEMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_self) { + TA_DEMA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_DEMA_Clone(((TA_DEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream))))) __PYX_ERR(3, 11917, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.DEMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10DIV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10DIV_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10DIV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_DIV_Close(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11940, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11940, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11940, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11940, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 11940, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11940, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11940, __pyx_L3_error) + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11940, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_DIV_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11943, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11943, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11944, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11945, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11946, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DIV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DIV_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_DIV_Close(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_4open_and_fill, "DIV_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DIV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11957, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11957, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11957, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11957, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 11957, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11957, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11957, __pyx_L3_error) + } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11957, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_DIV_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11962, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11963, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11964, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DIV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DIV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_6update, "DIV_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11978, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11978, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11978, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11978, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11978, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11978, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11979, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11979, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11978, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_DIV_Update(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_8peek, "DIV_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real0; + double __pyx_v_real1; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11986, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11986, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11986, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11986, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11986, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11986, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11986, __pyx_L3_error) + } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11987, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11987, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11986, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_DIV_Peek(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_DIV_Value(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DIV_OutRange(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DIV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DIV_Advance(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DIV_Stream_10copy, "DIV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DIV_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_self) { + TA_DIV_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_DIV_Clone(((TA_DIV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream))))) __PYX_ERR(3, 12014, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.DIV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_DONCHIAN_Close(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12042, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12042, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12042, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12042, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12042, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 12042, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12042, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12042, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12042, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12042, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12042, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_DONCHIAN_Stream *__pyx_v_handle; + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12045, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12045, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12046, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12047, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12048, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DONCHIAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DONCHIAN_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_DONCHIAN_Close(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill, "DONCHIAN_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12061, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12061, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12061, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12061, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12061, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 12061, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12061, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12061, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12061, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12062, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12061, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outupperband = 0; + PyArrayObject *__pyx_v_outmiddleband = 0; + PyArrayObject *__pyx_v_outlowerband = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_DONCHIAN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12065, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12065, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12066, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12067, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12068, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DONCHIAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_6update, "DONCHIAN_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12084, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12084, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 12084, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12084, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12084, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12085, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12085, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12084, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_DONCHIAN_Update(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_8peek, "DONCHIAN_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12094, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12094, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12094, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 12094, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12094, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12094, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12095, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12095, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12094, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_DONCHIAN_Peek(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_DONCHIAN_Value(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DONCHIAN_OutRange(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DONCHIAN_Advance(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_10copy, "DONCHIAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_self) { + TA_DONCHIAN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_DONCHIAN_Clone(((TA_DONCHIAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream))))) __PYX_ERR(3, 12126, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10DPO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10DPO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10DPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_DPO_Close(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12150, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12150, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12150, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12150, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12150, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12150, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12150, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12150, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12150, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_DPO_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12152, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12153, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12154, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12155, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DPO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DPO_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_DPO_Close(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_4open_and_fill, "DPO_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DPO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12166, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12166, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12166, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12166, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12166, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12166, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12166, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12167, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12166, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_DPO_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12169, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12170, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12171, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12172, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DPO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12184, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12184, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12184, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_6update, "DPO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12186, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12186, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12186, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12186, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12187, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12186, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_DPO_Update(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_8peek, "DPO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12194, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12194, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12194, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12194, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12194, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12195, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12194, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_DPO_Peek(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_DPO_Value(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DPO_OutRange(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10DPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DPO_Advance(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10DPO_Stream_10copy, "DPO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10DPO_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_self) { + TA_DPO_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_DPO_Clone(((TA_DPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream))))) __PYX_ERR(3, 12222, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.DPO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9DX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9DX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9DX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_DX_Close(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12246, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12246, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12246, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12246, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12246, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12246, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 12246, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12246, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12246, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12246, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12246, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12246, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12246, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_DX_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12250, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12250, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12250, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12251, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12252, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12253, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_DX_Close(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_4open_and_fill, "DX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9DX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12264, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12264, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 12264, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12264, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12264, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12264, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12264, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12265, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12264, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_DX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12269, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12269, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12269, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12270, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12271, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12272, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_DX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_6update, "DX_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12286, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12286, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 12286, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12286, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12286, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12286, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12287, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12287, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12287, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12286, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_DX_Update(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_8peek, "DX_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12294, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12294, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12294, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 12294, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12294, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12294, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12294, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12295, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12295, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12295, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12294, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_DX_Peek(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_DX_Value(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DX_OutRange(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9DX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_DX_Advance(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_10copy, "DX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self) { + TA_DX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_DX_Clone(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream))))) __PYX_ERR(3, 12322, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10EFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10EFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10EFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_EFI_Close(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12346, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12346, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12346, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12346, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12346, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 12346, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12346, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12346, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12346, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12346, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12346, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_EFI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12349, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 12349, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12350, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12351, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12352, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_EFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EFI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_EFI_Close(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_4open_and_fill, "EFI_Stream.open_and_fill(close, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EFI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12363, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12363, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 12363, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12363, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12363, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12363, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12364, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12363, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_EFI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12367, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 12367, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12368, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12369, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12370, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_EFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_6update, "EFI_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12384, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12384, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 12384, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) + } + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12384, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_EFI_Update(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_8peek, "EFI_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12392, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12392, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12392, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12392, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 12392, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12392, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12392, __pyx_L3_error) + } + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12393, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12393, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12392, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_EFI_Peek(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_EFI_Value(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_EFI_OutRange(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_EFI_Advance(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EFI_Stream_10copy, "EFI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EFI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_self) { + TA_EFI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_EFI_Clone(((TA_EFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream))))) __PYX_ERR(3, 12420, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.EFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10EMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10EMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10EMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_EMA_Close(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12444, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12444, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12444, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12444, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12444, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12444, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12444, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_EMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12446, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12447, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12448, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12449, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_EMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_EMA_Close(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_4open_and_fill, "EMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12460, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12460, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12460, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12460, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12460, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12461, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12460, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_EMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12463, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12464, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12465, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12466, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_EMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12478, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12478, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12478, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_6update, "EMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12480, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12480, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12480, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12480, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12480, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12481, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12480, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_EMA_Update(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_8peek, "EMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12488, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12488, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12488, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12488, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12488, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12489, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12488, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_EMA_Peek(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_EMA_Value(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_EMA_OutRange(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_EMA_Advance(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EMA_Stream_10copy, "EMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_self) { + TA_EMA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_EMA_Clone(((TA_EMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream))))) __PYX_ERR(3, 12516, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.EMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9ER_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9ER_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9ER_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ER_Close(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12540, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12540, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12540, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12540, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12540, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12540, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12540, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12540, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12540, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ER_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12542, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12543, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12544, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12545, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ER_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ER_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ER_Close(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_4open_and_fill, "ER_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9ER_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12556, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12556, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12556, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12556, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12556, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12556, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12556, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12557, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12556, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ER_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12559, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12560, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12561, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12562, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ER_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12574, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12574, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12574, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_6update, "ER_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12576, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12576, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12576, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12576, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12576, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12577, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12576, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ER_Update(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_8peek, "ER_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12584, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12584, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12584, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12584, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12584, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12585, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12584, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ER_Peek(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ER_Value(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ER_OutRange(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9ER_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ER_Advance(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9ER_Stream_10copy, "ER_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9ER_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_self) { + TA_ER_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ER_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ER_Clone(((TA_ER_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream))))) __PYX_ERR(3, 12612, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ER_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ERI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ERI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10ERI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ERI_Close(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12639, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12639, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 12639, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12639, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12639, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12639, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12639, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12639, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12639, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ERI_Stream *__pyx_v_handle; + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12643, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12643, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12643, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12644, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12645, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12646, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ERI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ERI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ERI_Close(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_4open_and_fill, "ERI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ERI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12658, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12658, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 12658, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12658, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12658, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12658, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12658, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12659, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12658, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outbullpower = 0; + PyArrayObject *__pyx_v_outbearpower = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ERI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12663, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12663, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12663, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12664, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12665, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12666, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ERI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ERI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outbullpower)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 12679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outbearpower)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); + __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_6update, "ERI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12681, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12681, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12681, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12681, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12681, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 12681, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12681, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12681, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12681, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12682, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12682, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12682, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12681, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_ERI_Update(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_8peek, "ERI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12690, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12690, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 12690, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12690, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12690, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12690, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12691, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12691, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12691, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12690, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_ERI_Peek(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { + double __pyx_v_outbullpower; + double __pyx_v_outbearpower; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ERI_Value(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ERI_OutRange(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ERI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ERI_Advance(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ERI_Stream_10copy, "ERI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ERI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_self) { + TA_ERI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ERI_Clone(((TA_ERI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream))))) __PYX_ERR(3, 12720, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10EXP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10EXP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10EXP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_EXP_Close(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12742, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12742, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12742, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 12742, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12742, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12742, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_EXP_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12744, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12745, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12746, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12747, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_EXP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EXP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_EXP_Close(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_4open_and_fill, "EXP_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EXP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12758, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12758, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12758, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 12758, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12758, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12758, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_EXP_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12761, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12762, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12763, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12764, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_EXP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EXP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12776, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12776, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12776, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_6update, "EXP_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12778, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12778, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12778, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12778, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12778, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12779, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12778, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_EXP_Update(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_8peek, "EXP_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12786, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12786, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12786, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12786, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12786, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12787, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12786, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_EXP_Peek(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_EXP_Value(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_EXP_OutRange(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10EXP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_EXP_Advance(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10EXP_Stream_10copy, "EXP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10EXP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_self) { + TA_EXP_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_EXP_Clone(((TA_EXP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream))))) __PYX_ERR(3, 12814, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.EXP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_FLOOR_Close(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12836, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12836, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12836, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 12836, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12836, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12836, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_FLOOR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12838, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12839, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12840, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12841, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_FLOOR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FLOOR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_FLOOR_Close(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill, "FLOOR_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12852, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12852, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12852, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 12852, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12852, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12852, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_FLOOR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12855, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12856, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12857, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12858, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_FLOOR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12870, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12870, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12870, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_6update, "FLOOR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12872, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12872, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12872, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12872, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12872, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12873, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12872, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_FLOOR_Update(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_8peek, "FLOOR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12880, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12880, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12880, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12880, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12880, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12881, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12880, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_FLOOR_Peek(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_FLOOR_Value(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_FLOOR_OutRange(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_FLOOR_Advance(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_10copy, "FLOOR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_self) { + TA_FLOOR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_FLOOR_Clone(((TA_FLOOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream))))) __PYX_ERR(3, 12908, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.FLOOR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11FOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_FOSC_Close(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12932, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12932, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12932, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12932, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12932, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12932, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_FOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12934, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12935, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12936, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12937, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_FOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FOSC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_FOSC_Close(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill, "FOSC_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12948, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12948, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12948, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12948, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12949, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12948, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_FOSC_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12951, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12952, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12953, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12954, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_FOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12966, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12966, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12966, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_6update, "FOSC_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12968, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12968, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12968, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12968, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12968, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12969, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12968, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_FOSC_Update(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_8peek, "FOSC_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12976, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12976, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12976, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12976, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12976, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12977, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12976, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_FOSC_Peek(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_FOSC_Value(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_FOSC_OutRange(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_FOSC_Advance(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11FOSC_Stream_10copy, "FOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_self) { + TA_FOSC_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_FOSC_Clone(((TA_FOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream))))) __PYX_ERR(3, 13004, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.FOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_FRACTAL_Close(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_leftbars; + int __pyx_v_rightbars; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13032, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13032, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13032, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13032, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13032, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13032, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 13032, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13032, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13032, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13032, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13032, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13032, __pyx_L3_error) + } else { + __pyx_v_leftbars = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13032, __pyx_L3_error) + } else { + __pyx_v_rightbars = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 13032, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_FRACTAL_Stream *__pyx_v_handle; + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13036, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13037, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13038, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_FRACTAL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_FRACTAL_Close(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill, "FRACTAL_Stream.open_and_fill(high, low, int leftbars=-0x80000000, int rightbars=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_leftbars; + int __pyx_v_rightbars; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13050, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13050, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 13050, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13050, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13050, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13050, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13051, __pyx_L3_error) + } else { + __pyx_v_leftbars = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13051, __pyx_L3_error) + } else { + __pyx_v_rightbars = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 13050, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outswinghigh = 0; + PyArrayObject *__pyx_v_outswinglow = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_FRACTAL_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13054, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13054, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13055, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13056, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13057, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_FRACTAL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outswinghigh)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outswinglow)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outswinghigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_6update, "FRACTAL_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13072, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13072, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13072, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13072, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 13072, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13072, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13072, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13073, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13073, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13072, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_FRACTAL_Update(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_8peek, "FRACTAL_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13081, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13081, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13081, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13081, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 13081, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13081, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13081, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13082, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13082, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13081, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_FRACTAL_Peek(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { + int __pyx_v_outswinghigh; + int __pyx_v_outswinglow; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_FRACTAL_Value(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_FRACTAL_OutRange(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_FRACTAL_Advance(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_10copy, "FRACTAL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_self) { + TA_FRACTAL_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_FRACTAL_Clone(((TA_FRACTAL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream))))) __PYX_ERR(3, 13111, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9HA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9HA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9HA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HA_Close(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13138, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13138, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13138, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13138, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13138, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13138, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13138, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13138, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13138, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13138, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13138, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13138, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HA_Stream *__pyx_v_handle; + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13144, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13145, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13146, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HA_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HA_Close(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_4open_and_fill, "HA_Stream.open_and_fill(open, high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9HA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13160, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13160, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13160, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13160, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13160, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13160, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13160, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13160, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13160, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13160, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13160, __pyx_L3_error) + } + __pyx_v_open = values[0]; + __pyx_v_high = values[1]; + __pyx_v_low = values[2]; + __pyx_v_close = values[3]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13160, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outhaopen = 0; + PyArrayObject *__pyx_v_outhahigh = 0; + PyArrayObject *__pyx_v_outhalow = 0; + PyArrayObject *__pyx_v_outhaclose = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + size_t __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13167, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13168, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13169, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhaopen)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhahigh)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhalow)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __pyx_t_11 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhaclose)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_12 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_12 = 0; + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10, __pyx_t_11}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_12, (5-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outhaopen); + __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); + __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); + __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_6update, "HA_Stream.update(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13186, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13186, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13186, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13186, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13186, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13186, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13186, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13186, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13186, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HA_Update(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_9 = 0; + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_8peek, "HA_Stream.peek(self, double open, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13197, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13197, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13197, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13197, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13197, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13197, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13197, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13197, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13197, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13197, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13197, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13197, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HA_Peek(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_9 = 0; + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { + double __pyx_v_outhaopen; + double __pyx_v_outhahigh; + double __pyx_v_outhalow; + double __pyx_v_outhaclose; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + size_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HA_Value(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_9 = 0; + } + #endif + { + PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HA_OutRange(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9HA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HA_Advance(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9HA_Stream_10copy, "HA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9HA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_self) { + TA_HA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HA_Clone(((TA_HA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream))))) __PYX_ERR(3, 13231, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10HMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10HMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10HMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HMA_Close(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13255, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13255, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13255, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13255, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 13255, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13255, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13255, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13255, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 13255, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13257, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13258, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13259, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13260, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HMA_Close(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_4open_and_fill, "HMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10HMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13271, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13271, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 13271, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13271, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13271, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13272, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 13271, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13274, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13275, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13276, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13277, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13289, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13289, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13289, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_6update, "HMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13291, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13291, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13291, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13291, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13291, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13292, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13291, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HMA_Update(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_8peek, "HMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13299, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13299, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13299, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13299, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13299, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13300, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13299, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HMA_Peek(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HMA_Value(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HMA_OutRange(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10HMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HMA_Advance(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10HMA_Stream_10copy, "HMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10HMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_self) { + TA_HMA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HMA_Clone(((TA_HMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream))))) __PYX_ERR(3, 13327, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HT_DCPERIOD_Close(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13349, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13349, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13349, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13349, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13349, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13349, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HT_DCPERIOD_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13351, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13352, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13353, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13354, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_DCPERIOD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_DCPERIOD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HT_DCPERIOD_Close(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill, "HT_DCPERIOD_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13365, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13365, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13365, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13365, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13365, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13365, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HT_DCPERIOD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13368, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13369, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13370, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13371, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_DCPERIOD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13383, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13383, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13383, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update, "HT_DCPERIOD_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13385, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13385, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13385, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13385, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13385, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13386, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13385, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HT_DCPERIOD_Update(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek, "HT_DCPERIOD_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13393, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13393, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13393, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13393, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13393, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13394, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13393, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HT_DCPERIOD_Peek(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HT_DCPERIOD_Value(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_DCPERIOD_OutRange(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_DCPERIOD_Advance(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy, "HT_DCPERIOD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_self) { + TA_HT_DCPERIOD_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HT_DCPERIOD_Clone(((TA_HT_DCPERIOD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream))))) __PYX_ERR(3, 13421, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HT_DCPHASE_Close(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13443, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13443, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13443, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13443, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13443, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13443, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HT_DCPHASE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13445, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13446, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13447, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13448, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_DCPHASE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_DCPHASE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HT_DCPHASE_Close(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill, "HT_DCPHASE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13459, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13459, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13459, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13459, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13459, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13459, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HT_DCPHASE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13462, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13463, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13464, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13465, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_DCPHASE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13477, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13477, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13477, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update, "HT_DCPHASE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13479, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13479, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13479, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13479, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13479, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13480, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13479, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HT_DCPHASE_Update(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek, "HT_DCPHASE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13487, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13487, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13487, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13487, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13487, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13488, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13487, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HT_DCPHASE_Peek(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HT_DCPHASE_Value(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_DCPHASE_OutRange(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_DCPHASE_Advance(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy, "HT_DCPHASE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_self) { + TA_HT_DCPHASE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HT_DCPHASE_Clone(((TA_HT_DCPHASE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream))))) __PYX_ERR(3, 13515, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HT_PHASOR_Close(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13540, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13540, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13540, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13540, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13540, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13540, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HT_PHASOR_Stream *__pyx_v_handle; + double __pyx_v_outinphase; + double __pyx_v_outquadrature; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13542, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13543, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13544, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13545, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_PHASOR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_PHASOR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HT_PHASOR_Close(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill, "HT_PHASOR_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13557, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13557, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13557, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13557, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13557, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13557, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinphase = 0; + PyArrayObject *__pyx_v_outquadrature = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HT_PHASOR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13561, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13562, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13563, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_PHASOR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outinphase)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outquadrature)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinphase); + __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_6update, "HT_PHASOR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13578, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13578, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13578, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13578, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13578, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13579, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13578, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outinphase; + double __pyx_v_outquadrature; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HT_PHASOR_Update(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek, "HT_PHASOR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13587, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13587, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13587, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13587, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13587, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13588, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13587, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outinphase; + double __pyx_v_outquadrature; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HT_PHASOR_Peek(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13594, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { + double __pyx_v_outinphase; + double __pyx_v_outquadrature; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HT_PHASOR_Value(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_PHASOR_OutRange(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_PHASOR_Advance(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy, "HT_PHASOR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_self) { + TA_HT_PHASOR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HT_PHASOR_Clone(((TA_HT_PHASOR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream))))) __PYX_ERR(3, 13617, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HT_SINE_Close(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13642, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13642, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13642, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13642, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13642, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13642, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HT_SINE_Stream *__pyx_v_handle; + double __pyx_v_outsine; + double __pyx_v_outleadsine; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13644, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13645, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13646, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13647, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_SINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_SINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HT_SINE_Close(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill, "HT_SINE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13659, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13659, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13659, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13659, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13659, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outsine = 0; + PyArrayObject *__pyx_v_outleadsine = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HT_SINE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13662, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13663, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13664, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13665, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_SINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsine)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outleadsine)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outsine); + __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_6update, "HT_SINE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13680, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13680, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13680, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13680, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13680, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13681, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13680, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outsine; + double __pyx_v_outleadsine; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HT_SINE_Update(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_8peek, "HT_SINE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13689, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13689, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13689, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13689, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13689, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13690, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13689, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outsine; + double __pyx_v_outleadsine; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HT_SINE_Peek(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { + double __pyx_v_outsine; + double __pyx_v_outleadsine; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HT_SINE_Value(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_SINE_OutRange(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_SINE_Advance(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_10copy, "HT_SINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_self) { + TA_HT_SINE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HT_SINE_Clone(((TA_HT_SINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream))))) __PYX_ERR(3, 13719, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HT_TRENDLINE_Close(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13741, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13741, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13741, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13741, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13741, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13741, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HT_TRENDLINE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13743, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13744, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13745, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13746, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_TRENDLINE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_TRENDLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HT_TRENDLINE_Close(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill, "HT_TRENDLINE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13757, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13757, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13757, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13757, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13757, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HT_TRENDLINE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13760, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13761, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13762, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13763, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_TRENDLINE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13775, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13775, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13775, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update, "HT_TRENDLINE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13777, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13777, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13777, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13777, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13778, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13777, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HT_TRENDLINE_Update(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek, "HT_TRENDLINE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13785, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13785, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13785, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13785, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13786, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13785, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HT_TRENDLINE_Peek(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HT_TRENDLINE_Value(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_TRENDLINE_OutRange(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_TRENDLINE_Advance(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy, "HT_TRENDLINE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_self) { + TA_HT_TRENDLINE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HT_TRENDLINE_Clone(((TA_HT_TRENDLINE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream))))) __PYX_ERR(3, 13813, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_HT_TRENDMODE_Close(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13835, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13835, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13835, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13835, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13835, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13835, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_HT_TRENDMODE_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13837, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13838, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13839, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13840, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_TRENDMODE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_TRENDMODE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_HT_TRENDMODE_Close(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill, "HT_TRENDMODE_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13851, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13851, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13851, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13851, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13851, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13851, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_HT_TRENDMODE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13854, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13855, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13856, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13857, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_HT_TRENDMODE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13869, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13869, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13869, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update, "HT_TRENDMODE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13871, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13871, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13871, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13871, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13872, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13871, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_HT_TRENDMODE_Update(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek, "HT_TRENDMODE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13879, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13879, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13879, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13879, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13880, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13879, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_HT_TRENDMODE_Peek(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_HT_TRENDMODE_Value(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_TRENDMODE_OutRange(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_HT_TRENDMODE_Advance(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy, "HT_TRENDMODE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_self) { + TA_HT_TRENDMODE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_HT_TRENDMODE_Clone(((TA_HT_TRENDMODE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream))))) __PYX_ERR(3, 13907, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10IMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10IMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10IMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_IMI_Close(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13931, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13931, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13931, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13931, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13931, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 13931, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13931, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13931, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13931, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13931, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 13931, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_IMI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13934, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13934, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13935, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13936, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13937, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_IMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_IMI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_IMI_Close(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_4open_and_fill, "IMI_Stream.open_and_fill(open, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IMI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13948, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13948, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 13948, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13948, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13948, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13949, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 13948, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(__pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_IMI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13952, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13952, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13953, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13954, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13955, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_IMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_IMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_6update, "IMI_Stream.update(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13969, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13969, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13969, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 13969, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13969, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13969, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13970, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13970, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13969, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_IMI_Update(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_8peek, "IMI_Stream.peek(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_open; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13977, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13977, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13977, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 13977, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13977, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13977, __pyx_L3_error) + } + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13978, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13978, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13977, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_IMI_Peek(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_IMI_Value(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_IMI_OutRange(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10IMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_IMI_Advance(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10IMI_Stream_10copy, "IMI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10IMI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_self) { + TA_IMI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_IMI_Clone(((TA_IMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream))))) __PYX_ERR(3, 14005, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.IMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11KAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_KAMA_Close(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14029, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14029, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14029, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14029, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14029, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14029, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14029, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14029, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14029, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_KAMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14031, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14032, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14033, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14034, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_KAMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KAMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_KAMA_Close(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill, "KAMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14045, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14045, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14045, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14045, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14045, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14045, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14045, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14046, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14045, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_KAMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14048, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14049, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14050, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14051, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_KAMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14063, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14063, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14063, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_6update, "KAMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14065, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14065, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14065, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14065, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14065, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14066, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14065, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_KAMA_Update(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_8peek, "KAMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14073, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14073, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14073, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14073, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14073, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14074, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14073, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_KAMA_Peek(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_KAMA_Value(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_KAMA_OutRange(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_KAMA_Advance(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11KAMA_Stream_10copy, "KAMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_self) { + TA_KAMA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_KAMA_Clone(((TA_KAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream))))) __PYX_ERR(3, 14101, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.KAMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9KC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9KC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9KC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_KC_Close(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_atrperiod; + double __pyx_v_nbdev; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14131, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14131, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 14131, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14131, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14131, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14131, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14131, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14131, __pyx_L3_error) + } else { + __pyx_v_atrperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14131, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 14131, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_KC_Stream *__pyx_v_handle; + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14135, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14135, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14135, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14136, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14137, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14138, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_KC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_KC_Close(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_4open_and_fill, "KC_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9KC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + int __pyx_v_atrperiod; + double __pyx_v_nbdev; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14151, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14151, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 14151, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14151, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14151, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14151, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14151, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14152, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14152, __pyx_L3_error) + } else { + __pyx_v_atrperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14152, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 14151, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outupperband = 0; + PyArrayObject *__pyx_v_outmiddleband = 0; + PyArrayObject *__pyx_v_outlowerband = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_KC_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14156, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14156, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14156, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14157, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14158, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14159, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_KC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outlowerband)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outupperband); + __Pyx_XDECREF((PyObject *)__pyx_v_outmiddleband); + __Pyx_XDECREF((PyObject *)__pyx_v_outlowerband); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_6update, "KC_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14175, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14175, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14175, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14175, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14175, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 14175, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14175, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14175, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14175, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14176, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14176, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14176, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14175, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_KC_Update(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_8peek, "KC_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14185, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14185, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14185, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 14185, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14185, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14185, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14185, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14186, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14186, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14186, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14185, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_KC_Peek(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { + double __pyx_v_outupperband; + double __pyx_v_outmiddleband; + double __pyx_v_outlowerband; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_KC_Value(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outupperband), (&__pyx_v_outmiddleband), (&__pyx_v_outlowerband)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_KC_OutRange(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9KC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_KC_Advance(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9KC_Stream_10copy, "KC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9KC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_self) { + TA_KC_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_KC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_KC_Clone(((TA_KC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream))))) __PYX_ERR(3, 14217, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.KC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10KDJ_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_KDJ_Close(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14249, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14249, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 14249, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14249, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14249, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14249, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)13); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)13); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 14249, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_KDJ_Stream *__pyx_v_handle; + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14253, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14253, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14254, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14255, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14256, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_KDJ_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_KDJ_Close(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill, "KDJ_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14269, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14269, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 14269, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14269, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14269, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14269, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14269, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)13); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)13); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 14269, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outk = 0; + PyArrayObject *__pyx_v_outd = 0; + PyArrayObject *__pyx_v_outj = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_KDJ_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14274, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14274, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14274, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14275, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14276, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14277, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_KDJ_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outk); + __Pyx_XDECREF((PyObject *)__pyx_v_outd); + __Pyx_XDECREF((PyObject *)__pyx_v_outj); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_6update, "KDJ_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14293, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14293, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14293, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14293, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14293, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 14293, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14293, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14293, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14293, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14294, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14294, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14294, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14293, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_KDJ_Update(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_8peek, "KDJ_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14303, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14303, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14303, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14303, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14303, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 14303, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14303, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14303, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14303, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14304, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14304, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14304, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14303, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_KDJ_Peek(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { + double __pyx_v_outk; + double __pyx_v_outd; + double __pyx_v_outj; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_KDJ_Value(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_KDJ_OutRange(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_KDJ_Advance(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10KDJ_Stream_10copy, "KDJ_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_self) { + TA_KDJ_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_KDJ_Clone(((TA_KDJ_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream))))) __PYX_ERR(3, 14335, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_LINEARREG_Close(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14359, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14359, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14359, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14359, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14359, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14359, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14359, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14359, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14359, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_LINEARREG_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14361, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14362, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14363, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14364, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_LINEARREG_Close(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill, "LINEARREG_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14375, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14375, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14375, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14375, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14375, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14375, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14375, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14376, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14375, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_LINEARREG_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14378, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14379, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14380, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14381, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14393, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14393, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14393, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_6update, "LINEARREG_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14395, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14395, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14395, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14395, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14395, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14396, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14395, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_LINEARREG_Update(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_8peek, "LINEARREG_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14403, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14403, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14403, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14403, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14403, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14404, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14403, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_LINEARREG_Peek(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_LINEARREG_Value(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_OutRange(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_Advance(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_10copy, "LINEARREG_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_self) { + TA_LINEARREG_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_LINEARREG_Clone(((TA_LINEARREG_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream))))) __PYX_ERR(3, 14431, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_LINEARREG_ANGLE_Close(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14455, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14455, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14455, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14455, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14455, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14455, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14455, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14455, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14455, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_LINEARREG_ANGLE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14457, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14458, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14459, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14460, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_ANGLE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_LINEARREG_ANGLE_Close(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill, "LINEARREG_ANGLE_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14471, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14471, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14471, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14471, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14471, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14472, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14471, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_LINEARREG_ANGLE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14474, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14475, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14476, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14477, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_ANGLE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14489, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14489, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14489, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update, "LINEARREG_ANGLE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14491, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14491, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14491, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14491, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14491, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14492, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14491, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_LINEARREG_ANGLE_Update(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek, "LINEARREG_ANGLE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14499, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14499, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14499, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14499, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14499, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14500, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14499, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_LINEARREG_ANGLE_Peek(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_LINEARREG_ANGLE_Value(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_ANGLE_OutRange(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_ANGLE_Advance(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy, "LINEARREG_ANGLE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_self) { + TA_LINEARREG_ANGLE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_LINEARREG_ANGLE_Clone(((TA_LINEARREG_ANGLE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream))))) __PYX_ERR(3, 14527, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_LINEARREG_INTERCEPT_Close(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14551, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14551, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14551, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14551, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14551, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14551, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14551, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_LINEARREG_INTERCEPT_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14553, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14554, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14555, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14556, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_LINEARREG_INTERCEPT_Close(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill, "LINEARREG_INTERCEPT_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14567, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14567, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14567, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14567, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14567, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14568, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14567, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_LINEARREG_INTERCEPT_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14570, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14571, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14572, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14573, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14585, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14585, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14585, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update, "LINEARREG_INTERCEPT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14587, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14587, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14587, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14587, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14587, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14588, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14587, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Update(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek, "LINEARREG_INTERCEPT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14595, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14595, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14595, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14595, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14595, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14596, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14595, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Peek(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Value(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_INTERCEPT_OutRange(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_INTERCEPT_Advance(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy, "LINEARREG_INTERCEPT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_self) { + TA_LINEARREG_INTERCEPT_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_LINEARREG_INTERCEPT_Clone(((TA_LINEARREG_INTERCEPT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream))))) __PYX_ERR(3, 14623, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_LINEARREG_SLOPE_Close(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14647, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14647, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14647, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14647, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14647, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14647, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14647, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14647, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14647, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_LINEARREG_SLOPE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14649, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14650, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14651, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14652, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_SLOPE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_LINEARREG_SLOPE_Close(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill, "LINEARREG_SLOPE_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14663, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14663, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14663, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14663, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14663, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14663, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14663, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14664, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14663, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_LINEARREG_SLOPE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14666, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14667, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14668, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14669, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LINEARREG_SLOPE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14681, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14681, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14681, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update, "LINEARREG_SLOPE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14683, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14683, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14683, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14683, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14683, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14684, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14683, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_LINEARREG_SLOPE_Update(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek, "LINEARREG_SLOPE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14691, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14691, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14691, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14691, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14691, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14692, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14691, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_LINEARREG_SLOPE_Peek(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_LINEARREG_SLOPE_Value(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_SLOPE_OutRange(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LINEARREG_SLOPE_Advance(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy, "LINEARREG_SLOPE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_self) { + TA_LINEARREG_SLOPE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_LINEARREG_SLOPE_Clone(((TA_LINEARREG_SLOPE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream))))) __PYX_ERR(3, 14719, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9LN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9LN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9LN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_LN_Close(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14741, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14741, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14741, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 14741, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14741, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14741, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_LN_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14743, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14744, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14745, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14746, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_LN_Close(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_4open_and_fill, "LN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9LN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14757, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14757, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14757, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 14757, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14757, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14757, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_LN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14760, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14761, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14762, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14763, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14775, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14775, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14775, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_6update, "LN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14777, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14777, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14777, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14777, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14777, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14778, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14777, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_LN_Update(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_8peek, "LN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14785, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14785, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14785, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14785, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14786, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14785, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_LN_Peek(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_LN_Value(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LN_OutRange(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9LN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LN_Advance(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9LN_Stream_10copy, "LN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9LN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_self) { + TA_LN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_LN_Clone(((TA_LN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream))))) __PYX_ERR(3, 14813, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.LN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12LOG10_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_LOG10_Close(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14835, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14835, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14835, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 14835, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14835, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14835, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_LOG10_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14837, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14838, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14839, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14840, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LOG10_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LOG10_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_LOG10_Close(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill, "LOG10_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14851, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14851, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14851, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 14851, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14851, __pyx_L3_error) + } + __pyx_v_real = values[0]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14851, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(__pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_LOG10_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14854, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14855, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14856, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14857, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_LOG10_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14869, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14869, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14869, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_6update, "LOG10_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14871, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14871, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14871, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14871, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14871, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14872, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14871, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_LOG10_Update(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_8peek, "LOG10_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14879, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14879, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14879, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14879, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14879, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14880, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14879, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_LOG10_Peek(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_LOG10_Value(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LOG10_OutRange(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_LOG10_Advance(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12LOG10_Stream_10copy, "LOG10_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_self) { + TA_LOG10_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_LOG10_Clone(((TA_LOG10_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream))))) __PYX_ERR(3, 14907, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.LOG10_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9MA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9MA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_9MA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MA_Close(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14932, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14932, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 14932, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14932, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14932, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14932, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14932, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 14932, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14934, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14935, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14936, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14937, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MA_Close(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_4open_and_fill, "MA_Stream.open_and_fill(real, int timeperiod=-0x80000000, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9MA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14948, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14948, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 14948, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14948, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14948, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14949, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14949, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 14948, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14951, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14952, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14953, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14954, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14966, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14966, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14966, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_6update, "MA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14968, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14968, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14968, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14968, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14968, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14969, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14968, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MA_Update(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_8peek, "MA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14976, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14976, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14976, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14976, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14976, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14977, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14976, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MA_Peek(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MA_Value(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MA_OutRange(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9MA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MA_Advance(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9MA_Stream_10copy, "MA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9MA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_self) { + TA_MA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MA_Clone(((TA_MA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream))))) __PYX_ERR(3, 15004, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11MACD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MACD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11MACD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MACD_Close(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15034, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15034, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 15034, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15034, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15034, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15034, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15034, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15034, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 15034, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MACD_Stream *__pyx_v_handle; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15036, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15037, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15038, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15039, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MACD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MACD_Close(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_4open_and_fill, "MACD_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MACD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15052, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15052, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 15052, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15052, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15052, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15053, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15053, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15053, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 15052, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MACD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15055, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15056, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15057, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15058, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MACD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_6update, "MACD_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15074, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15074, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15074, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15074, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15074, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15075, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15074, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MACD_Update(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_8peek, "MACD_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15084, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15084, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15084, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15084, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15084, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15085, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15084, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MACD_Peek(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MACD_Value(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MACD_OutRange(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MACD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MACD_Advance(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MACD_Stream_10copy, "MACD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MACD_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_self) { + TA_MACD_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MACD_Clone(((TA_MACD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream))))) __PYX_ERR(3, 15116, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MACDEXT_Close(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[7] = {0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15149, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15149, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, i); __PYX_ERR(3, 15149, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15149, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15149, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)0); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)0); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 15149, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MACDEXT_Stream *__pyx_v_handle; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15151, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15152, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15153, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15154, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MACDEXT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MACDEXT_Close(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill, "MACDEXT_Stream.open_and_fill(real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[7] = {0,0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15167, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15167, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, i); __PYX_ERR(3, 15167, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15167, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15167, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)0); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)0); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 15167, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MACDEXT_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15170, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15171, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15172, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15173, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MACDEXT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_6update, "MACDEXT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15189, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15189, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15189, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15189, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15189, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15190, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15189, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MACDEXT_Update(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_8peek, "MACDEXT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15199, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15199, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15199, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15199, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15199, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15200, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15199, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MACDEXT_Peek(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MACDEXT_Value(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MACDEXT_OutRange(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MACDEXT_Advance(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_10copy, "MACDEXT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_self) { + TA_MACDEXT_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MACDEXT_Clone(((TA_MACDEXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream))))) __PYX_ERR(3, 15231, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MACDFIX_Close(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15259, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15259, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15259, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15259, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15259, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15259, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15259, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15259, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15259, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MACDFIX_Stream *__pyx_v_handle; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15261, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15262, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15263, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15264, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MACDFIX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_signalperiod, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACDFIX_Lookback(__pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MACDFIX_Close(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill, "MACDFIX_Stream.open_and_fill(real, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15277, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15277, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15277, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15277, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15278, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15277, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_signalperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outmacd = 0; + PyArrayObject *__pyx_v_outmacdsignal = 0; + PyArrayObject *__pyx_v_outmacdhist = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MACDFIX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15280, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15281, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15282, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15283, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MACDFIX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); + __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_11 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_11 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); + __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_6update, "MACDFIX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15299, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15299, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15299, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15299, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15299, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15300, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15299, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MACDFIX_Update(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_8peek, "MACDFIX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15309, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15309, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15309, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15309, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15309, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15310, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15309, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MACDFIX_Peek(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + size_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MACDFIX_Value(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_8 = 0; + } + #endif + { + PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MACDFIX_OutRange(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MACDFIX_Advance(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_10copy, "MACDFIX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_self) { + TA_MACDFIX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MACDFIX_Clone(((TA_MACDFIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream))))) __PYX_ERR(3, 15341, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11MAMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MAMA_Close(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15369, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15369, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 15369, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15369, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15369, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15369, __pyx_L3_error) + } else { + __pyx_v_fastlimit = ((double)-4e37); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15369, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)-4e37); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 15369, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MAMA_Stream *__pyx_v_handle; + double __pyx_v_outmama; + double __pyx_v_outfama; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15371, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15372, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15373, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15374, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outmama), (&__pyx_v_outfama)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MAMA_Close(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill, "MAMA_Stream.open_and_fill(real, double fastlimit=-4e37, double slowlimit=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + double __pyx_v_fastlimit; + double __pyx_v_slowlimit; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15386, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15386, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 15386, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15386, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15386, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15387, __pyx_L3_error) + } else { + __pyx_v_fastlimit = ((double)-4e37); + } + if (values[2]) { + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15387, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)-4e37); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 15386, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outmama = 0; + PyArrayObject *__pyx_v_outfama = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MAMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15389, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15390, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15391, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15392, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmama)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfama)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmama); + __Pyx_XDECREF((PyObject *)__pyx_v_outfama); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_6update, "MAMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15407, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15407, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15407, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15407, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15407, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15408, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15407, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmama; + double __pyx_v_outfama; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MAMA_Update(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmama), (&__pyx_v_outfama)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_8peek, "MAMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15416, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15416, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15416, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15416, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15416, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15417, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15416, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmama; + double __pyx_v_outfama; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MAMA_Peek(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmama), (&__pyx_v_outfama)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { + double __pyx_v_outmama; + double __pyx_v_outfama; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MAMA_Value(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmama), (&__pyx_v_outfama)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAMA_OutRange(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAMA_Advance(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAMA_Stream_10copy, "MAMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_self) { + TA_MAMA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MAMA_Clone(((TA_MAMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream))))) __PYX_ERR(3, 15446, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MARKETFI_Close(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15468, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15468, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 15468, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15468, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15468, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15468, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_volume = values[2]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15468, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MARKETFI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15472, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15472, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15473, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15474, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15475, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MARKETFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MARKETFI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MARKETFI_Close(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill, "MARKETFI_Stream.open_and_fill(high, low, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15486, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15486, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15486, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 15486, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15486, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15486, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15486, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_volume = values[2]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15486, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MARKETFI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15491, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15491, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15491, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15492, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15493, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15494, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MARKETFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_volume) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_6update, "MARKETFI_Stream.update(self, double high, double low, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15508, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15508, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15508, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15508, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15508, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 15508, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15508, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15508, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15508, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15509, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15509, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15509, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15508, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MARKETFI_Update(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_8peek, "MARKETFI_Stream.peek(self, double high, double low, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15516, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15516, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15516, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15516, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15516, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 15516, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15516, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15516, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15516, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15517, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15517, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15517, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15516, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MARKETFI_Peek(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MARKETFI_Value(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MARKETFI_OutRange(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MARKETFI_Advance(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_10copy, "MARKETFI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_self) { + TA_MARKETFI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MARKETFI_Clone(((TA_MARKETFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream))))) __PYX_ERR(3, 15544, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MARKETFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12MASSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MASSI_Close(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15569, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15569, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 15569, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15569, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15569, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15569, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15569, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15569, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15569, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MASSI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15572, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15572, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15573, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15574, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15575, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MASSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MASSI_Close(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill, "MASSI_Stream.open_and_fill(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15586, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15586, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 15586, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15586, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15586, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15586, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15587, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15587, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15586, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MASSI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15590, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15590, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15591, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15592, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15593, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MASSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_6update, "MASSI_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15607, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15607, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15607, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15607, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15607, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15607, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15608, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15608, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15607, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MASSI_Update(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_8peek, "MASSI_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15615, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15615, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15615, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15615, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15615, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15615, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15615, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15616, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15616, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15615, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MASSI_Peek(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MASSI_Value(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MASSI_OutRange(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MASSI_Advance(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12MASSI_Stream_10copy, "MASSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_self) { + TA_MASSI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MASSI_Clone(((TA_MASSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream))))) __PYX_ERR(3, 15643, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MASSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11MAVP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MAVP_Close(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15670, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15670, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 15670, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15670, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15670, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15670, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + __pyx_v_periods = values[1]; + if (values[2]) { + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15670, __pyx_L3_error) + } else { + __pyx_v_minperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15670, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15670, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 15670, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_periods = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MAVP_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15673, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_periods); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 15673, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15674, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15675, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15676, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAVP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_periods)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MAVP_Close(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_periods); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill, "MAVP_Stream.open_and_fill(real, periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_periods = 0; + int __pyx_v_minperiod; + int __pyx_v_maxperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15687, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15687, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 15687, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15687, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15687, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15687, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + __pyx_v_periods = values[1]; + if (values[2]) { + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15688, __pyx_L3_error) + } else { + __pyx_v_minperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15688, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15688, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)0); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 15687, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_periods = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MAVP_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15691, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_periods); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 15691, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15692, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15693, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15694, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAVP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_periods)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_periods); + __Pyx_GIVEREF(__pyx_v_periods); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_periods) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_periods); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_6update, "MAVP_Stream.update(self, double real, double periods)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + double __pyx_v_periods; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15708, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15708, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15708, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15708, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15708, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15708, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15708, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15709, __pyx_L3_error) + __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15709, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15708, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MAVP_Update(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_periods, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_8peek, "MAVP_Stream.peek(self, double real, double periods)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + double __pyx_v_periods; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15716, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15716, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15716, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15716, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15716, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15716, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15716, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15717, __pyx_L3_error) + __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15717, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15716, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_periods); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_periods) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MAVP_Peek(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_periods, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MAVP_Value(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAVP_OutRange(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAVP_Advance(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MAVP_Stream_10copy, "MAVP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_self) { + TA_MAVP_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MAVP_Clone(((TA_MAVP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream))))) __PYX_ERR(3, 15744, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MAVP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10MAX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MAX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10MAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MAX_Close(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15768, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15768, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15768, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15768, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15768, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15768, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15768, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MAX_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15771, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15772, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15773, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MAX_Close(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_4open_and_fill, "MAX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MAX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15784, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15784, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15784, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15784, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15784, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15785, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15784, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MAX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15787, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15788, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15789, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15790, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15802, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15802, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15802, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_6update, "MAX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15804, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15804, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15804, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15804, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15804, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15805, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15804, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MAX_Update(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_8peek, "MAX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15812, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15812, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15812, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15812, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15812, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15813, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15812, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MAX_Peek(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MAX_Value(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAX_OutRange(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAX_Advance(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MAX_Stream_10copy, "MAX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MAX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_self) { + TA_MAX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MAX_Clone(((TA_MAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15839, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream))))) __PYX_ERR(3, 15840, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MAX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MAXINDEX_Close(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15864, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15864, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15864, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15864, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15864, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15864, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15864, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15864, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15864, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MAXINDEX_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15866, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15867, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15868, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15869, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAXINDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAXINDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MAXINDEX_Close(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill, "MAXINDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15880, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15880, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15880, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15880, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15880, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15880, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15880, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15881, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15880, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MAXINDEX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + npy_intp __pyx_v_i; + int *__pyx_v_outinteger_data; + struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + npy_intp __pyx_t_5; + npy_intp __pyx_t_6; + npy_intp __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15883, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15884, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15885, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15886, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MAXINDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_5 = __pyx_t_2; + + for (__pyx_t_6 = __pyx_v_lookback; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + + __pyx_t_7 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_7]) = ((__pyx_v_outinteger_data[__pyx_t_7]) + __pyx_v_begidx); + } + + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15902, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15902, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(3, 15902, __pyx_L1_error); + __pyx_t_8 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_6update, "MAXINDEX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15904, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15904, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15904, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15904, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15904, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15905, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15904, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MAXINDEX_Update(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_8peek, "MAXINDEX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15912, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15912, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15912, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15912, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15912, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15913, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15912, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MAXINDEX_Peek(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MAXINDEX_Value(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAXINDEX_OutRange(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MAXINDEX_Advance(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_10copy, "MAXINDEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_self) { + TA_MAXINDEX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MAXINDEX_Clone(((TA_MAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream))))) __PYX_ERR(3, 15940, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MEDPRICE_Close(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15962, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15962, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15962, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15962, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 15962, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15962, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15962, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15962, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MEDPRICE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15965, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15965, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15966, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15967, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15968, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MEDPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MEDPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MEDPRICE_Close(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill, "MEDPRICE_Stream.open_and_fill(high, low)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15979, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15979, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15979, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15979, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 15979, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15979, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15979, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15979, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MEDPRICE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15983, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15983, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15984, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15985, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15986, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MEDPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_6update, "MEDPRICE_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16000, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16000, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16000, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16000, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16000, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16000, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16000, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16001, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16001, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16000, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MEDPRICE_Update(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_8peek, "MEDPRICE_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16008, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16008, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16008, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16008, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16008, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16008, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16009, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16009, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16008, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MEDPRICE_Peek(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MEDPRICE_Value(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MEDPRICE_OutRange(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MEDPRICE_Advance(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_10copy, "MEDPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_self) { + TA_MEDPRICE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MEDPRICE_Clone(((TA_MEDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream))))) __PYX_ERR(3, 16036, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MEDPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10MFI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MFI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10MFI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MFI_Close(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16060, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16060, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16060, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16060, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16060, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16060, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16060, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 16060, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16060, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16060, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16060, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16060, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16060, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16060, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 16060, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MFI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16066, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16067, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16068, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MFI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MFI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MFI_Close(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_4open_and_fill, "MFI_Stream.open_and_fill(high, low, close, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MFI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[5] = {0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16079, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16079, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 16079, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16079, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16079, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16079, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16079, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16079, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; + if (values[4]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16080, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 16079, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MFI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16083, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16086, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16087, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16088, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MFI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_6update, "MFI_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16102, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16102, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16102, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16102, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16102, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16102, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 16102, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16102, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16102, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16102, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16102, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 16102, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MFI_Update(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_8peek, "MFI_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16110, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16110, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16110, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 16110, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16110, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16110, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16110, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16110, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 16110, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MFI_Peek(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MFI_Value(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MFI_OutRange(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MFI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MFI_Advance(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MFI_Stream_10copy, "MFI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MFI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_self) { + TA_MFI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MFI_Clone(((TA_MFI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream))))) __PYX_ERR(3, 16138, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MFI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MIDPOINT_Close(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16162, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16162, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16162, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16162, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16162, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16162, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16162, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16162, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16162, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MIDPOINT_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16164, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16165, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16166, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16167, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MIDPOINT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIDPOINT_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MIDPOINT_Close(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill, "MIDPOINT_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16178, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16178, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16178, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16178, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16178, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16179, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16178, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MIDPOINT_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16181, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16182, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16183, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16184, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MIDPOINT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16196, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16196, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16196, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_6update, "MIDPOINT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16198, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16198, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16198, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16198, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16198, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16199, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16198, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MIDPOINT_Update(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_8peek, "MIDPOINT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16206, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16206, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16206, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16206, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16206, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16207, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16206, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MIDPOINT_Peek(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MIDPOINT_Value(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MIDPOINT_OutRange(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MIDPOINT_Advance(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_10copy, "MIDPOINT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_self) { + TA_MIDPOINT_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MIDPOINT_Clone(((TA_MIDPOINT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream))))) __PYX_ERR(3, 16234, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MIDPOINT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MIDPRICE_Close(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16258, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16258, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16258, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16258, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16258, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16258, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16258, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16258, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16258, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16258, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16258, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MIDPRICE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16261, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16261, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16262, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16263, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16264, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MIDPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIDPRICE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MIDPRICE_Close(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill, "MIDPRICE_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16275, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16275, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16275, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16275, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16275, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16275, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16275, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16275, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16275, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16276, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16275, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MIDPRICE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16279, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16279, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16280, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16281, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16282, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MIDPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_6update, "MIDPRICE_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16296, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16296, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16296, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16296, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16296, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16297, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16297, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16296, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MIDPRICE_Update(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_8peek, "MIDPRICE_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16304, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16304, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16304, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16304, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16304, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16304, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16304, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16305, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16305, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16304, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MIDPRICE_Peek(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MIDPRICE_Value(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MIDPRICE_OutRange(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MIDPRICE_Advance(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_10copy, "MIDPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_self) { + TA_MIDPRICE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MIDPRICE_Clone(((TA_MIDPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream))))) __PYX_ERR(3, 16332, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MIDPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10MIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10MIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MIN_Close(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16356, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16356, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16356, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16356, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16356, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16356, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16356, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16356, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16356, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MIN_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16358, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16359, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16360, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16361, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIN_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MIN_Close(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_4open_and_fill, "MIN_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MIN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16372, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16372, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16372, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16372, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16372, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16372, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16372, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16373, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16372, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MIN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16375, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16376, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16377, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16378, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16390, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16390, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16390, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_6update, "MIN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16392, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16392, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16392, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16392, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16392, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16393, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16392, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MIN_Update(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_8peek, "MIN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16400, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16400, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16400, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16400, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16400, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16401, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16400, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MIN_Peek(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MIN_Value(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MIN_OutRange(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MIN_Advance(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MIN_Stream_10copy, "MIN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MIN_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_self) { + TA_MIN_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MIN_Clone(((TA_MIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream))))) __PYX_ERR(3, 16428, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MININDEX_Close(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16452, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16452, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16452, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16452, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16452, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16452, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16452, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16452, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16452, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MININDEX_Stream *__pyx_v_handle; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16454, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16455, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16456, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16457, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MININDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outinteger)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MININDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MININDEX_Close(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill, "MININDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16468, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16468, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16468, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16468, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16469, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16468, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outinteger = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MININDEX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + npy_intp __pyx_v_i; + int *__pyx_v_outinteger_data; + struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + npy_intp __pyx_t_5; + npy_intp __pyx_t_6; + npy_intp __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16471, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16472, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16473, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16474, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MININDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_5 = __pyx_t_2; + + for (__pyx_t_6 = __pyx_v_lookback; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + + __pyx_t_7 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_7]) = ((__pyx_v_outinteger_data[__pyx_t_7]) + __pyx_v_begidx); + } + + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16490, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 16490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16490, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(3, 16490, __pyx_L1_error); + __pyx_t_8 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_6update, "MININDEX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16492, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16492, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16492, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16492, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16492, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16493, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16492, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MININDEX_Update(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_8peek, "MININDEX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16500, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16500, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16500, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16500, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16500, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16501, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16500, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MININDEX_Peek(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MININDEX_Value(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MININDEX_OutRange(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MININDEX_Advance(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_10copy, "MININDEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_self) { + TA_MININDEX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MININDEX_Clone(((TA_MININDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream))))) __PYX_ERR(3, 16528, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MININDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MINMAX_Close(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16555, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16555, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16555, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16555, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16555, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16555, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16555, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16555, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16555, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MINMAX_Stream *__pyx_v_handle; + double __pyx_v_outmin; + double __pyx_v_outmax; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16557, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16558, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16559, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16560, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MINMAX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outmin), (&__pyx_v_outmax)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINMAX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MINMAX_Close(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill, "MINMAX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16572, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16572, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16572, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16572, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16572, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16572, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16572, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16573, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16572, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outmin = 0; + PyArrayObject *__pyx_v_outmax = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MINMAX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16575, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16576, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16577, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16578, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MINMAX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 16591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmin)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 16591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 16591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmax)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outmin); + __Pyx_XDECREF((PyObject *)__pyx_v_outmax); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_6update, "MINMAX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16593, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16593, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16593, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16593, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16593, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16594, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16593, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmin; + double __pyx_v_outmax; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MINMAX_Update(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmin), (&__pyx_v_outmax)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_8peek, "MINMAX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16602, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16602, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16602, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16602, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16602, __pyx_L3_error) + } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16603, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16602, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outmin; + double __pyx_v_outmax; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MINMAX_Peek(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outmin), (&__pyx_v_outmax)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16608, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { + double __pyx_v_outmin; + double __pyx_v_outmax; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_1 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_SMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Simple_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_MINMAX_Value(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outmin), (&__pyx_v_outmax)); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 71, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 71, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Exponential_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_WMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Weighted_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_1) { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 73, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 73, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Double_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_TEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Exponential_Moving_Averag) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 75, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TRIMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 75, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Triangular_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_KAMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Kaufman_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_MESA_Adaptive_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 78, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 78, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Triple_Generalized_Double_Expone) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Hull_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 80, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DISABLED); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 80, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_No_Moving_Average_identity) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DEFAULT); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_The_Function_s_Own_Default_Movin) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ZLEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Zero_Lag_Exponential_Moving_Aver) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 83, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 83, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_mstate_global->__pyx_kp_u_Wilder_s_Smoothed_Moving_Average) < (0)) __PYX_ERR(1, 70, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup, __pyx_t_1) < (0)) __PYX_ERR(1, 69, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + + __pyx_r = TA_MINMAX_OutRange(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MINMAX_Advance(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_10copy, "MINMAX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_self) { + TA_MINMAX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MINMAX_Clone(((TA_MINMAX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream))))) __PYX_ERR(3, 16632, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } goto __pyx_L0; + + + /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.MA_Type.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -6926,24 +227547,254 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, +static void __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MINMAXINDEX_Close(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16659, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16659, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16659, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16659, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16659, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16659, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16659, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MINMAXINDEX_Stream *__pyx_v_handle; + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16661, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16662, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16663, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16664, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MINMAXINDEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MINMAXINDEX_Close(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_7MA_Type_2__getitem__, "MA_Type.__getitem__(self, type_)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__ = {"__getitem__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_7MA_Type_2__getitem__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill, "MINMAXINDEX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_type_ = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -6954,7 +227805,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -6964,76 +227815,436 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_type,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 86, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16676, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 86, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 86, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__getitem__", 0) < (0)) __PYX_ERR(1, 86, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, i); __PYX_ERR(1, 86, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16676, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16676, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16676, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16676, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16677, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16676, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outminidx = 0; + PyArrayObject *__pyx_v_outmaxidx = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MINMAXINDEX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + npy_intp __pyx_v_i; + int *__pyx_v_outminidx_data; + int *__pyx_v_outmaxidx_data; + struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + npy_intp __pyx_t_5; + npy_intp __pyx_t_6; + npy_intp __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + size_t __pyx_t_13; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16679, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16680, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16681, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16682, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MINMAXINDEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_5 = __pyx_t_2; + + for (__pyx_t_6 = __pyx_v_lookback; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + + __pyx_t_7 = __pyx_v_i; + (__pyx_v_outminidx_data[__pyx_t_7]) = ((__pyx_v_outminidx_data[__pyx_t_7]) + __pyx_v_begidx); + } + + + __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); + + + __pyx_t_2 = __pyx_v_length; + __pyx_t_5 = __pyx_t_2; + + for (__pyx_t_6 = __pyx_v_lookback; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + + __pyx_t_7 = __pyx_v_i; + (__pyx_v_outmaxidx_data[__pyx_t_7]) = ((__pyx_v_outmaxidx_data[__pyx_t_7]) + __pyx_v_begidx); + } + + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_8 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 16702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); + __pyx_t_11 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_10), ((PyObject *)__pyx_v_outminidx)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 16702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 16702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); + __pyx_t_12 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_10), ((PyObject *)__pyx_v_outmaxidx)); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 16702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_13 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); + assert(__pyx_t_8); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); + __pyx_t_13 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_11, __pyx_t_12}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); + __pyx_t_1 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_9; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_9 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); + __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update, "MINMAXINDEX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16704, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16704, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16704, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16704, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 86, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 86, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16704, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_type_ = values[1]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16705, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__getitem__", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 86, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16704, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MA_Type.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(__pyx_self, __pyx_v_self, __pyx_v_type_); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_type_) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__getitem__", 0); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_type_); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_MINMAXINDEX_Update(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { @@ -7048,11 +228259,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.MA_Type.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -7060,23 +228277,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_6_ta_func_unst_id, "_ta_func_unst_id(name)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id = {"_ta_func_unst_id", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6_ta_func_unst_id}; -static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_func_unst_id(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek, "MINMAXINDEX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_name = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -7087,7 +228303,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_func_unst_id (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -7097,228 +228313,309 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 135, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_func_unst_id", 0) < (0)) __PYX_ERR(1, 135, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, i); __PYX_ERR(1, 135, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16713, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 135, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16713, __pyx_L3_error) } - __pyx_v_name = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16714, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_func_unst_id", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 135, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_func_unst_id", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(__pyx_self, __pyx_v_name); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_func_unst_id(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, double __pyx_v_real) { + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8[4]; - Py_ssize_t __pyx_t_9; - int __pyx_t_10; - size_t __pyx_t_11; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_func_unst_id", 0); + __Pyx_RefNannySetupContext("peek", 0); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 136, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_name, __pyx_t_1, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 136, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_v_retCode = TA_MINMAXINDEX_Peek(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warnings); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_1) { - __pyx_t_4 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_7), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8[0] = __pyx_mstate_global->__pyx_kp_u_unstable_period; - __pyx_t_8[1] = __pyx_t_4; - __pyx_t_8[2] = __pyx_mstate_global->__pyx_kp_u_is_deprecated_and_has_no_effect; - __pyx_t_8[3] = __pyx_t_6; - __pyx_t_9 = 52; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_9 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_8[3]); - #endif - __pyx_t_10 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 |= __Pyx_PyUnicode_KIND_04(__pyx_t_8[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_8[3]); - #endif - __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_8, 4, __pyx_t_9, __pyx_t_10); - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_11 = 0; - } - #endif + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_7, ((PyObject *)(((PyTypeObject*)PyExc_DeprecationWarning))), __pyx_mstate_global->__pyx_int_3}; - #if CYTHON_VECTORCALL - __pyx_t_6 = __pyx_mstate_global->__pyx_tuple[0]; - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 137, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_6); - #else - { - PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_stacklevel}; - __pyx_t_6 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+3, 1); - if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - #endif - __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_11, (3-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MINMAXINDEX_Value(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - } - __Pyx_XDECREF(__pyx_temp); + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; } - goto __pyx_L0; + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MINMAXINDEX_OutRange(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - } - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; - } - __Pyx_XDECREF(__pyx_temp); + + __pyx_r = TA_MINMAXINDEX_Advance(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle)); } - __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("talib._ta_lib._ta_func_unst_id", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8_ta_set_unstable_period, "_ta_set_unstable_period(name, period)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period = {"_ta_set_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8_ta_set_unstable_period}; -static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_set_unstable_period(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy, "MINMAXINDEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_name = 0; - PyObject *__pyx_v_period = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_set_unstable_period (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -7327,147 +228624,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,&__pyx_mstate_global->__pyx_n_u_period,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 144, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_unstable_period", 0) < (0)) __PYX_ERR(1, 144, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, i); __PYX_ERR(1, 144, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 144, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 144, __pyx_L3_error) - } - __pyx_v_name = values[0]; - __pyx_v_period = values[1]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_unstable_period", 1, 2, 2, __pyx_nargs); __PYX_ERR(1, 144, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib._ta_set_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(__pyx_self, __pyx_v_name, __pyx_v_period); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_v_self)); /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_period) { - TA_RetCode __pyx_v_ret_code; - TA_FuncUnstId __pyx_v_id; - PyObject *__pyx_v_unst_id = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_self) { + TA_MINMAXINDEX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; int __pyx_t_5; - TA_FuncUnstId __pyx_t_6; - unsigned int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_set_unstable_period", 0); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_unst_id = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_5 = (__pyx_v_unst_id == Py_None); - if (__pyx_t_5) { + __pyx_v_retCode = TA_MINMAXINDEX_Clone(((TA_MINMAXINDEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_t_1 = (__pyx_v_retCode != 0); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 150, __pyx_L1_error) - __pyx_v_id = __pyx_t_6; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream))))) __PYX_ERR(3, 16743, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_7 = __Pyx_PyLong_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_7 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(1, 151, __pyx_L1_error) - __pyx_v_ret_code = TA_SetUnstablePeriod(__pyx_v_id, __pyx_t_7); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib._ta_set_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_unst_id); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -7475,216 +228715,301 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_set_unstable_period(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MINUS_DI_Close(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10_ta_get_unstable_period, "_ta_get_unstable_period(name)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period = {"_ta_get_unstable_period", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10_ta_get_unstable_period}; -static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_get_unstable_period(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_name = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_get_unstable_period (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_name,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 154, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16767, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 154, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_get_unstable_period", 0) < (0)) __PYX_ERR(1, 154, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, i); __PYX_ERR(1, 154, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16767, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 16767, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 154, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16767, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16767, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16767, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16767, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16767, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_name = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_get_unstable_period", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 154, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_get_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(__pyx_self, __pyx_v_name); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_get_unstable_period(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name) { - unsigned int __pyx_v_period; - TA_FuncUnstId __pyx_v_id; - PyObject *__pyx_v_unst_id = NULL; - PyObject *__pyx_r = NULL; +static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MINUS_DI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - int __pyx_t_5; - TA_FuncUnstId __pyx_t_6; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_get_unstable_period", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_name}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_unst_id = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = (__pyx_v_unst_id == Py_None); - if (__pyx_t_5) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_r = __pyx_mstate_global->__pyx_int_0; - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16772, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16773, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16774, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MINUS_DI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINUS_DI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_6 = __Pyx_PyLong_As_TA_FuncUnstId(__pyx_v_unst_id); if (unlikely((__pyx_t_6 == ((TA_FuncUnstId)-1)) && PyErr_Occurred())) __PYX_ERR(1, 160, __pyx_L1_error) - __pyx_v_id = __pyx_t_6; + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_v_period = TA_GetUnstablePeriod(__pyx_v_id); + if (__pyx_t_4) { + + + (void)(TA_MINUS_DI_Close(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_t_1 = __Pyx_PyLong_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib._ta_get_unstable_period", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + - __Pyx_XDECREF(__pyx_v_unst_id); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12_ta_set_compatibility, "_ta_set_compatibility(value)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility = {"_ta_set_compatibility", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12_ta_set_compatibility}; -static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_set_compatibility(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill, "MINUS_DI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_set_compatibility (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -7694,120 +229019,203 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_value,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 164, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16785, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16785, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 164, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16785, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_compatibility", 0) < (0)) __PYX_ERR(1, 164, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, i); __PYX_ERR(1, 164, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16785, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 16785, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 164, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16785, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16785, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16785, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16785, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16786, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_value = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_compatibility", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 164, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16785, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_set_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(__pyx_self, __pyx_v_value); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_set_compatibility(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_value) { - TA_RetCode __pyx_v_ret_code; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_MINUS_DI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_Compatibility __pyx_t_1; - PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_set_compatibility", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = __Pyx_PyLong_As_TA_Compatibility(__pyx_v_value); if (unlikely((__pyx_t_1 == ((TA_Compatibility)-1)) && PyErr_Occurred())) __PYX_ERR(1, 166, __pyx_L1_error) - __pyx_v_ret_code = TA_SetCompatibility(__pyx_t_1); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16790, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16790, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16790, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib._ta_set_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16791, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16792, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16793, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility, "_ta_get_compatibility()"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility = {"_ta_get_compatibility", (PyCFunction)__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_14_ta_get_compatibility}; -static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_get_compatibility (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(__pyx_self); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; -static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED PyObject *__pyx_self) { - int __pyx_v_value; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_get_compatibility", 0); + __pyx_v_handle = NULL; - __pyx_v_value = TA_GetCompatibility(); + __pyx_v_retCode = TA_MINUS_DI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -7823,10 +229231,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib._ta_get_compatibility", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -7834,37 +229256,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_get_compatibility(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings, "_ta_set_candle_settings(settingtype, rangetype, avgperiod, factor)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings = {"_ta_set_candle_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16_ta_set_candle_settings}; -static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_set_candle_settings(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_6update, "MINUS_DI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_settingtype = 0; - PyObject *__pyx_v_rangetype = 0; - PyObject *__pyx_v_avgperiod = 0; - PyObject *__pyx_v_factor = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_set_candle_settings (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -7874,113 +229294,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,&__pyx_mstate_global->__pyx_n_u_rangetype,&__pyx_mstate_global->__pyx_n_u_avgperiod,&__pyx_mstate_global->__pyx_n_u_factor,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 186, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16807, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 186, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_set_candle_settings", 0) < (0)) __PYX_ERR(1, 186, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, i); __PYX_ERR(1, 186, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16807, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 16807, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16807, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(1, 186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16807, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(1, 186, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(1, 186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16807, __pyx_L3_error) } - __pyx_v_settingtype = values[0]; - __pyx_v_rangetype = values[1]; - __pyx_v_avgperiod = values[2]; - __pyx_v_factor = values[3]; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16808, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16808, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16808, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_set_candle_settings", 1, 4, 4, __pyx_nargs); __PYX_ERR(1, 186, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16807, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_set_candle_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(__pyx_self, __pyx_v_settingtype, __pyx_v_rangetype, __pyx_v_avgperiod, __pyx_v_factor); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype, PyObject *__pyx_v_rangetype, PyObject *__pyx_v_avgperiod, PyObject *__pyx_v_factor) { - TA_RetCode __pyx_v_ret_code; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_CandleSettingType __pyx_t_1; - TA_RangeType __pyx_t_2; - int __pyx_t_3; - double __pyx_t_4; - PyObject *__pyx_t_5 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_set_candle_settings", 0); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 188, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_As_TA_RangeType(__pyx_v_rangetype); if (unlikely((__pyx_t_2 == ((TA_RangeType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 188, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyLong_As_int(__pyx_v_avgperiod); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 188, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyFloat_AsDouble(__pyx_v_factor); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 188, __pyx_L1_error) - __pyx_v_ret_code = TA_SetCandleSettings(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4); + __pyx_v_retCode = TA_MINUS_DI_Update(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib._ta_set_candle_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -7988,34 +229413,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_set_candle_settings(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings, "_ta_restore_candle_default_settings(settingtype)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings = {"_ta_restore_candle_default_settings", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18_ta_restore_candle_default_settings}; -static PyObject *__pyx_pw_5talib_7_ta_lib_19_ta_restore_candle_default_settings(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_8peek, "MINUS_DI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_settingtype = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -8025,849 +229451,624 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_settingtype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(1, 191, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16815, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16815, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16815, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 191, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_restore_candle_default_settings", 0) < (0)) __PYX_ERR(1, 191, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, i); __PYX_ERR(1, 191, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16815, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 16815, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(1, 191, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16815, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16815, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16815, __pyx_L3_error) } - __pyx_v_settingtype = values[0]; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16816, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16816, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16816, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_restore_candle_default_settings", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 191, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16815, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_restore_candle_default_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(__pyx_self, __pyx_v_settingtype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_18_ta_restore_candle_default_settings(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_settingtype) { - TA_RetCode __pyx_v_ret_code; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - TA_CandleSettingType __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings", 0); - - __pyx_t_1 = __Pyx_PyLong_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(1, 193, __pyx_L1_error) - __pyx_v_ret_code = TA_RestoreCandleDefaultSettings(__pyx_t_1); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 194, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib._ta_restore_candle_default_settings", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } - -static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *__pyx_v_real) { - PyArrayObject *__pyx_r = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("check_array", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = (PyArray_TYPE(__pyx_v_real) != NPY_DOUBLE); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_type_is_not_double}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 22, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 22, __pyx_L1_error) - - } - - __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim___get__(__pyx_v_real) != 1); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_has_wrong_dimensions}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 24, __pyx_L1_error) + __Pyx_RefNannySetupContext("peek", 0); - } + __pyx_v_retCode = TA_MINUS_DI_Peek(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_t_1 = (!((PyArray_FLAGS(__pyx_v_real) & NPY_ARRAY_C_CONTIGUOUS) != 0)); + __pyx_t_1 = (__pyx_v_retCode != 0); if (__pyx_t_1) { - __pyx_t_2 = ((PyObject *)PyArray_GETCONTIGUOUS(__pyx_v_real)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 26, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_2)); - __pyx_t_2 = 0; - - } - - { - PyArrayObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_r = __pyx_v_real; - } - __Pyx_XDECREF((PyObject *)__pyx_temp); - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.check_array", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2) { - npy_intp __pyx_v_length; - npy_intp __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("check_length2", 0); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a1)[0]); - - __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a2)[0])); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 34, __pyx_L1_error) - - } - - { - - __pyx_r = __pyx_v_length; - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.check_length2", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1L; - __pyx_L0:; - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3) { - npy_intp __pyx_v_length; - npy_intp __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("check_length3", 0); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a1)[0]); - - __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a2)[0])); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 42, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 42, __pyx_L1_error) - - } - - __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a3)[0])); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 44, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 44, __pyx_L1_error) - - } - - { - - __pyx_r = __pyx_v_length; - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.check_length3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1L; - __pyx_L0:; - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3, PyArrayObject *__pyx_v_a4) { - npy_intp __pyx_v_length; - npy_intp __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("check_length4", 0); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a1)[0]); - - __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a2)[0])); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 52, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 52, __pyx_L1_error) - - } - - __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a3)[0])); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 54, __pyx_L1_error) - - } - - __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_a4)[0])); - - if (unlikely(__pyx_t_1)) { - - - __pyx_t_3 = NULL; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_input_array_lengths_are_differen}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 56, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(4, 56, __pyx_L1_error) } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - - __pyx_r = __pyx_v_length; - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.check_length4", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1L; - __pyx_L0:; - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp __pyx_v_length, double *__pyx_v_a1) { - double __pyx_v_val; - long __pyx_v_i; - npy_int __pyx_r; - npy_intp __pyx_t_1; - int __pyx_t_2; - - __pyx_t_1 = __pyx_v_length; - - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { - - __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); - - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); - - if (__pyx_t_2) { - - - goto __pyx_L3_continue; - - } - - { - - __pyx_r = __pyx_v_i; - } - goto __pyx_L0; - __pyx_L3_continue:; - } - /*else*/ { - - { - - __pyx_r = (__pyx_v_length - 1); - } - goto __pyx_L0; - } - - - - /* function exit code */ - __pyx_L0:; - - - - return __pyx_r; -} - - -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2) { - double __pyx_v_val; - long __pyx_v_i; - npy_int __pyx_r; - npy_intp __pyx_t_1; - int __pyx_t_2; - - __pyx_t_1 = __pyx_v_length; - - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { - - __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); - - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); - - if (__pyx_t_2) { - - - goto __pyx_L3_continue; - - } - - __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); - - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); - - if (__pyx_t_2) { - - - goto __pyx_L3_continue; - - } - - { - - __pyx_r = __pyx_v_i; - } - goto __pyx_L0; - __pyx_L3_continue:; - } - /*else*/ { - + PyObject *__pyx_temp; { - - __pyx_r = (__pyx_v_length - 1); - } - goto __pyx_L0; - } - - - - /* function exit code */ - __pyx_L0:; - - - - return __pyx_r; -} - - -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3) { - double __pyx_v_val; - long __pyx_v_i; - npy_int __pyx_r; - npy_intp __pyx_t_1; - int __pyx_t_2; - - __pyx_t_1 = __pyx_v_length; - - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { - - __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); - - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); - - if (__pyx_t_2) { - - - goto __pyx_L3_continue; - + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - if (__pyx_t_2) { + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - goto __pyx_L3_continue; - } +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); - __pyx_v_val = (__pyx_v_a3[__pyx_v_i]); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); - if (__pyx_t_2) { + __pyx_v_retCode = TA_MINUS_DI_Value(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); - goto __pyx_L3_continue; + if (__pyx_t_1) { - } - { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_r = __pyx_v_i; - } - goto __pyx_L0; - __pyx_L3_continue:; } - /*else*/ { + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; { - - __pyx_r = (__pyx_v_length - 1); + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; } - goto __pyx_L0; + __Pyx_XDECREF(__pyx_temp); } - + __pyx_t_2 = 0; + goto __pyx_L0; /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; - + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3, double *__pyx_v_a4) { - double __pyx_v_val; - long __pyx_v_i; - npy_int __pyx_r; - npy_intp __pyx_t_1; - int __pyx_t_2; - - __pyx_t_1 = __pyx_v_length; +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + { - __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + __pyx_r = TA_MINUS_DI_OutRange(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); - if (__pyx_t_2) { + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} - goto __pyx_L3_continue; - } +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; - __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); + { - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + __pyx_r = TA_MINUS_DI_Advance(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; - if (__pyx_t_2) { + /* function exit code */ + __pyx_L0:; - goto __pyx_L3_continue; + return __pyx_r; +} - } - __pyx_v_val = (__pyx_v_a3[__pyx_v_i]); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_10copy, "MINUS_DI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_v_self)); - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - if (__pyx_t_2) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_self) { + TA_MINUS_DI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + __pyx_v_clone = NULL; - goto __pyx_L3_continue; + __pyx_v_retCode = TA_MINUS_DI_Clone(((TA_MINUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - } + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_val = (__pyx_v_a4[__pyx_v_i]); + if (__pyx_t_1) { - __pyx_t_2 = (__pyx_v_val != __pyx_v_val); - if (__pyx_t_2) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } - goto __pyx_L3_continue; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream))))) __PYX_ERR(3, 16843, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - } + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - { + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_r = __pyx_v_i; - } - goto __pyx_L0; - __pyx_L3_continue:; - } - /*else*/ { + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + { + PyObject *__pyx_temp; { - - __pyx_r = (__pyx_v_length - 1); + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } - goto __pyx_L0; + __Pyx_XDECREF(__pyx_temp); } - + goto __pyx_L0; /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; - + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v_length, int __pyx_v_lookback) { - PyArrayObject *__pyx_v_outreal = 0; - double *__pyx_v_outreal_data; - long __pyx_v_i; - PyArrayObject *__pyx_r = NULL; +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_t_3; - npy_intp __pyx_t_4; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("make_double_array", 0); + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); - __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_DOUBLE, NPY_ARRAY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 125, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} - __pyx_v_outreal_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)); +static void __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_2 = __pyx_v_length; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_v_lookback; - __pyx_t_5 = (__pyx_t_2 < __pyx_t_3); - if (__pyx_t_5) { + (void)(TA_MINUS_DM_Close(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_t_4 = __pyx_t_2; - } else { + __pyx_v_self->__pyx_base._handle = NULL; - __pyx_t_4 = __pyx_t_3; } - __pyx_t_2 = __pyx_t_4; - - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + /* function exit code */ - (__pyx_v_outreal_data[__pyx_v_i]) = __pyx_v_5talib_7_ta_lib_NaN; - } +} +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyArrayObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = __pyx_v_outreal; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16867, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16867, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16867, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16867, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16867, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16867, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16867, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16867, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16867, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16867, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __Pyx_XDECREF((PyObject *)__pyx_temp); } - goto __pyx_L0; - + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16867, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.make_double_array", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } - __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } - -static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_length, int __pyx_v_lookback) { - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - long __pyx_v_i; - PyArrayObject *__pyx_r = NULL; +static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_MINUS_DM_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; int __pyx_t_3; - npy_intp __pyx_t_4; - int __pyx_t_5; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("make_int_array", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_INT32, NPY_ARRAY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 135, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16870, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16870, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_length; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16871, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_v_lookback; - __pyx_t_5 = (__pyx_t_2 < __pyx_t_3); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16872, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - if (__pyx_t_5) { + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16873, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_4 = __pyx_t_2; - } else { + __pyx_v_handle = NULL; - __pyx_t_4 = __pyx_t_3; - } + __pyx_v_retCode = TA_MINUS_DM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_2 = __pyx_t_4; + __pyx_t_4 = (__pyx_v_retCode != 0); + if (__pyx_t_4) { - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { - (__pyx_v_outinteger_data[__pyx_v_i]) = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINUS_DM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MINUS_DM_Close(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); - { - PyArrayObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = __pyx_v_outinteger; - } - __Pyx_XDECREF((PyObject *)__pyx_temp); } - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.make_int_array", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + - __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_20AC, "AC(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_21AC = {"AC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21AC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20AC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_21AC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill, "MINUS_DM_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AC (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -8877,197 +230078,216 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 142, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16884, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AC", 0) < (0)) __PYX_ERR(4, 142, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16884, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AC", 0, 2, 5, i); __PYX_ERR(4, 142, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16884, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 142, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16884, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16884, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16885, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AC", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 142, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16884, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_20AC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_MINUS_DM_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 165, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16888, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16888, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 167, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16889, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 168, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16890, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16891, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 171, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_AC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MINUS_DM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 173, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -9075,37 +230295,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_sel /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_23ACCBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_22ACCBANDS, "ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_23ACCBANDS = {"ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22ACCBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_23ACCBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_6update, "MINUS_DM_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ACCBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9115,196 +230332,703 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 176, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16905, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 176, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 176, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16905, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16905, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACCBANDS", 0) < (0)) __PYX_ERR(4, 176, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, i); __PYX_ERR(4, 176, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16905, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16905, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16905, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16905, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16906, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16906, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16905, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_MINUS_DM_Update(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_8peek, "MINUS_DM_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16913, __pyx_L3_error) + if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 176, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 176, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 176, __pyx_L3_error) - break; + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; default: goto __pyx_L5_argtuple_error; } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 178, __pyx_L3_error) + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16913, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16913, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16913, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16913, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16914, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16914, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 176, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16913, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 178, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 178, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 178, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_22ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MINUS_DM_Peek(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MINUS_DM_Value(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MINUS_DM_OutRange(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MINUS_DM_Advance(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_10copy, "MINUS_DM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_v_self)); /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_self) { + TA_MINUS_DM_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_MINUS_DM_Clone(((TA_MINUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream))))) __PYX_ERR(3, 16941, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } goto __pyx_L0; + + + /* function exit code */ __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MINUS_DM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10MOM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10MOM_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10MOM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_MOM_Close(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16965, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16965, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16965, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16965, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16965, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16965, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16965, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_MOM_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ACCBANDS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 202, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 203, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16967, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 204, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16968, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 205, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16969, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16970, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_MOM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_4) { - __pyx_v_retCode = TA_ACCBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 212, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MOM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MOM_Close(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 213, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 213, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 213, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -9312,47 +231036,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_24ACOS, "ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_25ACOS = {"ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24ACOS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_25ACOS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_4open_and_fill, "MOM_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MOM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ACOS (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9362,135 +231080,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 215, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16981, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16981, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16981, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACOS", 0) < (0)) __PYX_ERR(4, 215, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16981, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, i); __PYX_ERR(4, 215, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16981, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 215, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16981, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16981, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16982, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 215, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16981, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 217, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_24ACOS(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_MOM_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ACOS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 234, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16984, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 236, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16985, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16986, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16987, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 239, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_ACOS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MOM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16999, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16999, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16999, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -9498,37 +231277,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_26AD, "AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_27AD = {"AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_27AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26AD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_27AD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_6update, "MOM_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AD (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9538,182 +231313,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 244, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17001, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 244, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 244, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 244, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AD", 0) < (0)) __PYX_ERR(4, 244, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, i); __PYX_ERR(4, 244, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17001, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17001, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 244, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 244, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 244, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17001, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17002, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 244, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17001, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 246, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 246, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 246, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 246, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_26AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 264, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 267, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 268, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_MOM_Update(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 271, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_AD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -9721,35 +231416,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_sel /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_28ADD, "ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_29ADD = {"ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_29ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_28ADD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_29ADD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_8peek, "MOM_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ADD (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9759,192 +231452,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 276, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17009, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 276, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADD", 0) < (0)) __PYX_ERR(4, 276, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, i); __PYX_ERR(4, 276, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17009, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17009, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 276, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17009, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17010, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 276, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17009, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 278, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 278, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ADD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_MOM_Peek(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 298, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 299, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_ADD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_MOM_Value(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + __pyx_r = TA_MOM_OutRange(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10MOM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MOM_Advance(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_30ADOSC, "ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_31ADOSC = {"ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_31ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_30ADOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_31ADOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10MOM_Stream_10copy, "MOM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10MOM_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ADOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -9953,190 +231687,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 307, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADOSC", 0) < (0)) __PYX_ERR(4, 307, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, i); __PYX_ERR(4, 307, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 307, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 307, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 307, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 307, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 307, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 309, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 309, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(4, 307, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 309, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 309, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 309, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 309, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_self) { + TA_MOM_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ADOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 329, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 330, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_MOM_Clone(((TA_MOM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 331, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 333, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 334, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream))))) __PYX_ERR(3, 17037, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_ADOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 339, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -10145,221 +231763,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MOM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11MULT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11MULT_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11MULT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; + (void)(TA_MULT_Close(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_32ADR, "ADR(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_33ADR = {"ADR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_33ADR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_32ADR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_33ADR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ADR (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 342, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17060, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 342, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 342, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17060, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 342, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17060, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADR", 0) < (0)) __PYX_ERR(4, 342, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17060, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, i); __PYX_ERR(4, 342, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 342, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 342, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 342, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17060, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 344, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17060, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17060, __pyx_L3_error) } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 342, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17060, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 344, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 344, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_32ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_MULT_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ADR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 363, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17063, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17063, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 365, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17064, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 366, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17065, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17066, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ADR_Lookback(__pyx_v_timeperiod)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_MULT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_ADR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MULT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_MULT_Close(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); @@ -10367,47 +232000,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_34ADX, "ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_35ADX = {"ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_35ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_34ADX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_35ADX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_4open_and_fill, "MULT_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MULT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ADX (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10417,184 +232044,199 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 374, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17077, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17077, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17077, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADX", 0) < (0)) __PYX_ERR(4, 374, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, i); __PYX_ERR(4, 374, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 374, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 374, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 374, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 374, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17077, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17077, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 376, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17077, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17077, __pyx_L3_error) } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 374, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17077, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 376, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 376, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 376, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_34ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_MULT_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ADX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 396, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 397, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17081, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17081, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 398, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17082, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17083, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17084, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_MULT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 404, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MULT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -10602,37 +232244,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_36ADXR, "ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_37ADXR = {"ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_37ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_36ADXR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_37ADXR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_6update, "MULT_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ADXR (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10642,184 +232281,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 407, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17098, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 407, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 407, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADXR", 0) < (0)) __PYX_ERR(4, 407, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, i); __PYX_ERR(4, 407, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 407, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 407, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 407, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 407, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17098, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17098, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 409, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17098, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17098, __pyx_L3_error) } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17099, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17099, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 407, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17098, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 409, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 409, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 409, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_36ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ADXR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 431, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 432, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_MULT_Update(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -10827,37 +232392,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_38AO, "AO(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_39AO = {"AO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_39AO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_38AO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_39AO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_8peek, "MULT_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AO (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -10867,221 +232429,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 440, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17106, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 440, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 440, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17106, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17106, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AO", 0) < (0)) __PYX_ERR(4, 440, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17106, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, i); __PYX_ERR(4, 440, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 440, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 440, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 440, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 440, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17106, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 442, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 442, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17106, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17106, __pyx_L3_error) } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17107, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17107, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 440, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17106, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 442, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 442, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_38AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_MULT_Peek(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 464, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 465, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_MULT_Value(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_AO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_MULT_OutRange(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11MULT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_MULT_Advance(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_40APO, "APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_41APO = {"APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_41APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_40APO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_41APO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11MULT_Stream_10copy, "MULT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11MULT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("APO (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11090,160 +232672,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 473, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 473, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 473, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 473, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 473, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(4, 473, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(4, 473, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 473, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 473, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 473, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 473, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)1)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 473, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 475, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_40APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_self) { + TA_MULT_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("APO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_MULT_Clone(((TA_MULT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 498, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream))))) __PYX_ERR(3, 17134, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -11252,232 +232748,272 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.MULT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11NATR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11NATR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11NATR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_NATR_Close(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_42AROON, "AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_43AROON = {"AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_43AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_42AROON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_43AROON(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AROON (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 506, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17158, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17158, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 506, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 506, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 506, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(4, 506, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(4, 506, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17158, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 17158, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 506, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17158, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 506, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 506, __pyx_L3_error) + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17158, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17158, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17158, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 508, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17158, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 506, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17158, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 508, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 508, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_42AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_NATR_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outaroondown = 0; - PyArrayObject *__pyx_v_outaroonup = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AROON", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 529, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 530, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 531, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17163, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 532, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17164, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17165, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_NATR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 538, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outaroondown); - __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(4, 539, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outaroonup); - __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(4, 539, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_NATR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_NATR_Close(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); @@ -11485,47 +233021,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outaroondown); - __Pyx_XDECREF((PyObject *)__pyx_v_outaroonup); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_44AROONOSC, "AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_45AROONOSC = {"AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_45AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_44AROONOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_45AROONOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_4open_and_fill, "NATR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11NATR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AROONOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11535,169 +233067,236 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 541, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17176, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17176, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(4, 541, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(4, 541, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17176, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 17176, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17176, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 541, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17176, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17176, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17176, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 543, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17177, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 541, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17176, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 543, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 543, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_44AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_NATR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AROONOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 562, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 563, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17181, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17181, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17181, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 564, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17182, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 565, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17183, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17184, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 568, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_NATR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 570, __pyx_L1_error) + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -11705,34 +233304,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_46ASIN, "ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_47ASIN = {"ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_47ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_46ASIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_47ASIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_6update, "NATR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ASIN (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11742,135 +233342,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 573, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17198, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17198, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17198, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 573, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17198, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(4, 573, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(4, 573, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17198, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 17198, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 573, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17198, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17198, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17198, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17199, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17199, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17199, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 573, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17198, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 575, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_46ASIN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ASIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 592, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 594, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_NATR_Update(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 597, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -11878,34 +233461,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_48ATAN, "ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_49ATAN = {"ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_49ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_48ATAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_49ATAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_8peek, "NATR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ATAN (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -11915,135 +233499,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 602, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17206, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17206, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17206, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(4, 602, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(4, 602, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17206, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 17206, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17206, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17206, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17206, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17207, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17207, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17207, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 602, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17206, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 604, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_48ATAN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ATAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 621, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 623, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_NATR_Peek(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -12051,260 +233618,130 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_50ATR, "ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_51ATR = {"ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_51ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_50ATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_51ATR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ATR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 631, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 631, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 631, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 631, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 631, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(4, 631, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(4, 631, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 631, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 631, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 631, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 631, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 633, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 631, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 633, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 633, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 633, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_50ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ATR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 653, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 655, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 656, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_NATR_Value(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 661, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_NATR_OutRange(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11NATR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_NATR_Advance(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_52AVGDEV, "AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_53AVGDEV = {"AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_53AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_52AVGDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_53AVGDEV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11NATR_Stream_10copy, "NATR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11NATR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AVGDEV (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12313,132 +233750,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 664, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 664, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 664, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(4, 664, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(4, 664, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 664, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 664, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 666, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 664, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 666, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_52AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_self) { + TA_NATR_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AVGDEV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_NATR_Clone(((TA_NATR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 687, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream))))) __PYX_ERR(3, 17234, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -12447,230 +233826,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.NATR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10NVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10NVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10NVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_NVI_Close(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_54AVGPRICE, "AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_55AVGPRICE = {"AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_55AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_54AVGPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_55AVGPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("AVGPRICE (wrapper)", 0); - #if !CYTHON_VECTORCALL + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 695, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17256, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 695, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 695, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 695, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 695, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(4, 695, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(4, 695, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17256, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17256, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 695, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 695, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 695, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 695, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17256, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17256, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 695, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17256, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 697, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 697, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 697, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 697, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_54AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_NVI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("AVGPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 715, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 716, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 717, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17259, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17259, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 718, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17260, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 719, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17261, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17262, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_NVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_NVI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_NVI_Close(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -12678,50 +234063,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_56BBANDS, "BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_57BBANDS = {"BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_57BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_56BBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_57BBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_4open_and_fill, "NVI_Stream.open_and_fill(close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10NVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12731,190 +234107,167 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 727, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17273, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 727, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17273, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17273, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(4, 727, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(4, 727, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 727, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 727, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17273, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17273, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) - } else { - __pyx_v_nbdevup = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) - } else { - __pyx_v_nbdevdn = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 729, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17273, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17273, __pyx_L3_error) } + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 727, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17273, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 729, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_56BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; + TA_NVI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("BBANDS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 755, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17277, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17277, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17278, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17279, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17280, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 761, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 762, __pyx_L1_error) + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_NVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 764, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 765, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 765, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -12930,20 +234283,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -12951,36 +234307,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_58BETA, "BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_59BETA = {"BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_59BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_58BETA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_59BETA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_6update, "NVI_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BETA (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -12990,169 +234344,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 767, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17294, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 767, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17294, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17294, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(4, 767, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17294, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(4, 767, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 767, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 767, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 767, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17294, __pyx_L3_error) } } - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 769, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17294, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17294, __pyx_L3_error) } + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17295, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17295, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 767, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17294, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 769, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_58BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("BETA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 791, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 792, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_NVI_Update(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -13160,37 +234455,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_60BOP, "BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_61BOP = {"BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_61BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_60BOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_61BOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_8peek, "NVI_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("BOP (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13200,220 +234492,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 800, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17302, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 800, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 800, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(4, 800, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(4, 800, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17302, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17302, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17302, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 800, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 800, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17302, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17303, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17303, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 800, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17302, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 802, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 802, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 802, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 802, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_60BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("BOP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 819, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_NVI_Peek(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 820, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 822, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 823, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 824, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 829, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_NVI_Value(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_NVI_OutRange(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10NVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_NVI_Advance(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_62CCI, "CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_63CCI = {"CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_63CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_62CCI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_63CCI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10NVI_Stream_10copy, "NVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10NVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CCI (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13422,162 +234735,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 832, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 832, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 832, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 832, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 832, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(4, 832, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(4, 832, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 832, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 832, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 832, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 832, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 834, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 832, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 834, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 834, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 834, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_62CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_self) { + TA_NVI_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CCI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 853, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 854, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_NVI_Clone(((TA_NVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 856, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 857, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream))))) __PYX_ERR(3, 17330, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 862, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -13586,232 +234811,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.NVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10OBV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10OBV_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10OBV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_OBV_Close(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_64CDL2CROWS, "CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_65CDL2CROWS = {"CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_65CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_64CDL2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL2CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL2CROWS (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 865, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17353, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 865, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 865, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 865, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 865, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(4, 865, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(4, 865, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17353, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17353, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 865, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 865, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 865, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 865, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17353, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17353, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 865, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17353, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 867, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_OBV_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL2CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 886, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 887, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17356, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17356, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 888, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17357, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 889, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17358, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17359, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_OBV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_OBV_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_OBV_Close(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle))); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -13819,49 +235048,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS, "CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS = {"CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_66CDL3BLACKCROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_67CDL3BLACKCROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_4open_and_fill, "OBV_Stream.open_and_fill(real, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10OBV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3BLACKCROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -13871,182 +235092,199 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 897, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17370, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 897, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 897, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17370, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17370, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(4, 897, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(4, 897, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17370, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17370, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17370, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 897, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 897, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17370, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 897, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17370, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 899, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_OBV_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3BLACKCROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 917, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 918, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17374, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17374, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 919, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17375, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17376, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17377, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 920, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 921, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_OBV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 924, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_OBV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 926, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -14054,37 +235292,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3INSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_6update, "OBV_Stream.update(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14094,182 +235329,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 929, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17391, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 929, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17391, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(4, 929, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(4, 929, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17391, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17391, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17391, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 929, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 929, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17391, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17392, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17392, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 929, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17391, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 931, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3INSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 949, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 950, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 952, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 953, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_OBV_Update(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -14277,37 +235440,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_8peek, "OBV_Stream.peek(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14317,220 +235477,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 961, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17399, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 961, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 961, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(4, 961, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(4, 961, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17399, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17399, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17399, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 961, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 961, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17399, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17400, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17400, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 961, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17399, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 963, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3LINESTRIKE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_OBV_Peek(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 982, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 983, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 984, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 985, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_OBV_Value(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_OBV_OutRange(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10OBV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_OBV_Advance(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE, "CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE = {"CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_72CDL3OUTSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_73CDL3OUTSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10OBV_Stream_10copy, "OBV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10OBV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3OUTSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14539,159 +235720,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 993, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(4, 993, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(4, 993, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 993, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 993, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 993, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 993, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 993, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 995, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_self) { + TA_OBV_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3OUTSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1013, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_OBV_Clone(((TA_OBV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1016, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1017, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream))))) __PYX_ERR(3, 17427, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1020, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -14700,233 +235796,251 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.OBV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; + (void)(TA_PERCENTILE_Close(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH, "CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH = {"CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_74CDL3STARSINSOUTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_75CDL3STARSINSOUTH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_percentile; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3STARSINSOUTH (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1025, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17452, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1025, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1025, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1025, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1025, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(4, 1025, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(4, 1025, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17452, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 17452, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1025, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1025, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1025, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1025, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17452, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17452, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17452, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17452, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17452, __pyx_L3_error) + } else { + __pyx_v_percentile = ((double)50.0); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1025, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 17452, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1027, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PERCENTILE_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3STARSINSOUTH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1046, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1047, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17454, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1048, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17455, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1049, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17456, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17457, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PERCENTILE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PERCENTILE_Close(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -14934,49 +236048,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS, "CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS = {"CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_76CDL3WHITESOLDIERS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_77CDL3WHITESOLDIERS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill, "PERCENTILE_Stream.open_and_fill(real, int timeperiod=-0x80000000, double percentile=50.0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_percentile; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -14986,182 +236093,210 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1057, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17468, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1057, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17468, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17468, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17468, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(4, 1057, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(4, 1057, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17468, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 17468, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1057, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1057, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1057, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1057, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17468, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17468, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17469, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17469, __pyx_L3_error) + } else { + __pyx_v_percentile = ((double)50.0); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1057, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 17468, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1059, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PERCENTILE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3WHITESOLDIERS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1077, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17471, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17472, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17473, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1079, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17474, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1080, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1081, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PERCENTILE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1084, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1086, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17486, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17486, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17486, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -15169,38 +236304,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY, "CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY = {"CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_78CDLABANDONEDBABY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLABANDONEDBABY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_6update, "PERCENTILE_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLABANDONEDBABY (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15210,199 +236340,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1089, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17488, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1089, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17488, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(4, 1089, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(4, 1089, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1089, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1089, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1089, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1089, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17488, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17488, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1091, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)((double)0.3)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17488, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17489, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1089, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17488, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1091, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLABANDONEDBABY", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1111, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1114, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1115, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PERCENTILE_Update(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -15410,37 +236443,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK, "CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK = {"CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_80CDLADVANCEBLOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLADVANCEBLOCK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_8peek, "PERCENTILE_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLADVANCEBLOCK (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15450,220 +236479,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1123, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17496, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1123, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1123, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1123, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17496, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(4, 1123, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(4, 1123, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17496, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17496, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1123, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1123, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1123, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17496, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17497, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1123, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17496, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1125, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLADVANCEBLOCK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PERCENTILE_Peek(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1146, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1147, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_PERCENTILE_Value(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_PERCENTILE_OutRange(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PERCENTILE_Advance(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_10copy, "PERCENTILE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -15672,159 +236714,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1155, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(4, 1155, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(4, 1155, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1155, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1155, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1155, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1155, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1155, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1157, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_self) { + TA_PERCENTILE_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PERCENTILE_Clone(((TA_PERCENTILE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1178, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1179, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream))))) __PYX_ERR(3, 17524, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -15833,233 +236790,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PERCENTILE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_PERCENTRANK_Close(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1187, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17548, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1187, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1187, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1187, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1187, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(4, 1187, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(4, 1187, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17548, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 17548, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1187, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1187, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1187, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1187, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17548, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17548, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17548, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17548, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1189, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PERCENTRANK_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1209, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17550, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1210, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17551, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1211, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17552, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17553, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PERCENTRANK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PERCENTRANK_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PERCENTRANK_Close(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle))); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -16067,49 +237027,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill, "PERCENTRANK_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16119,182 +237071,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1219, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17564, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1219, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1219, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(4, 1219, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(4, 1219, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17564, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 17564, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1219, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1219, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1219, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1219, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17564, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17564, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17565, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1219, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17564, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1221, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PERCENTRANK_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1238, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1239, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17567, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17568, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17569, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1241, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17570, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1242, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1243, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PERCENTRANK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1246, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1248, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17582, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17582, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17582, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -16302,37 +237268,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_6update, "PERCENTRANK_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16342,182 +237304,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1251, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17584, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1251, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1251, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1251, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(4, 1251, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(4, 1251, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17584, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17584, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1251, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1251, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1251, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17584, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17585, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1251, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17584, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1253, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1271, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1272, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1274, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1275, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PERCENTRANK_Update(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1280, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -16525,37 +237407,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek, "PERCENTRANK_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16565,221 +237443,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1283, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17592, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1283, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1283, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1283, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17592, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(4, 1283, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(4, 1283, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17592, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17592, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1283, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1283, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1283, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17592, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17593, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1283, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17592, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1285, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PERCENTRANK_Peek(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1306, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1307, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_PERCENTRANK_Value(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PERCENTRANK_OutRange(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + +static TA_RetCode __pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_PERCENTRANK_Advance(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); + /* function exit code */ + __pyx_L0:; + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy, "PERCENTRANK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -16788,176 +237678,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1315, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(4, 1315, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(4, 1315, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1315, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1315, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1315, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1315, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1317, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1315, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1317, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_self) { + TA_PERCENTRANK_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PERCENTRANK_Clone(((TA_PERCENTRANK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1338, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1339, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1340, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream))))) __PYX_ERR(3, 17620, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -16966,50 +237754,73 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_PLUS_DI_Close(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -17017,182 +237828,198 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1349, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17644, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1349, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17644, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1349, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17644, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1349, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17644, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1349, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17644, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(4, 1349, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(4, 1349, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17644, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 17644, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1349, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1349, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1349, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1349, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17644, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17644, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17644, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17644, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17644, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17644, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1351, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PLUS_DI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1368, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1369, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1371, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1372, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17649, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1373, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17650, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17651, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PLUS_DI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PLUS_DI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PLUS_DI_Close(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle))); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); @@ -17200,38 +238027,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill, "PLUS_DI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -17242,7 +238063,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17252,182 +238073,236 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1381, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17662, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(4, 1381, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(4, 1381, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17662, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 17662, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1381, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1381, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1381, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1381, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17662, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17662, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17662, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17662, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17663, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1381, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17662, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1383, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PLUS_DI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1403, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17667, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17667, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17667, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1404, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17668, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1405, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17669, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17670, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_PLUS_DI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1410, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -17435,37 +238310,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_6update, "PLUS_DI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17475,182 +238348,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17684, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1413, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(4, 1413, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(4, 1413, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17684, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 17684, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17684, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17684, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1413, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17684, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17685, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17685, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17685, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17684, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1436, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1437, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PLUS_DI_Update(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -17658,37 +238467,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLENGULFING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_8peek, "PLUS_DI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17698,221 +238505,249 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1445, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17692, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1445, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17692, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(4, 1445, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(4, 1445, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17692, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 17692, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17692, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17692, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1445, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17692, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17693, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17693, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17693, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1445, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17692, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1447, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLENGULFING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PLUS_DI_Peek(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1468, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1469, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_PLUS_DI_Value(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_PLUS_DI_OutRange(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PLUS_DI_Advance(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_10copy, "PLUS_DI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -17921,188 +238756,330 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_self) { + TA_PLUS_DI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_PLUS_DI_Clone(((TA_PLUS_DI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1477, __pyx_L3_error) + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream))))) __PYX_ERR(3, 17720, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_PLUS_DM_Close(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17744, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1477, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1477, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1477, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17744, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1477, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17744, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1477, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17744, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(4, 1477, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(4, 1477, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17744, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 17744, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1477, __pyx_L3_error) + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17744, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1477, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1477, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1477, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1477, __pyx_L3_error) + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17744, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17744, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1479, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17744, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)((double)0.3)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17744, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1479, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PLUS_DM_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1498, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1501, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17747, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17747, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1502, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17748, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1503, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17749, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17750, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1506, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PLUS_DM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PLUS_DM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PLUS_DM_Close(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); @@ -18110,50 +239087,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill, "PLUS_DM_Stream.open_and_fill(high, low, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18163,199 +239132,216 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1511, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17761, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1511, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1511, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17761, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17761, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17761, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(4, 1511, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(4, 1511, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17761, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 17761, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 1511, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1511, __pyx_L3_error) + case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17761, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17761, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17761, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 1513, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17762, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)((double)0.3)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1511, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17761, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1513, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PLUS_DM_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1532, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1533, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1534, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17765, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17765, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1535, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17766, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17767, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17768, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1536, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1537, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PLUS_DM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); + if (__pyx_t_4) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1540, __pyx_L1_error) + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1542, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -18363,37 +239349,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_6update, "PLUS_DM_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18403,182 +239386,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1545, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17782, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1545, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1545, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17782, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17782, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(4, 1545, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(4, 1545, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17782, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17782, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17782, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1545, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1545, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17782, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17783, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17783, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1545, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17782, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1547, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1564, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1568, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1569, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PLUS_DM_Update(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -18586,37 +239497,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_8peek, "PLUS_DM_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -18626,158 +239534,317 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1577, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17790, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1577, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1577, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(4, 1577, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(4, 1577, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17790, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17790, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17790, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1577, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1577, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17790, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17791, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17791, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1577, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17790, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1579, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_PLUS_DM_Peek(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; goto __pyx_L0; + + + /* function exit code */ __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_PLUS_DM_Value(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } - goto __pyx_L7_cleaned_up; + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PLUS_DM_OutRange(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } - __pyx_L7_cleaned_up:; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PLUS_DM_Advance(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_10copy, "PLUS_DM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_v_self)); + + /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_self) { + TA_PLUS_DM_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1597, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PLUS_DM_Clone(((TA_PLUS_DM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1600, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1601, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream))))) __PYX_ERR(3, 17818, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -18786,50 +239853,73 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PLUS_DM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10PPO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PPO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10PPO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_PPO_Close(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -18837,182 +239927,192 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1609, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17844, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1609, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17844, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1609, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17844, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1609, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17844, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1609, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17844, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(4, 1609, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(4, 1609, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17844, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 17844, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1609, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1609, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1609, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1609, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17844, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17844, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17844, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17844, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17844, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17844, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17844, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1609, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 17844, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1611, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PPO_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHAMMER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1630, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1631, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17846, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1632, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17847, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1633, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17848, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17849, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1636, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PPO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PPO_Close(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -19020,38 +240120,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_4open_and_fill, "PPO_Stream.open_and_fill(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PPO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -19062,7 +240156,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19072,182 +240166,224 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1641, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17860, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(4, 1641, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(4, 1641, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17860, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 17860, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1641, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1641, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1641, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1641, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17860, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17860, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17861, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17861, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17861, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1641, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 17860, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1643, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(__pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PPO_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1660, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1661, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17863, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17864, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17865, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1663, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17866, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1664, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PPO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1670, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17878, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17878, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17878, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -19255,37 +240391,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHARAMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_6update, "PPO_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19295,182 +240427,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1673, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17880, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1673, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1673, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1673, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(4, 1673, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(4, 1673, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17880, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17880, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1673, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1673, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1673, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17880, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17881, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1673, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17880, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1675, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1695, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1696, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1697, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PPO_Update(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1700, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -19478,37 +240530,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_8peek, "PPO_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19518,182 +240566,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1705, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17888, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1705, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1705, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1705, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17888, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(4, 1705, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(4, 1705, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17888, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17888, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1705, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1705, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1705, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17888, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17889, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1705, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17888, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1707, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1725, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1726, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1728, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1729, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PPO_Peek(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1734, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -19701,260 +240669,130 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1737, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1737, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1737, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1737, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1737, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(4, 1737, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(4, 1737, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1737, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1737, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1737, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1737, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1737, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1756, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1760, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1761, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PPO_Value(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_PPO_OutRange(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PPO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PPO_Advance(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PPO_Stream_10copy, "PPO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PPO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -19963,159 +240801,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1769, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1769, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(4, 1769, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(4, 1769, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1769, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1769, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1769, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1769, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1769, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1771, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_self) { + TA_PPO_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1789, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PPO_Clone(((TA_PPO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1792, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1793, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream))))) __PYX_ERR(3, 17916, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1798, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -20124,233 +240877,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PPO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10PVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10PVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_PVI_Close(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1801, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17938, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1801, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1801, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1801, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(4, 1801, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(4, 1801, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17938, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17938, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1801, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1801, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1801, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1801, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17938, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17938, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1801, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17938, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1803, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PVI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1820, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1821, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1822, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1823, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17941, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17941, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1824, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17942, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1825, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17943, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17944, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1828, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PVI_Close(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -20358,49 +241114,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON, "CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON = {"CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_124CDLHOMINGPIGEON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLHOMINGPIGEON(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_4open_and_fill, "PVI_Stream.open_and_fill(close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; +#endif +) { + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHOMINGPIGEON (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -20410,182 +241158,199 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1833, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17955, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1833, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1833, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17955, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17955, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(4, 1833, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(4, 1833, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17955, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17955, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17955, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1833, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1833, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17955, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1833, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17955, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1835, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PVI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHOMINGPIGEON", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1852, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1854, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17959, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17959, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1855, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17960, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17961, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17962, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1856, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1857, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1860, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1862, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -20593,37 +241358,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS, "CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS = {"CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_126CDLIDENTICAL3CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLIDENTICAL3CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_6update, "PVI_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -20633,182 +241395,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1865, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17976, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1865, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1865, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(4, 1865, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(4, 1865, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17976, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17976, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17976, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1865, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1865, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17976, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17977, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17977, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1865, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17976, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1867, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLIDENTICAL3CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1885, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1888, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1889, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PVI_Update(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -20816,37 +241506,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_128CDLINNECK, "CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_129CDLINNECK = {"CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_129CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_128CDLINNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLINNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_8peek, "PVI_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLINNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -20856,220 +241543,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1897, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17984, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1897, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1897, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(4, 1897, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(4, 1897, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17984, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17984, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17984, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1897, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1897, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17984, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17985, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17985, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1897, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17984, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1899, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLINNECK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVI_Peek(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1920, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1921, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1924, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_PVI_Value(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PVI_OutRange(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_PVI_Advance(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); + /* function exit code */ + __pyx_L0:; + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER, "CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER = {"CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_130CDLINVERTEDHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLINVERTEDHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVI_Stream_10copy, "PVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21078,159 +241786,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1929, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(4, 1929, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(4, 1929, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1929, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1929, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1929, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1929, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1929, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1931, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_self) { + TA_PVI_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLINVERTEDHAMMER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1949, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVI_Clone(((TA_PVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1950, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1952, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream))))) __PYX_ERR(3, 18012, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -21239,50 +241862,73 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10PVO_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PVO_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10PVO_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_PVO_Close(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_132CDLKICKING, "CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_133CDLKICKING = {"CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_133CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_132CDLKICKING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLKICKING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -21290,182 +241936,192 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLKICKING (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1961, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18038, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1961, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1961, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1961, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1961, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(4, 1961, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(4, 1961, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18038, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 18038, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1961, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1961, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1961, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1961, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18038, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18038, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18038, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18038, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18038, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1961, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 18038, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1963, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PVO_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLKICKING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1982, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1983, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18040, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1984, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18041, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 1985, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18042, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18043, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVO_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PVO_Close(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -21473,38 +242129,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_4open_and_fill, "PVO_Stream.open_and_fill(volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVO_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -21515,7 +242165,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21525,182 +242175,224 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 1993, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18054, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18054, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18054, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18054, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18054, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(4, 1993, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(4, 1993, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18054, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 18054, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 1993, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 1993, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 1993, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 1993, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18054, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18054, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18054, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18054, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = values[0]; + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18055, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18055, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18055, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)1); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1993, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 18054, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1995, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(__pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PVO_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2013, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18057, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18058, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18059, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18060, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2015, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2016, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2017, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PVO_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2020, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2022, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 18072, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18072, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18072, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -21708,37 +242400,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_6update, "PVO_Stream.update(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21748,182 +242436,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2025, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18074, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2025, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2025, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2025, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18074, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(4, 2025, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(4, 2025, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18074, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18074, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2025, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2025, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2025, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18074, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18075, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2025, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18074, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2046, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2048, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2049, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PVO_Update(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -21931,37 +242539,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_8peek, "PVO_Stream.peek(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -21971,220 +242575,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2057, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18082, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2057, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2057, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2057, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(4, 2057, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(4, 2057, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18082, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18082, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2057, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2057, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2057, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18082, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18083, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2057, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18082, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2059, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self), __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_PVO_Peek(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2077, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2080, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2081, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PVO_Value(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_PVO_OutRange(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVO_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PVO_Advance(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLLONGLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVO_Stream_10copy, "PVO_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVO_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22193,159 +242810,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2089, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2089, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(4, 2089, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(4, 2089, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2089, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2089, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2089, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2089, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2089, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2091, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_self) { + TA_PVO_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVO_Clone(((TA_PVO_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2111, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2112, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2113, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream))))) __PYX_ERR(3, 18110, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2116, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -22354,233 +242886,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PVO_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10PVT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10PVT_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10PVT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_PVT_Close(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2121, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18132, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2121, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2121, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2121, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2121, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(4, 2121, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(4, 2121, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18132, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 18132, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2121, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2121, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2121, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2121, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18132, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18132, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2121, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18132, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2123, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_PVT_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2143, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18135, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18135, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2144, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18136, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2145, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18137, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18138, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_PVT_Close(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -22588,49 +243123,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW}; -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_4open_and_fill, "PVT_Stream.open_and_fill(close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22640,182 +243167,199 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2153, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18149, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2153, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2153, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18149, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18149, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(4, 2153, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(4, 2153, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18149, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 18149, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18149, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2153, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2153, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18149, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_close = values[0]; + __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2153, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18149, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2155, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(__pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_PVT_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2173, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2174, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18153, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18153, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2175, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18154, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18155, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18156, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2176, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2177, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PVT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2180, __pyx_L1_error) + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2182, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -22823,38 +243367,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLMATHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_6update, "PVT_Stream.update(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -22864,199 +243404,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2185, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18170, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2185, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2185, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2185, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18170, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18170, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(4, 2185, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(4, 2185, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2185, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2185, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2185, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2185, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2185, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18170, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18170, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2187, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)((double)0.5)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18170, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18170, __pyx_L3_error) } + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18171, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18171, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2185, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18170, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2187, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATHOLD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2210, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_PVT_Update(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -23064,38 +243515,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_8peek, "PVT_Stream.peek(self, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23105,238 +243552,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2219, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2219, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2219, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2219, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(4, 2219, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(4, 2219, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2219, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2219, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2219, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2219, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2219, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18178, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18178, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2221, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)((double)0.3)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18178, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18178, __pyx_L3_error) } + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18179, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18179, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2219, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2221, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self), __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, double __pyx_v_close, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVT_Peek(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2242, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2244, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2245, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_PVT_Value(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_PVT_OutRange(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10PVT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_PVT_Advance(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10PVT_Stream_10copy, "PVT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10PVT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23345,176 +243795,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2253, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(4, 2253, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(4, 2253, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2253, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2253, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2253, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2253, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 2255, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2253, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2255, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_self) { + TA_PVT_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_PVT_Clone(((TA_PVT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2277, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2278, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2279, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream))))) __PYX_ERR(3, 18206, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -23523,233 +243871,254 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.PVT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_QSTICK_Close(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLONNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); - #if !CYTHON_VECTORCALL + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2287, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18230, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2287, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2287, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18230, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2287, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18230, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2287, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18230, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(4, 2287, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(4, 2287, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18230, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 18230, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2287, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2287, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2287, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2287, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18230, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18230, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18230, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18230, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2287, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18230, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2289, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_QSTICK_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLONNECK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2309, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18233, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18233, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18234, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2311, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18235, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18236, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_QSTICK_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_QSTICK_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_QSTICK_Close(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); @@ -23757,49 +244126,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLPIERCING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill, "QSTICK_Stream.open_and_fill(open, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_open = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -23809,182 +244171,216 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2319, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18247, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2319, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(4, 2319, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(4, 2319, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18247, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 18247, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2319, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2319, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2319, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2319, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18247, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18247, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18247, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_open = values[0]; + __pyx_v_close = values[1]; + if (values[2]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18248, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2319, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18247, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(__pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObject *__pyx_v_open, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_open = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_QSTICK_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLPIERCING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2338, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2339, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2340, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_open); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18251, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18251, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2341, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18252, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18253, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18254, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2342, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2343, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_QSTICK_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2348, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_open); + __Pyx_GIVEREF(__pyx_v_open); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_open); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -23992,37 +244388,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_6update, "QSTICK_Stream.update(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_open; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24032,182 +244425,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2351, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18268, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2351, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2351, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18268, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18268, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(4, 2351, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(4, 2351, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18268, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18268, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18268, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2351, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2351, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18268, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18269, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18269, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2351, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18268, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2353, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2372, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2373, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2374, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2375, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_QSTICK_Update(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -24215,37 +244536,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_8peek, "QSTICK_Stream.peek(self, double open, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_open; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24255,220 +244573,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2383, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2383, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2383, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(4, 2383, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(4, 2383, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18276, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18276, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18276, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2383, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2383, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18276, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18277, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18277, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2383, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2385, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self), __pyx_v_open, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, double __pyx_v_open, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_QSTICK_Peek(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_open, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2404, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2406, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2407, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2410, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2412, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_QSTICK_Value(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_QSTICK_OutRange(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_QSTICK_Advance(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES}; -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_10copy, "QSTICK_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24477,159 +244816,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2415, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2415, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2415, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2415, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2415, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(4, 2415, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(4, 2415, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2415, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2415, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2415, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2415, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2415, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2417, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_self) { + TA_QSTICK_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_QSTICK_Clone(((TA_QSTICK_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2438, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2439, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream))))) __PYX_ERR(3, 18304, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -24638,233 +244892,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.QSTICK_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10RMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10RMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10RMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_RMA_Close(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2447, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18328, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2447, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2447, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2447, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2447, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(4, 2447, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(4, 2447, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18328, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18328, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2447, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2447, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2447, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2447, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18328, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18328, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18328, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2447, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18328, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2449, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_RMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2469, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18330, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2470, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18331, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2471, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18332, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18333, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_RMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2476, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_RMA_Close(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -24872,49 +245129,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_4open_and_fill, "RMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -24924,182 +245173,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2479, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18344, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2479, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2479, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18344, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(4, 2479, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(4, 2479, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18344, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18344, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2479, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2479, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2479, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2479, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18344, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18344, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18345, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2479, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18344, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2481, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_RMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2499, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18347, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2500, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18348, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18349, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18350, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2502, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2503, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_RMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2506, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2508, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18362, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18362, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18362, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -25107,37 +245370,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_6update, "RMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25147,182 +245406,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2511, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18364, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2511, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2511, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2511, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18364, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(4, 2511, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(4, 2511, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18364, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18364, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2511, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2511, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2511, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18364, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18365, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2511, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18364, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2513, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2530, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2533, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2534, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_RMA_Update(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2538, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -25330,37 +245509,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN, "CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN = {"CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_168CDLSTALLEDPATTERN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLSTALLEDPATTERN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_8peek, "RMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25370,220 +245545,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18372, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2543, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2543, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2543, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(4, 2543, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(4, 2543, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18372, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18372, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2543, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2543, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2543, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18372, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18373, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18372, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2545, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSTALLEDPATTERN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2562, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_RMA_Peek(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2563, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2564, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2566, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2567, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2570, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_RMA_Value(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_RMA_OutRange(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_RMA_Advance(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH, "CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH = {"CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_170CDLSTICKSANDWICH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLSTICKSANDWICH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RMA_Stream_10copy, "RMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSTICKSANDWICH (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -25592,159 +245780,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2575, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2575, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2575, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2575, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2575, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(4, 2575, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(4, 2575, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2575, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2575, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2575, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2575, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2575, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2577, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_self) { + TA_RMA_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSTICKSANDWICH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2595, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_RMA_Clone(((TA_RMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2597, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2598, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2599, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream))))) __PYX_ERR(3, 18400, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2602, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -25753,233 +245856,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.RMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10ROC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10ROC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10ROC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; + (void)(TA_ROC_Close(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_172CDLTAKURI, "CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_173CDLTAKURI = {"CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_173CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_172CDLTAKURI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLTAKURI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTAKURI (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2607, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18424, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2607, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2607, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2607, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2607, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(4, 2607, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(4, 2607, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18424, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18424, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2607, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2607, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2607, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2607, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18424, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18424, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18424, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2607, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18424, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_ROC_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTAKURI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2629, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18426, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2630, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18427, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2631, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18428, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18429, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2634, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ROC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2636, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ROC_Close(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -25987,49 +246093,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP, "CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP = {"CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_174CDLTASUKIGAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_175CDLTASUKIGAP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_4open_and_fill, "ROC_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ROC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTASUKIGAP (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26039,182 +246137,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2639, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18440, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2639, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2639, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18440, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(4, 2639, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(4, 2639, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18440, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18440, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2639, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2639, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2639, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2639, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18440, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18440, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18441, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2639, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18440, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2641, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_ROC_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTASUKIGAP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2658, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2659, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18443, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18444, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2661, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18445, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18446, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2662, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2663, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_ROC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2666, __pyx_L1_error) + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2668, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18458, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18458, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18458, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -26222,37 +246334,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING, "CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING = {"CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_176CDLTHRUSTING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_177CDLTHRUSTING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_6update, "ROC_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTHRUSTING (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26262,182 +246370,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2671, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18460, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2671, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2671, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2671, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18460, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(4, 2671, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(4, 2671, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18460, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18460, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2671, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2671, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2671, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18460, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18461, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2671, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18460, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2673, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTHRUSTING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2694, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2695, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_ROC_Update(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2700, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -26445,37 +246473,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_178CDLTRISTAR, "CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR = {"CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_178CDLTRISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_179CDLTRISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_8peek, "ROC_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLTRISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26485,220 +246509,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2703, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18468, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2703, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18468, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(4, 2703, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(4, 2703, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18468, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18468, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2703, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2703, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2703, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18468, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18469, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2703, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18468, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2705, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLTRISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ROC_Peek(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2723, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2725, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2726, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2727, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + } - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ROC_Value(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_ROC_OutRange(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10ROC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ROC_Advance(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER, "CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER = {"CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_180CDLUNIQUE3RIVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_181CDLUNIQUE3RIVER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10ROC_Stream_10copy, "ROC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10ROC_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -26707,159 +246744,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2735, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2735, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2735, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2735, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2735, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(4, 2735, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(4, 2735, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2735, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2735, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2735, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2735, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2735, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2737, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_self) { + TA_ROC_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLUNIQUE3RIVER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ROC_Clone(((TA_ROC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2756, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2758, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2759, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream))))) __PYX_ERR(3, 18496, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2762, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -26868,233 +246820,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ROC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11ROCP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; + (void)(TA_ROCP_Close(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS, "CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS = {"CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2767, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18520, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2767, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2767, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2767, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2767, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18520, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(4, 2767, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(4, 2767, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18520, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18520, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2767, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2767, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2767, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2767, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18520, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18520, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18520, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2767, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18520, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2769, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_ROCP_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLUPSIDEGAP2CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2789, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18522, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2790, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18523, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2791, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18524, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18525, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ROCP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCP_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ROCP_Close(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -27102,49 +247057,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS, "CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS = {"CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill, "ROCP_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27154,182 +247101,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2799, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18536, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2799, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2799, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18536, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18536, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(4, 2799, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(4, 2799, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18536, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18536, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2799, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2799, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2799, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2799, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18536, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18536, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18537, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2799, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18536, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2801, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; + TA_ROCP_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLXSIDEGAP3METHODS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2818, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2819, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18539, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2820, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18540, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18541, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18542, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2821, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2822, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_handle = NULL; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2823, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_ROCP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2826, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2828, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -27337,23 +247298,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_186CEIL, "CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_187CEIL = {"CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_187CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_186CEIL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_187CEIL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_6update, "ROCP_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -27364,7 +247324,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CEIL (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27376,133 +247336,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2831, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18556, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(4, 2831, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18556, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(4, 2831, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18556, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18556, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18557, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2831, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18556, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2833, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_186CEIL(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CEIL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2852, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_ROCP_Update(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2857, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -27510,38 +247437,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_188CMF, "CMF(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_189CMF = {"CMF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_189CMF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_188CMF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_189CMF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_8peek, "ROCP_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CMF (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27551,199 +247473,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2860, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18564, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2860, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2860, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2860, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2860, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18564, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMF", 0) < (0)) __PYX_ERR(4, 2860, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, i); __PYX_ERR(4, 2860, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 2860, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2860, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2860, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2860, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2860, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18564, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18564, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2862, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18564, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18565, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2860, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18564, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 2862, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_188CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CMF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2882, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2885, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2886, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_ROCP_Peek(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CMF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2891, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -27751,226 +247576,130 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_190CMO, "CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_191CMO = {"CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_191CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_190CMO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_191CMO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CMO (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2894, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2894, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2894, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(4, 2894, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(4, 2894, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2894, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2894, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2896, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2894, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2896, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_190CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CMO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2917, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_ROCP_Value(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2922, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_ROCP_OutRange(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ROCP_Advance(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_192CMOU, "CMOU(ndarray real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_193CMOU = {"CMOU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_193CMOU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_192CMOU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_193CMOU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCP_Stream_10copy, "ROCP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CMOU (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27979,132 +247708,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2925, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2925, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2925, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMOU", 0) < (0)) __PYX_ERR(4, 2925, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, i); __PYX_ERR(4, 2925, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2925, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2925, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2927, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2925, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2927, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_192CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_self) { + TA_ROCP_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CMOU", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_ROCP_Clone(((TA_ROCP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2948, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_CMOU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2953, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream))))) __PYX_ERR(3, 18592, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -28113,231 +247784,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ROCP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11ROCR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_ROCR_Close(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_194COPPOCK, "COPPOCK(ndarray real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_195COPPOCK = {"COPPOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_195COPPOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_194COPPOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_195COPPOCK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_wmaperiod; - int __pyx_v_roc1period; - int __pyx_v_roc2period; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COPPOCK (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2956, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18616, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2956, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2956, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2956, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18616, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2956, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18616, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COPPOCK", 0) < (0)) __PYX_ERR(4, 2956, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18616, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, i); __PYX_ERR(4, 2956, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18616, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 2956, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2956, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2956, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18616, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2956, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18616, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2958, __pyx_L3_error) - } else { - __pyx_v_wmaperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2958, __pyx_L3_error) - } else { - __pyx_v_roc1period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2958, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18616, __pyx_L3_error) } else { - __pyx_v_roc2period = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 2956, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18616, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2958, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_194COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { +static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_ROCR_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("COPPOCK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18618, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2981, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18619, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18620, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18621, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_retCode = TA_COPPOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ROCR_Close(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -28345,45 +248021,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_196CORREL, "CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson\047s Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_197CORREL = {"CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_197CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_196CORREL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_197CORREL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill, "ROCR_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CORREL (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28393,169 +248065,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 2989, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18632, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2989, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18632, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(4, 2989, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(4, 2989, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18632, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18632, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 2989, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18632, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18632, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2991, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18633, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 2989, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18632, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2991, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2991, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_196CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_ROCR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CORREL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3012, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18635, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3013, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18636, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3014, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18637, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18638, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3017, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ROCR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3019, __pyx_L1_error) + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18650, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18650, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18650, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -28563,23 +248262,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_198COS, "COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_199COS = {"COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_199COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_198COS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_199COS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_6update, "ROCR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -28590,7 +248288,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COS (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28602,133 +248300,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3022, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18652, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18652, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(4, 3022, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18652, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(4, 3022, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18652, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18652, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18653, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3022, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18652, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3024, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_198COS(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("COS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3043, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_ROCR_Update(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3046, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3048, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -28736,23 +248401,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_200COSH, "COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_201COSH = {"COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_201COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_200COSH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_201COSH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_8peek, "ROCR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -28763,7 +248427,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("COSH (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28775,168 +248439,231 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3051, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18660, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3051, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18660, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(4, 3051, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18660, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(4, 3051, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18660, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3051, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18660, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18661, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3051, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18660, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3053, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_200COSH(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("COSH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3072, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_ROCR_Peek(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3075, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3077, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ROCR_Value(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ROCR_OutRange(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ROCR_Advance(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_202CUMSUM, "CUMSUM(ndarray real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_203CUMSUM = {"CUMSUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_203CUMSUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_202CUMSUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_203CUMSUM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11ROCR_Stream_10copy, "ROCR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CUMSUM (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28945,127 +248672,312 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_self) { + TA_ROCR_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ROCR_Clone(((TA_ROCR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3080, __pyx_L3_error) + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream))))) __PYX_ERR(3, 18688, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ROCR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ROCR100_Close(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18712, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18712, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3080, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18712, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CUMSUM", 0) < (0)) __PYX_ERR(4, 3080, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18712, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, i); __PYX_ERR(4, 3080, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18712, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3080, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18712, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18712, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18712, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3080, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18712, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3082, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_202CUMSUM(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_ROCR100_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CUMSUM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18714, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3101, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18715, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18716, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18717, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_retCode = TA_CUMSUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_ROCR100_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCR100_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ROCR100_Close(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -29073,46 +248985,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_204CVI, "CVI(ndarray high, ndarray low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin\047s Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_205CVI = {"CVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_205CVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_204CVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_205CVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill, "ROCR100_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_rocperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CVI (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29122,183 +249029,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3109, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18728, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3109, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3109, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18728, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18728, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CVI", 0) < (0)) __PYX_ERR(4, 3109, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, i); __PYX_ERR(4, 3109, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18728, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18728, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3109, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3109, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18728, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18728, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3111, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3111, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18729, __pyx_L3_error) } else { - __pyx_v_rocperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 3109, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18728, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3111, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3111, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_204CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_ROCR100_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3131, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3132, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18731, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3133, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18732, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3134, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18733, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18734, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3137, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ROCR100_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3139, __pyx_L1_error) + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18746, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18746, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18746, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -29306,35 +249226,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_207DEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_206DEMA, "DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_207DEMA = {"DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_207DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_206DEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_207DEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_6update, "ROCR100_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29344,152 +249262,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3142, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3142, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(4, 3142, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18748, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(4, 3142, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3142, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18748, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3144, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18748, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18749, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3142, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3144, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_206DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DEMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3165, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_ROCR100_Update(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3170, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -29497,35 +249365,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_208DIV, "DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_209DIV = {"DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_209DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_208DIV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_209DIV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_8peek, "ROCR100_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DIV (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29535,189 +249401,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3173, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18756, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3173, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18756, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(4, 3173, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(4, 3173, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18756, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18756, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3173, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18756, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18757, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 3173, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18756, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 3175, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 3175, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_208DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DIV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ROCR100_Peek(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3194, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3195, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3196, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ROCR100_Value(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_ROCR100_OutRange(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ROCR100_Advance(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_210DONCHIAN, "DONCHIAN(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_211DONCHIAN = {"DONCHIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_211DONCHIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_210DONCHIAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_211DONCHIAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_10copy, "ROCR100_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DONCHIAN (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29726,183 +249636,312 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_self) { + TA_ROCR100_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ROCR100_Clone(((TA_ROCR100_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3204, __pyx_L3_error) + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream))))) __PYX_ERR(3, 18784, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ROCR100_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10RSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10RSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10RSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_RSI_Close(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18808, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3204, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3204, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18808, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3204, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18808, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DONCHIAN", 0) < (0)) __PYX_ERR(4, 3204, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, i); __PYX_ERR(4, 3204, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18808, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18808, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3204, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3204, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3204, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18808, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18808, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3206, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18808, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3204, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18808, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3206, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3206, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_210DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_RSI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DONCHIAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3229, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3230, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18810, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3231, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18811, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3232, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18812, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18813, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_RSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_4) { - __pyx_v_retCode = TA_DONCHIAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RSI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 3240, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 3240, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 3240, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_RSI_Close(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -29910,35 +249949,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ - __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_212DPO, "DPO(ndarray real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_213DPO = {"DPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_213DPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_212DPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_213DPO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_4open_and_fill, "RSI_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -29950,7 +249983,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DPO (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29962,150 +249995,194 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3242, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18824, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DPO", 0) < (0)) __PYX_ERR(4, 3242, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18824, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, i); __PYX_ERR(4, 3242, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18824, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18824, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18824, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3244, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18825, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3242, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18824, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3244, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_212DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_RSI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DPO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18827, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3265, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18828, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18829, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18830, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3268, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_DPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_RSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3270, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18842, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18842, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18842, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30113,37 +250190,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_214DX, "DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_215DX = {"DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_215DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_214DX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_215DX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_6update, "RSI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("DX (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30153,184 +250226,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3273, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18844, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3273, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3273, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3273, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18844, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(4, 3273, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(4, 3273, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3273, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3273, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3273, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3273, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18844, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18844, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3275, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18844, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18845, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 3273, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18844, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3275, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3275, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3275, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_214DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("DX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3297, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3298, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_RSI_Update(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -30338,36 +250329,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_216EFI, "EFI(ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder\047s Force Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nParameters:\n timeperiod: 13\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_217EFI = {"EFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_217EFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_216EFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_217EFI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_8peek, "RSI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EFI (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30377,205 +250365,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3306, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18852, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3306, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EFI", 0) < (0)) __PYX_ERR(4, 3306, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, i); __PYX_ERR(4, 3306, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3306, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3306, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18852, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18852, __pyx_L3_error) } } - } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3308, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18852, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18853, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3306, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18852, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3308, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 3308, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_216EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("EFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_RSI_Peek(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3328, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3329, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3330, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3333, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_EFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_RSI_Value(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + __pyx_r = TA_RSI_OutRange(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_RSI_Advance(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_218EMA, "EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_219EMA = {"EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_219EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_218EMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_219EMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RSI_Stream_10copy, "RSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EMA (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30584,132 +250600,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3338, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3338, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3338, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(4, 3338, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(4, 3338, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3338, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3338, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3340, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3338, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3340, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_218EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_self) { + TA_RSI_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("EMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_RSI_Clone(((TA_RSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3361, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3364, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3366, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream))))) __PYX_ERR(3, 18880, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -30718,201 +250676,251 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.RSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10RVI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10RVI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10RVI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_RVI_Close(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_220ER, "ER(ndarray real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_221ER = {"ER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_221ER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_220ER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_221ER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + int __pyx_v_stddevperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ER (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3369, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18905, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18905, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3369, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18905, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3369, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18905, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ER", 0) < (0)) __PYX_ERR(4, 3369, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18905, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, i); __PYX_ERR(4, 3369, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 18905, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18905, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3369, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18905, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3369, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18905, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3371, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18905, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18905, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3369, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 18905, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3371, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_220ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_RVI_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3390, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18907, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3392, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18908, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18909, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18910, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3395, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_retCode = TA_ER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_RVI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_RVI_Close(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -30920,46 +250928,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_222ERI, "ERI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_223ERI = {"ERI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_223ERI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_222ERI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_223ERI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_4open_and_fill, "RVI_Stream.open_and_fill(real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RVI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ERI (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30969,169 +250973,179 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3400, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18921, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3400, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ERI", 0) < (0)) __PYX_ERR(4, 3400, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, i); __PYX_ERR(4, 3400, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18921, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 18921, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3400, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18921, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18921, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3402, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18922, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18922, __pyx_L3_error) + } else { + __pyx_v_stddevperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 3400, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 18921, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3402, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3402, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3402, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_222ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outbullpower = 0; - PyArrayObject *__pyx_v_outbearpower = 0; + TA_RVI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ERI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3424, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3425, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18924, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3426, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18925, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3427, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18926, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18927, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3430, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3431, __pyx_L1_error) + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_RVI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_ERI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3433, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18939, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3434, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outbullpower); - __Pyx_GIVEREF((PyObject *)__pyx_v_outbullpower); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outbullpower)) != (0)) __PYX_ERR(4, 3434, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outbearpower); - __Pyx_GIVEREF((PyObject *)__pyx_v_outbearpower); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outbearpower)) != (0)) __PYX_ERR(4, 3434, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18939, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18939, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -31147,21 +251161,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outbullpower); - __Pyx_XDECREF((PyObject *)__pyx_v_outbearpower); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -31169,23 +251184,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_224EXP, "EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_225EXP = {"EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_225EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_224EXP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_225EXP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_6update, "RVI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -31196,7 +251210,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("EXP (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31208,133 +251222,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3436, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18941, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3436, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18941, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(4, 3436, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18941, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(4, 3436, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18941, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3436, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18941, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18942, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3436, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18941, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3438, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_224EXP(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("EXP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3457, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_RVI_Update(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -31342,23 +251323,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_226FLOOR, "FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_227FLOOR = {"FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_227FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_226FLOOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_227FLOOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_8peek, "RVI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -31369,7 +251349,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("FLOOR (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31381,133 +251361,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3465, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18949, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18949, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(4, 3465, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18949, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(4, 3465, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18949, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18949, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18950, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3465, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18949, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3467, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_226FLOOR(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FLOOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3486, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_RVI_Peek(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3491, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -31515,228 +251462,130 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_228FOSC, "FOSC(ndarray real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_229FOSC = {"FOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_229FOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_228FOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_229FOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("FOSC (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3494, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3494, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3494, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FOSC", 0) < (0)) __PYX_ERR(4, 3494, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, i); __PYX_ERR(4, 3494, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3494, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3494, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3496, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3494, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3496, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_228FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); + /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3517, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_RVI_Value(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_FOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_RVI_OutRange(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10RVI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_RVI_Advance(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_230FRACTAL, "FRACTAL(ndarray high, ndarray low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_231FRACTAL = {"FRACTAL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_231FRACTAL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_230FRACTAL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_231FRACTAL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10RVI_Stream_10copy, "RVI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10RVI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_leftbars; - int __pyx_v_rightbars; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("FRACTAL (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31745,442 +251594,312 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3525, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRACTAL", 0) < (0)) __PYX_ERR(4, 3525, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, i); __PYX_ERR(4, 3525, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3525, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3525, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3525, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3527, __pyx_L3_error) - } else { - __pyx_v_leftbars = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3527, __pyx_L3_error) - } else { - __pyx_v_rightbars = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 3525, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3527, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3527, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_230FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_self) { + TA_RVI_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outswinghigh = 0; - PyArrayObject *__pyx_v_outswinglow = 0; + struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FRACTAL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3549, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_RVI_Clone(((TA_RVI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3551, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3552, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + if (__pyx_t_1) { - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream))))) __PYX_ERR(3, 18977, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_retCode = TA_FRACTAL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3559, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outswinghigh); - __Pyx_GIVEREF((PyObject *)__pyx_v_outswinghigh); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outswinghigh)) != (0)) __PYX_ERR(4, 3559, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outswinglow); - __Pyx_GIVEREF((PyObject *)__pyx_v_outswinglow); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outswinglow)) != (0)) __PYX_ERR(4, 3559, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.RVI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11RVOL_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_RVOL_Close(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outswinghigh); - __Pyx_XDECREF((PyObject *)__pyx_v_outswinglow); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_232HA, "HA(ndarray open, ndarray high, ndarray low, ndarray close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n haopen\n hahigh\n halow\n haclose"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_233HA = {"HA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_233HA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_232HA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_233HA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_volume = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HA (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3561, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19001, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3561, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3561, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3561, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3561, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HA", 0) < (0)) __PYX_ERR(4, 3561, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, i); __PYX_ERR(4, 3561, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19001, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19001, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3561, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3561, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3561, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3561, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19001, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19001, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_volume = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19001, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 3561, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19001, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3563, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_232HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_RVOL_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outhaopen = 0; - PyArrayObject *__pyx_v_outhahigh = 0; - PyArrayObject *__pyx_v_outhalow = 0; - PyArrayObject *__pyx_v_outhaclose = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3587, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3588, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3589, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 19003, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3590, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19004, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3591, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19005, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19006, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_RVOL_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3595, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_4) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3597, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_HA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RVOL_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_RVOL_Close(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outhaopen); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhaopen); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outhaopen)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outhahigh); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhahigh); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outhahigh)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outhalow); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhalow); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outhalow)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outhaclose); - __Pyx_GIVEREF((PyObject *)__pyx_v_outhaclose); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_outhaclose)) != (0)) __PYX_ERR(4, 3600, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -32188,38 +251907,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outhaopen); - __Pyx_XDECREF((PyObject *)__pyx_v_outhahigh); - __Pyx_XDECREF((PyObject *)__pyx_v_outhalow); - __Pyx_XDECREF((PyObject *)__pyx_v_outhaclose); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_234HMA, "HMA(ndarray real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_235HMA = {"HMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_235HMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_234HMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_235HMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill, "RVOL_Stream.open_and_fill(volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -32231,7 +251941,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HMA (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32241,152 +251951,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3602, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19017, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HMA", 0) < (0)) __PYX_ERR(4, 3602, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19017, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, i); __PYX_ERR(4, 3602, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19017, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19017, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3604, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19018, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3602, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19017, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3604, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_234HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(__pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_RVOL_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3623, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 19020, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3625, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19021, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19022, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19023, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_HMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_RVOL_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3630, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 19035, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19035, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19035, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -32394,23 +252148,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD, "HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD = {"HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_236HT_DCPERIOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_237HT_DCPERIOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_6update, "RVOL_Stream.update(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -32421,7 +252174,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_DCPERIOD (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32431,135 +252184,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3633, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19037, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19037, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(4, 3633, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19037, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(4, 3633, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19037, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19037, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19038, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3633, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19037, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3635, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3654, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_RVOL_Update(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3657, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -32567,23 +252287,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_238HT_DCPHASE, "HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE = {"HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_238HT_DCPHASE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_239HT_DCPHASE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_8peek, "RVOL_Stream.peek(self, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -32594,7 +252313,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_DCPHASE (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32604,170 +252323,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3662, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19045, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19045, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(4, 3662, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19045, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(4, 3662, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19045, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19045, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19046, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3662, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19045, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3664, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self), __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, double __pyx_v_volume) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_DCPHASE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3683, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_RVOL_Peek(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_RVOL_Value(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_RVOL_OutRange(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_RVOL_Advance(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_240HT_PHASOR, "HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_241HT_PHASOR = {"HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_241HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_240HT_PHASOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_241HT_PHASOR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11RVOL_Stream_10copy, "RVOL_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_PHASOR (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32776,329 +252558,345 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3691, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3691, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(4, 3691, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(4, 3691, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3691, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3691, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3693, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_240HT_PHASOR(__pyx_self, __pyx_v_real); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_self) { + TA_RVOL_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinphase = 0; - PyArrayObject *__pyx_v_outquadrature = 0; + struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_PHASOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_RVOL_Clone(((TA_RVOL_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3714, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + } - __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream))))) __PYX_ERR(3, 19073, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outinphase); - __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(4, 3721, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outquadrature); - __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(4, 3721, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.RVOL_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10SAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10SAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_SAR_Close(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outinphase); - __Pyx_XDECREF((PyObject *)__pyx_v_outquadrature); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_242HT_SINE, "HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_243HT_SINE = {"HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_243HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_242HT_SINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_243HT_SINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_SINE (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3723, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19098, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19098, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3723, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(4, 3723, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(4, 3723, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19098, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 19098, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3723, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19098, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19098, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19098, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19098, __pyx_L3_error) + } else { + __pyx_v_acceleration = ((double)0.02); + } + if (values[3]) { + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19098, __pyx_L3_error) + } else { + __pyx_v_maximum = ((double)0.2); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3723, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19098, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3725, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_242HT_SINE(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SAR_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outsine = 0; - PyArrayObject *__pyx_v_outleadsine = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_SINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3744, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3746, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3749, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3750, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19101, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19101, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19102, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3752, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19103, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19104, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outsine); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(4, 3753, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outleadsine); - __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(4, 3753, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SAR_Close(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); @@ -33106,44 +252904,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outsine); - __Pyx_XDECREF((PyObject *)__pyx_v_outleadsine); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE, "HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE = {"HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_244HT_TRENDLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_245HT_TRENDLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_4open_and_fill, "SAR_Stream.open_and_fill(high, low, double acceleration=0.02, double maximum=0.2)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_acceleration; + double __pyx_v_maximum; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_TRENDLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33153,135 +252950,230 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3755, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19115, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19115, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 19115, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19115, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 0: break; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19115, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19115, __pyx_L3_error) + break; default: goto __pyx_L5_argtuple_error; } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(4, 3755, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(4, 3755, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19116, __pyx_L3_error) } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3755, __pyx_L3_error) + __pyx_v_acceleration = ((double)0.02); + } + if (values[3]) { + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19116, __pyx_L3_error) + } else { + __pyx_v_maximum = ((double)0.2); } - __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3755, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3757, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_SAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3776, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19119, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19119, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19120, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19121, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19122, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3779, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3781, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -33289,34 +253181,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE, "HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE = {"HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_246HT_TRENDMODE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_247HT_TRENDMODE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_6update, "SAR_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("HT_TRENDMODE (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33326,135 +253218,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3784, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19136, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19136, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19136, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(4, 3784, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(4, 3784, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19136, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19136, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19136, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19136, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19137, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19137, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3784, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19136, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3786, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("HT_TRENDMODE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3805, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SAR_Update(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -33462,36 +253329,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_248IMI, "IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_249IMI = {"IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_249IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_248IMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_249IMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_8peek, "SAR_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("IMI (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33501,205 +253366,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3813, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19144, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3813, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(4, 3813, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19144, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(4, 3813, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3813, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3813, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3813, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19144, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3815, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19144, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19144, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19145, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19145, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19144, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 3815, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3815, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_248IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("IMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SAR_Peek(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3836, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3837, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3840, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3842, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_SAR_Value(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SAR_OutRange(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_SAR_Advance(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_250KAMA, "KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_251KAMA = {"KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_251KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_250KAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_251KAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SAR_Stream_10copy, "SAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("KAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33708,132 +253609,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3845, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3845, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3845, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(4, 3845, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(4, 3845, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3845, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3845, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3847, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3845, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3847, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_250KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_self) { + TA_SAR_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("KAMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3866, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_SAR_Clone(((TA_SAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3868, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3873, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream))))) __PYX_ERR(3, 19172, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -33842,180 +253685,261 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_SAREXT_Close(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_252KC, "KC(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_253KC = {"KC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_253KC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_252KC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_253KC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - int __pyx_v_atrperiod; - double __pyx_v_nbdev; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("KC (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3876, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19203, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KC", 0) < (0)) __PYX_ERR(4, 3876, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, i); __PYX_ERR(4, 3876, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19203, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, i); __PYX_ERR(3, 19203, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3876, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3876, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3876, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19203, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19203, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19203, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + } else { + __pyx_v_startvalue = ((double)-4e37); + } if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3878, __pyx_L3_error) + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_offsetonreverse = ((double)-4e37); } if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3878, __pyx_L3_error) + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) } else { - __pyx_v_atrperiod = ((int)((int)-2147483648)); + __pyx_v_accelerationinitlong = ((double)-4e37); } if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 3878, __pyx_L3_error) + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) } else { - __pyx_v_nbdev = ((double)((double)-4e37)); + __pyx_v_accelerationlong = ((double)-4e37); + } + if (values[6]) { + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxlong = ((double)-4e37); + } + if (values[7]) { + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + } else { + __pyx_v_accelerationinitshort = ((double)-4e37); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)-4e37); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 3876, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 19203, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3878, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3878, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3878, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_252KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + + + @@ -34023,105 +253947,97 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { +static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SAREXT_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outrealupperband = 0; - PyArrayObject *__pyx_v_outrealmiddleband = 0; - PyArrayObject *__pyx_v_outreallowerband = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("KC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3904, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3905, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19206, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19206, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3906, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19207, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3907, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19208, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19209, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SAREXT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3911, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_4) { - __pyx_v_retCode = TA_KC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3914, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SAREXT_Close(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(4, 3915, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(4, 3915, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(4, 3915, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); @@ -34129,54 +254045,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se - __Pyx_XDECREF((PyObject *)__pyx_v_outrealupperband); - __Pyx_XDECREF((PyObject *)__pyx_v_outrealmiddleband); - __Pyx_XDECREF((PyObject *)__pyx_v_outreallowerband); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_254KDJ, "KDJ(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder\047s Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder\047s Smoothed Moving Average)\nOutputs:\n k\n d\n j"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_255KDJ = {"KDJ", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_255KDJ, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_254KDJ}; -static PyObject *__pyx_pw_5talib_7_ta_lib_255KDJ(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill, "SAREXT_Stream.open_and_fill(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + double __pyx_v_startvalue; + double __pyx_v_offsetonreverse; + double __pyx_v_accelerationinitlong; + double __pyx_v_accelerationlong; + double __pyx_v_accelerationmaxlong; + double __pyx_v_accelerationinitshort; + double __pyx_v_accelerationshort; + double __pyx_v_accelerationmaxshort; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("KDJ (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34186,144 +254097,167 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3917, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19220, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19220, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19220, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KDJ", 0) < (0)) __PYX_ERR(4, 3917, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, i); __PYX_ERR(4, 3917, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19220, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, i); __PYX_ERR(3, 19220, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 10: + values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19220, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 9: + values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19220, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19220, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19220, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19220, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + if (values[2]) { + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + } else { + __pyx_v_startvalue = ((double)-4e37); + } if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); + __pyx_v_offsetonreverse = ((double)-4e37); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); + __pyx_v_accelerationinitlong = ((double)-4e37); } if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) } else { - __pyx_v_slowk_matype = ((int)((int)13)); + __pyx_v_accelerationlong = ((double)-4e37); } if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); + __pyx_v_accelerationmaxlong = ((double)-4e37); } if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3919, __pyx_L3_error) + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)((int)13)); + __pyx_v_accelerationinitshort = ((double)-4e37); + } + if (values[8]) { + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + } else { + __pyx_v_accelerationshort = ((double)-4e37); + } + if (values[9]) { + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 3917, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 19220, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3919, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_254KDJ(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + @@ -34333,87 +254267,112 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outk = 0; - PyArrayObject *__pyx_v_outd = 0; - PyArrayObject *__pyx_v_outj = 0; + TA_SAREXT_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("KDJ", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3946, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3947, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3948, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19224, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19224, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 3949, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19225, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3950, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19226, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19227, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3953, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SAREXT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3955, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_KDJ(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3957, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3958, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outk)) != (0)) __PYX_ERR(4, 3958, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outd)) != (0)) __PYX_ERR(4, 3958, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outj); - __Pyx_GIVEREF((PyObject *)__pyx_v_outj); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outj)) != (0)) __PYX_ERR(4, 3958, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -34429,22 +254388,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outk); - __Pyx_XDECREF((PyObject *)__pyx_v_outd); - __Pyx_XDECREF((PyObject *)__pyx_v_outj); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -34452,24 +254412,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_256LINEARREG, "LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_257LINEARREG = {"LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_257LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_256LINEARREG}; -static PyObject *__pyx_pw_5talib_7_ta_lib_257LINEARREG(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_6update, "SAREXT_Stream.update(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -34480,7 +254439,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34490,188 +254449,389 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3960, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19241, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3960, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19241, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3960, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19241, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(4, 3960, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(4, 3960, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19241, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19241, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19241, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19241, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19242, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19242, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19241, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_SAREXT_Update(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_8peek, "SAREXT_Stream.peek(self, double high, double low)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19249, __pyx_L3_error) + if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3960, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3960, __pyx_L3_error) - break; + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19249, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; default: goto __pyx_L5_argtuple_error; } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3962, __pyx_L3_error) + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19249, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19249, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19249, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19249, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19250, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19250, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3960, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19249, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3962, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_256LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SAREXT_Peek(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, (&__pyx_v_outreal)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3983, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SAREXT_Value(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SAREXT_OutRange(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_SAREXT_Advance(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE, "LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE = {"LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_258LINEARREG_ANGLE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_259LINEARREG_ANGLE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_10copy, "SAREXT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_ANGLE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34680,132 +254840,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 3991, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3991, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3991, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(4, 3991, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(4, 3991, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 3991, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 3991, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3993, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3991, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3993, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_self) { + TA_SAREXT_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_SAREXT_Clone(((TA_SAREXT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4014, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4017, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4019, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream))))) __PYX_ERR(3, 19277, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -34814,201 +254916,218 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SAREXT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10SIN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SIN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10SIN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_SIN_Close(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT, "LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT = {"LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_260LINEARREG_INTERCEPT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_261LINEARREG_INTERCEPT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4022, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19299, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4022, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4022, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(4, 4022, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19299, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(4, 4022, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4022, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4022, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19299, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4024, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19299, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4022, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19299, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4024, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SIN_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4043, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19301, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4045, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19302, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19303, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19304, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4048, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SIN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SIN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SIN_Close(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -35016,44 +255135,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE, "LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE = {"LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_262LINEARREG_SLOPE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_263LINEARREG_SLOPE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_4open_and_fill, "SIN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SIN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LINEARREG_SLOPE (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35063,152 +255178,179 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4053, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19315, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4053, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(4, 4053, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19315, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(4, 4053, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4053, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4053, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19315, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4055, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19315, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4053, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19315, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4055, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_SIN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4074, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19318, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4076, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19319, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19320, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19321, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SIN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19333, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19333, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19333, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -35216,23 +255358,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_264LN, "LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_265LN = {"LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_265LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_264LN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_265LN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_6update, "SIN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -35243,7 +255384,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LN (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35255,133 +255396,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4084, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19335, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19335, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(4, 4084, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19335, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(4, 4084, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19335, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19335, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19336, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4084, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19335, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4086, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_264LN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4105, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SIN_Update(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -35389,23 +255497,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_267LOG10(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_266LOG10, "LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_267LOG10 = {"LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_267LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_266LOG10}; -static PyObject *__pyx_pw_5talib_7_ta_lib_267LOG10(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_8peek, "SIN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -35416,7 +255523,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("LOG10 (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35428,133 +255535,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19343, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(4, 4113, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19343, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(4, 4113, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19343, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19343, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19344, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19343, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4115, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_266LOG10(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("LOG10", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4134, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SIN_Peek(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -35562,243 +255636,130 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_268MA, "MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_269MA = {"MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_269MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_268MA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_269MA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4142, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(4, 4142, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(4, 4142, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4142, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4142, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4144, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4144, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4142, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4144, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_268MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4166, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SIN_Value(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_SIN_OutRange(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SIN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SIN_Advance(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_270MACD, "MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_271MACD = {"MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_271MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_270MACD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_271MACD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SIN_Stream_10copy, "SIN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SIN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACD (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35807,486 +255768,294 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4174, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4174, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4174, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4174, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4174, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(4, 4174, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(4, 4174, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4174, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4174, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4174, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4174, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4176, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4176, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4176, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 4174, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4176, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_270MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_self) { + TA_SIN_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_SIN_Clone(((TA_SIN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4203, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream))))) __PYX_ERR(3, 19371, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 4211, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 4211, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 4211, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SIN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11SINH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11SINH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11SINH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_SINH_Close(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_272MACDEXT, "MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_273MACDEXT = {"MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_273MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_272MACDEXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_273MACDEXT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_fastmatype; - int __pyx_v_slowperiod; - int __pyx_v_slowmatype; - int __pyx_v_signalperiod; - int __pyx_v_signalmatype; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACDEXT (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4213, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19393, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4213, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19393, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(4, 4213, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(4, 4213, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4213, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4213, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)((int)0)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)((int)0)); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19393, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19393, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalmatype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19393, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(4, 4213, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19393, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4215, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_272MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { +static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SINH_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACDEXT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4243, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19395, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4245, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19396, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19397, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19398, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SINH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 4253, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 4253, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 4253, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SINH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SINH_Close(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -36294,46 +256063,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_274MACDFIX, "MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_275MACDFIX = {"MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_275MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_274MACDFIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_275MACDFIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_4open_and_fill, "SINH_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SINH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_signalperiod; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MACDFIX (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36343,148 +256106,148 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4255, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19409, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4255, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19409, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(4, 4255, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19409, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(4, 4255, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4255, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4255, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19409, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4257, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19409, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4255, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19409, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4257, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_274MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmacd = 0; - PyArrayObject *__pyx_v_outmacdsignal = 0; - PyArrayObject *__pyx_v_outmacdhist = 0; + TA_SINH_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MACDFIX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19412, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4282, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19413, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19414, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19415, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4286, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4287, __pyx_L1_error) + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SINH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SINH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4289, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19427, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4290, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmacd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(4, 4290, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(4, 4290, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(4, 4290, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19427, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19427, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -36500,20 +256263,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacd); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdsignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outmacdhist); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -36521,36 +256286,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_276MAMA, "MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_277MAMA = {"MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_277MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_276MAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_277MAMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_6update, "SINH_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - double __pyx_v_fastlimit; - double __pyx_v_slowlimit; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAMA (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36560,181 +256322,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4292, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19429, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4292, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4292, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19429, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(4, 4292, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19429, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(4, 4292, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4292, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4292, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4292, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19429, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4294, __pyx_L3_error) - } else { - __pyx_v_fastlimit = ((double)((double)-4e37)); - } - if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4294, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowlimit = ((double)((double)-4e37)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19429, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19430, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4292, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19429, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4294, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_276MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmama = 0; - PyArrayObject *__pyx_v_outfama = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4318, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_v_retCode = TA_SINH_Update(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmama); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(4, 4325, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfama); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(4, 4325, __pyx_L1_error); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outmama); - __Pyx_XDECREF((PyObject *)__pyx_v_outfama); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -36742,36 +256425,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_278MARKETFI, "MARKETFI(ndarray high, ndarray low, ndarray volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_279MARKETFI = {"MARKETFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_279MARKETFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_278MARKETFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_279MARKETFI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_8peek, "SINH_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_volume = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MARKETFI (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36781,205 +256461,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4327, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19437, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4327, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4327, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19437, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MARKETFI", 0) < (0)) __PYX_ERR(4, 4327, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, i); __PYX_ERR(4, 4327, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19437, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19437, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4327, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4327, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19437, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_volume = ((PyArrayObject *)values[2]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19438, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4327, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19437, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4329, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4329, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4329, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_278MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MARKETFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SINH_Peek(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4349, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4350, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_MARKETFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_SINH_Value(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_SINH_OutRange(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SINH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SINH_Advance(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_280MASSI, "MASSI(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_281MASSI = {"MASSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_281MASSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_280MASSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_281MASSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SINH_Stream_10copy, "SINH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SINH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MASSI (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36988,174 +256696,312 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_self) { + TA_SINH_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_SINH_Clone(((TA_SINH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4358, __pyx_L3_error) + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream))))) __PYX_ERR(3, 19465, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SINH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10SMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10SMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_SMA_Close(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19489, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4358, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4358, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4358, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19489, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4358, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19489, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MASSI", 0) < (0)) __PYX_ERR(4, 4358, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, i); __PYX_ERR(4, 4358, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19489, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19489, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4358, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4358, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4358, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4358, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19489, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19489, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4360, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4360, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19489, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 4358, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19489, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4360, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4360, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_280MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MASSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4381, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19491, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4382, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19492, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4383, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19493, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19494, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_MASSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SMA_Close(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -37163,48 +257009,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_282MAVP, "MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_283MAVP = {"MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_283MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_282MAVP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_283MAVP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_4open_and_fill, "SMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_periods = 0; - int __pyx_v_minperiod; - int __pyx_v_maxperiod; - int __pyx_v_matype; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAVP (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37214,197 +257053,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4391, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19505, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4391, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4391, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4391, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(4, 4391, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(4, 4391, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19505, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19505, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4391, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4391, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4391, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19505, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19505, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_periods = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4393, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4393, __pyx_L3_error) - } else { - __pyx_v_maxperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4393, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19506, __pyx_L3_error) } else { - __pyx_v_matype = ((int)((int)0)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 4391, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19505, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4393, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(4, 4393, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_282MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_SMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAVP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_periods); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4415, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4416, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19508, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4417, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19509, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4418, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19510, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19511, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4421, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4423, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19523, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19523, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19523, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_periods); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -37412,35 +257250,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_284MAX, "MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_285MAX = {"MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_285MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_284MAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_285MAX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_6update, "SMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAX (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37450,152 +257286,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4426, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19525, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4426, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19525, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(4, 4426, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19525, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(4, 4426, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4426, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4426, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19525, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4428, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19525, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19526, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4426, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19525, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4428, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_284MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4449, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SMA_Update(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4454, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -37603,35 +257389,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286MAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_8peek, "SMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37641,206 +257425,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4457, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19533, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4457, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4457, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19533, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(4, 4457, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19533, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(4, 4457, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4457, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4457, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19533, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4459, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19533, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19534, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4457, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19533, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4459, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_286MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SMA_Peek(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4480, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_SMA_Value(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_3 = __pyx_v_length; + if (__pyx_t_1) { - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); } - + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_SMA_OutRange(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SMA_Advance(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_288MEDPRICE, "MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_289MEDPRICE = {"MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_289MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_288MEDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_289MEDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMA_Stream_10copy, "SMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MEDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37849,131 +257660,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4491, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4491, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4491, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(4, 4491, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(4, 4491, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4491, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4491, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4491, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4493, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4493, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_288MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_self) { + TA_SMA_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MEDPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SMA_Clone(((TA_SMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4512, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4513, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + if (__pyx_t_1) { - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + } - __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream))))) __PYX_ERR(3, 19561, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4518, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -37982,249 +257736,319 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10SMI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SMI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10SMI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_SMI_Close(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_291MFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_290MFI, "MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_291MFI = {"MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_291MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_290MFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_291MFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MFI (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4521, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19591, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19591, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(4, 4521, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(4, 4521, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19591, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, i); __PYX_ERR(3, 19591, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19591, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19591, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4521, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4521, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4521, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4521, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19591, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19591, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19591, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19591, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4523, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 4521, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 19591, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4523, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_290MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SMI_Stream *__pyx_v_handle; + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4542, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4543, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4544, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4545, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4546, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19596, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4547, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19597, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19598, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SMI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); - __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SMI_Close(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + @@ -38232,47 +258056,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_292MIDPOINT, "MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_293MIDPOINT = {"MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_293MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_292MIDPOINT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_293MIDPOINT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_4open_and_fill, "SMI_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; + int __pyx_v_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIDPOINT (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38282,152 +258105,333 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4555, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19610, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19610, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19610, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(4, 4555, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(4, 4555, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19610, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, i); __PYX_ERR(3, 19610, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4555, __pyx_L3_error) + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19610, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19610, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19610, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19610, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19610, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4557, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)-2147483648); + } + if (values[6]) { + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4555, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 19610, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4557, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_292MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outsmi = 0; + PyArrayObject *__pyx_v_outsmisignal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_SMI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MIDPOINT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4576, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4578, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19615, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19615, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19615, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19616, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19617, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4581, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19618, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SMI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4583, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsmi)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 19631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsmisignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); + __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -38435,25 +258439,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_294MIDPRICE, "MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_295MIDPRICE = {"MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_295MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_294MIDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_295MIDPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_6update, "SMI_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -38464,7 +258467,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIDPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38474,169 +258477,156 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4586, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19633, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19633, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19633, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19633, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(4, 4586, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(4, 4586, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4586, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4586, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4586, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19633, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 19633, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4588, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19633, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19633, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19633, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19634, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19634, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19634, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4586, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19633, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4588, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4588, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_294MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MIDPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4608, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4609, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4610, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_SMI_Update(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -38644,35 +258634,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_296MIN, "MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_297MIN = {"MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_297MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_296MIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_297MIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_8peek, "SMI_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MIN (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38682,188 +258672,325 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4618, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19642, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19642, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(4, 4618, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(4, 4618, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4618, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4618, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19642, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 19642, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4620, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19642, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19642, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19642, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19643, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19643, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19643, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4618, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19642, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4620, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_296MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4639, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4641, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SMI_Peek(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { + double __pyx_v_outsmi; + double __pyx_v_outsmisignal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_SMI_Value(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SMI_OutRange(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SMI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SMI_Advance(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_298MININDEX, "MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_299MININDEX = {"MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_299MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_298MININDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_299MININDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SMI_Stream_10copy, "SMI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SMI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MININDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38872,148 +258999,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4649, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4649, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4649, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(4, 4649, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(4, 4649, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4649, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4649, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4651, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4649, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4651, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_298MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_self) { + TA_SMI_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - int __pyx_v_i; + struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MININDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4670, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("copy", 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4672, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_v_clone = NULL; - __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); + __pyx_v_retCode = TA_SMI_Clone(((TA_SMI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + if (__pyx_t_1) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_v_length; + } - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream))))) __PYX_ERR(3, 19672, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); - } + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -39022,217 +259075,218 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11SQRT_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { + int __pyx_t_1; - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_SQRT_Close(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_300MINMAX, "MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_301MINMAX = {"MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_301MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_300MINMAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_301MINMAX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINMAX (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4683, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19694, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4683, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4683, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19694, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(4, 4683, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19694, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(4, 4683, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4683, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4683, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19694, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4685, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19694, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4683, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19694, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4685, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_300MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SQRT_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outmin = 0; - PyArrayObject *__pyx_v_outmax = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINMAX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4706, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19696, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4708, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19697, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19698, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19699, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SQRT_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SQRT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outmin); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmin); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(4, 4715, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmax); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmax); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(4, 4715, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SQRT_Close(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -39240,45 +259294,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outmin); - __Pyx_XDECREF((PyObject *)__pyx_v_outmax); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_302MINMAXINDEX, "MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX = {"MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_302MINMAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_303MINMAXINDEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill, "SQRT_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINMAXINDEX (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39288,168 +259337,148 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4717, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19710, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4717, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(4, 4717, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19710, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(4, 4717, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4717, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4717, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19710, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4719, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19710, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4717, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19710, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4719, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outminidx = 0; - PyArrayObject *__pyx_v_outmaxidx = 0; - int *__pyx_v_outminidx_data; - int __pyx_v_i; - int *__pyx_v_outmaxidx_data; + TA_SQRT_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - npy_intp __pyx_t_3; + npy_intp __pyx_t_2; + int __pyx_t_3; int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINMAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4740, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19713, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4742, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19714, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19715, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19716, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4746, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_SQRT_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_3 = __pyx_v_length; + if (__pyx_t_4) { - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outminidx_data[__pyx_t_4]) = ((__pyx_v_outminidx_data[__pyx_t_4]) + __pyx_v_begidx); } + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); - - __pyx_t_3 = __pyx_v_length; - - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { - - - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outmaxidx_data[__pyx_t_4]) = ((__pyx_v_outmaxidx_data[__pyx_t_4]) + __pyx_v_begidx); - } + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4755, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outminidx); - __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(4, 4755, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx); - __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(4, 4755, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19728, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19728, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19728, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -39465,22 +259494,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outminidx); - __Pyx_XDECREF((PyObject *)__pyx_v_outmaxidx); - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -39488,37 +259517,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_304MINUS_DI, "MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_305MINUS_DI = {"MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_305MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_304MINUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_305MINUS_DI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_6update, "SQRT_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINUS_DI (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39528,184 +259553,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4757, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19730, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4757, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4757, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4757, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19730, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(4, 4757, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(4, 4757, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4757, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4757, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4757, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4757, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19730, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19730, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4759, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19730, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19731, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4757, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19730, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4759, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4759, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4759, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_304MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINUS_DI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4778, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4779, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4781, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4782, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_SQRT_Update(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -39713,36 +259656,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_306MINUS_DM, "MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_307MINUS_DM = {"MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_307MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_306MINUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_307MINUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_8peek, "SQRT_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MINUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39752,205 +259692,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4790, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19738, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4790, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4790, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(4, 4790, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(4, 4790, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4790, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4790, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4790, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19738, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19738, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4792, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19738, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19739, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4790, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19738, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4792, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4792, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_306MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MINUS_DM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SQRT_Peek(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4813, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4814, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4819, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_SQRT_Value(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + __pyx_r = TA_SQRT_OutRange(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SQRT_Advance(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_308MOM, "MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_309MOM = {"MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_309MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_308MOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_309MOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11SQRT_Stream_10copy, "SQRT_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MOM (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -39959,132 +259927,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4822, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4822, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4822, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(4, 4822, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(4, 4822, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4822, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4822, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4824, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4822, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4824, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_308MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_self) { + TA_SQRT_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MOM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_SQRT_Clone(((TA_SQRT_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4845, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4848, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream))))) __PYX_ERR(3, 19766, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -40093,200 +260003,251 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SQRT_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_STDDEV_Close(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_310MULT, "MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_311MULT = {"MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_311MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_310MULT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_311MULT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MULT (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4853, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19791, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19791, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4853, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4853, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(4, 4853, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(4, 4853, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19791, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 19791, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4853, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4853, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19791, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19791, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19791, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19791, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19791, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4853, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 19791, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4855, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4855, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_310MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { +static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_STDDEV_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MULT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4873, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4874, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19793, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4875, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19794, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4876, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19795, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19796, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_STDDEV_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_STDDEV_Close(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -40294,47 +260255,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_312NATR, "NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_313NATR = {"NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_313NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_312NATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_313NATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill, "STDDEV_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdev=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("NATR (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40344,184 +260300,210 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19807, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4884, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(4, 4884, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(4, 4884, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19807, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 19807, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 4884, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19807, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19807, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19807, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4886, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19808, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19808, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 19807, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4886, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4886, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4886, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_312NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_STDDEV_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("NATR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4906, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4907, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19810, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4908, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19811, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4909, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19812, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19813, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4912, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_STDDEV_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4914, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19825, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19825, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19825, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -40529,35 +260511,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_314NVI, "NVI(ndarray close, ndarray volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_315NVI = {"NVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_315NVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_314NVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_315NVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_6update, "STDDEV_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("NVI (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40567,152 +260547,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4917, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19827, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4917, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NVI", 0) < (0)) __PYX_ERR(4, 4917, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, i); __PYX_ERR(4, 4917, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19827, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19827, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4917, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19827, __pyx_L3_error) } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19828, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4917, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19827, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4919, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_314NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("NVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4938, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4939, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_STDDEV_Update(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4942, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_NVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4944, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -40720,35 +260650,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_316OBV, "OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_317OBV = {"OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_317OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_316OBV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_317OBV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_8peek, "STDDEV_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_volume = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("OBV (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40758,189 +260686,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4947, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19835, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4947, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(4, 4947, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(4, 4947, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19835, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19835, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4947, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19835, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19836, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4947, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19835, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4949, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4949, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_316OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("OBV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_STDDEV_Peek(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 4969, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4970, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4973, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_STDDEV_Value(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_STDDEV_OutRange(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_STDDEV_Advance(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_318PERCENTILE, "PERCENTILE(ndarray real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_319PERCENTILE = {"PERCENTILE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_319PERCENTILE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_318PERCENTILE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_319PERCENTILE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_10copy, "STDDEV_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_percentile; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PERCENTILE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -40949,146 +260921,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 4978, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTILE", 0) < (0)) __PYX_ERR(4, 4978, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, i); __PYX_ERR(4, 4978, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 4978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 4978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 4978, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4980, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 4980, __pyx_L3_error) - } else { - __pyx_v_percentile = ((double)((double)50.0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4978, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4980, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_318PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_self) { + TA_STDDEV_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PERCENTILE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_STDDEV_Clone(((TA_STDDEV_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5002, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5005, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_PERCENTILE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5007, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream))))) __PYX_ERR(3, 19863, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -41097,201 +260997,334 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.STDDEV_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12STOCH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_STOCH_Close(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_320PERCENTRANK, "PERCENTRANK(ndarray real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_321PERCENTRANK = {"PERCENTRANK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_321PERCENTRANK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_320PERCENTRANK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_321PERCENTRANK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PERCENTRANK (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5010, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19894, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5010, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5010, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTRANK", 0) < (0)) __PYX_ERR(4, 5010, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, i); __PYX_ERR(4, 5010, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19894, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 19894, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5010, __pyx_L3_error) + case 8: + values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19894, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5010, __pyx_L3_error) + case 7: + values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19894, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19894, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19894, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19894, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5012, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)0); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5010, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19894, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5012, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_320PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_STOCH_Stream *__pyx_v_handle; + double __pyx_v_outslowk; + double __pyx_v_outslowd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PERCENTRANK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5031, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5033, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5036, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19898, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19898, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19898, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_PERCENTRANK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19899, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19900, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19901, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_STOCH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_STOCH_Close(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + @@ -41299,46 +261332,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_322PLUS_DI, "PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_323PLUS_DI = {"PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_323PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_322PLUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_323PLUS_DI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill, "STOCH_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PLUS_DI (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41348,184 +261382,347 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5041, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19913, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(4, 5041, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19913, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(4, 5041, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 19913, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 8: + values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 7: + values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19913, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19913, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19913, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19913, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5043, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)0); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)-2147483648); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 5041, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19913, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5043, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5043, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5043, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_322PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outslowk = 0; + PyArrayObject *__pyx_v_outslowd = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_STOCH_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PLUS_DI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5062, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5063, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5064, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19918, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19918, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19918, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5065, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19919, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5066, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19920, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19921, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_STOCH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5071, __pyx_L1_error) + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outslowk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 19934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outslowd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outslowk); + __Pyx_XDECREF((PyObject *)__pyx_v_outslowd); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -41533,25 +261730,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_324PLUS_DM, "PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_325PLUS_DM = {"PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_325PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_324PLUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_325PLUS_DM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_6update, "STOCH_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -41562,7 +261758,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PLUS_DM (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41572,169 +261768,156 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5074, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19936, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19936, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(4, 5074, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(4, 5074, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5074, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5074, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5074, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19936, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 19936, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19936, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19936, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19936, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19937, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19937, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19937, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 5074, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19936, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5076, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5076, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_324PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outslowk; + double __pyx_v_outslowd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PLUS_DM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5097, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5098, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_STOCH_Update(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -41742,37 +261925,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_326PPO, "PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_327PPO = {"PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_327PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_326PPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_327PPO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_8peek, "STOCH_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PPO (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -41782,216 +261963,325 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5106, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19945, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5106, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19945, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19945, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19945, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(4, 5106, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(4, 5106, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5106, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5106, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5106, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5106, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19945, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 19945, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5108, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5108, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5108, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)((int)1)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19945, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19945, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19945, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19946, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19946, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19946, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 5106, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19945, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5108, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_326PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outslowk; + double __pyx_v_outslowd; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_STOCH_Peek(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { + double __pyx_v_outslowk; + double __pyx_v_outslowd; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_STOCH_Value(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + /* function exit code */ - goto __pyx_L0; __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PPO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5131, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_r = TA_STOCH_OutRange(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + /* function exit code */ + __pyx_L0:; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + return __pyx_r; +} - __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5136, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static TA_RetCode __pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); + + __pyx_r = TA_STOCH_Advance(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle)); } goto __pyx_L0; /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_328PVI, "PVI(ndarray close, ndarray volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_329PVI = {"PVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_329PVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_328PVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_329PVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12STOCH_Stream_10copy, "STOCH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PVI (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42000,131 +262290,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5139, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5139, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5139, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVI", 0) < (0)) __PYX_ERR(4, 5139, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, i); __PYX_ERR(4, 5139, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5139, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5139, __pyx_L3_error) - } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5139, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5141, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5141, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_328PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_self) { + TA_STOCH_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_STOCH_Clone(((TA_STOCH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5160, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5161, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + if (__pyx_t_1) { - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + } - __pyx_v_retCode = TA_PVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream))))) __PYX_ERR(3, 19975, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -42133,163 +262366,194 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_STOCHF_Close(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_330PVO, "PVO(ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_331PVO = {"PVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_331PVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_330PVO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_331PVO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PVO (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5169, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20004, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20004, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20004, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5169, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5169, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5169, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5169, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVO", 0) < (0)) __PYX_ERR(4, 5169, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, i); __PYX_ERR(4, 5169, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20004, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 20004, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5169, __pyx_L3_error) + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20004, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5169, __pyx_L3_error) + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20004, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5169, __pyx_L3_error) + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20004, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5169, __pyx_L3_error) + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20004, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20004, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20004, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_volume = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5171, __pyx_L3_error) + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20004, __pyx_L3_error) } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); + __pyx_v_fastk_period = ((int)-2147483648); } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5171, __pyx_L3_error) + if (values[4]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20004, __pyx_L3_error) } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + __pyx_v_fastd_period = ((int)-2147483648); } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5171, __pyx_L3_error) + if (values[5]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20004, __pyx_L3_error) } else { - __pyx_v_matype = ((int)((int)1)); + __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 5169, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 20004, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5171, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_330PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; @@ -42297,68 +262561,109 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { +static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_STOCHF_Stream *__pyx_v_handle; + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PVO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5194, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5197, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20008, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20008, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20008, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_PVO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20009, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20010, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20011, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_STOCHF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_STOCHF_Close(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + @@ -42366,44 +262671,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_332PVT, "PVT(ndarray close, ndarray volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_333PVT = {"PVT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_333PVT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_332PVT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_333PVT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill, "STOCHF_Stream.open_and_fill(high, low, close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("PVT (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42413,152 +262719,319 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5202, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20023, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20023, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20023, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVT", 0) < (0)) __PYX_ERR(4, 5202, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, i); __PYX_ERR(4, 5202, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20023, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 20023, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5202, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5202, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20023, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20023, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20023, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20023, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)0); } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5202, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 20023, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5204, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5204, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_332PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_STOCHF_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PVT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5221, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5222, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20028, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20028, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20028, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5223, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20029, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5224, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20030, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20031, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5227, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_PVT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_STOCHF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5229, __pyx_L1_error) + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20040, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -42566,25 +263039,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_334QSTICK, "QSTICK(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_335QSTICK = {"QSTICK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_335QSTICK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_334QSTICK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_335QSTICK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_6update, "STOCHF_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -42595,7 +263067,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("QSTICK (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42605,169 +263077,156 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5232, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20046, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20046, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "QSTICK", 0) < (0)) __PYX_ERR(4, 5232, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, i); __PYX_ERR(4, 5232, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5232, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5232, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5232, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20046, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20046, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5234, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20046, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20046, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20046, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20047, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20047, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20047, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 5232, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20046, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 5234, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5234, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_334QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("QSTICK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5255, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5256, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_STOCHF_Update(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_QSTICK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -42775,35 +263234,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_336RMA, "RMA(ndarray real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder\047s Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_337RMA = {"RMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_337RMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_336RMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_337RMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_8peek, "STOCHF_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RMA (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -42813,188 +263272,325 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5264, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20055, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20055, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20055, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20055, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RMA", 0) < (0)) __PYX_ERR(4, 5264, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, i); __PYX_ERR(4, 5264, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5264, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5264, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20055, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20055, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5266, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20055, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20055, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20055, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20056, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20056, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20056, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5264, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20055, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5266, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_336RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5287, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_STOCHF_Peek(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_RMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_STOCHF_Value(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_STOCHF_OutRange(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_STOCHF_Advance(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_338ROC, "ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_339ROC = {"ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_339ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_338ROC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_339ROC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_10copy, "STOCHF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROC (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43003,132 +263599,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5295, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5295, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5295, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(4, 5295, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(4, 5295, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5295, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5295, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5297, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5295, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5297, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_338ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_self) { + TA_STOCHF_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_STOCHF_Clone(((TA_STOCHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5318, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream))))) __PYX_ERR(3, 20085, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -43137,201 +263675,283 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_STOCHRSI_Close(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_340ROCP, "ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_341ROCP = {"ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_341ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_340ROCP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_341ROCP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCP (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5326, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20115, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5326, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5326, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(4, 5326, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20115, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(4, 5326, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 20115, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20115, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20115, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5326, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5326, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20115, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5328, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5326, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 20115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5328, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_340ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_STOCHRSI_Stream *__pyx_v_handle; + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROCP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5347, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20117, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5349, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20118, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20119, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20120, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_STOCHRSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_STOCHRSI_Close(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + @@ -43339,44 +263959,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_342ROCR, "ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_343ROCR = {"ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_343ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_342ROCR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_343ROCR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill, "STOCHRSI_Stream.open_and_fill(real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCR (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43386,152 +264006,287 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5357, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20132, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20132, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20132, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20132, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(4, 5357, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20132, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(4, 5357, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 20132, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20132, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20132, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20132, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20132, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5359, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)-2147483648); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5357, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 20132, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5359, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_342ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outfastk = 0; + PyArrayObject *__pyx_v_outfastd = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_STOCHRSI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROCR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5378, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20135, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5380, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20136, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20137, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20138, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5383, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_STOCHRSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5385, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); + __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -43539,35 +264294,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_344ROCR100, "ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_345ROCR100 = {"ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_345ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_344ROCR100}; -static PyObject *__pyx_pw_5talib_7_ta_lib_345ROCR100(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_6update, "STOCHRSI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ROCR100 (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43577,152 +264330,140 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5388, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20153, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5388, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(4, 5388, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20153, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(4, 5388, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5388, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5388, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20153, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5390, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20153, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20154, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5388, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20153, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5390, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_344ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ROCR100", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5411, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_STOCHRSI_Update(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -43730,35 +264471,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_346RSI, "RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_347RSI = {"RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_347RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_346RSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_347RSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_8peek, "STOCHRSI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RSI (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43768,189 +264507,309 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5419, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20162, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5419, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20162, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(4, 5419, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20162, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(4, 5419, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5419, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5419, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20162, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5421, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20162, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20163, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5419, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20162, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5421, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_346RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5442, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_STOCHRSI_Peek(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { + double __pyx_v_outfastk; + double __pyx_v_outfastd; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_STOCHRSI_Value(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_STOCHRSI_OutRange(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_STOCHRSI_Advance(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_348RVI, "RVI(ndarray real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_349RVI = {"RVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_349RVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_348RVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_349RVI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_10copy, "STOCHRSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_stddevperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RVI (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -43959,146 +264818,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5450, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5450, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5450, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5450, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVI", 0) < (0)) __PYX_ERR(4, 5450, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, i); __PYX_ERR(4, 5450, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5450, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5450, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5450, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5452, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5452, __pyx_L3_error) - } else { - __pyx_v_stddevperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5450, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5452, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_348RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_self) { + TA_STOCHRSI_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_STOCHRSI_Clone(((TA_STOCHRSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5474, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_RVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5479, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream))))) __PYX_ERR(3, 20192, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -44107,45 +264894,71 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10SUB_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SUB_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10SUB_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_SUB_Close(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_350RVOL, "RVOL(ndarray volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_351RVOL = {"RVOL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_351RVOL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_350RVOL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_351RVOL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -44153,155 +264966,164 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("RVOL (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5482, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5482, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5482, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVOL", 0) < (0)) __PYX_ERR(4, 5482, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, i); __PYX_ERR(4, 5482, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5482, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5482, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20215, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 20215, __pyx_L3_error) } } - } - __pyx_v_volume = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5484, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20215, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20215, __pyx_L3_error) } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5482, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 5484, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_350RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SUB_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RVOL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5505, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 20218, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 20218, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20219, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20220, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20221, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_retCode = TA_RVOL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_SUB_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUB_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SUB_Close(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); @@ -44309,46 +265131,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_352SAR, "SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_353SAR = {"SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_353SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_352SAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_353SAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_4open_and_fill, "SUB_Stream.open_and_fill(real0, real1)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUB_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_acceleration; - double __pyx_v_maximum; + PyObject *__pyx_v_real0 = 0; + PyObject *__pyx_v_real1 = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SAR (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44358,183 +265175,199 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5513, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20232, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5513, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5513, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(4, 5513, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20232, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(4, 5513, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5513, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5513, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5513, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5513, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 20232, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5515, __pyx_L3_error) - } else { - __pyx_v_acceleration = ((double)((double)0.02)); - } - if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5515, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_maximum = ((double)((double)0.2)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20232, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20232, __pyx_L3_error) } + __pyx_v_real0 = values[0]; + __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 5513, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20232, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5515, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5515, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_352SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(__pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject *__pyx_v_real0, PyObject *__pyx_v_real1) { + PyArrayObject *__pyx_v_a_real0 = 0; + PyArrayObject *__pyx_v_a_real1 = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_SUB_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("open_and_fill", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5535, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5536, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real0); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 20236, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_real1); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 20236, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5537, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20237, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5538, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20238, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20239, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5541, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SUB_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real1)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5543, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUB_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real0); + __Pyx_GIVEREF(__pyx_v_real0); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_real1); + __Pyx_GIVEREF(__pyx_v_real1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real1); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -44542,43 +265375,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_354SAREXT, "SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_355SAREXT = {"SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_355SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_354SAREXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_355SAREXT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_6update, "SUB_Stream.update(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_startvalue; - double __pyx_v_offsetonreverse; - double __pyx_v_accelerationinitlong; - double __pyx_v_accelerationlong; - double __pyx_v_accelerationmaxlong; - double __pyx_v_accelerationinitshort; - double __pyx_v_accelerationshort; - double __pyx_v_accelerationmaxshort; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SAREXT (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44588,267 +265412,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5546, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20253, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20253, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20253, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(4, 5546, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20253, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(4, 5546, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5546, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5546, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 20253, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) - } else { - __pyx_v_startvalue = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) - } else { - __pyx_v_offsetonreverse = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) - } else { - __pyx_v_accelerationinitlong = ((double)((double)-4e37)); - } - if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) - } else { - __pyx_v_accelerationlong = ((double)((double)-4e37)); - } - if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); - } - if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) - } else { - __pyx_v_accelerationinitshort = ((double)((double)-4e37)); - } - if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) - } else { - __pyx_v_accelerationshort = ((double)((double)-4e37)); - } - if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5548, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20253, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20253, __pyx_L3_error) } + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20254, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20254, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(4, 5546, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20253, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5548, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5548, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_354SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - - - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SAREXT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5576, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5577, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_SUB_Update(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -44856,34 +265523,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_356SIN, "SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_357SIN = {"SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_357SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_356SIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_357SIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_8peek, "SUB_Stream.peek(self, double real0, double real1)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real0; + double __pyx_v_real1; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SIN (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -44893,170 +265560,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5585, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20261, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20261, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20261, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(4, 5585, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(4, 5585, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20261, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 20261, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20261, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20261, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20262, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20262, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5585, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20261, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5587, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_356SIN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self), __pyx_v_real0, __pyx_v_real1); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, double __pyx_v_real0, double __pyx_v_real1) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5606, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SUB_Peek(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real0, __pyx_v_real1, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5611, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_SUB_Value(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SUB_OutRange(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUB_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SUB_Advance(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358SINH, "SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359SINH = {"SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358SINH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_359SINH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUB_Stream_10copy, "SUB_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUB_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SINH (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45065,115 +265803,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5614, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5614, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(4, 5614, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(4, 5614, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5614, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5614, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5616, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_358SINH(__pyx_self, __pyx_v_real); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_self) { + TA_SUB_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SINH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_SUB_Clone(((TA_SUB_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5635, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream))))) __PYX_ERR(3, 20289, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -45182,45 +265879,71 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SUB_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10SUM_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10SUM_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10SUM_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_SUM_Close(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360SMA, "SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361SMA = {"SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360SMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_361SMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -45228,155 +265951,164 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SMA (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5643, __pyx_L3_error) + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20313, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5643, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5643, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(4, 5643, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20313, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(4, 5643, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20313, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5643, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5643, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20313, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5645, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20313, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5643, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20313, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5645, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_360SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SUM_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5664, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20315, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5666, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20316, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20317, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20318, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5669, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SUM_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5671, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SUM_Close(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -45384,49 +266116,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362SMI, "SMI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363SMI = {"SMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363SMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362SMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_363SMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_4open_and_fill, "SUM_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUM_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SMI (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45436,211 +266160,165 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5674, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20329, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20329, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20329, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMI", 0) < (0)) __PYX_ERR(4, 5674, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, i); __PYX_ERR(4, 5674, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20329, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20329, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5674, __pyx_L3_error) + case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20329, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20329, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5676, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20330, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(4, 5674, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20329, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5676, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5676, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5676, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_362SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outsmi = 0; - PyArrayObject *__pyx_v_outsmisignal = 0; + TA_SUM_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5700, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5702, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20332, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5703, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20333, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5704, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20334, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20335, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5707, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5708, __pyx_L1_error) + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_SUM_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_SMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5710, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20347, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outsmi); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsmi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsmi)) != (0)) __PYX_ERR(4, 5711, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outsmisignal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outsmisignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outsmisignal)) != (0)) __PYX_ERR(4, 5711, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20347, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20347, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -45656,21 +266334,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outsmi); - __Pyx_XDECREF((PyObject *)__pyx_v_outsmisignal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -45678,23 +266357,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364SQRT, "SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365SQRT = {"SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364SQRT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_365SQRT(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_6update, "SUM_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -45705,7 +266383,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SQRT (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45717,133 +266395,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20349, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20349, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(4, 5713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20349, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(4, 5713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20349, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20349, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20350, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 5713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20349, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5715, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_364SQRT(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SQRT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5734, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_SUM_Update(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -45851,36 +266496,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366STDDEV, "STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367STDDEV = {"STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366STDDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_367STDDEV(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_8peek, "SUM_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdev; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STDDEV (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -45890,145 +266532,309 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5742, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20357, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5742, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5742, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(4, 5742, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20357, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(4, 5742, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5742, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5742, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5742, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20357, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5744, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5744, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_nbdev = ((double)((double)-4e37)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20357, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20358, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5742, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20357, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5744, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_366STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self), __pyx_v_real); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_SUM_Peek(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_SUM_Value(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SUM_OutRange(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10SUM_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SUM_Advance(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10SUM_Stream_10copy, "SUM_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10SUM_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_self) { + TA_SUM_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STDDEV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_SUM_Clone(((TA_SUM_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5766, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5769, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream))))) __PYX_ERR(3, 20385, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -46037,307 +266843,289 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SUM_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_SUPERTREND_Close(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368STOCH, "STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369STOCH = {"STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368STOCH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_369STOCH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCH (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5774, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20413, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5774, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5774, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5774, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(4, 5774, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20413, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(4, 5774, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(3, 20413, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(4, 5774, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(4, 5774, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5774, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5774, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5774, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5774, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20413, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20413, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20413, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20413, __pyx_L3_error) } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)0)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5776, __pyx_L3_error) + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20413, __pyx_L3_error) } else { - __pyx_v_slowd_matype = ((int)((int)0)); + __pyx_v_multiplier = ((double)3.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 5774, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 20413, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5776, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5776, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5776, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_368STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { +static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_SUPERTREND_Stream *__pyx_v_handle; + double __pyx_v_outreal; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outslowk = 0; - PyArrayObject *__pyx_v_outslowd = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STOCH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5802, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5803, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20417, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20417, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20417, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5804, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20418, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5805, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20419, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20420, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SUPERTREND_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outreal), (&__pyx_v_outinteger)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outslowk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(4, 5812, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outslowd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(4, 5812, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_SUPERTREND_Close(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + @@ -46345,51 +267133,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx - __Pyx_XDECREF((PyObject *)__pyx_v_outslowk); - __Pyx_XDECREF((PyObject *)__pyx_v_outslowd); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370STOCHF, "STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371STOCHF = {"STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370STOCHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_371STOCHF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill, "SUPERTREND_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + double __pyx_v_multiplier; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCHF (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46399,227 +267180,305 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5814, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20432, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5814, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(4, 5814, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20432, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(4, 5814, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, i); __PYX_ERR(3, 20432, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 5814, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20432, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20432, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20432, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20432, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5816, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20433, __pyx_L3_error) } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5816, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5816, __pyx_L3_error) + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20433, __pyx_L3_error) } else { - __pyx_v_fastd_matype = ((int)((int)0)); + __pyx_v_multiplier = ((double)3.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 5814, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 20432, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5816, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5816, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5816, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_370STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; + TA_SUPERTREND_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STOCHF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5839, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5840, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5841, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5842, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20437, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20437, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20437, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20438, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5843, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20439, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20440, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5846, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5847, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_SUPERTREND_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5850, __pyx_L1_error) + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outfastk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 5850, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfastd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 5850, __pyx_L1_error); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -46627,38 +267486,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372STOCHRSI, "STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373STOCHRSI = {"STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372STOCHRSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_373STOCHRSI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_6update, "SUPERTREND_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("STOCHRSI (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46668,116 +267524,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5852, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20455, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5852, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5852, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(4, 5852, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(4, 5852, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5852, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5852, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5852, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5852, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5852, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20455, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20455, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5854, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_fastd_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20455, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20455, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20455, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20456, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20456, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20456, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 5852, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20455, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5854, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_372STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - @@ -46785,92 +267589,91 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outfastk = 0; - PyArrayObject *__pyx_v_outfastd = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("STOCHRSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5878, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5880, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_v_retCode = TA_SUPERTREND_Update(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal), (&__pyx_v_outinteger)); - __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outfastk); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(4, 5887, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outfastd); - __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(4, 5887, __pyx_L1_error); + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outfastk); - __Pyx_XDECREF((PyObject *)__pyx_v_outfastd); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -46878,35 +267681,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374SUB, "SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375SUB = {"SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374SUB}; -static PyObject *__pyx_pw_5talib_7_ta_lib_375SUB(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_8peek, "SUPERTREND_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUB (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -46916,188 +267719,325 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5889, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20464, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20464, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(4, 5889, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(4, 5889, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20464, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20464, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20464, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20464, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20464, __pyx_L3_error) } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20465, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20465, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20465, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 5889, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20464, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 5891, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 5891, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_374SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + int __pyx_v_outinteger; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUB", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5909, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_SUPERTREND_Peek(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal), (&__pyx_v_outinteger)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5911, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5912, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { + double __pyx_v_outreal; + int __pyx_v_outinteger; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_SUPERTREND_Value(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal), (&__pyx_v_outinteger)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + + __pyx_r = TA_SUPERTREND_OutRange(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_SUPERTREND_Advance(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376SUM, "SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377SUM = {"SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376SUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_377SUM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_10copy, "SUPERTREND_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUM (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47106,132 +268046,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5920, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5920, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5920, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(4, 5920, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(4, 5920, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5920, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5920, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5922, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5920, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5922, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_376SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { + TA_SUPERTREND_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_SUPERTREND_Clone(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5943, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream))))) __PYX_ERR(3, 20494, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -47240,262 +268122,251 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_9T3_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_9T3_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_9T3_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_T3_Close(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378SUPERTREND, "SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379SUPERTREND = {"SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378SUPERTREND}; -static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - double __pyx_v_multiplier; - #if !CYTHON_VECTORCALL + double __pyx_v_vfactor; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("SUPERTREND (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5951, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20519, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5951, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5951, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5951, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5951, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5951, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUPERTREND", 0) < (0)) __PYX_ERR(4, 5951, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, i); __PYX_ERR(4, 5951, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20519, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 20519, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 5951, __pyx_L3_error) + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20519, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 5951, __pyx_L3_error) + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20519, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5951, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5951, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5951, __pyx_L3_error) + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20519, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5953, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20519, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } - if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5953, __pyx_L3_error) + if (values[2]) { + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20519, __pyx_L3_error) } else { - __pyx_v_multiplier = ((double)((double)3.0)); + __pyx_v_vfactor = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(4, 5951, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20519, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5953, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5953, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5953, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_378SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { +static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_T3_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SUPERTREND", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5976, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5977, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20521, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 5978, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20522, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5979, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20523, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20524, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5982, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_T3_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5983, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5985, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outreal)) != (0)) __PYX_ERR(4, 5986, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __Pyx_GIVEREF((PyObject *)__pyx_v_outinteger); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outinteger)) != (0)) __PYX_ERR(4, 5986, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_T3_Close(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -47503,35 +268374,29 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380T3, "T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381T3 = {"T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380T3}; -static PyObject *__pyx_pw_5talib_7_ta_lib_381T3(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_4open_and_fill, "T3_Stream.open_and_fill(real, int timeperiod=-0x80000000, double vfactor=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9T3_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; double __pyx_v_vfactor; #if !CYTHON_VECTORCALL @@ -47544,7 +268409,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("T3 (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47556,164 +268421,208 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 5988, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20535, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20535, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20535, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20535, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(4, 5988, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20535, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(4, 5988, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 20535, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20535, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20535, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20535, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5990, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20536, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 5990, __pyx_L3_error) + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20536, __pyx_L3_error) } else { - __pyx_v_vfactor = ((double)((double)-4e37)); + __pyx_v_vfactor = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5988, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20535, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5990, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_380T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_T3_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("T3", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6010, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20538, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6012, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20539, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20540, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20541, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6015, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_T3_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6017, __pyx_L1_error) + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_T3_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20553, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20553, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20553, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -47721,23 +268630,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382TAN, "TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383TAN = {"TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382TAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_383TAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_6update, "T3_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -47748,7 +268656,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TAN (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47760,133 +268668,100 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6020, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20555, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(4, 6020, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20555, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(4, 6020, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20555, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20555, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20556, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 6020, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20555, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6022, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_382TAN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6039, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6041, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_T3_Update(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6046, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -47894,23 +268769,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384TANH, "TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385TANH = {"TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384TANH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_385TANH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_8peek, "T3_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -47921,7 +268795,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TANH (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -47933,169 +268807,231 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6049, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20563, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6049, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20563, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(4, 6049, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20563, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(4, 6049, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20563, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6049, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20563, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20564, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 6049, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20563, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6051, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_384TANH(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TANH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6070, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_T3_Peek(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6075, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + __pyx_v_retCode = TA_T3_Value(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_T3_OutRange(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_9T3_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_T3_Advance(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_387TEMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386TEMA, "TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387TEMA = {"TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386TEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_387TEMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9T3_Stream_10copy, "T3_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9T3_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TEMA (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48104,132 +269040,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6078, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6078, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6078, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(4, 6078, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(4, 6078, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6078, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6078, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6080, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6078, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6080, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_386TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_self) { + TA_T3_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_T3_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TEMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_T3_Clone(((TA_T3_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6101, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream))))) __PYX_ERR(3, 20591, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -48238,215 +269116,218 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.T3_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10TAN_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10TAN_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10TAN_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_TAN_Close(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388TRANGE, "TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389TRANGE = {"TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388TRANGE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_389TRANGE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6109, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20613, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6109, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6109, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6109, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(4, 6109, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(4, 6109, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20613, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20613, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6109, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6109, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6109, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20613, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6109, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20613, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6111, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6111, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6111, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_388TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_TAN_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TRANGE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6128, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6129, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6130, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20615, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6131, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20616, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6132, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20617, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20618, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TAN_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_TAN_Close(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -48454,46 +269335,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390TRIMA, "TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391TRIMA = {"TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390TRIMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_391TRIMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_4open_and_fill, "TAN_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TAN_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48503,152 +269378,179 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6140, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20629, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6140, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(4, 6140, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20629, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(4, 6140, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6140, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6140, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20629, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6142, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20629, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6140, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20629, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6142, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_390TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_TAN_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TRIMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6161, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20632, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6163, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20633, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20634, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20635, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TAN_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6168, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20647, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20647, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20647, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -48656,35 +269558,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392TRIX, "TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393TRIX = {"TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392TRIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_393TRIX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_6update, "TAN_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TRIX (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48694,152 +269594,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20649, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6171, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20649, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(4, 6171, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20649, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(4, 6171, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6171, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6171, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20649, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6173, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20649, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20650, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20649, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6173, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_392TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TRIX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6194, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_TAN_Update(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -48847,35 +269697,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394TSF, "TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395TSF = {"TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394TSF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_395TSF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_8peek, "TAN_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TSF (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -48885,152 +269733,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6202, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20657, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6202, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(4, 6202, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20657, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(4, 6202, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6202, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6202, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20657, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6204, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20657, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20658, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6202, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20657, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6204, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_394TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TSF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6225, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_TAN_Peek(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6228, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -49038,242 +269836,130 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_397TSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396TSI, "TSI(ndarray real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397TSI = {"TSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397TSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396TSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_397TSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_firstperiod; - int __pyx_v_secondperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TSI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6233, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6233, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6233, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6233, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSI", 0) < (0)) __PYX_ERR(4, 6233, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, i); __PYX_ERR(4, 6233, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6233, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6233, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6233, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6235, __pyx_L3_error) - } else { - __pyx_v_firstperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6235, __pyx_L3_error) - } else { - __pyx_v_secondperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 6233, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6235, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_396TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6257, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_TAN_Value(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_TSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6262, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_TAN_OutRange(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TAN_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TAN_Advance(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_399TYPPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398TYPPRICE, "TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399TYPPRICE = {"TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398TYPPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_399TYPPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TAN_Stream_10copy, "TAN_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TAN_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -49282,145 +269968,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6265, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6265, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6265, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6265, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(4, 6265, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(4, 6265, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6265, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6265, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6265, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6265, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6267, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6267, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6267, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_398TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_self) { + TA_TAN_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("TYPPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TAN_Clone(((TA_TAN_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6287, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6288, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream))))) __PYX_ERR(3, 20685, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -49429,265 +270044,218 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.TAN_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11TANH_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11TANH_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11TANH_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_TANH_Close(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400ULTOSC, "ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401ULTOSC = {"ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400ULTOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_401ULTOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod1; - int __pyx_v_timeperiod2; - int __pyx_v_timeperiod3; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6296, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20707, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6296, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(4, 6296, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(4, 6296, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6296, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6296, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6296, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6296, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20707, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20707, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6298, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6298, __pyx_L3_error) - } else { - __pyx_v_timeperiod2 = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6298, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod3 = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20707, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 6296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20707, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6298, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6298, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6298, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_400ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { +static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_TANH_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ULTOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6320, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6321, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20709, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6322, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20710, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6323, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20711, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20712, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + __pyx_v_handle = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6326, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TANH_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); - __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6328, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TANH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_TANH_Close(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -49695,47 +270263,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_403VAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402VAR, "VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403VAR = {"VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402VAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_403VAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_4open_and_fill, "TANH_Stream.open_and_fill(real)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TANH_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdev; + PyObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VAR (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -49745,166 +270306,179 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6331, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20723, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6331, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6331, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(4, 6331, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20723, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(4, 6331, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6331, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6331, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6331, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20723, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6333, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 6333, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_nbdev = ((double)((double)-4e37)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20723, __pyx_L3_error) } + __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 6331, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20723, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6333, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_402VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(__pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject *__pyx_v_real) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_TANH_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6353, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20726, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6355, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20727, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20728, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20729, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6358, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TANH_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6360, __pyx_L1_error) + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TANH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20741, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20741, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20741, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -49912,35 +270486,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404VHF, "VHF(ndarray real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405VHF = {"VHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405VHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404VHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_405VHF(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_6update, "TANH_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VHF (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -49950,152 +270522,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6363, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20743, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6363, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20743, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VHF", 0) < (0)) __PYX_ERR(4, 6363, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20743, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, i); __PYX_ERR(4, 6363, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6363, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6363, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20743, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6365, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20743, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20744, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6363, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20743, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6365, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_404VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VHF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6386, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_v_retCode = TA_TANH_Update(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6389, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_VHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -50103,37 +270625,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406VORTEX, "VORTEX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407VORTEX = {"VORTEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407VORTEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406VORTEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_407VORTEX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_8peek, "TANH_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VORTEX (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50143,237 +270661,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6394, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20751, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6394, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6394, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6394, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VORTEX", 0) < (0)) __PYX_ERR(4, 6394, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, i); __PYX_ERR(4, 6394, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6394, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6394, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6394, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6394, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20751, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20751, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6396, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20751, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20752, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 6394, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20751, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6396, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6396, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6396, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_406VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outplusvi = 0; - PyArrayObject *__pyx_v_outminusvi = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VORTEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TANH_Peek(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6420, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6421, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_retCode = TA_VORTEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6427, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outplusvi); - __Pyx_GIVEREF((PyObject *)__pyx_v_outplusvi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outplusvi)) != (0)) __PYX_ERR(4, 6428, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outminusvi); - __Pyx_GIVEREF((PyObject *)__pyx_v_outminusvi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outminusvi)) != (0)) __PYX_ERR(4, 6428, __pyx_L1_error); + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_TANH_Value(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_TANH_OutRange(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TANH_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TANH_Advance(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); - __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408VWAP, "VWAP(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409VWAP = {"VWAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409VWAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408VWAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_409VWAP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TANH_Stream_10copy, "TANH_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TANH_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VWAP (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50382,159 +270896,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6430, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6430, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6430, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6430, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6430, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWAP", 0) < (0)) __PYX_ERR(4, 6430, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, i); __PYX_ERR(4, 6430, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6430, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6430, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6430, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6430, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 6430, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 6432, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_408VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_self) { + TA_TANH_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VWAP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6450, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TANH_Clone(((TA_TANH_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6453, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6454, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream))))) __PYX_ERR(3, 20779, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_VWAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6459, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -50543,221 +270972,236 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.TANH_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11TEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_TEMA_Close(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410VWMA, "VWMA(ndarray real, ndarray volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411VWMA = {"VWMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411VWMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410VWMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_411VWMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_volume = 0; + PyObject *__pyx_v_real = 0; int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("VWMA (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6462, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20803, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6462, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6462, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20803, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6462, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWMA", 0) < (0)) __PYX_ERR(4, 6462, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, i); __PYX_ERR(4, 6462, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20803, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20803, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6462, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6462, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6462, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20803, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6464, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20803, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 6462, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20803, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6464, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 6464, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_410VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_TEMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("VWMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6484, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20805, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20806, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20807, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20808, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TEMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6486, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6487, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + if (__pyx_t_4) { - __pyx_v_retCode = TA_VWMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6492, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (void)(TA_TEMA_Close(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle))); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -50765,46 +271209,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412WAD, "WAD(ndarray high, ndarray low, ndarray close)\n\nWAD(high, low, close)\n\nWilliams\047 Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413WAD = {"WAD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413WAD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412WAD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_413WAD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill, "TEMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WAD (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -50814,167 +271253,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6495, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20819, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6495, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20819, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20819, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAD", 0) < (0)) __PYX_ERR(4, 6495, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, i); __PYX_ERR(4, 6495, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20819, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20819, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6495, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6495, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6495, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20819, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20819, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20820, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6495, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20819, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6497, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6497, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6497, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_412WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; + int __pyx_v_historylen; int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + TA_TEMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WAD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6516, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20822, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6517, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20823, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6518, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20824, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20825, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6521, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_WAD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_v_handle = NULL; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6523, __pyx_L1_error) + __pyx_v_retCode = TA_TEMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20837, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20837, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20837, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -50982,36 +271450,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414WCLPRICE, "WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415WCLPRICE = {"WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414WCLPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_415WCLPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_6update, "TEMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WCLPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51021,167 +271486,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6526, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20839, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6526, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6526, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20839, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(4, 6526, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(4, 6526, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20839, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20839, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 3)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6526, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6526, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20839, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20840, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 6526, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20839, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6528, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6528, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6528, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_414WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WCLPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6546, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6548, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6549, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_v_retCode = TA_TEMA_Update(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -51189,37 +271589,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416WILLR, "WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams\047 %R (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417WILLR = {"WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416WILLR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_417WILLR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_8peek, "TEMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WILLR (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51229,220 +271625,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6557, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20847, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6557, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6557, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6557, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20847, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(4, 6557, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(4, 6557, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(4, 6557, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(4, 6557, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6557, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6557, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20847, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20847, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6559, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20847, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20848, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 6557, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20847, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 6559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 6559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 6559, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_416WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WILLR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6578, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TEMA_Peek(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 6581, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6582, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + } - __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6587, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_TEMA_Value(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_TEMA_OutRange(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TEMA_Advance(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418WMA, "WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419WMA = {"WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418WMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_419WMA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TEMA_Stream_10copy, "TEMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("WMA (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51451,132 +271860,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6590, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6590, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6590, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(4, 6590, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(4, 6590, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6590, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6590, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6592, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6590, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6592, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_418WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_self) { + TA_TEMA_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("WMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6611, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_TEMA_Clone(((TA_TEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6613, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + if (__pyx_t_1) { - __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6616, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream))))) __PYX_ERR(3, 20875, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -51585,201 +271936,254 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.TEMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_TRANGE_Close(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420ZLEMA, "ZLEMA(ndarray real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421ZLEMA = {"ZLEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421ZLEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420ZLEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_421ZLEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("ZLEMA (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(4, 6621, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20897, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20897, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6621, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6621, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20897, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZLEMA", 0) < (0)) __PYX_ERR(4, 6621, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(4, 6621, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(4, 6621, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(4, 6621, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20897, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 20897, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6623, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20897, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20897, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20897, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 6621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20897, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 6623, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_420ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; + int __pyx_v_historylen; + TA_TRANGE_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("ZLEMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6642, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(4, 6644, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6647, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20901, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20901, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20901, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_ZLEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20902, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 6649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20903, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20904, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TRANGE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRANGE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_TRANGE_Close(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); @@ -51787,43 +272191,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422str2bytes, "str2bytes(s)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422str2bytes}; -static PyObject *__pyx_pw_5talib_7_ta_lib_423str2bytes(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill, "TRANGE_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_s = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51833,45 +272236,59 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 73, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20915, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20915, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20915, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 73, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 73, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20915, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 20915, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 73, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20915, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20915, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20915, __pyx_L3_error) } - __pyx_v_s = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 73, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20915, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_422str2bytes(__pyx_self, __pyx_v_s); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -51881,26 +272298,124 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_TRANGE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("str2bytes", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_2 = NULL; - __pyx_t_3 = 1; - { - PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_s, __pyx_mstate_global->__pyx_n_u_ascii}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyBytes_Type), __pyx_callargs+__pyx_t_3, (3-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 74, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20920, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20920, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20920, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20921, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20922, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20923, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TRANGE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -51916,10 +272431,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -51927,34 +272456,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_422str2bytes(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424bytes2str, "bytes2str(b)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424bytes2str}; -static PyObject *__pyx_pw_5talib_7_ta_lib_425bytes2str(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_6update, "TRANGE_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_b = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -51964,94 +272494,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 76, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20937, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20937, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20937, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20937, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 76, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 76, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20937, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20937, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 76, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20937, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20937, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20937, __pyx_L3_error) } - __pyx_v_b = values[0]; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20938, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20938, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20938, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 76, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20937, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_424bytes2str(__pyx_self, __pyx_v_b); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("bytes2str", 0); + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_TRANGE_Update(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __pyx_v_b; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ascii}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_decode, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -52059,34 +272613,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_424bytes2str(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426str2bytes, "str2bytes(s)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427str2bytes = {"str2bytes", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427str2bytes, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426str2bytes}; -static PyObject *__pyx_pw_5talib_7_ta_lib_427str2bytes(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_8peek, "TRANGE_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_s = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -52096,73 +272651,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_s,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 81, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20945, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20945, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20945, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20945, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "str2bytes", 0) < (0)) __PYX_ERR(2, 81, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, i); __PYX_ERR(2, 81, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20945, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20945, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 81, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20945, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20945, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20945, __pyx_L3_error) } - __pyx_v_s = values[0]; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20946, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20946, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20946, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("str2bytes", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 81, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20945, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_426str2bytes(__pyx_self, __pyx_v_s); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_s) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("str2bytes", 0); + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_TRANGE_Peek(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_s); - __pyx_r = __pyx_v_s; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -52170,149 +272770,130 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_426str2bytes(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428bytes2str, "bytes2str(b)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429bytes2str = {"bytes2str", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429bytes2str, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428bytes2str}; -static PyObject *__pyx_pw_5talib_7_ta_lib_429bytes2str(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_b = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_b,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 84, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "bytes2str", 0) < (0)) __PYX_ERR(2, 84, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, i); __PYX_ERR(2, 84, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 84, __pyx_L3_error) - } - __pyx_v_b = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("bytes2str", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 84, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_428bytes2str(__pyx_self, __pyx_v_b); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_428bytes2str(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_b) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str", 0); + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_TRANGE_Value(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_b); - __pyx_r = __pyx_v_b; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TRANGE_OutRange(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TRANGE_Advance(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function___init__, "Function.__init__(self, function_name, func_object, *args, **kwargs)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_1__init__ = {"__init__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_1__init__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function___init__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_10copy, "TRANGE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_function_name = 0; - PyObject *__pyx_v_func_object = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -52321,196 +272902,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 3, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_func_object,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 116, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - default: - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 3) ? kwd_pos_args : 3; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__init__", 1) < (0)) __PYX_ERR(2, 116, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, i); __PYX_ERR(2, 116, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs < 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 116, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 116, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 116, __pyx_L3_error) - } - __pyx_v_self = values[0]; - __pyx_v_function_name = values[1]; - __pyx_v_func_object = values[2]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 3, __pyx_nargs); __PYX_ERR(2, 116, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function___init__(__pyx_self, __pyx_v_self, __pyx_v_function_name, __pyx_v_func_object, __pyx_v_args, __pyx_v_kwargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_v_self)); /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_function_name, PyObject *__pyx_v_func_object, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_self) { + TA_TRANGE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_2 = __pyx_v_function_name; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_upper, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 118, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__namestr, __pyx_t_1) < (0)) __PYX_ERR(2, 119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_TRANGE_Clone(((TA_TRANGE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str2bytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_3 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name, __pyx_t_1) < (0)) __PYX_ERR(2, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_threading); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_local); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_3 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_2, __pyx__function); - __pyx_t_3 = 0; } - #endif + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_2, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (__pyx_t_3*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata, __pyx_t_1) < (0)) __PYX_ERR(2, 123, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream))))) __PYX_ERR(3, 20973, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object, __pyx_v_func_object) < (0)) __PYX_ERR(2, 127, __pyx_L1_error) + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } goto __pyx_L0; + + + /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.TRANGE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -52518,643 +272993,263 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static void __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_TRIMA_Close(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_2__local, "Function.__local(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_3__local = {"__local", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_3__local, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_2__local}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__local (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 129, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20997, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20997, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__local", 0) < (0)) __PYX_ERR(2, 129, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20997, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, i); __PYX_ERR(2, 129, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20997, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 129, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20997, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20997, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20997, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__local", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 129, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20997, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_2__local(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_info = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_param_name = NULL; - PyObject *__pyx_v_output_name = NULL; - PyObject *__pyx_r = NULL; +static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_TRIMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__local", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 131, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 132, __pyx_L1_error) - __pyx_t_3 = (!__pyx_t_2); - - - if (__pyx_t_3) { - - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, Py_None) < (0)) __PYX_ERR(2, 133, __pyx_L1_error) - - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_1) < (0)) __PYX_ERR(2, 134, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 137, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs, __pyx_t_1) < (0)) __PYX_ERR(2, 138, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 140, __pyx_L1_error) - - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_1) < (0)) __PYX_ERR(2, 143, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_4 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __pyx_t_8; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_inputs}; - __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 146, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - { - __pyx_t_1 = __pyx_t_9(__pyx_t_7); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 146, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20999, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21000, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 == Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21001, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21002, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_8) < 0))) __PYX_ERR(2, 150, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_handle = NULL; - } + __pyx_v_retCode = TA_TRIMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(2, 151, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_4 = (__pyx_v_retCode != 0); - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_4) { - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_7) < 0))) __PYX_ERR(2, 152, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_opt_inputs}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_1}; - __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 155, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRIMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 155, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - for (;;) { - { - __pyx_t_7 = __pyx_t_9(__pyx_t_1); - if (unlikely(!__pyx_t_7)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 155, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_7); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_7); - __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_8); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_v_i}; - __pyx_t_7 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_7); - __pyx_t_7 = 0; + } - __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_7); - __pyx_t_7 = 0; + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(2, 158, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_4) { - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 159, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (void)(TA_TRIMA_Close(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_t_7 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_7); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_1) < 0))) __PYX_ERR(2, 162, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_4 = NULL; - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __pyx_t_8; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_n_u_num_outputs}; - __pyx_t_7 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_pop, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - } - __pyx_t_6 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 163, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - { - __pyx_t_1 = __pyx_t_9(__pyx_t_7); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 163, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_8, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_5, __pyx_v_i}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_8, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_mstate_global->__pyx_n_u_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_output_name, __pyx_t_1) < 0))) __PYX_ERR(2, 166, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(2, 167, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_7) < 0))) __PYX_ERR(2, 168, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_local); - __pyx_r = __pyx_v_local; - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.__local", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_info); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_param_name); - __Pyx_XDECREF(__pyx_v_output_name); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_4info, "Function.info(self)\n\nReturns a copy of the function\047s info dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_5info = {"info", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_5info, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_4info}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill, "TRIMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("info (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53164,83 +273259,165 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21013, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21013, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21013, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "info", 0) < (0)) __PYX_ERR(2, 171, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21013, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, i); __PYX_ERR(2, 171, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21013, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 171, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21013, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21013, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21014, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("info", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21013, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_4info(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_TRIMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("info", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 176, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21016, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21017, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21018, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21019, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TRIMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21031, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21031, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21031, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -53256,12 +273433,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.info", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -53269,23 +273456,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_6function_flags, "Function.function_flags(self)\n\nReturns any function flags defined for this indicator function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_7function_flags = {"function_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_7function_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_6function_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_6update, "TRIMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -53296,7 +273482,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("function_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53306,91 +273492,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 178, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21033, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21033, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "function_flags", 0) < (0)) __PYX_ERR(2, 178, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21033, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, i); __PYX_ERR(2, 178, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21033, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21033, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21034, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("function_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21033, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_6function_flags(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("function_flags", 0); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 183, __pyx_L1_error) + __pyx_v_retCode = TA_TRIMA_Update(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.function_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -53398,23 +273595,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSE /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_8output_flags, "Function.output_flags(self)\n\nReturns the flags for each output for this indicator function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_9output_flags = {"output_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_9output_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_8output_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_8peek, "TRIMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -53425,7 +273621,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("output_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53435,142 +273631,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 185, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21041, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_flags", 0) < (0)) __PYX_ERR(2, 185, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21041, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, i); __PYX_ERR(2, 185, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21041, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21041, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21042, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("output_flags", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 185, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21041, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_8output_flags(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("output_flags", 0); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __pyx_t_3; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; + __pyx_v_retCode = TA_TRIMA_Peek(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_TRIMA_Value(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.output_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TRIMA_OutRange(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TRIMA_Advance(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_10get_input_names, "Function.get_input_names(self)\n\nReturns the dict of input price series names that specifies which\nof the ndarrays in input_arrays will be used to calculate the function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names = {"get_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_10get_input_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_10copy, "TRIMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_input_names (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -53579,178 +273866,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 192, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_names", 0) < (0)) __PYX_ERR(2, 192, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, i); __PYX_ERR(2, 192, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 192, __pyx_L3_error) - } - __pyx_v_self = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_input_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 192, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(__pyx_self, __pyx_v_self); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_v_self)); /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_input_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_self) { + TA_TRIMA_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_input_names", 0); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TRIMA_Clone(((TA_TRIMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 199, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 199, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 199, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 199, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 200, __pyx_L1_error) + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream))))) __PYX_ERR(3, 21069, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_ret); - __pyx_r = __pyx_v_ret; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -53759,15 +273942,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_input_name); + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -53775,25 +273957,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static void __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_11TRIX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_TRIX_Close(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_12set_input_names, "Function.set_input_names(self, input_names)\n\nSets the input price series names to use."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names = {"set_input_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_12set_input_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_names = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -53801,285 +274014,206 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_input_names (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_names,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 203, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21093, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_names", 0) < (0)) __PYX_ERR(2, 203, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, i); __PYX_ERR(2, 203, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21093, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21093, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 203, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 203, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21093, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21093, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21093, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_self = values[0]; - __pyx_v_input_names = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_input_names", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 203, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21093, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(__pyx_self, __pyx_v_self, __pyx_v_input_names); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_names) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_price_series = NULL; - PyObject *__pyx_r = NULL; +static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_TRIX_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_input_names", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_input_names; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 208, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 208, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 208, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 208, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 208, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_6); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_7); - } else { - __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); - } - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 208, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 208, __pyx_L1_error) - __pyx_L6_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_6); - __pyx_t_6 = 0; - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7); - __pyx_t_7 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21095, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(2, 209, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21096, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 210, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21097, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21098, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TRIX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRIX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(2, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 211, __pyx_L1_error) + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_TRIX_Close(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_names", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_price_series); - __Pyx_XGIVEREF(__pyx_r); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays, "Function.get_input_arrays(self)\n\nReturns a copy of the dict of input arrays in use."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays = {"get_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_14get_input_arrays}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill, "TRIX_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_input_arrays (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54089,164 +274223,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 215, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21109, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21109, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_input_arrays", 0) < (0)) __PYX_ERR(2, 215, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21109, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, i); __PYX_ERR(2, 215, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21109, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 215, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21109, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21109, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21110, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_input_arrays", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 215, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21109, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_TRIX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; + npy_intp __pyx_t_2; int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; + int __pyx_t_4; PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_input_arrays", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 219, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 220, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21112, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - } else { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21113, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_2 = __pyx_t_3; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21114, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - goto __pyx_L4_bool_binop_done; - } + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21115, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 221, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_4); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 221, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_t_3; + __pyx_v_handle = NULL; - __pyx_L4_bool_binop_done:; + __pyx_v_retCode = TA_TRIX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - if (__pyx_t_2) { + __pyx_t_4 = (__pyx_v_retCode != 0); + if (__pyx_t_4) { - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_clone, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_4 = 0; - goto __pyx_L0; + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __pyx_t_1; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_copy, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21127, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21127, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21127, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - __pyx_t_4 = 0; - goto __pyx_L0; + __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; + goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.get_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -54254,35 +274420,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays, "Function.set_input_arrays(self, input_arrays)\n\nSets the dict of input_arrays to use. Returns True/False for\nsubclasses:\n\nIf input_arrays is a dict with the keys open, high, low, close and\nvolume, it is assigned as the input_array to use and this function\nreturns True, returning False otherwise. If you implement your own\ndata type and wish to subclass Function, you should wrap this function\nwith an if-statement:\n\nclass CustomFunction(Function):\n def __init__(self, function_name):\n Function.__init__(self, function_name)\n\n def set_input_arrays(self, input_data):\n if Function.set_input_arrays(self, input_data):\n return True\n elif isinstance(input_data, some_module.CustomDataType):\n input_arrays = Function.get_input_arrays(self)\n # convert input_data to input_arrays and then call the super\n Function.set_input_arrays(self, input_arrays)\n return True\n return False"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays = {"set_input_arrays", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_16set_input_arrays}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_6update, "TRIX_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_arrays = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_input_arrays (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54292,331 +274456,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 226, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21129, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21129, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "set_input_arrays", 0) < (0)) __PYX_ERR(2, 226, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, i); __PYX_ERR(2, 226, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21129, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21129, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 226, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21129, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_input_arrays = values[1]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21130, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_input_arrays", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 226, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21129, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_missing_keys = NULL; - PyObject *__pyx_v_key = NULL; - PyObject *__pyx_v_missing = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - int __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11[4]; - int __pyx_t_12; - PyObject *__pyx_t_13 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_input_arrays", 0); - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(2, 252, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_missing_keys = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 254, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 254, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 254, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); - __pyx_t_1 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { + __Pyx_RefNannySetupContext("update", 0); - } else { - - __pyx_t_2 = __pyx_t_7; - - goto __pyx_L7_bool_binop_done; - } - - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 256, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_t_7; - - __pyx_L7_bool_binop_done:; - - if (__pyx_t_2) { - - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_mstate_global->__pyx_n_u_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_1, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); - __pyx_t_1 = 0; - - goto __pyx_L6; - } - - /*else*/ { - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 259, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); - __pyx_t_1 = 0; - } - __pyx_L6:; - - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 260, __pyx_L1_error) - if (__pyx_t_2) { - - - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 261, __pyx_L1_error) - - - } - - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 262, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 == 0); - - - if (likely(__pyx_t_2)) { - - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_v_input_arrays) < (0)) __PYX_ERR(2, 263, __pyx_L1_error) - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 264, __pyx_L1_error) + __pyx_v_retCode = TA_TRIX_Update(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - - } - - /*else*/ { - __pyx_t_1 = NULL; - - __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 268, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 > 1); - - - if (__pyx_t_2) { - __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_s); - __pyx_t_9 = __pyx_mstate_global->__pyx_n_u_s; - } else { - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__3); - __pyx_t_9 = __pyx_mstate_global->__pyx_kp_u__3; - } - - __pyx_t_10 = __Pyx_PyUnicode_Unicode(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_9 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_missing_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_input_arrays_parameter_missing_r; - __pyx_t_11[1] = __pyx_t_10; - __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_11[3] = __pyx_t_9; + if (__pyx_t_1) { - __pyx_t_5 = 50; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_11[3]); - #endif - __pyx_t_12 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_12 |= __Pyx_PyUnicode_KIND_04(__pyx_t_11[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_11[3]); - #endif - __pyx_t_13 = __Pyx_PyUnicode_Join(__pyx_t_11, 4, __pyx_t_5, __pyx_t_12); - if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_13}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_Exception)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(2, 267, __pyx_L1_error) - } + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_False); - __pyx_r = Py_False; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("talib._ta_lib.Function.set_input_arrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_missing_keys); - __Pyx_XDECREF(__pyx_v_key); - __Pyx_XDECREF(__pyx_v_missing); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -54624,23 +274559,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_18get_parameters, "Function.get_parameters(self)\n\nReturns the function\047s optional parameters and their default values."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters = {"get_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_18get_parameters}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_8peek, "TRIX_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -54651,7 +274585,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -54661,179 +274595,309 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 275, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21137, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21137, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "get_parameters", 0) < (0)) __PYX_ERR(2, 275, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21137, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, i); __PYX_ERR(2, 275, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21137, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21137, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21138, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("get_parameters", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 275, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21137, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_opt_input = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_parameters", 0); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 279, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TRIX_Peek(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 280, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_4 = 0; } - #endif + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 280, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_TRIX_Value(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 281, __pyx_L1_error) } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 281, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 281, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 281, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; } - if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(2, 282, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TRIX_OutRange(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TRIX_Advance(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11TRIX_Stream_10copy, "TRIX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_self) { + TA_TRIX_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_TRIX_Clone(((TA_TRIX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream))))) __PYX_ERR(3, 21165, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_ret); - __pyx_r = __pyx_v_ret; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -54842,15 +274906,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.get_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TRIX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_opt_input); + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -54858,26 +274921,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static void __pyx_pw_5talib_7_ta_lib_10TSF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10TSF_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10TSF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_TSF_Close(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_20set_parameters, "Function.set_parameters(self, parameters=None, **kwargs)\n\nSets the function parameter values."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters = {"set_parameters", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_20set_parameters}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_parameters = 0; - PyObject *__pyx_v_kwargs = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -54885,346 +274978,206 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_parameters (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_parameters,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 285, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21189, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, kwd_pos_args, __pyx_kwds_len, "set_parameters", 1) < (0)) __PYX_ERR(2, 285, __pyx_L3_error) - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21189, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, i); __PYX_ERR(2, 285, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21189, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 285, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 285, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21189, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); } - __pyx_v_self = values[0]; - __pyx_v_parameters = values[1]; + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21189, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_parameters", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 285, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21189, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(__pyx_self, __pyx_v_self, __pyx_v_parameters, __pyx_v_kwargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_parameters, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_param = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_r = NULL; +static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_TSF_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *(*__pyx_t_10)(PyObject *); + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_parameters", 0); - __Pyx_INCREF(__pyx_v_parameters); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 290, __pyx_L1_error) - if (!__pyx_t_2) { - } else { - __Pyx_INCREF(__pyx_v_parameters); - __pyx_t_1 = __pyx_v_parameters; - goto __pyx_L3_bool_binop_done; - } - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_3); - __pyx_t_1 = __pyx_t_3; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_L3_bool_binop_done:; - __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21191, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_parameters; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_kwargs}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_update, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21192, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_v_parameters; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_items, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21193, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21194, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TSF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TSF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 292, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 292, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); - #endif - ++__pyx_t_5; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 292, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 292, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 292, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_7); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_8); - } else { - __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_8); - } - #else - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); - index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(2, 292, __pyx_L1_error) - __pyx_t_10 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 292, __pyx_L1_error) - __pyx_L8_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_7); - __pyx_t_7 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); - __pyx_t_8 = 0; - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param, __pyx_v_value}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_4, (3-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_4) { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } + (void)(TA_TSF_Close(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle))); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 295, __pyx_L1_error) + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < 0))) __PYX_ERR(2, 296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_param); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_parameters); - __Pyx_XGIVEREF(__pyx_r); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_22set_function_args, "Function.set_function_args(self, *args, **kwargs)\n\noptional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args = {"set_function_args", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_22set_function_args}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_4open_and_fill, "TSF_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_function_args (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55233,422 +275186,197 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 300, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21205, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21205, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 300, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21205, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "set_function_args", 1) < (0)) __PYX_ERR(2, 300, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21205, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, i); __PYX_ERR(2, 300, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21205, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 300, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21205, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21206, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("set_function_args", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 300, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21205, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - int __pyx_v_update_info; - PyObject *__pyx_v_key = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_skip_first = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_param_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_TSF_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - Py_ssize_t __pyx_t_3; + npy_intp __pyx_t_2; + int __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; - PyObject *__pyx_t_10 = NULL; - PyObject *(*__pyx_t_11)(PyObject *); - int __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_function_args", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 304, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_update_info = 0; - - __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_kwargs, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_5; - __pyx_t_5 = 0; - while (1) { - __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, NULL, NULL, __pyx_t_4); - if (unlikely(__pyx_t_6 == 0)) break; - if (unlikely(__pyx_t_6 == -1)) __PYX_ERR(2, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 308, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - - - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); - __pyx_t_5 = 0; - - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_v_value}; - __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 310, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - - - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_value, __pyx_t_5) < 0))) __PYX_ERR(2, 311, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_v_update_info = 1; - - } - - goto __pyx_L5; - } - - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 313, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - - - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_5) < 0))) __PYX_ERR(2, 314, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21208, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_10, __pyx_v_key, __pyx_t_5) < 0))) __PYX_ERR(2, 315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21209, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - } - __pyx_L5:; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21210, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 317, __pyx_L1_error) - __pyx_t_7 = (__pyx_temp != 0); - } + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21211, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - if (__pyx_t_7) { + __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_v_skip_first = __pyx_mstate_global->__pyx_int_0; + __pyx_v_handle = NULL; - __pyx_t_5 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_5); - __pyx_t_10 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 319, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { + __pyx_v_retCode = TA_TSF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + __pyx_t_4 = (__pyx_v_retCode != 0); - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_1); - __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_mstate_global->__pyx_int_1); + if (__pyx_t_4) { - } - __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 321, __pyx_L1_error) - __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 321, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - - __pyx_t_7 = __Pyx_PyObject_CompareBoolGt_int_int(__pyx_t_1, __pyx_v_skip_first, Py_GT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 321, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { - - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) { - __pyx_t_5 = __pyx_t_10; __Pyx_INCREF(__pyx_t_5); - __pyx_t_3 = 0; - __pyx_t_11 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 322, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - for (;;) { - if (likely(!__pyx_t_11)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 322, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - __pyx_t_10 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_3; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 322, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_10 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3)); - #else - __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_3); - #endif - ++__pyx_t_3; - } - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error) - } else { - __pyx_t_10 = __pyx_t_11(__pyx_t_5); - if (unlikely(!__pyx_t_10)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 322, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_10); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_10); - __pyx_t_10 = 0; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_10 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_10; - __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyNumber_InPlaceAdd_object_int(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_10); - __pyx_t_10 = 0; - - __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 324, __pyx_L1_error) - __pyx_t_10 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - - __pyx_t_7 = __Pyx_PyObject_CompareBoolLt_object_int(__pyx_v_i, __pyx_t_10, Py_LT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 324, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__pyx_t_7) { - - - __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_10); - __pyx_t_10 = 0; - - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param_name, __pyx_v_value}; - __pyx_t_10 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_callargs+__pyx_t_9, (3-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 326, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 326, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__pyx_t_7) { - - - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_param_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 327, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - __pyx_v_update_info = 1; - - } - - } - - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - } - - } - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 330, __pyx_L1_error) - __pyx_t_12 = (__pyx_temp != 0); } - if (!__pyx_t_12) { + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - } else { + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_7 = __pyx_t_12; + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - goto __pyx_L16_bool_binop_done; - } + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21223, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21223, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21223, __pyx_L1_error); + __pyx_t_5 = 0; { - Py_ssize_t __pyx_temp = __Pyx_PyDict_GET_SIZE(__pyx_v_kwargs); - if (unlikely(((!CYTHON_ASSUME_SAFE_SIZE) && __pyx_temp < 0))) __PYX_ERR(2, 330, __pyx_L1_error) - __pyx_t_12 = (__pyx_temp != 0); - } - - - __pyx_t_7 = __pyx_t_12; - - __pyx_L16_bool_binop_done:; - if (__pyx_t_7) { - - - if (__pyx_v_update_info) { - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 332, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 333, __pyx_L1_error) - + __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib.Function.set_function_args", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF(__pyx_v_key); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_skip_first); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_param_name); + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -55656,23 +275384,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_24lookback, "Function.lookback(self)\n\nReturns the lookback window size for the function with the parameter\nvalues that are currently set."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_25lookback = {"lookback", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_25lookback, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_24lookback}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_6update, "TSF_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -55683,7 +275410,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("lookback (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -55693,290 +275420,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 335, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21225, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 335, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21225, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "lookback", 0) < (0)) __PYX_ERR(2, 335, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21225, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, i); __PYX_ERR(2, 335, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21225, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 335, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21225, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21226, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("lookback", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21225, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_24lookback(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - TA_ParamHolder *__pyx_v_holder; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_opt_input = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_type_ = NULL; - int __pyx_v_lookback; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - TA_ParamHolder *__pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; - int __pyx_t_10; - int __pyx_t_11; - int __pyx_t_12; - double __pyx_t_13; - int __pyx_t_14; - int __pyx_t_15; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("lookback", 0); - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 343, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(2, 343, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(__pyx_t_2); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 343, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_v_holder = __pyx_t_3; - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_1 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 344, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_5))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_5, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 344, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) - } else { - __pyx_t_4 = __pyx_t_7(__pyx_t_5); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 344, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_4); - __pyx_t_4 = 0; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); - __pyx_t_4 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_4; - __pyx_t_4 = 0; - - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_9 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_opt_input}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4); - __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_11) { - - } else { - - __pyx_t_10 = __pyx_t_11; - - goto __pyx_L6_bool_binop_done; - } - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 347, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_10 = __pyx_t_11; - - __pyx_L6_bool_binop_done:; - if (__pyx_t_10) { - - - __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) - __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) - __pyx_t_14 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_12, __pyx_t_13); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) - + __Pyx_RefNannySetupContext("update", 0); + __pyx_v_retCode = TA_TSF_Update(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); - goto __pyx_L5; - } - - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 349, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_11) { - - } else { - - __pyx_t_10 = __pyx_t_11; - - goto __pyx_L8_bool_binop_done; - } - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_v_type_, __pyx_t_4, Py_EQ); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(2, 349, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_10 = __pyx_t_11; - - __pyx_L8_bool_binop_done:; - if (__pyx_t_10) { - - - __pyx_t_14 = __Pyx_PyLong_As_int(__pyx_v_i); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) - __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_value); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_14, __pyx_t_12); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 350, __pyx_L1_error) - - + if (__pyx_t_1) { - } - __pyx_L5:; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 352, __pyx_L1_error) - __pyx_v_lookback = __pyx_t_15; - - __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(2, 353, __pyx_L1_error) - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.lookback", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_opt_input); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_type_); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); @@ -55985,23 +275523,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_26output_names, "Function.output_names(self)\n\nReturns a list of the output names returned by this function."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_27output_names = {"output_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_27output_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_26output_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_8peek, "TSF_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -56012,7 +275549,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("output_names (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56022,160 +275559,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 356, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21233, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21233, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "output_names", 0) < (0)) __PYX_ERR(2, 356, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21233, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, i); __PYX_ERR(2, 356, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21233, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21233, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21234, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("output_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 356, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21233, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_26output_names(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_ret = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - int __pyx_t_6; - int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("output_names", 0); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; + __pyx_v_retCode = TA_TSF_Peek(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_6 = PyList_Check(__pyx_v_ret); - __pyx_t_7 = (!__pyx_t_6); + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - if (__pyx_t_7) { + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); - __pyx_t_1 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_TSF_Value(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_ret); - __pyx_r = __pyx_v_ret; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.output_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_ret); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TSF_OutRange(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TSF_Advance(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_28outputs, "Function.outputs(self)\n\nReturns the TA function values for the currently set input_arrays and\nparameters. Returned values are a ndarray if there is only one output\nor a list of ndarrays for more than one output."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_29outputs = {"outputs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_29outputs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_28outputs}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSF_Stream_10copy, "TSF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSF_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("outputs (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56184,548 +275794,370 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 366, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 366, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "outputs", 0) < (0)) __PYX_ERR(2, 366, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, i); __PYX_ERR(2, 366, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 366, __pyx_L3_error) - } - __pyx_v_self = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("outputs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 366, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_28outputs(__pyx_self, __pyx_v_self); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_v_self)); /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_ret = NULL; - PyObject *__pyx_v_index = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_self) { + TA_TSF_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - Py_ssize_t __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("outputs", 0); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 373, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 374, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (!__pyx_t_2); + __pyx_v_retCode = TA_TSF_Clone(((TA_TSF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_t_1 = (__pyx_v_retCode != 0); - if (__pyx_t_3) { + if (__pyx_t_1) { - __pyx_t_4 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_5 = 0; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_values, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __pyx_v_ret = __pyx_t_1; - __pyx_t_1 = 0; - - __pyx_t_3 = PyList_Check(__pyx_v_ret); - __pyx_t_2 = (!__pyx_t_3); - + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream))))) __PYX_ERR(3, 21261, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - if (__pyx_t_2) { + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); } + goto __pyx_L0; - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 379, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - } else { + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.TSF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_t_2 = __pyx_t_3; - goto __pyx_L6_bool_binop_done; - } + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_6); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 380, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __pyx_t_3; +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10TSI_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10TSI_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); - __pyx_L6_bool_binop_done:; + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} - if (__pyx_t_2) { +static void __pyx_pf_5talib_7_ta_lib_10TSI_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_v_index = __pyx_t_1; - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 382, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); + (void)(TA_TSI_Close(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle))); - if (__pyx_t_2) { + __pyx_v_self->__pyx_base._handle = NULL; + } - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_8, __pyx_v_index}; - #if CYTHON_VECTORCALL - __pyx_t_9 = __pyx_mstate_global->__pyx_tuple[1]; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_9); - #else - { - PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; - __pyx_t_9 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - #endif - __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_9); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; - } + /* function exit code */ - /*else*/ { - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_ret}; - __pyx_t_8 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } +} - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); - __pyx_t_5 = 0; + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_real = 0; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21286, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_8, __pyx_v_index, __pyx_t_11}; - #if CYTHON_VECTORCALL - __pyx_t_6 = __pyx_mstate_global->__pyx_tuple[2]; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 385, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_6); - #else - { - PyObject *__pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_index, __pyx_mstate_global->__pyx_n_u_columns}; - __pyx_t_6 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 2); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - #endif - __pyx_t_1 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_6); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21286, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 21286, __pyx_L3_error) } } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + } else { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21286, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21286, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; } - __pyx_t_1 = 0; - goto __pyx_L0; } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21286, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21286, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21286, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = (__pyx_t_1 != Py_None); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_3) { - } else { + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_2 = __pyx_t_3; +static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_TSI_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); - goto __pyx_L9_bool_binop_done; - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 389, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 389, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = PyObject_IsInstance(__pyx_t_1, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 389, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21288, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_t_3; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21289, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_L9_bool_binop_done:; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21290, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21291, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + __pyx_v_handle = NULL; - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 390, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); + __pyx_v_retCode = TA_TSI_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outreal)); + __pyx_t_4 = (__pyx_v_retCode != 0); - if (__pyx_t_2) { + if (__pyx_t_4) { - __pyx_t_1 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_1); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_11}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_9; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_9 = 0; - goto __pyx_L0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } + } - /*else*/ { - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_numpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_column_stack); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_10))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); - assert(__pyx_t_8); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_10); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_10, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_v_ret}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_10, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_11, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_10}; - #if CYTHON_VECTORCALL - __pyx_t_8 = __pyx_mstate_global->__pyx_tuple[3]; - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 393, __pyx_L1_error) - __Pyx_INCREF(__pyx_t_8); - #else - { - PyObject *__pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_schema}; - __pyx_t_8 = __Pyx_MakeKwargDict(__pyx_temp, __pyx_callargs+2, 1); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - } - #endif - __pyx_t_9 = __Pyx_Object_VectorcallKwds((PyObject*)__pyx_t_11, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET), __pyx_t_8); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_9; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_9 = 0; - goto __pyx_L0; - } + if (__pyx_t_4) { - } - /*else*/ { - __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 396, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_7 == 1); + (void)(TA_TSI_Close(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle))); + } - if (__pyx_t_2) { - __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_ret, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_9 = __pyx_t_11; - __pyx_t_11 = 0; - } else { - __Pyx_INCREF(__pyx_v_ret); - __pyx_t_9 = __pyx_v_ret; - } + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_9; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_9 = 0; - goto __pyx_L0; - } + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_AddTraceback("talib._ta_lib.Function.outputs", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_ret); - __Pyx_XDECREF(__pyx_v_index); - __Pyx_XGIVEREF(__pyx_r); + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_30run, "Function.run(self, input_arrays=None)\n\nrun([input_arrays=None])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_31run = {"run", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_31run, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_30run}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_4open_and_fill, "TSI_Stream.open_and_fill(real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSI_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_arrays = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_firstperiod; + int __pyx_v_secondperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("run (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56735,131 +276167,210 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_arrays,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 398, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21302, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21302, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "run", 0) < (0)) __PYX_ERR(2, 398, __pyx_L3_error) - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21302, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, i); __PYX_ERR(2, 398, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 21302, __pyx_L3_error) } } } else { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21302, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21302, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21302, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } - if (!values[1]) values[1] = __Pyx_NewRef(((PyObject *)Py_None)); } - __pyx_v_self = values[0]; - __pyx_v_input_arrays = values[1]; + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21303, __pyx_L3_error) + } else { + __pyx_v_firstperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21303, __pyx_L3_error) + } else { + __pyx_v_secondperiod = ((int)-2147483648); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("run", 0, 1, 2, __pyx_nargs); __PYX_ERR(2, 398, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21302, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_30run(__pyx_self, __pyx_v_self, __pyx_v_input_arrays); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(__pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_arrays) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_TSI_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - size_t __pyx_t_4; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("run", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 405, __pyx_L1_error) - if (__pyx_t_1) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21305, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_arrays}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21306, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - } + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21307, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21308, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TSI_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_4, (1-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21320, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21320, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21320, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.Function.run", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -56867,25 +276378,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_32__call__, "Function.__call__(self, *args, **kwargs)\n\nfunc_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs])\n\nThis is a shortcut to the outputs property that also allows setting\nthe input_arrays dict and function parameters."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_33__call__ = {"__call__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_33__call__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_32__call__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_6update, "TSI_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -56896,7 +276404,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -56905,982 +276413,103 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; - __Pyx_GOTREF(__pyx_v_kwargs); - __pyx_v_args = __Pyx_ArgsSlice_FASTCALL(__pyx_args, 1, __pyx_nargs); - if (unlikely(!__pyx_v_args)) { - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_RefNannyFinishContext(); - return NULL; - } - __Pyx_GOTREF(__pyx_v_args); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 410, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21322, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - default: case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 410, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21322, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; + default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - const Py_ssize_t used_pos_args = (kwd_pos_args < 1) ? kwd_pos_args : 1; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, __pyx_kwds_len, "__call__", 1) < (0)) __PYX_ERR(2, 410, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21322, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, i); __PYX_ERR(2, 410, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21322, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs < 1)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 410, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21322, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21323, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 410, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21322, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; - __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_32__call__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_v_args); - __Pyx_DECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_opt_input_values = NULL; - PyObject *__pyx_v_price_series_name_values = NULL; - PyObject *__pyx_v_input_arrays = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_arg = NULL; - PyObject *__pyx_v_msg = NULL; - PyObject *__pyx_v_no_existing_input_arrays = NULL; - PyObject *__pyx_v_param_name = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_n = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - Py_ssize_t __pyx_t_6; - PyObject *(*__pyx_t_7)(PyObject *); - int __pyx_t_8; - int __pyx_t_9; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13 = NULL; - int __pyx_t_14; - PyObject *__pyx_t_15 = NULL; - Py_ssize_t __pyx_t_16; - PyObject *__pyx_t_17 = NULL; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19[5]; - PyObject *__pyx_t_20 = NULL; - PyObject *(*__pyx_t_21)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__call__", 0); - __Pyx_INCREF(__pyx_v_args); - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; - - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 420, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_4))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 420, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 420, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_7(__pyx_t_4); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 420, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2); - __pyx_t_2 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_v_param_name); - __Pyx_GIVEREF(__pyx_v_param_name); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_param_name) != (0)) __PYX_ERR(2, 419, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 419, __pyx_L1_error); - __pyx_t_2 = 0; - __Pyx_GIVEREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_3))) __PYX_ERR(2, 419, __pyx_L1_error) - __pyx_t_3 = 0; + __pyx_v_retCode = TA_TSI_Update(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + if (__pyx_t_1) { - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 422, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 422, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 422, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6)); - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __pyx_L1_error) - } else { - __pyx_t_4 = __pyx_t_7(__pyx_t_3); - if (unlikely(!__pyx_t_4)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 422, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_4); - __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_n); - __Pyx_GIVEREF(__pyx_v_n); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_n) != (0)) __PYX_ERR(2, 421, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 421, __pyx_L1_error); - __pyx_t_4 = 0; - __Pyx_GIVEREF(__pyx_t_2); - if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_2))) __PYX_ERR(2, 421, __pyx_L1_error) - __pyx_t_2 = 0; - - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_input_arrays = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_3 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 427, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_input_price_series_names = __pyx_t_1; - __pyx_t_1 = 0; - - __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 428, __pyx_L1_error) - if (__pyx_t_9) { - - } else { - - __pyx_t_8 = __pyx_t_9; - - goto __pyx_L10_bool_binop_done; - } - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyObject_IsInstance(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 428, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_10 = (!__pyx_t_9); - - - - __pyx_t_8 = __pyx_t_10; - - __pyx_L10_bool_binop_done:; - if (__pyx_t_8) { - - - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_3 = __pyx_mstate_global->__pyx_int_0; - if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { - __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); - __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { - __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 429, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_7)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 429, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_6, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_6; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 429, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_6); - #endif - ++__pyx_t_6; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_7(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 429, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_arg, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_t_3); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); - __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_3, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); - __pyx_t_3 = __pyx_t_2; - __pyx_t_2 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_arg, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 430, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_10 = (!__pyx_t_8); - - - if (__pyx_t_10) { - - - goto __pyx_L13_break; - - } - - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); - __Pyx_XGOTREF(__pyx_t_11); - __Pyx_XGOTREF(__pyx_t_12); - __Pyx_XGOTREF(__pyx_t_13); - /*try:*/ { - - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 434, __pyx_L15_error) - __Pyx_GOTREF(__pyx_t_2); - if (unlikely((PyDict_SetItem(__pyx_v_input_arrays, __pyx_t_2, __pyx_v_arg) < 0))) __PYX_ERR(2, 434, __pyx_L15_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - } - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - goto __pyx_L22_try_end; - __pyx_L15_error:; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_IndexError)))); - if (__pyx_t_14) { - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_15) < 0) __PYX_ERR(2, 435, __pyx_L17_except_error) - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_15); - - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 437, __pyx_L17_except_error) - __pyx_t_17 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 437, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_17); - - - __pyx_t_18 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(2, 438, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Too_many_price_arguments_expecte; - __pyx_t_19[1] = __pyx_t_17; - __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; - __pyx_t_19[3] = __pyx_t_18; - __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; - - __pyx_t_16 = 38; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); - #endif - __pyx_t_14 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); - #endif - __pyx_t_20 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); - if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 436, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_v_msg = ((PyObject*)__pyx_t_20); - __pyx_t_20 = 0; - - __pyx_t_18 = NULL; - __pyx_t_5 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_18, __pyx_v_msg}; - __pyx_t_20 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(!__pyx_t_20)) __PYX_ERR(2, 439, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_20); - } - __Pyx_Raise(__pyx_t_20, 0, 0, 0); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __PYX_ERR(2, 439, __pyx_L17_except_error) - } - goto __pyx_L17_except_error; - - __pyx_L17_except_error:; - __Pyx_XGIVEREF(__pyx_t_11); - __Pyx_XGIVEREF(__pyx_t_12); - __Pyx_XGIVEREF(__pyx_t_13); - __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); - goto __pyx_L1_error; - __pyx_L22_try_end:; - } - - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L25_for_end; - __pyx_L13_break:; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L25_for_end; - __pyx_L25_for_end:; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 441, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (__pyx_t_3 != Py_None); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_8) { - - } else { - - __pyx_t_10 = __pyx_t_8; - - goto __pyx_L27_bool_binop_done; - } - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 442, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_10 = __pyx_t_8; - - __pyx_L27_bool_binop_done:; - - if (__pyx_t_10) { - - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_no_existing_input_arrays = __pyx_t_3; - __pyx_t_3 = 0; - - goto __pyx_L26; - } - - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = (__pyx_t_3 != Py_None); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_8) { - - } else { - - __pyx_t_10 = __pyx_t_8; - - goto __pyx_L29_bool_binop_done; - } - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_3, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_10 = __pyx_t_8; - - __pyx_L29_bool_binop_done:; - - if (__pyx_t_10) { - - - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __pyx_t_15; - __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_is_empty, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_no_existing_input_arrays = __pyx_t_1; - __pyx_t_1 = 0; - - goto __pyx_L26; - } - - /*else*/ { - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 448, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyBool_FromLong((!(!(!__pyx_t_10)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 448, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __pyx_v_no_existing_input_arrays = __pyx_t_1; - __pyx_t_1 = 0; - } - __pyx_L26:; - - __pyx_t_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(2, 450, __pyx_L1_error) - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 450, __pyx_L1_error) - __pyx_t_10 = (__pyx_t_6 == __pyx_t_16); - - - - if (__pyx_t_10) { - - - __pyx_t_15 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_15); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_15, __pyx_v_input_arrays}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 452, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyList_GetSlice(__pyx_v_args, __pyx_t_16, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); - __pyx_t_1 = 0; - - goto __pyx_L31; - } - - __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 453, __pyx_L1_error) - __pyx_t_8 = (__pyx_t_16 != 0); - - - if (!__pyx_t_8) { - - } else { - - __pyx_t_10 = __pyx_t_8; - - goto __pyx_L32_bool_binop_done; - } - __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_existing_input_arrays); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 453, __pyx_L1_error) - if (__pyx_t_8) { - - } else { - - __pyx_t_10 = __pyx_t_8; - - goto __pyx_L32_bool_binop_done; - } - - __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 454, __pyx_L1_error) - __pyx_t_8 = (!(__pyx_t_16 != 0)); - - - if (!__pyx_t_8) { - - } else { - - __pyx_t_10 = __pyx_t_8; - - goto __pyx_L32_bool_binop_done; - } - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 454, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 454, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_8 = PyObject_IsInstance(__pyx_t_1, __pyx_t_15); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 454, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_9 = (!__pyx_t_8); - - - - __pyx_t_10 = __pyx_t_9; - - __pyx_L32_bool_binop_done:; - - if (unlikely(__pyx_t_10)) { - - - __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(2, 456, __pyx_L1_error) - __pyx_t_15 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_t_16, 0, ' ', 'd'); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - - - __pyx_t_1 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_19[0] = __pyx_mstate_global->__pyx_kp_u_Not_enough_price_arguments_expec; - __pyx_t_19[1] = __pyx_t_15; - __pyx_t_19[2] = __pyx_mstate_global->__pyx_kp_u__5; - __pyx_t_19[3] = __pyx_t_1; - __pyx_t_19[4] = __pyx_mstate_global->__pyx_kp_u__6; - - __pyx_t_16 = 40; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_16 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_19[3]); - #endif - __pyx_t_14 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_14 |= __Pyx_PyUnicode_KIND_04(__pyx_t_19[3]); - #endif - __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_19, 5, __pyx_t_16, __pyx_t_14); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 455, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_msg = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - __pyx_t_1 = NULL; - __pyx_t_5 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_msg}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(2, 458, __pyx_L1_error) - - } - __pyx_L31:; - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_set_function_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_15 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_15); - __pyx_t_5 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_15, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 464, __pyx_L1_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { - PyObject* sequence = __pyx_t_15; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 464, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_3); - } else { - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_3); - } - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L38_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - index = 1; __pyx_t_3 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_3)) goto __pyx_L38_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 464, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L39_unpacking_done; - __pyx_L38_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 464, __pyx_L1_error) - __pyx_L39_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_1); - __pyx_t_1 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); - __pyx_t_3 = 0; - - __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 465, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_4) < 0))) __PYX_ERR(2, 466, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); - __pyx_t_16 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 469, __pyx_L1_error) - #endif - if (__pyx_t_16 >= __pyx_temp) break; - } - __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_4, __pyx_t_16, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_16; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { - PyObject* sequence = __pyx_t_3; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 469, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_15); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_1); - } else { - __pyx_t_15 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_1); - } - #else - __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_21 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); - index = 0; __pyx_t_15 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L43_unpacking_failed; - __Pyx_GOTREF(__pyx_t_15); - index = 1; __pyx_t_1 = __pyx_t_21(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L43_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 469, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L44_unpacking_done; - __pyx_L43_unpacking_failed:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_21 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 469, __pyx_L1_error) - __pyx_L44_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_15); - __pyx_t_15 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_v_value) < 0))) __PYX_ERR(2, 470, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(2, 471, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_XDECREF(__pyx_t_17); - __Pyx_XDECREF(__pyx_t_18); - __Pyx_XDECREF(__pyx_t_20); - __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_args); - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_opt_input_values); - __Pyx_XDECREF(__pyx_v_price_series_name_values); - __Pyx_XDECREF(__pyx_v_input_arrays); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_arg); - __Pyx_XDECREF(__pyx_v_msg); - __Pyx_XDECREF(__pyx_v_no_existing_input_arrays); - __Pyx_XDECREF(__pyx_v_param_name); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_n); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -57888,23 +276517,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names, "Function.__input_price_series_names(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names = {"__input_price_series_names", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_34__input_price_series_names}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_8peek, "TSI_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -57915,7 +276543,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__input_price_series_names (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -57925,286 +276553,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 476, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21330, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21330, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__input_price_series_names", 0) < (0)) __PYX_ERR(2, 476, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21330, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, i); __PYX_ERR(2, 476, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21330, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 476, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21330, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21331, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__input_price_series_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 476, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21330, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_price_series = NULL; - PyObject *__pyx_v_name = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *(*__pyx_t_4)(PyObject *); - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - PyObject *(*__pyx_t_8)(PyObject *); - int __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__input_price_series_names", 0); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; - __pyx_t_1 = 0; + __pyx_v_retCode = TA_TSI_Peek(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 479, __pyx_L1_error) + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 479, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 479, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_3; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 479, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); - #endif - ++__pyx_t_3; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 479, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_4(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 479, __pyx_L1_error) - PyErr_Clear(); - } - break; - } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_1); - __pyx_t_1 = 0; - __pyx_t_6 = PyList_Check(__pyx_v_price_series); - if (__pyx_t_6) { + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - if (likely(PyList_CheckExact(__pyx_v_price_series)) || PyTuple_CheckExact(__pyx_v_price_series)) { - __pyx_t_1 = __pyx_v_price_series; __Pyx_INCREF(__pyx_t_1); - __pyx_t_7 = 0; - __pyx_t_8 = NULL; - } else { - __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_price_series); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 482, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_8)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 482, __pyx_L1_error) - #endif - if (__pyx_t_7 >= __pyx_temp) break; - } - __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_7, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_7; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 482, __pyx_L1_error) - #endif - if (__pyx_t_7 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7)); - #else - __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_7); - #endif - ++__pyx_t_7; - } - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 482, __pyx_L1_error) - } else { - __pyx_t_5 = __pyx_t_8(__pyx_t_1); - if (unlikely(!__pyx_t_5)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 482, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_5); - __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); - __pyx_t_5 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 483, __pyx_L1_error) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - goto __pyx_L5; - } +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); - /*else*/ { - __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_price_series); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 485, __pyx_L1_error) + __pyx_v_retCode = TA_TSI_Value(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - } - __pyx_L5:; + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_input_price_series_names); - __pyx_r = __pyx_v_input_price_series_names; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.Function.__input_price_series_names", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_price_series); - __Pyx_XDECREF(__pyx_v_name); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TSI_OutRange(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10TSI_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_TSI_Advance(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_36__call_function, "Function.__call_function(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_37__call_function = {"__call_function", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_37__call_function, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_36__call_function}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10TSI_Stream_10copy, "TSI_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10TSI_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__call_function (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58213,46 +276788,220 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_self) { + TA_TSI_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_TSI_Clone(((TA_TSI_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 488, __pyx_L3_error) + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream))))) __PYX_ERR(3, 21358, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.TSI_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_TYPPRICE_Close(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21380, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21380, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21380, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 488, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21380, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__call_function", 0) < (0)) __PYX_ERR(2, 488, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, i); __PYX_ERR(2, 488, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21380, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 21380, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 488, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21380, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21380, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21380, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 488, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21380, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_36__call_function(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -58262,456 +277011,529 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_input_price_series_names = NULL; - PyObject *__pyx_v_args = NULL; - PyObject *__pyx_v_price_series = NULL; - PyObject *__pyx_v_series = NULL; - PyObject *__pyx_v_opt_input = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_results = NULL; - PyObject *__pyx_v_keys = NULL; - PyObject *__pyx_v_i = NULL; - PyObject *__pyx_v_output = NULL; - PyObject *__pyx_r = NULL; +static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_TYPPRICE_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - int __pyx_t_11; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__call_function", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_v_input_price_series_names = __pyx_t_1; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_args = ((PyObject*)__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - if (likely(PyList_CheckExact(__pyx_v_input_price_series_names)) || PyTuple_CheckExact(__pyx_v_input_price_series_names)) { - __pyx_t_1 = __pyx_v_input_price_series_names; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 494, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21384, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21384, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21384, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21385, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21386, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21387, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TYPPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TYPPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 494, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 494, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 494, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 494, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_5(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 494, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = (__pyx_t_6 != Py_None); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_8) { + if (__pyx_t_4) { - } else { - __pyx_t_7 = __pyx_t_8; + (void)(TA_TYPPRICE_Close(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); - goto __pyx_L6_bool_binop_done; - } + } - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 497, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 497, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_7 = __pyx_t_8; + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; - __pyx_L6_bool_binop_done:; - if (__pyx_t_7) { + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_mstate_global->__pyx_n_u_values); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 498, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __pyx_t_9; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 498, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; - goto __pyx_L5; - } - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = (__pyx_t_6 != Py_None); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__pyx_t_8) { - } else { - __pyx_t_7 = __pyx_t_8; - goto __pyx_L8_bool_binop_done; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill, "TYPPRICE_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21398, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21398, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21398, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21398, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21398, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 21398, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21398, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21398, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21398, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21398, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 500, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_6); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(2, 500, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_7 = __pyx_t_8; +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_TYPPRICE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_L8_bool_binop_done:; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - if (__pyx_t_7) { + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_10 = __pyx_v_series; - __Pyx_INCREF(__pyx_t_10); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_10, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_to_numpy, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_t_9 = __pyx_t_2; - __Pyx_INCREF(__pyx_t_9); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyFloat_Type))}; - __pyx_t_6 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_astype, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - } - __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_6); - __pyx_t_6 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21403, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21403, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21403, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - } - __pyx_L5:; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21404, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 502, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21405, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21406, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 503, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_6))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 503, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_6, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 503, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 503, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_6); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 503, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_opt_input}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_callargs+__pyx_t_3, (2-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_TYPPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 505, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_func_object); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 508, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_results = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_mstate_global->__pyx_ptype_5numpy_ndarray); - if (__pyx_t_7) { + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = __pyx_t_6; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; { - PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_keys, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - __pyx_v_keys = __pyx_t_2; - __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; - __pyx_t_7 = PyList_Check(__pyx_v_keys); - __pyx_t_8 = (!__pyx_t_7); + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); - if (__pyx_t_8) { - __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2); - __pyx_t_2 = 0; + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - } - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (unlikely((PyObject_SetItem(__pyx_t_2, __pyx_t_6, __pyx_v_results) < 0))) __PYX_ERR(2, 513, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L14; - } - /*else*/ { - __Pyx_INCREF(__pyx_mstate_global->__pyx_int_0); - __pyx_t_6 = __pyx_mstate_global->__pyx_int_0; - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_6update, "TYPPRICE_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_7update(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("update (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21420, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21420, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21420, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21420, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21420, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21420, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 515, __pyx_L1_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21420, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21420, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21420, __pyx_L3_error) } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_1))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 515, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_2 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_1, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 515, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4)); - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) - } else { - __pyx_t_2 = __pyx_t_5(__pyx_t_1); - if (unlikely(!__pyx_t_2)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 515, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_2); - __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_t_6); - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6); - __pyx_t_2 = __Pyx_PyLong_AddObjC(__pyx_t_6, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); - __pyx_t_6 = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21421, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21421, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21421, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21420, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely((PyObject_SetItem(__pyx_t_9, __pyx_v_output, __pyx_t_2) < 0))) __PYX_ERR(2, 516, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_TYPPRICE_Update(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } - __pyx_L14:; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_True) < (0)) __PYX_ERR(2, 517, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib.Function.__call_function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_input_price_series_names); - __Pyx_XDECREF(__pyx_v_args); - __Pyx_XDECREF(__pyx_v_price_series); - __Pyx_XDECREF(__pyx_v_series); - __Pyx_XDECREF(__pyx_v_opt_input); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_results); - __Pyx_XDECREF(__pyx_v_keys); - __Pyx_XDECREF(__pyx_v_i); - __Pyx_XDECREF(__pyx_v_output); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -58719,25 +277541,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value, "Function.__check_opt_input_value(self, input_name, value)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value = {"__check_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__check_opt_input_value}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_8peek, "TYPPRICE_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_name = 0; - PyObject *__pyx_v_value = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -58748,7 +277569,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__check_opt_input_value (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -58758,251 +277579,325 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,&__pyx_mstate_global->__pyx_n_u_value,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 519, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21428, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__check_opt_input_value", 0) < (0)) __PYX_ERR(2, 519, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21428, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, i); __PYX_ERR(2, 519, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21428, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21428, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21428, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21428, __pyx_L3_error) } - __pyx_v_self = values[0]; - __pyx_v_input_name = values[1]; - __pyx_v_value = values[2]; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21429, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21429, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21429, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__check_opt_input_value", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 519, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21428, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value) { - PyObject *__pyx_v_type_ = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9[7]; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - size_t __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__check_opt_input_value", 0); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_type_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 520, __pyx_L1_error) + __pyx_v_retCode = TA_TYPPRICE_Peek(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_type_ = __pyx_t_2; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } __pyx_t_2 = 0; + goto __pyx_L0; - __Pyx_INCREF(__pyx_v_type_); - __pyx_t_2 = __pyx_v_type_; - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 521, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_4) { - } else { + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_t_3 = __pyx_t_4; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 521, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_3 = __pyx_t_4; - __pyx_L4_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __pyx_t_3; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - if (__pyx_t_4) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + __pyx_v_retCode = TA_TYPPRICE_Value(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __Pyx_INCREF((PyObject *)(&PyLong_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type))); + __pyx_t_1 = (__pyx_v_retCode != 0); - goto __pyx_L3; - } + if (__pyx_t_1) { - __Pyx_INCREF(__pyx_v_type_); - __pyx_t_2 = __pyx_v_type_; - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_3) { - } else { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __pyx_t_3; + } - goto __pyx_L6_bool_binop_done; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 523, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_4 = __pyx_t_3; - __pyx_L6_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_t_4; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - if (__pyx_t_3) { + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __Pyx_INCREF((PyObject *)(&PyFloat_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); +static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + __pyx_r = TA_TYPPRICE_OutRange(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); } - __pyx_L3:; + goto __pyx_L0; - __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 526, __pyx_L1_error) - if (__pyx_t_3) { + /* function exit code */ + __pyx_L0:; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + __pyx_r = TA_TYPPRICE_Advance(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); } + goto __pyx_L0; - __pyx_t_3 = (__pyx_v_value != Py_None); - if (unlikely(__pyx_t_3)) { + /* function exit code */ + __pyx_L0:; - __pyx_t_1 = NULL; + return __pyx_r; +} - __pyx_t_5 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_6), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for; - __pyx_t_9[1] = __pyx_t_5; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_expected; - __pyx_t_9[3] = __pyx_t_7; - __pyx_t_9[4] = __pyx_mstate_global->__pyx_kp_u_got; - __pyx_t_9[5] = __pyx_t_8; - __pyx_t_9[6] = __pyx_mstate_global->__pyx_kp_u__6; - __pyx_t_10 = 46; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[5]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[5]); - #endif - __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 7, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 530, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_12 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __pyx_callargs+__pyx_t_12, (2-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_10copy, "TYPPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_self) { + TA_TYPPRICE_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_TYPPRICE_Clone(((TA_TYPPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(2, 529, __pyx_L1_error) } + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream))))) __PYX_ERR(3, 21456, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_False); - __pyx_r = Py_False; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } @@ -59011,16 +277906,14 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.Function.__check_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.TYPPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_type_); + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59028,35 +277921,333 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +static void __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_ULTOSC_Close(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +static int __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; + #if !CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[6] = {0,0,0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21482, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21482, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 21482, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21482, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21482, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21482, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21482, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21482, __pyx_L3_error) + } else { + __pyx_v_timeperiod1 = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21482, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21482, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)-2147483648); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21482, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ULTOSC_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21486, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21486, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21486, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21487, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21488, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21489, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ULTOSC_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ULTOSC_Close(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; + + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value, "Function.__get_opt_input_value(self, input_name)\n\nReturns the user-set value if there is one, otherwise the default."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value = {"__get_opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_40__get_opt_input_value}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill, "ULTOSC_Stream.open_and_fill(high, low, close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - PyObject *__pyx_v_input_name = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod1; + int __pyx_v_timeperiod2; + int __pyx_v_timeperiod3; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[6] = {0,0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59066,128 +278257,264 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,&__pyx_mstate_global->__pyx_n_u_input_name,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 534, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21500, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21500, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21500, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21500, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21500, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 534, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 534, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_opt_input_value", 0) < (0)) __PYX_ERR(2, 534, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, i); __PYX_ERR(2, 534, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21500, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 21500, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 534, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 534, __pyx_L3_error) + switch (__pyx_nargs) { + case 6: + values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21500, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21500, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21500, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21500, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21500, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21500, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21501, __pyx_L3_error) + } else { + __pyx_v_timeperiod1 = ((int)-2147483648); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21501, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)-2147483648); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21501, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)-2147483648); } - __pyx_v_self = values[0]; - __pyx_v_input_name = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__get_opt_input_value", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 534, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21500, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name) { - PyObject *__pyx_v_local = NULL; - PyObject *__pyx_v_value = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_ULTOSC_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; + npy_intp __pyx_t_2; int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get_opt_input_value", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 538, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_local = __pyx_t_1; + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 539, __pyx_L1_error) + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_value = __pyx_t_1; + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = (__pyx_v_value == Py_None); - if (__pyx_t_3) { + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21505, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21505, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21505, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21506, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21507, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21508, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 541, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_ULTOSC_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; } + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_value); - __pyx_r = __pyx_v_value; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__get_opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_local); - __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59195,34 +278522,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_42__repr__, "Function.__repr__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_43__repr__ = {"__repr__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_43__repr__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_42__repr__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_6update, "ULTOSC_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59232,69 +278560,98 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 544, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21522, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21522, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21522, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 544, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21522, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__repr__", 0) < (0)) __PYX_ERR(2, 544, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, i); __PYX_ERR(2, 544, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21522, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21522, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 544, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21522, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21522, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21522, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21523, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21523, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21523, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 544, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21522, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_42__repr__(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__repr__", 0); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 545, __pyx_L1_error) + __pyx_v_retCode = TA_ULTOSC_Update(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; { PyObject *__pyx_temp; { @@ -59309,11 +278666,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59321,34 +278679,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_44__unicode__, "Function.__unicode__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__ = {"__unicode__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_44__unicode__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_8peek, "ULTOSC_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__unicode__ (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59358,97 +278717,341 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 547, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21530, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21530, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21530, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 547, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21530, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__unicode__", 0) < (0)) __PYX_ERR(2, 547, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, i); __PYX_ERR(2, 547, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21530, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21530, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 547, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21530, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21530, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21530, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21531, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21531, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21531, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__unicode__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 547, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21530, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - size_t __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__unicode__", 0); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_2 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; + __pyx_v_retCode = TA_ULTOSC_Peek(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_str, __pyx_callargs+__pyx_t_3, (1-__pyx_t_3) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_ULTOSC_Value(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ULTOSC_OutRange(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ULTOSC_Advance(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_10copy, "ULTOSC_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_self) { + TA_ULTOSC_Stream *__pyx_v_clone; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + __pyx_v_clone = NULL; + + __pyx_v_retCode = TA_ULTOSC_Clone(((TA_ULTOSC_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream))))) __PYX_ERR(3, 21558, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ULTOSC_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59456,277 +279059,279 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static void __pyx_pw_5talib_7_ta_lib_10VAR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10VAR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10VAR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_VAR_Close(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_8Function_46__str__, "Function.__str__(self)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_47__str__ = {"__str__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_47__str__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_46__str__}; -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_self = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_self,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 550, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21583, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21583, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21583, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 550, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__str__", 0) < (0)) __PYX_ERR(2, 550, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21583, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, i); __PYX_ERR(2, 550, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 21583, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 550, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21583, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21583, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21583, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21583, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21583, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); } - __pyx_v_self = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 550, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21583, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_8Function_46__str__(__pyx_self, __pyx_v_self); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - size_t __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__str__", 0); - - __pyx_t_2 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_2); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_5 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_5, (2-__pyx_t_5) | (__pyx_t_5*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_3 = 0; - goto __pyx_L0; - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.Function.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable, "_ta_getGroupTable()\n\nReturns the list of available TALIB function group names. *slow*"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable = {"_ta_getGroupTable", (PyCFunction)__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable, METH_NOARGS, __pyx_doc_5talib_7_ta_lib_430_ta_getGroupTable}; -static PyObject *__pyx_pw_5talib_7_ta_lib_431_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getGroupTable (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(__pyx_self); - /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self) { - TA_StringTable *__pyx_v_table; - PyObject *__pyx_v_groups = NULL; - unsigned int __pyx_v_i; - PyObject *__pyx_r = NULL; +static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_VAR_Stream *__pyx_v_handle; + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - unsigned int __pyx_t_2; - unsigned int __pyx_t_3; - unsigned int __pyx_t_4; - int __pyx_t_5; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getGroupTable", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableAlloc, TA_GroupTableAlloc((&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 570, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_groups = ((PyObject*)__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21585, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21586, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_2 = __pyx_v_table->size; - __pyx_t_3 = __pyx_t_2; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21587, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21588, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 572, __pyx_L1_error) + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_VAR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_groups, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GroupTableFree, TA_GroupTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 573, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_4) { + + + (void)(TA_VAR_Close(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle))); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_groups); - __pyx_r = __pyx_v_groups; - } - __Pyx_XDECREF(__pyx_temp); } - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib._ta_getGroupTable", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + - __Pyx_XDECREF(__pyx_v_groups); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable, "_ta_getFuncTable(char *group)\n\nReturns a list of the functions for the specified group name. *slow*"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable = {"_ta_getFuncTable", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432_ta_getFuncTable}; -static PyObject *__pyx_pw_5talib_7_ta_lib_433_ta_getFuncTable(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_4open_and_fill, "VAR_Stream.open_and_fill(real, int timeperiod=-0x80000000, double nbdev=-4e37)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VAR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_group; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + double __pyx_v_nbdev; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getFuncTable (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59736,120 +279341,210 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_group,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 576, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21599, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21599, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21599, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 576, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21599, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncTable", 0) < (0)) __PYX_ERR(2, 576, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21599, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, i); __PYX_ERR(2, 576, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 21599, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 576, __pyx_L3_error) + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21599, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21599, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21599, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21600, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); + } + if (values[2]) { + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21600, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)-4e37); } - __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 576, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 576, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21599, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(__pyx_self, __pyx_v_group); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group) { - TA_StringTable *__pyx_v_table; - PyObject *__pyx_v_functions = NULL; - unsigned int __pyx_v_i; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_VAR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - unsigned int __pyx_t_2; - unsigned int __pyx_t_3; - unsigned int __pyx_t_4; - int __pyx_t_5; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getFuncTable", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableAlloc, TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 581, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 582, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_functions = ((PyObject*)__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21602, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21603, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_2 = __pyx_v_table->size; - __pyx_t_3 = __pyx_t_2; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21604, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21605, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 584, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_VAR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_functions, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(2, 584, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FuncTableFree, TA_FuncTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 585, __pyx_L1_error) + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21617, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21617, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21617, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __Pyx_INCREF(__pyx_v_functions); - __pyx_r = __pyx_v_functions; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncTable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + - __Pyx_XDECREF(__pyx_v_functions); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -59857,35 +279552,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_432_ta_getFuncTable(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434__get_flags, "__get_flags(int flag, dict flags_lookup_dict)\n\nTA-LIB provides hints for multiple flags as a bitwise-ORed int.\nThis function returns the flags from flag found in the provided\nflags_lookup_dict."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435__get_flags = {"__get_flags", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435__get_flags, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434__get_flags}; -static PyObject *__pyx_pw_5talib_7_ta_lib_435__get_flags(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_6update, "VAR_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - int __pyx_v_flag; - PyObject *__pyx_v_flags_lookup_dict = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -59895,207 +279588,82 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 588, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21619, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 588, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21619, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__get_flags", 0) < (0)) __PYX_ERR(2, 588, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, i); __PYX_ERR(2, 588, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21619, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21619, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 588, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 588, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21619, __pyx_L3_error) } - __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 588, __pyx_L3_error) - __pyx_v_flags_lookup_dict = ((PyObject*)values[1]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21620, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__get_flags", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 588, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21619, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(2, 588, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_434__get_flags(__pyx_self, __pyx_v_flag, __pyx_v_flags_lookup_dict); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_flag, PyObject *__pyx_v_flags_lookup_dict) { - PyObject *__pyx_v_bit = NULL; - PyObject *__pyx_v_description = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get_flags", 0); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = (__pyx_v_flag < 1); + __pyx_v_retCode = TA_VAR_Update(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); if (__pyx_t_1) { - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21624, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 598, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - - if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { - PyErr_Format(PyExc_AttributeError, "\047NoneType\047 object has no attribute \047%.30s\047", "items"); - __PYX_ERR(2, 599, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely((PyList_Sort(__pyx_t_4) < 0))) __PYX_ERR(2, 599, __pyx_L1_error) - __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 599, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - __pyx_t_4 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_3, __pyx_t_5, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_5; - if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { - PyObject* sequence = __pyx_t_4; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(2, 599, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_6); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_7); - } else { - __pyx_t_6 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); - } - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 599, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L7_unpacking_done; - __pyx_L6_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(2, 599, __pyx_L1_error) - __pyx_L7_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_bit, __pyx_t_6); - __pyx_t_6 = 0; - __Pyx_XDECREF_SET(__pyx_v_description, __pyx_t_7); - __pyx_t_7 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = __Pyx_PyNumber_And_object_int(__pyx_v_bit, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(2, 600, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__pyx_t_1) { - - - if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, __pyx_v_description))) __PYX_ERR(2, 598, __pyx_L1_error) - - } - - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { PyObject *__pyx_temp; { @@ -60111,16 +279679,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib.__get_flags", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_bit); - __Pyx_XDECREF(__pyx_v_description); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -60128,23 +279691,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_434__get_flags(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo, "_ta_getFuncInfo(char *function_name)\n\nReturns the info dict for the function. It has the following keys: name,\ngroup, help, flags, num_inputs, num_opt_inputs and num_outputs."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo = {"_ta_getFuncInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436_ta_getFuncInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_437_ta_getFuncInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_8peek, "VAR_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -60155,7 +279717,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getFuncInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60165,45 +279727,45 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 641, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21627, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21627, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getFuncInfo", 0) < (0)) __PYX_ERR(2, 641, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21627, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, i); __PYX_ERR(2, 641, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21627, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21627, __pyx_L3_error) } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 641, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21628, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 641, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21627, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(__pyx_self, __pyx_v_function_name); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -60214,197 +279776,101 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name) { - TA_FuncInfo const *__pyx_v_info; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; - PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getFuncInfo", 0); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 647, __pyx_L1_error) - __pyx_v_retCode = TA_GetFuncInfo(__pyx_t_1, (&__pyx_v_info)); + __pyx_v_retCode = TA_VAR_Peek(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { - __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_info->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_6}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_group, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 653, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 653, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_6); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 653, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_5, __pyx__function); - __pyx_t_7 = 0; - } - #endif + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_6, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_5 = NULL; - __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_8 = NULL; - __pyx_t_5 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 656, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 656, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_opt_inputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_VAR_Value(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = NULL; - __pyx_t_8 = __Pyx_PyLong_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 657, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8}; - __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(&PyLong_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 657, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_num_outputs, __pyx_t_3) < (0)) __PYX_ERR(2, 651, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { @@ -60420,12 +279886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("talib._ta_lib._ta_getFuncInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -60436,36 +279897,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_436_ta_getFuncInfo(CYTHON_UNUSED PyObj } +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_VAR_OutRange(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VAR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_VAR_Advance(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo, "_ta_getInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s input info dict for the given index. It has two\nkeys: name and flags."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo = {"_ta_getInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438_ta_getInputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_439_ta_getInputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VAR_Stream_10copy, "VAR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VAR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getInputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -60474,226 +279962,90 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 660, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 660, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 660, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getInputParameterInfo", 0) < (0)) __PYX_ERR(2, 660, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 660, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 660, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 660, __pyx_L3_error) - } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 660, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 660, __pyx_L3_error) - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 660, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_v_self)); /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_InputParameterInfo const *__pyx_v_info; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_self) { + TA_VAR_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; + struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getInputParameterInfo", 0); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 666, __pyx_L1_error) - __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); - - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 669, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 669, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 669, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_v_clone = NULL; - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_in); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 670, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 670, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_v_retCode = TA_VAR_Clone(((TA_VAR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_4 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 670, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 671, __pyx_L1_error) - if (__pyx_t_8) { + if (__pyx_t_1) { - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 672, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[4], NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 672, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5); - __pyx_t_5 = 0; - goto __pyx_L3; } - __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(2, 673, __pyx_L1_error) - if (__pyx_t_8) { - + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream))))) __PYX_ERR(3, 21655, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices); - __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - } - __pyx_L3:; + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 677, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_9, __pyx_t_10}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 677, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; goto __pyx_L0; - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("talib._ta_lib._ta_getInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.VAR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -60701,25 +280053,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_438_ta_getInputParameterInfo(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static void __pyx_pw_5talib_7_ta_lib_10VHF_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10VHF_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_10VHF_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_VHF_Close(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + +} + + +/* Python wrapper */ +static int __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo, "_ta_getOptInputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s opt_input info dict for the given index. It has the\nfollowing keys: name, display_name, type, help, default_value and value."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo = {"_ta_getOptInputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440_ta_getOptInputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_441_ta_getOptInputParameterInfo(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -60727,289 +280110,195 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 681, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 681, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 681, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOptInputParameterInfo", 0) < (0)) __PYX_ERR(2, 681, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 681, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21679, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21679, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 681, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 681, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21679, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21679, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21679, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 681, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 681, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 681, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_440_ta_getOptInputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_OptInputParameterInfo const *__pyx_v_info; +static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_VHF_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; - PyObject *__pyx_v_default_value = NULL; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; - PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 0); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 687, __pyx_L1_error) - __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21681, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21682, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21683, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_optIn); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 691, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21684, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_4 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_v_handle = NULL; - __pyx_t_8 = (__pyx_v_info->type > 1); + __pyx_v_retCode = TA_VHF_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - if (__pyx_t_8) { - __pyx_t_5 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __pyx_t_5; - __pyx_t_5 = 0; - } else { - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = __pyx_t_5; - __pyx_t_5 = 0; - } + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_default_value = __pyx_t_2; - __pyx_t_2 = 0; + if (__pyx_t_4) { - __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 695, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VHF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_display_name, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_type_2, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_5) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_4) { - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_default_value, __pyx_v_default_value) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 695, __pyx_L1_error) - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; - } - __Pyx_XDECREF(__pyx_temp); + (void)(TA_VHF_Close(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle))); + } - __pyx_t_2 = 0; - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("talib._ta_lib._ta_getOptInputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + + + + + - __Pyx_XDECREF(__pyx_v_name); - __Pyx_XDECREF(__pyx_v_default_value); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo, "_ta_getOutputParameterInfo(char *function_name, int idx)\n\nReturns the function\047s output info dict for the given index. It has two\nkeys: name and flags."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo = {"_ta_getOutputParameterInfo", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442_ta_getOutputParameterInfo}; -static PyObject *__pyx_pw_5talib_7_ta_lib_443_ta_getOutputParameterInfo(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_4open_and_fill, "VHF_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VHF_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -61020,7 +280309,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61030,256 +280319,196 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_function_name,&__pyx_mstate_global->__pyx_n_u_idx,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 703, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21695, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21695, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21695, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 703, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 703, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21695, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21695, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 703, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 703, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21695, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21695, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21696, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 703, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 703, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 703, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21695, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_function_name, int __pyx_v_idx) { - TA_OutputParameterInfo const *__pyx_v_info; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + TA_VHF_Stream *__pyx_v_handle; TA_RetCode __pyx_v_retCode; - PyObject *__pyx_v_name = NULL; + struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; PyObject *__pyx_t_5 = NULL; - size_t __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_t_8; - int __pyx_t_9; - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 0); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 709, __pyx_L1_error) - __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); - - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 710, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __pyx_v_name = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21698, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_out); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 713, __pyx_L1_error) - __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21699, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_4 = __pyx_t_5; - __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_lower, __pyx_callargs+__pyx_t_6, (1-__pyx_t_6) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21700, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) - if (__pyx_t_9) { + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21701, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - } else { + __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); - __pyx_t_8 = __pyx_t_9; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - goto __pyx_L4_bool_binop_done; - } - __Pyx_INCREF(__pyx_v_name); - __pyx_t_2 = __pyx_v_name; - __pyx_t_10 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real, Py_NE); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) - if (__pyx_t_10) { + __pyx_v_handle = NULL; - } else { + __pyx_v_retCode = TA_VHF_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_9 = __pyx_t_10; + __pyx_t_4 = (__pyx_v_retCode != 0); - goto __pyx_L6_bool_binop_done; - } - __pyx_t_10 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real0, Py_NE); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) - if (__pyx_t_10) { + if (__pyx_t_4) { - } else { - __pyx_t_9 = __pyx_t_10; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L6_bool_binop_done; } - __pyx_t_10 = __Pyx_PyObject_CompareBoolNe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_real1, Py_NE); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 715, __pyx_L1_error) - - __pyx_t_9 = __pyx_t_10; - - __pyx_L6_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_10 = __pyx_t_9; - - - - __pyx_t_8 = __pyx_t_10; - - __pyx_L4_bool_binop_done:; - if (__pyx_t_8) { - - - __pyx_t_7 = __Pyx_PyUnicode_GET_LENGTH(__pyx_mstate_global->__pyx_n_u_real); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(2, 716, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 716, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - } + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name, __pyx_v_name) < (0)) __PYX_ERR(2, 719, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_6 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - assert(__pyx_t_4); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_3, __pyx__function); - __pyx_t_6 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_12}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_6, (3-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_5) < (0)) __PYX_ERR(2, 719, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21713, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21713, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21713, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_1; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_AddTraceback("talib._ta_lib._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); - __Pyx_XDECREF(__pyx_v_name); + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -61287,23 +280516,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_442_ta_getOutputParameterInfo(CYTHON_U /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs, "_get_defaults_and_docs(func_info)\n\nReturns a tuple with two outputs: defaults, a dict of parameter defaults,\nand documentation, a formatted docstring for the function.\n.. Note: func_info should come from Function.info, *not* _ta_getFuncInfo."); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs = {"_get_defaults_and_docs", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444_get_defaults_and_docs}; -static PyObject *__pyx_pw_5talib_7_ta_lib_445_get_defaults_and_docs(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_6update, "VHF_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyObject *__pyx_v_func_info = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -61314,7 +280542,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_get_defaults_and_docs (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -61324,551 +280552,221 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_func_info,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(2, 723, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21715, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "_get_defaults_and_docs", 0) < (0)) __PYX_ERR(2, 723, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21715, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, i); __PYX_ERR(2, 723, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21715, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(2, 723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21715, __pyx_L3_error) } - __pyx_v_func_info = values[0]; + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21716, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_get_defaults_and_docs", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 723, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21715, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(__pyx_self, __pyx_v_func_info); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info) { - PyObject *__pyx_v_defaults = NULL; - PyObject *__pyx_v_func_line = NULL; - PyObject *__pyx_v_func_args = NULL; - PyObject *__pyx_v_docs = NULL; - PyObject *__pyx_v_input_names = NULL; - PyObject *__pyx_v_input_name = NULL; - PyObject *__pyx_v_value = NULL; - PyObject *__pyx_v_params = NULL; - PyObject *__pyx_v_param = NULL; - PyObject *__pyx_v_outputs = NULL; - PyObject *__pyx_v_candlestick = NULL; - PyObject *__pyx_v_output = NULL; - PyObject *__pyx_v_documentation = NULL; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - PyObject *(*__pyx_t_5)(PyObject *); - int __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9[4]; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - PyObject *__pyx_t_12 = NULL; - PyObject *__pyx_t_13[5]; - size_t __pyx_t_14; - PyObject *__pyx_t_15 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_get_defaults_and_docs", 0); - - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_defaults = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 730, __pyx_L1_error); - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u__7); - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u__7); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_mstate_global->__pyx_kp_u__7) != (0)) __PYX_ERR(2, 730, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_v_func_line = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 731, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_kp_u_input_arrays_2); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_mstate_global->__pyx_kp_u_input_arrays_2) != (0)) __PYX_ERR(2, 731, __pyx_L1_error); - __pyx_v_func_args = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_docs = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 733, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_RefNannySetupContext("update", 0); + __pyx_v_retCode = TA_VHF_Update(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_input_names = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 736, __pyx_L1_error) + if (__pyx_t_1) { - if (likely(PyList_CheckExact(__pyx_v_input_names)) || PyTuple_CheckExact(__pyx_v_input_names)) { - __pyx_t_2 = __pyx_v_input_names; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 737, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 737, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 737, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_1 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 737, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 737, __pyx_L1_error) - } else { - __pyx_t_1 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 737, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 738, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - __pyx_t_6 = PyList_Check(__pyx_v_value); - __pyx_t_7 = (!__pyx_t_6); - - - if (__pyx_t_7) { - - - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_any_ndarray); - __Pyx_DECREF_SET(__pyx_v_value, __pyx_mstate_global->__pyx_kp_u_any_ndarray); - - } - - __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 741, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_value), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 741, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; - __pyx_t_9[1] = __pyx_t_1; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_9[3] = __pyx_t_8; - __pyx_t_10 = 6; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); - #endif - __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 741, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_12); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 741, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 743, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_v_params = __pyx_t_2; - __pyx_t_2 = 0; - - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 744, __pyx_L1_error) - if (__pyx_t_7) { - - - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 745, __pyx_L1_error) - - - } - - if (likely(PyList_CheckExact(__pyx_v_params)) || PyTuple_CheckExact(__pyx_v_params)) { - __pyx_t_2 = __pyx_v_params; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_params); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 746, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 746, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_12 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 746, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_12 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_12 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 746, __pyx_L1_error) - } else { - __pyx_t_12 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_12)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 746, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_12); - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_12); - __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_8), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u__8; - __pyx_t_9[1] = __pyx_t_12; - __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_; - __pyx_t_9[3] = __pyx_t_1; - __pyx_t_10 = 6; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9[3]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_9[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_9[3]); - #endif - __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 4, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 747, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 747, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - - __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_12 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_13[0] = __pyx_mstate_global->__pyx_kp_u__9; - __pyx_t_13[1] = __pyx_t_8; - __pyx_t_13[2] = __pyx_mstate_global->__pyx_kp_u__10; - __pyx_t_13[3] = __pyx_t_12; - __pyx_t_13[4] = __pyx_mstate_global->__pyx_kp_u__11; - __pyx_t_10 = 3; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_13[3]); - #endif - __pyx_t_11 = 0; - #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH - __pyx_t_11 |= __Pyx_PyUnicode_KIND_04(__pyx_t_13[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_13[3]); - #endif - __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_13, 5, __pyx_t_10, __pyx_t_11); - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_1); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - - __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_1) < 0))) __PYX_ERR(2, 749, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_12 = __pyx_v_param; - __Pyx_INCREF(__pyx_t_12); - __pyx_t_14 = 0; + { + PyObject *__pyx_temp; { - PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_mstate_global->__pyx_n_u_matype}; - __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_endswith, __pyx_callargs+__pyx_t_14, (2-__pyx_t_14) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 750, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { - - - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_3, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_15 = PyList_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_1) != (0)) __PYX_ERR(2, 751, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 751, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_8 = 0; - __pyx_t_8 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__12, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_8, long, 1, __Pyx_PyLong_From_long, 1, 1, 1, __Pyx_ReferenceSharing_OwnStrongReference) < 0))) __PYX_ERR(2, 751, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; } - - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_outputs = __pyx_t_2; - __pyx_t_2 = 0; - - __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_function_flags); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 754, __pyx_L1_error) - if (!__pyx_t_7) { - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } else { - __Pyx_INCREF(__pyx_t_8); - __pyx_t_2 = __pyx_t_8; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L12_bool_binop_done; + __Pyx_XDECREF(__pyx_temp); } - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_8); - __pyx_t_2 = __pyx_t_8; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_L12_bool_binop_done:; - __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick, __pyx_t_2, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - __pyx_v_candlestick = __pyx_t_2; __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_mstate_global->__pyx_kp_u_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 755, __pyx_L1_error) - - - if (likely(PyList_CheckExact(__pyx_v_outputs)) || PyTuple_CheckExact(__pyx_v_outputs)) { - __pyx_t_2 = __pyx_v_outputs; __Pyx_INCREF(__pyx_t_2); - __pyx_t_4 = 0; - __pyx_t_5 = NULL; - } else { - __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 756, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 756, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_5)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 756, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_4, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_4; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 756, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_8 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4)); - #else - __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_4); - #endif - ++__pyx_t_4; - } - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 756, __pyx_L1_error) - } else { - __pyx_t_8 = __pyx_t_5(__pyx_t_2); - if (unlikely(!__pyx_t_8)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(2, 756, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_8); - __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8); - __pyx_t_8 = 0; - - __pyx_t_6 = __Pyx_PyObject_CompareBoolEq_object_str(__pyx_v_output, __pyx_mstate_global->__pyx_n_u_integer, Py_EQ); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 757, __pyx_L1_error) - if (__pyx_t_6) { - - } else { - - __pyx_t_7 = __pyx_t_6; - - goto __pyx_L17_bool_binop_done; - } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_candlestick); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 757, __pyx_L1_error) - __pyx_t_7 = __pyx_t_6; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_L17_bool_binop_done:; - if (__pyx_t_7) { + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __Pyx_INCREF(__pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); - __Pyx_DECREF_SET(__pyx_v_output, __pyx_mstate_global->__pyx_kp_u_integer_values_are_100_0_or_100); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_8peek, "VHF_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_real; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[1] = {0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21723, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21723, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21723, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21723, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21723, __pyx_L3_error) } + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21724, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21723, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self), __pyx_v_real); - __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_4, __pyx_v_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 759, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - - + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 761, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_mstate_global->__pyx_kp_u__13); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 762, __pyx_L1_error) + __pyx_v_retCode = TA_VHF_Peek(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyList_Insert(__pyx_v_docs, 0, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 763, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__14, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_documentation = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 765, __pyx_L1_error) + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v_defaults); - __Pyx_GIVEREF(__pyx_v_defaults); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_defaults) != (0)) __PYX_ERR(2, 765, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_documentation); - __Pyx_GIVEREF(__pyx_v_documentation); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_documentation) != (0)) __PYX_ERR(2, 765, __pyx_L1_error); { PyObject *__pyx_temp; { @@ -61883,455 +280781,495 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_444_get_defaults_and_docs(CYTHON_UNUSE /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_12); - __Pyx_XDECREF(__pyx_t_15); - __Pyx_AddTraceback("talib._ta_lib._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_defaults); - __Pyx_XDECREF(__pyx_v_func_line); - __Pyx_XDECREF(__pyx_v_func_args); - __Pyx_XDECREF(__pyx_v_docs); - __Pyx_XDECREF(__pyx_v_input_names); - __Pyx_XDECREF(__pyx_v_input_name); - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_params); - __Pyx_XDECREF(__pyx_v_param); - __Pyx_XDECREF(__pyx_v_outputs); - __Pyx_XDECREF(__pyx_v_candlestick); - __Pyx_XDECREF(__pyx_v_output); - __Pyx_XDECREF(__pyx_v_documentation); + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) { - TA_FuncHandle const *__pyx_v_handle; - TA_FuncHandle const *__pyx_r; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_getFuncHandle", 0); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetFuncHandle, TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 781, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - { - - __pyx_r = __pyx_v_handle; - } - goto __pyx_L0; - + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_getFuncHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } - -static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) { - TA_ParamHolder *__pyx_v_holder; +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - TA_ParamHolder *__pyx_r; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - TA_FuncHandle const *__pyx_t_1; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 0); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(2, 789, __pyx_L1_error) - __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_t_1, (&__pyx_v_holder)); + __pyx_v_retCode = TA_VHF_Value(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { - { - __pyx_r = __pyx_v_holder; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); } + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderAlloc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_paramHolderFree", 0); +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ParamHolderFree, TA_ParamHolderFree(__pyx_v_params), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 798, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + { + + __pyx_r = TA_VHF_OutRange(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; __pyx_L0:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, int __pyx_v_value) { - TA_RetCode __pyx_v_retCode; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_setOptInputParamInteger", 0); +static TA_RetCode __pyx_f_5talib_7_ta_lib_10VHF_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; - __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = TA_VHF_Advance(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamInteger", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; __pyx_L0:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10VHF_Stream_10copy, "VHF_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10VHF_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_v_self)); + /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } - -static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__pyx_v_holder, int __pyx_v_idx, double __pyx_v_value) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_self) { + TA_VHF_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - int __pyx_r; + struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *__pyx_v_stream = 0; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 0); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + __pyx_v_clone = NULL; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 806, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_VHF_Clone(((TA_VHF_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); + __pyx_t_1 = (__pyx_v_retCode != 0); - /* function exit code */ - __pyx_r = 0; + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream))))) __PYX_ERR(3, 21751, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); + } + __Pyx_XDECREF(__pyx_temp); + } goto __pyx_L0; + + + /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_setOptInputParamReal", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.VHF_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) { - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_r; +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__ta_getLookback", 0); + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); - __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_lookback)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static void __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { + int __pyx_t_1; - { + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); - __pyx_r = __pyx_v_lookback; - } - goto __pyx_L0; + if (__pyx_t_1) { - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_getLookback", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; + (void)(TA_VORTEX_Close(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle))); + __pyx_v_self->__pyx_base._handle = NULL; + } + + + /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_AC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446stream_AC, "stream_AC(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447stream_AC = {"stream_AC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447stream_AC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446stream_AC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_AC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AC (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 9, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21778, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 9, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AC", 0) < (0)) __PYX_ERR(5, 9, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AC", 0, 2, 5, i); __PYX_ERR(5, 9, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21778, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 21778, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 9, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 9, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 9, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 9, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 9, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21778, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21778, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21778, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 11, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21778, __pyx_L3_error) } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AC", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 9, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 21778, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 11, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 11, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_446stream_AC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_AC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { +static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_VORTEX_Stream *__pyx_v_handle; + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 33, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 35, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21782, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21782, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 37, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21783, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21784, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_retCode = TA_AC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21785, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 40, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_VORTEX_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VORTEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 41, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_VORTEX_Close(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + @@ -62339,34 +281277,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_AC(CYTHON_UNUSED PyObject *_ - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_ACCBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448stream_ACCBANDS, "stream_ACCBANDS(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449stream_ACCBANDS = {"stream_ACCBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449stream_ACCBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448stream_ACCBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_ACCBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill, "VORTEX_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -62378,7 +281313,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ACCBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62390,208 +281325,289 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 43, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21797, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21797, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21797, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21797, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21797, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ACCBANDS", 0) < (0)) __PYX_ERR(5, 43, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21797, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ACCBANDS", 0, 3, 4, i); __PYX_ERR(5, 43, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 21797, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21797, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21797, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21797, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 43, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21797, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 45, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21798, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 43, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 21797, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 45, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 45, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 45, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_448stream_ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_ACCBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outplusvi = 0; + PyArrayObject *__pyx_v_outminusvi = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outrealupperband; - double __pyx_v_outrealmiddleband; - double __pyx_v_outreallowerband; + TA_VORTEX_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + int __pyx_t_3; + int __pyx_t_4; PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ACCBANDS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 70, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 72, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 74, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21802, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21802, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 76, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21803, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21804, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21805, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); - __pyx_v_retCode = TA_ACCBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 81, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_VORTEX_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 82, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 21818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outplusvi)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 21818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 21818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outminusvi)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_5); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_10 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; + __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 82, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 82, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 82, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.stream_ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outplusvi); + __Pyx_XDECREF((PyObject *)__pyx_v_outminusvi); - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -62599,34 +281615,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_ACCBANDS(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_ACOS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_450stream_ACOS, "stream_ACOS(ndarray real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_451stream_ACOS = {"stream_ACOS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_451stream_ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450stream_ACOS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_ACOS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_6update, "VORTEX_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ACOS (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62636,124 +281653,156 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 84, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21820, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21820, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21820, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 84, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21820, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ACOS", 0) < (0)) __PYX_ERR(5, 84, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, i); __PYX_ERR(5, 84, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21820, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21820, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 84, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21820, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21820, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21820, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21821, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21821, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21821, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 84, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21820, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 86, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_450stream_ACOS(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ACOS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_VORTEX_Update(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_ACOS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -62761,37 +281810,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_ACOS(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_AD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_452stream_AD, "stream_AD(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_453stream_AD = {"stream_AD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_453stream_AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452stream_AD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_AD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_8peek, "VORTEX_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AD (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -62801,183 +281848,156 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 111, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21829, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 111, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21829, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21829, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21829, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AD", 0) < (0)) __PYX_ERR(5, 111, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, i); __PYX_ERR(5, 111, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21829, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21829, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21829, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21829, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 111, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21829, __pyx_L3_error) } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21830, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21830, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21830, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 111, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21829, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 113, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 113, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 113, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 113, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_452stream_AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_AD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 133, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("peek", 0); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_retCode = TA_VORTEX_Peek(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 141, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_AD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 145, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -62985,633 +282005,518 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_AD(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_ADD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_454stream_ADD, "stream_ADD(ndarray real0, ndarray real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_455stream_ADD = {"stream_ADD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_455stream_ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454stream_ADD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_ADD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5value_1__get__(PyObject *__pyx_v_self) { CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADD (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 147, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 147, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 147, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADD", 0) < (0)) __PYX_ERR(5, 147, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, i); __PYX_ERR(5, 147, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 147, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 147, __pyx_L3_error) - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 147, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 149, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 149, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_454stream_ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { + double __pyx_v_outplusvi; + double __pyx_v_outminusvi; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 170, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_VORTEX_Value(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 172, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_ADD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + assert(__pyx_t_3); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + + __pyx_r = TA_VORTEX_OutRange(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_ADOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_456stream_ADOSC, "stream_ADOSC(ndarray high, ndarray low, ndarray close, ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_457stream_ADOSC = {"stream_ADOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_457stream_ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456stream_ADOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_ADOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADOSC (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); +static TA_RetCode __pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 178, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADOSC", 0) < (0)) __PYX_ERR(5, 178, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, i); __PYX_ERR(5, 178, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 178, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 178, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 178, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 178, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 178, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 180, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 180, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(5, 178, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + + __pyx_r = TA_VORTEX_Advance(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle)); } - __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 180, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 180, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 180, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 180, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_456stream_ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); + goto __pyx_L0; + /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_10copy, "VORTEX_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_11copy(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_v_self)); + /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_ADOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_self) { + TA_VORTEX_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; + struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 205, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_VORTEX_Clone(((TA_VORTEX_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); + } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 211, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream))))) __PYX_ERR(3, 21859, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_ADOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_11VWAP_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_VWAP_Close(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_ADR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_458stream_ADR, "stream_ADR(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_459stream_ADR = {"stream_ADR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_459stream_ADR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458stream_ADR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_ADR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADR (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 217, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21881, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21881, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 217, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21881, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 217, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21881, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 217, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21881, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADR", 0) < (0)) __PYX_ERR(5, 217, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADR", 0, 2, 3, i); __PYX_ERR(5, 217, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 217, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 217, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 217, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21881, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 21881, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 219, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21881, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21881, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21881, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21881, __pyx_L3_error) + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADR", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 217, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21881, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 219, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 219, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_458stream_ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_ADR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_VWAP_Stream *__pyx_v_handle; double __pyx_v_outreal; - PyObject *__pyx_r = NULL; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 239, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 243, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21887, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21888, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_retCode = TA_ADR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21889, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_VWAP_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VWAP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_VWAP_Close(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -63619,35 +282524,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_ADR(CYTHON_UNUSED PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_ADX(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_460stream_ADX, "stream_ADX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_461stream_ADX = {"stream_ADX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_461stream_ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460stream_ADX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_ADX(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill, "VWAP_Stream.open_and_fill(high, low, close, volume)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + PyObject *__pyx_v_volume = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -63658,7 +282560,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADX (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63668,152 +282570,205 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 249, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21900, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21900, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21900, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21900, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21900, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADX", 0) < (0)) __PYX_ERR(5, 249, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, i); __PYX_ERR(5, 249, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 249, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 249, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 249, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 249, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21900, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 21900, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 251, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21900, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21900, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21900, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21900, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + __pyx_v_volume = values[3]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 249, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21900, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 251, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 251, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 251, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_460stream_ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_ADX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, PyObject *__pyx_v_volume) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + TA_VWAP_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 278, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21907, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21908, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21909, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_retCode = TA_ADX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_VWAP_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 282, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -63829,20 +282784,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_ADX(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -63850,26 +282810,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_ADX(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_ADXR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_462stream_ADXR, "stream_ADXR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_463stream_ADXR = {"stream_ADXR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_463stream_ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462stream_ADXR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_ADXR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_6update, "VWAP_Stream.update(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -63880,7 +282839,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ADXR (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -63890,181 +282849,126 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 284, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21923, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21923, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21923, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21923, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21923, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ADXR", 0) < (0)) __PYX_ERR(5, 284, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, i); __PYX_ERR(5, 284, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 284, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 284, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21923, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 21923, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 286, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21923, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21923, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21923, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21923, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 284, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21923, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 286, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 286, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 286, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_462stream_ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_ADXR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADXR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_VWAP_Update(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 313, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_ADXR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -64072,26 +282976,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_ADXR(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_AO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_464stream_AO, "stream_AO(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_465stream_AO = {"stream_AO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_465stream_AO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464stream_AO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_AO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_8peek, "VWAP_Stream.peek(self, double high, double low, double close, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -64102,7 +283005,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AO (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64112,214 +283015,257 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 319, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21931, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AO", 0) < (0)) __PYX_ERR(5, 319, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AO", 0, 2, 4, i); __PYX_ERR(5, 319, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 319, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 319, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 319, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 319, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21931, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 21931, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 321, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 321, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21931, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21931, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21931, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21931, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 319, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21931, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 321, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_464stream_AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_AO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close, double __pyx_v_volume) { double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("peek", 0); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_VWAP_Peek(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 346, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_AO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_VWAP_Value(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_VWAP_OutRange(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_VWAP_Advance(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_APO(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_466stream_APO, "stream_APO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_467stream_APO = {"stream_APO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_467stream_APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466stream_APO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_APO(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWAP_Stream_10copy, "VWAP_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_APO (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64328,197 +283274,148 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 352, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_APO", 0) < (0)) __PYX_ERR(5, 352, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, i); __PYX_ERR(5, 352, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 352, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 352, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 354, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 354, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 354, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)1)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 352, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 354, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_466stream_APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_APO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_self) { + TA_VWAP_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; + struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_APO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); + __pyx_v_retCode = TA_VWAP_Clone(((TA_VWAP_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_APO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream))))) __PYX_ERR(3, 21959, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_2); + __pyx_t_2 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); + + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; + + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.VWAP_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); + /* function exit code */ __Pyx_RefNannyFinishContext(); - return __pyx_r; +} + +static void __pyx_pf_5talib_7_ta_lib_11VWMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { + int __pyx_t_1; + + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_VWMA_Close(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ + } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_AROON(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_468stream_AROON, "stream_AROON(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_469stream_AROON = {"stream_AROON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_469stream_AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468stream_AROON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_AROON(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -64526,182 +283423,181 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AROON (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 383, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21984, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 383, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 383, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 383, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AROON", 0) < (0)) __PYX_ERR(5, 383, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21984, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, i); __PYX_ERR(5, 383, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 21984, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 383, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 383, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 383, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21984, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21984, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_real = values[0]; + __pyx_v_volume = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 385, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21984, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 383, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21984, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 385, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 385, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_468stream_AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_VWMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outaroondown; - double __pyx_v_outaroonup; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AROON", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 407, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 409, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21987, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21987, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 411, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21988, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outaroondown = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21989, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_outaroonup = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21990, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_retCode = TA_AROON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); + __pyx_v_handle = NULL; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 415, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_retCode = TA_VWMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VWMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 416, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 416, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_VWMA_Close(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); @@ -64709,34 +283605,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_AROON(CYTHON_UNUSED PyObject - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_AROONOSC(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_470stream_AROONOSC, "stream_AROONOSC(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_471stream_AROONOSC = {"stream_AROONOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_471stream_AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470stream_AROONOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_AROONOSC(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill, "VWMA_Stream.open_and_fill(real, volume, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; + PyObject *__pyx_v_real = 0; + PyObject *__pyx_v_volume = 0; int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; @@ -64748,7 +283640,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AROONOSC (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64758,135 +283650,184 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 418, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22001, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 418, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 418, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 418, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AROONOSC", 0) < (0)) __PYX_ERR(5, 418, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22001, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, i); __PYX_ERR(5, 418, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 22001, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 418, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 418, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22001, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 418, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22001, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); + __pyx_v_real = values[0]; + __pyx_v_volume = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 420, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22002, __pyx_L3_error) } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 418, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 22001, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 420, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 420, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_470stream_AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject *__pyx_v_real, PyObject *__pyx_v_volume, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyArrayObject *__pyx_v_a_volume = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + TA_VWMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AROONOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 440, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 442, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22005, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_volume); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 22005, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 444, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22006, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22007, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22008, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_retCode = TA_AROONOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 447, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_VWMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_volume)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 448, __pyx_L1_error) + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_volume); + __Pyx_GIVEREF(__pyx_v_volume); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -64902,18 +283843,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_AROONOSC(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF((PyObject *)__pyx_v_a_volume); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); + + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -64921,34 +283867,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_AROONOSC(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_ASIN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_472stream_ASIN, "stream_ASIN(ndarray real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_473stream_ASIN = {"stream_ASIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_473stream_ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472stream_ASIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_ASIN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_6update, "VWMA_Stream.update(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ASIN (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -64958,124 +283904,110 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 450, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22022, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22022, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22022, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ASIN", 0) < (0)) __PYX_ERR(5, 450, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, i); __PYX_ERR(5, 450, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22022, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 22022, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22022, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22022, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22023, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22023, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 450, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 22022, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 452, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_472stream_ASIN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ASIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_VWMA_Update(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_ASIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -65083,34 +284015,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_ASIN(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_ATAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_474stream_ATAN, "stream_ATAN(ndarray real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_475stream_ATAN = {"stream_ATAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_475stream_ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474stream_ATAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_ATAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_8peek, "VWMA_Stream.peek(self, double real, double volume)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; + double __pyx_v_real; + double __pyx_v_volume; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ATAN (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65120,162 +284052,241 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 477, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22030, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22030, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ATAN", 0) < (0)) __PYX_ERR(5, 477, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, i); __PYX_ERR(5, 477, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22030, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 22030, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { + } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22030, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22030, __pyx_L3_error) } - __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22031, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22031, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 22030, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 479, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_474stream_ATAN(__pyx_self, __pyx_v_real); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_volume); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, double __pyx_v_real, double __pyx_v_volume) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("peek", 0); + + __pyx_v_retCode = TA_VWMA_Peek(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, __pyx_v_volume, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + /* function exit code */ - goto __pyx_L0; __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + + + __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ATAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_VWMA_Value(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_ATAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + + __pyx_r = TA_VWMA_OutRange(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_VWMA_Advance(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_ATR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_476stream_ATR, "stream_ATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_477stream_ATR = {"stream_ATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_477stream_ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476stream_ATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_ATR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_11VWMA_Stream_10copy, "VWMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ATR (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65284,400 +284295,373 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 504, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 504, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 504, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 504, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 504, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ATR", 0) < (0)) __PYX_ERR(5, 504, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, i); __PYX_ERR(5, 504, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 504, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 504, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 504, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 504, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 506, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 504, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 506, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 506, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 506, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_476stream_ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_ATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_self) { + TA_VWMA_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; + struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ATR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("copy", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_clone = NULL; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_v_retCode = TA_VWMA_Clone(((TA_VWMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + if (__pyx_t_1) { - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 531, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 533, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + } + + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream))))) __PYX_ERR(3, 22058, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_ATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.VWMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10WAD_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10WAD_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10WAD_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_1) { + + + (void)(TA_WAD_Close(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_AVGDEV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_478stream_AVGDEV, "stream_AVGDEV(ndarray real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_479stream_AVGDEV = {"stream_AVGDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_479stream_AVGDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478stream_AVGDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_AVGDEV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AVGDEV (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 539, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22080, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22080, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 539, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 539, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AVGDEV", 0) < (0)) __PYX_ERR(5, 539, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AVGDEV", 0, 1, 2, i); __PYX_ERR(5, 539, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 539, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 539, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22080, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 22080, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 541, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22080, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22080, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22080, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 539, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22080, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 541, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_478stream_AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_AVGDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_WAD_Stream *__pyx_v_handle; double __pyx_v_outreal; - PyObject *__pyx_r = NULL; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AVGDEV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 560, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22083, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22084, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22084, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22084, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22085, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_v_retCode = TA_AVGDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22086, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22087, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_WAD_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WAD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22092, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_WAD_Close(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle))); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AVGDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_AVGPRICE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_480stream_AVGPRICE, "stream_AVGPRICE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_481stream_AVGPRICE = {"stream_AVGPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_481stream_AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480stream_AVGPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_AVGPRICE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_4open_and_fill, "WAD_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WAD_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_AVGPRICE (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65687,152 +284671,186 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 568, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22098, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 568, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_AVGPRICE", 0) < (0)) __PYX_ERR(5, 568, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, i); __PYX_ERR(5, 568, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22098, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 22098, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22098, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22098, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 568, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 568, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22098, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 568, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22098, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 570, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 570, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 570, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 570, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_480stream_AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - double __pyx_v_outreal; + TA_WAD_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AVGPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 590, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 592, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 594, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22103, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22103, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22103, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22104, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22105, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22106, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 596, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_handle = NULL; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 598, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_retCode = TA_WAD_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WAD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_v_retCode = TA_AVGPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 601, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 602, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -65848,22 +284866,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_AVGPRICE(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -65871,38 +284891,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_AVGPRICE(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_BBANDS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_482stream_BBANDS, "stream_BBANDS(ndarray real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_483stream_BBANDS = {"stream_BBANDS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_483stream_BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482stream_BBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_BBANDS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_6update, "WAD_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_BBANDS (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -65912,116 +284929,64 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 604, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22120, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 604, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 604, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 604, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BBANDS", 0) < (0)) __PYX_ERR(5, 604, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, i); __PYX_ERR(5, 604, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 604, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 604, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 604, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 604, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 604, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22120, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22120, __pyx_L3_error) } } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) - } else { - __pyx_v_nbdevup = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) - } else { - __pyx_v_nbdevdn = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 606, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_matype = ((int)((int)0)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22120, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22120, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22120, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22121, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22121, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22121, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 604, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22120, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 606, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_482stream_BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - @@ -66029,95 +284994,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_BBANDS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdevup, double __pyx_v_nbdevdn, int __pyx_v_matype) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outrealupperband; - double __pyx_v_outrealmiddleband; - double __pyx_v_outreallowerband; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; + int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_BBANDS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 632, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + __pyx_v_retCode = TA_WAD_Update(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; + if (__pyx_t_1) { - __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_BBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 639, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 640, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 640, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 640, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 640, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66125,25 +285048,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_BBANDS(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_BETA(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_484stream_BETA, "stream_BETA(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_485stream_BETA = {"stream_BETA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_485stream_BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484stream_BETA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_BETA(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_8peek, "WAD_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -66154,7 +285076,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_BETA (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66164,200 +285086,249 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 642, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22128, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22128, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BETA", 0) < (0)) __PYX_ERR(5, 642, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, i); __PYX_ERR(5, 642, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 642, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 642, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 642, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22128, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22128, __pyx_L3_error) } } - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 644, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22128, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22128, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22128, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22129, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22129, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22129, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 642, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22128, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 644, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 644, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_484stream_BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_BETA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 665, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("peek", 0); - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WAD_Peek(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 669, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - __pyx_v_retCode = TA_BETA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 672, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 673, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + __pyx_v_retCode = TA_WAD_Value(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + __pyx_t_1 = (__pyx_v_retCode != 0); + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_WAD_OutRange(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WAD_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_WAD_Advance(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_BOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_486stream_BOP, "stream_BOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_487stream_BOP = {"stream_BOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_487stream_BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486stream_BOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_BOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WAD_Stream_10copy, "WAD_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WAD_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_BOP (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66366,395 +285337,330 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 675, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 675, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 675, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 675, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 675, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_BOP", 0) < (0)) __PYX_ERR(5, 675, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, i); __PYX_ERR(5, 675, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 675, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 675, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 675, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 675, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 675, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 677, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 677, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 677, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 677, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_486stream_BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_self) { + TA_WAD_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; + struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_BOP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("copy", 0); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 699, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WAD_Clone(((TA_WAD_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 701, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 705, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream))))) __PYX_ERR(3, 22156, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_BOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.WAD_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_WCLPRICE_Close(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + __pyx_v_self->__pyx_base._handle = NULL; + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CCI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_488stream_CCI, "stream_CCI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_489stream_CCI = {"stream_CCI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_489stream_CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488stream_CCI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CCI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CCI (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 711, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 711, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 711, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 711, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 711, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CCI", 0) < (0)) __PYX_ERR(5, 711, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22178, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, i); __PYX_ERR(5, 711, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 711, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 711, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 711, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 711, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 22178, __pyx_L3_error) } } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 713, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22178, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22178, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22178, __pyx_L3_error) } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 711, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 713, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 713, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 713, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_488stream_CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CCI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { +static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_WCLPRICE_Stream *__pyx_v_handle; double __pyx_v_outreal; - PyObject *__pyx_r = NULL; + TA_RetCode __pyx_v_retCode; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CCI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 734, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 736, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 738, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22182, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22182, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 740, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22183, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22184, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_retCode = TA_CCI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22185, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_WCLPRICE_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WCLPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 744, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_WCLPRICE_Close(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); @@ -66762,48 +285668,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CCI(CYTHON_UNUSED PyObject * - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDL2CROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_490stream_CDL2CROWS, "stream_CDL2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_491stream_CDL2CROWS = {"stream_CDL2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_491stream_CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490stream_CDL2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDL2CROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill, "WCLPRICE_Stream.open_and_fill(high, low, close)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL2CROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -66813,152 +285713,186 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 746, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22196, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 746, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL2CROWS", 0) < (0)) __PYX_ERR(5, 746, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, i); __PYX_ERR(5, 746, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22196, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 22196, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22196, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22196, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 746, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 746, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22196, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 746, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22196, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 748, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 748, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 748, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 748, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_490stream_CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + TA_WCLPRICE_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL2CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 768, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 770, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 772, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22201, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22201, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22201, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22202, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22203, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22204, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 774, __pyx_L1_error) + __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_handle = NULL; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 776, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_retCode = TA_WCLPRICE_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_outinteger = 0; + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 779, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 780, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -66974,22 +285908,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDL2CROWS(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -66997,37 +285933,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDL2CROWS(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDL3BLACKCROWS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_492stream_CDL3BLACKCROWS, "stream_CDL3BLACKCROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_493stream_CDL3BLACKCROWS = {"stream_CDL3BLACKCROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_493stream_CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492stream_CDL3BLACKCROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDL3BLACKCROWS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_6update, "WCLPRICE_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3BLACKCROWS (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67037,183 +285971,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 782, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22218, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 782, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22218, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(5, 782, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(5, 782, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22218, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22218, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22218, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22218, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 782, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22218, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22219, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22219, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22219, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 782, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22218, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 784, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 784, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 784, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 784, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_492stream_CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL3BLACKCROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 804, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 806, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WCLPRICE_Update(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 812, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outinteger = 0; - __pyx_v_retCode = TA_CDL3BLACKCROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 815, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -67221,37 +286090,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDL3BLACKCROWS(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDL3INSIDE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_494stream_CDL3INSIDE, "stream_CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_495stream_CDL3INSIDE = {"stream_CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_495stream_CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494stream_CDL3INSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDL3INSIDE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_8peek, "WCLPRICE_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3INSIDE (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67261,221 +286128,249 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 818, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22226, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 818, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22226, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22226, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22226, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3INSIDE", 0) < (0)) __PYX_ERR(5, 818, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(5, 818, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22226, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22226, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22226, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22226, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 818, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22226, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22227, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22227, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22227, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 818, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22226, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 820, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 820, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 820, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 820, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_494stream_CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL3INSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 840, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WCLPRICE_Peek(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 842, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 846, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 848, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + - __pyx_v_outinteger = 0; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_v_retCode = TA_CDL3INSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 851, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_WCLPRICE_Value(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_WCLPRICE_OutRange(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); +static TA_RetCode __pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_WCLPRICE_Advance(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; + return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDL3LINESTRIKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_496stream_CDL3LINESTRIKE, "stream_CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_497stream_CDL3LINESTRIKE = {"stream_CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_497stream_CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496stream_CDL3LINESTRIKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDL3LINESTRIKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_10copy, "WCLPRICE_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3LINESTRIKE (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67484,212 +286379,149 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 854, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 854, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 854, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 854, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 854, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(5, 854, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(5, 854, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 854, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 854, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 854, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 854, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 854, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 856, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 856, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 856, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 856, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_496stream_CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_self) { + TA_WCLPRICE_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; + struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL3LINESTRIKE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("copy", 0); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 878, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WCLPRICE_Clone(((TA_WCLPRICE_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 880, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 882, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 884, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream))))) __PYX_ERR(3, 22254, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_outinteger = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDL3LINESTRIKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.WCLPRICE_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_12WILLR_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + + + (void)(TA_WILLR_Close(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDL3OUTSIDE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_498stream_CDL3OUTSIDE, "stream_CDL3OUTSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_499stream_CDL3OUTSIDE = {"stream_CDL3OUTSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_499stream_CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498stream_CDL3OUTSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDL3OUTSIDE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; @@ -67697,182 +286529,198 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3OUTSIDE (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 890, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22278, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 890, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22278, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 890, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22278, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 890, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22278, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 890, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22278, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3OUTSIDE", 0) < (0)) __PYX_ERR(5, 890, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(5, 890, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22278, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 22278, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 890, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 890, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 890, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 890, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22278, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22278, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22278, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22278, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22278, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 890, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22278, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 892, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 892, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 892, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 892, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_498stream_CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_WILLR_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL3OUTSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 912, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 914, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 918, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22282, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22282, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22283, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22284, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_retCode = TA_CDL3OUTSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22285, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 923, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_WILLR_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WILLR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 924, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_WILLR_Close(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); @@ -67880,39 +286728,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDL3OUTSIDE(CYTHON_UNUSED Py - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH, "stream_CDL3STARSINSOUTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH = {"stream_CDL3STARSINSOUTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill, "WILLR_Stream.open_and_fill(high, low, close, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_high = 0; + PyObject *__pyx_v_low = 0; + PyObject *__pyx_v_close = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -67923,7 +286764,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3STARSINSOUTH (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -67933,152 +286774,203 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 926, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22296, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22296, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22296, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22296, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 926, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22296, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(5, 926, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(5, 926, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22296, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 22296, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 926, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 926, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 926, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 926, __pyx_L3_error) + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22296, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22296, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22296, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22296, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_high = values[0]; + __pyx_v_low = values[1]; + __pyx_v_close = values[2]; + if (values[3]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22297, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 926, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22296, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 928, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 928, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject *__pyx_v_high, PyObject *__pyx_v_low, PyObject *__pyx_v_close, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_high = 0; + PyArrayObject *__pyx_v_a_low = 0; + PyArrayObject *__pyx_v_a_close = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + TA_WILLR_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL3STARSINSOUTH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 950, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 952, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_high); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22301, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_low); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22301, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_a_close); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22301, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22302, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22303, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22304, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; + + __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 954, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_handle = NULL; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 956, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_retCode = TA_WILLR_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_outinteger = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_v_retCode = TA_CDL3STARSINSOUTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 959, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_high); + __Pyx_GIVEREF(__pyx_v_high); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_low); + __Pyx_GIVEREF(__pyx_v_low); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + __Pyx_INCREF(__pyx_v_close); + __Pyx_GIVEREF(__pyx_v_close); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 960, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -68094,22 +286986,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH(CYTHON_UNUS /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_high); + __Pyx_XDECREF((PyObject *)__pyx_v_a_low); + __Pyx_XDECREF((PyObject *)__pyx_v_a_close); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68117,37 +287011,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDL3STARSINSOUTH(CYTHON_UNUS /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS, "stream_CDL3WHITESOLDIERS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS = {"stream_CDL3WHITESOLDIERS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_6update, "WILLR_Stream.update(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDL3WHITESOLDIERS (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68157,183 +287049,118 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 962, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22318, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 962, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22318, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22318, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22318, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(5, 962, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(5, 962, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22318, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22318, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22318, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22318, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 962, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22318, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22319, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22319, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22319, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 962, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22318, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 964, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 964, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 964, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 964, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDL3WHITESOLDIERS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __Pyx_RefNannySetupContext("update", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WILLR_Update(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 992, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outinteger = 0; - __pyx_v_retCode = TA_CDL3WHITESOLDIERS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 995, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -68341,38 +287168,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDL3WHITESOLDIERS(CYTHON_UNU /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLABANDONEDBABY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_504stream_CDLABANDONEDBABY, "stream_CDLABANDONEDBABY(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_505stream_CDLABANDONEDBABY = {"stream_CDLABANDONEDBABY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_505stream_CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_504stream_CDLABANDONEDBABY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLABANDONEDBABY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_8peek, "WILLR_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[3] = {0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLABANDONEDBABY (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68382,238 +287206,249 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 998, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22326, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 998, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 998, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 998, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 998, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 998, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(5, 998, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(5, 998, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 998, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 998, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 998, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 998, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 998, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22326, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22326, __pyx_L3_error) } } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1000, __pyx_L3_error) + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; } else { - __pyx_v_penetration = ((double)((double)0.3)); + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22326, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22326, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22326, __pyx_L3_error) } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22327, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22327, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22327, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 998, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22326, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1000, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_504stream_CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLABANDONEDBABY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLABANDONEDBABY", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WILLR_Peek(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1024, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1028, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1030, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_v_outinteger = 0; - __pyx_v_retCode = TA_CDLABANDONEDBABY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1033, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1034, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_WILLR_Value(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + __pyx_r = TA_WILLR_OutRange(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_WILLR_Advance(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK, "stream_CDLADVANCEBLOCK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK = {"stream_CDLADVANCEBLOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12WILLR_Stream_10copy, "WILLR_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLADVANCEBLOCK (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -68622,395 +287457,312 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1036, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1036, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1036, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1036, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1036, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(5, 1036, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(5, 1036, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1036, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1036, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1036, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1036, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1036, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1038, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_self) { + TA_WILLR_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; + struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLADVANCEBLOCK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("copy", 0); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WILLR_Clone(((TA_WILLR_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1064, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1066, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream))))) __PYX_ERR(3, 22354, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_outinteger = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLADVANCEBLOCK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1069, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.WILLR_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_10WMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_10WMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_10WMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_WMA_Close(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLBELTHOLD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_508stream_CDLBELTHOLD, "stream_CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_509stream_CDLBELTHOLD = {"stream_CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_509stream_CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508stream_CDLBELTHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLBELTHOLD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLBELTHOLD (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1072, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22378, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1072, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1072, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1072, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1072, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLBELTHOLD", 0) < (0)) __PYX_ERR(5, 1072, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(5, 1072, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22378, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22378, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1072, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1072, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1072, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1072, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22378, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22378, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22378, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1072, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22378, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1074, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_508stream_CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_WMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLBELTHOLD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1094, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1096, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22380, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22381, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22382, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22383, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_retCode = TA_WMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1102, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_outinteger = 0; + if (__pyx_t_4) { - __pyx_v_retCode = TA_CDLBELTHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1105, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_WMA_Close(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -69018,50 +287770,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLBELTHOLD(CYTHON_UNUSED Py - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLBREAKAWAY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_510stream_CDLBREAKAWAY, "stream_CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_511stream_CDLBREAKAWAY = {"stream_CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_511stream_CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510stream_CDLBREAKAWAY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLBREAKAWAY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_4open_and_fill, "WMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLBREAKAWAY (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69071,152 +287814,165 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1108, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22394, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1108, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1108, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1108, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1108, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLBREAKAWAY", 0) < (0)) __PYX_ERR(5, 1108, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(5, 1108, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22394, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22394, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1108, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1108, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1108, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1108, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22394, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22394, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22395, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1108, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22394, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1110, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_510stream_CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + TA_WMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLBREAKAWAY", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1130, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1132, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22397, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22398, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22399, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22400, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1136, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_handle = NULL; + + __pyx_v_retCode = TA_WMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1138, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - __pyx_v_outinteger = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLBREAKAWAY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + } - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1142, __pyx_L1_error) + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22412, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22412, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22412, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -69232,22 +287988,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLBREAKAWAY(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69255,37 +288011,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLBREAKAWAY(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU, "stream_CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU = {"stream_CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_6update, "WMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLCLOSINGMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69295,183 +288047,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1144, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22414, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1144, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22414, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(5, 1144, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 1144, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22414, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22414, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1144, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1144, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1144, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22414, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22415, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22414, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1146, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLCLOSINGMARUBOZU", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1170, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WMA_Update(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1174, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outinteger = 0; - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -69479,37 +288150,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLCLOSINGMARUBOZU(CYTHON_UN /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL, "stream_CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL = {"stream_CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_8peek, "WMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLCONCEALBABYSWALL (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69519,221 +288186,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1180, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22422, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1180, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1180, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1180, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1180, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22422, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(5, 1180, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(5, 1180, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22422, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22422, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1180, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1180, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1180, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1180, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22422, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22423, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1180, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22422, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1182, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLCONCEALBABYSWALL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WMA_Peek(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + } - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1210, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __pyx_v_outinteger = 0; - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + __pyx_v_retCode = TA_WMA_Value(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_WMA_OutRange(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_10WMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_WMA_Advance(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK, "stream_CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK = {"stream_CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_10WMA_Stream_10copy, "WMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_10WMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLCOUNTERATTACK (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -69742,413 +288421,312 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1216, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1216, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1216, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1216, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1216, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(5, 1216, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(5, 1216, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1216, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1216, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1216, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1216, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1216, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1218, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_self) { + TA_WMA_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; + struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLCOUNTERATTACK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1238, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("copy", 0); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_WMA_Clone(((TA_WMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1242, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1246, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream))))) __PYX_ERR(3, 22450, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_outinteger = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLCOUNTERATTACK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.WMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static void __pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_1__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_1__dealloc__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream___dealloc__(((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} +static void __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream___dealloc__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self) { + int __pyx_t_1; + __pyx_t_1 = (__pyx_v_self->__pyx_base._handle != NULL); + if (__pyx_t_1) { + (void)(TA_ZLEMA_Close(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + __pyx_v_self->__pyx_base._handle = NULL; + + } + + + /* function exit code */ - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER, "stream_CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER = {"stream_CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL +static int __pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_3__init__(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL_TPNEW PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; - #if !CYTHON_VECTORCALL + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL_TPNEW CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + int __pyx_r; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDARKCLOUDCOVER (wrapper)", 0); - #if !CYTHON_VECTORCALL + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + #if !CYTHON_VECTORCALL_TPNEW #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + __pyx_kwvalues = __Pyx_KwValues_FASTCALL_TPNEW(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1252, __pyx_L3_error) + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22474, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1252, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1252, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1252, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1252, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22474, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1252, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22474, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(5, 1252, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(5, 1252, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22474, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22474, __pyx_L3_error) } } } else { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1252, __pyx_L3_error) + case 2: + values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22474, __pyx_L3_error) CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1252, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1252, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1252, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1252, __pyx_L3_error) + case 1: + values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22474, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1254, __pyx_L3_error) + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22474, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)((double)0.5)); + __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1252, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22474, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return NULL; + return -1; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1254, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_v_self), __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static int __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_historylen; + TA_ZLEMA_Stream *__pyx_v_handle; + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; + int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLDARKCLOUDCOVER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1278, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22476, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22477, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1280, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22478, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22479, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_handle = NULL; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_retCode = TA_ZLEMA_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outreal)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1284, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_4 = (__pyx_v_retCode != 0); - __pyx_v_outinteger = 0; + if (__pyx_t_4) { - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ZLEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1288, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + + __pyx_t_4 = (__pyx_v_self->__pyx_base._handle != NULL); + + if (__pyx_t_4) { + + + (void)(TA_ZLEMA_Close(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle))); + + } + + __pyx_v_self->__pyx_base._handle = ((void *)__pyx_v_handle); + + __pyx_v_self->__pyx_base._begidx = __pyx_v_begidx; /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); @@ -70156,50 +288734,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CDLDARKCLOUDCOVER(CYTHON_UNU - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_520stream_CDLDOJI, "stream_CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_521stream_CDLDOJI = {"stream_CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_521stream_CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_520stream_CDLDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_CDLDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill, "ZLEMA_Stream.open_and_fill(real, int timeperiod=-0x80000000)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill = {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill}; +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill(CYTHON_UNUSED PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + PyObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[2] = {0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("open_and_fill (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70209,152 +288778,165 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1290, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22490, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1290, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1290, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDOJI", 0) < (0)) __PYX_ERR(5, 1290, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, i); __PYX_ERR(5, 1290, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22490, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22490, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1290, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1290, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1290, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1290, __pyx_L3_error) + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22490, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22490, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = values[0]; + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22491, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)-2147483648); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1290, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22490, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1292, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_520stream_CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(__pyx_v_real, __pyx_v_timeperiod); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject *__pyx_v_real, int __pyx_v_timeperiod) { + PyArrayObject *__pyx_v_a_real = 0; + PyObject *__pyx_v_arrays = 0; npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; + int __pyx_v_begidx; + int __pyx_v_historylen; + int __pyx_v_lookback; + PyArrayObject *__pyx_v_outreal = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - int __pyx_v_outinteger; + TA_ZLEMA_Stream *__pyx_v_handle; + TA_RetCode __pyx_v_retCode; + struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1312, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1314, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __Pyx_INCREF((PyObject *)__pyx_v_a_real); + __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22493, __pyx_L1_error); + __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22494, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22495, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22496, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1318, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_handle = NULL; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1320, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_v_retCode = TA_ZLEMA_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_real)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_4 = (__pyx_v_retCode != 0); + + if (__pyx_t_4) { + + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + } + + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_v_outinteger = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_v_retCode = TA_CDLDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1323, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_real); + __Pyx_GIVEREF(__pyx_v_real); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22508, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1324, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __Pyx_GIVEREF((PyObject *)__pyx_v_stream); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22508, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22508, __pyx_L1_error); + __pyx_t_5 = 0; { PyObject *__pyx_temp; { @@ -70370,22 +288952,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLDOJI(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_a_real); + __Pyx_XDECREF(__pyx_v_arrays); + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XDECREF((PyObject *)__pyx_v_stream); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -70393,37 +288975,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_CDLDOJI(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_522stream_CDLDOJISTAR, "stream_CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_523stream_CDLDOJISTAR = {"stream_CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_523stream_CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_522stream_CDLDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_CDLDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_6update, "ZLEMA_Stream.update(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_7update(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("update (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70433,183 +289011,102 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1326, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22510, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1326, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1326, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1326, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDOJISTAR", 0) < (0)) __PYX_ERR(5, 1326, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(5, 1326, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22510, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22510, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1326, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1326, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1326, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22510, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22511, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1326, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22510, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1328, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_522stream_CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLDOJISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("update", 0); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ZLEMA_Update(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1356, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + if (__pyx_t_1) { - __pyx_v_outinteger = 0; - __pyx_v_retCode = TA_CDLDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1360, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -70617,37 +289114,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_CDLDOJISTAR(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI, "stream_CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI = {"stream_CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_8peek, "ZLEMA_Stream.peek(self, double real)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_9peek(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; + double __pyx_v_real; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[1] = {0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLDRAGONFLYDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("peek (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70657,221 +289150,233 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1362, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22518, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1362, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1362, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1362, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1362, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22518, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(5, 1362, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(5, 1362, __pyx_L3_error) } + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22518, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22518, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { + } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1362, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1362, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1362, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1362, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22518, __pyx_L3_error) } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22519, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1362, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22518, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1364, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_8peek(((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_v_self), __pyx_v_real); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, double __pyx_v_real) { + double __pyx_v_outreal; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLDRAGONFLYDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); + __Pyx_RefNannySetupContext("peek", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ZLEMA_Peek(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_real, (&__pyx_v_outreal)); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_5value_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_5value_1__get__(PyObject *__pyx_v_self) { + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_5value___get__(((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_v_self)); - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + __pyx_v_retCode = TA_ZLEMA_Value(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal)); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1392, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_v_outinteger = 0; + if (__pyx_t_1) { - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1395, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_2; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__out_range(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self, int *__pyx_v_outbegidx, int *__pyx_v_outnbelement) { + TA_RetCode __pyx_r; + { + __pyx_r = TA_ZLEMA_OutRange(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_outbegidx, __pyx_v_outnbelement); + } + goto __pyx_L0; + /* function exit code */ + __pyx_L0:; + + return __pyx_r; +} + + +static TA_RetCode __pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__advance(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self) { + TA_RetCode __pyx_r; + + { + + __pyx_r = TA_ZLEMA_Advance(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle)); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CDLENGULFING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_526stream_CDLENGULFING, "stream_CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_527stream_CDLENGULFING = {"stream_CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_527stream_CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_526stream_CDLENGULFING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_CDLENGULFING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_10copy, "ZLEMA_Stream.copy(self)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_11copy(PyObject *__pyx_v_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLENGULFING (wrapper)", 0); + __Pyx_RefNannySetupContext("copy (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -70880,33184 +289385,51242 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1398, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1398, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1398, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1398, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1398, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLENGULFING", 0) < (0)) __PYX_ERR(5, 1398, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, i); __PYX_ERR(5, 1398, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1398, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1398, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1398, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1398, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1398, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1400, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_526stream_CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("copy", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_v_self)); /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; +static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_self) { + TA_ZLEMA_Stream *__pyx_v_clone; TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; + struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *__pyx_v_stream = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + size_t __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLENGULFING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __Pyx_RefNannySetupContext("copy", 0); - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); + __pyx_v_clone = NULL; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_v_retCode = TA_ZLEMA_Clone(((TA_ZLEMA_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_clone)); - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); + __pyx_t_1 = (__pyx_v_retCode != 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + if (__pyx_t_1) { - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1426, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); + } - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1428, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; + __pyx_t_3 = ((PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_4 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; + __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream))))) __PYX_ERR(3, 22546, __pyx_L1_error) + __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_t_2); + __pyx_t_2 = 0; - __pyx_v_outinteger = 0; + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_clone); - __pyx_v_retCode = TA_CDLENGULFING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + __pyx_t_5 = __pyx_v_self->__pyx_base._begidx; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_t_5; - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __Pyx_INCREF((PyObject *)__pyx_v_stream); + __pyx_r = ((PyObject *)__pyx_v_stream); } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA_Stream.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stream); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +/* #### Code section: module_exttypes ### */ +static struct __pyx_vtabstruct_5talib_7_ta_lib_Stream __pyx_vtable_5talib_7_ta_lib_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_Stream *)o); + p->__pyx_vtab = __pyx_vtabptr_5talib_7_ta_lib_Stream; + { + int cinit_result = __pyx_pw_5talib_7_ta_lib_6Stream_1__cinit__( + #if CYTHON_VECTORCALL_TPNEW + o, NULL, 0, NULL); + #else + o, __pyx_mstate_global->__pyx_empty_tuple, NULL); + #endif + if (unlikely(cinit_result)) goto bad; + } + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __Pyx_AllocateExtensionType(t, 0); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream((PyTypeObject*)t, args, nargs, kwnames); + return o; +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_Stream(PyObject *o) { + struct __pyx_obj_5talib_7_ta_lib_Stream *p = (struct __pyx_obj_5talib_7_ta_lib_Stream *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + if (p->__weakref__) PyObject_ClearWeakRefs(o); + PyTypeObject *tp = Py_TYPE(o); + #if CYTHON_USE_TYPE_SLOTS + (*tp->tp_free)(o); + #else + { + freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free); + if (tp_free) tp_free(o); + } + #endif + #if CYTHON_USE_TYPE_SPECS + Py_DECREF(tp); + #endif +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_6Stream_out_range(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_6Stream_9out_range_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_Stream[] = { + {"advance", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_3advance, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_2advance}, + {"__copy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_5__copy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_4__copy__}, + {"__deepcopy__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_7__deepcopy__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_6__deepcopy__}, + {"__reduce__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_6Stream_9__reduce__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_6Stream_8__reduce__}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_Stream[] = { + {"out_range", __pyx_getprop_5talib_7_ta_lib_6Stream_out_range, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyMemberDef __pyx_type_5talib_7_ta_lib_Stream_members[] = { + #if !CYTHON_USE_TYPE_SLOTS + {"__weaklistoffset__", T_PYSSIZET, offsetof(struct __pyx_obj_5talib_7_ta_lib_Stream, __weakref__), READONLY, 0}, + #endif + {0, 0, 0, 0, 0} +}; +static PyType_Slot __pyx_type_5talib_7_ta_lib_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("Base class of every talib.stream handle.\n\n Carries what does not depend on the function: the opaque C handle, and the\n offset of the first history bar the batch tier would have used.")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_Stream}, + #endif + #endif + {Py_tp_members, (void*)__pyx_type_5talib_7_ta_lib_Stream_members}, + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_Stream_spec = { + "talib._ta_lib.Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("Base class of every talib.stream handle.\n\n Carries what does not depend on the function: the opaque C handle, and the\n offset of the first history bar the batch tier would have used."), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_AC_Stream __pyx_vtable_5talib_7_ta_lib_AC_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_AC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_AC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_AC_Stream; + return o; } +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_AC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_AC_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_AC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9AC_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_AC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_AC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9AC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_9AC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9AC_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_AC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AC_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_AC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9AC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_AC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_AC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("AC_Stream(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_AC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_AC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_AC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_AC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_AC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_AC_Stream_spec = { + "talib._ta_lib.AC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_AC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_AC_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds + +static PyTypeObject __pyx_type_5talib_7_ta_lib_AC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""AC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_AC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_AC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("AC_Stream(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nAC(high, low[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nAccelerator/Decelerator Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\n signalperiod: 5\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_AC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_AC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_AC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_AC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_AC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR, "stream_CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR = {"stream_CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct __pyx_vtabstruct_5talib_7_ta_lib_ACCBANDS_Stream __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ACCBANDS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ACCBANDS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ACCBANDS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ACCBANDS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ACCBANDS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLEVENINGDOJISTAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_15ACCBANDS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ACCBANDS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15ACCBANDS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15ACCBANDS_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ACCBANDS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15ACCBANDS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ACCBANDS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ACCBANDS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ACCBANDS_Stream(high, low, close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ACCBANDS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ACCBANDS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ACCBANDS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ACCBANDS_Stream_spec = { + "talib._ta_lib.ACCBANDS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ACCBANDS_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ACCBANDS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ACCBANDS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ACCBANDS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ACCBANDS_Stream(high, low, close, int timeperiod=-0x80000000)\n\nACCBANDS(high, low, close[, timeperiod=?])\n\nAcceleration Bands (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ACCBANDS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ACCBANDS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ACCBANDS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ACCBANDS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ACOS_Stream __pyx_vtable_5talib_7_ta_lib_ACOS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ACOS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ACOS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ACOS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ACOS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ACOS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ACOS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ACOS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ACOS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ACOS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1434, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1434, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1434, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1434, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1434, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1434, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 1434, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 1434, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1434, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1434, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1434, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1434, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1434, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11ACOS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ACOS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ACOS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ACOS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ACOS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ACOS_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ACOS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11ACOS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ACOS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ACOS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ACOS_Stream(real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ACOS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ACOS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ACOS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ACOS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ACOS_Stream_spec = { + "talib._ta_lib.ACOS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ACOS_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ACOS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ACOS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ACOS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ACOS_Stream(real)\n\nACOS(real)\n\nVector Trigonometric ACos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ACOS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ACOS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ACOS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ACOS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ACOS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_AD_Stream __pyx_vtable_5talib_7_ta_lib_AD_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_AD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_AD_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_AD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_AD_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_AD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1436, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9AD_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_AD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_AD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1434, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9AD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1436, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +static PyObject *__pyx_getprop_5talib_7_ta_lib_9AD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9AD_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_AD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AD_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_AD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9AD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_AD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_AD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("AD_Stream(high, low, close, volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_AD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_AD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_AD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_AD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_AD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_AD_Stream_spec = { + "talib._ta_lib.AD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_AD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_AD_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_AD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""AD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_AD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_AD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("AD_Stream(high, low, close, volume)\n\nAD(high, low, close, volume)\n\nChaikin A/D Line (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_AD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_AD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_AD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_AD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_AD_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADD_Stream __pyx_vtable_5talib_7_ta_lib_ADD_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ADD_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ADD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADD_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; + return o; +} +#endif - __Pyx_RefNannyFinishContext(); - return __pyx_r; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10ADD_Stream_3__init__, o, args, kwds); } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLEVENINGDOJISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static void __pyx_tp_dealloc_5talib_7_ta_lib_ADD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ADD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10ADD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10ADD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10ADD_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ADD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADD_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ADD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10ADD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ADD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ADD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ADD_Stream(real0, real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ADD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ADD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ADD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ADD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ADD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ADD_Stream_spec = { + "talib._ta_lib.ADD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ADD_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ADD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ADD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ADD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ADD_Stream(real0, real1)\n\nADD(real0, real1)\n\nVector Arithmetic Add (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ADD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ADD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ADD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ADD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ADD_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADOSC_Stream __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ADOSC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADOSC_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADOSC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ADOSC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ADOSC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_12ADOSC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ADOSC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ADOSC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ADOSC_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ADOSC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12ADOSC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ADOSC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ADOSC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ADOSC_Stream(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ADOSC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ADOSC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ADOSC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ADOSC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ADOSC_Stream_spec = { + "talib._ta_lib.ADOSC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ADOSC_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ADOSC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ADOSC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ADOSC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ADOSC_Stream(high, low, close, volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\nChaikin A/D Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n fastperiod: 3\n slowperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ADOSC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ADOSC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ADOSC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ADOSC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADR_Stream __pyx_vtable_5talib_7_ta_lib_ADR_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ADR_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ADR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADR_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10ADR_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ADR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ADR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10ADR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10ADR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10ADR_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ADR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADR_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ADR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10ADR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ADR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ADR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ADR_Stream(high, low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ADR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ADR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ADR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ADR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ADR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ADR_Stream_spec = { + "talib._ta_lib.ADR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ADR_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ADR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ADR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ADR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ADR_Stream(high, low, int timeperiod=-0x80000000)\n\nADR(high, low[, timeperiod=?])\n\nAverage Day Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ADR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ADR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ADR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ADR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ADR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADX_Stream __pyx_vtable_5talib_7_ta_lib_ADX_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ADX_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ADX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADX_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10ADX_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ADX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ADX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10ADX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10ADX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10ADX_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ADX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ADX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ADX_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ADX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10ADX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ADX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ADX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ADX_Stream(high, low, close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ADX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ADX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ADX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ADX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ADX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ADX_Stream_spec = { + "talib._ta_lib.ADX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ADX_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ADX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ADX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ADX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ADX_Stream(high, low, close, int timeperiod=-0x80000000)\n\nADX(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ADX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ADX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ADX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ADX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ADX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ADXR_Stream __pyx_vtable_5talib_7_ta_lib_ADXR_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ADXR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADXR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ADXR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ADXR_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ADXR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ADXR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ADXR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ADXR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ADXR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_11ADXR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ADXR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ADXR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ADXR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ADXR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ADXR_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ADXR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11ADXR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ADXR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ADXR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ADXR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ADXR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ADXR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ADXR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ADXR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ADXR_Stream_spec = { + "talib._ta_lib.ADXR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ADXR_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ADXR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ADXR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ADXR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ADXR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nADXR(high, low, close[, timeperiod=?])\n\nAverage Directional Movement Index Rating (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ADXR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ADXR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ADXR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ADXR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ADXR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_AO_Stream __pyx_vtable_5talib_7_ta_lib_AO_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_AO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_AO_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_AO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_AO_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_AO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9AO_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_AO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_AO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9AO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_9AO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9AO_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_AO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9AO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9AO_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_AO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9AO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_AO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_AO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("AO_Stream(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_AO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_AO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_AO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_AO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_AO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_AO_Stream_spec = { + "talib._ta_lib.AO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_AO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_AO_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_AO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""AO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_AO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_AO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("AO_Stream(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nAO(high, low[, fastperiod=?, slowperiod=?])\n\nAwesome Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 5\n slowperiod: 34\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_AO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_AO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_AO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_AO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_AO_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_APO_Stream __pyx_vtable_5talib_7_ta_lib_APO_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_APO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_APO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_APO_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_APO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_APO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_APO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_APO_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_APO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_APO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_APO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10APO_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_APO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_APO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10APO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10APO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10APO_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_APO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10APO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10APO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10APO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10APO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10APO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10APO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10APO_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_APO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10APO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_APO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_APO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("APO_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_APO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_APO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_APO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_APO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_APO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_APO_Stream_spec = { + "talib._ta_lib.APO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_APO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_APO_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_APO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""APO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_APO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_APO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("APO_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nAPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nAbsolute Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_APO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_APO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_APO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_APO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_APO_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_AROON_Stream __pyx_vtable_5talib_7_ta_lib_AROON_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AROON_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_AROON_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1466, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AROON_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_AROON_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AROON_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_AROON_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AROON_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_AROON_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AROON_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12AROON_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_AROON_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_AROON_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12AROON_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_12AROON_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12AROON_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_AROON_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12AROON_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12AROON_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12AROON_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12AROON_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12AROON_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12AROON_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12AROON_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_AROON_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12AROON_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_AROON_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_AROON_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("AROON_Stream(high, low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_AROON_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_AROON_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_AROON_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_AROON_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_AROON_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_AROON_Stream_spec = { + "talib._ta_lib.AROON_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_AROON_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_AROON_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""AROON_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_AROON_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("AROON_Stream(high, low, int timeperiod=-0x80000000)\n\nAROON(high, low[, timeperiod=?])\n\nAroon (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n aroondown\n aroonup"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_AROON_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_AROON_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_AROON_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_AROON_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_AROON_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_AROONOSC_Stream __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AROONOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AROONOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_AROONOSC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_AROONOSC_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AROONOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_AROONOSC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AROONOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_AROONOSC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_AROONOSC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_15AROONOSC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_AROONOSC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AROONOSC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AROONOSC_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_CDLEVENINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_530stream_CDLEVENINGSTAR, "stream_CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_531stream_CDLEVENINGSTAR = {"stream_CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_531stream_CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_530stream_CDLEVENINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_CDLEVENINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_AROONOSC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15AROONOSC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_AROONOSC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_AROONOSC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("AROONOSC_Stream(high, low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_AROONOSC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_AROONOSC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_AROONOSC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_AROONOSC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_AROONOSC_Stream_spec = { + "talib._ta_lib.AROONOSC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_AROONOSC_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_AROONOSC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""AROONOSC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_AROONOSC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("AROONOSC_Stream(high, low, int timeperiod=-0x80000000)\n\nAROONOSC(high, low[, timeperiod=?])\n\nAroon Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_AROONOSC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_AROONOSC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_AROONOSC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLEVENINGSTAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_AROONOSC_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1472, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1472, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1472, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1472, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1472, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1472, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(5, 1472, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 1472, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1472, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1472, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1472, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1472, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1472, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1474, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1472, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1474, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_530stream_CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ASIN_Stream __pyx_vtable_5talib_7_ta_lib_ASIN_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ASIN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream; + return o; +} - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ASIN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ASIN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); } -static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLEVENINGSTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ASIN_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ASIN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ASIN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ASIN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1498, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_ASIN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ASIN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11ASIN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1500, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ASIN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ASIN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ASIN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ASIN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ASIN_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ASIN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11ASIN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ASIN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ASIN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ASIN_Stream(real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ASIN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ASIN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ASIN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ASIN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ASIN_Stream_spec = { + "talib._ta_lib.ASIN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ASIN_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_ASIN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ASIN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ASIN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ASIN_Stream(real)\n\nASIN(real)\n\nVector Trigonometric ASin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ASIN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ASIN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ASIN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ASIN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ASIN_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ATAN_Stream __pyx_vtable_5talib_7_ta_lib_ATAN_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ATAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1504, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ATAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ATAN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ATAN_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLEVENINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ATAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ATAN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ATAN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_ATAN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ATAN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11ATAN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ATAN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ATAN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ATAN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ATAN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ATAN_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ATAN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11ATAN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ATAN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ATAN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ATAN_Stream(real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ATAN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ATAN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ATAN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ATAN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ATAN_Stream_spec = { + "talib._ta_lib.ATAN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ATAN_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_ATAN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ATAN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ATAN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ATAN_Stream(real)\n\nATAN(real)\n\nVector Trigonometric ATan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ATAN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ATAN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ATAN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ATAN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ATAN_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ATR_Stream __pyx_vtable_5talib_7_ta_lib_ATR_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ATR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ATR_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ATR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ATR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ATR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ATR_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ATR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ATR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ATR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10ATR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_ATR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ATR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10ATR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10ATR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10ATR_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ATR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ATR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ATR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ATR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ATR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ATR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ATR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ATR_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE, "stream_CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE = {"stream_CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ATR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10ATR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ATR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ATR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ATR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ATR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ATR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ATR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ATR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ATR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ATR_Stream_spec = { + "talib._ta_lib.ATR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ATR_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_ATR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ATR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ATR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ATR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nATR(high, low, close[, timeperiod=?])\n\nAverage True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ATR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ATR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ATR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ATR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLGAPSIDESIDEWHITE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ATR_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1510, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1510, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1510, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1510, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1510, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(5, 1510, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(5, 1510, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1510, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1510, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1510, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1510, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_AVGDEV_Stream __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AVGDEV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGDEV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_AVGDEV_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGDEV_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AVGDEV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1510, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGDEV_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1512, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AVGDEV_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_AVGDEV_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_AVGDEV_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLGAPSIDESIDEWHITE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_13AVGDEV_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_AVGDEV_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13AVGDEV_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13AVGDEV_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_AVGDEV_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13AVGDEV_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_AVGDEV_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_AVGDEV_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("AVGDEV_Stream(real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_AVGDEV_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_AVGDEV_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_AVGDEV_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_AVGDEV_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_AVGDEV_Stream_spec = { + "talib._ta_lib.AVGDEV_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_AVGDEV_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_AVGDEV_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""AVGDEV_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_AVGDEV_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("AVGDEV_Stream(real, int timeperiod=-0x80000000)\n\nAVGDEV(real[, timeperiod=?])\n\nAverage Deviation (Price Transform)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_AVGDEV_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_AVGDEV_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_AVGDEV_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_AVGDEV_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_AVGPRICE_Stream __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_AVGPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream; + return o; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_AVGPRICE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1538, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_AVGPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1540, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static void __pyx_tp_dealloc_5talib_7_ta_lib_AVGPRICE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_AVGPRICE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_15AVGPRICE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5value_1__get__(o); +} - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_AVGPRICE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15AVGPRICE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15AVGPRICE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_AVGPRICE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15AVGPRICE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_AVGPRICE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_AVGPRICE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("AVGPRICE_Stream(open, high, low, close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_AVGPRICE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_AVGPRICE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_AVGPRICE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_AVGPRICE_Stream_spec = { + "talib._ta_lib.AVGPRICE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_AVGPRICE_Stream_slots, +}; +#else - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static PyTypeObject __pyx_type_5talib_7_ta_lib_AVGPRICE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""AVGPRICE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_AVGPRICE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("AVGPRICE_Stream(open, high, low, close)\n\nAVGPRICE(open, high, low, close)\n\nAverage Price (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_AVGPRICE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_AVGPRICE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_AVGPRICE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_AVGPRICE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_BBANDS_Stream __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BBANDS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BBANDS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_BBANDS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_BBANDS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BBANDS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_BBANDS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BBANDS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_BBANDS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_BBANDS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_13BBANDS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_BBANDS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13BBANDS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13BBANDS_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_BBANDS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13BBANDS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_BBANDS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_BBANDS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("BBANDS_Stream(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_BBANDS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_BBANDS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_BBANDS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_BBANDS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_BBANDS_Stream_spec = { + "talib._ta_lib.BBANDS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_BBANDS_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_BBANDS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""BBANDS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_BBANDS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("BBANDS_Stream(real, int timeperiod=-0x80000000, double nbdevup=-4e37, double nbdevdn=-4e37, int matype=0)\n\nBBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\nBollinger Bands (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\nOutputs:\n upperband\n middleband\n lowerband"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_BBANDS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_BBANDS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_BBANDS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_BBANDS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_BETA_Stream __pyx_vtable_5talib_7_ta_lib_BETA_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BETA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_BETA_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BETA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_BETA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BETA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_BETA_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BETA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_BETA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BETA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11BETA_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_BETA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_BETA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11BETA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_11BETA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11BETA_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_BETA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11BETA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11BETA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11BETA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11BETA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11BETA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11BETA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11BETA_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_BETA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11BETA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_BETA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_BETA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("BETA_Stream(real0, real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_BETA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_BETA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_BETA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_BETA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_BETA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_BETA_Stream_spec = { + "talib._ta_lib.BETA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_BETA_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds + +static PyTypeObject __pyx_type_5talib_7_ta_lib_BETA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""BETA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_BETA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("BETA_Stream(real0, real1, int timeperiod=-0x80000000)\n\nBETA(real0, real1[, timeperiod=?])\n\nBeta (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_BETA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_BETA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_BETA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_BETA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_BETA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI, "stream_CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI = {"stream_CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct __pyx_vtabstruct_5talib_7_ta_lib_BOP_Stream __pyx_vtable_5talib_7_ta_lib_BOP_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_BOP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_BOP_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_BOP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_BOP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_BOP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_BOP_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_BOP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_BOP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_BOP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10BOP_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_BOP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_BOP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLGRAVESTONEDOJI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10BOP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10BOP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10BOP_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_BOP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BOP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BOP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BOP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BOP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BOP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10BOP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10BOP_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_BOP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10BOP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_BOP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_BOP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("BOP_Stream(open, high, low, close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_BOP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_BOP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_BOP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_BOP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_BOP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_BOP_Stream_spec = { + "talib._ta_lib.BOP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_BOP_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_BOP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""BOP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_BOP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("BOP_Stream(open, high, low, close)\n\nBOP(open, high, low, close)\n\nBalance Of Power (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_BOP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_BOP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_BOP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_BOP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_finalize*/ #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_BOP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1546, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1546, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(5, 1546, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(5, 1546, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1546, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1546, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1546, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1546, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1546, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1548, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CCI_Stream __pyx_vtable_5talib_7_ta_lib_CCI_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CCI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CCI_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CCI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CCI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CCI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CCI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CCI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CCI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLGRAVESTONEDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CCI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10CCI_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1570, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CCI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CCI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10CCI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10CCI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10CCI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CCI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CCI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CCI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CCI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CCI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CCI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CCI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CCI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CCI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10CCI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CCI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CCI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CCI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CCI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CCI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CCI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CCI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CCI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CCI_Stream_spec = { + "talib._ta_lib.CCI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CCI_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CCI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CCI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CCI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CCI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nCCI(high, low, close[, timeperiod=?])\n\nCommodity Channel Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CCI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CCI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CCI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CCI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CCI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL2CROWS_Stream __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL2CROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1576, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDL2CROWS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL2CROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDL2CROWS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDL2CROWS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_16CDL2CROWS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDL2CROWS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDL2CROWS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDL2CROWS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16CDL2CROWS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDL2CROWS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDL2CROWS_Stream(open, high, low, close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDL2CROWS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDL2CROWS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDL2CROWS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream_spec = { + "talib._ta_lib.CDL2CROWS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDL2CROWS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDL2CROWS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDL2CROWS_Stream(open, high, low, close)\n\nCDL2CROWS(open, high, low, close)\n\nTwo Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDL2CROWS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDL2CROWS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDL2CROWS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDL2CROWS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDL3BLACKCROWS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_CDLHAMMER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_536stream_CDLHAMMER, "stream_CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_537stream_CDLHAMMER = {"stream_CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_537stream_CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_536stream_CDLHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_CDLHAMMER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDL3BLACKCROWS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDL3BLACKCROWS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDL3BLACKCROWS_Stream(open, high, low, close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDL3BLACKCROWS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDL3BLACKCROWS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDL3BLACKCROWS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream_spec = { + "talib._ta_lib.CDL3BLACKCROWS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDL3BLACKCROWS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDL3BLACKCROWS_Stream(open, high, low, close)\n\nCDL3BLACKCROWS(open, high, low, close)\n\nThree Black Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHAMMER (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1582, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHAMMER", 0) < (0)) __PYX_ERR(5, 1582, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1582, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1582, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1582, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1582, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1582, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1582, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1584, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_536stream_CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3INSIDE_Stream __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3INSIDE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHAMMER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3INSIDE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3INSIDE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDL3INSIDE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDL3INSIDE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1608, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_17CDL3INSIDE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDL3INSIDE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDL3INSIDE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDL3INSIDE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17CDL3INSIDE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDL3INSIDE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDL3INSIDE_Stream(open, high, low, close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDL3INSIDE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDL3INSIDE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDL3INSIDE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream_spec = { + "talib._ta_lib.CDL3INSIDE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream_slots, +}; +#else - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDL3INSIDE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDL3INSIDE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDL3INSIDE_Stream(open, high, low, close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDL3INSIDE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDL3INSIDE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDL3INSIDE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDL3INSIDE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1612, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1616, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDL3LINESTRIKE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDL3LINESTRIKE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDL3LINESTRIKE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDL3LINESTRIKE_Stream(open, high, low, close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDL3LINESTRIKE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDL3LINESTRIKE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDL3LINESTRIKE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream_spec = { + "talib._ta_lib.CDL3LINESTRIKE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDL3LINESTRIKE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDL3LINESTRIKE_Stream(open, high, low, close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3OUTSIDE_Stream __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3OUTSIDE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDL3OUTSIDE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDL3OUTSIDE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDL3OUTSIDE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_CDLHANGINGMAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_538stream_CDLHANGINGMAN, "stream_CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_539stream_CDLHANGINGMAN = {"stream_CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_539stream_CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_538stream_CDLHANGINGMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_CDLHANGINGMAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDL3OUTSIDE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDL3OUTSIDE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDL3OUTSIDE_Stream(open, high, low, close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDL3OUTSIDE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDL3OUTSIDE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDL3OUTSIDE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream_spec = { + "talib._ta_lib.CDL3OUTSIDE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDL3OUTSIDE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDL3OUTSIDE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDL3OUTSIDE_Stream(open, high, low, close)\n\nCDL3OUTSIDE(open, high, low, close)\n\nThree Outside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDL3OUTSIDE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDL3OUTSIDE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDL3OUTSIDE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHANGINGMAN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDL3OUTSIDE_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1618, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1618, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1618, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1618, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1618, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHANGINGMAN", 0) < (0)) __PYX_ERR(5, 1618, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(5, 1618, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1618, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1618, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1618, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1618, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1618, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1620, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_538stream_CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHANGINGMAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDL3STARSINSOUTH_Stream(open, high, low, close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream_spec = { + "talib._ta_lib.CDL3STARSINSOUTH_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDL3STARSINSOUTH_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDL3STARSINSOUTH_Stream(open, high, low, close)\n\nCDL3STARSINSOUTH(open, high, low, close)\n\nThree Stars In The South (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1648, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLHANGINGMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDL3WHITESOLDIERS_Stream(open, high, low, close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream_spec = { + "talib._ta_lib.CDL3WHITESOLDIERS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDL3WHITESOLDIERS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDL3WHITESOLDIERS_Stream(open, high, low, close)\n\nCDL3WHITESOLDIERS(open, high, low, close)\n\nThree Advancing White Soldiers (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLABANDONEDBABY_Stream __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLABANDONEDBABY_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_CDLHARAMI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_540stream_CDLHARAMI, "stream_CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_541stream_CDLHARAMI = {"stream_CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_541stream_CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_540stream_CDLHARAMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_CDLHARAMI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLABANDONEDBABY_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLABANDONEDBABY_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLABANDONEDBABY_Stream(open, high, low, close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLABANDONEDBABY_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLABANDONEDBABY_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLABANDONEDBABY_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream_spec = { + "talib._ta_lib.CDLABANDONEDBABY_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLABANDONEDBABY_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLABANDONEDBABY_Stream(open, high, low, close, double penetration=0.3)\n\nCDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\nAbandoned Baby (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHARAMI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1654, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1654, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1654, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1654, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1654, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHARAMI", 0) < (0)) __PYX_ERR(5, 1654, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, i); __PYX_ERR(5, 1654, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1654, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1654, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1654, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1654, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1654, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1656, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_540stream_CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHARAMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLADVANCEBLOCK_Stream(open, high, low, close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream_spec = { + "talib._ta_lib.CDLADVANCEBLOCK_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLADVANCEBLOCK_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLADVANCEBLOCK_Stream(open, high, low, close)\n\nCDLADVANCEBLOCK(open, high, low, close)\n\nAdvance Block (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLBELTHOLD_Stream __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLBELTHOLD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLBELTHOLD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLBELTHOLD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_18CDLBELTHOLD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLBELTHOLD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLBELTHOLD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLBELTHOLD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18CDLBELTHOLD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLBELTHOLD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLBELTHOLD_Stream(open, high, low, close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLBELTHOLD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLBELTHOLD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLBELTHOLD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream_spec = { + "talib._ta_lib.CDLBELTHOLD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLBELTHOLD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLBELTHOLD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLBELTHOLD_Stream(open, high, low, close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLBELTHOLD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLBELTHOLD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLBELTHOLD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLBELTHOLD_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLBREAKAWAY_Stream __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1684, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLBREAKAWAY_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLHARAMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLBREAKAWAY_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLBREAKAWAY_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLBREAKAWAY_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLBREAKAWAY_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLBREAKAWAY_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLBREAKAWAY_Stream(open, high, low, close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLBREAKAWAY_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLBREAKAWAY_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLBREAKAWAY_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream_spec = { + "talib._ta_lib.CDLBREAKAWAY_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLBREAKAWAY_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLBREAKAWAY_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLBREAKAWAY_Stream(open, high, low, close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLBREAKAWAY_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLBREAKAWAY_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLBREAKAWAY_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLBREAKAWAY_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_CDLHARAMICROSS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_542stream_CDLHARAMICROSS, "stream_CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_543stream_CDLHARAMICROSS = {"stream_CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_543stream_CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_542stream_CDLHARAMICROSS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_CDLHARAMICROSS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLCLOSINGMARUBOZU_Stream(open, high, low, close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream_spec = { + "talib._ta_lib.CDLCLOSINGMARUBOZU_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLCLOSINGMARUBOZU_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLCLOSINGMARUBOZU_Stream(open, high, low, close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHARAMICROSS (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1690, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1690, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1690, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1690, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1690, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHARAMICROSS", 0) < (0)) __PYX_ERR(5, 1690, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(5, 1690, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1690, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1690, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1690, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1690, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1690, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1692, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_542stream_CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHARAMICROSS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1716, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLCONCEALBABYSWALL_Stream(open, high, low, close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream_spec = { + "talib._ta_lib.CDLCONCEALBABYSWALL_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream_slots, +}; +#else - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLCONCEALBABYSWALL_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLCONCEALBABYSWALL_Stream(open, high, low, close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1720, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; + return o; +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_retCode = TA_CDLHARAMICROSS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, t, a, k); +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1723, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLCOUNTERATTACK_Stream(open, high, low, close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream_spec = { + "talib._ta_lib.CDLCOUNTERATTACK_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLCOUNTERATTACK_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLCOUNTERATTACK_Stream(open, high, low, close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_CDLHIGHWAVE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_544stream_CDLHIGHWAVE, "stream_CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_545stream_CDLHIGHWAVE = {"stream_CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_545stream_CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_544stream_CDLHIGHWAVE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_CDLHIGHWAVE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLDARKCLOUDCOVER_Stream(open, high, low, close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream_spec = { + "talib._ta_lib.CDLDARKCLOUDCOVER_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLDARKCLOUDCOVER_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLDARKCLOUDCOVER_Stream(open, high, low, close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHIGHWAVE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1726, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1726, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1726, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1726, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1726, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIGHWAVE", 0) < (0)) __PYX_ERR(5, 1726, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(5, 1726, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1726, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1726, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1726, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1726, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1726, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1728, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_544stream_CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDOJI_Stream __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHIGHWAVE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDOJI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1752, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_14CDLDOJI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLDOJI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14CDLDOJI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14CDLDOJI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLDOJI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14CDLDOJI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLDOJI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLDOJI_Stream(open, high, low, close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLDOJI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLDOJI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLDOJI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLDOJI_Stream_spec = { + "talib._ta_lib.CDLDOJI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLDOJI_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLDOJI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLDOJI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLDOJI_Stream(open, high, low, close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLDOJI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLDOJI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLDOJI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDOJISTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1756, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDOJISTAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLHIGHWAVE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJISTAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJISTAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_18CDLDOJISTAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLDOJISTAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLDOJISTAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLDOJISTAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18CDLDOJISTAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJISTAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLDOJISTAR_Stream(open, high, low, close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLDOJISTAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLDOJISTAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLDOJISTAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream_spec = { + "talib._ta_lib.CDLDOJISTAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLDOJISTAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLDOJISTAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLDOJISTAR_Stream(open, high, low, close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLDOJISTAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLDOJISTAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLDOJISTAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLDOJISTAR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_CDLHIKKAKE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLDRAGONFLYDOJI_Stream(open, high, low, close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream_spec = { + "talib._ta_lib.CDLDRAGONFLYDOJI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLDRAGONFLYDOJI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLDRAGONFLYDOJI_Stream(open, high, low, close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_546stream_CDLHIKKAKE, "stream_CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_547stream_CDLHIKKAKE = {"stream_CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_547stream_CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_546stream_CDLHIKKAKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_CDLHIKKAKE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLENGULFING_Stream __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLENGULFING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k #endif ) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLENGULFING_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLENGULFING_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLENGULFING_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLENGULFING_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHIKKAKE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_19CDLENGULFING_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLENGULFING_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLENGULFING_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLENGULFING_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_19CDLENGULFING_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLENGULFING_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLENGULFING_Stream(open, high, low, close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLENGULFING_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLENGULFING_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLENGULFING_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream_spec = { + "talib._ta_lib.CDLENGULFING_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLENGULFING_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLENGULFING_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLENGULFING_Stream(open, high, low, close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLENGULFING_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLENGULFING_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLENGULFING_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_finalize*/ #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLENGULFING_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1762, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1762, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1762, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1762, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1762, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIKKAKE", 0) < (0)) __PYX_ERR(5, 1762, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(5, 1762, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1762, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1762, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1762, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1762, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1762, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1764, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_546stream_CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHIKKAKE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLEVENINGDOJISTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream_spec = { + "talib._ta_lib.CDLEVENINGDOJISTAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLEVENINGDOJISTAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLEVENINGDOJISTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; + return o; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLEVENINGSTAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLEVENINGSTAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGSTAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLEVENINGSTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLEVENINGSTAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLEVENINGSTAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLEVENINGSTAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream_spec = { + "talib._ta_lib.CDLEVENINGSTAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1792, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLEVENINGSTAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLEVENINGSTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; + return o; +} - __pyx_v_retCode = TA_CDLHIKKAKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, t, a, k); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLGAPSIDESIDEWHITE_Stream(open, high, low, close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream_spec = { + "talib._ta_lib.CDLGAPSIDESIDEWHITE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLGAPSIDESIDEWHITE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLGAPSIDESIDEWHITE_Stream(open, high, low, close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD, "stream_CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD = {"stream_CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHIKKAKEMOD (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1798, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1798, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1798, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1798, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1798, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(5, 1798, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(5, 1798, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1798, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1798, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1798, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1798, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1798, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1800, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHIKKAKEMOD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1820, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1822, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLGRAVESTONEDOJI_Stream(open, high, low, close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream_spec = { + "talib._ta_lib.CDLGRAVESTONEDOJI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1826, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLGRAVESTONEDOJI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLGRAVESTONEDOJI_Stream(open, high, low, close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHAMMER_Stream __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHAMMER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1828, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHAMMER_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLHIKKAKEMOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1831, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHAMMER_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHAMMER_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHAMMER_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_16CDLHAMMER_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHAMMER_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHAMMER_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHAMMER_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16CDLHAMMER_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHAMMER_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHAMMER_Stream(open, high, low, close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHAMMER_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHAMMER_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHAMMER_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream_spec = { + "talib._ta_lib.CDLHAMMER_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHAMMER_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHAMMER_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHAMMER_Stream(open, high, low, close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHAMMER_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHAMMER_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHAMMER_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHAMMER_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHANGINGMAN_Stream __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHANGINGMAN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHANGINGMAN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHANGINGMAN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHANGINGMAN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON, "stream_CDLHOMINGPIGEON(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON = {"stream_CDLHOMINGPIGEON", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHANGINGMAN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHANGINGMAN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHANGINGMAN_Stream(open, high, low, close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHANGINGMAN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHANGINGMAN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHANGINGMAN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream_spec = { + "talib._ta_lib.CDLHANGINGMAN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHANGINGMAN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHANGINGMAN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHANGINGMAN_Stream(open, high, low, close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHANGINGMAN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHANGINGMAN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHANGINGMAN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLHOMINGPIGEON (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHANGINGMAN_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1834, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1834, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1834, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1834, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1834, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(5, 1834, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(5, 1834, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1834, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1834, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1834, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1834, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1834, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1836, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHARAMI_Stream __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHARAMI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLHOMINGPIGEON", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHARAMI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1856, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1858, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHARAMI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_16CDLHARAMI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHARAMI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLHARAMI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHARAMI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16CDLHARAMI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHARAMI_Stream(open, high, low, close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHARAMI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHARAMI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHARAMI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream_spec = { + "talib._ta_lib.CDLHARAMI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1862, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHARAMI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHARAMI_Stream(open, high, low, close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHARAMI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHARAMI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHARAMI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1864, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHARAMICROSS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLHOMINGPIGEON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1868, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMICROSS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMICROSS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHARAMICROSS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHARAMICROSS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMICROSS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHARAMICROSS_Stream(open, high, low, close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHARAMICROSS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHARAMICROSS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHARAMICROSS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream_spec = { + "talib._ta_lib.CDLHARAMICROSS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHARAMICROSS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHARAMICROSS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHARAMICROSS_Stream(open, high, low, close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHARAMICROSS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHARAMICROSS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHARAMICROSS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHARAMICROSS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIGHWAVE_Stream __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIGHWAVE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIGHWAVE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIGHWAVE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHIGHWAVE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS, "stream_CDLIDENTICAL3CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS = {"stream_CDLIDENTICAL3CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHIGHWAVE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHIGHWAVE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHIGHWAVE_Stream(open, high, low, close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHIGHWAVE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHIGHWAVE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHIGHWAVE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream_spec = { + "talib._ta_lib.CDLHIGHWAVE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHIGHWAVE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIGHWAVE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHIGHWAVE_Stream(open, high, low, close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHIGHWAVE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHIGHWAVE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHIGHWAVE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLIDENTICAL3CROWS (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIGHWAVE_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1870, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1870, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1870, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1870, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1870, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(5, 1870, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(5, 1870, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1870, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1870, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1870, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1870, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIKKAKE_Stream __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIKKAKE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1870, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1872, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLIDENTICAL3CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_17CDLHIKKAKE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHIKKAKE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLHIKKAKE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHIKKAKE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17CDLHIKKAKE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHIKKAKE_Stream(open, high, low, close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHIKKAKE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHIKKAKE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream_spec = { + "talib._ta_lib.CDLHIKKAKE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHIKKAKE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHIKKAKE_Stream(open, high, low, close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHIKKAKE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHIKKAKE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; + return o; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1898, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1900, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value_1__get__(o); +} - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHIKKAKEMOD_Stream(open, high, low, close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream_spec = { + "talib._ta_lib.CDLHIKKAKEMOD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream_slots, +}; +#else - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1904, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHIKKAKEMOD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHIKKAKEMOD_Stream(open, high, low, close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; + return o; +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLHOMINGPIGEON_Stream(open, high, low, close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream_spec = { + "talib._ta_lib.CDLHOMINGPIGEON_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLHOMINGPIGEON_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLHOMINGPIGEON_Stream(open, high, low, close)\n\nCDLHOMINGPIGEON(open, high, low, close)\n\nHoming Pigeon (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_CDLINNECK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_554stream_CDLINNECK, "stream_CDLINNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_555stream_CDLINNECK = {"stream_CDLINNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_555stream_CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_554stream_CDLINNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_CDLINNECK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLINNECK (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1906, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1906, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1906, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1906, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1906, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLINNECK", 0) < (0)) __PYX_ERR(5, 1906, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, i); __PYX_ERR(5, 1906, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1906, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1906, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1906, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1906, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1906, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1908, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_554stream_CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLINNECK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1928, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1932, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLIDENTICAL3CROWS_Stream(open, high, low, close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream_spec = { + "talib._ta_lib.CDLIDENTICAL3CROWS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLIDENTICAL3CROWS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLIDENTICAL3CROWS_Stream(open, high, low, close)\n\nCDLIDENTICAL3CROWS(open, high, low, close)\n\nIdentical Three Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLINNECK_Stream __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLINNECK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1936, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLINNECK_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLINNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLINNECK_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1940, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLINNECK_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLINNECK_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_16CDLINNECK_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLINNECK_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLINNECK_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLINNECK_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLINNECK_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16CDLINNECK_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLINNECK_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLINNECK_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLINNECK_Stream(open, high, low, close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLINNECK_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLINNECK_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLINNECK_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLINNECK_Stream_spec = { + "talib._ta_lib.CDLINNECK_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLINNECK_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLINNECK_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLINNECK_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLINNECK_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLINNECK_Stream(open, high, low, close)\n\nCDLINNECK(open, high, low, close)\n\nIn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLINNECK_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLINNECK_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLINNECK_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLINNECK_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER, "stream_CDLINVERTEDHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER = {"stream_CDLINVERTEDHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLINVERTEDHAMMER_Stream(open, high, low, close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream_spec = { + "talib._ta_lib.CDLINVERTEDHAMMER_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLINVERTEDHAMMER_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLINVERTEDHAMMER_Stream(open, high, low, close)\n\nCDLINVERTEDHAMMER(open, high, low, close)\n\nInverted Hammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLINVERTEDHAMMER (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1942, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1942, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1942, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1942, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1942, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(5, 1942, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1942, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1942, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1942, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1942, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1942, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1942, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1944, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLKICKING_Stream __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLKICKING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLINVERTEDHAMMER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLKICKING_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1966, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLKICKING_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKING_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKING_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_17CDLKICKING_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLKICKING_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLKICKING_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLKICKING_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLKICKING_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17CDLKICKING_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLKICKING_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKING_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLKICKING_Stream(open, high, low, close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLKICKING_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLKICKING_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLKICKING_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLKICKING_Stream_spec = { + "talib._ta_lib.CDLKICKING_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLKICKING_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1972, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLKICKING_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLKICKING_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKING_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLKICKING_Stream(open, high, low, close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLKICKING_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLKICKING_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLKICKING_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKING_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; + return o; +} - __pyx_v_retCode = TA_CDLINVERTEDHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, t, a, k); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLKICKINGBYLENGTH_Stream(open, high, low, close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream_spec = { + "talib._ta_lib.CDLKICKINGBYLENGTH_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLKICKINGBYLENGTH_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLKICKINGBYLENGTH_Stream(open, high, low, close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_CDLKICKING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_558stream_CDLKICKING, "stream_CDLKICKING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKING(open, high, low, close)\n\nKicking (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_559stream_CDLKICKING = {"stream_CDLKICKING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_559stream_CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_558stream_CDLKICKING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_CDLKICKING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLKICKING (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1978, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLKICKING", 0) < (0)) __PYX_ERR(5, 1978, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, i); __PYX_ERR(5, 1978, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1978, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1978, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1978, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1978, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1978, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1980, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_558stream_CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLKICKING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2002, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2004, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLLADDERBOTTOM_Stream(open, high, low, close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream_spec = { + "talib._ta_lib.CDLLADDERBOTTOM_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLLADDERBOTTOM_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLLADDERBOTTOM_Stream(open, high, low, close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2008, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLKICKING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2011, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLLONGLEGGEDDOJI_Stream(open, high, low, close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream_spec = { + "talib._ta_lib.CDLLONGLEGGEDDOJI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLLONGLEGGEDDOJI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLLONGLEGGEDDOJI_Stream(open, high, low, close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLLONGLINE_Stream __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLONGLINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLLONGLINE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLLONGLINE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLINE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLINE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_18CDLLONGLINE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLLONGLINE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLLONGLINE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH, "stream_CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH = {"stream_CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLLONGLINE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18CDLLONGLINE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLINE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLLONGLINE_Stream(open, high, low, close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLLONGLINE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLLONGLINE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLLONGLINE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream_spec = { + "talib._ta_lib.CDLLONGLINE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLLONGLINE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLLONGLINE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLLONGLINE_Stream(open, high, low, close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLLONGLINE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLLONGLINE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLLONGLINE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLKICKINGBYLENGTH (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLLONGLINE_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2014, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2014, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2014, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2014, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2014, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(5, 2014, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(5, 2014, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2014, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2014, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2014, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2014, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2014, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2016, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMARUBOZU_Stream __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMARUBOZU_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); } -static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLKICKINGBYLENGTH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2036, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLMARUBOZU_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLMARUBOZU_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_18CDLMARUBOZU_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2040, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLMARUBOZU_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLMARUBOZU_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLMARUBOZU_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18CDLMARUBOZU_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLMARUBOZU_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLMARUBOZU_Stream(open, high, low, close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLMARUBOZU_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLMARUBOZU_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLMARUBOZU_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream_spec = { + "talib._ta_lib.CDLMARUBOZU_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLMARUBOZU_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLMARUBOZU_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLMARUBOZU_Stream(open, high, low, close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLMARUBOZU_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLMARUBOZU_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLMARUBOZU_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLMARUBOZU_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2044, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2048, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLMATCHINGLOW_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLMATCHINGLOW_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLMATCHINGLOW_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLMATCHINGLOW_Stream(open, high, low, close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLMATCHINGLOW_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLMATCHINGLOW_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLMATCHINGLOW_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream_spec = { + "talib._ta_lib.CDLMATCHINGLOW_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLMATCHINGLOW_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLMATCHINGLOW_Stream(open, high, low, close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMATHOLD_Stream __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMATHOLD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMATHOLD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMATHOLD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLMATHOLD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLMATHOLD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_17CDLMATHOLD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLMATHOLD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLMATHOLD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM, "stream_CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM = {"stream_CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLMATHOLD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17CDLMATHOLD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLMATHOLD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLMATHOLD_Stream(open, high, low, close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLMATHOLD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLMATHOLD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLMATHOLD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream_spec = { + "talib._ta_lib.CDLMATHOLD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLMATHOLD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLMATHOLD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLMATHOLD_Stream(open, high, low, close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLMATHOLD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLMATHOLD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLMATHOLD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLLADDERBOTTOM (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLMATHOLD_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2050, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2050, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2050, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2050, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2050, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(5, 2050, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(5, 2050, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2050, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2050, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2050, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2050, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2050, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2052, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLLADDERBOTTOM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2074, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLMORNINGDOJISTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream_spec = { + "talib._ta_lib.CDLMORNINGDOJISTAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2080, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLMORNINGDOJISTAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLMORNINGDOJISTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; + return o; +} - __pyx_v_retCode = TA_CDLLADDERBOTTOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, t, a, k); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLMORNINGSTAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLMORNINGSTAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGSTAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLMORNINGSTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLMORNINGSTAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLMORNINGSTAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLMORNINGSTAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream_spec = { + "talib._ta_lib.CDLMORNINGSTAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLMORNINGSTAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLMORNINGSTAR_Stream(open, high, low, close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLONNECK_Stream __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLONNECK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI, "stream_CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI = {"stream_CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLLONGLEGGEDDOJI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2086, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(5, 2086, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(5, 2086, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2086, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2086, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2086, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2086, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2086, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2088, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLONNECK_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLLONGLEGGEDDOJI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLONNECK_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLONNECK_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLONNECK_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_16CDLONNECK_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLONNECK_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLONNECK_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLONNECK_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLONNECK_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16CDLONNECK_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLONNECK_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLONNECK_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLONNECK_Stream(open, high, low, close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLONNECK_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLONNECK_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLONNECK_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLONNECK_Stream_spec = { + "talib._ta_lib.CDLONNECK_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLONNECK_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLONNECK_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLONNECK_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLONNECK_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLONNECK_Stream(open, high, low, close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLONNECK_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLONNECK_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLONNECK_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLONNECK_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLPIERCING_Stream __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLPIERCING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2116, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLPIERCING_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLPIERCING_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLPIERCING_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLPIERCING_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_18CDLPIERCING_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLPIERCING_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18CDLPIERCING_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLPIERCING_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18CDLPIERCING_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLPIERCING_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLPIERCING_Stream(open, high, low, close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLPIERCING_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLPIERCING_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLPIERCING_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream_spec = { + "talib._ta_lib.CDLPIERCING_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLPIERCING_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLPIERCING_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLPIERCING_Stream(open, high, low, close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLPIERCING_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLPIERCING_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLPIERCING_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLPIERCING_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_CDLLONGLINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_566stream_CDLLONGLINE, "stream_CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_567stream_CDLLONGLINE = {"stream_CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_567stream_CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_566stream_CDLLONGLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_CDLLONGLINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLRICKSHAWMAN_Stream(open, high, low, close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream_spec = { + "talib._ta_lib.CDLRICKSHAWMAN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLRICKSHAWMAN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLRICKSHAWMAN_Stream(open, high, low, close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLLONGLINE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2122, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2122, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2122, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2122, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2122, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLLONGLINE", 0) < (0)) __PYX_ERR(5, 2122, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(5, 2122, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2122, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2122, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2122, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2122, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2122, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2124, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_566stream_CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLLONGLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLRISEFALL3METHODS_Stream(open, high, low, close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream_spec = { + "talib._ta_lib.CDLRISEFALL3METHODS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLRISEFALL3METHODS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLRISEFALL3METHODS_Stream(open, high, low, close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; + return o; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2152, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value_1__get__(o); +} - __pyx_v_retCode = TA_CDLLONGLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLSEPARATINGLINES_Stream(open, high, low, close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream_spec = { + "talib._ta_lib.CDLSEPARATINGLINES_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream_slots, +}; +#else - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLSEPARATINGLINES_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLSEPARATINGLINES_Stream(open, high, low, close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; + return o; +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLSHOOTINGSTAR_Stream(open, high, low, close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream_spec = { + "talib._ta_lib.CDLSHOOTINGSTAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLSHOOTINGSTAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLSHOOTINGSTAR_Stream(open, high, low, close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSHORTLINE_Stream __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_CDLMARUBOZU(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_568stream_CDLMARUBOZU, "stream_CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_569stream_CDLMARUBOZU = {"stream_CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_569stream_CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_568stream_CDLMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_CDLMARUBOZU(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMARUBOZU (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2158, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2158, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2158, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2158, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2158, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMARUBOZU", 0) < (0)) __PYX_ERR(5, 2158, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 2158, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2158, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2158, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2158, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2158, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2158, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2160, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_568stream_CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSHORTLINE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMARUBOZU", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLSHORTLINE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLSHORTLINE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_19CDLSHORTLINE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLSHORTLINE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLSHORTLINE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLSHORTLINE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_19CDLSHORTLINE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLSHORTLINE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLSHORTLINE_Stream(open, high, low, close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLSHORTLINE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLSHORTLINE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLSHORTLINE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream_spec = { + "talib._ta_lib.CDLSHORTLINE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2188, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLSHORTLINE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLSHORTLINE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLSHORTLINE_Stream(open, high, low, close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLSHORTLINE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLSHORTLINE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLSHORTLINE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLSHORTLINE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; + return o; +} - __pyx_v_retCode = TA_CDLMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, t, a, k); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLSPINNINGTOP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLSPINNINGTOP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLSPINNINGTOP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLSPINNINGTOP_Stream(open, high, low, close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLSPINNINGTOP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLSPINNINGTOP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLSPINNINGTOP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream_spec = { + "talib._ta_lib.CDLSPINNINGTOP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLSPINNINGTOP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLSPINNINGTOP_Stream(open, high, low, close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_CDLMATCHINGLOW(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_570stream_CDLMATCHINGLOW, "stream_CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_571stream_CDLMATCHINGLOW = {"stream_CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_571stream_CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_570stream_CDLMATCHINGLOW}; -static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_CDLMATCHINGLOW(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMATCHINGLOW (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2194, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2194, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2194, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2194, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2194, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(5, 2194, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(5, 2194, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2194, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2194, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2194, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2194, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2194, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2196, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_570stream_CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMATCHINGLOW", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLSTALLEDPATTERN_Stream(open, high, low, close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream_spec = { + "talib._ta_lib.CDLSTALLEDPATTERN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLSTALLEDPATTERN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLSTALLEDPATTERN_Stream(open, high, low, close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2224, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLMATCHINGLOW((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2228, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLSTICKSANDWICH_Stream(open, high, low, close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream_spec = { + "talib._ta_lib.CDLSTICKSANDWICH_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLSTICKSANDWICH_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLSTICKSANDWICH_Stream(open, high, low, close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTAKURI_Stream __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTAKURI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTAKURI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTAKURI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLTAKURI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLTAKURI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_16CDLTAKURI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLTAKURI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16CDLTAKURI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_CDLMATHOLD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_572stream_CDLMATHOLD, "stream_CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_573stream_CDLMATHOLD = {"stream_CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_573stream_CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_572stream_CDLMATHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_CDLMATHOLD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLTAKURI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16CDLTAKURI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLTAKURI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLTAKURI_Stream(open, high, low, close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLTAKURI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLTAKURI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLTAKURI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream_spec = { + "talib._ta_lib.CDLTAKURI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLTAKURI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLTAKURI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLTAKURI_Stream(open, high, low, close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLTAKURI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLTAKURI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLTAKURI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMATHOLD (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLTAKURI_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2230, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMATHOLD", 0) < (0)) __PYX_ERR(5, 2230, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(5, 2230, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2230, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2230, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2230, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2230, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2230, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2232, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2230, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2232, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_572stream_CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTASUKIGAP_Stream __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream; + return o; +} - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTASUKIGAP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); } -static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMATHOLD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLTASUKIGAP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLTASUKIGAP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2258, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLTASUKIGAP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLTASUKIGAP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLTASUKIGAP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLTASUKIGAP_Stream(open, high, low, close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLTASUKIGAP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLTASUKIGAP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLTASUKIGAP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream_spec = { + "talib._ta_lib.CDLTASUKIGAP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2260, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLTASUKIGAP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLTASUKIGAP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLTASUKIGAP_Stream(open, high, low, close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLTASUKIGAP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLTASUKIGAP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLTASUKIGAP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLTASUKIGAP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTHRUSTING_Stream __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2262, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTHRUSTING_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLMATHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLTHRUSTING_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLTHRUSTING_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_19CDLTHRUSTING_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLTHRUSTING_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19CDLTHRUSTING_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLTHRUSTING_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_19CDLTHRUSTING_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLTHRUSTING_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLTHRUSTING_Stream(open, high, low, close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLTHRUSTING_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLTHRUSTING_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLTHRUSTING_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream_spec = { + "talib._ta_lib.CDLTHRUSTING_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLTHRUSTING_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLTHRUSTING_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLTHRUSTING_Stream(open, high, low, close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLTHRUSTING_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLTHRUSTING_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLTHRUSTING_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLTHRUSTING_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLTRISTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTRISTAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLTRISTAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLTRISTAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLTRISTAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLTRISTAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_17CDLTRISTAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLTRISTAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17CDLTRISTAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR, "stream_CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR = {"stream_CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLTRISTAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17CDLTRISTAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLTRISTAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLTRISTAR_Stream(open, high, low, close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLTRISTAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLTRISTAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLTRISTAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream_spec = { + "talib._ta_lib.CDLTRISTAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLTRISTAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLTRISTAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLTRISTAR_Stream(open, high, low, close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLTRISTAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLTRISTAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLTRISTAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMORNINGDOJISTAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLTRISTAR_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2268, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2268, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2268, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2268, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2268, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2268, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 2268, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 2268, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2268, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2268, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2268, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2268, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2268, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2270, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2268, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2270, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; + return o; +} - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); } -static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMORNINGDOJISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLUNIQUE3RIVER_Stream(open, high, low, close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream_spec = { + "talib._ta_lib.CDLUNIQUE3RIVER_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLUNIQUE3RIVER_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLUNIQUE3RIVER_Stream(open, high, low, close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2300, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLUPSIDEGAP2CROWS_Stream(open, high, low, close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream_spec = { + "talib._ta_lib.CDLUPSIDEGAP2CROWS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLUPSIDEGAP2CROWS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLUPSIDEGAP2CROWS_Stream(open, high, low, close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_CDLMORNINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_576stream_CDLMORNINGSTAR, "stream_CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_577stream_CDLMORNINGSTAR = {"stream_CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_577stream_CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_576stream_CDLMORNINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_CDLMORNINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CDLXSIDEGAP3METHODS_Stream(open, high, low, close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream_spec = { + "talib._ta_lib.CDLXSIDEGAP3METHODS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CDLXSIDEGAP3METHODS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CDLXSIDEGAP3METHODS_Stream(open, high, low, close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLMORNINGSTAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2306, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(5, 2306, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 2306, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2306, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2306, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2306, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2306, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2306, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2308, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2306, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2308, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_576stream_CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CEIL_Stream __pyx_vtable_5talib_7_ta_lib_CEIL_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CEIL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream; + return o; +} - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CEIL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CEIL_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); } -static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLMORNINGSTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CEIL_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2330, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CEIL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CEIL_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CEIL_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CEIL_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CEIL_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11CEIL_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CEIL_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CEIL_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CEIL_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CEIL_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CEIL_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CEIL_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11CEIL_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CEIL_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CEIL_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CEIL_Stream(real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CEIL_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CEIL_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CEIL_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CEIL_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CEIL_Stream_spec = { + "talib._ta_lib.CEIL_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CEIL_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_CEIL_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CEIL_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CEIL_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CEIL_Stream(real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CEIL_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CEIL_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CEIL_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CEIL_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CEIL_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CMF_Stream __pyx_vtable_5talib_7_ta_lib_CMF_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CMF_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2338, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CMF_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CMF_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMF_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLMORNINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CMF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CMF_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CMF_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10CMF_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CMF_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CMF_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10CMF_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10CMF_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10CMF_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CMF_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMF_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMF_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMF_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMF_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMF_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMF_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMF_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CMF_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10CMF_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CMF_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CMF_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CMF_Stream(high, low, close, volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CMF_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CMF_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CMF_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CMF_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CMF_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CMF_Stream_spec = { + "talib._ta_lib.CMF_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CMF_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CMF_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CMF_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CMF_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CMF_Stream(high, low, close, volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CMF_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CMF_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CMF_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CMF_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CMF_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CMO_Stream __pyx_vtable_5talib_7_ta_lib_CMO_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CMO_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CMO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CMO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMO_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CMO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CMO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CMO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10CMO_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CMO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CMO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10CMO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10CMO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10CMO_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CMO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CMO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CMO_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_CDLONNECK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_578stream_CDLONNECK, "stream_CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_579stream_CDLONNECK = {"stream_CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_579stream_CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_578stream_CDLONNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_CDLONNECK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CMO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10CMO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CMO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CMO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CMO_Stream(real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CMO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CMO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CMO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CMO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CMO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CMO_Stream_spec = { + "talib._ta_lib.CMO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CMO_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CMO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CMO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CMO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CMO_Stream(real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CMO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CMO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CMO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CMO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLONNECK (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CMO_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2344, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2344, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2344, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2344, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2344, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLONNECK", 0) < (0)) __PYX_ERR(5, 2344, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, i); __PYX_ERR(5, 2344, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2344, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2344, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2344, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2344, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2344, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2346, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_578stream_CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CMOU_Stream __pyx_vtable_5talib_7_ta_lib_CMOU_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CMOU_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLONNECK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMOU_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CMOU_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2366, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CMOU_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CMOU_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CMOU_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CMOU_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_CMOU_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CMOU_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_11CMOU_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CMOU_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CMOU_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CMOU_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11CMOU_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11CMOU_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2372, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CMOU_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11CMOU_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CMOU_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CMOU_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CMOU_Stream(real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CMOU_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CMOU_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CMOU_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CMOU_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CMOU_Stream_spec = { + "talib._ta_lib.CMOU_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CMOU_Stream_slots, +}; +#else - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_CMOU_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CMOU_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CMOU_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CMOU_Stream(real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CMOU_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CMOU_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CMOU_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CMOU_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CMOU_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_COPPOCK_Stream __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2374, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_COPPOCK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream; + return o; +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_COPPOCK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_COPPOCK_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_retCode = TA_CDLONNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_COPPOCK_Stream, t, a, k); +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_COPPOCK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_COPPOCK_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_COPPOCK_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_COPPOCK_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_COPPOCK_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_14COPPOCK_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_COPPOCK_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14COPPOCK_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14COPPOCK_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_COPPOCK_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14COPPOCK_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_COPPOCK_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_COPPOCK_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("COPPOCK_Stream(real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_COPPOCK_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_COPPOCK_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_COPPOCK_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_COPPOCK_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_COPPOCK_Stream_spec = { + "talib._ta_lib.COPPOCK_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_COPPOCK_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_COPPOCK_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""COPPOCK_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_COPPOCK_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("COPPOCK_Stream(real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_COPPOCK_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_COPPOCK_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_COPPOCK_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_COPPOCK_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CORREL_Stream __pyx_vtable_5talib_7_ta_lib_CORREL_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CORREL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CORREL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CORREL_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CORREL_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CORREL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CORREL_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CORREL_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CORREL_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CORREL_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_13CORREL_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CORREL_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CORREL_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CORREL_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CORREL_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CORREL_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_CDLPIERCING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_580stream_CDLPIERCING, "stream_CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_581stream_CDLPIERCING = {"stream_CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_581stream_CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_580stream_CDLPIERCING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_CDLPIERCING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CORREL_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13CORREL_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CORREL_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CORREL_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CORREL_Stream(real0, real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson\047s Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CORREL_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CORREL_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CORREL_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CORREL_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CORREL_Stream_spec = { + "talib._ta_lib.CORREL_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CORREL_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CORREL_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CORREL_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CORREL_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CORREL_Stream(real0, real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson\047s Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CORREL_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CORREL_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CORREL_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CORREL_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLPIERCING (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CORREL_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2380, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2380, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2380, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2380, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2380, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLPIERCING", 0) < (0)) __PYX_ERR(5, 2380, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, i); __PYX_ERR(5, 2380, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2380, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2380, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2380, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2380, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_COS_Stream __pyx_vtable_5talib_7_ta_lib_COS_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_COS_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_COS_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_COS_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_COS_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_COS_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_COS_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_COS_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_COS_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2380, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_COS_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2382, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_580stream_CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_COS_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10COS_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_COS_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_COS_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10COS_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_10COS_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10COS_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_COS_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10COS_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10COS_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10COS_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10COS_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10COS_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10COS_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10COS_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_COS_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10COS_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_COS_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_COS_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("COS_Stream(real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_COS_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_COS_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_COS_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_COS_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_COS_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_COS_Stream_spec = { + "talib._ta_lib.COS_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_COS_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_COS_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_COS_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""COS_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_COS_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_COS_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("COS_Stream(real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_COS_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_COS_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_COS_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_COS_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_COS_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_COSH_Stream __pyx_vtable_5talib_7_ta_lib_COSH_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_COSH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_COSH_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_COSH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_COSH_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); } -static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLPIERCING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_COSH_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_COSH_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_COSH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_COSH_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_COSH_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11COSH_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2404, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_COSH_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_COSH_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11COSH_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11COSH_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11COSH_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_COSH_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11COSH_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11COSH_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11COSH_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11COSH_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11COSH_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11COSH_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11COSH_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_COSH_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11COSH_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_COSH_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_COSH_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("COSH_Stream(real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_COSH_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_COSH_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_COSH_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_COSH_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_COSH_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_COSH_Stream_spec = { + "talib._ta_lib.COSH_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_COSH_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_COSH_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""COSH_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_COSH_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("COSH_Stream(real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_COSH_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_COSH_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_COSH_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_COSH_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_COSH_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CUMSUM_Stream __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CUMSUM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2410, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CUMSUM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CUMSUM_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CUMSUM_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLPIERCING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CUMSUM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CUMSUM_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CUMSUM_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_CUMSUM_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CUMSUM_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_13CUMSUM_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CUMSUM_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13CUMSUM_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13CUMSUM_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CUMSUM_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13CUMSUM_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CUMSUM_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CUMSUM_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CUMSUM_Stream(real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CUMSUM_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CUMSUM_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CUMSUM_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CUMSUM_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CUMSUM_Stream_spec = { + "talib._ta_lib.CUMSUM_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CUMSUM_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_CUMSUM_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CUMSUM_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CUMSUM_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CUMSUM_Stream(real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CUMSUM_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CUMSUM_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CUMSUM_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CUMSUM_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_CVI_Stream __pyx_vtable_5talib_7_ta_lib_CVI_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_CVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_CVI_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_CVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_CVI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_CVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_CVI_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_CVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_CVI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_CVI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10CVI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_CVI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_CVI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10CVI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10CVI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10CVI_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_CVI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CVI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CVI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CVI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CVI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CVI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10CVI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10CVI_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN, "stream_CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN = {"stream_CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_CVI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10CVI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_CVI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_CVI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("CVI_Stream(high, low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin\047s Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_CVI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_CVI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_CVI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_CVI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_CVI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_CVI_Stream_spec = { + "talib._ta_lib.CVI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_CVI_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_CVI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""CVI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_CVI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("CVI_Stream(high, low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin\047s Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_CVI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_CVI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_CVI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_CVI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLRICKSHAWMAN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_CVI_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2416, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2416, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2416, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2416, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2416, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(5, 2416, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(5, 2416, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2416, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2416, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2416, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2416, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2416, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2418, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_DEMA_Stream __pyx_vtable_5talib_7_ta_lib_DEMA_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DEMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLRICKSHAWMAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DEMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_DEMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_DEMA_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DEMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_DEMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DEMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_DEMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_DEMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2442, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_11DEMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_DEMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DEMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DEMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11DEMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11DEMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_DEMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11DEMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_DEMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_DEMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("DEMA_Stream(real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_DEMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_DEMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_DEMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_DEMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_DEMA_Stream_spec = { + "talib._ta_lib.DEMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_DEMA_Stream_slots, +}; +#else - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_DEMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""DEMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_DEMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("DEMA_Stream(real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_DEMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_DEMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_DEMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_DEMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_DEMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_DIV_Stream __pyx_vtable_5talib_7_ta_lib_DIV_Stream; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2446, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DIV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_DIV_Stream; + return o; +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DIV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_DIV_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_retCode = TA_CDLRICKSHAWMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DIV_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_DIV_Stream, t, a, k); +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DIV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_DIV_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2450, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DIV_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10DIV_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_DIV_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_DIV_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10DIV_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10DIV_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10DIV_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_DIV_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DIV_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DIV_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DIV_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DIV_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DIV_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DIV_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DIV_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_DIV_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10DIV_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_DIV_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_DIV_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("DIV_Stream(real0, real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_DIV_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_DIV_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_DIV_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_DIV_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_DIV_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_DIV_Stream_spec = { + "talib._ta_lib.DIV_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_DIV_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_DIV_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""DIV_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_DIV_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("DIV_Stream(real0, real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_DIV_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_DIV_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_DIV_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_DIV_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_DIV_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_DONCHIAN_Stream __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_DONCHIAN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_DONCHIAN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_DONCHIAN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_15DONCHIAN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_DONCHIAN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15DONCHIAN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15DONCHIAN_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS, "stream_CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS = {"stream_CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_DONCHIAN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15DONCHIAN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_DONCHIAN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_DONCHIAN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("DONCHIAN_Stream(high, low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_DONCHIAN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_DONCHIAN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_DONCHIAN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_DONCHIAN_Stream_spec = { + "talib._ta_lib.DONCHIAN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_DONCHIAN_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_DONCHIAN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""DONCHIAN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_DONCHIAN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("DONCHIAN_Stream(high, low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_DONCHIAN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_DONCHIAN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_DONCHIAN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLRISEFALL3METHODS (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_DONCHIAN_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2452, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2452, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2452, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2452, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2452, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(5, 2452, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2452, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2452, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2452, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2452, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2452, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2452, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2454, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_DPO_Stream __pyx_vtable_5talib_7_ta_lib_DPO_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DPO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_DPO_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLRISEFALL3METHODS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DPO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_DPO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2474, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DPO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_DPO_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DPO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_DPO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2476, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DPO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10DPO_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_DPO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_DPO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10DPO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10DPO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10DPO_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_DPO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DPO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DPO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DPO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DPO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DPO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10DPO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10DPO_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_DPO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10DPO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_DPO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_DPO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("DPO_Stream(real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_DPO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_DPO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_DPO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_DPO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_DPO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_DPO_Stream_spec = { + "talib._ta_lib.DPO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_DPO_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_DPO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""DPO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_DPO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("DPO_Stream(real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_DPO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_DPO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_DPO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_DPO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_DPO_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_DX_Stream __pyx_vtable_5talib_7_ta_lib_DX_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_DX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_DX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_DX_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2482, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_DX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_DX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_DX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_DX_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLRISEFALL3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_DX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_DX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_DX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9DX_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_DX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_DX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9DX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_9DX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9DX_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_DX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9DX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9DX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9DX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9DX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9DX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9DX_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_DX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9DX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_DX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_DX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("DX_Stream(high, low, close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_DX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_DX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_DX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_DX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_DX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_DX_Stream_spec = { + "talib._ta_lib.DX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_DX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_DX_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_DX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""DX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_DX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_DX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("DX_Stream(high, low, close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_DX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_DX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_DX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_DX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_DX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_EFI_Stream __pyx_vtable_5talib_7_ta_lib_EFI_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EFI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_EFI_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EFI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_EFI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EFI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_EFI_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EFI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_EFI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EFI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10EFI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_EFI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_EFI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10EFI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10EFI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10EFI_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_EFI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EFI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EFI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EFI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EFI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EFI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EFI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EFI_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES, "stream_CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES = {"stream_CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES}; -static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_EFI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10EFI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_EFI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_EFI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("EFI_Stream(close, volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder\047s Force Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nParameters:\n timeperiod: 13\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_EFI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_EFI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_EFI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_EFI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_EFI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_EFI_Stream_spec = { + "talib._ta_lib.EFI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_EFI_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_EFI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""EFI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_EFI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("EFI_Stream(close, volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder\047s Force Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nParameters:\n timeperiod: 13\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_EFI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_EFI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_EFI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_EFI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSEPARATINGLINES (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_EFI_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2488, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2488, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2488, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2488, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2488, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(5, 2488, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(5, 2488, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2488, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2488, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2488, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2488, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_EMA_Stream __pyx_vtable_5talib_7_ta_lib_EMA_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_EMA_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_EMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_EMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2488, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_EMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2490, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10EMA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_EMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_EMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10EMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSEPARATINGLINES", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10EMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10EMA_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_EMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_EMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10EMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_EMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_EMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("EMA_Stream(real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_EMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_EMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_EMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_EMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_EMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_EMA_Stream_spec = { + "talib._ta_lib.EMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_EMA_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2512, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_EMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""EMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_EMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("EMA_Stream(real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_EMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_EMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_EMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_EMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_EMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ER_Stream __pyx_vtable_5talib_7_ta_lib_ER_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ER_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ER_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ER_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ER_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ER_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ER_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ER_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ER_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ER_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ER_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9ER_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_ER_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ER_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9ER_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_9ER_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9ER_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ER_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9ER_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9ER_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9ER_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9ER_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9ER_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9ER_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9ER_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ER_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9ER_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ER_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ER_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ER_Stream(real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ER_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ER_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ER_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ER_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ER_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ER_Stream_spec = { + "talib._ta_lib.ER_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ER_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ER_Stream_slots, +}; +#else - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_ER_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ER_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ER_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ER_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ER_Stream(real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ER_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ER_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ER_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ER_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ER_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ERI_Stream __pyx_vtable_5talib_7_ta_lib_ERI_Stream; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2518, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ERI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ERI_Stream; + return o; +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ERI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ERI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_retCode = TA_CDLSEPARATINGLINES((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ERI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ERI_Stream, t, a, k); +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ERI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ERI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2522, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ERI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10ERI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ERI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ERI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10ERI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10ERI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10ERI_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ERI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ERI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ERI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ERI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ERI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ERI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ERI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ERI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ERI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10ERI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ERI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ERI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ERI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ERI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ERI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ERI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ERI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ERI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ERI_Stream_spec = { + "talib._ta_lib.ERI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ERI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_ERI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ERI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ERI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ERI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ERI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ERI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ERI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ERI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ERI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_EXP_Stream __pyx_vtable_5talib_7_ta_lib_EXP_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_EXP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_EXP_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_EXP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_EXP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_EXP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_EXP_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_EXP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_EXP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_EXP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10EXP_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_EXP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_EXP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10EXP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10EXP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10EXP_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_EXP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EXP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EXP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EXP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EXP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EXP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10EXP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10EXP_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR, "stream_CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR = {"stream_CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_EXP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10EXP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_EXP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_EXP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("EXP_Stream(real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_EXP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_EXP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_EXP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_EXP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_EXP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_EXP_Stream_spec = { + "talib._ta_lib.EXP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_EXP_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_EXP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""EXP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_EXP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("EXP_Stream(real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_EXP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_EXP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_EXP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_EXP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSHOOTINGSTAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_EXP_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2524, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2524, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(5, 2524, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(5, 2524, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2524, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2524, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2524, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2524, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2524, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2526, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_FLOOR_Stream __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FLOOR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSHOOTINGSTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FLOOR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_FLOOR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2546, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_FLOOR_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FLOOR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_FLOOR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FLOOR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_FLOOR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_FLOOR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_12FLOOR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_FLOOR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12FLOOR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12FLOOR_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_FLOOR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12FLOOR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_FLOOR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_FLOOR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("FLOOR_Stream(real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_FLOOR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_FLOOR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_FLOOR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_FLOOR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_FLOOR_Stream_spec = { + "talib._ta_lib.FLOOR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_FLOOR_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_FLOOR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""FLOOR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_FLOOR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("FLOOR_Stream(real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_FLOOR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_FLOOR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_FLOOR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_FLOOR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_FOSC_Stream __pyx_vtable_5talib_7_ta_lib_FOSC_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2554, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_FOSC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_FOSC_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLSHOOTINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_FOSC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_FOSC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_FOSC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11FOSC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_FOSC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11FOSC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11FOSC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11FOSC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11FOSC_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_FOSC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11FOSC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_FOSC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_FOSC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("FOSC_Stream(real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_FOSC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_FOSC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_FOSC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_FOSC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_FOSC_Stream_spec = { + "talib._ta_lib.FOSC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_FOSC_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_FOSC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""FOSC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_FOSC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("FOSC_Stream(real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_FOSC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_FOSC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_FOSC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_FOSC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_FOSC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_FRACTAL_Stream __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_FRACTAL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_FRACTAL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_FRACTAL_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_FRACTAL_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_FRACTAL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_FRACTAL_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_FRACTAL_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_FRACTAL_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_FRACTAL_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_14FRACTAL_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_FRACTAL_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14FRACTAL_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14FRACTAL_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_CDLSHORTLINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_590stream_CDLSHORTLINE, "stream_CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_591stream_CDLSHORTLINE = {"stream_CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_591stream_CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_590stream_CDLSHORTLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_CDLSHORTLINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_FRACTAL_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14FRACTAL_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_FRACTAL_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_FRACTAL_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("FRACTAL_Stream(high, low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_FRACTAL_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_FRACTAL_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_FRACTAL_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_FRACTAL_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_FRACTAL_Stream_spec = { + "talib._ta_lib.FRACTAL_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_FRACTAL_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_FRACTAL_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""FRACTAL_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_FRACTAL_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("FRACTAL_Stream(high, low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_FRACTAL_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_FRACTAL_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_FRACTAL_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSHORTLINE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_FRACTAL_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2560, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2560, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2560, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2560, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2560, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSHORTLINE", 0) < (0)) __PYX_ERR(5, 2560, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(5, 2560, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2560, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2560, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2560, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2560, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2560, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2562, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_590stream_CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HA_Stream __pyx_vtable_5talib_7_ta_lib_HA_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HA_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSHORTLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9HA_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2584, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_HA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9HA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_9HA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9HA_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9HA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9HA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9HA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9HA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9HA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9HA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9HA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9HA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HA_Stream(open, high, low, close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n haopen\n hahigh\n halow\n haclose")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HA_Stream_spec = { + "talib._ta_lib.HA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HA_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_HA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HA_Stream(open, high, low, close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n haopen\n hahigh\n halow\n haclose"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HMA_Stream __pyx_vtable_5talib_7_ta_lib_HMA_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HMA_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2590, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HMA_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLSHORTLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10HMA_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_HMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10HMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10HMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10HMA_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10HMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10HMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10HMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10HMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10HMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10HMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10HMA_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10HMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HMA_Stream(real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HMA_Stream_spec = { + "talib._ta_lib.HMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HMA_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_HMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HMA_Stream(real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_DCPERIOD_Stream __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HT_DCPERIOD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPERIOD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPERIOD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_18HT_DCPERIOD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HT_DCPERIOD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18HT_DCPERIOD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_CDLSPINNINGTOP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_592stream_CDLSPINNINGTOP, "stream_CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_593stream_CDLSPINNINGTOP = {"stream_CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_593stream_CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_592stream_CDLSPINNINGTOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_CDLSPINNINGTOP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HT_DCPERIOD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18HT_DCPERIOD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPERIOD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HT_DCPERIOD_Stream(real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HT_DCPERIOD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HT_DCPERIOD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HT_DCPERIOD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream_spec = { + "talib._ta_lib.HT_DCPERIOD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HT_DCPERIOD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPERIOD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HT_DCPERIOD_Stream(real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HT_DCPERIOD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HT_DCPERIOD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HT_DCPERIOD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSPINNINGTOP (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPERIOD_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2596, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2596, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2596, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2596, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2596, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(5, 2596, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(5, 2596, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2596, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2596, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2596, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2596, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_DCPHASE_Stream __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_DCPHASE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HT_DCPHASE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2596, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2598, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_592stream_CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_DCPHASE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPHASE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPHASE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSPINNINGTOP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_17HT_DCPHASE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HT_DCPHASE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17HT_DCPHASE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HT_DCPHASE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17HT_DCPHASE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPHASE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HT_DCPHASE_Stream(real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HT_DCPHASE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HT_DCPHASE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HT_DCPHASE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream_spec = { + "talib._ta_lib.HT_DCPHASE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2620, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HT_DCPHASE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HT_DCPHASE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HT_DCPHASE_Stream(real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HT_DCPHASE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HT_DCPHASE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HT_DCPHASE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HT_DCPHASE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_PHASOR_Stream __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_PHASOR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream; + return o; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HT_PHASOR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2624, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_PHASOR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2626, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static void __pyx_tp_dealloc_5talib_7_ta_lib_HT_PHASOR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HT_PHASOR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_outinteger = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_16HT_PHASOR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5value_1__get__(o); +} - __pyx_v_retCode = TA_CDLSPINNINGTOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HT_PHASOR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16HT_PHASOR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HT_PHASOR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16HT_PHASOR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HT_PHASOR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HT_PHASOR_Stream(real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HT_PHASOR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HT_PHASOR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HT_PHASOR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream_spec = { + "talib._ta_lib.HT_PHASOR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream_slots, +}; +#else - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_1 = 0; - goto __pyx_L0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HT_PHASOR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HT_PHASOR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HT_PHASOR_Stream(real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HT_PHASOR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HT_PHASOR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HT_PHASOR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HT_PHASOR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_SINE_Stream __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_SINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream; + return o; +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_SINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HT_SINE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_SINE_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_SINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_SINE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_SINE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_HT_SINE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HT_SINE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_14HT_SINE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HT_SINE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14HT_SINE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14HT_SINE_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HT_SINE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14HT_SINE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HT_SINE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HT_SINE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HT_SINE_Stream(real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HT_SINE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HT_SINE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HT_SINE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HT_SINE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HT_SINE_Stream_spec = { + "talib._ta_lib.HT_SINE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HT_SINE_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_HT_SINE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HT_SINE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HT_SINE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HT_SINE_Stream(real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HT_SINE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HT_SINE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HT_SINE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HT_SINE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_TRENDLINE_Stream __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN, "stream_CDLSTALLEDPATTERN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTALLEDPATTERN(open, high, low, close)\n\nStalled Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN = {"stream_CDLSTALLEDPATTERN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSTALLEDPATTERN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2632, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2632, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2632, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2632, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2632, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(5, 2632, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(5, 2632, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2632, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2632, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2632, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2632, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2632, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2634, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HT_TRENDLINE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSTALLEDPATTERN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2656, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDLINE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDLINE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_19HT_TRENDLINE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HT_TRENDLINE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDLINE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HT_TRENDLINE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_19HT_TRENDLINE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDLINE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HT_TRENDLINE_Stream(real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HT_TRENDLINE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HT_TRENDLINE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HT_TRENDLINE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream_spec = { + "talib._ta_lib.HT_TRENDLINE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HT_TRENDLINE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDLINE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HT_TRENDLINE_Stream(real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HT_TRENDLINE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HT_TRENDLINE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HT_TRENDLINE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDLINE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_HT_TRENDMODE_Stream __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2662, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_HT_TRENDMODE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLSTALLEDPATTERN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2665, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDMODE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDMODE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_19HT_TRENDMODE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_HT_TRENDMODE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_19HT_TRENDMODE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_HT_TRENDMODE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_19HT_TRENDMODE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDMODE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("HT_TRENDMODE_Stream(real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_HT_TRENDMODE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_HT_TRENDMODE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_HT_TRENDMODE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream_spec = { + "talib._ta_lib.HT_TRENDMODE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""HT_TRENDMODE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_HT_TRENDMODE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("HT_TRENDMODE_Stream(real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_HT_TRENDMODE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_HT_TRENDMODE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_HT_TRENDMODE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_HT_TRENDMODE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_IMI_Stream __pyx_vtable_5talib_7_ta_lib_IMI_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_IMI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_IMI_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_IMI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_IMI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_IMI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_IMI_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_IMI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_IMI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_IMI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10IMI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_IMI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_IMI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10IMI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10IMI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10IMI_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_IMI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IMI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IMI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IMI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IMI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IMI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10IMI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10IMI_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH, "stream_CDLSTICKSANDWICH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSTICKSANDWICH(open, high, low, close)\n\nStick Sandwich (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH = {"stream_CDLSTICKSANDWICH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_IMI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10IMI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_IMI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_IMI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("IMI_Stream(open, close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_IMI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_IMI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_IMI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_IMI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_IMI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_IMI_Stream_spec = { + "talib._ta_lib.IMI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_IMI_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_IMI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""IMI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_IMI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("IMI_Stream(open, close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_IMI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_IMI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_IMI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_IMI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLSTICKSANDWICH (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_IMI_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2668, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2668, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2668, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2668, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2668, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(5, 2668, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(5, 2668, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2668, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2668, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2668, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2668, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2668, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2670, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_KAMA_Stream __pyx_vtable_5talib_7_ta_lib_KAMA_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KAMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLSTICKSANDWICH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KAMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_KAMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_KAMA_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KAMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_KAMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KAMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_KAMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_KAMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11KAMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_KAMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11KAMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11KAMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11KAMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11KAMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_KAMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11KAMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_KAMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_KAMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("KAMA_Stream(real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_KAMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_KAMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_KAMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_KAMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_KAMA_Stream_spec = { + "talib._ta_lib.KAMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_KAMA_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2698, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_KAMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""KAMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_KAMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("KAMA_Stream(real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_KAMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_KAMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_KAMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_KAMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_KAMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_KC_Stream __pyx_vtable_5talib_7_ta_lib_KC_Stream; - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_KC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_KC_Stream; + return o; +} - __pyx_v_retCode = TA_CDLSTICKSANDWICH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_KC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2701, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_KC_Stream, t, a, k); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_KC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9KC_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_KC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_KC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9KC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_9KC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9KC_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_KC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9KC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9KC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9KC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9KC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9KC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9KC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9KC_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_KC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9KC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_KC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_KC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("KC_Stream(high, low, close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_KC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_KC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_KC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_KC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_KC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_KC_Stream_spec = { + "talib._ta_lib.KC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_KC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_KC_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_KC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""KC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_KC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_KC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("KC_Stream(high, low, close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_KC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_KC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_KC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_KC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_KC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_KDJ_Stream __pyx_vtable_5talib_7_ta_lib_KDJ_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_KDJ_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_CDLTAKURI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_KDJ_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_598stream_CDLTAKURI, "stream_CDLTAKURI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTAKURI(open, high, low, close)\n\nTakuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_599stream_CDLTAKURI = {"stream_CDLTAKURI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_599stream_CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_598stream_CDLTAKURI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_CDLTAKURI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTAKURI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2704, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2704, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2704, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2704, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2704, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTAKURI", 0) < (0)) __PYX_ERR(5, 2704, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, i); __PYX_ERR(5, 2704, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2704, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2704, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2704, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2704, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2704, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2706, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_598stream_CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_KDJ_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_KDJ_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_KDJ_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_KDJ_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLTAKURI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2726, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_KDJ_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_KDJ_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_KDJ_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10KDJ_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2730, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_KDJ_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KDJ_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KDJ_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10KDJ_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10KDJ_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_KDJ_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10KDJ_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_KDJ_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_KDJ_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("KDJ_Stream(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder\047s Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder\047s Smoothed Moving Average)\nOutputs:\n k\n d\n j")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_KDJ_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_KDJ_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_KDJ_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_KDJ_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_KDJ_Stream_spec = { + "talib._ta_lib.KDJ_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_KDJ_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_KDJ_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""KDJ_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_KDJ_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("KDJ_Stream(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder\047s Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder\047s Smoothed Moving Average)\nOutputs:\n k\n d\n j"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_KDJ_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_KDJ_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_KDJ_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_KDJ_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_KDJ_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_Stream __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2734, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLTAKURI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2738, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_16LINEARREG_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_LINEARREG_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_16LINEARREG_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_16LINEARREG_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_LINEARREG_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_16LINEARREG_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_LINEARREG_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("LINEARREG_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_LINEARREG_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_LINEARREG_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_LINEARREG_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_LINEARREG_Stream_spec = { + "talib._ta_lib.LINEARREG_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_LINEARREG_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_LINEARREG_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""LINEARREG_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("LINEARREG_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_LINEARREG_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_LINEARREG_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_LINEARREG_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_ANGLE_Stream __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_LINEARREG_ANGLE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_CDLTASUKIGAP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_600stream_CDLTASUKIGAP, "stream_CDLTASUKIGAP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTASUKIGAP(open, high, low, close)\n\nTasuki Gap (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_601stream_CDLTASUKIGAP = {"stream_CDLTASUKIGAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_601stream_CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_600stream_CDLTASUKIGAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_CDLTASUKIGAP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_LINEARREG_ANGLE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_ANGLE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("LINEARREG_ANGLE_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_LINEARREG_ANGLE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_LINEARREG_ANGLE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_LINEARREG_ANGLE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream_spec = { + "talib._ta_lib.LINEARREG_ANGLE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""LINEARREG_ANGLE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("LINEARREG_ANGLE_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTASUKIGAP (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2740, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2740, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2740, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2740, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2740, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTASUKIGAP", 0) < (0)) __PYX_ERR(5, 2740, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(5, 2740, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2740, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2740, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2740, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2740, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2740, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2742, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_600stream_CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLTASUKIGAP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2762, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2766, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("LINEARREG_INTERCEPT_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream_spec = { + "talib._ta_lib.LINEARREG_INTERCEPT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2768, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""LINEARREG_INTERCEPT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("LINEARREG_INTERCEPT_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_LINEARREG_SLOPE_Stream __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2770, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLTASUKIGAP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2774, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_LINEARREG_SLOPE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_LINEARREG_SLOPE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_SLOPE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("LINEARREG_SLOPE_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_LINEARREG_SLOPE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_LINEARREG_SLOPE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_LINEARREG_SLOPE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream_spec = { + "talib._ta_lib.LINEARREG_SLOPE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""LINEARREG_SLOPE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("LINEARREG_SLOPE_Stream(real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_LN_Stream __pyx_vtable_5talib_7_ta_lib_LN_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_LN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_LN_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_LN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_LN_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_LN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9LN_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_LN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_LN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9LN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_9LN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9LN_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_LN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9LN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9LN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9LN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9LN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9LN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9LN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9LN_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_CDLTHRUSTING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_602stream_CDLTHRUSTING, "stream_CDLTHRUSTING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTHRUSTING(open, high, low, close)\n\nThrusting Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_603stream_CDLTHRUSTING = {"stream_CDLTHRUSTING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_603stream_CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_602stream_CDLTHRUSTING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_CDLTHRUSTING(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_LN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9LN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_LN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_LN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("LN_Stream(real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_LN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_LN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_LN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_LN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_LN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_LN_Stream_spec = { + "talib._ta_lib.LN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_LN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_LN_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_LN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""LN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_LN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_LN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("LN_Stream(real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_LN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_LN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_LN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_LN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTHRUSTING (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_LN_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2776, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2776, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2776, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2776, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2776, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTHRUSTING", 0) < (0)) __PYX_ERR(5, 2776, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(5, 2776, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2776, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2776, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2776, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2776, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2776, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2778, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_602stream_CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_LOG10_Stream __pyx_vtable_5talib_7_ta_lib_LOG10_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_LOG10_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLTHRUSTING", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_LOG10_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_LOG10_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2798, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_LOG10_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_LOG10_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_LOG10_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2800, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_LOG10_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_LOG10_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_LOG10_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_12LOG10_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_LOG10_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12LOG10_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12LOG10_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12LOG10_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12LOG10_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2804, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_LOG10_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12LOG10_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_LOG10_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_LOG10_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("LOG10_Stream(real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_LOG10_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_LOG10_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_LOG10_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_LOG10_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_LOG10_Stream_spec = { + "talib._ta_lib.LOG10_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_LOG10_Stream_slots, +}; +#else - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_LOG10_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""LOG10_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_LOG10_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("LOG10_Stream(real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_LOG10_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_LOG10_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_LOG10_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_LOG10_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_LOG10_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MA_Stream __pyx_vtable_5talib_7_ta_lib_MA_Stream; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2806, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MA_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MA_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLTHRUSTING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9MA_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9MA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_9MA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9MA_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9MA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9MA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9MA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9MA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9MA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9MA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9MA_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9MA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MA_Stream(real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MA_Stream_spec = { + "talib._ta_lib.MA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MA_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MA_Stream(real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MACD_Stream __pyx_vtable_5talib_7_ta_lib_MACD_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MACD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MACD_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MACD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MACD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACD_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MACD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MACD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MACD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11MACD_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MACD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MACD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11MACD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_11MACD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11MACD_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MACD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MACD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MACD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MACD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MACD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MACD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MACD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MACD_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_CDLTRISTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_604stream_CDLTRISTAR, "stream_CDLTRISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLTRISTAR(open, high, low, close)\n\nTristar Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_605stream_CDLTRISTAR = {"stream_CDLTRISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_605stream_CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_604stream_CDLTRISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_CDLTRISTAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MACD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11MACD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MACD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MACD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MACD_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MACD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MACD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MACD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MACD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MACD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MACD_Stream_spec = { + "talib._ta_lib.MACD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MACD_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MACD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MACD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MACD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MACD_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MACD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MACD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MACD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MACD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLTRISTAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MACD_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2812, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLTRISTAR", 0) < (0)) __PYX_ERR(5, 2812, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(5, 2812, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2812, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2812, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2812, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2812, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2812, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2814, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_604stream_CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MACDEXT_Stream __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MACDEXT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLTRISTAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDEXT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MACDEXT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDEXT_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MACDEXT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDEXT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MACDEXT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_MACDEXT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MACDEXT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_14MACDEXT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MACDEXT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDEXT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDEXT_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2840, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MACDEXT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14MACDEXT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MACDEXT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MACDEXT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MACDEXT_Stream(real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MACDEXT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MACDEXT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MACDEXT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MACDEXT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MACDEXT_Stream_spec = { + "talib._ta_lib.MACDEXT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MACDEXT_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MACDEXT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MACDEXT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MACDEXT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MACDEXT_Stream(real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MACDEXT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MACDEXT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MACDEXT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MACDEXT_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MACDFIX_Stream __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MACDFIX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2842, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDFIX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MACDFIX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDFIX_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLTRISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MACDFIX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MACDFIX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MACDFIX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2846, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MACDFIX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MACDFIX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_14MACDFIX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MACDFIX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14MACDFIX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14MACDFIX_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MACDFIX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14MACDFIX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MACDFIX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MACDFIX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MACDFIX_Stream(real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MACDFIX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MACDFIX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MACDFIX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MACDFIX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MACDFIX_Stream_spec = { + "talib._ta_lib.MACDFIX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MACDFIX_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MACDFIX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MACDFIX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MACDFIX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MACDFIX_Stream(real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MACDFIX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MACDFIX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MACDFIX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MACDFIX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAMA_Stream __pyx_vtable_5talib_7_ta_lib_MAMA_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MAMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAMA_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MAMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MAMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_11MAMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MAMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAMA_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER, "stream_CDLUNIQUE3RIVER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUNIQUE3RIVER(open, high, low, close)\n\nUnique 3 River (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER = {"stream_CDLUNIQUE3RIVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MAMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11MAMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MAMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MAMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MAMA_Stream(real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MAMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MAMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MAMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MAMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MAMA_Stream_spec = { + "talib._ta_lib.MAMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MAMA_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MAMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MAMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MAMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MAMA_Stream(real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MAMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MAMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MAMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MAMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLUNIQUE3RIVER (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MAMA_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2848, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2848, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2848, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2848, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2848, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(5, 2848, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(5, 2848, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2848, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2848, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2848, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2848, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2848, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2850, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MARKETFI_Stream __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MARKETFI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLUNIQUE3RIVER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MARKETFI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MARKETFI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2870, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MARKETFI_Stream, t, a, k); +} +#endif - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MARKETFI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MARKETFI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MARKETFI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_MARKETFI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MARKETFI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MARKETFI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MARKETFI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MARKETFI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MARKETFI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MARKETFI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MARKETFI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MARKETFI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MARKETFI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MARKETFI_Stream(high, low, volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MARKETFI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MARKETFI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MARKETFI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MARKETFI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MARKETFI_Stream_spec = { + "talib._ta_lib.MARKETFI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MARKETFI_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_MARKETFI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MARKETFI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MARKETFI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MARKETFI_Stream(high, low, volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MARKETFI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MARKETFI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MARKETFI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MARKETFI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MASSI_Stream __pyx_vtable_5talib_7_ta_lib_MASSI_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MASSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2878, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MASSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MASSI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MASSI_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLUNIQUE3RIVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MASSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MASSI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MASSI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2882, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MASSI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MASSI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_12MASSI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MASSI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12MASSI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12MASSI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12MASSI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12MASSI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MASSI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12MASSI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MASSI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MASSI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MASSI_Stream(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MASSI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MASSI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MASSI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MASSI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MASSI_Stream_spec = { + "talib._ta_lib.MASSI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MASSI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MASSI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MASSI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MASSI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MASSI_Stream(high, low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MASSI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MASSI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MASSI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MASSI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MASSI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAVP_Stream __pyx_vtable_5talib_7_ta_lib_MAVP_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAVP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAVP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MAVP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAVP_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAVP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAVP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAVP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MAVP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MAVP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_11MAVP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MAVP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAVP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAVP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MAVP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MAVP_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS, "stream_CDLUPSIDEGAP2CROWS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLUPSIDEGAP2CROWS(open, high, low, close)\n\nUpside Gap Two Crows (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS = {"stream_CDLUPSIDEGAP2CROWS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MAVP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11MAVP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MAVP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MAVP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MAVP_Stream(real, periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MAVP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MAVP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MAVP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MAVP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MAVP_Stream_spec = { + "talib._ta_lib.MAVP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MAVP_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MAVP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MAVP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MAVP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MAVP_Stream(real, periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MAVP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MAVP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MAVP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MAVP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLUPSIDEGAP2CROWS (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MAVP_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2884, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2884, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2884, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(5, 2884, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(5, 2884, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2884, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2884, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2884, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2884, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2884, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2886, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAX_Stream __pyx_vtable_5talib_7_ta_lib_MAX_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MAX_Stream; + return o; } -static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLUPSIDEGAP2CROWS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2906, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MAX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAX_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10MAX_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MAX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MAX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10MAX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10MAX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10MAX_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MAX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MAX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MAX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MAX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MAX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MAX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MAX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MAX_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MAX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10MAX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MAX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MAX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MAX_Stream(real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MAX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MAX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MAX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MAX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MAX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MAX_Stream_spec = { + "talib._ta_lib.MAX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MAX_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2914, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_MAX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MAX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MAX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MAX_Stream(real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MAX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MAX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MAX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MAX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MAX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MAXINDEX_Stream __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream; - __pyx_v_outinteger = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream; + return o; +} - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MAXINDEX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream, t, a, k); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2918, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MAXINDEX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MAXINDEX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MAXINDEX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MAXINDEX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MAXINDEX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MAXINDEX_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MAXINDEX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MAXINDEX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MAXINDEX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MAXINDEX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MAXINDEX_Stream(real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MAXINDEX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MAXINDEX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MAXINDEX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MAXINDEX_Stream_spec = { + "talib._ta_lib.MAXINDEX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MAXINDEX_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MAXINDEX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MAXINDEX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MAXINDEX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MAXINDEX_Stream(real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MAXINDEX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MAXINDEX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MAXINDEX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MAXINDEX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MEDPRICE_Stream __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS, "stream_CDLXSIDEGAP3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLXSIDEGAP3METHODS(open, high, low, close)\n\nUpside/Downside Gap Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS = {"stream_CDLXSIDEGAP3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CDLXSIDEGAP3METHODS (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2920, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2920, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2920, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2920, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2920, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(5, 2920, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2920, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2920, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2920, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2920, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2920, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2920, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2922, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MEDPRICE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CDLXSIDEGAP3METHODS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2942, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2944, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MEDPRICE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MEDPRICE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MEDPRICE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MEDPRICE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MEDPRICE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MEDPRICE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MEDPRICE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MEDPRICE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MEDPRICE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MEDPRICE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MEDPRICE_Stream(high, low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MEDPRICE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MEDPRICE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MEDPRICE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MEDPRICE_Stream_spec = { + "talib._ta_lib.MEDPRICE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MEDPRICE_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_MEDPRICE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MEDPRICE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MEDPRICE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MEDPRICE_Stream(high, low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MEDPRICE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MEDPRICE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MEDPRICE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MEDPRICE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MFI_Stream __pyx_vtable_5talib_7_ta_lib_MFI_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MFI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MFI_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2950, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MFI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MFI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outinteger = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MFI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MFI_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MFI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MFI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2953, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MFI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10MFI_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MFI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MFI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10MFI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10MFI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10MFI_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MFI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MFI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MFI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MFI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MFI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MFI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MFI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MFI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MFI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10MFI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MFI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MFI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MFI_Stream(high, low, close, volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MFI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MFI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MFI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MFI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MFI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MFI_Stream_spec = { + "talib._ta_lib.MFI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MFI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MFI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MFI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MFI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MFI_Stream(high, low, close, volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MFI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MFI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MFI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MFI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MFI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MIDPOINT_Stream __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MIDPOINT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MIDPOINT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MIDPOINT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MIDPOINT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MIDPOINT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MIDPOINT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MIDPOINT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPOINT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPOINT_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_CEIL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_612stream_CEIL, "stream_CEIL(ndarray real)\n\nCEIL(real)\n\nVector Ceil (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_613stream_CEIL = {"stream_CEIL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_613stream_CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_612stream_CEIL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_CEIL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MIDPOINT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MIDPOINT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MIDPOINT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MIDPOINT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MIDPOINT_Stream(real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MIDPOINT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MIDPOINT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MIDPOINT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MIDPOINT_Stream_spec = { + "talib._ta_lib.MIDPOINT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MIDPOINT_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MIDPOINT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MIDPOINT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MIDPOINT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MIDPOINT_Stream(real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MIDPOINT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MIDPOINT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MIDPOINT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CEIL (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MIDPOINT_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2956, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CEIL", 0) < (0)) __PYX_ERR(5, 2956, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, i); __PYX_ERR(5, 2956, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MIDPRICE_Stream __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MIDPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MIDPRICE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2956, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2958, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_612stream_CEIL(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MIDPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_MIDPRICE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MIDPRICE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CEIL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MIDPRICE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MIDPRICE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MIDPRICE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MIDPRICE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MIDPRICE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MIDPRICE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MIDPRICE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MIDPRICE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MIDPRICE_Stream(high, low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MIDPRICE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MIDPRICE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MIDPRICE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MIDPRICE_Stream_spec = { + "talib._ta_lib.MIDPRICE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MIDPRICE_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_MIDPRICE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MIDPRICE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MIDPRICE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MIDPRICE_Stream(high, low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MIDPRICE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MIDPRICE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MIDPRICE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MIDPRICE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MIN_Stream __pyx_vtable_5talib_7_ta_lib_MIN_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MIN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MIN_Stream; + return o; +} - __pyx_v_retCode = TA_CEIL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MIN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MIN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MIN_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MIN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MIN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MIN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10MIN_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MIN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MIN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10MIN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10MIN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10MIN_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MIN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MIN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MIN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MIN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MIN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MIN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MIN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MIN_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_CMF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_614stream_CMF, "stream_CMF(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nCMF(high, low, close, volume[, timeperiod=?])\n\nChaikin Money Flow (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_615stream_CMF = {"stream_CMF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_615stream_CMF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_614stream_CMF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_CMF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MIN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10MIN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MIN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MIN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MIN_Stream(real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MIN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MIN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MIN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MIN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MIN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MIN_Stream_spec = { + "talib._ta_lib.MIN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MIN_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MIN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MIN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MIN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MIN_Stream(real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MIN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MIN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MIN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MIN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CMF (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MIN_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2983, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2983, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2983, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2983, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2983, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2983, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CMF", 0) < (0)) __PYX_ERR(5, 2983, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CMF", 0, 4, 5, i); __PYX_ERR(5, 2983, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2983, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2983, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2983, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2983, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2983, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2985, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2983, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 2985, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_614stream_CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MININDEX_Stream __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MININDEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream; + return o; +} - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MININDEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MININDEX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); } -static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_CMF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CMF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MININDEX_Stream, t, a, k); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3007, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MININDEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MININDEX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MININDEX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3009, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MININDEX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MININDEX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MININDEX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3011, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MININDEX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MININDEX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MININDEX_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MININDEX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MININDEX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MININDEX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MININDEX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MININDEX_Stream(real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MININDEX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MININDEX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MININDEX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MININDEX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MININDEX_Stream_spec = { + "talib._ta_lib.MININDEX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MININDEX_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3013, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_MININDEX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MININDEX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MININDEX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MININDEX_Stream(real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MININDEX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MININDEX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MININDEX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MININDEX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINMAX_Stream __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream; - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINMAX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3015, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MINMAX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAX_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CMF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINMAX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINMAX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3019, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_MINMAX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MINMAX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_13MINMAX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CMF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MINMAX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13MINMAX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13MINMAX_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MINMAX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13MINMAX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MINMAX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MINMAX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MINMAX_Stream(real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MINMAX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MINMAX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MINMAX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MINMAX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MINMAX_Stream_spec = { + "talib._ta_lib.MINMAX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MINMAX_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MINMAX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MINMAX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MINMAX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MINMAX_Stream(real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MINMAX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MINMAX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MINMAX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MINMAX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINMAXINDEX_Stream __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINMAXINDEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MINMAXINDEX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINMAXINDEX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MINMAXINDEX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MINMAXINDEX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_18MINMAXINDEX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MINMAXINDEX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18MINMAXINDEX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_CMO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_616stream_CMO, "stream_CMO(ndarray real, int timeperiod=-0x80000000)\n\nCMO(real[, timeperiod=?])\n\nChande Momentum Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_617stream_CMO = {"stream_CMO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_617stream_CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_616stream_CMO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_CMO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MINMAXINDEX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18MINMAXINDEX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MINMAXINDEX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MINMAXINDEX_Stream(real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MINMAXINDEX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MINMAXINDEX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MINMAXINDEX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream_spec = { + "talib._ta_lib.MINMAXINDEX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MINMAXINDEX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MINMAXINDEX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MINMAXINDEX_Stream(real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MINMAXINDEX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MINMAXINDEX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MINMAXINDEX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CMO (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MINMAXINDEX_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3021, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3021, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3021, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CMO", 0) < (0)) __PYX_ERR(5, 3021, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, i); __PYX_ERR(5, 3021, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3021, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3021, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3023, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINUS_DI_Stream __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINUS_DI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MINUS_DI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3021, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3023, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_616stream_CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINUS_DI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CMO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MINUS_DI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3042, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MINUS_DI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MINUS_DI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MINUS_DI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MINUS_DI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MINUS_DI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MINUS_DI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MINUS_DI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MINUS_DI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MINUS_DI_Stream_spec = { + "talib._ta_lib.MINUS_DI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MINUS_DI_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_MINUS_DI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MINUS_DI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MINUS_DI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MINUS_DI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MINUS_DI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MINUS_DI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MINUS_DM_Stream __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MINUS_DM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream; + return o; +} - __pyx_v_retCode = TA_CMO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MINUS_DM_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3048, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MINUS_DM_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DM_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DM_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_15MINUS_DM_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MINUS_DM_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15MINUS_DM_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15MINUS_DM_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MINUS_DM_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15MINUS_DM_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MINUS_DM_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DM_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MINUS_DM_Stream(high, low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MINUS_DM_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MINUS_DM_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MINUS_DM_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MINUS_DM_Stream_spec = { + "talib._ta_lib.MINUS_DM_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MINUS_DM_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MINUS_DM_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MINUS_DM_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MINUS_DM_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MINUS_DM_Stream(high, low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MINUS_DM_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MINUS_DM_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MINUS_DM_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MINUS_DM_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MOM_Stream __pyx_vtable_5talib_7_ta_lib_MOM_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MOM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MOM_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_CMOU(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MOM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_618stream_CMOU, "stream_CMOU(ndarray real, int timeperiod=-0x80000000)\n\nCMOU(real[, timeperiod=?])\n\nChande Momentum Oscillator (Unsmoothed) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_619stream_CMOU = {"stream_CMOU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_619stream_CMOU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_618stream_CMOU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_CMOU(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CMOU (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3050, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3050, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3050, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CMOU", 0) < (0)) __PYX_ERR(5, 3050, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CMOU", 0, 1, 2, i); __PYX_ERR(5, 3050, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3050, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3050, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3052, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MOM_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MOM_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MOM_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MOM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3050, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MOM_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3052, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_618stream_CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MOM_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10MOM_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_MOM_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MOM_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10MOM_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_CMOU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CMOU", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10MOM_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10MOM_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MOM_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MOM_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MOM_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MOM_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MOM_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MOM_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10MOM_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10MOM_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MOM_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10MOM_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MOM_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MOM_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MOM_Stream(real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MOM_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MOM_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MOM_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MOM_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MOM_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MOM_Stream_spec = { + "talib._ta_lib.MOM_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MOM_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_MOM_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MOM_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MOM_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MOM_Stream(real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MOM_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MOM_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MOM_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MOM_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MOM_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_MULT_Stream __pyx_vtable_5talib_7_ta_lib_MULT_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_MULT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_MULT_Stream; + return o; +} - __pyx_v_retCode = TA_CMOU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_MULT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_MULT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_MULT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_MULT_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3077, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_MULT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_MULT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CMOU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_MULT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11MULT_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_MULT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_MULT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11MULT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11MULT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11MULT_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_MULT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MULT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MULT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MULT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MULT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MULT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11MULT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11MULT_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_MULT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11MULT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_MULT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_MULT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("MULT_Stream(real0, real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_MULT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_MULT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_MULT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_MULT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_MULT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_MULT_Stream_spec = { + "talib._ta_lib.MULT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_MULT_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_MULT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""MULT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_MULT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("MULT_Stream(real0, real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_MULT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_MULT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_MULT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_MULT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_MULT_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_NATR_Stream __pyx_vtable_5talib_7_ta_lib_NATR_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_NATR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_NATR_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_COPPOCK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_NATR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_620stream_COPPOCK, "stream_COPPOCK(ndarray real, int wmaperiod=-0x80000000, int roc1period=-0x80000000, int roc2period=-0x80000000)\n\nCOPPOCK(real[, wmaperiod=?, roc1period=?, roc2period=?])\n\nCoppock Curve (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n wmaperiod: 10\n roc1period: 11\n roc2period: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_621stream_COPPOCK = {"stream_COPPOCK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_621stream_COPPOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_620stream_COPPOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_COPPOCK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_wmaperiod; - int __pyx_v_roc1period; - int __pyx_v_roc2period; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_COPPOCK (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3079, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3079, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3079, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3079, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3079, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COPPOCK", 0) < (0)) __PYX_ERR(5, 3079, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COPPOCK", 0, 1, 4, i); __PYX_ERR(5, 3079, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3079, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3079, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3079, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3079, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3081, __pyx_L3_error) - } else { - __pyx_v_wmaperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3081, __pyx_L3_error) - } else { - __pyx_v_roc1period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3081, __pyx_L3_error) - } else { - __pyx_v_roc2period = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 3079, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3081, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_620stream_COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_NATR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_NATR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_NATR_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_NATR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_NATR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_NATR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11NATR_Stream_3__init__, o, args, kwds); +} +#endif - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static void __pyx_tp_dealloc_5talib_7_ta_lib_NATR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_NATR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11NATR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_COPPOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_wmaperiod, int __pyx_v_roc1period, int __pyx_v_roc2period) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_COPPOCK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11NATR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11NATR_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_NATR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11NATR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11NATR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11NATR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11NATR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11NATR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11NATR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11NATR_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_NATR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11NATR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_NATR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_NATR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("NATR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_NATR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_NATR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_NATR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_NATR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_NATR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_NATR_Stream_spec = { + "talib._ta_lib.NATR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_NATR_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_NATR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""NATR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_NATR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("NATR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_NATR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_NATR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_NATR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_NATR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_NATR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_NVI_Stream __pyx_vtable_5talib_7_ta_lib_NVI_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_NVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_NVI_Stream; + return o; +} - __pyx_v_retCode = TA_COPPOCK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_NVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_NVI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_NVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_NVI_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_NVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_NVI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_COPPOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_NVI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10NVI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_NVI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_NVI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10NVI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10NVI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10NVI_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_NVI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10NVI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10NVI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10NVI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10NVI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10NVI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10NVI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10NVI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_NVI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10NVI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_NVI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_NVI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("NVI_Stream(close, volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_NVI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_NVI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_NVI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_NVI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_NVI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_NVI_Stream_spec = { + "talib._ta_lib.NVI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_NVI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_NVI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""NVI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_NVI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("NVI_Stream(close, volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_NVI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_NVI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_NVI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_NVI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_NVI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_OBV_Stream __pyx_vtable_5talib_7_ta_lib_OBV_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_OBV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_OBV_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_CORREL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_OBV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_622stream_CORREL, "stream_CORREL(ndarray real0, ndarray real1, int timeperiod=-0x80000000)\n\nCORREL(real0, real1[, timeperiod=?])\n\nPearson\047s Correlation Coefficient (r) (Statistic Functions)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_623stream_CORREL = {"stream_CORREL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_623stream_CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_622stream_CORREL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_CORREL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CORREL (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3110, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3110, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3110, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3110, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CORREL", 0) < (0)) __PYX_ERR(5, 3110, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, i); __PYX_ERR(5, 3110, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3110, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3110, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3110, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3112, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_OBV_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_OBV_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_OBV_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_OBV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3110, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_OBV_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3112, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3112, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_622stream_CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_OBV_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10OBV_Stream_3__init__, o, args, kwds); +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +static void __pyx_tp_dealloc_5talib_7_ta_lib_OBV_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_OBV_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10OBV_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CORREL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10OBV_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10OBV_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3133, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_OBV_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10OBV_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10OBV_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10OBV_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10OBV_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10OBV_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10OBV_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10OBV_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_OBV_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10OBV_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_OBV_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_OBV_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("OBV_Stream(real, volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_OBV_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_OBV_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_OBV_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_OBV_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_OBV_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_OBV_Stream_spec = { + "talib._ta_lib.OBV_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_OBV_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_OBV_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""OBV_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_OBV_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("OBV_Stream(real, volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_OBV_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_OBV_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_OBV_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_OBV_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_OBV_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTILE_Stream __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream; - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3137, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTILE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_CORREL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3141, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTILE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTILE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_17PERCENTILE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PERCENTILE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17PERCENTILE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17PERCENTILE_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PERCENTILE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17PERCENTILE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PERCENTILE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PERCENTILE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PERCENTILE_Stream(real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PERCENTILE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PERCENTILE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PERCENTILE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PERCENTILE_Stream_spec = { + "talib._ta_lib.PERCENTILE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PERCENTILE_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_PERCENTILE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PERCENTILE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTILE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PERCENTILE_Stream(real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PERCENTILE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PERCENTILE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PERCENTILE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTILE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PERCENTRANK_Stream __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTRANK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PERCENTRANK_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PERCENTRANK_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTRANK_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTRANK_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_18PERCENTRANK_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PERCENTRANK_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_18PERCENTRANK_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_COS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_624stream_COS, "stream_COS(ndarray real)\n\nCOS(real)\n\nVector Trigonometric Cos (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_625stream_COS = {"stream_COS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_625stream_COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_624stream_COS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_COS(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PERCENTRANK_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_18PERCENTRANK_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PERCENTRANK_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PERCENTRANK_Stream(real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PERCENTRANK_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PERCENTRANK_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PERCENTRANK_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream_spec = { + "talib._ta_lib.PERCENTRANK_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PERCENTRANK_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PERCENTRANK_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PERCENTRANK_Stream(real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PERCENTRANK_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PERCENTRANK_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PERCENTRANK_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_COS (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PERCENTRANK_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3143, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3143, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COS", 0) < (0)) __PYX_ERR(5, 3143, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, i); __PYX_ERR(5, 3143, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3143, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PLUS_DI_Stream __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PLUS_DI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PLUS_DI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3143, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_COS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3145, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_624stream_COS(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PLUS_DI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_COS", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_14PLUS_DI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PLUS_DI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PLUS_DI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14PLUS_DI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PLUS_DI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PLUS_DI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PLUS_DI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PLUS_DI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PLUS_DI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PLUS_DI_Stream_spec = { + "talib._ta_lib.PLUS_DI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PLUS_DI_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_PLUS_DI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PLUS_DI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PLUS_DI_Stream(high, low, close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PLUS_DI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PLUS_DI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PLUS_DI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PLUS_DM_Stream __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PLUS_DM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream; + return o; +} - __pyx_v_retCode = TA_COS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PLUS_DM_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3168, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_COS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PLUS_DM_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DM_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DM_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_14PLUS_DM_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PLUS_DM_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14PLUS_DM_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14PLUS_DM_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PLUS_DM_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14PLUS_DM_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PLUS_DM_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DM_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PLUS_DM_Stream(high, low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PLUS_DM_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PLUS_DM_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PLUS_DM_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PLUS_DM_Stream_spec = { + "talib._ta_lib.PLUS_DM_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PLUS_DM_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_PLUS_DM_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PLUS_DM_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PLUS_DM_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PLUS_DM_Stream(high, low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PLUS_DM_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PLUS_DM_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PLUS_DM_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PLUS_DM_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PPO_Stream __pyx_vtable_5talib_7_ta_lib_PPO_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PPO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PPO_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_COSH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PPO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_626stream_COSH, "stream_COSH(ndarray real)\n\nCOSH(real)\n\nVector Trigonometric Cosh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_627stream_COSH = {"stream_COSH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_627stream_COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_626stream_COSH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_COSH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_COSH (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3170, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3170, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_COSH", 0) < (0)) __PYX_ERR(5, 3170, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, i); __PYX_ERR(5, 3170, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3170, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PPO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PPO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PPO_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PPO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3170, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PPO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3172, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_626stream_COSH(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PPO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10PPO_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_PPO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PPO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10PPO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_COSH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10PPO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10PPO_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PPO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PPO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PPO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PPO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PPO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PPO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PPO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PPO_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PPO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10PPO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PPO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PPO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PPO_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PPO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PPO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PPO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PPO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PPO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PPO_Stream_spec = { + "talib._ta_lib.PPO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PPO_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_PPO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PPO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PPO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PPO_Stream(real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PPO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PPO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PPO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PPO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PPO_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PVI_Stream __pyx_vtable_5talib_7_ta_lib_PVI_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PVI_Stream; + return o; +} - __pyx_v_retCode = TA_COSH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PVI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3194, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVI_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PVI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PVI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10PVI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_PVI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PVI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10PVI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10PVI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10PVI_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PVI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PVI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10PVI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PVI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PVI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PVI_Stream(close, volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PVI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PVI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PVI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PVI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PVI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PVI_Stream_spec = { + "talib._ta_lib.PVI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PVI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_PVI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PVI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PVI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PVI_Stream(close, volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PVI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PVI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PVI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PVI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PVI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PVO_Stream __pyx_vtable_5talib_7_ta_lib_PVO_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVO_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PVO_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_CUMSUM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVO_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_628stream_CUMSUM, "stream_CUMSUM(ndarray real)\n\nCUMSUM(real)\n\nCumulative Sum (Math Operators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_629stream_CUMSUM = {"stream_CUMSUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_629stream_CUMSUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_628stream_CUMSUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_CUMSUM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CUMSUM (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3197, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3197, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CUMSUM", 0) < (0)) __PYX_ERR(5, 3197, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CUMSUM", 1, 1, 1, i); __PYX_ERR(5, 3197, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3197, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PVO_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PVO_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVO_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PVO_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3197, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PVO_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3199, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_628stream_CUMSUM(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PVO_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10PVO_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_PVO_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PVO_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10PVO_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_CUMSUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CUMSUM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10PVO_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10PVO_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PVO_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVO_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVO_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVO_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVO_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVO_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVO_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVO_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PVO_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10PVO_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PVO_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PVO_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PVO_Stream(volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PVO_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PVO_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PVO_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PVO_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PVO_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PVO_Stream_spec = { + "talib._ta_lib.PVO_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PVO_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_PVO_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PVO_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PVO_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PVO_Stream(volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PVO_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PVO_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PVO_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PVO_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PVO_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_PVT_Stream __pyx_vtable_5talib_7_ta_lib_PVT_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_PVT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_PVT_Stream; + return o; +} - __pyx_v_retCode = TA_CUMSUM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_PVT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_PVT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_PVT_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_PVT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_PVT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CUMSUM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_PVT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10PVT_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_PVT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_PVT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10PVT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10PVT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10PVT_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_PVT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10PVT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10PVT_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_PVT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10PVT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_PVT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_PVT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("PVT_Stream(close, volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_PVT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_PVT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_PVT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_PVT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_PVT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_PVT_Stream_spec = { + "talib._ta_lib.PVT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_PVT_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_PVT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""PVT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_PVT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("PVT_Stream(close, volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_PVT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_PVT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_PVT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_PVT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_PVT_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_QSTICK_Stream __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_QSTICK_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_CVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_QSTICK_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_630stream_CVI, "stream_CVI(ndarray high, ndarray low, int timeperiod=-0x80000000, int rocperiod=-0x80000000)\n\nCVI(high, low[, timeperiod=?, rocperiod=?])\n\nChaikin\047s Volatility (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 10\n rocperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_631stream_CVI = {"stream_CVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_631stream_CVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_630stream_CVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_CVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - int __pyx_v_rocperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_QSTICK_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_QSTICK_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_QSTICK_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_QSTICK_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_QSTICK_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_QSTICK_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_QSTICK_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_CVI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} + +static PyObject *__pyx_getprop_5talib_7_ta_lib_13QSTICK_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_QSTICK_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13QSTICK_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13QSTICK_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_QSTICK_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13QSTICK_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_QSTICK_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_QSTICK_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("QSTICK_Stream(open, close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_QSTICK_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_QSTICK_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_QSTICK_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_QSTICK_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_QSTICK_Stream_spec = { + "talib._ta_lib.QSTICK_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_QSTICK_Stream_slots, +}; +#else + +static PyTypeObject __pyx_type_5talib_7_ta_lib_QSTICK_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""QSTICK_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_QSTICK_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("QSTICK_Stream(open, close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_QSTICK_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_QSTICK_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_QSTICK_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_finalize*/ #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_QSTICK_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3224, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_CVI", 0) < (0)) __PYX_ERR(5, 3224, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_CVI", 0, 2, 4, i); __PYX_ERR(5, 3224, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3224, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3224, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3224, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3226, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3226, __pyx_L3_error) - } else { - __pyx_v_rocperiod = ((int)((int)-2147483648)); - } + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_RMA_Stream __pyx_vtable_5talib_7_ta_lib_RMA_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_RMA_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_RMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_RMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3224, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_RMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3226, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3226, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_630stream_CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10RMA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_RMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_RMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10RMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_CVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod, int __pyx_v_rocperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10RMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10RMA_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_RMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_RMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10RMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_RMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_RMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("RMA_Stream(real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder\047s Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_RMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_RMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_RMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_RMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_RMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_RMA_Stream_spec = { + "talib._ta_lib.RMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_RMA_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3251, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_RMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""RMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_RMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("RMA_Stream(real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder\047s Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_RMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_RMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_RMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_RMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_RMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROC_Stream __pyx_vtable_5talib_7_ta_lib_ROC_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ROC_Stream; + return o; +} - __pyx_v_retCode = TA_CVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ROC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROC_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CVI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10ROC_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_ROC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ROC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10ROC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10ROC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10ROC_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ROC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ROC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ROC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ROC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ROC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ROC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10ROC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10ROC_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ROC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10ROC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ROC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ROC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ROC_Stream(real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ROC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ROC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ROC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ROC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ROC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ROC_Stream_spec = { + "talib._ta_lib.ROC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ROC_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_ROC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ROC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ROC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ROC_Stream(real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ROC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ROC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ROC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ROC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ROC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROCP_Stream __pyx_vtable_5talib_7_ta_lib_ROCP_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROCP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_DEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_632stream_DEMA, "stream_DEMA(ndarray real, int timeperiod=-0x80000000)\n\nDEMA(real[, timeperiod=?])\n\nDouble Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_633stream_DEMA = {"stream_DEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_633stream_DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_632stream_DEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_DEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DEMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3257, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DEMA", 0) < (0)) __PYX_ERR(5, 3257, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, i); __PYX_ERR(5, 3257, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3257, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3259, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ROCP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCP_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROCP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3257, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3259, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_632stream_DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROCP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_ROCP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ROCP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_DEMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11ROCP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ROCP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCP_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ROCP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11ROCP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ROCP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ROCP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ROCP_Stream(real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ROCP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ROCP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ROCP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ROCP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ROCP_Stream_spec = { + "talib._ta_lib.ROCP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ROCP_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_ROCP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ROCP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ROCP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ROCP_Stream(real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ROCP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ROCP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ROCP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ROCP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ROCP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROCR_Stream __pyx_vtable_5talib_7_ta_lib_ROCR_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROCR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream; + return o; +} - __pyx_v_retCode = TA_DEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ROCR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROCR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROCR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_ROCR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ROCR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11ROCR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ROCR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11ROCR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11ROCR_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ROCR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11ROCR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ROCR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ROCR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ROCR_Stream(real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ROCR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ROCR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ROCR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ROCR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ROCR_Stream_spec = { + "talib._ta_lib.ROCR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ROCR_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_ROCR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ROCR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ROCR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ROCR_Stream(real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ROCR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ROCR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ROCR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ROCR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ROCR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ROCR100_Stream __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ROCR100_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_DIV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR100_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_634stream_DIV, "stream_DIV(ndarray real0, ndarray real1)\n\nDIV(real0, real1)\n\nVector Arithmetic Div (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_635stream_DIV = {"stream_DIV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_635stream_DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_634stream_DIV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_DIV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DIV (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3286, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3286, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3286, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DIV", 0) < (0)) __PYX_ERR(5, 3286, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, i); __PYX_ERR(5, 3286, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3286, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3286, __pyx_L3_error) - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3286, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3288, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3288, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_634stream_DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ROCR100_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR100_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ROCR100_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ROCR100_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_DIV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ROCR100_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_ROCR100_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ROCR100_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_14ROCR100_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ROCR100_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_14ROCR100_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_14ROCR100_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ROCR100_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_14ROCR100_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ROCR100_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ROCR100_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ROCR100_Stream(real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ROCR100_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ROCR100_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ROCR100_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ROCR100_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ROCR100_Stream_spec = { + "talib._ta_lib.ROCR100_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ROCR100_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3311, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_ROCR100_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ROCR100_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ROCR100_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ROCR100_Stream(real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ROCR100_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ROCR100_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ROCR100_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ROCR100_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_RSI_Stream __pyx_vtable_5talib_7_ta_lib_RSI_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_RSI_Stream; + return o; +} - __pyx_v_retCode = TA_DIV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_RSI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_RSI_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_RSI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RSI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10RSI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_RSI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_RSI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10RSI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10RSI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10RSI_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_RSI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RSI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RSI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RSI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RSI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RSI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RSI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RSI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_RSI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10RSI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_RSI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_RSI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("RSI_Stream(real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_RSI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_RSI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_RSI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_RSI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_RSI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_RSI_Stream_spec = { + "talib._ta_lib.RSI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_RSI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_RSI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""RSI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_RSI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("RSI_Stream(real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_RSI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_RSI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_RSI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_RSI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_RSI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_RVI_Stream __pyx_vtable_5talib_7_ta_lib_RVI_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_RVI_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_DONCHIAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_636stream_DONCHIAN, "stream_DONCHIAN(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nDONCHIAN(high, low[, timeperiod=?])\n\nDonchian Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 20\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_637stream_DONCHIAN = {"stream_DONCHIAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_637stream_DONCHIAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_636stream_DONCHIAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_DONCHIAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DONCHIAN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3317, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DONCHIAN", 0) < (0)) __PYX_ERR(5, 3317, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DONCHIAN", 0, 2, 3, i); __PYX_ERR(5, 3317, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3317, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3317, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3317, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3319, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3317, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3319, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3319, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_636stream_DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_RVI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RVI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RVI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_RVI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_DONCHIAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outrealupperband; - double __pyx_v_outrealmiddleband; - double __pyx_v_outreallowerband; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_DONCHIAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RVI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10RVI_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3343, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_RVI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_RVI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10RVI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10RVI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10RVI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_RVI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RVI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RVI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RVI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RVI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RVI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10RVI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10RVI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_RVI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10RVI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_RVI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_RVI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("RVI_Stream(real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_RVI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_RVI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_RVI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_RVI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_RVI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_RVI_Stream_spec = { + "talib._ta_lib.RVI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_RVI_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3347, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_RVI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""RVI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_RVI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("RVI_Stream(real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_RVI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_RVI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_RVI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_RVI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_RVI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_RVOL_Stream __pyx_vtable_5talib_7_ta_lib_RVOL_Stream; - __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_RVOL_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream; + return o; +} - __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVOL_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_RVOL_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_RVOL_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_DONCHIAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_RVOL_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_RVOL_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_RVOL_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3353, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3353, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 3353, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; +static void __pyx_tp_dealloc_5talib_7_ta_lib_RVOL_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_RVOL_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_5 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11RVOL_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.stream_DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_RVOL_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVOL_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVOL_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11RVOL_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11RVOL_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_RVOL_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11RVOL_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_RVOL_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_RVOL_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("RVOL_Stream(volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_RVOL_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_RVOL_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_RVOL_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_RVOL_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_RVOL_Stream_spec = { + "talib._ta_lib.RVOL_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_RVOL_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_RVOL_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""RVOL_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_RVOL_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("RVOL_Stream(volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_RVOL_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_RVOL_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_RVOL_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_RVOL_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_RVOL_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SAR_Stream __pyx_vtable_5talib_7_ta_lib_SAR_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SAR_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SAR_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10SAR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_SAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10SAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10SAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10SAR_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SAR_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_DPO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_638stream_DPO, "stream_DPO(ndarray real, int timeperiod=-0x80000000)\n\nDPO(real[, timeperiod=?])\n\nDetrended Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_639stream_DPO = {"stream_DPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_639stream_DPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_638stream_DPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_DPO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10SAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SAR_Stream(high, low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SAR_Stream_spec = { + "talib._ta_lib.SAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SAR_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SAR_Stream(high, low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DPO (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SAR_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3355, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3355, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3355, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DPO", 0) < (0)) __PYX_ERR(5, 3355, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DPO", 0, 1, 2, i); __PYX_ERR(5, 3355, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3355, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3355, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3357, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3355, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3357, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_638stream_DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SAREXT_Stream __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SAREXT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SAREXT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SAREXT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SAREXT_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SAREXT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SAREXT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; + return o; +} +#endif - __Pyx_RefNannyFinishContext(); - return __pyx_r; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SAREXT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_3__init__, o, args, kwds); } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_DPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_DPO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static void __pyx_tp_dealloc_5talib_7_ta_lib_SAREXT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SAREXT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_13SAREXT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5value_1__get__(o); +} + +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SAREXT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13SAREXT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13SAREXT_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SAREXT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13SAREXT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SAREXT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SAREXT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SAREXT_Stream(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SAREXT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SAREXT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SAREXT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SAREXT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SAREXT_Stream_spec = { + "talib._ta_lib.SAREXT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SAREXT_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_SAREXT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SAREXT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SAREXT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SAREXT_Stream(high, low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SAREXT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SAREXT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SAREXT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SAREXT_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SIN_Stream __pyx_vtable_5talib_7_ta_lib_SIN_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SIN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SIN_Stream; + return o; +} - __pyx_v_retCode = TA_DPO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SIN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SIN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SIN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SIN_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SIN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SIN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_DPO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SIN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10SIN_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_SIN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SIN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10SIN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10SIN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10SIN_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SIN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SIN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SIN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SIN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SIN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SIN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SIN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SIN_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SIN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10SIN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SIN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SIN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SIN_Stream(real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SIN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SIN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SIN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SIN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SIN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SIN_Stream_spec = { + "talib._ta_lib.SIN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SIN_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_SIN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SIN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SIN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SIN_Stream(real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SIN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SIN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SIN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SIN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SIN_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SINH_Stream __pyx_vtable_5talib_7_ta_lib_SINH_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SINH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SINH_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_DX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SINH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_640stream_DX, "stream_DX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nDX(high, low, close[, timeperiod=?])\n\nDirectional Movement Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_641stream_DX = {"stream_DX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_641stream_DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_640stream_DX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_DX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_DX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3384, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_DX", 0) < (0)) __PYX_ERR(5, 3384, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, i); __PYX_ERR(5, 3384, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3384, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3384, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3384, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3384, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3386, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3384, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3386, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3386, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3386, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_640stream_DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SINH_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SINH_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SINH_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SINH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SINH_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_DX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_DX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SINH_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11SINH_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_SINH_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SINH_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11SINH_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11SINH_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11SINH_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SINH_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SINH_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SINH_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SINH_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SINH_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SINH_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SINH_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SINH_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SINH_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11SINH_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SINH_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SINH_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SINH_Stream(real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SINH_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SINH_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SINH_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SINH_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SINH_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SINH_Stream_spec = { + "talib._ta_lib.SINH_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SINH_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_SINH_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SINH_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SINH_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SINH_Stream(real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SINH_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SINH_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SINH_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SINH_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SINH_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SMA_Stream __pyx_vtable_5talib_7_ta_lib_SMA_Stream; - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SMA_Stream; + return o; +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3413, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SMA_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_DX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3416, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10SMA_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static void __pyx_tp_dealloc_5talib_7_ta_lib_SMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10SMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10SMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10SMA_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMA_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10SMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SMA_Stream(real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SMA_Stream_spec = { + "talib._ta_lib.SMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SMA_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_SMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SMA_Stream(real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SMI_Stream __pyx_vtable_5talib_7_ta_lib_SMI_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SMI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SMI_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SMI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SMI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SMI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SMI_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SMI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SMI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SMI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10SMI_Stream_3__init__, o, args, kwds); +} +#endif - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static void __pyx_tp_dealloc_5talib_7_ta_lib_SMI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SMI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10SMI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } +static PyObject *__pyx_getprop_5talib_7_ta_lib_10SMI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10SMI_Stream_5value_1__get__(o); +} -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_EFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_642stream_EFI, "stream_EFI(ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nEFI(close, volume[, timeperiod=?])\n\nElder\047s Force Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nParameters:\n timeperiod: 13\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_643stream_EFI = {"stream_EFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_643stream_EFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_642stream_EFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_EFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SMI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SMI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SMI_Stream_10copy}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SMI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10SMI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SMI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SMI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SMI_Stream(high, low, close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SMI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SMI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SMI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SMI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SMI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SMI_Stream_spec = { + "talib._ta_lib.SMI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SMI_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_SMI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SMI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SMI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SMI_Stream(high, low, close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SMI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SMI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SMI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SMI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_EFI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SMI_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3419, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3419, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3419, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3419, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EFI", 0) < (0)) __PYX_ERR(5, 3419, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EFI", 0, 2, 3, i); __PYX_ERR(5, 3419, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3419, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3419, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3419, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3421, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3419, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3421, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 3421, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_642stream_EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SQRT_Stream __pyx_vtable_5talib_7_ta_lib_SQRT_Stream; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SQRT_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SQRT_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SQRT_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SQRT_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SQRT_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SQRT_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_EFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_EFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SQRT_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3441, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_SQRT_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SQRT_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11SQRT_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3443, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SQRT_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SQRT_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SQRT_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11SQRT_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11SQRT_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SQRT_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11SQRT_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SQRT_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SQRT_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SQRT_Stream(real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SQRT_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SQRT_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SQRT_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SQRT_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SQRT_Stream_spec = { + "talib._ta_lib.SQRT_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SQRT_Stream_slots, +}; +#else - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3445, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyTypeObject __pyx_type_5talib_7_ta_lib_SQRT_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SQRT_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SQRT_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SQRT_Stream(real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SQRT_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SQRT_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SQRT_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SQRT_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SQRT_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_STDDEV_Stream __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STDDEV_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream; + return o; +} - __pyx_v_retCode = TA_EFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STDDEV_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_STDDEV_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3448, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_STDDEV_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STDDEV_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_STDDEV_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_EFI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STDDEV_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_STDDEV_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_STDDEV_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_13STDDEV_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_STDDEV_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STDDEV_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STDDEV_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_STDDEV_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13STDDEV_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_STDDEV_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_STDDEV_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("STDDEV_Stream(real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_STDDEV_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_STDDEV_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_STDDEV_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_STDDEV_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_STDDEV_Stream_spec = { + "talib._ta_lib.STDDEV_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_STDDEV_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_STDDEV_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""STDDEV_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_STDDEV_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("STDDEV_Stream(real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_STDDEV_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_STDDEV_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_STDDEV_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_STDDEV_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_STOCH_Stream __pyx_vtable_5talib_7_ta_lib_STOCH_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STOCH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_EMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_644stream_EMA, "stream_EMA(ndarray real, int timeperiod=-0x80000000)\n\nEMA(real[, timeperiod=?])\n\nExponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_645stream_EMA = {"stream_EMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_645stream_EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_644stream_EMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_EMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_EMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3451, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3451, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3451, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EMA", 0) < (0)) __PYX_ERR(5, 3451, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, i); __PYX_ERR(5, 3451, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3451, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3451, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3453, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_STOCH_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCH_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STOCH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3451, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCH_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3453, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_644stream_EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STOCH_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_STOCH_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_STOCH_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_EMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_12STOCH_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_STOCH_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12STOCH_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12STOCH_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12STOCH_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12STOCH_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_STOCH_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12STOCH_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_STOCH_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_STOCH_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("STOCH_Stream(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_STOCH_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_STOCH_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_STOCH_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_STOCH_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_STOCH_Stream_spec = { + "talib._ta_lib.STOCH_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_STOCH_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_STOCH_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""STOCH_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_STOCH_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("STOCH_Stream(high, low, close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_STOCH_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_STOCH_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_STOCH_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_STOCH_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_STOCH_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_STOCHF_Stream __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STOCHF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream; + return o; +} - __pyx_v_retCode = TA_EMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_STOCHF_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHF_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STOCHF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHF_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STOCHF_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_STOCHF_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_STOCHF_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_13STOCHF_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_STOCHF_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13STOCHF_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13STOCHF_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_STOCHF_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13STOCHF_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_STOCHF_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_STOCHF_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("STOCHF_Stream(high, low, close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_STOCHF_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_STOCHF_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_STOCHF_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_STOCHF_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_STOCHF_Stream_spec = { + "talib._ta_lib.STOCHF_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_STOCHF_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_STOCHF_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""STOCHF_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_STOCHF_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("STOCHF_Stream(high, low, close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_STOCHF_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_STOCHF_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_STOCHF_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_STOCHF_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_STOCHRSI_Stream __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_STOCHRSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_ER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_646stream_ER, "stream_ER(ndarray real, int timeperiod=-0x80000000)\n\nER(real[, timeperiod=?])\n\nKaufman Efficiency Ratio (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_647stream_ER = {"stream_ER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_647stream_ER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_646stream_ER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_ER(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ER (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3480, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3480, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3480, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ER", 0) < (0)) __PYX_ERR(5, 3480, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ER", 0, 1, 2, i); __PYX_ERR(5, 3480, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3480, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3480, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3482, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_STOCHRSI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3480, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_ER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3482, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_646stream_ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_STOCHRSI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_STOCHRSI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_STOCHRSI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_ER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ER", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15STOCHRSI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_STOCHRSI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15STOCHRSI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15STOCHRSI_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_STOCHRSI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15STOCHRSI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_STOCHRSI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_STOCHRSI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("STOCHRSI_Stream(real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_STOCHRSI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_STOCHRSI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_STOCHRSI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_STOCHRSI_Stream_spec = { + "talib._ta_lib.STOCHRSI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_STOCHRSI_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_STOCHRSI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""STOCHRSI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_STOCHRSI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("STOCHRSI_Stream(real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_STOCHRSI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_STOCHRSI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_STOCHRSI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_STOCHRSI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SUB_Stream __pyx_vtable_5talib_7_ta_lib_SUB_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SUB_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SUB_Stream; + return o; +} - __pyx_v_retCode = TA_ER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUB_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SUB_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3506, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SUB_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUB_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SUB_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SUB_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SUB_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10SUB_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_SUB_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SUB_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10SUB_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10SUB_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10SUB_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SUB_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUB_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUB_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUB_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUB_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUB_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUB_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUB_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SUB_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10SUB_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SUB_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SUB_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SUB_Stream(real0, real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SUB_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SUB_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SUB_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SUB_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SUB_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SUB_Stream_spec = { + "talib._ta_lib.SUB_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SUB_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_SUB_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SUB_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SUB_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SUB_Stream(real0, real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SUB_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SUB_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SUB_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SUB_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SUB_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SUM_Stream __pyx_vtable_5talib_7_ta_lib_SUM_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SUM_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SUM_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_ERI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUM_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_648stream_ERI, "stream_ERI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nERI(high, low, close[, timeperiod=?])\n\nElder Ray Index (Bull Power / Bear Power) (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\nOutputs:\n bullpower\n bearpower"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_649stream_ERI = {"stream_ERI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_649stream_ERI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_648stream_ERI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_ERI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ERI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3509, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3509, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3509, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3509, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3509, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ERI", 0) < (0)) __PYX_ERR(5, 3509, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ERI", 0, 3, 4, i); __PYX_ERR(5, 3509, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3509, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3509, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3509, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3509, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3511, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3509, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3511, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3511, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3511, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_648stream_ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SUM_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SUM_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUM_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SUM_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SUM_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_ERI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outbullpower; - double __pyx_v_outbearpower; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ERI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SUM_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10SUM_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_SUM_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SUM_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10SUM_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10SUM_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10SUM_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SUM_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUM_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUM_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUM_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUM_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUM_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10SUM_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10SUM_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3538, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SUM_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10SUM_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SUM_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SUM_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SUM_Stream(real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SUM_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SUM_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SUM_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SUM_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SUM_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SUM_Stream_spec = { + "talib._ta_lib.SUM_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SUM_Stream_slots, +}; +#else - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_SUM_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SUM_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SUM_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SUM_Stream(real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SUM_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SUM_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SUM_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SUM_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SUM_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_SUPERTREND_Stream __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3540, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream; + return o; +} - __pyx_v_outbullpower = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_SUPERTREND_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_v_outbearpower = __pyx_v_5talib_7_ta_lib_NaN; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream, t, a, k); +} +#endif - __pyx_v_retCode = TA_ERI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outbullpower), (&__pyx_v_outbearpower)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3545, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3545, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; +static void __pyx_tp_dealloc_5talib_7_ta_lib_SUPERTREND_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_SUPERTREND_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; - goto __pyx_L0; + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_17SUPERTREND_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(o); +} - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_SUPERTREND_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_17SUPERTREND_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SUPERTREND_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_17SUPERTREND_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_SUPERTREND_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SUPERTREND_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("SUPERTREND_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SUPERTREND_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SUPERTREND_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_SUPERTREND_Stream_spec = { + "talib._ta_lib.SUPERTREND_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_SUPERTREND_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_SUPERTREND_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""SUPERTREND_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_SUPERTREND_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("SUPERTREND_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_SUPERTREND_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_SUPERTREND_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_SUPERTREND_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_T3_Stream __pyx_vtable_5talib_7_ta_lib_T3_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_T3_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_T3_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_T3_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_T3_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_T3_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_T3_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_T3_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_T3_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_T3_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_T3_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_9T3_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_T3_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_T3_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_9T3_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_9T3_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_9T3_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_T3_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9T3_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9T3_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9T3_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9T3_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9T3_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_9T3_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_9T3_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_EXP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_650stream_EXP, "stream_EXP(ndarray real)\n\nEXP(real)\n\nVector Arithmetic Exp (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_651stream_EXP = {"stream_EXP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_651stream_EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_650stream_EXP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_EXP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_T3_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_9T3_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_T3_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_T3_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("T3_Stream(real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_T3_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_T3_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_T3_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_T3_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_T3_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_T3_Stream_spec = { + "talib._ta_lib.T3_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_T3_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_T3_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_T3_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""T3_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_T3_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_T3_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("T3_Stream(real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_T3_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_T3_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_T3_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_T3_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_EXP (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_T3_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3547, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3547, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_EXP", 0) < (0)) __PYX_ERR(5, 3547, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, i); __PYX_ERR(5, 3547, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3547, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TAN_Stream __pyx_vtable_5talib_7_ta_lib_TAN_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TAN_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TAN_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TAN_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TAN_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TAN_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TAN_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TAN_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3547, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TAN_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3549, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_650stream_EXP(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TAN_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10TAN_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_TAN_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TAN_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10TAN_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_EXP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_10TAN_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10TAN_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TAN_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TAN_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TAN_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TAN_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TAN_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TAN_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TAN_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TAN_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TAN_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10TAN_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TAN_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TAN_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TAN_Stream(real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TAN_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TAN_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TAN_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TAN_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TAN_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TAN_Stream_spec = { + "talib._ta_lib.TAN_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TAN_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_TAN_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TAN_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TAN_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TAN_Stream(real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TAN_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TAN_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TAN_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TAN_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TAN_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TANH_Stream __pyx_vtable_5talib_7_ta_lib_TANH_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TANH_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TANH_Stream; + return o; +} - __pyx_v_retCode = TA_EXP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TANH_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TANH_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3571, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TANH_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TANH_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TANH_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TANH_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TANH_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11TANH_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_TANH_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TANH_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11TANH_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11TANH_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11TANH_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TANH_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TANH_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TANH_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TANH_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TANH_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TANH_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TANH_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TANH_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TANH_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11TANH_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TANH_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TANH_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TANH_Stream(real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TANH_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TANH_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TANH_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TANH_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TANH_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TANH_Stream_spec = { + "talib._ta_lib.TANH_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TANH_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_TANH_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TANH_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TANH_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TANH_Stream(real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TANH_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TANH_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TANH_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TANH_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TANH_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TEMA_Stream __pyx_vtable_5talib_7_ta_lib_TEMA_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TEMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_FLOOR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TEMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_652stream_FLOOR, "stream_FLOOR(ndarray real)\n\nFLOOR(real)\n\nVector Floor (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_653stream_FLOOR = {"stream_FLOOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_653stream_FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_652stream_FLOOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_FLOOR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_FLOOR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3574, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3574, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_FLOOR", 0) < (0)) __PYX_ERR(5, 3574, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, i); __PYX_ERR(5, 3574, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3574, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TEMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TEMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TEMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3574, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TEMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3576, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_652stream_FLOOR(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TEMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_TEMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TEMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_FLOOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11TEMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TEMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TEMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TEMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TEMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TEMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TEMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11TEMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TEMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TEMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TEMA_Stream(real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TEMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TEMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TEMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TEMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TEMA_Stream_spec = { + "talib._ta_lib.TEMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TEMA_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_TEMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TEMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TEMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TEMA_Stream(real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TEMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TEMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TEMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TEMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TEMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TRANGE_Stream __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TRANGE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream; + return o; +} - __pyx_v_retCode = TA_FLOOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRANGE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TRANGE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRANGE_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TRANGE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TRANGE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TRANGE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_TRANGE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TRANGE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_13TRANGE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TRANGE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13TRANGE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13TRANGE_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TRANGE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13TRANGE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TRANGE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TRANGE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TRANGE_Stream(high, low, close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TRANGE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TRANGE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TRANGE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TRANGE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TRANGE_Stream_spec = { + "talib._ta_lib.TRANGE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TRANGE_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_TRANGE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TRANGE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TRANGE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TRANGE_Stream(high, low, close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TRANGE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TRANGE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TRANGE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TRANGE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TRIMA_Stream __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TRIMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_FOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_654stream_FOSC, "stream_FOSC(ndarray real, int timeperiod=-0x80000000)\n\nFOSC(real[, timeperiod=?])\n\nForecast Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_655stream_FOSC = {"stream_FOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_655stream_FOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_654stream_FOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_FOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_FOSC (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3601, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3601, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3601, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_FOSC", 0) < (0)) __PYX_ERR(5, 3601, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_FOSC", 0, 1, 2, i); __PYX_ERR(5, 3601, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3601, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3601, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3603, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3601, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3603, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_654stream_FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TRIMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TRIMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_FOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_FOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TRIMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3622, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static void __pyx_tp_dealloc_5talib_7_ta_lib_TRIMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TRIMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static PyObject *__pyx_getprop_5talib_7_ta_lib_12TRIMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5value_1__get__(o); +} - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TRIMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12TRIMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12TRIMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TRIMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12TRIMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TRIMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TRIMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TRIMA_Stream(real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TRIMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TRIMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TRIMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TRIMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TRIMA_Stream_spec = { + "talib._ta_lib.TRIMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TRIMA_Stream_slots, +}; +#else - __pyx_v_retCode = TA_FOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyTypeObject __pyx_type_5talib_7_ta_lib_TRIMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TRIMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TRIMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TRIMA_Stream(real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TRIMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TRIMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TRIMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TRIMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TRIX_Stream __pyx_vtable_5talib_7_ta_lib_TRIX_Stream; - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TRIX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream; + return o; +} - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3628, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TRIX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIX_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TRIX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TRIX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_FOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TRIX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_TRIX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TRIX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11TRIX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TRIX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TRIX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TRIX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11TRIX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11TRIX_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TRIX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11TRIX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TRIX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TRIX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TRIX_Stream(real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TRIX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TRIX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TRIX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TRIX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TRIX_Stream_spec = { + "talib._ta_lib.TRIX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TRIX_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_TRIX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TRIX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TRIX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TRIX_Stream(real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TRIX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TRIX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TRIX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TRIX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TRIX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TSF_Stream __pyx_vtable_5talib_7_ta_lib_TSF_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TSF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TSF_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_FRACTAL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TSF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_656stream_FRACTAL, "stream_FRACTAL(ndarray high, ndarray low, int leftbars=-0x80000000, int rightbars=-0x80000000)\n\nFRACTAL(high, low[, leftbars=?, rightbars=?])\n\nWilliams Fractal (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n leftbars: 2\n rightbars: 2\nOutputs:\n swinghigh\n swinglow"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_657stream_FRACTAL = {"stream_FRACTAL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_657stream_FRACTAL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_656stream_FRACTAL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_FRACTAL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_leftbars; - int __pyx_v_rightbars; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_FRACTAL (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3630, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3630, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3630, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3630, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3630, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_FRACTAL", 0) < (0)) __PYX_ERR(5, 3630, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_FRACTAL", 0, 2, 4, i); __PYX_ERR(5, 3630, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3630, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3630, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3630, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3630, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3632, __pyx_L3_error) - } else { - __pyx_v_leftbars = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3632, __pyx_L3_error) - } else { - __pyx_v_rightbars = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3630, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.stream_FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3632, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3632, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_656stream_FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TSF_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TSF_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TSF_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TSF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TSF_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __pyx_L7_cleaned_up:; - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + return o; } +#endif -static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_FRACTAL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_leftbars, int __pyx_v_rightbars) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outswinghigh; - int __pyx_v_outswinglow; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_FRACTAL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TSF_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10TSF_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_TSF_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TSF_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10TSF_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3657, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10TSF_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10TSF_Stream_5value_1__get__(o); +} - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TSF_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSF_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSF_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSF_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSF_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSF_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSF_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSF_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3659, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TSF_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10TSF_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TSF_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TSF_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TSF_Stream(real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TSF_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TSF_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TSF_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TSF_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TSF_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TSF_Stream_spec = { + "talib._ta_lib.TSF_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TSF_Stream_slots, +}; +#else - __pyx_v_outswinghigh = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_TSF_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TSF_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TSF_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TSF_Stream(real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TSF_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TSF_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TSF_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TSF_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TSF_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TSI_Stream __pyx_vtable_5talib_7_ta_lib_TSI_Stream; - __pyx_v_outswinglow = 0; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TSI_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TSI_Stream; + return o; +} - __pyx_v_retCode = TA_FRACTAL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outswinghigh), (&__pyx_v_outswinglow)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TSI_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TSI_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TSI_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TSI_Stream, t, a, k); +} +#endif - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3664, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3664, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TSI_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TSI_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TSI_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10TSI_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_TSI_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TSI_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10TSI_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10TSI_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10TSI_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TSI_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSI_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSI_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSI_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSI_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSI_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10TSI_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10TSI_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TSI_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10TSI_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TSI_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TSI_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TSI_Stream(real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TSI_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TSI_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TSI_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TSI_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TSI_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TSI_Stream_spec = { + "talib._ta_lib.TSI_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TSI_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_TSI_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TSI_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TSI_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TSI_Stream(real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TSI_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TSI_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TSI_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TSI_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TSI_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_TYPPRICE_Stream __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_TYPPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_HA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_658stream_HA, "stream_HA(ndarray open, ndarray high, ndarray low, ndarray close)\n\nHA(open, high, low, close)\n\nHeikin-Ashi Candles (Price Transform)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n haopen\n hahigh\n halow\n haclose"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_659stream_HA = {"stream_HA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_659stream_HA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_658stream_HA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_HA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3666, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3666, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3666, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3666, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3666, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HA", 0) < (0)) __PYX_ERR(5, 3666, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HA", 1, 4, 4, i); __PYX_ERR(5, 3666, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3666, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3666, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3666, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3666, __pyx_L3_error) - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_TYPPRICE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 3666, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_HA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3668, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_658stream_HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_TYPPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_TYPPRICE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_TYPPRICE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_HA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outhaopen; - double __pyx_v_outhahigh; - double __pyx_v_outhalow; - double __pyx_v_outhaclose; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15TYPPRICE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3694, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_TYPPRICE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15TYPPRICE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15TYPPRICE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_TYPPRICE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15TYPPRICE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_TYPPRICE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_TYPPRICE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("TYPPRICE_Stream(high, low, close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_TYPPRICE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_TYPPRICE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_TYPPRICE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_TYPPRICE_Stream_spec = { + "talib._ta_lib.TYPPRICE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_TYPPRICE_Stream_slots, +}; +#else - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyTypeObject __pyx_type_5talib_7_ta_lib_TYPPRICE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""TYPPRICE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_TYPPRICE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("TYPPRICE_Stream(high, low, close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_TYPPRICE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_TYPPRICE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_TYPPRICE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_TYPPRICE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ULTOSC_Stream __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream; - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ULTOSC_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream; + return o; +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ULTOSC_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ULTOSC_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ULTOSC_Stream, t, a, k); +} +#endif - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ULTOSC_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ULTOSC_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3700, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ULTOSC_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_3__init__, o, args, kwds); +} +#endif - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); +static void __pyx_tp_dealloc_5talib_7_ta_lib_ULTOSC_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ULTOSC_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3702, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; +static PyObject *__pyx_getprop_5talib_7_ta_lib_13ULTOSC_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5value_1__get__(o); +} - __pyx_v_outhaopen = __pyx_v_5talib_7_ta_lib_NaN; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ULTOSC_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13ULTOSC_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13ULTOSC_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_outhahigh = __pyx_v_5talib_7_ta_lib_NaN; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ULTOSC_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13ULTOSC_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ULTOSC_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ULTOSC_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ULTOSC_Stream(high, low, close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ULTOSC_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ULTOSC_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ULTOSC_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ULTOSC_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ULTOSC_Stream_spec = { + "talib._ta_lib.ULTOSC_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ULTOSC_Stream_slots, +}; +#else - __pyx_v_outhalow = __pyx_v_5talib_7_ta_lib_NaN; +static PyTypeObject __pyx_type_5talib_7_ta_lib_ULTOSC_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ULTOSC_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ULTOSC_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ULTOSC_Stream(high, low, close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ULTOSC_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ULTOSC_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ULTOSC_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ULTOSC_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_VAR_Stream __pyx_vtable_5talib_7_ta_lib_VAR_Stream; - __pyx_v_outhaclose = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VAR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_VAR_Stream; + return o; +} - __pyx_v_retCode = TA_HA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outhaopen), (&__pyx_v_outhahigh), (&__pyx_v_outhalow), (&__pyx_v_outhaclose)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VAR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_VAR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VAR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_VAR_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3709, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5) != (0)) __PYX_ERR(5, 3709, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VAR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_VAR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.stream_HA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VAR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10VAR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_VAR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_VAR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10VAR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10VAR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10VAR_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_VAR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VAR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VAR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VAR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VAR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VAR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VAR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VAR_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_VAR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10VAR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_VAR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_VAR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("VAR_Stream(real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_VAR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_VAR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_VAR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_VAR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_VAR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_VAR_Stream_spec = { + "talib._ta_lib.VAR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_VAR_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_VAR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""VAR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_VAR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("VAR_Stream(real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_VAR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_VAR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_VAR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_VAR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_VAR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_VHF_Stream __pyx_vtable_5talib_7_ta_lib_VHF_Stream; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VHF_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_VHF_Stream; + return o; +} +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VHF_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_VHF_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VHF_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_VHF_Stream, t, a, k); +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VHF_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_VHF_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } + } + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VHF_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10VHF_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_VHF_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_VHF_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10VHF_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10VHF_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10VHF_Stream_5value_1__get__(o); } +static PyMethodDef __pyx_methods_5talib_7_ta_lib_VHF_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VHF_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VHF_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VHF_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VHF_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VHF_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10VHF_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10VHF_Stream_10copy}, + {0, 0, 0, 0} +}; -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_HMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_660stream_HMA, "stream_HMA(ndarray real, int timeperiod=-0x80000000)\n\nHMA(real[, timeperiod=?])\n\nHull Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_661stream_HMA = {"stream_HMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_661stream_HMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_660stream_HMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_HMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_VHF_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10VHF_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_VHF_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_VHF_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("VHF_Stream(real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_VHF_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_VHF_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_VHF_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_VHF_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_VHF_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_VHF_Stream_spec = { + "talib._ta_lib.VHF_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_VHF_Stream_slots, +}; #else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; + +static PyTypeObject __pyx_type_5talib_7_ta_lib_VHF_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""VHF_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_VHF_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("VHF_Stream(real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_VHF_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_VHF_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_VHF_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_VHF_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_VHF_Stream, /*tp_vectorcall*/ #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + NULL, /*tp_vectorcall*/ #endif #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3711, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3711, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3711, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HMA", 0) < (0)) __PYX_ERR(5, 3711, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HMA", 0, 1, 2, i); __PYX_ERR(5, 3711, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3711, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3711, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3713, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_VORTEX_Stream __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream; + +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VORTEX_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream; + return o; +} + +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VORTEX_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_VORTEX_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_VORTEX_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VORTEX_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3711, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_VORTEX_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3713, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_660stream_HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VORTEX_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_VORTEX_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_VORTEX_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_HMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_13VORTEX_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_VORTEX_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_13VORTEX_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_13VORTEX_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_VORTEX_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_13VORTEX_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_VORTEX_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_VORTEX_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("VORTEX_Stream(high, low, close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_VORTEX_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_VORTEX_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_VORTEX_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_VORTEX_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_VORTEX_Stream_spec = { + "talib._ta_lib.VORTEX_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_VORTEX_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_VORTEX_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""VORTEX_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_VORTEX_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("VORTEX_Stream(high, low, close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_VORTEX_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_VORTEX_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_VORTEX_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_VORTEX_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_VWAP_Stream __pyx_vtable_5talib_7_ta_lib_VWAP_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VWAP_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream; + return o; +} - __pyx_v_retCode = TA_HMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VWAP_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_VWAP_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_VWAP_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3738, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VWAP_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_VWAP_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VWAP_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_VWAP_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_VWAP_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_11VWAP_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_VWAP_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWAP_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWAP_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWAP_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWAP_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_VWAP_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11VWAP_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_VWAP_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_VWAP_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("VWAP_Stream(high, low, close, volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_VWAP_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_VWAP_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_VWAP_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_VWAP_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_VWAP_Stream_spec = { + "talib._ta_lib.VWAP_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_VWAP_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_VWAP_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""VWAP_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_VWAP_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("VWAP_Stream(high, low, close, volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_VWAP_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_VWAP_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_VWAP_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_VWAP_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_VWAP_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_VWMA_Stream __pyx_vtable_5talib_7_ta_lib_VWMA_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_VWMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_HT_DCPERIOD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_VWMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_662stream_HT_DCPERIOD, "stream_HT_DCPERIOD(ndarray real)\n\nHT_DCPERIOD(real)\n\nHilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_663stream_HT_DCPERIOD = {"stream_HT_DCPERIOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_663stream_HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_662stream_HT_DCPERIOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_HT_DCPERIOD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_DCPERIOD (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3740, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3740, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_DCPERIOD", 0) < (0)) __PYX_ERR(5, 3740, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(5, 3740, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3740, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_VWMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_VWMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_VWMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3740, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_VWMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3742, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_662stream_HT_DCPERIOD(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_VWMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_VWMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_VWMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_DCPERIOD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_11VWMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_VWMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_11VWMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_11VWMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_VWMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_11VWMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_VWMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_VWMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("VWMA_Stream(real, volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_VWMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_VWMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_VWMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_VWMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_VWMA_Stream_spec = { + "talib._ta_lib.VWMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_VWMA_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_VWMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""VWMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_VWMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("VWMA_Stream(real, volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_VWMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_VWMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_VWMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_VWMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_VWMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_WAD_Stream __pyx_vtable_5talib_7_ta_lib_WAD_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WAD_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_WAD_Stream; + return o; +} - __pyx_v_retCode = TA_HT_DCPERIOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WAD_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_WAD_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WAD_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_WAD_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3765, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WAD_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_WAD_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WAD_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10WAD_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_WAD_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_WAD_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10WAD_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_10WAD_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10WAD_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_WAD_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WAD_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WAD_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WAD_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WAD_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WAD_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WAD_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WAD_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_WAD_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10WAD_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_WAD_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_WAD_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("WAD_Stream(high, low, close)\n\nWAD(high, low, close)\n\nWilliams\047 Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_WAD_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_WAD_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_WAD_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_WAD_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_WAD_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_WAD_Stream_spec = { + "talib._ta_lib.WAD_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_WAD_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_WAD_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""WAD_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_WAD_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("WAD_Stream(high, low, close)\n\nWAD(high, low, close)\n\nWilliams\047 Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_WAD_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_WAD_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_WAD_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_WAD_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_WAD_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_WCLPRICE_Stream __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_HT_DCPHASE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_664stream_HT_DCPHASE, "stream_HT_DCPHASE(ndarray real)\n\nHT_DCPHASE(real)\n\nHilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_665stream_HT_DCPHASE = {"stream_HT_DCPHASE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_665stream_HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_664stream_HT_DCPHASE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_HT_DCPHASE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_DCPHASE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3767, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3767, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_DCPHASE", 0) < (0)) __PYX_ERR(5, 3767, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(5, 3767, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3767, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_WCLPRICE_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3767, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3769, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_664stream_HT_DCPHASE(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_WCLPRICE_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_WCLPRICE_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_DCPHASE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); +static PyObject *__pyx_getprop_5talib_7_ta_lib_15WCLPRICE_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5value_1__get__(o); +} - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyMethodDef __pyx_methods_5talib_7_ta_lib_WCLPRICE_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_15WCLPRICE_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_15WCLPRICE_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_WCLPRICE_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_15WCLPRICE_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_WCLPRICE_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_WCLPRICE_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("WCLPRICE_Stream(high, low, close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_WCLPRICE_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_WCLPRICE_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_WCLPRICE_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_WCLPRICE_Stream_spec = { + "talib._ta_lib.WCLPRICE_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_WCLPRICE_Stream_slots, +}; +#else - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static PyTypeObject __pyx_type_5talib_7_ta_lib_WCLPRICE_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""WCLPRICE_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_WCLPRICE_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("WCLPRICE_Stream(high, low, close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_WCLPRICE_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_WCLPRICE_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_WCLPRICE_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_WCLPRICE_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_WILLR_Stream __pyx_vtable_5talib_7_ta_lib_WILLR_Stream; - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WILLR_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream; + return o; +} - __pyx_v_retCode = TA_HT_DCPHASE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WILLR_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_WILLR_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_WILLR_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WILLR_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_WILLR_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; - goto __pyx_L0; - + return o; +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WILLR_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_3__init__, o, args, kwds); +} +#endif +static void __pyx_tp_dealloc_5talib_7_ta_lib_WILLR_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_WILLR_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_12WILLR_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_WILLR_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12WILLR_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12WILLR_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12WILLR_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12WILLR_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_WILLR_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12WILLR_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_WILLR_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_WILLR_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("WILLR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams\047 %R (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_WILLR_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_WILLR_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_WILLR_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_WILLR_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_WILLR_Stream_spec = { + "talib._ta_lib.WILLR_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_WILLR_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_WILLR_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""WILLR_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_WILLR_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("WILLR_Stream(high, low, close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams\047 %R (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_WILLR_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_WILLR_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_WILLR_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_WILLR_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_WILLR_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_WMA_Stream __pyx_vtable_5talib_7_ta_lib_WMA_Stream; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_WMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_WMA_Stream; + return o; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_HT_PHASOR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_WMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + PyObject *a, PyObject *k #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_666stream_HT_PHASOR, "stream_HT_PHASOR(ndarray real)\n\nHT_PHASOR(real)\n\nHilbert Transform - Phasor Components (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n inphase\n quadrature"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_667stream_HT_PHASOR = {"stream_HT_PHASOR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_667stream_HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_666stream_HT_PHASOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_HT_PHASOR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames #else -PyObject *__pyx_args, PyObject *__pyx_kwds + a, k #endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_PHASOR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3794, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3794, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_PHASOR", 0) < (0)) __PYX_ERR(5, 3794, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, i); __PYX_ERR(5, 3794, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3794, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_WMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_WMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_WMA_Stream, t, a, k); +} +#endif + +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_WMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3794, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_WMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); + } } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3796, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_666stream_HT_PHASOR(__pyx_self, __pyx_v_real); + return o; +} +#endif - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_WMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_10WMA_Stream_3__init__, o, args, kwds); +} +#endif + +static void __pyx_tp_dealloc_5talib_7_ta_lib_WMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_WMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_10WMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); } -static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outinphase; - double __pyx_v_outquadrature; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_PHASOR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3815, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; +static PyObject *__pyx_getprop_5talib_7_ta_lib_10WMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_10WMA_Stream_5value_1__get__(o); +} - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); +static PyMethodDef __pyx_methods_5talib_7_ta_lib_WMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_10WMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_10WMA_Stream_10copy}, + {0, 0, 0, 0} +}; - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_WMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_10WMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_WMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_WMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("WMA_Stream(real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_WMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_WMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_WMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_WMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_WMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_WMA_Stream_spec = { + "talib._ta_lib.WMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_WMA_Stream_slots, +}; +#else - __pyx_v_outinphase = __pyx_v_5talib_7_ta_lib_NaN; +static PyTypeObject __pyx_type_5talib_7_ta_lib_WMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""WMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_WMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("WMA_Stream(real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_WMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_WMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_WMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_WMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_WMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static struct __pyx_vtabstruct_5talib_7_ta_lib_ZLEMA_Stream __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream; - __pyx_v_outquadrature = __pyx_v_5talib_7_ta_lib_NaN; +static PyObject *__pyx_tp_new__initialisation_5talib_7_ta_lib_ZLEMA_Stream(PyObject *o, +#if CYTHON_VECTORCALL_TPNEW + CYTHON_UNUSED PyObject *const *args, CYTHON_UNUSED Py_ssize_t nargs, CYTHON_UNUSED PyObject *kwnames +#else + CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k +#endif +) { + struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *p = ((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5talib_7_ta_lib_Stream*)__pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream; + return o; +} - __pyx_v_retCode = TA_HT_PHASOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); +static PyObject *__pyx_tp_new_vectorcall_5talib_7_ta_lib_ZLEMA_Stream(PyTypeObject *t, +#if CYTHON_VECTORCALL_TPNEW + PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames +#else + PyObject *a, PyObject *k +#endif +) { + PyObject *o; + o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_Stream(t, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); + if (unlikely(!o)) return 0; + return __pyx_tp_new__initialisation_5talib_7_ta_lib_ZLEMA_Stream(o, +#if CYTHON_VECTORCALL_TPNEW + args, nargs, kwnames +#else + a, k +#endif +); +} - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream(PyTypeObject *t, PyObject *a, PyObject *k) { + return __Pyx_CallTpnewAsVectorcall(__pyx_tp_new_vectorcall_5talib_7_ta_lib_ZLEMA_Stream, t, a, k); +} +#endif - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3822, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3822, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3822, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3822, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3822, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; +#if CYTHON_VECTORCALL_TPNEW +static PyObject *__pyx_tp_vectorcall_5talib_7_ta_lib_ZLEMA_Stream(PyObject *t, PyObject *const *args, size_t nargsf, PyObject *kwnames) { + if (unlikely((PyTypeObject*)t != __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream || __Pyx_PyType_HasFeature((PyTypeObject*)t, Py_TPFLAGS_IS_ABSTRACT))) { + return __Pyx_CallNewInitFromVectorcall((PyTypeObject*)t, args, nargsf, kwnames); + } + Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); + PyObject *o = __pyx_tp_new_vectorcall_5talib_7_ta_lib_ZLEMA_Stream((PyTypeObject*)t, args, nargs, kwnames); + if (likely(o)) { + assert(Py_TYPE(o) == (PyTypeObject*)t); + if (unlikely(__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_3__init__(o, args, nargs, kwnames) < 0)) { + Py_CLEAR(o); } - __Pyx_XDECREF(__pyx_temp); } - __pyx_t_3 = 0; - goto __pyx_L0; + return o; +} +#endif +#if CYTHON_VECTORCALL_TPNEW +static int __pyx_tp_init_5talib_7_ta_lib_ZLEMA_Stream(PyObject *o, PyObject *args, PyObject *kwds) { + return __Pyx_CallTpinitAsVectorcall(__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_3__init__, o, args, kwds); +} +#endif - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; +static void __pyx_tp_dealloc_5talib_7_ta_lib_ZLEMA_Stream(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5talib_7_ta_lib_ZLEMA_Stream) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + } + #endif + { + PyObject *etype, *eval, *etb; + __Pyx_PyErr_FetchException(&etype, &eval, &etb); + __Pyx_DeallocKeepAliveBegin(o); + __pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_1__dealloc__(o); + __Pyx_DeallocKeepAliveEnd(o); + __Pyx_PyErr_RestoreException(etype, eval, etb); + } + __pyx_tp_dealloc_5talib_7_ta_lib_Stream(o); +} +static PyObject *__pyx_getprop_5talib_7_ta_lib_12ZLEMA_Stream_value(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_5value_1__get__(o); +} +static PyMethodDef __pyx_methods_5talib_7_ta_lib_ZLEMA_Stream[] = { + {"open_and_fill", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill}, + {"update", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_7update, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_6update}, + {"peek", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_9peek, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_8peek}, + {"copy", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_12ZLEMA_Stream_11copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_12ZLEMA_Stream_10copy}, + {0, 0, 0, 0} +}; +static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_ZLEMA_Stream[] = { + {"value", __pyx_getprop_5talib_7_ta_lib_12ZLEMA_Stream_value, 0, 0, 0}, + {0, 0, 0, 0, 0} +}; +#if CYTHON_USE_TYPE_SPECS +static PyType_Slot __pyx_type_5talib_7_ta_lib_ZLEMA_Stream_slots[] = { + {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_ZLEMA_Stream}, + {Py_tp_doc, (void *)PyDoc_STR("ZLEMA_Stream(real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real")}, + {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_ZLEMA_Stream}, + {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_ZLEMA_Stream}, + {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_ZLEMA_Stream}, + {Py_tp_new, (void *)__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream}, + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + {Py_tp_vectorcall, (void *)__pyx_tp_vectorcall_5talib_7_ta_lib_ZLEMA_Stream}, + #endif + #endif + {0, 0}, +}; +static PyType_Spec __pyx_type_5talib_7_ta_lib_ZLEMA_Stream_spec = { + "talib._ta_lib.ZLEMA_Stream", + sizeof(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream), + 0, + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, + __pyx_type_5talib_7_ta_lib_ZLEMA_Stream_slots, +}; +#else +static PyTypeObject __pyx_type_5talib_7_ta_lib_ZLEMA_Stream = { + PyVarObject_HEAD_INIT(0, 0) + "talib._ta_lib.""ZLEMA_Stream", /*tp_name*/ + sizeof(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_5talib_7_ta_lib_ZLEMA_Stream, /*tp_dealloc*/ + 0, /*tp_vectorcall_offset*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_as_async*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + PyDoc_STR("ZLEMA_Stream(real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"), /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_5talib_7_ta_lib_ZLEMA_Stream, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_5talib_7_ta_lib_ZLEMA_Stream, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + #if !CYTHON_USE_TYPE_SPECS + 0, /*tp_dictoffset*/ + #endif + __pyx_tp_init_5talib_7_ta_lib_ZLEMA_Stream, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if CYTHON_USE_TP_FINALIZE + 0, /*tp_finalize*/ + #else + NULL, /*tp_finalize*/ + #endif + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) && (!CYTHON_COMPILING_IN_LIMITED_API || __PYX_LIMITED_VERSION_HEX >= 0x030E0000) + #if CYTHON_VECTORCALL_TPNEW + __pyx_tp_vectorcall_5talib_7_ta_lib_ZLEMA_Stream, /*tp_vectorcall*/ + #else + NULL, /*tp_vectorcall*/ + #endif + #endif + #if __PYX_NEED_TP_PRINT_SLOT == 1 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030C0000 + 0, /*tp_watched*/ + #endif + #if PY_VERSION_HEX >= 0x030d00A4 + 0, /*tp_versions_used*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +#endif +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; +/* #### Code section: initfunc_declarations ### */ +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_InitAfterSharedUtility(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/ +/* #### Code section: init_module ### */ +static int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); +static int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_export_code", 0); + /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); - return __pyx_r; + return 0; } +static int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_HT_SINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_668stream_HT_SINE, "stream_HT_SINE(ndarray real)\n\nHT_SINE(real)\n\nHilbert Transform - SineWave (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n sine\n leadsine"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_669stream_HT_SINE = {"stream_HT_SINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_669stream_HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_668stream_HT_SINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_HT_SINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_SINE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_Stream = &__pyx_vtable_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_Stream._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_6Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_Stream._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_6Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_Stream_spec, NULL); if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream)) __PYX_ERR(3, 2499, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream = &__pyx_type_5talib_7_ta_lib_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3824, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3824, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_SINE", 0) < (0)) __PYX_ERR(5, 3824, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, i); __PYX_ERR(5, 3824, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3824, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3824, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2499, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_vtabptr_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2499, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream) < (0)) __PYX_ERR(3, 2499, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_Stream, __weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3826, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_668stream_HT_SINE(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outsine; - double __pyx_v_outleadsine; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AC_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_SINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outsine = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outleadsine = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_HT_SINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outsine), (&__pyx_v_outleadsine)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3851, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3852, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 3852, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_AC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_AC_Stream = &__pyx_vtable_5talib_7_ta_lib_AC_Stream; + __pyx_vtable_5talib_7_ta_lib_AC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_AC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_AC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream)) __PYX_ERR(3, 2544, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream = &__pyx_type_5talib_7_ta_lib_AC_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2544, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2544, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream) < (0)) __PYX_ERR(3, 2544, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AC_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_HT_TRENDLINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_670stream_HT_TRENDLINE, "stream_HT_TRENDLINE(ndarray real)\n\nHT_TRENDLINE(real)\n\nHilbert Transform - Instantaneous Trendline (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_671stream_HT_TRENDLINE = {"stream_HT_TRENDLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_671stream_HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_670stream_HT_TRENDLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_HT_TRENDLINE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_TRENDLINE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream = &__pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream; + __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream)) __PYX_ERR(3, 2646, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream = &__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3854, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3854, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_TRENDLINE", 0) < (0)) __PYX_ERR(5, 3854, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(5, 3854, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3854, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3854, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2646, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2646, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2646, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3856, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_670stream_HT_TRENDLINE(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_TRENDLINE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3873, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_HT_TRENDLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3878, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ACOS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream = &__pyx_vtable_5talib_7_ta_lib_ACOS_Stream; + __pyx_vtable_5talib_7_ta_lib_ACOS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ACOS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ACOS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ACOS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream)) __PYX_ERR(3, 2758, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream = &__pyx_type_5talib_7_ta_lib_ACOS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2758, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2758, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACOS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2758, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_HT_TRENDMODE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_672stream_HT_TRENDMODE, "stream_HT_TRENDMODE(ndarray real)\n\nHT_TRENDMODE(real)\n\nHilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\nInputs:\n real: (any ndarray)\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_673stream_HT_TRENDMODE = {"stream_HT_TRENDMODE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_673stream_HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_672stream_HT_TRENDMODE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_HT_TRENDMODE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_HT_TRENDMODE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_AD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_AD_Stream = &__pyx_vtable_5talib_7_ta_lib_AD_Stream; + __pyx_vtable_5talib_7_ta_lib_AD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_AD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_AD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream)) __PYX_ERR(3, 2852, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream = &__pyx_type_5talib_7_ta_lib_AD_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3881, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3881, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_HT_TRENDMODE", 0) < (0)) __PYX_ERR(5, 3881, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(5, 3881, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3881, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3881, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2852, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_vtabptr_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2852, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2852, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AD_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3883, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_672stream_HT_TRENDMODE(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_HT_TRENDMODE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_HT_TRENDMODE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3906, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ADD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ADD_Stream = &__pyx_vtable_5talib_7_ta_lib_ADD_Stream; + __pyx_vtable_5talib_7_ta_lib_ADD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ADD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ADD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream)) __PYX_ERR(3, 2952, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream = &__pyx_type_5talib_7_ta_lib_ADD_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2952, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2952, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2952, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_675stream_IMI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_674stream_IMI, "stream_IMI(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nIMI(open, close[, timeperiod=?])\n\nIntraday Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_675stream_IMI = {"stream_IMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_675stream_IMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_674stream_IMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_675stream_IMI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_IMI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ADOSC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream = &__pyx_vtable_5talib_7_ta_lib_ADOSC_Stream; + __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADOSC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream)) __PYX_ERR(3, 3049, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream = &__pyx_type_5talib_7_ta_lib_ADOSC_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3908, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3908, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3908, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3908, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_IMI", 0) < (0)) __PYX_ERR(5, 3908, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_IMI", 0, 2, 3, i); __PYX_ERR(5, 3908, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3908, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3908, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3908, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3910, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3908, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3049, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3049, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3049, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3910, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3910, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_674stream_IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_674stream_IMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_IMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3932, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3934, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_IMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3938, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ADR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ADR_Stream = &__pyx_vtable_5talib_7_ta_lib_ADR_Stream; + __pyx_vtable_5talib_7_ta_lib_ADR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ADR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ADR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream)) __PYX_ERR(3, 3152, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream = &__pyx_type_5talib_7_ta_lib_ADR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3152, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3152, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3152, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_IMI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_677stream_KAMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_676stream_KAMA, "stream_KAMA(ndarray real, int timeperiod=-0x80000000)\n\nKAMA(real[, timeperiod=?])\n\nKaufman Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_677stream_KAMA = {"stream_KAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_677stream_KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_676stream_KAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_677stream_KAMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_KAMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ADX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ADX_Stream = &__pyx_vtable_5talib_7_ta_lib_ADX_Stream; + __pyx_vtable_5talib_7_ta_lib_ADX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ADX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ADX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream)) __PYX_ERR(3, 3250, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream = &__pyx_type_5talib_7_ta_lib_ADX_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3940, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3940, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3940, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_KAMA", 0) < (0)) __PYX_ERR(5, 3940, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, i); __PYX_ERR(5, 3940, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3940, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3940, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3942, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3940, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3250, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3250, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3250, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3942, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_676stream_KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_676stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_KAMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_KAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3966, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ADXR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream = &__pyx_vtable_5talib_7_ta_lib_ADXR_Stream; + __pyx_vtable_5talib_7_ta_lib_ADXR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ADXR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ADXR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADXR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream)) __PYX_ERR(3, 3350, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream = &__pyx_type_5talib_7_ta_lib_ADXR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3350, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3350, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADXR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3350, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_679stream_KC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_678stream_KC, "stream_KC(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int atrperiod=-0x80000000, double nbdev=-4e37)\n\nKC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?])\n\nKeltner Channels (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 20\n atrperiod: 10\n nbdev: 2.0\nOutputs:\n upperband\n middleband\n lowerband"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_679stream_KC = {"stream_KC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_679stream_KC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_678stream_KC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_679stream_KC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - int __pyx_v_atrperiod; - double __pyx_v_nbdev; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_KC (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_AO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_AO_Stream = &__pyx_vtable_5talib_7_ta_lib_AO_Stream; + __pyx_vtable_5talib_7_ta_lib_AO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_AO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_AO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream)) __PYX_ERR(3, 3450, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream = &__pyx_type_5talib_7_ta_lib_AO_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3969, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_KC", 0) < (0)) __PYX_ERR(5, 3969, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_KC", 0, 3, 6, i); __PYX_ERR(5, 3969, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3969, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3969, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3969, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3969, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3971, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3971, __pyx_L3_error) - } else { - __pyx_v_atrperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 3971, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 3969, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3450, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_KC", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_vtabptr_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3450, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3450, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AO_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3971, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3971, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3971, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_678stream_KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_678stream_KC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_atrperiod, double __pyx_v_nbdev) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outrealupperband; - double __pyx_v_outrealmiddleband; - double __pyx_v_outreallowerband; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_KC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4002, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4004, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_KC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4009, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4010, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4010, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 4010, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_APO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_APO_Stream = &__pyx_vtable_5talib_7_ta_lib_APO_Stream; + __pyx_vtable_5talib_7_ta_lib_APO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_APO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10APO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_APO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10APO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_APO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream)) __PYX_ERR(3, 3549, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream = &__pyx_type_5talib_7_ta_lib_APO_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3549, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_5 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_vtabptr_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3549, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_APO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3549, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_APO_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.stream_KC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_681stream_KDJ(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_680stream_KDJ, "stream_KDJ(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=13, int slowd_period=-0x80000000, int slowd_matype=13)\n\nKDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nKDJ Stochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 9\n slowk_period: 3\n slowk_matype: 13 (Wilder\047s Smoothed Moving Average)\n slowd_period: 3\n slowd_matype: 13 (Wilder\047s Smoothed Moving Average)\nOutputs:\n k\n d\n j"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_681stream_KDJ = {"stream_KDJ", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_681stream_KDJ, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_680stream_KDJ}; -static PyObject *__pyx_pw_5talib_7_ta_lib_681stream_KDJ(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_KDJ (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_AROON_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_AROON_Stream = &__pyx_vtable_5talib_7_ta_lib_AROON_Stream; + __pyx_vtable_5talib_7_ta_lib_AROON_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_AROON_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_AROON_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12AROON_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AROON_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream)) __PYX_ERR(3, 3649, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream = &__pyx_type_5talib_7_ta_lib_AROON_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4012, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_KDJ", 0) < (0)) __PYX_ERR(5, 4012, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_KDJ", 0, 3, 8, i); __PYX_ERR(5, 4012, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4012, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4012, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4012, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4012, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)13)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L3_error) - } else { - __pyx_v_slowd_matype = ((int)((int)13)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 4012, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3649, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3649, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3649, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4014, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4014, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4014, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_680stream_KDJ(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_680stream_KDJ(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outk; - double __pyx_v_outd; - double __pyx_v_outj; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_KDJ", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4043, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4049, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outk = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outj = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_KDJ((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outk), (&__pyx_v_outd), (&__pyx_v_outj)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4055, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4055, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 4055, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_5; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream = &__pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream; + __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AROONOSC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream)) __PYX_ERR(3, 3753, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream = &__pyx_type_5talib_7_ta_lib_AROONOSC_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3753, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_5 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3753, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3753, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("talib._ta_lib.stream_KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_683stream_LINEARREG(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_682stream_LINEARREG, "stream_LINEARREG(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG(real[, timeperiod=?])\n\nLinear Regression (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_683stream_LINEARREG = {"stream_LINEARREG", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_683stream_LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_682stream_LINEARREG}; -static PyObject *__pyx_pw_5talib_7_ta_lib_683stream_LINEARREG(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ASIN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream = &__pyx_vtable_5talib_7_ta_lib_ASIN_Stream; + __pyx_vtable_5talib_7_ta_lib_ASIN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ASIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ASIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ASIN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream)) __PYX_ERR(3, 3851, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream = &__pyx_type_5talib_7_ta_lib_ASIN_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4057, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4057, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4057, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG", 0) < (0)) __PYX_ERR(5, 4057, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, i); __PYX_ERR(5, 4057, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4057, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4057, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4059, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4057, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3851, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3851, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ASIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3851, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4059, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_682stream_LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_682stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LINEARREG", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ATAN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream = &__pyx_vtable_5talib_7_ta_lib_ATAN_Stream; + __pyx_vtable_5talib_7_ta_lib_ATAN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ATAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ATAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ATAN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream)) __PYX_ERR(3, 3945, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream = &__pyx_type_5talib_7_ta_lib_ATAN_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3945, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3945, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3945, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_685stream_LINEARREG_ANGLE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_684stream_LINEARREG_ANGLE, "stream_LINEARREG_ANGLE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_ANGLE(real[, timeperiod=?])\n\nLinear Regression Angle (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_685stream_LINEARREG_ANGLE = {"stream_LINEARREG_ANGLE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_685stream_LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_684stream_LINEARREG_ANGLE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_685stream_LINEARREG_ANGLE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ATR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ATR_Stream = &__pyx_vtable_5talib_7_ta_lib_ATR_Stream; + __pyx_vtable_5talib_7_ta_lib_ATR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ATR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ATR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ATR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ATR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream)) __PYX_ERR(3, 4039, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream = &__pyx_type_5talib_7_ta_lib_ATR_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4086, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(5, 4086, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(5, 4086, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4086, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4086, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4088, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4086, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4039, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4039, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4039, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4088, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_684stream_LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_684stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG_ANGLE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream = &__pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream; + __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AVGDEV_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream)) __PYX_ERR(3, 4139, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream = &__pyx_type_5talib_7_ta_lib_AVGDEV_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4139, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4139, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4139, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT, "stream_LINEARREG_INTERCEPT(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_INTERCEPT(real[, timeperiod=?])\n\nLinear Regression Intercept (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT = {"stream_LINEARREG_INTERCEPT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream = &__pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream; + __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream)) __PYX_ERR(3, 4235, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream = &__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4115, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4115, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4115, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(5, 4115, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(5, 4115, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4115, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4115, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4117, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4115, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4235, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4235, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4235, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4117, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_686stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4136, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG_INTERCEPT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4141, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_BBANDS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream = &__pyx_vtable_5talib_7_ta_lib_BBANDS_Stream; + __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BBANDS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream)) __PYX_ERR(3, 4337, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream = &__pyx_type_5talib_7_ta_lib_BBANDS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4337, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4337, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4337, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_689stream_LINEARREG_SLOPE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_688stream_LINEARREG_SLOPE, "stream_LINEARREG_SLOPE(ndarray real, int timeperiod=-0x80000000)\n\nLINEARREG_SLOPE(real[, timeperiod=?])\n\nLinear Regression Slope (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_689stream_LINEARREG_SLOPE = {"stream_LINEARREG_SLOPE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_689stream_LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_688stream_LINEARREG_SLOPE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_689stream_LINEARREG_SLOPE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_BETA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_BETA_Stream = &__pyx_vtable_5talib_7_ta_lib_BETA_Stream; + __pyx_vtable_5talib_7_ta_lib_BETA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_BETA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_BETA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11BETA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BETA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream)) __PYX_ERR(3, 4448, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream = &__pyx_type_5talib_7_ta_lib_BETA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4144, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(5, 4144, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(5, 4144, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4144, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4144, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4146, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4144, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4448, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_vtabptr_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4448, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BETA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4448, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4146, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_688stream_LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_688stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG_SLOPE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4170, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_BOP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_BOP_Stream = &__pyx_vtable_5talib_7_ta_lib_BOP_Stream; + __pyx_vtable_5talib_7_ta_lib_BOP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_BOP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_BOP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10BOP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BOP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream)) __PYX_ERR(3, 4547, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream = &__pyx_type_5talib_7_ta_lib_BOP_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4547, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4547, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4547, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_691stream_LN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_690stream_LN, "stream_LN(ndarray real)\n\nLN(real)\n\nVector Log Natural (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_691stream_LN = {"stream_LN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_691stream_LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_690stream_LN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_691stream_LN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CCI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CCI_Stream = &__pyx_vtable_5talib_7_ta_lib_CCI_Stream; + __pyx_vtable_5talib_7_ta_lib_CCI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CCI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CCI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CCI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CCI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream)) __PYX_ERR(3, 4647, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream = &__pyx_type_5talib_7_ta_lib_CCI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4173, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4173, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LN", 0) < (0)) __PYX_ERR(5, 4173, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, i); __PYX_ERR(5, 4173, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4173, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4173, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4647, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4647, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CCI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4647, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4175, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_690stream_LN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_690stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream)) __PYX_ERR(3, 4747, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4747, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4747, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4747, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_693stream_LOG10(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_692stream_LOG10, "stream_LOG10(ndarray real)\n\nLOG10(real)\n\nVector Log10 (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_693stream_LOG10 = {"stream_LOG10", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_693stream_LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_692stream_LOG10}; -static PyObject *__pyx_pw_5talib_7_ta_lib_693stream_LOG10(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_LOG10 (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream)) __PYX_ERR(3, 4847, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4200, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4200, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_LOG10", 0) < (0)) __PYX_ERR(5, 4200, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, i); __PYX_ERR(5, 4200, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4200, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4200, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4847, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4847, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4847, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4202, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_692stream_LOG10(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_692stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LOG10", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LOG10((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4225, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream)) __PYX_ERR(3, 4947, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4947, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4947, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4947, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_695stream_MA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_694stream_MA, "stream_MA(ndarray real, int timeperiod=-0x80000000, int matype=0)\n\nMA(real[, timeperiod=?, matype=?])\n\nMoving average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_695stream_MA = {"stream_MA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_695stream_MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_694stream_MA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_695stream_MA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream)) __PYX_ERR(3, 5047, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4227, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MA", 0) < (0)) __PYX_ERR(5, 4227, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, i); __PYX_ERR(5, 4227, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4227, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4227, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4229, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4229, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4227, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5047, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5047, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5047, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4229, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_694stream_MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_694stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream)) __PYX_ERR(3, 5147, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5147, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5147, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5147, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_697stream_MACD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_696stream_MACD, "stream_MACD(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nMACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\nMoving Average Convergence/Divergence (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_697stream_MACD = {"stream_MACD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_697stream_MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_696stream_MACD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_697stream_MACD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MACD (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = &__pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream)) __PYX_ERR(3, 5247, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = &__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4257, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACD", 0) < (0)) __PYX_ERR(5, 4257, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, i); __PYX_ERR(5, 4257, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4257, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4257, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4259, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4259, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4259, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 4257, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5247, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5247, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5247, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4259, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_696stream_MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_696stream_MACD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MACD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MACD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4292, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4292, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 4292, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream)) __PYX_ERR(3, 5347, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = &__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5347, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5347, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5347, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} - /* function exit code */ +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream)) __PYX_ERR(3, 5447, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = &__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5447, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5447, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5447, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_699stream_MACDEXT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_698stream_MACDEXT, "stream_MACDEXT(ndarray real, int fastperiod=-0x80000000, int fastmatype=0, int slowperiod=-0x80000000, int slowmatype=0, int signalperiod=-0x80000000, int signalmatype=0)\n\nMACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\nMACD with controllable MA type (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n fastmatype: 0 (Simple Moving Average)\n slowperiod: 26\n slowmatype: 0 (Simple Moving Average)\n signalperiod: 9\n signalmatype: 0 (Simple Moving Average)\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_699stream_MACDEXT = {"stream_MACDEXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_699stream_MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_698stream_MACDEXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_699stream_MACDEXT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_fastmatype; - int __pyx_v_slowperiod; - int __pyx_v_slowmatype; - int __pyx_v_signalperiod; - int __pyx_v_signalmatype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MACDEXT (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream)) __PYX_ERR(3, 5549, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = &__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4294, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACDEXT", 0) < (0)) __PYX_ERR(5, 4294, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, i); __PYX_ERR(5, 4294, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4294, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)((int)0)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)((int)0)); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4296, __pyx_L3_error) - } else { - __pyx_v_signalmatype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 4294, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5549, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5549, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5549, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4296, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_698stream_MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_698stream_MACDEXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_fastmatype, int __pyx_v_slowperiod, int __pyx_v_slowmatype, int __pyx_v_signalperiod, int __pyx_v_signalmatype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MACDEXT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MACDEXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4331, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4332, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4332, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 4332, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream)) __PYX_ERR(3, 5649, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream = &__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5649, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5649, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5649, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_701stream_MACDFIX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_700stream_MACDFIX, "stream_MACDFIX(ndarray real, int signalperiod=-0x80000000)\n\nMACDFIX(real[, signalperiod=?])\n\nMoving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n signalperiod: 9\nOutputs:\n macd\n macdsignal\n macdhist"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_701stream_MACDFIX = {"stream_MACDFIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_701stream_MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_700stream_MACDFIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_701stream_MACDFIX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_signalperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MACDFIX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream)) __PYX_ERR(3, 5749, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream = &__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4334, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4334, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4334, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MACDFIX", 0) < (0)) __PYX_ERR(5, 4334, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, i); __PYX_ERR(5, 4334, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4334, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4334, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4336, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4334, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5749, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5749, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5749, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4336, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_700stream_MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_700stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MACDFIX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MACDFIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4366, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4367, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4367, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3) != (0)) __PYX_ERR(5, 4367, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream)) __PYX_ERR(3, 5849, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = &__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_703stream_MAMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_702stream_MAMA, "stream_MAMA(ndarray real, double fastlimit=-4e37, double slowlimit=-4e37)\n\nMAMA(real[, fastlimit=?, slowlimit=?])\n\nMESA Adaptive Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastlimit: 0.5\n slowlimit: 0.05\nOutputs:\n mama\n fama"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_703stream_MAMA = {"stream_MAMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_703stream_MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_702stream_MAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_703stream_MAMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - double __pyx_v_fastlimit; - double __pyx_v_slowlimit; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5949, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream)) __PYX_ERR(3, 5949, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = &__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4369, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4369, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4369, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4369, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAMA", 0) < (0)) __PYX_ERR(5, 4369, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, i); __PYX_ERR(5, 4369, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4369, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4369, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4369, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4371, __pyx_L3_error) - } else { - __pyx_v_fastlimit = ((double)((double)-4e37)); - } - if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4371, __pyx_L3_error) - } else { - __pyx_v_slowlimit = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4369, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5949, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5949, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5949, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4371, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_702stream_MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_702stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmama; - double __pyx_v_outfama; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MAMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outmama = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outfama = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmama), (&__pyx_v_outfama)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4400, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4400, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4400, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4400, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4400, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream)) __PYX_ERR(3, 6049, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = &__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6049, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6049, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6049, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_705stream_MARKETFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_704stream_MARKETFI, "stream_MARKETFI(ndarray high, ndarray low, ndarray volume)\n\nMARKETFI(high, low, volume)\n\nMarket Facilitation Index (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_705stream_MARKETFI = {"stream_MARKETFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_705stream_MARKETFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_704stream_MARKETFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_705stream_MARKETFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_volume = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MARKETFI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream)) __PYX_ERR(3, 6149, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = &__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4402, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MARKETFI", 0) < (0)) __PYX_ERR(5, 4402, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MARKETFI", 1, 3, 3, i); __PYX_ERR(5, 4402, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4402, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4402, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4402, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_volume = ((PyArrayObject *)values[2]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 4402, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6149, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6149, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6149, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4404, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4404, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4404, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_704stream_MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_704stream_MARKETFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MARKETFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4427, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4429, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MARKETFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream)) __PYX_ERR(3, 6251, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6251, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6251, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6251, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MARKETFI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_707stream_MASSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_706stream_MASSI, "stream_MASSI(ndarray high, ndarray low, int fastperiod=-0x80000000, int slowperiod=-0x80000000)\n\nMASSI(high, low[, fastperiod=?, slowperiod=?])\n\nMass Index (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n fastperiod: 9\n slowperiod: 25\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_707stream_MASSI = {"stream_MASSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_707stream_MASSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_706stream_MASSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_707stream_MASSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MASSI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream)) __PYX_ERR(3, 6351, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4435, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4435, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4435, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4435, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4435, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MASSI", 0) < (0)) __PYX_ERR(5, 4435, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MASSI", 0, 2, 4, i); __PYX_ERR(5, 4435, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4435, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4435, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4435, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4435, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4437, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4437, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 4435, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6351, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6351, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6351, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4437, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4437, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_706stream_MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_706stream_MASSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_fastperiod, int __pyx_v_slowperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MASSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4462, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MASSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream)) __PYX_ERR(3, 6451, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6451, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6451, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6451, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MASSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - + __Pyx_RefNannyFinishContext(); + return -1; +} - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream)) __PYX_ERR(3, 6551, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream = &__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6551, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6551, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6551, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return __pyx_r; + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream)) __PYX_ERR(3, 6651, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6651, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6651, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6651, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_709stream_MAVP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_708stream_MAVP, "stream_MAVP(ndarray real, ndarray periods, int minperiod=-0x80000000, int maxperiod=-0x80000000, int matype=0)\n\nMAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\nMoving average with variable period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n periods: (any ndarray)\nParameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_709stream_MAVP = {"stream_MAVP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_709stream_MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_708stream_MAVP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_709stream_MAVP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_periods = 0; - int __pyx_v_minperiod; - int __pyx_v_maxperiod; - int __pyx_v_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream)) __PYX_ERR(3, 6753, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6753, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6753, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6753, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAVP (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream)) __PYX_ERR(3, 6855, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = &__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4468, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAVP", 0) < (0)) __PYX_ERR(5, 4468, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, i); __PYX_ERR(5, 4468, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4468, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4468, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4468, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_periods = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4470, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4470, __pyx_L3_error) - } else { - __pyx_v_maxperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4470, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 4468, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6855, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6855, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6855, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4470, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(5, 4470, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_708stream_MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_708stream_MAVP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_periods, int __pyx_v_minperiod, int __pyx_v_maxperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - double *__pyx_v_periods_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MAVP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_periods); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_periods_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4497, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MAVP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_periods_data, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4500, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4501, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream)) __PYX_ERR(3, 6955, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6955, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6955, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6955, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_periods); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_711stream_MAX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_710stream_MAX, "stream_MAX(ndarray real, int timeperiod=-0x80000000)\n\nMAX(real[, timeperiod=?])\n\nHighest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_711stream_MAX = {"stream_MAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_711stream_MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_710stream_MAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_711stream_MAX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream)) __PYX_ERR(3, 7055, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream = &__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4503, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAX", 0) < (0)) __PYX_ERR(5, 4503, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, i); __PYX_ERR(5, 4503, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4503, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4503, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4505, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4503, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7055, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7055, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7055, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4505, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_710stream_MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_710stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MAX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4530, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream)) __PYX_ERR(3, 7155, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream = &__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7155, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7155, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7155, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_713stream_MAXINDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_712stream_MAXINDEX, "stream_MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_713stream_MAXINDEX = {"stream_MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_713stream_MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_712stream_MAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_713stream_MAXINDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MAXINDEX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream)) __PYX_ERR(3, 7255, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream = &__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4532, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MAXINDEX", 0) < (0)) __PYX_ERR(5, 4532, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4532, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4532, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4532, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4534, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4532, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7255, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7255, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7255, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4534, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_712stream_MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_712stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4553, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_MAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4559, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream)) __PYX_ERR(3, 7355, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream = &__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7355, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7355, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7355, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_715stream_MEDPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_714stream_MEDPRICE, "stream_MEDPRICE(ndarray high, ndarray low)\n\nMEDPRICE(high, low)\n\nMedian Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_715stream_MEDPRICE = {"stream_MEDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_715stream_MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_714stream_MEDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_715stream_MEDPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MEDPRICE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream)) __PYX_ERR(3, 7455, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4561, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4561, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4561, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MEDPRICE", 0) < (0)) __PYX_ERR(5, 4561, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, i); __PYX_ERR(5, 4561, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4561, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4561, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4561, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7455, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7455, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7455, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4563, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4563, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_714stream_MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_714stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MEDPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4581, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4585, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MEDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream)) __PYX_ERR(3, 7555, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7555, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7555, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7555, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_717stream_MFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_716stream_MFI, "stream_MFI(ndarray high, ndarray low, ndarray close, ndarray volume, int timeperiod=-0x80000000)\n\nMFI(high, low, close, volume[, timeperiod=?])\n\nMoney Flow Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_717stream_MFI = {"stream_MFI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_717stream_MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_716stream_MFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_717stream_MFI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MFI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream)) __PYX_ERR(3, 7655, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4591, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4591, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4591, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4591, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4591, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4591, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MFI", 0) < (0)) __PYX_ERR(5, 4591, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, i); __PYX_ERR(5, 4591, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4591, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4591, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4591, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4591, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4591, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4593, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 4591, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7655, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7655, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7655, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4593, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_716stream_MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_716stream_MFI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MFI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4621, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4623, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream)) __PYX_ERR(3, 7755, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = &__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7755, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7755, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7755, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_719stream_MIDPOINT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_718stream_MIDPOINT, "stream_MIDPOINT(ndarray real, int timeperiod=-0x80000000)\n\nMIDPOINT(real[, timeperiod=?])\n\nMidPoint over period (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_719stream_MIDPOINT = {"stream_MIDPOINT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_719stream_MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_718stream_MIDPOINT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_719stream_MIDPOINT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MIDPOINT (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream)) __PYX_ERR(3, 7855, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4629, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4629, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4629, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIDPOINT", 0) < (0)) __PYX_ERR(5, 4629, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, i); __PYX_ERR(5, 4629, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4629, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4629, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4631, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4629, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7855, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7855, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7855, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4631, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_718stream_MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_718stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MIDPOINT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4650, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MIDPOINT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4655, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4656, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream)) __PYX_ERR(3, 7955, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream = &__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7955, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7955, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7955, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_721stream_MIDPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_720stream_MIDPRICE, "stream_MIDPRICE(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMIDPRICE(high, low[, timeperiod=?])\n\nMidpoint Price over period (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_721stream_MIDPRICE = {"stream_MIDPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_721stream_MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_720stream_MIDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_721stream_MIDPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream)) __PYX_ERR(3, 8055, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = &__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8055, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_getattro = PyObject_GenericGetAttr; + } #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8055, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8055, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MIDPRICE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream)) __PYX_ERR(3, 8155, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream = &__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4658, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4658, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIDPRICE", 0) < (0)) __PYX_ERR(5, 4658, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, i); __PYX_ERR(5, 4658, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4658, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4658, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4658, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4660, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4658, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8155, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8155, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8155, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4660, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4660, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_720stream_MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_720stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MIDPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4680, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4684, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MIDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream)) __PYX_ERR(3, 8255, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = &__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8255, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8255, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8255, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_723stream_MIN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_722stream_MIN, "stream_MIN(ndarray real, int timeperiod=-0x80000000)\n\nMIN(real[, timeperiod=?])\n\nLowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_723stream_MIN = {"stream_MIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_723stream_MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_722stream_MIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_723stream_MIN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MIN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream)) __PYX_ERR(3, 8355, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = &__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4690, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4690, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4690, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MIN", 0) < (0)) __PYX_ERR(5, 4690, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, i); __PYX_ERR(5, 4690, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4690, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4690, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4692, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4690, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8355, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8355, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8355, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4692, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_722stream_MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_722stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4716, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream)) __PYX_ERR(3, 8455, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8455, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8455, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8455, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_725stream_MININDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_724stream_MININDEX, "stream_MININDEX(ndarray real, int timeperiod=-0x80000000)\n\nMININDEX(real[, timeperiod=?])\n\nIndex of lowest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_725stream_MININDEX = {"stream_MININDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_725stream_MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_724stream_MININDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_725stream_MININDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MININDEX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream)) __PYX_ERR(3, 8555, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream = &__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4719, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MININDEX", 0) < (0)) __PYX_ERR(5, 4719, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, i); __PYX_ERR(5, 4719, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4719, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4719, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4721, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4719, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8555, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8555, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8555, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4721, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_724stream_MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_724stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MININDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4740, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_MININDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream)) __PYX_ERR(3, 8655, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream = &__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8655, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8655, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8655, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_727stream_MINMAX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_726stream_MINMAX, "stream_MINMAX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAX(real[, timeperiod=?])\n\nLowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n min\n max"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_727stream_MINMAX = {"stream_MINMAX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_727stream_MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_726stream_MINMAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_727stream_MINMAX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINMAX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream)) __PYX_ERR(3, 8755, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = &__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4748, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4748, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4748, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINMAX", 0) < (0)) __PYX_ERR(5, 4748, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, i); __PYX_ERR(5, 4748, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4748, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4748, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4750, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4748, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8755, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8755, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8755, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4750, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_726stream_MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_726stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmin; - double __pyx_v_outmax; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MINMAX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outmin = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmax = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MINMAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmin), (&__pyx_v_outmax)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4777, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4778, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4778, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4778, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4778, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4778, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream)) __PYX_ERR(3, 8855, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream = &__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8855, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8855, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8855, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_729stream_MINMAXINDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_728stream_MINMAXINDEX, "stream_MINMAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMINMAXINDEX(real[, timeperiod=?])\n\nIndexes of lowest and highest values over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n minidx\n maxidx"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_729stream_MINMAXINDEX = {"stream_MINMAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_729stream_MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_728stream_MINMAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_729stream_MINMAXINDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINMAXINDEX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream)) __PYX_ERR(3, 8957, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4780, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4780, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4780, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINMAXINDEX", 0) < (0)) __PYX_ERR(5, 4780, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4780, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4780, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4780, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4782, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4780, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8957, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8957, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8957, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4782, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_728stream_MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_728stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outminidx; - int __pyx_v_outmaxidx; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MINMAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outminidx = 0; - - __pyx_v_outmaxidx = 0; - - __pyx_v_retCode = TA_MINMAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_outminidx); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outmaxidx); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4810, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4810, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 4810, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream)) __PYX_ERR(3, 9059, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9059, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9059, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9059, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_731stream_MINUS_DI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_730stream_MINUS_DI, "stream_MINUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nMINUS_DI(high, low, close[, timeperiod=?])\n\nMinus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_731stream_MINUS_DI = {"stream_MINUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_731stream_MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_730stream_MINUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_731stream_MINUS_DI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINUS_DI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream)) __PYX_ERR(3, 9161, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream = &__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4812, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINUS_DI", 0) < (0)) __PYX_ERR(5, 4812, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, i); __PYX_ERR(5, 4812, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4812, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4812, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4812, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4812, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4814, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4812, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9161, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9161, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9161, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4814, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4814, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4814, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_730stream_MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_730stream_MINUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MINUS_DI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4837, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4839, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4841, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MINUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream)) __PYX_ERR(3, 9261, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream = &__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9261, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9261, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9261, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_733stream_MINUS_DM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_732stream_MINUS_DM, "stream_MINUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nMINUS_DM(high, low[, timeperiod=?])\n\nMinus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_733stream_MINUS_DM = {"stream_MINUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_733stream_MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_732stream_MINUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_733stream_MINUS_DM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream)) __PYX_ERR(3, 9361, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = &__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9361, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9361, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9361, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MINUS_DM (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream)) __PYX_ERR(3, 9461, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = &__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4847, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MINUS_DM", 0) < (0)) __PYX_ERR(5, 4847, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, i); __PYX_ERR(5, 4847, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4847, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4847, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4847, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4849, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4847, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9461, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9461, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9461, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4849, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4849, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_732stream_MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_732stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MINUS_DM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4873, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MINUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream)) __PYX_ERR(3, 9561, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = &__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9561, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9561, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9561, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_735stream_MOM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_734stream_MOM, "stream_MOM(ndarray real, int timeperiod=-0x80000000)\n\nMOM(real[, timeperiod=?])\n\nMomentum (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_735stream_MOM = {"stream_MOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_735stream_MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_734stream_MOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_735stream_MOM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MOM (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream)) __PYX_ERR(3, 9661, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4879, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4879, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4879, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MOM", 0) < (0)) __PYX_ERR(5, 4879, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, i); __PYX_ERR(5, 4879, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4879, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4879, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4881, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4879, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9661, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9661, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9661, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4881, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_734stream_MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_734stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MOM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4906, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream)) __PYX_ERR(3, 9761, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream = &__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9761, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9761, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9761, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_737stream_MULT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_736stream_MULT, "stream_MULT(ndarray real0, ndarray real1)\n\nMULT(real0, real1)\n\nVector Arithmetic Mult (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_737stream_MULT = {"stream_MULT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_737stream_MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_736stream_MULT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_737stream_MULT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_MULT (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream)) __PYX_ERR(3, 9861, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = &__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4908, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4908, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4908, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_MULT", 0) < (0)) __PYX_ERR(5, 4908, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, i); __PYX_ERR(5, 4908, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4908, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4908, __pyx_L3_error) - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4908, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9861, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9861, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9861, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 4910, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 4910, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_736stream_MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_736stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MULT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4929, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4931, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4933, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MULT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream)) __PYX_ERR(3, 9961, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = &__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9961, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9961, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9961, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_739stream_NATR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_738stream_NATR, "stream_NATR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nNATR(high, low, close[, timeperiod=?])\n\nNormalized Average True Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_739stream_NATR = {"stream_NATR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_739stream_NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_738stream_NATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_739stream_NATR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_NATR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream)) __PYX_ERR(3, 10061, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = &__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4939, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4939, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4939, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4939, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4939, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_NATR", 0) < (0)) __PYX_ERR(5, 4939, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, i); __PYX_ERR(5, 4939, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4939, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4939, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4939, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4939, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4941, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4939, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10061, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10061, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10061, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4941, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4941, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4941, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_738stream_NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_738stream_NATR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_NATR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4966, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4968, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_NATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4972, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream)) __PYX_ERR(3, 10161, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream = &__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10161, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10161, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10161, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_741stream_NVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_740stream_NVI, "stream_NVI(ndarray close, ndarray volume)\n\nNVI(close, volume)\n\nNegative Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_741stream_NVI = {"stream_NVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_741stream_NVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_740stream_NVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_741stream_NVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_NVI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream)) __PYX_ERR(3, 10261, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream = &__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4974, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4974, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4974, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_NVI", 0) < (0)) __PYX_ERR(5, 4974, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_NVI", 1, 2, 2, i); __PYX_ERR(5, 4974, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4974, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4974, __pyx_L3_error) - } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4974, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10261, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10261, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10261, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4976, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4976, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_740stream_NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_740stream_NVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_NVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4998, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_NVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5002, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream)) __PYX_ERR(3, 10361, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream = &__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10361, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10361, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10361, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_NVI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_743stream_OBV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_742stream_OBV, "stream_OBV(ndarray real, ndarray volume)\n\nOBV(real, volume)\n\nOn Balance Volume (Volume Indicators)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_743stream_OBV = {"stream_OBV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_743stream_OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_742stream_OBV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_743stream_OBV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_volume = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_OBV (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream)) __PYX_ERR(3, 10461, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5004, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5004, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5004, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_OBV", 0) < (0)) __PYX_ERR(5, 5004, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, i); __PYX_ERR(5, 5004, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5004, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5004, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5004, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10461, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10461, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10461, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5006, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5006, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_742stream_OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_742stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_OBV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5027, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5029, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_OBV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5032, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5033, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream)) __PYX_ERR(3, 10561, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = &__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10561, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10561, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10561, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_745stream_PERCENTILE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_744stream_PERCENTILE, "stream_PERCENTILE(ndarray real, int timeperiod=-0x80000000, double percentile=50.0)\n\nPERCENTILE(real[, timeperiod=?, percentile=?])\n\nPercentile (nearest rank) (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\n percentile: 50.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_745stream_PERCENTILE = {"stream_PERCENTILE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_745stream_PERCENTILE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_744stream_PERCENTILE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_745stream_PERCENTILE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_percentile; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PERCENTILE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream)) __PYX_ERR(3, 10661, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5035, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5035, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5035, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5035, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PERCENTILE", 0) < (0)) __PYX_ERR(5, 5035, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PERCENTILE", 0, 1, 3, i); __PYX_ERR(5, 5035, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5035, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5035, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5035, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5037, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5037, __pyx_L3_error) - } else { - __pyx_v_percentile = ((double)((double)50.0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5035, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10661, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10661, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10661, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5037, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_744stream_PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_744stream_PERCENTILE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_percentile) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PERCENTILE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5057, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PERCENTILE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5063, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = &__pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream)) __PYX_ERR(3, 10761, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = &__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10761, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10761, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10761, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTILE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_747stream_PERCENTRANK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_746stream_PERCENTRANK, "stream_PERCENTRANK(ndarray real, int timeperiod=-0x80000000)\n\nPERCENTRANK(real[, timeperiod=?])\n\nPercent Rank (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 100\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_747stream_PERCENTRANK = {"stream_PERCENTRANK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_747stream_PERCENTRANK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_746stream_PERCENTRANK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_747stream_PERCENTRANK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PERCENTRANK (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CEIL_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream = &__pyx_vtable_5talib_7_ta_lib_CEIL_Stream; + __pyx_vtable_5talib_7_ta_lib_CEIL_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CEIL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CEIL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CEIL_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream)) __PYX_ERR(3, 10861, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream = &__pyx_type_5talib_7_ta_lib_CEIL_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5065, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5065, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5065, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PERCENTRANK", 0) < (0)) __PYX_ERR(5, 5065, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PERCENTRANK", 0, 1, 2, i); __PYX_ERR(5, 5065, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5065, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5065, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5067, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5065, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10861, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10861, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CEIL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10861, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5067, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_746stream_PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_746stream_PERCENTRANK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PERCENTRANK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PERCENTRANK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CMF_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CMF_Stream = &__pyx_vtable_5talib_7_ta_lib_CMF_Stream; + __pyx_vtable_5talib_7_ta_lib_CMF_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CMF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CMF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CMF_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMF_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream)) __PYX_ERR(3, 10955, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream = &__pyx_type_5talib_7_ta_lib_CMF_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10955, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10955, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10955, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PERCENTRANK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_749stream_PLUS_DI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_748stream_PLUS_DI, "stream_PLUS_DI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nPLUS_DI(high, low, close[, timeperiod=?])\n\nPlus Directional Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_749stream_PLUS_DI = {"stream_PLUS_DI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_749stream_PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_748stream_PLUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_749stream_PLUS_DI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PLUS_DI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CMO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CMO_Stream = &__pyx_vtable_5talib_7_ta_lib_CMO_Stream; + __pyx_vtable_5talib_7_ta_lib_CMO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CMO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CMO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CMO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream)) __PYX_ERR(3, 11057, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream = &__pyx_type_5talib_7_ta_lib_CMO_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5094, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5094, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5094, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5094, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5094, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PLUS_DI", 0) < (0)) __PYX_ERR(5, 5094, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, i); __PYX_ERR(5, 5094, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5094, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5094, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5094, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5094, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5096, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5094, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11057, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11057, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11057, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5096, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5096, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5096, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_748stream_PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_748stream_PLUS_DI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PLUS_DI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5123, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PLUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5126, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CMOU_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream = &__pyx_vtable_5talib_7_ta_lib_CMOU_Stream; + __pyx_vtable_5talib_7_ta_lib_CMOU_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CMOU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CMOU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMOU_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream)) __PYX_ERR(3, 11153, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream = &__pyx_type_5talib_7_ta_lib_CMOU_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11153, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11153, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMOU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11153, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_751stream_PLUS_DM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_750stream_PLUS_DM, "stream_PLUS_DM(ndarray high, ndarray low, int timeperiod=-0x80000000)\n\nPLUS_DM(high, low[, timeperiod=?])\n\nPlus Directional Movement (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_751stream_PLUS_DM = {"stream_PLUS_DM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_751stream_PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_750stream_PLUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_751stream_PLUS_DM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PLUS_DM (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream = &__pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream; + __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COPPOCK_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream)) __PYX_ERR(3, 11249, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream = &__pyx_type_5talib_7_ta_lib_COPPOCK_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5129, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5129, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5129, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5129, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PLUS_DM", 0) < (0)) __PYX_ERR(5, 5129, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, i); __PYX_ERR(5, 5129, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5129, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5129, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5129, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5131, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5129, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11249, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11249, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11249, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5131, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5131, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_750stream_PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_750stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PLUS_DM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5155, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PLUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CORREL_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream = &__pyx_vtable_5talib_7_ta_lib_CORREL_Stream; + __pyx_vtable_5talib_7_ta_lib_CORREL_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CORREL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CORREL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CORREL_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream)) __PYX_ERR(3, 11347, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream = &__pyx_type_5talib_7_ta_lib_CORREL_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11347, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11347, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CORREL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11347, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_753stream_PPO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_752stream_PPO, "stream_PPO(ndarray real, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Price Oscillator (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_753stream_PPO = {"stream_PPO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_753stream_PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_752stream_PPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_753stream_PPO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PPO (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_COS_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_COS_Stream = &__pyx_vtable_5talib_7_ta_lib_COS_Stream; + __pyx_vtable_5talib_7_ta_lib_COS_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_COS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10COS_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_COS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10COS_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COS_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream)) __PYX_ERR(3, 11446, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream = &__pyx_type_5talib_7_ta_lib_COS_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5161, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5161, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5161, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5161, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5161, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PPO", 0) < (0)) __PYX_ERR(5, 5161, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, i); __PYX_ERR(5, 5161, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5161, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5161, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5161, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5161, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5163, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5163, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5163, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)1)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5161, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11446, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_vtabptr_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11446, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11446, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COS_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5163, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_752stream_PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_752stream_PPO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PPO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PPO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_COSH_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_COSH_Stream = &__pyx_vtable_5talib_7_ta_lib_COSH_Stream; + __pyx_vtable_5talib_7_ta_lib_COSH_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_COSH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_COSH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11COSH_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COSH_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream)) __PYX_ERR(3, 11540, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream = &__pyx_type_5talib_7_ta_lib_COSH_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11540, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_vtabptr_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11540, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COSH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11540, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_755stream_PVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_754stream_PVI, "stream_PVI(ndarray close, ndarray volume)\n\nPVI(close, volume)\n\nPositive Volume Index (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_755stream_PVI = {"stream_PVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_755stream_PVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_754stream_PVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_755stream_PVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PVI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream = &__pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream; + __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CUMSUM_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream)) __PYX_ERR(3, 11634, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream = &__pyx_type_5talib_7_ta_lib_CUMSUM_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5192, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5192, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5192, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PVI", 0) < (0)) __PYX_ERR(5, 5192, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PVI", 1, 2, 2, i); __PYX_ERR(5, 5192, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5192, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5192, __pyx_L3_error) - } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5192, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11634, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11634, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11634, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5194, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5194, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_754stream_PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_754stream_PVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5212, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5216, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_CVI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_CVI_Stream = &__pyx_vtable_5talib_7_ta_lib_CVI_Stream; + __pyx_vtable_5talib_7_ta_lib_CVI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_CVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_CVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CVI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CVI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream)) __PYX_ERR(3, 11728, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream = &__pyx_type_5talib_7_ta_lib_CVI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11728, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11728, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11728, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PVI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_757stream_PVO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_756stream_PVO, "stream_PVO(ndarray volume, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int matype=1)\n\nPVO(volume[, fastperiod=?, slowperiod=?, matype=?])\n\nPercentage Volume Oscillator (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n fastperiod: 12\n slowperiod: 26\n matype: 1 (Exponential Moving Average)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_757stream_PVO = {"stream_PVO", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_757stream_PVO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_756stream_PVO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_757stream_PVO(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PVO (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_DEMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream = &__pyx_vtable_5talib_7_ta_lib_DEMA_Stream; + __pyx_vtable_5talib_7_ta_lib_DEMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_DEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_DEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DEMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream)) __PYX_ERR(3, 11827, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream = &__pyx_type_5talib_7_ta_lib_DEMA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5222, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PVO", 0) < (0)) __PYX_ERR(5, 5222, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PVO", 0, 1, 4, i); __PYX_ERR(5, 5222, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5222, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5222, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_volume = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)1)); - } + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11827, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5222, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11827, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11827, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_DIV_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_DIV_Stream = &__pyx_vtable_5talib_7_ta_lib_DIV_Stream; + __pyx_vtable_5talib_7_ta_lib_DIV_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_DIV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_DIV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10DIV_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DIV_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream)) __PYX_ERR(3, 11923, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream = &__pyx_type_5talib_7_ta_lib_DIV_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11923, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_vtabptr_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11923, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DIV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11923, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5224, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_756stream_PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_756stream_PVO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PVO", 0); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5245, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PVO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_volume_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream = &__pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream; + __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream)) __PYX_ERR(3, 12022, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream = &__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12022, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12022, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12022, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PVO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_759stream_PVT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_758stream_PVT, "stream_PVT(ndarray close, ndarray volume)\n\nPVT(close, volume)\n\nPrice Volume Trend (Volume Indicators)\n\nInputs:\n prices: [\047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_759stream_PVT = {"stream_PVT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_759stream_PVT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_758stream_PVT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_759stream_PVT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_PVT (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_DPO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_DPO_Stream = &__pyx_vtable_5talib_7_ta_lib_DPO_Stream; + __pyx_vtable_5talib_7_ta_lib_DPO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_DPO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_DPO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10DPO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DPO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream)) __PYX_ERR(3, 12132, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream = &__pyx_type_5talib_7_ta_lib_DPO_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5253, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5253, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_PVT", 0) < (0)) __PYX_ERR(5, 5253, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_PVT", 1, 2, 2, i); __PYX_ERR(5, 5253, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5253, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5253, __pyx_L3_error) - } - __pyx_v_close = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5253, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12132, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12132, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12132, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5255, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5255, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_758stream_PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_758stream_PVT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PVT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5277, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PVT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5280, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_DX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_DX_Stream = &__pyx_vtable_5talib_7_ta_lib_DX_Stream; + __pyx_vtable_5talib_7_ta_lib_DX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_DX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9DX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_DX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9DX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream)) __PYX_ERR(3, 12228, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream = &__pyx_type_5talib_7_ta_lib_DX_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12228, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_vtabptr_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12228, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12228, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DX_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PVT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_761stream_QSTICK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_760stream_QSTICK, "stream_QSTICK(ndarray open, ndarray close, int timeperiod=-0x80000000)\n\nQSTICK(open, close[, timeperiod=?])\n\nQstick (Momentum Indicators)\n\nInputs:\n prices: [\047open\047, \047close\047]\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_761stream_QSTICK = {"stream_QSTICK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_761stream_QSTICK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_760stream_QSTICK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_761stream_QSTICK(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_QSTICK (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_EFI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_EFI_Stream = &__pyx_vtable_5talib_7_ta_lib_EFI_Stream; + __pyx_vtable_5talib_7_ta_lib_EFI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_EFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_EFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EFI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EFI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream)) __PYX_ERR(3, 12328, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream = &__pyx_type_5talib_7_ta_lib_EFI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5283, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5283, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5283, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5283, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_QSTICK", 0) < (0)) __PYX_ERR(5, 5283, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_QSTICK", 0, 2, 3, i); __PYX_ERR(5, 5283, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5283, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5283, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5283, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_close = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5285, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5283, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12328, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12328, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12328, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 5285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5285, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_760stream_QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_760stream_QSTICK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_QSTICK", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5309, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_QSTICK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_EMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_EMA_Stream = &__pyx_vtable_5talib_7_ta_lib_EMA_Stream; + __pyx_vtable_5talib_7_ta_lib_EMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_EMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_EMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream)) __PYX_ERR(3, 12426, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream = &__pyx_type_5talib_7_ta_lib_EMA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12426, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12426, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12426, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_QSTICK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_763stream_RMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_762stream_RMA, "stream_RMA(ndarray real, int timeperiod=-0x80000000)\n\nRMA(real[, timeperiod=?])\n\nWilder\047s Smoothed Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_763stream_RMA = {"stream_RMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_763stream_RMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_762stream_RMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_763stream_RMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_RMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ER_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ER_Stream = &__pyx_vtable_5talib_7_ta_lib_ER_Stream; + __pyx_vtable_5talib_7_ta_lib_ER_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9ER_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9ER_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ER_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream)) __PYX_ERR(3, 12522, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream = &__pyx_type_5talib_7_ta_lib_ER_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5315, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RMA", 0) < (0)) __PYX_ERR(5, 5315, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RMA", 0, 1, 2, i); __PYX_ERR(5, 5315, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5315, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5317, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5315, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12522, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_vtabptr_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12522, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12522, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ER_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5317, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_762stream_RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_762stream_RMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_RMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_RMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ERI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ERI_Stream = &__pyx_vtable_5talib_7_ta_lib_ERI_Stream; + __pyx_vtable_5talib_7_ta_lib_ERI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ERI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ERI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ERI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ERI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream)) __PYX_ERR(3, 12620, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream = &__pyx_type_5talib_7_ta_lib_ERI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12620, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_vtabptr_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12620, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ERI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12620, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_RMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_765stream_ROC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_764stream_ROC, "stream_ROC(ndarray real, int timeperiod=-0x80000000)\n\nROC(real[, timeperiod=?])\n\nRate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_765stream_ROC = {"stream_ROC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_765stream_ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_764stream_ROC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_765stream_ROC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROC (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_EXP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_EXP_Stream = &__pyx_vtable_5talib_7_ta_lib_EXP_Stream; + __pyx_vtable_5talib_7_ta_lib_EXP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_EXP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_EXP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EXP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EXP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream)) __PYX_ERR(3, 12726, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream = &__pyx_type_5talib_7_ta_lib_EXP_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5344, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5344, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5344, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROC", 0) < (0)) __PYX_ERR(5, 5344, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, i); __PYX_ERR(5, 5344, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5344, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5344, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5346, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5344, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12726, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_vtabptr_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12726, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EXP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12726, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5346, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_764stream_ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_764stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ROC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5365, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_FLOOR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream = &__pyx_vtable_5talib_7_ta_lib_FLOOR_Stream; + __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FLOOR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream)) __PYX_ERR(3, 12820, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream = &__pyx_type_5talib_7_ta_lib_FLOOR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12820, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12820, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12820, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_767stream_ROCP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_766stream_ROCP, "stream_ROCP(ndarray real, int timeperiod=-0x80000000)\n\nROCP(real[, timeperiod=?])\n\nRate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_767stream_ROCP = {"stream_ROCP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_767stream_ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_766stream_ROCP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_767stream_ROCP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROCP (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_FOSC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream = &__pyx_vtable_5talib_7_ta_lib_FOSC_Stream; + __pyx_vtable_5talib_7_ta_lib_FOSC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_FOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_FOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FOSC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream)) __PYX_ERR(3, 12914, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream = &__pyx_type_5talib_7_ta_lib_FOSC_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5373, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5373, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5373, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCP", 0) < (0)) __PYX_ERR(5, 5373, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, i); __PYX_ERR(5, 5373, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5373, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5373, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5375, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5373, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12914, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12914, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12914, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5375, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_766stream_ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_766stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ROCP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROCP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5400, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream = &__pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream; + __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FRACTAL_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream)) __PYX_ERR(3, 13012, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream = &__pyx_type_5talib_7_ta_lib_FRACTAL_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_769stream_ROCR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_768stream_ROCR, "stream_ROCR(ndarray real, int timeperiod=-0x80000000)\n\nROCR(real[, timeperiod=?])\n\nRate of change ratio: (real/prevPrice) (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_769stream_ROCR = {"stream_ROCR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_769stream_ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_768stream_ROCR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_769stream_ROCR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROCR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HA_Stream = &__pyx_vtable_5talib_7_ta_lib_HA_Stream; + __pyx_vtable_5talib_7_ta_lib_HA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9HA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9HA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream)) __PYX_ERR(3, 13119, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream = &__pyx_type_5talib_7_ta_lib_HA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5402, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCR", 0) < (0)) __PYX_ERR(5, 5402, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, i); __PYX_ERR(5, 5402, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5402, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5402, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5404, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5402, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13119, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13119, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13119, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5404, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_768stream_ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HMA_Stream = &__pyx_vtable_5talib_7_ta_lib_HMA_Stream; + __pyx_vtable_5talib_7_ta_lib_HMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10HMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream)) __PYX_ERR(3, 13237, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream = &__pyx_type_5talib_7_ta_lib_HMA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13237, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13237, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13237, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream = &__pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream)) __PYX_ERR(3, 13333, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream = &__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13333, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_L7_cleaned_up:; + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13333, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13333, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream = &__pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream)) __PYX_ERR(3, 13427, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream = &__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return __pyx_r; + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_768stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ROCR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROCR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5429, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream = &__pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream)) __PYX_ERR(3, 13523, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream = &__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13523, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13523, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13523, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_771stream_ROCR100(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_770stream_ROCR100, "stream_ROCR100(ndarray real, int timeperiod=-0x80000000)\n\nROCR100(real[, timeperiod=?])\n\nRate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_771stream_ROCR100 = {"stream_ROCR100", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_771stream_ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_770stream_ROCR100}; -static PyObject *__pyx_pw_5talib_7_ta_lib_771stream_ROCR100(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ROCR100 (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream = &__pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_SINE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream)) __PYX_ERR(3, 13625, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream = &__pyx_type_5talib_7_ta_lib_HT_SINE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5431, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5431, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5431, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ROCR100", 0) < (0)) __PYX_ERR(5, 5431, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, i); __PYX_ERR(5, 5431, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5431, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5431, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5433, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5431, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13625, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13625, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13625, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5433, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_770stream_ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_770stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ROCR100", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROCR100((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5458, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream = &__pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream)) __PYX_ERR(3, 13725, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream = &__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13725, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13725, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13725, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_773stream_RSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_772stream_RSI, "stream_RSI(ndarray real, int timeperiod=-0x80000000)\n\nRSI(real[, timeperiod=?])\n\nRelative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_773stream_RSI = {"stream_RSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_773stream_RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_772stream_RSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_773stream_RSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_RSI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream = &__pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream)) __PYX_ERR(3, 13819, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream = &__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5460, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5460, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5460, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RSI", 0) < (0)) __PYX_ERR(5, 5460, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, i); __PYX_ERR(5, 5460, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5460, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5460, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5462, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5460, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13819, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13819, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13819, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5462, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_772stream_RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_772stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_RSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_RSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5487, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_IMI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_IMI_Stream = &__pyx_vtable_5talib_7_ta_lib_IMI_Stream; + __pyx_vtable_5talib_7_ta_lib_IMI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_IMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_IMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10IMI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_IMI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream)) __PYX_ERR(3, 13913, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream = &__pyx_type_5talib_7_ta_lib_IMI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13913, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13913, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13913, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_775stream_RVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_774stream_RVI, "stream_RVI(ndarray real, int timeperiod=-0x80000000, int stddevperiod=-0x80000000)\n\nRVI(real[, timeperiod=?, stddevperiod=?])\n\nRelative Volatility Index (Volatility Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n stddevperiod: 10\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_775stream_RVI = {"stream_RVI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_775stream_RVI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_774stream_RVI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_775stream_RVI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_stddevperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_RVI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_KAMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream = &__pyx_vtable_5talib_7_ta_lib_KAMA_Stream; + __pyx_vtable_5talib_7_ta_lib_KAMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_KAMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_KAMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KAMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream)) __PYX_ERR(3, 14011, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream = &__pyx_type_5talib_7_ta_lib_KAMA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5489, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5489, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5489, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5489, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RVI", 0) < (0)) __PYX_ERR(5, 5489, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RVI", 0, 1, 3, i); __PYX_ERR(5, 5489, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5489, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5489, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5489, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5491, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5491, __pyx_L3_error) - } else { - __pyx_v_stddevperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5489, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 14011, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 14011, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 14011, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5491, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_774stream_RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_774stream_RVI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_stddevperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_RVI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_RVI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_KC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_KC_Stream = &__pyx_vtable_5talib_7_ta_lib_KC_Stream; + __pyx_vtable_5talib_7_ta_lib_KC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_KC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9KC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_KC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9KC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream)) __PYX_ERR(3, 14109, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream = &__pyx_type_5talib_7_ta_lib_KC_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14109, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_vtabptr_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14109, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14109, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KC_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_RVI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_777stream_RVOL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_776stream_RVOL, "stream_RVOL(ndarray volume, int timeperiod=-0x80000000)\n\nRVOL(volume[, timeperiod=?])\n\nRelative Volume (Volume Indicators)\n\nInputs:\n prices: [\047volume\047]\nParameters:\n timeperiod: 20\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_777stream_RVOL = {"stream_RVOL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_777stream_RVOL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_776stream_RVOL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_777stream_RVOL(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_RVOL (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_KDJ_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream = &__pyx_vtable_5talib_7_ta_lib_KDJ_Stream; + __pyx_vtable_5talib_7_ta_lib_KDJ_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_KDJ_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_KDJ_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KDJ_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream)) __PYX_ERR(3, 14225, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream = &__pyx_type_5talib_7_ta_lib_KDJ_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5519, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5519, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5519, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_RVOL", 0) < (0)) __PYX_ERR(5, 5519, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_RVOL", 0, 1, 2, i); __PYX_ERR(5, 5519, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5519, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5519, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_volume = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5521, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5519, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14225, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14225, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KDJ_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14225, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5521, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_776stream_RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_776stream_RVOL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_RVOL", 0); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_RVOL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5546, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream = &__pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream)) __PYX_ERR(3, 14341, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14341, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14341, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14341, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_RVOL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_779stream_SAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_778stream_SAR, "stream_SAR(ndarray high, ndarray low, double acceleration=0.02, double maximum=0.2)\n\nSAR(high, low[, acceleration=?, maximum=?])\n\nParabolic SAR (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n acceleration: 0.02\n maximum: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_779stream_SAR = {"stream_SAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_779stream_SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_778stream_SAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_779stream_SAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_acceleration; - double __pyx_v_maximum; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = &__pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream)) __PYX_ERR(3, 14437, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5548, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5548, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5548, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5548, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5548, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SAR", 0) < (0)) __PYX_ERR(5, 5548, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, i); __PYX_ERR(5, 5548, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5548, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5548, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5548, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5548, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5550, __pyx_L3_error) - } else { - __pyx_v_acceleration = ((double)((double)0.02)); - } - if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5550, __pyx_L3_error) - } else { - __pyx_v_maximum = ((double)((double)0.2)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 5548, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14437, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14437, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14437, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5550, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5550, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_778stream_SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_778stream_SAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_acceleration, double __pyx_v_maximum) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5571, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5573, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5575, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5578, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = &__pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream)) __PYX_ERR(3, 14533, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14533, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14533, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14533, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_781stream_SAREXT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_780stream_SAREXT, "stream_SAREXT(ndarray high, ndarray low, double startvalue=-4e37, double offsetonreverse=-4e37, double accelerationinitlong=-4e37, double accelerationlong=-4e37, double accelerationmaxlong=-4e37, double accelerationinitshort=-4e37, double accelerationshort=-4e37, double accelerationmaxshort=-4e37)\n\nSAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\nParabolic SAR - Extended (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047]\nParameters:\n startvalue: 0.0\n offsetonreverse: 0.0\n accelerationinitlong: 0.02\n accelerationlong: 0.02\n accelerationmaxlong: 0.2\n accelerationinitshort: 0.02\n accelerationshort: 0.02\n accelerationmaxshort: 0.2\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_781stream_SAREXT = {"stream_SAREXT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_781stream_SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_780stream_SAREXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_781stream_SAREXT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - double __pyx_v_startvalue; - double __pyx_v_offsetonreverse; - double __pyx_v_accelerationinitlong; - double __pyx_v_accelerationlong; - double __pyx_v_accelerationmaxlong; - double __pyx_v_accelerationinitshort; - double __pyx_v_accelerationshort; - double __pyx_v_accelerationmaxshort; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SAREXT (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = &__pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream)) __PYX_ERR(3, 14629, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5581, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SAREXT", 0) < (0)) __PYX_ERR(5, 5581, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, i); __PYX_ERR(5, 5581, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 10: - values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 9: - values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5581, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5581, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5581, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_startvalue = ((double)((double)-4e37)); - } - if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_offsetonreverse = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_accelerationinitlong = ((double)((double)-4e37)); - } - if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_accelerationlong = ((double)((double)-4e37)); - } - if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); - } - if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_accelerationinitshort = ((double)((double)-4e37)); - } - if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_accelerationshort = ((double)((double)-4e37)); - } - if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5583, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(5, 5581, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14629, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14629, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14629, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5583, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5583, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_780stream_SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); + return -1; +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_LN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_LN_Stream = &__pyx_vtable_5talib_7_ta_lib_LN_Stream; + __pyx_vtable_5talib_7_ta_lib_LN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_LN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9LN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_LN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9LN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream)) __PYX_ERR(3, 14725, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream = &__pyx_type_5talib_7_ta_lib_LN_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14725, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_L7_cleaned_up:; - - - - - - - - + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_vtabptr_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14725, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14725, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LN_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return __pyx_r; + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_780stream_SAREXT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, double __pyx_v_startvalue, double __pyx_v_offsetonreverse, double __pyx_v_accelerationinitlong, double __pyx_v_accelerationlong, double __pyx_v_accelerationmaxlong, double __pyx_v_accelerationinitshort, double __pyx_v_accelerationshort, double __pyx_v_accelerationmaxshort) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SAREXT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5614, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SAREXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_LOG10_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream = &__pyx_vtable_5talib_7_ta_lib_LOG10_Stream; + __pyx_vtable_5talib_7_ta_lib_LOG10_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_LOG10_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_LOG10_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LOG10_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream)) __PYX_ERR(3, 14819, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream = &__pyx_type_5talib_7_ta_lib_LOG10_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14819, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14819, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LOG10_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14819, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_783stream_SIN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_782stream_SIN, "stream_SIN(ndarray real)\n\nSIN(real)\n\nVector Trigonometric Sin (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_783stream_SIN = {"stream_SIN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_783stream_SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_782stream_SIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_783stream_SIN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SIN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MA_Stream = &__pyx_vtable_5talib_7_ta_lib_MA_Stream; + __pyx_vtable_5talib_7_ta_lib_MA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9MA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9MA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream)) __PYX_ERR(3, 14913, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream = &__pyx_type_5talib_7_ta_lib_MA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5620, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5620, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SIN", 0) < (0)) __PYX_ERR(5, 5620, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, i); __PYX_ERR(5, 5620, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5620, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5620, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14913, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14913, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14913, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5622, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_782stream_SIN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_782stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SIN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5639, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5645, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MACD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MACD_Stream = &__pyx_vtable_5talib_7_ta_lib_MACD_Stream; + __pyx_vtable_5talib_7_ta_lib_MACD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MACD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MACD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MACD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream)) __PYX_ERR(3, 15012, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream = &__pyx_type_5talib_7_ta_lib_MACD_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 15012, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 15012, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 15012, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_785stream_SINH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_784stream_SINH, "stream_SINH(ndarray real)\n\nSINH(real)\n\nVector Trigonometric Sinh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_785stream_SINH = {"stream_SINH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_785stream_SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_784stream_SINH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_785stream_SINH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SINH (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream = &__pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream; + __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACDEXT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream)) __PYX_ERR(3, 15124, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream = &__pyx_type_5talib_7_ta_lib_MACDEXT_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5647, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5647, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SINH", 0) < (0)) __PYX_ERR(5, 5647, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, i); __PYX_ERR(5, 5647, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5647, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5647, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15124, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15124, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15124, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5649, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_784stream_SINH(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_784stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SINH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SINH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5671, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5672, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream = &__pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream; + __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACDFIX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream)) __PYX_ERR(3, 15239, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream = &__pyx_type_5talib_7_ta_lib_MACDFIX_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_787stream_SMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_786stream_SMA, "stream_SMA(ndarray real, int timeperiod=-0x80000000)\n\nSMA(real[, timeperiod=?])\n\nSimple Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_787stream_SMA = {"stream_SMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_787stream_SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_786stream_SMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_787stream_SMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MAMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream = &__pyx_vtable_5talib_7_ta_lib_MAMA_Stream; + __pyx_vtable_5talib_7_ta_lib_MAMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MAMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MAMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream)) __PYX_ERR(3, 15349, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream = &__pyx_type_5talib_7_ta_lib_MAMA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5674, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SMA", 0) < (0)) __PYX_ERR(5, 5674, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, i); __PYX_ERR(5, 5674, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5674, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15349, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15349, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15349, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_786stream_SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_786stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5695, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5700, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5701, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream = &__pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream; + __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MARKETFI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream)) __PYX_ERR(3, 15452, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream = &__pyx_type_5talib_7_ta_lib_MARKETFI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15452, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15452, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15452, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_789stream_SMI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_788stream_SMI, "stream_SMI(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, int fastperiod=-0x80000000, int slowperiod=-0x80000000, int signalperiod=-0x80000000)\n\nSMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?])\n\nStochastic Momentum Index (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 13\n fastperiod: 2\n slowperiod: 25\n signalperiod: 9\nOutputs:\n smi\n smisignal"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_789stream_SMI = {"stream_SMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_789stream_SMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_788stream_SMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_789stream_SMI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - int __pyx_v_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[7] = {0,0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SMI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MASSI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream = &__pyx_vtable_5talib_7_ta_lib_MASSI_Stream; + __pyx_vtable_5talib_7_ta_lib_MASSI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MASSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MASSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MASSI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream)) __PYX_ERR(3, 15550, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream = &__pyx_type_5talib_7_ta_lib_MASSI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5703, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SMI", 0) < (0)) __PYX_ERR(5, 5703, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SMI", 0, 3, 7, i); __PYX_ERR(5, 5703, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5703, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5703, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5703, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5703, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5705, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(5, 5703, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15550, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15550, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MASSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15550, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5705, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_788stream_SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_788stream_SMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, int __pyx_v_fastperiod, int __pyx_v_slowperiod, int __pyx_v_signalperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outsmi; - double __pyx_v_outsmisignal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SMI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5731, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5737, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outsmi = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outsmisignal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outsmi), (&__pyx_v_outsmisignal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5741, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5742, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5742, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5742, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5742, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 5742, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MAVP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream = &__pyx_vtable_5talib_7_ta_lib_MAVP_Stream; + __pyx_vtable_5talib_7_ta_lib_MAVP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MAVP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MAVP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAVP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream)) __PYX_ERR(3, 15649, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream = &__pyx_type_5talib_7_ta_lib_MAVP_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAVP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_791stream_SQRT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_790stream_SQRT, "stream_SQRT(ndarray real)\n\nSQRT(real)\n\nVector Square Root (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_791stream_SQRT = {"stream_SQRT", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_791stream_SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_790stream_SQRT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_791stream_SQRT(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SQRT (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MAX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MAX_Stream = &__pyx_vtable_5talib_7_ta_lib_MAX_Stream; + __pyx_vtable_5talib_7_ta_lib_MAX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MAX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MAX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MAX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream)) __PYX_ERR(3, 15750, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream = &__pyx_type_5talib_7_ta_lib_MAX_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5744, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5744, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SQRT", 0) < (0)) __PYX_ERR(5, 5744, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, i); __PYX_ERR(5, 5744, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5744, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5744, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15750, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15750, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15750, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5746, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_790stream_SQRT(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_790stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SQRT", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5763, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SQRT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5768, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5769, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream = &__pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream; + __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream)) __PYX_ERR(3, 15846, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream = &__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15846, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15846, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15846, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_793stream_STDDEV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_792stream_STDDEV, "stream_STDDEV(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nSTDDEV(real[, timeperiod=?, nbdev=?])\n\nStandard Deviation (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_793stream_STDDEV = {"stream_STDDEV", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_793stream_STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_792stream_STDDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_793stream_STDDEV(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdev; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STDDEV (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream = &__pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream; + __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream)) __PYX_ERR(3, 15946, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream = &__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5771, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5771, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5771, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5771, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STDDEV", 0) < (0)) __PYX_ERR(5, 5771, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, i); __PYX_ERR(5, 5771, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5771, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5771, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5771, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5773, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5773, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15946, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5771, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15946, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15946, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MFI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MFI_Stream = &__pyx_vtable_5talib_7_ta_lib_MFI_Stream; + __pyx_vtable_5talib_7_ta_lib_MFI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MFI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MFI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream)) __PYX_ERR(3, 16042, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream = &__pyx_type_5talib_7_ta_lib_MFI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16042, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16042, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16042, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5773, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_792stream_STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + return -1; +} - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream = &__pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream; + __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream)) __PYX_ERR(3, 16144, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream = &__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16144, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_L7_cleaned_up:; - - + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16144, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16144, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return __pyx_r; + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_792stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_STDDEV", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5793, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STDDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5798, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream = &__pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream; + __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream)) __PYX_ERR(3, 16240, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream = &__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16240, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16240, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16240, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_795stream_STOCH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_794stream_STOCH, "stream_STOCH(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int slowk_period=-0x80000000, int slowk_matype=0, int slowd_period=-0x80000000, int slowd_matype=0)\n\nSTOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\nStochastic (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0 (Simple Moving Average)\n slowd_period: 3\n slowd_matype: 0 (Simple Moving Average)\nOutputs:\n slowk\n slowd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_795stream_STOCH = {"stream_STOCH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_795stream_STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_794stream_STOCH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_795stream_STOCH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[8] = {0,0,0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STOCH (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MIN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MIN_Stream = &__pyx_vtable_5talib_7_ta_lib_MIN_Stream; + __pyx_vtable_5talib_7_ta_lib_MIN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MIN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream)) __PYX_ERR(3, 16338, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream = &__pyx_type_5talib_7_ta_lib_MIN_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5801, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCH", 0) < (0)) __PYX_ERR(5, 5801, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, i); __PYX_ERR(5, 5801, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 8: - values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 7: - values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5801, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5801, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5801, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5801, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)0)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5803, __pyx_L3_error) - } else { - __pyx_v_slowd_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 5801, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16338, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16338, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16338, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5803, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_794stream_STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_794stream_STOCH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_slowk_period, int __pyx_v_slowk_matype, int __pyx_v_slowd_period, int __pyx_v_slowd_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outslowk; - double __pyx_v_outslowd; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_STOCH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5830, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5836, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outslowk = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outslowd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STOCH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outslowk), (&__pyx_v_outslowd)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5840, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5841, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5841, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5841, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5841, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 5841, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MININDEX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream = &__pyx_vtable_5talib_7_ta_lib_MININDEX_Stream; + __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MININDEX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream)) __PYX_ERR(3, 16434, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream = &__pyx_type_5talib_7_ta_lib_MININDEX_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16434, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16434, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16434, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_797stream_STOCHF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_796stream_STOCHF, "stream_STOCHF(ndarray high, ndarray low, ndarray close, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Fast (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_797stream_STOCHF = {"stream_STOCHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_797stream_STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_796stream_STOCHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_797stream_STOCHF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STOCHF (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MINMAX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream = &__pyx_vtable_5talib_7_ta_lib_MINMAX_Stream; + __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINMAX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream)) __PYX_ERR(3, 16536, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream = &__pyx_type_5talib_7_ta_lib_MINMAX_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5843, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCHF", 0) < (0)) __PYX_ERR(5, 5843, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, i); __PYX_ERR(5, 5843, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5843, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5843, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5843, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5843, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5845, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5845, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5845, __pyx_L3_error) - } else { - __pyx_v_fastd_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 5843, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16536, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16536, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16536, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5845, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5845, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5845, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_796stream_STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_796stream_STOCHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outfastk; - double __pyx_v_outfastd; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_STOCHF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5870, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5876, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STOCHF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5880, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5881, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 5881, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream = &__pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream; + __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream)) __PYX_ERR(3, 16640, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream = &__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16640, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16640, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16640, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_799stream_STOCHRSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_798stream_STOCHRSI, "stream_STOCHRSI(ndarray real, int timeperiod=-0x80000000, int fastk_period=-0x80000000, int fastd_period=-0x80000000, int fastd_matype=0)\n\nSTOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\nStochastic Relative Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0 (Simple Moving Average)\nOutputs:\n fastk\n fastd"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_799stream_STOCHRSI = {"stream_STOCHRSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_799stream_STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_798stream_STOCHRSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_799stream_STOCHRSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STOCHRSI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream = &__pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream; + __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream)) __PYX_ERR(3, 16749, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream = &__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5883, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_STOCHRSI", 0) < (0)) __PYX_ERR(5, 5883, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, i); __PYX_ERR(5, 5883, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5883, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5883, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5885, __pyx_L3_error) - } else { - __pyx_v_fastd_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 5883, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16749, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16749, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16749, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5885, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_798stream_STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_798stream_STOCHRSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_fastk_period, int __pyx_v_fastd_period, int __pyx_v_fastd_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outfastk; - double __pyx_v_outfastd; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_STOCHRSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5909, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STOCHRSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5916, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5916, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(5, 5916, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_3; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream = &__pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream; + __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream)) __PYX_ERR(3, 16849, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream = &__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16849, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_3 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16849, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16849, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_801stream_SUB(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_800stream_SUB, "stream_SUB(ndarray real0, ndarray real1)\n\nSUB(real0, real1)\n\nVector Arithmetic Subtraction (Math Operators)\n\nInputs:\n real0: (any ndarray)\n real1: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_801stream_SUB = {"stream_SUB", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_801stream_SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_800stream_SUB}; -static PyObject *__pyx_pw_5talib_7_ta_lib_801stream_SUB(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real0 = 0; - PyArrayObject *__pyx_v_real1 = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SUB (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MOM_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MOM_Stream = &__pyx_vtable_5talib_7_ta_lib_MOM_Stream; + __pyx_vtable_5talib_7_ta_lib_MOM_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MOM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MOM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MOM_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MOM_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream)) __PYX_ERR(3, 16947, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream = &__pyx_type_5talib_7_ta_lib_MOM_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5918, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5918, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5918, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUB", 0) < (0)) __PYX_ERR(5, 5918, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, i); __PYX_ERR(5, 5918, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5918, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5918, __pyx_L3_error) - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5918, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 5920, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 5920, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_800stream_SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_800stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SUB", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real0); - __Pyx_INCREF((PyObject *)__pyx_v_real1); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5943, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SUB((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5947, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_MULT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_MULT_Stream = &__pyx_vtable_5talib_7_ta_lib_MULT_Stream; + __pyx_vtable_5talib_7_ta_lib_MULT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_MULT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_MULT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MULT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MULT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream)) __PYX_ERR(3, 17043, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream = &__pyx_type_5talib_7_ta_lib_MULT_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MULT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_803stream_SUM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_802stream_SUM, "stream_SUM(ndarray real, int timeperiod=-0x80000000)\n\nSUM(real[, timeperiod=?])\n\nSummation (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_803stream_SUM = {"stream_SUM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_803stream_SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_802stream_SUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_803stream_SUM(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_NATR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_NATR_Stream = &__pyx_vtable_5talib_7_ta_lib_NATR_Stream; + __pyx_vtable_5talib_7_ta_lib_NATR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_NATR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_NATR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11NATR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_NATR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream)) __PYX_ERR(3, 17140, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream = &__pyx_type_5talib_7_ta_lib_NATR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17140, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17140, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17140, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SUM (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_NVI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_NVI_Stream = &__pyx_vtable_5talib_7_ta_lib_NVI_Stream; + __pyx_vtable_5talib_7_ta_lib_NVI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_NVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_NVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10NVI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_NVI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream)) __PYX_ERR(3, 17240, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream = &__pyx_type_5talib_7_ta_lib_NVI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5949, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5949, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5949, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUM", 0) < (0)) __PYX_ERR(5, 5949, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, i); __PYX_ERR(5, 5949, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5949, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5949, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5951, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17240, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_getattro = PyObject_GenericGetAttr; } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5949, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17240, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17240, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_OBV_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_OBV_Stream = &__pyx_vtable_5talib_7_ta_lib_OBV_Stream; + __pyx_vtable_5talib_7_ta_lib_OBV_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_OBV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_OBV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10OBV_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_OBV_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream)) __PYX_ERR(3, 17336, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream = &__pyx_type_5talib_7_ta_lib_OBV_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_vtabptr_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_OBV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5951, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_802stream_SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_802stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SUM", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SUM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream = &__pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream; + __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream)) __PYX_ERR(3, 17433, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream = &__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17433, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17433, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17433, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_805stream_SUPERTREND(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_804stream_SUPERTREND, "stream_SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_805stream_SUPERTREND = {"stream_SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_805stream_SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_804stream_SUPERTREND}; -static PyObject *__pyx_pw_5talib_7_ta_lib_805stream_SUPERTREND(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - double __pyx_v_multiplier; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SUPERTREND (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream = &__pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream; + __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream)) __PYX_ERR(3, 17530, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream = &__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5978, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_SUPERTREND", 0) < (0)) __PYX_ERR(5, 5978, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_SUPERTREND", 0, 3, 5, i); __PYX_ERR(5, 5978, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5978, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5978, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5978, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5978, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5980, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5980, __pyx_L3_error) - } else { - __pyx_v_multiplier = ((double)((double)3.0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(5, 5978, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5980, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5980, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5980, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_804stream_SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_804stream_SUPERTREND(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod, double __pyx_v_multiplier) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SUPERTREND", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6004, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6008, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6010, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_SUPERTREND((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6015, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 6015, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream = &__pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream; + __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream)) __PYX_ERR(3, 17626, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream = &__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17626, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17626, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17626, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_807stream_T3(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_806stream_T3, "stream_T3(ndarray real, int timeperiod=-0x80000000, double vfactor=-4e37)\n\nT3(real[, timeperiod=?, vfactor=?])\n\nTriple Exponential Moving Average (T3) (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n vfactor: 0.7\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_807stream_T3 = {"stream_T3", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_807stream_T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_806stream_T3}; -static PyObject *__pyx_pw_5talib_7_ta_lib_807stream_T3(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_vfactor; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_T3 (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream = &__pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream; + __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream)) __PYX_ERR(3, 17726, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream = &__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6017, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6017, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6017, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6017, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_T3", 0) < (0)) __PYX_ERR(5, 6017, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, i); __PYX_ERR(5, 6017, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6017, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6017, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6017, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6019, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6019, __pyx_L3_error) - } else { - __pyx_v_vfactor = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6017, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17726, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17726, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17726, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6019, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_806stream_T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_806stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_T3", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6039, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_T3((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PPO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PPO_Stream = &__pyx_vtable_5talib_7_ta_lib_PPO_Stream; + __pyx_vtable_5talib_7_ta_lib_PPO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PPO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PPO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PPO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PPO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream)) __PYX_ERR(3, 17824, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream = &__pyx_type_5talib_7_ta_lib_PPO_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17824, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17824, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17824, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_809stream_TAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_808stream_TAN, "stream_TAN(ndarray real)\n\nTAN(real)\n\nVector Trigonometric Tan (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_809stream_TAN = {"stream_TAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_809stream_TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_808stream_TAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_809stream_TAN(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TAN (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PVI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PVI_Stream = &__pyx_vtable_5talib_7_ta_lib_PVI_Stream; + __pyx_vtable_5talib_7_ta_lib_PVI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream)) __PYX_ERR(3, 17922, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream = &__pyx_type_5talib_7_ta_lib_PVI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6047, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6047, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TAN", 0) < (0)) __PYX_ERR(5, 6047, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, i); __PYX_ERR(5, 6047, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6047, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6047, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17922, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17922, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17922, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6049, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_808stream_TAN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_808stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TAN", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6066, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PVO_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PVO_Stream = &__pyx_vtable_5talib_7_ta_lib_PVO_Stream; + __pyx_vtable_5talib_7_ta_lib_PVO_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PVO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PVO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVO_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVO_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream)) __PYX_ERR(3, 18018, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream = &__pyx_type_5talib_7_ta_lib_PVO_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 18018, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 18018, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 18018, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_811stream_TANH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_810stream_TANH, "stream_TANH(ndarray real)\n\nTANH(real)\n\nVector Trigonometric Tanh (Math Transform)\n\nInputs:\n real: (any ndarray)\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_811stream_TANH = {"stream_TANH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_811stream_TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_810stream_TANH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_811stream_TANH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TANH (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_PVT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_PVT_Stream = &__pyx_vtable_5talib_7_ta_lib_PVT_Stream; + __pyx_vtable_5talib_7_ta_lib_PVT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_PVT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_PVT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream)) __PYX_ERR(3, 18116, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream = &__pyx_type_5talib_7_ta_lib_PVT_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6074, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6074, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TANH", 0) < (0)) __PYX_ERR(5, 6074, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, i); __PYX_ERR(5, 6074, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6074, __pyx_L3_error) - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6074, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18116, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18116, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18116, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6076, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_810stream_TANH(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_810stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TANH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6093, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TANH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_QSTICK_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream = &__pyx_vtable_5talib_7_ta_lib_QSTICK_Stream; + __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_QSTICK_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream)) __PYX_ERR(3, 18212, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream = &__pyx_type_5talib_7_ta_lib_QSTICK_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18212, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18212, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18212, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_813stream_TEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_812stream_TEMA, "stream_TEMA(ndarray real, int timeperiod=-0x80000000)\n\nTEMA(real[, timeperiod=?])\n\nTriple Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_813stream_TEMA = {"stream_TEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_813stream_TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_812stream_TEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_813stream_TEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TEMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_RMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_RMA_Stream = &__pyx_vtable_5talib_7_ta_lib_RMA_Stream; + __pyx_vtable_5talib_7_ta_lib_RMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_RMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_RMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream)) __PYX_ERR(3, 18310, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream = &__pyx_type_5talib_7_ta_lib_RMA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6101, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6101, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6101, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TEMA", 0) < (0)) __PYX_ERR(5, 6101, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, i); __PYX_ERR(5, 6101, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6101, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6101, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6103, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6101, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6103, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_812stream_TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_812stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TEMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6128, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ROC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ROC_Stream = &__pyx_vtable_5talib_7_ta_lib_ROC_Stream; + __pyx_vtable_5talib_7_ta_lib_ROC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ROC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ROC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ROC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream)) __PYX_ERR(3, 18406, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream = &__pyx_type_5talib_7_ta_lib_ROC_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_815stream_TRANGE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_814stream_TRANGE, "stream_TRANGE(ndarray high, ndarray low, ndarray close)\n\nTRANGE(high, low, close)\n\nTrue Range (Volatility Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_815stream_TRANGE = {"stream_TRANGE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_815stream_TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_814stream_TRANGE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_815stream_TRANGE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TRANGE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ROCP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream = &__pyx_vtable_5talib_7_ta_lib_ROCP_Stream; + __pyx_vtable_5talib_7_ta_lib_ROCP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ROCP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ROCP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream)) __PYX_ERR(3, 18502, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream = &__pyx_type_5talib_7_ta_lib_ROCP_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6130, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6130, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6130, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6130, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRANGE", 0) < (0)) __PYX_ERR(5, 6130, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, i); __PYX_ERR(5, 6130, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6130, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6130, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6130, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6130, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6132, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6132, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6132, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_814stream_TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_814stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRANGE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6157, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TRANGE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6161, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ROCR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream = &__pyx_vtable_5talib_7_ta_lib_ROCR_Stream; + __pyx_vtable_5talib_7_ta_lib_ROCR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ROCR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ROCR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream)) __PYX_ERR(3, 18598, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream = &__pyx_type_5talib_7_ta_lib_ROCR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_817stream_TRIMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_816stream_TRIMA, "stream_TRIMA(ndarray real, int timeperiod=-0x80000000)\n\nTRIMA(real[, timeperiod=?])\n\nTriangular Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_817stream_TRIMA = {"stream_TRIMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_817stream_TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_816stream_TRIMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_817stream_TRIMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TRIMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ROCR100_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream = &__pyx_vtable_5talib_7_ta_lib_ROCR100_Stream; + __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCR100_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream)) __PYX_ERR(3, 18694, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream = &__pyx_type_5talib_7_ta_lib_ROCR100_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6163, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6163, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6163, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRIMA", 0) < (0)) __PYX_ERR(5, 6163, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, i); __PYX_ERR(5, 6163, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6163, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6163, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6165, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6163, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6165, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_816stream_TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_816stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRIMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TRIMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_RSI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_RSI_Stream = &__pyx_vtable_5talib_7_ta_lib_RSI_Stream; + __pyx_vtable_5talib_7_ta_lib_RSI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_RSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_RSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RSI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RSI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream)) __PYX_ERR(3, 18790, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream = &__pyx_type_5talib_7_ta_lib_RSI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_819stream_TRIX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_818stream_TRIX, "stream_TRIX(ndarray real, int timeperiod=-0x80000000)\n\nTRIX(real[, timeperiod=?])\n\n1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_819stream_TRIX = {"stream_TRIX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_819stream_TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_818stream_TRIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_819stream_TRIX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TRIX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_RVI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_RVI_Stream = &__pyx_vtable_5talib_7_ta_lib_RVI_Stream; + __pyx_vtable_5talib_7_ta_lib_RVI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_RVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_RVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RVI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RVI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream)) __PYX_ERR(3, 18886, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream = &__pyx_type_5talib_7_ta_lib_RVI_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6192, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6192, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6192, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TRIX", 0) < (0)) __PYX_ERR(5, 6192, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, i); __PYX_ERR(5, 6192, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6192, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6192, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6194, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6192, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18886, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18886, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18886, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6194, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_818stream_TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_818stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRIX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TRIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_RVOL_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream = &__pyx_vtable_5talib_7_ta_lib_RVOL_Stream; + __pyx_vtable_5talib_7_ta_lib_RVOL_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_RVOL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_RVOL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RVOL_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream)) __PYX_ERR(3, 18983, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream = &__pyx_type_5talib_7_ta_lib_RVOL_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVOL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_821stream_TSF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_820stream_TSF, "stream_TSF(ndarray real, int timeperiod=-0x80000000)\n\nTSF(real[, timeperiod=?])\n\nTime Series Forecast (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_821stream_TSF = {"stream_TSF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_821stream_TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_820stream_TSF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_821stream_TSF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TSF (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SAR_Stream = &__pyx_vtable_5talib_7_ta_lib_SAR_Stream; + __pyx_vtable_5talib_7_ta_lib_SAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream)) __PYX_ERR(3, 19079, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream = &__pyx_type_5talib_7_ta_lib_SAR_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6221, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6221, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6221, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TSF", 0) < (0)) __PYX_ERR(5, 6221, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, i); __PYX_ERR(5, 6221, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6221, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6221, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6223, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6221, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19079, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19079, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19079, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6223, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_820stream_TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_820stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TSF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6242, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TSF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SAREXT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream = &__pyx_vtable_5talib_7_ta_lib_SAREXT_Stream; + __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SAREXT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream)) __PYX_ERR(3, 19178, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream = &__pyx_type_5talib_7_ta_lib_SAREXT_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_823stream_TSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_822stream_TSI, "stream_TSI(ndarray real, int firstperiod=-0x80000000, int secondperiod=-0x80000000)\n\nTSI(real[, firstperiod=?, secondperiod=?])\n\nTrue Strength Index (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n firstperiod: 25\n secondperiod: 13\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_823stream_TSI = {"stream_TSI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_823stream_TSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_822stream_TSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_823stream_TSI(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_firstperiod; - int __pyx_v_secondperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TSI (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SIN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SIN_Stream = &__pyx_vtable_5talib_7_ta_lib_SIN_Stream; + __pyx_vtable_5talib_7_ta_lib_SIN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SIN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SIN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream)) __PYX_ERR(3, 19283, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream = &__pyx_type_5talib_7_ta_lib_SIN_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6250, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6250, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6250, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6250, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TSI", 0) < (0)) __PYX_ERR(5, 6250, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TSI", 0, 1, 3, i); __PYX_ERR(5, 6250, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6250, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6250, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6250, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6252, __pyx_L3_error) - } else { - __pyx_v_firstperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6252, __pyx_L3_error) - } else { - __pyx_v_secondperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6250, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19283, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19283, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19283, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6252, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_822stream_TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_822stream_TSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_firstperiod, int __pyx_v_secondperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TSI", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6272, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6277, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SINH_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SINH_Stream = &__pyx_vtable_5talib_7_ta_lib_SINH_Stream; + __pyx_vtable_5talib_7_ta_lib_SINH_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SINH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SINH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11SINH_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SINH_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream)) __PYX_ERR(3, 19377, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream = &__pyx_type_5talib_7_ta_lib_SINH_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19377, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_vtabptr_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19377, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SINH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19377, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_825stream_TYPPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_824stream_TYPPRICE, "stream_TYPPRICE(ndarray high, ndarray low, ndarray close)\n\nTYPPRICE(high, low, close)\n\nTypical Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_825stream_TYPPRICE = {"stream_TYPPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_825stream_TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_824stream_TYPPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_825stream_TYPPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_TYPPRICE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SMA_Stream = &__pyx_vtable_5talib_7_ta_lib_SMA_Stream; + __pyx_vtable_5talib_7_ta_lib_SMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream)) __PYX_ERR(3, 19471, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream = &__pyx_type_5talib_7_ta_lib_SMA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6280, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6280, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6280, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6280, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_TYPPRICE", 0) < (0)) __PYX_ERR(5, 6280, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, i); __PYX_ERR(5, 6280, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6280, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6280, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6280, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6280, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6282, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6282, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6282, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_824stream_TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_824stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TYPPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6307, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TYPPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SMI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SMI_Stream = &__pyx_vtable_5talib_7_ta_lib_SMI_Stream; + __pyx_vtable_5talib_7_ta_lib_SMI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SMI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SMI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream)) __PYX_ERR(3, 19569, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream = &__pyx_type_5talib_7_ta_lib_SMI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19569, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19569, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19569, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_827stream_ULTOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_826stream_ULTOSC, "stream_ULTOSC(ndarray high, ndarray low, ndarray close, int timeperiod1=-0x80000000, int timeperiod2=-0x80000000, int timeperiod3=-0x80000000)\n\nULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\nUltimate Oscillator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_827stream_ULTOSC = {"stream_ULTOSC", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_827stream_ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_826stream_ULTOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_827stream_ULTOSC(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod1; - int __pyx_v_timeperiod2; - int __pyx_v_timeperiod3; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[6] = {0,0,0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ULTOSC (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SQRT_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream = &__pyx_vtable_5talib_7_ta_lib_SQRT_Stream; + __pyx_vtable_5talib_7_ta_lib_SQRT_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SQRT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SQRT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SQRT_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream)) __PYX_ERR(3, 19678, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream = &__pyx_type_5talib_7_ta_lib_SQRT_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6313, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ULTOSC", 0) < (0)) __PYX_ERR(5, 6313, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, i); __PYX_ERR(5, 6313, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 6: - values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6313, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6313, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6313, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6313, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6315, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6315, __pyx_L3_error) - } else { - __pyx_v_timeperiod2 = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6315, __pyx_L3_error) - } else { - __pyx_v_timeperiod3 = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 6313, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19678, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19678, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SQRT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19678, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6315, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6315, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6315, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_826stream_ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_826stream_ULTOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod1, int __pyx_v_timeperiod2, int __pyx_v_timeperiod3) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ULTOSC", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6338, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6340, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6344, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ULTOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6348, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_STDDEV_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream = &__pyx_vtable_5talib_7_ta_lib_STDDEV_Stream; + __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STDDEV_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream)) __PYX_ERR(3, 19772, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream = &__pyx_type_5talib_7_ta_lib_STDDEV_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19772, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19772, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19772, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} - /* function exit code */ +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_STOCH_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream = &__pyx_vtable_5talib_7_ta_lib_STOCH_Stream; + __pyx_vtable_5talib_7_ta_lib_STOCH_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_STOCH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_STOCH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCH_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream)) __PYX_ERR(3, 19871, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream = &__pyx_type_5talib_7_ta_lib_STOCH_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19871, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19871, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19871, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_829stream_VAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_828stream_VAR, "stream_VAR(ndarray real, int timeperiod=-0x80000000, double nbdev=-4e37)\n\nVAR(real[, timeperiod=?, nbdev=?])\n\nVariance (Statistic Functions)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 5\n nbdev: 1.0\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_829stream_VAR = {"stream_VAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_829stream_VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_828stream_VAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_829stream_VAR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - double __pyx_v_nbdev; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_VAR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_STOCHF_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream = &__pyx_vtable_5talib_7_ta_lib_STOCHF_Stream; + __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCHF_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream)) __PYX_ERR(3, 19983, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream = &__pyx_type_5talib_7_ta_lib_STOCHF_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6350, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VAR", 0) < (0)) __PYX_ERR(5, 6350, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, i); __PYX_ERR(5, 6350, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6350, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6350, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6352, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6352, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6350, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6352, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_828stream_VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_828stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_VAR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6372, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_VAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream = &__pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream; + __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream)) __PYX_ERR(3, 20093, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream = &__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20093, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20093, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20093, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_831stream_VHF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_830stream_VHF, "stream_VHF(ndarray real, int timeperiod=-0x80000000)\n\nVHF(real[, timeperiod=?])\n\nVertical Horizontal Filter (Momentum Indicators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 28\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_831stream_VHF = {"stream_VHF", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_831stream_VHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_830stream_VHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_831stream_VHF(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_VHF (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SUB_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SUB_Stream = &__pyx_vtable_5talib_7_ta_lib_SUB_Stream; + __pyx_vtable_5talib_7_ta_lib_SUB_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SUB_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SUB_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SUB_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUB_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream)) __PYX_ERR(3, 20198, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream = &__pyx_type_5talib_7_ta_lib_SUB_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6380, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6380, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6380, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VHF", 0) < (0)) __PYX_ERR(5, 6380, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VHF", 0, 1, 2, i); __PYX_ERR(5, 6380, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6380, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6380, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6382, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6380, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20198, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20198, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUB_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20198, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6382, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_830stream_VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_830stream_VHF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_VHF", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6401, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_VHF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6407, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SUM_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SUM_Stream = &__pyx_vtable_5talib_7_ta_lib_SUM_Stream; + __pyx_vtable_5talib_7_ta_lib_SUM_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SUM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SUM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SUM_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUM_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream)) __PYX_ERR(3, 20295, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream = &__pyx_type_5talib_7_ta_lib_SUM_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20295, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20295, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20295, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_VHF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_833stream_VORTEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_832stream_VORTEX, "stream_VORTEX(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nVORTEX(high, low, close[, timeperiod=?])\n\nVortex Indicator (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n plusvi\n minusvi"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_833stream_VORTEX = {"stream_VORTEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_833stream_VORTEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_832stream_VORTEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_833stream_VORTEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_VORTEX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream = &__pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream; + __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream)) __PYX_ERR(3, 20393, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream = &__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6409, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6409, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6409, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6409, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6409, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VORTEX", 0) < (0)) __PYX_ERR(5, 6409, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VORTEX", 0, 3, 4, i); __PYX_ERR(5, 6409, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6409, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6409, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6409, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6409, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6411, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6409, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20393, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20393, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20393, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6411, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6411, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6411, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_832stream_VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_832stream_VORTEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outplusvi; - double __pyx_v_outminusvi; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_VORTEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6440, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outplusvi = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outminusvi = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_VORTEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outplusvi), (&__pyx_v_outminusvi)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6445, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 6445, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_3 = 0; - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_4; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_T3_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_T3_Stream = &__pyx_vtable_5talib_7_ta_lib_T3_Stream; + __pyx_vtable_5talib_7_ta_lib_T3_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_T3_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9T3_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_T3_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9T3_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_T3_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream)) __PYX_ERR(3, 20500, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream = &__pyx_type_5talib_7_ta_lib_T3_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20500, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_4 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_vtabptr_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20500, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_T3_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20500, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_T3_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("talib._ta_lib.stream_VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_835stream_VWAP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_834stream_VWAP, "stream_VWAP(ndarray high, ndarray low, ndarray close, ndarray volume)\n\nVWAP(high, low, close, volume)\n\nVolume Weighted Average Price (Volume Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047, \047volume\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_835stream_VWAP = {"stream_VWAP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_835stream_VWAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_834stream_VWAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_835stream_VWAP(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - PyArrayObject *__pyx_v_volume = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_VWAP (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TAN_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TAN_Stream = &__pyx_vtable_5talib_7_ta_lib_TAN_Stream; + __pyx_vtable_5talib_7_ta_lib_TAN_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TAN_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TAN_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream)) __PYX_ERR(3, 20597, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream = &__pyx_type_5talib_7_ta_lib_TAN_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6447, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6447, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6447, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6447, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6447, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VWAP", 0) < (0)) __PYX_ERR(5, 6447, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VWAP", 1, 4, 4, i); __PYX_ERR(5, 6447, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6447, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6447, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6447, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6447, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - __pyx_v_volume = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 6447, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20597, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20597, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20597, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6449, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_834stream_VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_834stream_VWAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_VWAP", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6477, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_VWAP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6481, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TANH_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TANH_Stream = &__pyx_vtable_5talib_7_ta_lib_TANH_Stream; + __pyx_vtable_5talib_7_ta_lib_TANH_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TANH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TANH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TANH_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TANH_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream)) __PYX_ERR(3, 20691, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream = &__pyx_type_5talib_7_ta_lib_TANH_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20691, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_vtabptr_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20691, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TANH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20691, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_VWAP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_837stream_VWMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_836stream_VWMA, "stream_VWMA(ndarray real, ndarray volume, int timeperiod=-0x80000000)\n\nVWMA(real, volume[, timeperiod=?])\n\nVolume Weighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\n prices: [\047volume\047]\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_837stream_VWMA = {"stream_VWMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_837stream_VWMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_836stream_VWMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_837stream_VWMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - PyArrayObject *__pyx_v_volume = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_VWMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TEMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream = &__pyx_vtable_5talib_7_ta_lib_TEMA_Stream; + __pyx_vtable_5talib_7_ta_lib_TEMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TEMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream)) __PYX_ERR(3, 20785, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream = &__pyx_type_5talib_7_ta_lib_TEMA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6483, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6483, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6483, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6483, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_VWMA", 0) < (0)) __PYX_ERR(5, 6483, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_VWMA", 0, 2, 3, i); __PYX_ERR(5, 6483, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6483, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6483, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6483, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6485, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 6483, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20785, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20785, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20785, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6485, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6485, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_836stream_VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_836stream_VWMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_VWMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - __Pyx_INCREF((PyObject *)__pyx_v_volume); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6506, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6510, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_VWMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TRANGE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream = &__pyx_vtable_5talib_7_ta_lib_TRANGE_Stream; + __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRANGE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream)) __PYX_ERR(3, 20881, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream = &__pyx_type_5talib_7_ta_lib_TRANGE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20881, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20881, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20881, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_839stream_WAD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_838stream_WAD, "stream_WAD(ndarray high, ndarray low, ndarray close)\n\nWAD(high, low, close)\n\nWilliams\047 Accumulation/Distribution (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_839stream_WAD = {"stream_WAD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_839stream_WAD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_838stream_WAD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_839stream_WAD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_WAD (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TRIMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream = &__pyx_vtable_5talib_7_ta_lib_TRIMA_Stream; + __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRIMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream)) __PYX_ERR(3, 20979, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream = &__pyx_type_5talib_7_ta_lib_TRIMA_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6516, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6516, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6516, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6516, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WAD", 0) < (0)) __PYX_ERR(5, 6516, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WAD", 1, 3, 3, i); __PYX_ERR(5, 6516, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6516, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6516, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6516, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6516, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20979, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20979, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20979, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6518, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6518, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6518, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_838stream_WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} - /* function exit code */ - goto __pyx_L0; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TRIX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream = &__pyx_vtable_5talib_7_ta_lib_TRIX_Stream; + __pyx_vtable_5talib_7_ta_lib_TRIX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TRIX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TRIX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRIX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream)) __PYX_ERR(3, 21075, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream = &__pyx_type_5talib_7_ta_lib_TRIX_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21075, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21075, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21075, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TSF_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TSF_Stream = &__pyx_vtable_5talib_7_ta_lib_TSF_Stream; + __pyx_vtable_5talib_7_ta_lib_TSF_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TSF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TSF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TSF_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TSF_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream)) __PYX_ERR(3, 21171, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream = &__pyx_type_5talib_7_ta_lib_TSF_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21171, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_getattro = PyObject_GenericGetAttr; } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21171, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21171, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TSI_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TSI_Stream = &__pyx_vtable_5talib_7_ta_lib_TSI_Stream; + __pyx_vtable_5talib_7_ta_lib_TSI_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TSI_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TSI_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream)) __PYX_ERR(3, 21267, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream = &__pyx_type_5talib_7_ta_lib_TSI_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21267, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_L7_cleaned_up:; + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21267, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21267, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return __pyx_r; + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_838stream_WAD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_WAD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6543, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_WAD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6546, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream = &__pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream; + __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream)) __PYX_ERR(3, 21364, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream = &__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21364, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21364, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21364, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_WAD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_841stream_WCLPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_840stream_WCLPRICE, "stream_WCLPRICE(ndarray high, ndarray low, ndarray close)\n\nWCLPRICE(high, low, close)\n\nWeighted Close Price (Price Transform)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_841stream_WCLPRICE = {"stream_WCLPRICE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_841stream_WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_840stream_WCLPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_841stream_WCLPRICE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_WCLPRICE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream = &__pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream; + __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ULTOSC_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream)) __PYX_ERR(3, 21462, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream = &__pyx_type_5talib_7_ta_lib_ULTOSC_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6549, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6549, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6549, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6549, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WCLPRICE", 0) < (0)) __PYX_ERR(5, 6549, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, i); __PYX_ERR(5, 6549, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6549, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6549, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6549, __pyx_L3_error) - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6549, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21462, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21462, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21462, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6551, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6551, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6551, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_840stream_WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_840stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_WCLPRICE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6570, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6576, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_WCLPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_VAR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_VAR_Stream = &__pyx_vtable_5talib_7_ta_lib_VAR_Stream; + __pyx_vtable_5talib_7_ta_lib_VAR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_VAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_VAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10VAR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VAR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream)) __PYX_ERR(3, 21564, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream = &__pyx_type_5talib_7_ta_lib_VAR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21564, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21564, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21564, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_843stream_WILLR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_842stream_WILLR, "stream_WILLR(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000)\n\nWILLR(high, low, close[, timeperiod=?])\n\nWilliams\047 %R (Momentum Indicators)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 14\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_843stream_WILLR = {"stream_WILLR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_843stream_WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_842stream_WILLR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_843stream_WILLR(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_WILLR (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_VHF_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_VHF_Stream = &__pyx_vtable_5talib_7_ta_lib_VHF_Stream; + __pyx_vtable_5talib_7_ta_lib_VHF_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_VHF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_VHF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10VHF_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VHF_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream)) __PYX_ERR(3, 21661, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream = &__pyx_type_5talib_7_ta_lib_VHF_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6582, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WILLR", 0) < (0)) __PYX_ERR(5, 6582, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, i); __PYX_ERR(5, 6582, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6582, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6582, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6582, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6582, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - __pyx_v_close = ((PyArrayObject *)values[2]); - if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6584, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6582, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21661, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21661, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21661, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6584, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6584, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6584, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_842stream_WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_842stream_WILLR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_WILLR", 0); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6605, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)); - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6611, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_WILLR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6614, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_VORTEX_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream = &__pyx_vtable_5talib_7_ta_lib_VORTEX_Stream; + __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VORTEX_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream)) __PYX_ERR(3, 21759, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream = &__pyx_type_5talib_7_ta_lib_VORTEX_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21759, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21759, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21759, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_845stream_WMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_844stream_WMA, "stream_WMA(ndarray real, int timeperiod=-0x80000000)\n\nWMA(real[, timeperiod=?])\n\nWeighted Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_845stream_WMA = {"stream_WMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_845stream_WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_844stream_WMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_845stream_WMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_WMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_VWAP_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream = &__pyx_vtable_5talib_7_ta_lib_VWAP_Stream; + __pyx_vtable_5talib_7_ta_lib_VWAP_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_VWAP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_VWAP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VWAP_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream)) __PYX_ERR(3, 21865, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream = &__pyx_type_5talib_7_ta_lib_VWAP_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6617, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6617, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6617, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_WMA", 0) < (0)) __PYX_ERR(5, 6617, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, i); __PYX_ERR(5, 6617, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6617, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6617, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6619, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6617, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21865, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21865, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21865, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6619, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_844stream_WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_844stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_WMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_WMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_VWMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream = &__pyx_vtable_5talib_7_ta_lib_VWMA_Stream; + __pyx_vtable_5talib_7_ta_lib_VWMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_VWMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_VWMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VWMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream)) __PYX_ERR(3, 21965, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream = &__pyx_type_5talib_7_ta_lib_VWMA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_847stream_ZLEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_846stream_ZLEMA, "stream_ZLEMA(ndarray real, int timeperiod=-0x80000000)\n\nZLEMA(real[, timeperiod=?])\n\nZero-Lag Exponential Moving Average (Overlap Studies)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n real"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_847stream_ZLEMA = {"stream_ZLEMA", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_847stream_ZLEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_846stream_ZLEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_847stream_ZLEMA(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_mstatetype *__pyx_mstate) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_ZLEMA (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_WAD_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_WAD_Stream = &__pyx_vtable_5talib_7_ta_lib_WAD_Stream; + __pyx_vtable_5talib_7_ta_lib_WAD_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_WAD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_WAD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10WAD_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WAD_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream)) __PYX_ERR(3, 22064, __pyx_L1_error) #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream = &__pyx_type_5talib_7_ta_lib_WAD_Stream; #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6646, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6646, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6646, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "stream_ZLEMA", 0) < (0)) __PYX_ERR(5, 6646, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("stream_ZLEMA", 0, 1, 2, i); __PYX_ERR(5, 6646, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6646, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6646, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6648, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6646, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22064, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_getattro = PyObject_GenericGetAttr; } - __Pyx_AddTraceback("talib._ta_lib.stream_ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_vtabptr_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22064, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WAD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22064, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6648, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_846stream_ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; + return 0; __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __pyx_L7_cleaned_up:; - + __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -static PyObject *__pyx_pf_5talib_7_ta_lib_846stream_ZLEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ZLEMA", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)); - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ZLEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6672, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6673, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; - } - __Pyx_XDECREF(__pyx_temp); + CYTHON_UNUSED_VAR(__pyx_mstate); + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream = &__pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream; + __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream)) __PYX_ERR(3, 22162, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream = &__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22162, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22162, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22162, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_base.__weakref__); + #endif + __Pyx_RefNannyFinishContext(); + return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ZLEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); - return __pyx_r; + return -1; } -/* #### Code section: module_exttypes ### */ - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; -/* #### Code section: initfunc_declarations ### */ -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_InitAfterSharedUtility(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_Variable_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_Function_import_code(__pyx_mstatetype *__pyx_mstate); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate); /*proto*/ -/* #### Code section: init_module ### */ -static int __Pyx_modinit_Global_init_code(__pyx_mstatetype *__pyx_mstate) { +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_Global_init_code", 0); - /*--- Global init code ---*/ + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_WILLR_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream = &__pyx_vtable_5talib_7_ta_lib_WILLR_Stream; + __pyx_vtable_5talib_7_ta_lib_WILLR_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_WILLR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_WILLR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WILLR_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream)) __PYX_ERR(3, 22260, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream = &__pyx_type_5talib_7_ta_lib_WILLR_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22260, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22260, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WILLR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22260, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } -static int __Pyx_modinit_Variable_export_code(__pyx_mstatetype *__pyx_mstate) { +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_Variable_export_code", 0); - /*--- Variable export code ---*/ + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_WMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_WMA_Stream = &__pyx_vtable_5talib_7_ta_lib_WMA_Stream; + __pyx_vtable_5talib_7_ta_lib_WMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_WMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_WMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10WMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream)) __PYX_ERR(3, 22360, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream = &__pyx_type_5talib_7_ta_lib_WMA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22360, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22360, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22360, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } -static int __Pyx_modinit_Function_export_code(__pyx_mstatetype *__pyx_mstate) { +static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_mstatetype *__pyx_mstate) { __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); - __Pyx_RefNannySetupContext("__Pyx_modinit_Function_export_code", 0); - /*--- Function export code ---*/ + __Pyx_RefNannySetupContext("__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream", 0); + /*--- Exttype __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream ---*/ + __pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream = &__pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream; + __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream.__pyx_base = *__pyx_vtabptr_5talib_7_ta_lib_Stream; + __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__out_range; + __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__advance; + #if CYTHON_USE_TYPE_SPECS + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ZLEMA_Stream_spec, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream)) __PYX_ERR(3, 22456, __pyx_L1_error) + #else + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream = &__pyx_type_5talib_7_ta_lib_ZLEMA_Stream; + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; + #endif + #if !CYTHON_USE_TYPE_SPECS + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22456, __pyx_L1_error) + #endif + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); + #endif + #if !CYTHON_COMPILING_IN_LIMITED_API + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_dictoffset && __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_getattro == PyObject_GenericGetAttr)) { + __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_getattro = PyObject_GenericGetAttr; + } + #endif + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22456, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22456, __pyx_L1_error) + #if CYTHON_USE_TYPE_SLOTS + if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream, __pyx_base.__weakref__); + #endif __Pyx_RefNannyFinishContext(); return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; } static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { @@ -104081,7 +340644,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #endif __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_7cpython_4type_type) __PYX_ERR(6, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 271, __pyx_L1_error) + __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "dtype", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 @@ -104091,7 +340654,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArray_Descr), #endif - __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(3, 271, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_dtype) __PYX_ERR(4, 271, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flatiter", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject), @@ -104100,7 +340663,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayIterObject), #endif - __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(3, 316, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flatiter) __PYX_ERR(4, 316, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "broadcast", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject), @@ -104109,7 +340672,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayMultiIterObject), #endif - __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(3, 320, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_broadcast) __PYX_ERR(4, 320, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ndarray", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject), @@ -104118,7 +340681,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyArrayObject), #endif - __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(3, 359, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ndarray) __PYX_ERR(4, 359, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_generic = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "generic", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104127,7 +340690,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(3, 864, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_generic) __PYX_ERR(4, 864, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_number = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "number", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104136,7 +340699,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(3, 866, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_number) __PYX_ERR(4, 866, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_integer = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "integer", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104145,7 +340708,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(3, 868, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_integer) __PYX_ERR(4, 868, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "signedinteger", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104154,7 +340717,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(3, 870, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_signedinteger) __PYX_ERR(4, 870, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "unsignedinteger", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104163,7 +340726,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(3, 872, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(4, 872, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "inexact", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104172,7 +340735,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(3, 874, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_inexact) __PYX_ERR(4, 874, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_floating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "floating", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104181,7 +340744,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(3, 876, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_floating) __PYX_ERR(4, 876, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "complexfloating", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104190,7 +340753,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(3, 878, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_complexfloating) __PYX_ERR(4, 878, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "flexible", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104199,7 +340762,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(3, 880, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_flexible) __PYX_ERR(4, 880, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_character = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "character", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), @@ -104208,7 +340771,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyObject), #endif - __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(3, 882, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Warn_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_character) __PYX_ERR(4, 882, __pyx_L1_error) __pyx_mstate->__pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_3_0(__pyx_t_1, "numpy", "ufunc", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject), @@ -104217,7 +340780,7 @@ static int __Pyx_modinit_Type_import_code(__pyx_mstatetype *__pyx_mstate) { #else sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_3_0(PyUFuncObject), #endif - __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(3, 946, __pyx_L1_error) + __Pyx_ImportType_CheckSize_Ignore_3_3_0); if (!__pyx_mstate->__pyx_ptype_5numpy_ufunc) __PYX_ERR(4, 946, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; @@ -104460,7 +341023,6 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_mod int __pyx_t_32; int __pyx_t_33; int __pyx_t_34; - PyObject *(*__pyx_t_35)(PyObject *); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -104544,6 +341106,208 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); (void)__Pyx_modinit_Variable_export_code(__pyx_mstate); (void)__Pyx_modinit_Function_export_code(__pyx_mstate); /*--- Type init code ---*/ + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) + if (unlikely((__Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) if (unlikely((__Pyx_modinit_Type_import_code(__pyx_mstate) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) (void)__Pyx_modinit_Variable_import_code(__pyx_mstate); (void)__Pyx_modinit_Function_import_code(__pyx_mstate); @@ -104561,62 +341325,88 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_version, __pyx_t_2) < (0)) __PYX_ERR(1, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_mstate_global->__pyx_n_u_ta_check_success, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error) + { + PyObject* __pyx_temp[1] = {((PyObject *)(((PyTypeObject*)PyExc_Exception)))}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_InsufficientHistory, __pyx_mstate_global->__pyx_n_u_InsufficientHistory, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_Not_enough_history_to_open_a_str); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3 != __pyx_t_2) { + if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(1, 9, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_InsufficientHistory, __pyx_t_3, __pyx_t_5, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_check_success, __pyx_t_2) < (0)) __PYX_ERR(1, 8, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_InsufficientHistory, __pyx_t_2) < (0)) __PYX_ERR(1, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_mstate_global->__pyx_n_u_ta_initialize, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 54, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_mstate_global->__pyx_n_u_ta_check_success, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_initialize, __pyx_t_2) < (0)) __PYX_ERR(1, 54, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_check_success, __pyx_t_3) < (0)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_mstate_global->__pyx_n_u_ta_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 59, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_mstate_global->__pyx_n_u_ta_initialize, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_shutdown, __pyx_t_2) < (0)) __PYX_ERR(1, 59, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_initialize, __pyx_t_3) < (0)) __PYX_ERR(1, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[6]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 64, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 64, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_mstate_global->__pyx_n_u_ta_shutdown, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_shutdown, __pyx_t_3) < (0)) __PYX_ERR(1, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[6]); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_mstate_global->__pyx_n_u_MA_Type, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 64, __pyx_L1_error) + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[6]) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[6]) < 0))) __PYX_ERR(1, 64, __pyx_L1_error) + __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_mstate_global->__pyx_n_u_MA_Type, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3 != __pyx_mstate_global->__pyx_tuple[6]) { + if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[6]) < 0))) __PYX_ERR(1, 72, __pyx_L1_error) } __pyx_t_6 = NULL; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_mstate_global->__pyx_int_14}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 66, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } { Py_ssize_t index = -1; PyObject** temps[14] = {&__pyx_t_6,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14,&__pyx_t_15,&__pyx_t_16,&__pyx_t_17,&__pyx_t_18,&__pyx_t_19,&__pyx_t_20}; - __pyx_t_21 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 65, __pyx_L1_error) + __pyx_t_21 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_21); for (index=0; index < 14; index++) { PyObject* item = __pyx_t_22(__pyx_t_21); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_21), 14) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_21), 14) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __pyx_t_22 = NULL; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; goto __pyx_L3_unpacking_done; @@ -104624,287 +341414,287 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_22 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 65, __pyx_L1_error) + __PYX_ERR(1, 73, __pyx_L1_error) __pyx_L3_unpacking_done:; } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_6) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_6) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_8) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_8) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_9) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_9) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_10) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_10) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_11) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_11) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_12) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_12) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_13) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_13) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_14) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_14) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_15) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_15) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_16) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_16) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DISABLED, __pyx_t_17) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DISABLED, __pyx_t_17) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DEFAULT, __pyx_t_18) < (0)) __PYX_ERR(1, 65, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DEFAULT, __pyx_t_18) < (0)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_19) < (0)) __PYX_ERR(1, 66, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_19) < (0)) __PYX_ERR(1, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_20) < (0)) __PYX_ERR(1, 66, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_20) < (0)) __PYX_ERR(1, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[3])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_5) < (0)) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_2) < (0)) __PYX_ERR(1, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___getitem, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 86, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_mstate_global->__pyx_n_u_MA_Type___getitem, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[4])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_5) < (0)) __PYX_ERR(1, 86, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_getitem, __pyx_t_2) < (0)) __PYX_ERR(1, 94, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 64, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_3, __pyx_t_5, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_5) < (0)) __PYX_ERR(1, 64, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2) < (0)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 89, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_MA_Type); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 89, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_2) < (0)) __PYX_ERR(1, 89, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA_Type, __pyx_t_3) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(25); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NONE, __pyx_mstate_global->__pyx_int_neg_1) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyDict_NewPresized(25); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NONE, __pyx_mstate_global->__pyx_int_neg_1) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ADX); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 98, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ADX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ATR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 99, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_CMO); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_CMO); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_DX); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_DX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_EMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_EMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPERIOD); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPERIOD); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPHASE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 104, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_DCPHASE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_PHASOR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 105, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_PHASOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_SINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_SINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDLINE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDLINE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDMODE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HT_TRENDMODE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_KAMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_KAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MAMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 111, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DM); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_MINUS_DM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_NATR); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_NATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DM); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_PLUS_DM); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RSI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 116, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RSI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_T3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_T3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RMA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HA); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_HA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RVI); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_RVI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ALL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ALL, __pyx_t_4) < (0)) __PYX_ERR(1, 97, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids, __pyx_t_2) < (0)) __PYX_ERR(1, 94, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_5 = __Pyx_PyLong_From_TA_FuncUnstId(TA_FUNC_UNST_ALL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ALL, __pyx_t_5) < (0)) __PYX_ERR(1, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_ids, __pyx_t_3) < (0)) __PYX_ERR(1, 102, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_kp_u_ADXR_has_no_unstable_period_of_i) < (0)) __PYX_ERR(1, 130, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_kp_u_MFI_s_unstable_period_was_retire) < (0)) __PYX_ERR(1, 130, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_kp_u_STOCHRSI_has_no_unstable_period) < (0)) __PYX_ERR(1, 130, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired, __pyx_t_2) < (0)) __PYX_ERR(1, 129, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_kp_u_ADXR_has_no_unstable_period_of_i) < (0)) __PYX_ERR(1, 138, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_kp_u_MFI_s_unstable_period_was_retire) < (0)) __PYX_ERR(1, 138, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_kp_u_STOCHRSI_has_no_unstable_period) < (0)) __PYX_ERR(1, 138, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_retired, __pyx_t_3) < (0)) __PYX_ERR(1, 137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id, 0, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_func_unst_id, 0, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[5])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, __pyx_t_2) < (0)) __PYX_ERR(1, 135, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_func_unst_id, __pyx_t_3) < (0)) __PYX_ERR(1, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_set_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[6])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 144, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_unstable_period, __pyx_t_3) < (0)) __PYX_ERR(1, 152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_get_unstable_period, 0, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[7])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, __pyx_t_2) < (0)) __PYX_ERR(1, 154, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_unstable_period, __pyx_t_3) < (0)) __PYX_ERR(1, 162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 164, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_set_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[8])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 164, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_compatibility, __pyx_t_3) < (0)) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_get_compatibility, 0, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[9])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, __pyx_t_2) < (0)) __PYX_ERR(1, 169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_get_compatibility, __pyx_t_3) < (0)) __PYX_ERR(1, 177, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[8]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_mstate_global->__pyx_n_u_CandleSettingType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 174, __pyx_L1_error) + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[8]); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[8]) { - if (unlikely((PyDict_SetItemString(__pyx_t_3, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[8]) < 0))) __PYX_ERR(1, 174, __pyx_L1_error) + __pyx_t_5 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_5, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_mstate_global->__pyx_n_u_CandleSettingType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_3 != __pyx_mstate_global->__pyx_tuple[8]) { + if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[8]) < 0))) __PYX_ERR(1, 182, __pyx_L1_error) } __pyx_t_20 = NULL; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_20, __pyx_mstate_global->__pyx_int_12}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } { Py_ssize_t index = -1; PyObject** temps[12] = {&__pyx_t_20,&__pyx_t_19,&__pyx_t_18,&__pyx_t_17,&__pyx_t_16,&__pyx_t_15,&__pyx_t_14,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9}; - __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 175, __pyx_L1_error) + __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); for (index=0; index < 12; index++) { PyObject* item = __pyx_t_22(__pyx_t_8); if (unlikely(!item)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_8), 12) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_8), 12) < (0)) __PYX_ERR(1, 183, __pyx_L1_error) __pyx_t_22 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L5_unpacking_done; @@ -104912,85 +341702,85 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_22 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 175, __pyx_L1_error) + __PYX_ERR(1, 183, __pyx_L1_error) __pyx_L5_unpacking_done:; } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyLong, __pyx_t_20) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyLong, __pyx_t_20) < (0)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyVeryLong, __pyx_t_19) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyVeryLong, __pyx_t_19) < (0)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyShort, __pyx_t_18) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyShort, __pyx_t_18) < (0)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_BodyDoji, __pyx_t_17) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BodyDoji, __pyx_t_17) < (0)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowLong, __pyx_t_16) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowLong, __pyx_t_16) < (0)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowVeryLong, __pyx_t_15) < (0)) __PYX_ERR(1, 175, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryLong, __pyx_t_15) < (0)) __PYX_ERR(1, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowShort, __pyx_t_14) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowShort, __pyx_t_14) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ShadowVeryShort, __pyx_t_13) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ShadowVeryShort, __pyx_t_13) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Near, __pyx_t_12) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Near, __pyx_t_12) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Far, __pyx_t_11) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Far, __pyx_t_11) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Equal, __pyx_t_10) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Equal, __pyx_t_10) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_AllCandleSettings, __pyx_t_9) < (0)) __PYX_ERR(1, 176, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AllCandleSettings, __pyx_t_9) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_3, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_5) < (0)) __PYX_ERR(1, 174, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_CandleSettingType); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_CandleSettingType); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_3, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_2) < (0)) __PYX_ERR(1, 179, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CandleSettingType, __pyx_t_3) < (0)) __PYX_ERR(1, 187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[10]); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 181, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 181, __pyx_L1_error) + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[10]); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_mstate_global->__pyx_n_u_RangeType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 181, __pyx_L1_error) + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[10]) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[10]) < 0))) __PYX_ERR(1, 181, __pyx_L1_error) + __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_mstate_global->__pyx_n_u_RangeType, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3 != __pyx_mstate_global->__pyx_tuple[10]) { + if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[10]) < 0))) __PYX_ERR(1, 189, __pyx_L1_error) } __pyx_t_9 = NULL; __pyx_t_7 = 1; { PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_mstate_global->__pyx_int_3}; - __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(&PyRange_Type), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } { Py_ssize_t index = -1; - __pyx_t_12 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 182, __pyx_L1_error) + __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(1, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_22 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_12); index = 0; __pyx_t_9 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); @@ -104998,7 +341788,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GOTREF(__pyx_t_10); index = 2; __pyx_t_11 = __pyx_t_22(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(__pyx_t_11); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_12), 3) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + if (__Pyx_IternextUnpackEndCheck(__pyx_t_22(__pyx_t_12), 3) < (0)) __PYX_ERR(1, 190, __pyx_L1_error) __pyx_t_22 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L7_unpacking_done; @@ -105006,3063 +341796,3063 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_22 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(1, 182, __pyx_L1_error) + __PYX_ERR(1, 190, __pyx_L1_error) __pyx_L7_unpacking_done:; } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RealBody, __pyx_t_9) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RealBody, __pyx_t_9) < (0)) __PYX_ERR(1, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HighLow, __pyx_t_10) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_HighLow, __pyx_t_10) < (0)) __PYX_ERR(1, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Shadows, __pyx_t_11) < (0)) __PYX_ERR(1, 182, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Shadows, __pyx_t_11) < (0)) __PYX_ERR(1, 190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 181, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_3, __pyx_t_5, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_5) < (0)) __PYX_ERR(1, 181, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2) < (0)) __PYX_ERR(1, 189, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_RangeType); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_4 = NULL; + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_RangeType); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; + __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_5, __pyx_callargs+__pyx_t_7, (1-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_2) < (0)) __PYX_ERR(1, 184, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RangeType, __pyx_t_3) < (0)) __PYX_ERR(1, 192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_set_candle_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, __pyx_t_2) < (0)) __PYX_ERR(1, 186, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_set_candle_settings, __pyx_t_3) < (0)) __PYX_ERR(1, 194, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19_ta_restore_candle_default_settings, 0, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, __pyx_t_2) < (0)) __PYX_ERR(1, 191, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_restore_candle_default_setti, __pyx_t_3) < (0)) __PYX_ERR(1, 199, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan}; - __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2, __pyx_L1_error) + __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2, __pyx_L1_error) } - __pyx_t_2 = __pyx_t_1; - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_t_1; + __Pyx_GOTREF(__pyx_t_3); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_nan}; __pyx_t_23 = 0; { - __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_4) < (0)) __PYX_ERR(4, 2, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_5) < (0)) __PYX_ERR(5, 2, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_24 = __Pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(4, 7, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_24 = __Pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_24; - __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(4, 15, __pyx_L1_error) + __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(5, 15, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 144, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AC, 0, __pyx_mstate_global->__pyx_n_u_AC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AC, 0, __pyx_mstate_global->__pyx_n_u_AC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AC, __pyx_t_3) < (0)) __PYX_ERR(4, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AC, __pyx_t_4) < (0)) __PYX_ERR(5, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_3) < (0)) __PYX_ERR(4, 176, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_4) < (0)) __PYX_ERR(5, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_3) < (0)) __PYX_ERR(4, 215, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_4) < (0)) __PYX_ERR(5, 215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_3) < (0)) __PYX_ERR(4, 244, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_4) < (0)) __PYX_ERR(5, 244, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_t_3) < (0)) __PYX_ERR(4, 276, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_t_4) < (0)) __PYX_ERR(5, 276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 309, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_t_5) < (0)) __PYX_ERR(4, 307, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_t_2) < (0)) __PYX_ERR(5, 307, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33ADR, 0, __pyx_mstate_global->__pyx_n_u_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33ADR, 0, __pyx_mstate_global->__pyx_n_u_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_t_5) < (0)) __PYX_ERR(4, 342, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_t_2) < (0)) __PYX_ERR(5, 342, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_2) < (0)) __PYX_ERR(5, 374, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + { + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_5) < (0)) __PYX_ERR(4, 374, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_t_2) < (0)) __PYX_ERR(5, 407, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 409, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 407, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_5}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 407, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39AO, 0, __pyx_mstate_global->__pyx_n_u_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_t_5) < (0)) __PYX_ERR(4, 407, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AO, __pyx_t_5) < (0)) __PYX_ERR(5, 440, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 442, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 442, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 440, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_2}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39AO, 0, __pyx_mstate_global->__pyx_n_u_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AO, __pyx_t_4) < (0)) __PYX_ERR(4, 440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - - { - PyObject* __pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_t_5}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_2) < (0)) __PYX_ERR(5, 473, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_5) < (0)) __PYX_ERR(4, 473, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 508, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 506, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 506, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_2) < (0)) __PYX_ERR(5, 506, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_5) < (0)) __PYX_ERR(4, 506, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_2) < (0)) __PYX_ERR(5, 541, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_5) < (0)) __PYX_ERR(4, 541, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 573, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_5) < (0)) __PYX_ERR(4, 573, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_2) < (0)) __PYX_ERR(5, 573, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 602, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_5) < (0)) __PYX_ERR(4, 602, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_2) < (0)) __PYX_ERR(5, 602, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_2) < (0)) __PYX_ERR(5, 631, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_5) < (0)) __PYX_ERR(4, 631, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_2) < (0)) __PYX_ERR(5, 664, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_5) < (0)) __PYX_ERR(4, 664, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 695, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_5) < (0)) __PYX_ERR(4, 695, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 729, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 729, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 729, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[4] = {__pyx_t_5, __pyx_t_2, __pyx_t_3, __pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 727, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 727, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_4) < (0)) __PYX_ERR(4, 727, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_5) < (0)) __PYX_ERR(5, 727, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 769, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 767, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 767, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_4) < (0)) __PYX_ERR(4, 767, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_5) < (0)) __PYX_ERR(5, 767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 800, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_4) < (0)) __PYX_ERR(4, 800, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_5) < (0)) __PYX_ERR(5, 800, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 832, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_4) < (0)) __PYX_ERR(4, 832, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_5) < (0)) __PYX_ERR(5, 832, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 865, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 865, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 897, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 897, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 897, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 929, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_4) < (0)) __PYX_ERR(4, 929, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 929, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_4) < (0)) __PYX_ERR(4, 961, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_5) < (0)) __PYX_ERR(5, 961, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 993, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_4) < (0)) __PYX_ERR(4, 993, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 993, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_4) < (0)) __PYX_ERR(4, 1025, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_5) < (0)) __PYX_ERR(5, 1025, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1057, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_4) < (0)) __PYX_ERR(4, 1057, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_5) < (0)) __PYX_ERR(5, 1057, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1089, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_4) < (0)) __PYX_ERR(4, 1089, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_5) < (0)) __PYX_ERR(5, 1089, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_4) < (0)) __PYX_ERR(4, 1123, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_5) < (0)) __PYX_ERR(5, 1123, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_4) < (0)) __PYX_ERR(4, 1155, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 1155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_4) < (0)) __PYX_ERR(4, 1187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_5) < (0)) __PYX_ERR(5, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_4) < (0)) __PYX_ERR(4, 1219, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 1219, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_4) < (0)) __PYX_ERR(4, 1251, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_5) < (0)) __PYX_ERR(5, 1251, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_4) < (0)) __PYX_ERR(4, 1283, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_5) < (0)) __PYX_ERR(5, 1283, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1315, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_4) < (0)) __PYX_ERR(4, 1315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_5) < (0)) __PYX_ERR(5, 1315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1349, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 1349, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1349, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1381, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 1381, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1381, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 1413, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1413, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_4) < (0)) __PYX_ERR(4, 1445, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_5) < (0)) __PYX_ERR(5, 1445, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1479, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1477, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 1477, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1477, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 1511, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 1511, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1511, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_4) < (0)) __PYX_ERR(4, 1545, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_5) < (0)) __PYX_ERR(5, 1545, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 1577, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1577, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_4) < (0)) __PYX_ERR(4, 1609, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 1609, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_4) < (0)) __PYX_ERR(4, 1641, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 1641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1673, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_4) < (0)) __PYX_ERR(4, 1673, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_5) < (0)) __PYX_ERR(5, 1673, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_4) < (0)) __PYX_ERR(4, 1705, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_5) < (0)) __PYX_ERR(5, 1705, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_4) < (0)) __PYX_ERR(4, 1737, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_5) < (0)) __PYX_ERR(5, 1737, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1769, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_4) < (0)) __PYX_ERR(4, 1769, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_5) < (0)) __PYX_ERR(5, 1769, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1801, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_4) < (0)) __PYX_ERR(4, 1801, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_5) < (0)) __PYX_ERR(5, 1801, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_4) < (0)) __PYX_ERR(4, 1833, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_5) < (0)) __PYX_ERR(5, 1833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 1865, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 1865, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1897, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_4) < (0)) __PYX_ERR(4, 1897, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 1897, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1929, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_4) < (0)) __PYX_ERR(4, 1929, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 1929, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_4) < (0)) __PYX_ERR(4, 1961, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_5) < (0)) __PYX_ERR(5, 1961, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 1993, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_4) < (0)) __PYX_ERR(4, 1993, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_5) < (0)) __PYX_ERR(5, 1993, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_4) < (0)) __PYX_ERR(4, 2025, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_5) < (0)) __PYX_ERR(5, 2025, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2057, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2057, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_4) < (0)) __PYX_ERR(4, 2057, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 2057, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_4) < (0)) __PYX_ERR(4, 2089, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2089, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_4) < (0)) __PYX_ERR(4, 2121, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 2121, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_4) < (0)) __PYX_ERR(4, 2153, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_5) < (0)) __PYX_ERR(5, 2153, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2185, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_4) < (0)) __PYX_ERR(4, 2185, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 2185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2219, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2219, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2219, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2253, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2253, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2253, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_4) < (0)) __PYX_ERR(4, 2287, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 2287, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_4) < (0)) __PYX_ERR(4, 2319, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_5) < (0)) __PYX_ERR(5, 2319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2351, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_4) < (0)) __PYX_ERR(4, 2351, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 2351, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_4) < (0)) __PYX_ERR(4, 2383, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2383, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2415, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_4) < (0)) __PYX_ERR(4, 2415, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_5) < (0)) __PYX_ERR(5, 2415, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2447, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2447, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2479, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_4) < (0)) __PYX_ERR(4, 2479, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2479, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_4) < (0)) __PYX_ERR(4, 2511, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_5) < (0)) __PYX_ERR(5, 2511, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_4) < (0)) __PYX_ERR(4, 2543, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_5) < (0)) __PYX_ERR(5, 2543, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_4) < (0)) __PYX_ERR(4, 2575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_5) < (0)) __PYX_ERR(5, 2575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_4) < (0)) __PYX_ERR(4, 2607, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_5) < (0)) __PYX_ERR(5, 2607, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2639, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_4) < (0)) __PYX_ERR(4, 2639, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_5) < (0)) __PYX_ERR(5, 2639, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2671, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_4) < (0)) __PYX_ERR(4, 2671, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_5) < (0)) __PYX_ERR(5, 2671, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_4) < (0)) __PYX_ERR(4, 2703, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2703, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_4) < (0)) __PYX_ERR(4, 2735, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_5) < (0)) __PYX_ERR(5, 2735, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2767, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_4) < (0)) __PYX_ERR(4, 2767, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 2767, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2799, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_4) < (0)) __PYX_ERR(4, 2799, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2799, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2831, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_4) < (0)) __PYX_ERR(4, 2831, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_5) < (0)) __PYX_ERR(5, 2831, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2862, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2860, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189CMF, 0, __pyx_mstate_global->__pyx_n_u_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189CMF, 0, __pyx_mstate_global->__pyx_n_u_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_t_4) < (0)) __PYX_ERR(4, 2860, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_t_5) < (0)) __PYX_ERR(5, 2860, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2894, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2894, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_4) < (0)) __PYX_ERR(4, 2894, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(5, 2894, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2927, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2925, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_5}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193CMOU, 0, __pyx_mstate_global->__pyx_n_u_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193CMOU, 0, __pyx_mstate_global->__pyx_n_u_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_t_4) < (0)) __PYX_ERR(4, 2925, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_t_5) < (0)) __PYX_ERR(5, 2925, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 2958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 2958, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[3] = {__pyx_t_4, __pyx_t_11, __pyx_t_3}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_11, __pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 2956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_t_3) < (0)) __PYX_ERR(4, 2956, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_t_4) < (0)) __PYX_ERR(5, 2956, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 2989, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 2989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 2989, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_3) < (0)) __PYX_ERR(4, 2989, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_4) < (0)) __PYX_ERR(5, 2989, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_3) < (0)) __PYX_ERR(4, 3022, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_4) < (0)) __PYX_ERR(5, 3022, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3051, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_3) < (0)) __PYX_ERR(4, 3051, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_4) < (0)) __PYX_ERR(5, 3051, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_t_3) < (0)) __PYX_ERR(4, 3080, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_t_4) < (0)) __PYX_ERR(5, 3080, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3111, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3111, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3109, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205CVI, 0, __pyx_mstate_global->__pyx_n_u_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3109, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205CVI, 0, __pyx_mstate_global->__pyx_n_u_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_t_2) < (0)) __PYX_ERR(4, 3109, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_t_3) < (0)) __PYX_ERR(5, 3109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3142, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_2) < (0)) __PYX_ERR(4, 3142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_3) < (0)) __PYX_ERR(5, 3142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_2) < (0)) __PYX_ERR(4, 3173, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_3) < (0)) __PYX_ERR(5, 3173, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3204, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_t_2) < (0)) __PYX_ERR(4, 3204, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_t_3) < (0)) __PYX_ERR(5, 3204, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3242, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213DPO, 0, __pyx_mstate_global->__pyx_n_u_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3242, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213DPO, 0, __pyx_mstate_global->__pyx_n_u_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_t_2) < (0)) __PYX_ERR(4, 3242, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_t_3) < (0)) __PYX_ERR(5, 3242, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3273, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_2) < (0)) __PYX_ERR(4, 3273, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_3) < (0)) __PYX_ERR(5, 3273, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3306, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217EFI, 0, __pyx_mstate_global->__pyx_n_u_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217EFI, 0, __pyx_mstate_global->__pyx_n_u_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_t_2) < (0)) __PYX_ERR(4, 3306, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_t_3) < (0)) __PYX_ERR(5, 3306, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3340, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3338, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3338, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_2) < (0)) __PYX_ERR(4, 3338, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_3) < (0)) __PYX_ERR(5, 3338, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3369, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221ER, 0, __pyx_mstate_global->__pyx_n_u_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221ER, 0, __pyx_mstate_global->__pyx_n_u_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ER, __pyx_t_2) < (0)) __PYX_ERR(4, 3369, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ER, __pyx_t_3) < (0)) __PYX_ERR(5, 3369, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3400, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223ERI, 0, __pyx_mstate_global->__pyx_n_u_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3400, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223ERI, 0, __pyx_mstate_global->__pyx_n_u_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_t_2) < (0)) __PYX_ERR(4, 3400, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_t_3) < (0)) __PYX_ERR(5, 3400, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3436, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_2) < (0)) __PYX_ERR(4, 3436, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_3) < (0)) __PYX_ERR(5, 3436, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_2) < (0)) __PYX_ERR(4, 3465, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_3) < (0)) __PYX_ERR(5, 3465, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3494, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229FOSC, 0, __pyx_mstate_global->__pyx_n_u_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229FOSC, 0, __pyx_mstate_global->__pyx_n_u_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_t_2) < (0)) __PYX_ERR(4, 3494, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_t_3) < (0)) __PYX_ERR(5, 3494, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3527, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { - PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3525, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_11}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3525, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(4, 3525, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(5, 3525, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233HA, 0, __pyx_mstate_global->__pyx_n_u_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3561, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233HA, 0, __pyx_mstate_global->__pyx_n_u_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_11) < (0)) __PYX_ERR(4, 3561, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_11) < (0)) __PYX_ERR(5, 3561, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3604, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3602, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235HMA, 0, __pyx_mstate_global->__pyx_n_u_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3602, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235HMA, 0, __pyx_mstate_global->__pyx_n_u_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_11) < (0)) __PYX_ERR(4, 3602, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3602, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3633, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(4, 3633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(5, 3633, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3662, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(4, 3662, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(5, 3662, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3691, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(4, 3691, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(5, 3691, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3723, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(4, 3723, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3723, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3755, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(4, 3755, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3755, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3784, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(4, 3784, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(5, 3784, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3815, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3813, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3813, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_11) < (0)) __PYX_ERR(4, 3813, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_11) < (0)) __PYX_ERR(5, 3813, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3847, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3845, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_11) < (0)) __PYX_ERR(4, 3845, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3845, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3878, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3878, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3878, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[3] = {__pyx_t_11, __pyx_t_3, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[3] = {__pyx_t_11, __pyx_t_4, __pyx_t_3}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253KC, 0, __pyx_mstate_global->__pyx_n_u_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253KC, 0, __pyx_mstate_global->__pyx_n_u_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC, __pyx_t_2) < (0)) __PYX_ERR(4, 3876, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC, __pyx_t_3) < (0)) __PYX_ERR(5, 3876, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3919, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 3919, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3919, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[5] = {__pyx_t_2, __pyx_t_4, __pyx_t_3, __pyx_t_11, __pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 3917, __pyx_L1_error) + PyObject* __pyx_temp[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_4, __pyx_t_11, __pyx_t_2}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255KDJ, 0, __pyx_mstate_global->__pyx_n_u_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255KDJ, 0, __pyx_mstate_global->__pyx_n_u_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_t_5) < (0)) __PYX_ERR(4, 3917, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_t_2) < (0)) __PYX_ERR(5, 3917, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 3960, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 3960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3960, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_5) < (0)) __PYX_ERR(4, 3960, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_2) < (0)) __PYX_ERR(5, 3960, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3993, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 3991, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 3991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_5) < (0)) __PYX_ERR(4, 3991, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_2) < (0)) __PYX_ERR(5, 3991, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4024, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4022, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_5) < (0)) __PYX_ERR(4, 4022, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_2) < (0)) __PYX_ERR(5, 4022, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4053, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_2}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_5) < (0)) __PYX_ERR(4, 4053, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_2) < (0)) __PYX_ERR(5, 4053, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_5) < (0)) __PYX_ERR(4, 4084, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_2) < (0)) __PYX_ERR(5, 4084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_5) < (0)) __PYX_ERR(4, 4113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_2) < (0)) __PYX_ERR(5, 4113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { - PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_10}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 4142, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_10}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4142, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_10) < (0)) __PYX_ERR(4, 4142, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_10) < (0)) __PYX_ERR(5, 4142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4176, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 4176, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_11, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_11, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_5) < (0)) __PYX_ERR(4, 4174, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_2) < (0)) __PYX_ERR(5, 4174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 4215, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4215, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[6] = {__pyx_t_5, __pyx_t_3, __pyx_t_11, __pyx_t_10, __pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4213, __pyx_L1_error) + PyObject* __pyx_temp[6] = {__pyx_t_2, __pyx_t_4, __pyx_t_11, __pyx_t_10, __pyx_t_5, __pyx_t_3}; + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_2) < (0)) __PYX_ERR(4, 4213, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_3) < (0)) __PYX_ERR(5, 4213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4255, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_2) < (0)) __PYX_ERR(4, 4255, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_3) < (0)) __PYX_ERR(5, 4255, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4294, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { - PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_9}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4292, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_9) < (0)) __PYX_ERR(4, 4292, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_9) < (0)) __PYX_ERR(5, 4292, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4327, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_t_9) < (0)) __PYX_ERR(4, 4327, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_t_9) < (0)) __PYX_ERR(5, 4327, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4360, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4360, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281MASSI, 0, __pyx_mstate_global->__pyx_n_u_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281MASSI, 0, __pyx_mstate_global->__pyx_n_u_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_t_4) < (0)) __PYX_ERR(4, 4358, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_t_5) < (0)) __PYX_ERR(5, 4358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4393, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { - PyObject* __pyx_temp[3] = {__pyx_t_4, __pyx_t_2, __pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4391, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_9}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4391, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_9) < (0)) __PYX_ERR(4, 4391, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_9) < (0)) __PYX_ERR(5, 4391, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4428, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4426, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4426, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(4, 4426, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(5, 4426, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4459, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4457, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4457, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(4, 4457, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4457, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4491, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_9) < (0)) __PYX_ERR(4, 4491, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_9) < (0)) __PYX_ERR(5, 4491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4523, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4521, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4521, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_9) < (0)) __PYX_ERR(4, 4521, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_9) < (0)) __PYX_ERR(5, 4521, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4557, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4555, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4555, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_9) < (0)) __PYX_ERR(4, 4555, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_9) < (0)) __PYX_ERR(5, 4555, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4588, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4586, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4586, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_9) < (0)) __PYX_ERR(4, 4586, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_9) < (0)) __PYX_ERR(5, 4586, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4620, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4618, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4618, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(4, 4618, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(5, 4618, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4651, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4649, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4649, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_9) < (0)) __PYX_ERR(4, 4649, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4649, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4685, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4683, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4683, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_9) < (0)) __PYX_ERR(4, 4683, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_9) < (0)) __PYX_ERR(5, 4683, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4719, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4717, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4717, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(4, 4717, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4717, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4759, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4757, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4757, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_9) < (0)) __PYX_ERR(4, 4757, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_9) < (0)) __PYX_ERR(5, 4757, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4792, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4790, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4790, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_9) < (0)) __PYX_ERR(4, 4790, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_9) < (0)) __PYX_ERR(5, 4790, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4824, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4822, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4822, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_9) < (0)) __PYX_ERR(4, 4822, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_9) < (0)) __PYX_ERR(5, 4822, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4853, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_9) < (0)) __PYX_ERR(4, 4853, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_9) < (0)) __PYX_ERR(5, 4853, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4886, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4884, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4884, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_9) < (0)) __PYX_ERR(4, 4884, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_9) < (0)) __PYX_ERR(5, 4884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315NVI, 0, __pyx_mstate_global->__pyx_n_u_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4917, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315NVI, 0, __pyx_mstate_global->__pyx_n_u_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_t_9) < (0)) __PYX_ERR(4, 4917, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_t_9) < (0)) __PYX_ERR(5, 4917, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4947, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_9) < (0)) __PYX_ERR(4, 4947, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_9) < (0)) __PYX_ERR(5, 4947, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 4980, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4980, __pyx_L1_error) + __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_10}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 4978, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(4, 4978, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(5, 4978, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5012, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5010, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(4, 5010, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(5, 5010, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5043, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5041, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5041, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(4, 5041, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(5, 5041, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5076, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5074, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5074, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(4, 5074, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(5, 5074, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5108, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5108, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { - PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_3, __pyx_t_9}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5106, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_9) < (0)) __PYX_ERR(4, 5106, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_9) < (0)) __PYX_ERR(5, 5106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329PVI, 0, __pyx_mstate_global->__pyx_n_u_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5139, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329PVI, 0, __pyx_mstate_global->__pyx_n_u_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_t_9) < (0)) __PYX_ERR(4, 5139, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_t_9) < (0)) __PYX_ERR(5, 5139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5171, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5169, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_t_9, __pyx_t_5, __pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331PVO, 0, __pyx_mstate_global->__pyx_n_u_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331PVO, 0, __pyx_mstate_global->__pyx_n_u_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_t_2) < (0)) __PYX_ERR(4, 5169, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_t_3) < (0)) __PYX_ERR(5, 5169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333PVT, 0, __pyx_mstate_global->__pyx_n_u_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333PVT, 0, __pyx_mstate_global->__pyx_n_u_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_t_2) < (0)) __PYX_ERR(4, 5202, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_t_3) < (0)) __PYX_ERR(5, 5202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5232, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335QSTICK, 0, __pyx_mstate_global->__pyx_n_u_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335QSTICK, 0, __pyx_mstate_global->__pyx_n_u_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_t_2) < (0)) __PYX_ERR(4, 5232, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_t_3) < (0)) __PYX_ERR(5, 5232, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5266, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5264, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337RMA, 0, __pyx_mstate_global->__pyx_n_u_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5264, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337RMA, 0, __pyx_mstate_global->__pyx_n_u_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_2) < (0)) __PYX_ERR(4, 5264, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_3) < (0)) __PYX_ERR(5, 5264, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5295, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_2) < (0)) __PYX_ERR(4, 5295, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_3) < (0)) __PYX_ERR(5, 5295, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5328, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5326, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5326, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_2) < (0)) __PYX_ERR(4, 5326, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_3) < (0)) __PYX_ERR(5, 5326, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5359, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5357, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_2) < (0)) __PYX_ERR(4, 5357, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_3) < (0)) __PYX_ERR(5, 5357, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5388, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_2) < (0)) __PYX_ERR(4, 5388, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_3) < (0)) __PYX_ERR(5, 5388, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5419, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_2) < (0)) __PYX_ERR(4, 5419, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_3) < (0)) __PYX_ERR(5, 5419, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5452, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { - PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_10}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5450, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_10}; + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349RVI, 0, __pyx_mstate_global->__pyx_n_u_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5450, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349RVI, 0, __pyx_mstate_global->__pyx_n_u_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_10) < (0)) __PYX_ERR(4, 5450, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_10) < (0)) __PYX_ERR(5, 5450, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5484, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351RVOL, 0, __pyx_mstate_global->__pyx_n_u_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5482, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351RVOL, 0, __pyx_mstate_global->__pyx_n_u_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_t_10) < (0)) __PYX_ERR(4, 5482, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_t_10) < (0)) __PYX_ERR(5, 5482, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5515, __pyx_L1_error) + __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_4 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); { - PyObject* __pyx_temp[2] = {__pyx_t_10, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject* __pyx_temp[2] = {__pyx_t_10, __pyx_t_5}; + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5513, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_4) < (0)) __PYX_ERR(4, 5513, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_5) < (0)) __PYX_ERR(5, 5513, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 5548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 5548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(4, 5548, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5548, __pyx_L1_error) + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5548, __pyx_L1_error) + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5548, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { - PyObject* __pyx_temp[8] = {__pyx_t_4, __pyx_t_2, __pyx_t_10, __pyx_t_9, __pyx_t_11, __pyx_t_3, __pyx_t_5, __pyx_t_12}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5546, __pyx_L1_error) + PyObject* __pyx_temp[8] = {__pyx_t_5, __pyx_t_3, __pyx_t_10, __pyx_t_9, __pyx_t_11, __pyx_t_4, __pyx_t_2, __pyx_t_12}; + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5546, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_12) < (0)) __PYX_ERR(4, 5546, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_12) < (0)) __PYX_ERR(5, 5546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5585, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_12) < (0)) __PYX_ERR(4, 5585, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_12) < (0)) __PYX_ERR(5, 5585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5614, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_12) < (0)) __PYX_ERR(4, 5614, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_12) < (0)) __PYX_ERR(5, 5614, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5645, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5643, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5643, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_12) < (0)) __PYX_ERR(4, 5643, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_12) < (0)) __PYX_ERR(5, 5643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5676, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5676, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[4] = {__pyx_t_12, __pyx_t_13, __pyx_t_5, __pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5674, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_t_12, __pyx_t_13, __pyx_t_2, __pyx_t_4}; + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363SMI, 0, __pyx_mstate_global->__pyx_n_u_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363SMI, 0, __pyx_mstate_global->__pyx_n_u_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_t_3) < (0)) __PYX_ERR(4, 5674, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_t_4) < (0)) __PYX_ERR(5, 5674, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_3) < (0)) __PYX_ERR(4, 5713, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_4) < (0)) __PYX_ERR(5, 5713, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5744, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5744, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_11}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5742, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_11}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5742, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(4, 5742, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(5, 5742, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(4, 5776, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5776, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5776, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { - PyObject* __pyx_temp[5] = {__pyx_t_11, __pyx_t_5, __pyx_t_3, __pyx_t_13, __pyx_t_12}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5774, __pyx_L1_error) + PyObject* __pyx_temp[5] = {__pyx_t_11, __pyx_t_2, __pyx_t_4, __pyx_t_13, __pyx_t_12}; + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5774, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_12) < (0)) __PYX_ERR(4, 5774, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_12) < (0)) __PYX_ERR(5, 5774, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5816, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5816, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5816, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); { PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_9, __pyx_t_13}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5814, __pyx_L1_error) + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_13) < (0)) __PYX_ERR(4, 5814, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_13) < (0)) __PYX_ERR(5, 5814, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(4, 5854, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 5854, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5854, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5854, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { - PyObject* __pyx_temp[4] = {__pyx_t_13, __pyx_t_3, __pyx_t_9, __pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[4] = {__pyx_t_13, __pyx_t_4, __pyx_t_9, __pyx_t_12}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5852, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_12) < (0)) __PYX_ERR(4, 5852, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_12) < (0)) __PYX_ERR(5, 5852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5889, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_12) < (0)) __PYX_ERR(4, 5889, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_12) < (0)) __PYX_ERR(5, 5889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5922, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5920, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_12) < (0)) __PYX_ERR(4, 5920, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_12) < (0)) __PYX_ERR(5, 5920, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5953, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_5 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5953, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[2] = {__pyx_t_12, __pyx_t_5}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5951, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_t_12, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_t_5) < (0)) __PYX_ERR(4, 5951, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_t_2) < (0)) __PYX_ERR(5, 5951, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 5990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5990, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { - PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 5988, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 5988, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_9) < (0)) __PYX_ERR(4, 5988, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_9) < (0)) __PYX_ERR(5, 5988, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6020, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_9) < (0)) __PYX_ERR(4, 6020, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_9) < (0)) __PYX_ERR(5, 6020, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6049, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_9) < (0)) __PYX_ERR(4, 6049, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_9) < (0)) __PYX_ERR(5, 6049, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6080, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6078, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6078, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_9) < (0)) __PYX_ERR(4, 6078, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_9) < (0)) __PYX_ERR(5, 6078, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6109, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_9) < (0)) __PYX_ERR(4, 6109, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_9) < (0)) __PYX_ERR(5, 6109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6142, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6140, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6140, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_9) < (0)) __PYX_ERR(4, 6140, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_9) < (0)) __PYX_ERR(5, 6140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6173, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6171, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6171, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_9) < (0)) __PYX_ERR(4, 6171, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_9) < (0)) __PYX_ERR(5, 6171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6204, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6202, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6202, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_9) < (0)) __PYX_ERR(4, 6202, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_9) < (0)) __PYX_ERR(5, 6202, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6235, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6235, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397TSI, 0, __pyx_mstate_global->__pyx_n_u_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6233, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397TSI, 0, __pyx_mstate_global->__pyx_n_u_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_t_12) < (0)) __PYX_ERR(4, 6233, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_t_12) < (0)) __PYX_ERR(5, 6233, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6265, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_12) < (0)) __PYX_ERR(4, 6265, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_12) < (0)) __PYX_ERR(5, 6265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(4, 6298, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6298, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { - PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_5, __pyx_t_9}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6296, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_9) < (0)) __PYX_ERR(4, 6296, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_9) < (0)) __PYX_ERR(5, 6296, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(4, 6333, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6333, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6331, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6331, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_3) < (0)) __PYX_ERR(4, 6331, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_4) < (0)) __PYX_ERR(5, 6331, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6365, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405VHF, 0, __pyx_mstate_global->__pyx_n_u_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405VHF, 0, __pyx_mstate_global->__pyx_n_u_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_t_3) < (0)) __PYX_ERR(4, 6363, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_t_4) < (0)) __PYX_ERR(5, 6363, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407VORTEX, 0, __pyx_mstate_global->__pyx_n_u_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407VORTEX, 0, __pyx_mstate_global->__pyx_n_u_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_t_3) < (0)) __PYX_ERR(4, 6394, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_t_4) < (0)) __PYX_ERR(5, 6394, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409VWAP, 0, __pyx_mstate_global->__pyx_n_u_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409VWAP, 0, __pyx_mstate_global->__pyx_n_u_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_t_3) < (0)) __PYX_ERR(4, 6430, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_t_4) < (0)) __PYX_ERR(5, 6430, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411VWMA, 0, __pyx_mstate_global->__pyx_n_u_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411VWMA, 0, __pyx_mstate_global->__pyx_n_u_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_t_3) < (0)) __PYX_ERR(4, 6462, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6462, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413WAD, 0, __pyx_mstate_global->__pyx_n_u_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413WAD, 0, __pyx_mstate_global->__pyx_n_u_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_t_3) < (0)) __PYX_ERR(4, 6495, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_t_4) < (0)) __PYX_ERR(5, 6495, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_3) < (0)) __PYX_ERR(4, 6526, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_4) < (0)) __PYX_ERR(5, 6526, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6559, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_3) < (0)) __PYX_ERR(4, 6557, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_4) < (0)) __PYX_ERR(5, 6557, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6592, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_3) < (0)) __PYX_ERR(4, 6590, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 6621, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject* __pyx_temp[1] = {__pyx_t_4}; + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6621, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_3) < (0)) __PYX_ERR(4, 6621, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6621, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; { PyObject* __pyx_temp[201] = {__pyx_mstate_global->__pyx_n_u_AC, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_mstate_global->__pyx_n_u_AD, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_AO, __pyx_mstate_global->__pyx_n_u_APO, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_mstate_global->__pyx_n_u_COS, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_ER, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_mstate_global->__pyx_n_u_HA, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_KC, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate_global->__pyx_n_u_LN, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_mstate_global->__pyx_n_u_MA, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_mstate_global->__pyx_n_u_ZLEMA}; - __pyx_t_3 = __Pyx_PyList_FromArray(__pyx_temp, 201); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyList_FromArray(__pyx_temp, 201); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_3) < (0)) __PYX_ERR(4, 6652, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_4) < (0)) __PYX_ERR(5, 6652, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_threading, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_threading, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) - __pyx_t_3 = __pyx_t_1; - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_3) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_t_1; + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_threading, __pyx_t_4) < (0)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; { __Pyx_PyThreadState_declare @@ -108077,18 +344867,18 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; __pyx_t_28 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_28)) __PYX_ERR(2, 6, __pyx_L8_error) } - __pyx_t_3 = __pyx_t_28; - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_t_28; + __Pyx_GOTREF(__pyx_t_4); { PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_OrderedDict}; __pyx_t_23 = 0; { - __pyx_t_5 = __Pyx_ImportFrom(__pyx_t_3, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 6, __pyx_L8_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_5) < (0)) __PYX_ERR(2, 6, __pyx_L8_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_4, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_2) < (0)) __PYX_ERR(2, 6, __pyx_L8_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -108119,9 +344909,9 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); if (__pyx_t_25) { __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(2, 7, __pyx_L10_except_error) - __Pyx_XGOTREF(__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_5); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_9) < 0) __PYX_ERR(2, 7, __pyx_L10_except_error) + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_9); { @@ -108140,8 +344930,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); } } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_exception_handled; } @@ -108218,43 +345008,43 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 32, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 32, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 32, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_3); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 32, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_4); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 32, __pyx_L16_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 33, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 33, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 33, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_5); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 33, __pyx_L16_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_2); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 33, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 34, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 34, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, __pyx_t_3) < (0)) __PYX_ERR(2, 34, __pyx_L16_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, __pyx_t_4) < (0)) __PYX_ERR(2, 34, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 35, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 35, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, __pyx_t_5) < (0)) __PYX_ERR(2, 35, __pyx_L16_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, __pyx_t_2) < (0)) __PYX_ERR(2, 35, __pyx_L16_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; @@ -108285,11 +345075,11 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); if (__pyx_t_25) { __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_3, &__pyx_t_9) < 0) __PYX_ERR(2, 36, __pyx_L18_except_error) - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_3); + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_4, &__pyx_t_9) < 0) __PYX_ERR(2, 36, __pyx_L18_except_error) + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_3) < (0)) __PYX_ERR(2, 36, __pyx_L18_except_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_4) < (0)) __PYX_ERR(2, 36, __pyx_L18_except_error) { __Pyx_PyThreadState_declare @@ -108353,10 +345143,10 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -108384,8 +345174,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 45, __pyx_L18_except_error) if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, Py_None) < (0)) __PYX_ERR(2, 46, __pyx_L18_except_error) - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L17_exception_handled; } @@ -108422,43 +345212,43 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 51, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 51, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 51, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_5); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 51, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_2); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 51, __pyx_L37_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 52, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 52, __pyx_L37_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 52, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_5, __pyx_t_3); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 52, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_29 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_4); if (unlikely(__pyx_t_29 == ((int)-1))) __PYX_ERR(2, 52, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 53, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 53, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, __pyx_t_5) < (0)) __PYX_ERR(2, 53, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DataFrame); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, __pyx_t_2) < (0)) __PYX_ERR(2, 53, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 54, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 54, __pyx_L37_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, __pyx_t_3) < (0)) __PYX_ERR(2, 54, __pyx_L37_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_Series); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, __pyx_t_4) < (0)) __PYX_ERR(2, 54, __pyx_L37_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -108489,11 +345279,11 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_25 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_ImportError)))); if (__pyx_t_25) { __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(2, 55, __pyx_L39_except_error) - __Pyx_XGOTREF(__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_5); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_2, &__pyx_t_9) < 0) __PYX_ERR(2, 55, __pyx_L39_except_error) + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_5) < (0)) __PYX_ERR(2, 55, __pyx_L39_except_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_import_error, __pyx_t_2) < (0)) __PYX_ERR(2, 55, __pyx_L39_except_error) { __Pyx_PyThreadState_declare @@ -108557,10 +345347,10 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -108588,8 +345378,8 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 64, __pyx_L39_except_error) if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, Py_None) < (0)) __PYX_ERR(2, 65, __pyx_L39_except_error) - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L38_exception_handled; } @@ -108611,76 +345401,76 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 67, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_5) < (0)) __PYX_ERR(2, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_INPUT_ARRAYS_TYPES, __pyx_t_2) < (0)) __PYX_ERR(2, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES, __pyx_t_9) < (0)) __PYX_ERR(2, 68, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_sys); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 71, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_version); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_32 = __Pyx_PyObject_CompareBoolGe_object_str(__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_3, Py_GE); if (unlikely((__pyx_t_32 < 0))) __PYX_ERR(2, 71, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_32 = __Pyx_PyObject_CompareBoolGe_object_str(__pyx_t_2, __pyx_mstate_global->__pyx_kp_u_3, Py_GE); if (unlikely((__pyx_t_32 < 0))) __PYX_ERR(2, 71, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_32) { - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 73, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[213])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_5) < (0)) __PYX_ERR(2, 73, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_2) < (0)) __PYX_ERR(2, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[214])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_5) < (0)) __PYX_ERR(2, 76, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_2) < (0)) __PYX_ERR(2, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L58; } /*else*/ { - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427str2bytes, 0, __pyx_mstate_global->__pyx_n_u_str2bytes, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[215])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_5) < (0)) __PYX_ERR(2, 81, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_str2bytes, __pyx_t_2) < (0)) __PYX_ERR(2, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 84, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429bytes2str, 0, __pyx_mstate_global->__pyx_n_u_bytes2str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[216])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_5) < (0)) __PYX_ERR(2, 84, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_bytes2str, __pyx_t_2) < (0)) __PYX_ERR(2, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L58:; - __pyx_t_5 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[12]); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 87, __pyx_L1_error) + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_mstate_global->__pyx_tuple[12]); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_5, __pyx_mstate_global->__pyx_n_u_Function, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__pyx_t_5 != __pyx_mstate_global->__pyx_tuple[12]) { - if (unlikely((PyDict_SetItemString(__pyx_t_3, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[12]) < 0))) __PYX_ERR(2, 87, __pyx_L1_error) + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_9, __pyx_t_2, __pyx_mstate_global->__pyx_n_u_Function, __pyx_mstate_global->__pyx_n_u_Function, (PyObject *) NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_kp_u_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_2 != __pyx_mstate_global->__pyx_tuple[12]) { + if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_mstate_global->__pyx_tuple[12]) < 0))) __PYX_ERR(2, 87, __pyx_L1_error) } __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_mstate_global->__pyx_n_u_Function___init, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[217])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 116, __pyx_L1_error) @@ -108688,7 +345478,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(2, 116, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_init, __pyx_t_12) < (0)) __PYX_ERR(2, 116, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; @@ -108706,7 +345496,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__local, __pyx_t_12) < (0)) __PYX_ERR(2, 129, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__local, __pyx_t_12) < (0)) __PYX_ERR(2, 129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_11 = NULL; @@ -108724,7 +345514,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_12) < (0)) __PYX_ERR(2, 171, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_info, __pyx_t_12) < (0)) __PYX_ERR(2, 171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; @@ -108742,7 +345532,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 178, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_function_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_11 = NULL; @@ -108760,7 +345550,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 185, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_flags, __pyx_t_12) < (0)) __PYX_ERR(2, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[222])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 192, __pyx_L1_error) @@ -108768,7 +345558,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 192, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_names, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[223])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 203, __pyx_L1_error) @@ -108776,18 +345566,18 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 203, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 203, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; - __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_names); + __pyx_t_11 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_names); if (unlikely(!__pyx_t_11)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_input_names); } if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_names); + __pyx_t_10 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_names); if (unlikely(!__pyx_t_10)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_set_input_names); @@ -108804,7 +345594,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 213, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_input_names, __pyx_t_12) < (0)) __PYX_ERR(2, 213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_get_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[224])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 215, __pyx_L1_error) @@ -108812,7 +345602,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 215, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_mstate_global->__pyx_n_u_Function_set_input_arrays, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[225])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 226, __pyx_L1_error) @@ -108820,18 +345610,18 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 226, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 226, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_10 = NULL; - __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_input_arrays); + __pyx_t_11 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_input_arrays); if (unlikely(!__pyx_t_11)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_input_arrays); } if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_13 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_input_arrays); + __pyx_t_13 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_input_arrays); if (unlikely(!__pyx_t_13)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_set_input_arrays); @@ -108848,7 +345638,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 273, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_input_arrays, __pyx_t_12) < (0)) __PYX_ERR(2, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_get_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[226])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 275, __pyx_L1_error) @@ -108856,7 +345646,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 275, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_mstate_global->__pyx_n_u_Function_set_parameters, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[227])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 285, __pyx_L1_error) @@ -108865,18 +345655,18 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[13]); - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 285, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; - __pyx_t_11 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_get_parameters); + __pyx_t_11 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_get_parameters); if (unlikely(!__pyx_t_11)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_mstate_global->__pyx_n_u_get_parameters); } if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = PyObject_GetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_parameters); + __pyx_t_10 = PyObject_GetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_parameters); if (unlikely(!__pyx_t_10)) { PyErr_Clear(); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_mstate_global->__pyx_n_u_set_parameters); @@ -108893,7 +345683,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 298, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_mstate_global->__pyx_n_u_Function_set_function_args, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[228])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 300, __pyx_L1_error) @@ -108901,7 +345691,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_set_function_args, __pyx_t_12) < (0)) __PYX_ERR(2, 300, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_set_function_args, __pyx_t_12) < (0)) __PYX_ERR(2, 300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_10 = NULL; @@ -108919,7 +345709,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_lookback, __pyx_t_12) < (0)) __PYX_ERR(2, 335, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_lookback, __pyx_t_12) < (0)) __PYX_ERR(2, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_11 = NULL; @@ -108937,7 +345727,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_12) < (0)) __PYX_ERR(2, 356, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_output_names, __pyx_t_12) < (0)) __PYX_ERR(2, 356, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_10 = NULL; @@ -108955,7 +345745,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_12) < (0)) __PYX_ERR(2, 366, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_outputs, __pyx_t_12) < (0)) __PYX_ERR(2, 366, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_mstate_global->__pyx_n_u_Function_run, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[232])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 398, __pyx_L1_error) @@ -108964,7 +345754,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_mstate_global->__pyx_tuple[13]); - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_run, __pyx_t_12) < (0)) __PYX_ERR(2, 398, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_run, __pyx_t_12) < (0)) __PYX_ERR(2, 398, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_mstate_global->__pyx_n_u_Function___call, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[233])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 410, __pyx_L1_error) @@ -108972,7 +345762,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_12) < (0)) __PYX_ERR(2, 410, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_call, __pyx_t_12) < (0)) __PYX_ERR(2, 410, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_mstate_global->__pyx_n_u_Function___input_price_series_na, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[234])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 476, __pyx_L1_error) @@ -108980,7 +345770,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_t_12) < (0)) __PYX_ERR(2, 476, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__input_price_series_na, __pyx_t_12) < (0)) __PYX_ERR(2, 476, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_mstate_global->__pyx_n_u_Function___call_function, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[235])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 488, __pyx_L1_error) @@ -108988,7 +345778,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_t_12) < (0)) __PYX_ERR(2, 488, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__call_function, __pyx_t_12) < (0)) __PYX_ERR(2, 488, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___check_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[236])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 519, __pyx_L1_error) @@ -108996,7 +345786,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 519, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__check_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 519, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___get_opt_input_value, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[237])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 534, __pyx_L1_error) @@ -109004,7 +345794,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 534, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_Function__get_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 534, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_mstate_global->__pyx_n_u_Function___repr, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[238])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 544, __pyx_L1_error) @@ -109012,7 +345802,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_12) < (0)) __PYX_ERR(2, 544, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_repr, __pyx_t_12) < (0)) __PYX_ERR(2, 544, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_mstate_global->__pyx_n_u_Function___unicode, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[239])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 547, __pyx_L1_error) @@ -109020,7 +345810,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_12) < (0)) __PYX_ERR(2, 547, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_12) < (0)) __PYX_ERR(2, 547, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_mstate_global->__pyx_n_u_Function___str, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[240])); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 550, __pyx_L1_error) @@ -109028,3176 +345818,5075 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_12) < (0)) __PYX_ERR(2, 550, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_str, __pyx_t_12) < (0)) __PYX_ERR(2, 550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_5, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 87, __pyx_L1_error) + __pyx_t_12 = __Pyx_Py3ClassCreate(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_Function, __pyx_t_12) < (0)) __PYX_ERR(2, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431_ta_getGroupTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[241])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, __pyx_t_5) < (0)) __PYX_ERR(2, 564, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getGroupTable, __pyx_t_2) < (0)) __PYX_ERR(2, 564, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433_ta_getFuncTable, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[242])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, __pyx_t_5) < (0)) __PYX_ERR(2, 576, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncTable, __pyx_t_2) < (0)) __PYX_ERR(2, 576, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435__get_flags, 0, __pyx_mstate_global->__pyx_n_u_get_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 588, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435__get_flags, 0, __pyx_mstate_global->__pyx_n_u_get_flags, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[243])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_flags, __pyx_t_5) < (0)) __PYX_ERR(2, 588, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_flags, __pyx_t_2) < (0)) __PYX_ERR(2, 588, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 603, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_kp_u_A_period_of_1_performs_no_smooth) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_16777216, __pyx_mstate_global->__pyx_kp_u_Output_scale_same_as_input) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_33554432, __pyx_mstate_global->__pyx_kp_u_Function_has_a_streaming_API) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_67108864, __pyx_mstate_global->__pyx_kp_u_Output_is_over_volume) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_134217728, __pyx_mstate_global->__pyx_kp_u_Function_has_an_unstable_period) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_268435456, __pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_536870912, __pyx_mstate_global->__pyx_kp_u_Output_is_path_dependent) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1073741824, __pyx_mstate_global->__pyx_kp_u_Output_can_be_NaN_or_infinite) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS, __pyx_t_5) < (0)) __PYX_ERR(2, 602, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_kp_u_A_period_of_1_performs_no_smooth) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_16777216, __pyx_mstate_global->__pyx_kp_u_Output_scale_same_as_input) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_33554432, __pyx_mstate_global->__pyx_kp_u_Function_has_a_streaming_API) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_67108864, __pyx_mstate_global->__pyx_kp_u_Output_is_over_volume) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_134217728, __pyx_mstate_global->__pyx_kp_u_Function_has_an_unstable_period) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_268435456, __pyx_mstate_global->__pyx_kp_u_Output_is_a_candlestick) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_536870912, __pyx_mstate_global->__pyx_kp_u_Output_is_path_dependent) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1073741824, __pyx_mstate_global->__pyx_kp_u_Output_can_be_NaN_or_infinite) < (0)) __PYX_ERR(2, 603, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNC_FLAGS, __pyx_t_2) < (0)) __PYX_ERR(2, 602, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_open) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_volume) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_n_u_openInterest) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_n_u_timeStamp) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS, __pyx_t_5) < (0)) __PYX_ERR(2, 614, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_open) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_n_u_high) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_n_u_low) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_close) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_volume) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_n_u_openInterest) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_n_u_timeStamp) < (0)) __PYX_ERR(2, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_INPUT_FLAGS, __pyx_t_2) < (0)) __PYX_ERR(2, 614, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 625, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_Dotted_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Dashed_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_Dot) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_Histogram) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_kp_u_Pattern_Bool) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Strength_Pattern_200_100_Bearish) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_256, __pyx_mstate_global->__pyx_kp_u_Output_can_be_positive) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_512, __pyx_mstate_global->__pyx_kp_u_Output_can_be_negative) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_1024, __pyx_mstate_global->__pyx_kp_u_Output_can_be_zero) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_2048, __pyx_mstate_global->__pyx_kp_u_Values_represent_an_upper_limit) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_4096, __pyx_mstate_global->__pyx_kp_u_Values_represent_a_lower_limit) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_5, __pyx_mstate_global->__pyx_int_8192, __pyx_mstate_global->__pyx_kp_u_Output_is_optional_nullable) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS, __pyx_t_5) < (0)) __PYX_ERR(2, 624, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1, __pyx_mstate_global->__pyx_n_u_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_2, __pyx_mstate_global->__pyx_kp_u_Dotted_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_4, __pyx_mstate_global->__pyx_kp_u_Dashed_Line) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_8, __pyx_mstate_global->__pyx_n_u_Dot) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_16, __pyx_mstate_global->__pyx_n_u_Histogram) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_32, __pyx_mstate_global->__pyx_kp_u_Pattern_Bool) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_64, __pyx_mstate_global->__pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Strength_Pattern_200_100_Bearish) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_256, __pyx_mstate_global->__pyx_kp_u_Output_can_be_positive) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_512, __pyx_mstate_global->__pyx_kp_u_Output_can_be_negative) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_1024, __pyx_mstate_global->__pyx_kp_u_Output_can_be_zero) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_2048, __pyx_mstate_global->__pyx_kp_u_Values_represent_an_upper_limit) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_4096, __pyx_mstate_global->__pyx_kp_u_Values_represent_a_lower_limit) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_8192, __pyx_mstate_global->__pyx_kp_u_Output_is_optional_nullable) < (0)) __PYX_ERR(2, 625, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_OUTPUT_FLAGS, __pyx_t_2) < (0)) __PYX_ERR(2, 624, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437_ta_getFuncInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[244])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 641, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getFuncInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439_ta_getInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[245])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 660, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getInputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 660, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441_ta_getOptInputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[246])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 681, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOptInputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 681, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443_ta_getOutputParameterInfo, 0, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[247])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, __pyx_t_5) < (0)) __PYX_ERR(2, 703, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ta_getOutputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 703, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs, 0, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 723, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445_get_defaults_and_docs, 0, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[248])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, __pyx_t_5) < (0)) __PYX_ERR(2, 723, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(5, 7, __pyx_L1_error) - + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_get_defaults_and_docs, __pyx_t_2) < (0)) __PYX_ERR(2, 723, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 11, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 11, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 11, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 3, __pyx_L1_error) + __pyx_t_2 = __pyx_t_27; + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_numpy, __pyx_t_2) < (0)) __PYX_ERR(3, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; { - PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_9, __pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple}; + __pyx_t_27 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_collections, __pyx_imported_names, 1, __pyx_mstate_global->__pyx_kp_u_talib_collections, -1); if (unlikely(!__pyx_t_27)) __PYX_ERR(3, 4, __pyx_L1_error) } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447stream_AC, 0, __pyx_mstate_global->__pyx_n_u_stream_AC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AC, __pyx_t_3) < (0)) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 45, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - + __pyx_t_2 = __pyx_t_27; + __Pyx_GOTREF(__pyx_t_2); { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject* const __pyx_imported_names[] = {__pyx_mstate_global->__pyx_n_u_namedtuple}; + __pyx_t_23 = 0; { + __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_2, __pyx_imported_names[__pyx_t_23]); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_imported_names[__pyx_t_23], __pyx_t_9) < (0)) __PYX_ERR(3, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449stream_ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_25 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(3, 12, __pyx_L1_error) + + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 2455, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[14], __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OutRange, __pyx_t_4) < (0)) __PYX_ERR(3, 2455, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_5__copy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___copy, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[249])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACCBANDS, __pyx_t_3) < (0)) __PYX_ERR(5, 43, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_copy_2, __pyx_t_4) < (0)) __PYX_ERR(3, 2532, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_451stream_ACOS, 0, __pyx_mstate_global->__pyx_n_u_stream_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 84, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_7__deepcopy__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___deepcopy, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[250])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ACOS, __pyx_t_3) < (0)) __PYX_ERR(5, 84, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_deepcopy, __pyx_t_4) < (0)) __PYX_ERR(3, 2535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_453stream_AD, 0, __pyx_mstate_global->__pyx_n_u_stream_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 111, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_6Stream_9__reduce__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Stream___reduce, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[251])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AD, __pyx_t_3) < (0)) __PYX_ERR(5, 111, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream, __pyx_mstate_global->__pyx_n_u_reduce, __pyx_t_4) < (0)) __PYX_ERR(3, 2538, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_455stream_ADD, 0, __pyx_mstate_global->__pyx_n_u_stream_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 147, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[252])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADD, __pyx_t_3) < (0)) __PYX_ERR(5, 147, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2581, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2581, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 2644, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 2644, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2686, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_12}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 178, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_457stream_ADOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2686, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACOS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2790, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADOSC, __pyx_t_12) < (0)) __PYX_ERR(5, 178, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 217, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_459stream_ADR, 0, __pyx_mstate_global->__pyx_n_u_stream_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADR, __pyx_t_12) < (0)) __PYX_ERR(5, 217, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 249, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_461stream_ADX, 0, __pyx_mstate_global->__pyx_n_u_stream_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2887, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2986, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADX, __pyx_t_12) < (0)) __PYX_ERR(5, 249, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 284, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_463stream_ADXR, 0, __pyx_mstate_global->__pyx_n_u_stream_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 284, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2986, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ADXR, __pyx_t_12) < (0)) __PYX_ERR(5, 284, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 321, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_12, __pyx_t_9}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3187, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_465stream_AO, 0, __pyx_mstate_global->__pyx_n_u_stream_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 319, __pyx_L1_error) + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AO, __pyx_t_9) < (0)) __PYX_ERR(5, 319, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3286, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 354, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADXR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_9, __pyx_t_3, __pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3386, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_467stream_APO, 0, __pyx_mstate_global->__pyx_n_u_stream_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_APO, __pyx_t_12) < (0)) __PYX_ERR(5, 352, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_469stream_AROON, 0, __pyx_mstate_global->__pyx_n_u_stream_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_APO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROON, __pyx_t_12) < (0)) __PYX_ERR(5, 383, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[19]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 3647, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[20], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 3647, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROON_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3686, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_471stream_AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3686, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AROONOSC, __pyx_t_12) < (0)) __PYX_ERR(5, 418, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3788, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3788, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_473stream_ASIN, 0, __pyx_mstate_global->__pyx_n_u_stream_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 450, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ASIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ASIN, __pyx_t_12) < (0)) __PYX_ERR(5, 450, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3883, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3883, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_475stream_ATAN, 0, __pyx_mstate_global->__pyx_n_u_stream_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATAN, __pyx_t_12) < (0)) __PYX_ERR(5, 477, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 506, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3977, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_477stream_ATR, 0, __pyx_mstate_global->__pyx_n_u_stream_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3977, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ATR, __pyx_t_12) < (0)) __PYX_ERR(5, 504, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4075, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_479stream_AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4075, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGDEV, __pyx_t_12) < (0)) __PYX_ERR(5, 539, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_481stream_AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_AVGPRICE, __pyx_t_12) < (0)) __PYX_ERR(5, 568, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 606, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 606, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4270, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[4] = {__pyx_t_12, __pyx_t_5, __pyx_t_3, __pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_483stream_BBANDS, 0, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 604, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4270, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 4335, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21], __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 4335, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BBANDS, __pyx_t_9) < (0)) __PYX_ERR(5, 604, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[22]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4378, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4378, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 644, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BETA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_485stream_BETA, 0, __pyx_mstate_global->__pyx_n_u_stream_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BOP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BETA, __pyx_t_9) < (0)) __PYX_ERR(5, 642, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4582, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4582, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_487stream_BOP, 0, __pyx_mstate_global->__pyx_n_u_stream_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CCI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_BOP, __pyx_t_9) < (0)) __PYX_ERR(5, 675, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 713, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4683, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_489stream_CCI, 0, __pyx_mstate_global->__pyx_n_u_stream_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4683, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CCI, __pyx_t_9) < (0)) __PYX_ERR(5, 711, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4782, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4782, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491stream_CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL2CROWS, __pyx_t_9) < (0)) __PYX_ERR(5, 746, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493stream_CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 782, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4882, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4882, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4882, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_t_9) < (0)) __PYX_ERR(5, 782, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4982, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4982, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495stream_CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3INSIDE, __pyx_t_9) < (0)) __PYX_ERR(5, 818, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_497stream_CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 854, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_t_9) < (0)) __PYX_ERR(5, 854, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_499stream_CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 890, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_t_9) < (0)) __PYX_ERR(5, 890, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_501stream_CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 926, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5282, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5282, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_t_9) < (0)) __PYX_ERR(5, 926, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5382, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5382, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_503stream_CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_t_9) < (0)) __PYX_ERR(5, 962, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1000, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_505stream_CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_t_9) < (0)) __PYX_ERR(5, 998, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_507stream_CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1036, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_t_9) < (0)) __PYX_ERR(5, 1036, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_509stream_CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1072, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBELTHOLD, __pyx_t_9) < (0)) __PYX_ERR(5, 1072, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_511stream_CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_t_9) < (0)) __PYX_ERR(5, 1108, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_513stream_CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1144, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_t_9) < (0)) __PYX_ERR(5, 1144, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_515stream_CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_t_9) < (0)) __PYX_ERR(5, 1180, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_517stream_CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1216, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_t_9) < (0)) __PYX_ERR(5, 1216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[24]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1254, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6286, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_519stream_CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6286, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_t_9) < (0)) __PYX_ERR(5, 1252, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_521stream_CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJI, __pyx_t_9) < (0)) __PYX_ERR(5, 1290, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_523stream_CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1326, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDOJISTAR, __pyx_t_9) < (0)) __PYX_ERR(5, 1326, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6586, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6586, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_525stream_CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1362, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_t_9) < (0)) __PYX_ERR(5, 1362, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_527stream_CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1398, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6688, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6688, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLENGULFING, __pyx_t_9) < (0)) __PYX_ERR(5, 1398, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1436, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_529stream_CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_t_9) < (0)) __PYX_ERR(5, 1434, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1474, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_531stream_CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_t_9) < (0)) __PYX_ERR(5, 1472, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_533stream_CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_t_9) < (0)) __PYX_ERR(5, 1510, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_535stream_CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1546, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_t_9) < (0)) __PYX_ERR(5, 1546, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_537stream_CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHAMMER, __pyx_t_9) < (0)) __PYX_ERR(5, 1582, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_539stream_CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_t_9) < (0)) __PYX_ERR(5, 1618, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_541stream_CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1654, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMI, __pyx_t_9) < (0)) __PYX_ERR(5, 1654, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_543stream_CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1690, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_t_9) < (0)) __PYX_ERR(5, 1690, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_545stream_CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1726, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_t_9) < (0)) __PYX_ERR(5, 1726, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_547stream_CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1762, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKE, __pyx_t_9) < (0)) __PYX_ERR(5, 1762, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_549stream_CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1798, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_t_9) < (0)) __PYX_ERR(5, 1798, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_551stream_CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1834, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_t_9) < (0)) __PYX_ERR(5, 1834, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_553stream_CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1870, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_t_9) < (0)) __PYX_ERR(5, 1870, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_555stream_CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1906, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINNECK, __pyx_t_9) < (0)) __PYX_ERR(5, 1906, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_557stream_CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1942, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_t_9) < (0)) __PYX_ERR(5, 1942, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_559stream_CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 1978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKING, __pyx_t_9) < (0)) __PYX_ERR(5, 1978, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_561stream_CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2014, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_t_9) < (0)) __PYX_ERR(5, 2014, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_563stream_CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_t_9) < (0)) __PYX_ERR(5, 2050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_565stream_CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_t_9) < (0)) __PYX_ERR(5, 2086, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_567stream_CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2122, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLLONGLINE, __pyx_t_9) < (0)) __PYX_ERR(5, 2122, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_569stream_CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMARUBOZU, __pyx_t_9) < (0)) __PYX_ERR(5, 2158, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_571stream_CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2194, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_t_9) < (0)) __PYX_ERR(5, 2194, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2232, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_573stream_CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMATHOLD, __pyx_t_9) < (0)) __PYX_ERR(5, 2230, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_575stream_CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_t_9) < (0)) __PYX_ERR(5, 2268, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2308, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[24]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8892, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8892, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_577stream_CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_t_9) < (0)) __PYX_ERR(5, 2306, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8892, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_579stream_CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLONNECK, __pyx_t_9) < (0)) __PYX_ERR(5, 2344, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8994, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8994, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_581stream_CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLPIERCING, __pyx_t_9) < (0)) __PYX_ERR(5, 2380, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_583stream_CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2416, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9096, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_t_9) < (0)) __PYX_ERR(5, 2416, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9096, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_585stream_CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_t_9) < (0)) __PYX_ERR(5, 2452, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_587stream_CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2488, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_t_9) < (0)) __PYX_ERR(5, 2488, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_589stream_CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2524, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_t_9) < (0)) __PYX_ERR(5, 2524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_591stream_CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSHORTLINE, __pyx_t_9) < (0)) __PYX_ERR(5, 2560, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9396, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9396, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_593stream_CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_t_9) < (0)) __PYX_ERR(5, 2596, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_595stream_CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2632, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_t_9) < (0)) __PYX_ERR(5, 2632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_597stream_CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2668, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_t_9) < (0)) __PYX_ERR(5, 2668, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9596, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9596, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_599stream_CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2704, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTAKURI, __pyx_t_9) < (0)) __PYX_ERR(5, 2704, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_601stream_CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2740, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_t_9) < (0)) __PYX_ERR(5, 2740, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_603stream_CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2776, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTHRUSTING, __pyx_t_9) < (0)) __PYX_ERR(5, 2776, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9796, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9796, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_605stream_CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLTRISTAR, __pyx_t_9) < (0)) __PYX_ERR(5, 2812, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_607stream_CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2848, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9896, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_t_9) < (0)) __PYX_ERR(5, 2848, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9896, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_609stream_CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_t_9) < (0)) __PYX_ERR(5, 2884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9996, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9996, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_611stream_CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_t_9) < (0)) __PYX_ERR(5, 2920, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_613stream_CEIL, 0, __pyx_mstate_global->__pyx_n_u_stream_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2956, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10096, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10096, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CEIL, __pyx_t_9) < (0)) __PYX_ERR(5, 2956, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2985, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2983, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_615stream_CMF, 0, __pyx_mstate_global->__pyx_n_u_stream_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 2983, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMF, __pyx_t_9) < (0)) __PYX_ERR(5, 2983, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3023, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3021, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_617stream_CMO, 0, __pyx_mstate_global->__pyx_n_u_stream_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3021, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMO, __pyx_t_9) < (0)) __PYX_ERR(5, 3021, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10396, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_619stream_CMOU, 0, __pyx_mstate_global->__pyx_n_u_stream_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10396, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CMOU, __pyx_t_9) < (0)) __PYX_ERR(5, 3050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3081, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_9, __pyx_t_11, __pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_621stream_COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_stream_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10496, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COPPOCK, __pyx_t_3) < (0)) __PYX_ERR(5, 3079, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10596, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10596, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_623stream_CORREL, 0, __pyx_mstate_global->__pyx_n_u_stream_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3110, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CORREL, __pyx_t_3) < (0)) __PYX_ERR(5, 3110, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10596, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_625stream_COS, 0, __pyx_mstate_global->__pyx_n_u_stream_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COS, __pyx_t_3) < (0)) __PYX_ERR(5, 3143, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_627stream_COSH, 0, __pyx_mstate_global->__pyx_n_u_stream_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3170, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_COSH, __pyx_t_3) < (0)) __PYX_ERR(5, 3170, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10796, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10796, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_629stream_CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_stream_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CEIL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CUMSUM, __pyx_t_3) < (0)) __PYX_ERR(5, 3197, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10893, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_631stream_CVI, 0, __pyx_mstate_global->__pyx_n_u_stream_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10893, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_CVI, __pyx_t_5) < (0)) __PYX_ERR(5, 3224, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10992, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_633stream_DEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DEMA, __pyx_t_5) < (0)) __PYX_ERR(5, 3257, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10992, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_635stream_DIV, 0, __pyx_mstate_global->__pyx_n_u_stream_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DIV, __pyx_t_5) < (0)) __PYX_ERR(5, 3286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11091, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_637stream_DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_stream_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11091, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMOU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DONCHIAN, __pyx_t_5) < (0)) __PYX_ERR(5, 3317, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_639stream_DPO, 0, __pyx_mstate_global->__pyx_n_u_stream_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DPO, __pyx_t_5) < (0)) __PYX_ERR(5, 3355, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[15]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11285, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_641stream_DX, 0, __pyx_mstate_global->__pyx_n_u_stream_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11285, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CORREL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_DX, __pyx_t_5) < (0)) __PYX_ERR(5, 3384, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11383, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_643stream_EFI, 0, __pyx_mstate_global->__pyx_n_u_stream_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11383, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EFI, __pyx_t_5) < (0)) __PYX_ERR(5, 3419, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11478, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_645stream_EMA, 0, __pyx_mstate_global->__pyx_n_u_stream_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11478, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COSH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EMA, __pyx_t_5) < (0)) __PYX_ERR(5, 3451, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11572, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_647stream_ER, 0, __pyx_mstate_global->__pyx_n_u_stream_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11572, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ER, __pyx_t_5) < (0)) __PYX_ERR(5, 3480, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3511, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11666, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3509, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_649stream_ERI, 0, __pyx_mstate_global->__pyx_n_u_stream_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3509, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ERI, __pyx_t_5) < (0)) __PYX_ERR(5, 3509, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11666, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_651stream_EXP, 0, __pyx_mstate_global->__pyx_n_u_stream_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3547, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_EXP, __pyx_t_5) < (0)) __PYX_ERR(5, 3547, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11764, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11764, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_653stream_FLOOR, 0, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FLOOR, __pyx_t_5) < (0)) __PYX_ERR(5, 3574, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3603, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11861, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3601, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_655stream_FOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3601, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11861, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DIV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FOSC, __pyx_t_5) < (0)) __PYX_ERR(5, 3601, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3632, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3632, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11957, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_657stream_FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_stream_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11957, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 12020, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[25], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 12020, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(5, 3630, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12061, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12061, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_659stream_HA, 0, __pyx_mstate_global->__pyx_n_u_stream_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HA, __pyx_t_11) < (0)) __PYX_ERR(5, 3666, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_661stream_HMA, 0, __pyx_mstate_global->__pyx_n_u_stream_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3711, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12264, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12264, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_663stream_HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3740, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(5, 3740, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12363, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12363, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_665stream_HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3767, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(5, 3767, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12460, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12460, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_667stream_HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3794, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(5, 3794, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12556, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12556, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_669stream_HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 12618, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[26], __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 12618, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ERI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12658, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12658, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_671stream_HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3854, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EXP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3854, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12758, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12758, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_673stream_HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(5, 3881, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_675stream_IMI, 0, __pyx_mstate_global->__pyx_n_u_stream_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12852, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_IMI, __pyx_t_11) < (0)) __PYX_ERR(5, 3908, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3942, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3940, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_677stream_KAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3940, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KAMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3940, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3971, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 13010, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[27], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 13010, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_11, __pyx_t_3, __pyx_t_5}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 3969, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_679stream_KC, 0, __pyx_mstate_global->__pyx_n_u_stream_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3969, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13050, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KC, __pyx_t_5) < (0)) __PYX_ERR(5, 3969, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4014, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - - { - PyObject* __pyx_temp[5] = {__pyx_t_5, __pyx_t_9, __pyx_t_3, __pyx_t_11, __pyx_t_12}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 13117, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[28], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_681stream_KDJ, 0, __pyx_mstate_global->__pyx_n_u_stream_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 13117, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_KDJ, __pyx_t_12) < (0)) __PYX_ERR(5, 4012, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4059, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4057, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_683stream_LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4057, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG, __pyx_t_12) < (0)) __PYX_ERR(5, 4057, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13271, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_685stream_LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13271, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_t_12) < (0)) __PYX_ERR(5, 4086, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13365, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_687stream_LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13365, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_t_12) < (0)) __PYX_ERR(5, 4115, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13459, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13459, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 13521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[29], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 13521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13557, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_689stream_LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13557, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 13623, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[30], __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 13623, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_t_12) < (0)) __PYX_ERR(5, 4144, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13659, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13659, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_691stream_LN, 0, __pyx_mstate_global->__pyx_n_u_stream_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LN, __pyx_t_12) < (0)) __PYX_ERR(5, 4173, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_693stream_LOG10, 0, __pyx_mstate_global->__pyx_n_u_stream_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_LOG10, __pyx_t_12) < (0)) __PYX_ERR(5, 4200, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13851, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_12, __pyx_t_10}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_695stream_MA, 0, __pyx_mstate_global->__pyx_n_u_stream_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13851, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MA, __pyx_t_10) < (0)) __PYX_ERR(5, 4227, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4259, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_11, __pyx_t_12}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_697stream_MACD, 0, __pyx_mstate_global->__pyx_n_u_stream_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACD, __pyx_t_12) < (0)) __PYX_ERR(5, 4257, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 4296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4296, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 14045, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[6] = {__pyx_t_12, __pyx_t_3, __pyx_t_11, __pyx_t_10, __pyx_t_9, __pyx_t_5}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 14045, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 14107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[31], __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_699stream_MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 14107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDEXT, __pyx_t_5) < (0)) __PYX_ERR(5, 4294, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[32]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_701stream_MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MACDFIX, __pyx_t_5) < (0)) __PYX_ERR(5, 4334, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4371, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 14223, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[33], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 14223, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KDJ_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[34]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_13}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4369, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_703stream_MAMA, 0, __pyx_mstate_global->__pyx_n_u_stream_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14269, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAMA, __pyx_t_13) < (0)) __PYX_ERR(5, 4369, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_705stream_MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_stream_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MARKETFI, __pyx_t_13) < (0)) __PYX_ERR(5, 4402, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14375, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_13, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14375, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_707stream_MASSI, 0, __pyx_mstate_global->__pyx_n_u_stream_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4435, __pyx_L1_error) + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MASSI, __pyx_t_9) < (0)) __PYX_ERR(5, 4435, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_9, __pyx_t_5, __pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_709stream_MAVP, 0, __pyx_mstate_global->__pyx_n_u_stream_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAVP, __pyx_t_13) < (0)) __PYX_ERR(5, 4468, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14567, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_711stream_MAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14567, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAX, __pyx_t_13) < (0)) __PYX_ERR(5, 4503, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14663, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_713stream_MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MAXINDEX, __pyx_t_13) < (0)) __PYX_ERR(5, 4532, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14663, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_715stream_MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4561, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MEDPRICE, __pyx_t_13) < (0)) __PYX_ERR(5, 4561, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_717stream_MFI, 0, __pyx_mstate_global->__pyx_n_u_stream_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LOG10_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MFI, __pyx_t_13) < (0)) __PYX_ERR(5, 4591, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14851, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_719stream_MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14851, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPOINT, __pyx_t_13) < (0)) __PYX_ERR(5, 4629, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4660, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[35]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_721stream_MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIDPRICE, __pyx_t_13) < (0)) __PYX_ERR(5, 4658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14948, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4692, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 15010, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[36], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 15010, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_723stream_MIN, 0, __pyx_mstate_global->__pyx_n_u_stream_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MIN, __pyx_t_13) < (0)) __PYX_ERR(5, 4690, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15052, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_725stream_MININDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MININDEX, __pyx_t_13) < (0)) __PYX_ERR(5, 4719, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15052, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 15122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[37], __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 15122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_727stream_MINMAX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAX, __pyx_t_13) < (0)) __PYX_ERR(5, 4748, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[38]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 15167, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_729stream_MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINMAXINDEX, __pyx_t_13) < (0)) __PYX_ERR(5, 4780, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 15167, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 15237, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[39], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 15237, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_731stream_MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DI, __pyx_t_13) < (0)) __PYX_ERR(5, 4812, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 15277, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_733stream_MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MINUS_DM, __pyx_t_13) < (0)) __PYX_ERR(5, 4847, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 15277, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 15347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[40], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 15347, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[41]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_735stream_MOM, 0, __pyx_mstate_global->__pyx_n_u_stream_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MOM, __pyx_t_13) < (0)) __PYX_ERR(5, 4879, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_737stream_MULT, 0, __pyx_mstate_global->__pyx_n_u_stream_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MASSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_MULT, __pyx_t_13) < (0)) __PYX_ERR(5, 4908, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15586, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_739stream_NATR, 0, __pyx_mstate_global->__pyx_n_u_stream_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15586, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAVP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_NATR, __pyx_t_13) < (0)) __PYX_ERR(5, 4939, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[42]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_741stream_NVI, 0, __pyx_mstate_global->__pyx_n_u_stream_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 4974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_NVI, __pyx_t_13) < (0)) __PYX_ERR(5, 4974, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_743stream_OBV, 0, __pyx_mstate_global->__pyx_n_u_stream_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5004, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_OBV, __pyx_t_13) < (0)) __PYX_ERR(5, 5004, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5037, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5037, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15880, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_13, __pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5035, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_745stream_PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_stream_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5035, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15880, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(5, 5035, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5067, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15979, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5065, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_747stream_PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_stream_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5065, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15979, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(5, 5065, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16079, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_749stream_PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16079, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(5, 5094, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_751stream_PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(5, 5129, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16275, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_5, __pyx_t_13}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5161, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_753stream_PPO, 0, __pyx_mstate_global->__pyx_n_u_stream_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5161, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16275, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PPO, __pyx_t_13) < (0)) __PYX_ERR(5, 5161, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16372, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16372, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_755stream_PVI, 0, __pyx_mstate_global->__pyx_n_u_stream_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PVI, __pyx_t_13) < (0)) __PYX_ERR(5, 5192, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5224, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 16534, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[43], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 16534, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 16572, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_13, __pyx_t_9, __pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 16572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_757stream_PVO, 0, __pyx_mstate_global->__pyx_n_u_stream_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PVO, __pyx_t_5) < (0)) __PYX_ERR(5, 5222, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_759stream_PVT, 0, __pyx_mstate_global->__pyx_n_u_stream_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 16638, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[44], __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 16638, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_PVT, __pyx_t_5) < (0)) __PYX_ERR(5, 5253, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16676, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_761stream_QSTICK, 0, __pyx_mstate_global->__pyx_n_u_stream_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16676, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_QSTICK, __pyx_t_5) < (0)) __PYX_ERR(5, 5283, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16785, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_763stream_RMA, 0, __pyx_mstate_global->__pyx_n_u_stream_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16785, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RMA, __pyx_t_5) < (0)) __PYX_ERR(5, 5315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5346, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_765stream_ROC, 0, __pyx_mstate_global->__pyx_n_u_stream_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MOM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROC, __pyx_t_5) < (0)) __PYX_ERR(5, 5344, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16981, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5373, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_767stream_ROCP, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5373, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16981, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MULT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCP, __pyx_t_5) < (0)) __PYX_ERR(5, 5373, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5404, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17077, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_769stream_ROCR, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17077, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR, __pyx_t_5) < (0)) __PYX_ERR(5, 5402, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_771stream_ROCR100, 0, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ROCR100, __pyx_t_5) < (0)) __PYX_ERR(5, 5431, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17273, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_773stream_RSI, 0, __pyx_mstate_global->__pyx_n_u_stream_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17273, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_OBV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RSI, __pyx_t_5) < (0)) __PYX_ERR(5, 5460, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5491, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5491, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17370, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_5, __pyx_t_10}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_775stream_RVI, 0, __pyx_mstate_global->__pyx_n_u_stream_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17370, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RVI, __pyx_t_10) < (0)) __PYX_ERR(5, 5489, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[45]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_777stream_RVOL, 0, __pyx_mstate_global->__pyx_n_u_stream_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_RVOL, __pyx_t_10) < (0)) __PYX_ERR(5, 5519, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - - __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17564, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_10, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_779stream_SAR, 0, __pyx_mstate_global->__pyx_n_u_stream_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17564, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAR, __pyx_t_9) < (0)) __PYX_ERR(5, 5548, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5583, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17662, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[8] = {__pyx_t_9, __pyx_t_5, __pyx_t_10, __pyx_t_13, __pyx_t_11, __pyx_t_3, __pyx_t_12, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5581, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17662, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_781stream_SAREXT, 0, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5581, __pyx_L1_error) + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SAREXT, __pyx_t_2) < (0)) __PYX_ERR(5, 5581, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17761, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17761, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_783stream_SIN, 0, __pyx_mstate_global->__pyx_n_u_stream_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5620, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SIN, __pyx_t_2) < (0)) __PYX_ERR(5, 5620, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[19]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17860, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17860, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_785stream_SINH, 0, __pyx_mstate_global->__pyx_n_u_stream_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5647, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SINH, __pyx_t_2) < (0)) __PYX_ERR(5, 5647, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5674, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_787stream_SMA, 0, __pyx_mstate_global->__pyx_n_u_stream_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5674, __pyx_L1_error) + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SMA, __pyx_t_2) < (0)) __PYX_ERR(5, 5674, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[19]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18054, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18054, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5705, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5705, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18149, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[4] = {__pyx_t_2, __pyx_t_4, __pyx_t_12, __pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_789stream_SMI, 0, __pyx_mstate_global->__pyx_n_u_stream_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5703, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SMI, __pyx_t_3) < (0)) __PYX_ERR(5, 5703, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_791stream_SQRT, 0, __pyx_mstate_global->__pyx_n_u_stream_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5744, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SQRT, __pyx_t_3) < (0)) __PYX_ERR(5, 5744, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_11}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_793stream_STDDEV, 0, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(5, 5771, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5803, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18344, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5803, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[5] = {__pyx_t_11, __pyx_t_12, __pyx_t_3, __pyx_t_4, __pyx_t_2}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5801, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18344, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_795stream_STOCH, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5801, __pyx_L1_error) + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCH, __pyx_t_2) < (0)) __PYX_ERR(5, 5801, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18440, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_2, __pyx_t_13, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18440, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_797stream_STOCHF, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHF, __pyx_t_4) < (0)) __PYX_ERR(5, 5843, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5885, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18536, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5885, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5885, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5885, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[4] = {__pyx_t_4, __pyx_t_3, __pyx_t_13, __pyx_t_2}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18536, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_799stream_STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5883, __pyx_L1_error) + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_STOCHRSI, __pyx_t_2) < (0)) __PYX_ERR(5, 5883, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18632, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18632, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_801stream_SUB, 0, __pyx_mstate_global->__pyx_n_u_stream_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5918, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUB, __pyx_t_2) < (0)) __PYX_ERR(5, 5918, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18728, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5949, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18728, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_803stream_SUM, 0, __pyx_mstate_global->__pyx_n_u_stream_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5949, __pyx_L1_error) + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUM, __pyx_t_2) < (0)) __PYX_ERR(5, 5949, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_12 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_12}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18824, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_805stream_SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_stream_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5978, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_SUPERTREND, __pyx_t_12) < (0)) __PYX_ERR(5, 5978, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6019, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6019, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18921, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_12, __pyx_t_13}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6017, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_807stream_T3, 0, __pyx_mstate_global->__pyx_n_u_stream_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6017, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18921, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_T3, __pyx_t_13) < (0)) __PYX_ERR(5, 6017, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_809stream_TAN, 0, __pyx_mstate_global->__pyx_n_u_stream_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVOL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TAN, __pyx_t_13) < (0)) __PYX_ERR(5, 6047, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19017, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19017, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_811stream_TANH, 0, __pyx_mstate_global->__pyx_n_u_stream_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6074, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TANH, __pyx_t_13) < (0)) __PYX_ERR(5, 6074, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[46]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6101, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_813stream_TEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[47]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19220, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TEMA, __pyx_t_13) < (0)) __PYX_ERR(5, 6101, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_815stream_TRANGE, 0, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRANGE, __pyx_t_13) < (0)) __PYX_ERR(5, 6130, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6163, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_817stream_TRIMA, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SINH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19409, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIMA, __pyx_t_13) < (0)) __PYX_ERR(5, 6163, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6194, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6192, __pyx_L1_error) + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_819stream_TRIX, 0, __pyx_mstate_global->__pyx_n_u_stream_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19409, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19505, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19505, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TRIX, __pyx_t_13) < (0)) __PYX_ERR(5, 6192, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 19567, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[48], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 19567, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[49]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19610, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_13}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_821stream_TSF, 0, __pyx_mstate_global->__pyx_n_u_stream_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19610, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SQRT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TSF, __pyx_t_13) < (0)) __PYX_ERR(5, 6221, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19710, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19710, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6252, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[50]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19807, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_13, __pyx_t_2}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_823stream_TSI, 0, __pyx_mstate_global->__pyx_n_u_stream_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6250, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19807, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 19869, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[51], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 19869, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TSI, __pyx_t_2) < (0)) __PYX_ERR(5, 6250, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[52]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19913, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19913, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 19981, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[53], __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 19981, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_825stream_TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6280, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_TYPPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 6280, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[42]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 20023, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 20023, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6315, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 20091, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[54], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 20091, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[55]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[3] = {__pyx_t_2, __pyx_t_12, __pyx_t_13}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_827stream_ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUB_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ULTOSC, __pyx_t_13) < (0)) __PYX_ERR(5, 6313, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20232, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[2] = {__pyx_t_13, __pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_829stream_VAR, 0, __pyx_mstate_global->__pyx_n_u_stream_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6350, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20232, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VAR, __pyx_t_3) < (0)) __PYX_ERR(5, 6350, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20329, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20329, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 20391, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[56], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 20391, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[57]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_831stream_VHF, 0, __pyx_mstate_global->__pyx_n_u_stream_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6380, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_T3_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VHF, __pyx_t_3) < (0)) __PYX_ERR(5, 6380, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[50]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20629, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20629, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TANH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20723, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_833stream_VORTEX, 0, __pyx_mstate_global->__pyx_n_u_stream_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20723, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VORTEX, __pyx_t_3) < (0)) __PYX_ERR(5, 6409, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20819, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20819, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_835stream_VWAP, 0, __pyx_mstate_global->__pyx_n_u_stream_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VWAP, __pyx_t_3) < (0)) __PYX_ERR(5, 6447, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20915, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20915, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21013, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21013, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_837stream_VWMA, 0, __pyx_mstate_global->__pyx_n_u_stream_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_VWMA, __pyx_t_3) < (0)) __PYX_ERR(5, 6483, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21205, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21205, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_839stream_WAD, 0, __pyx_mstate_global->__pyx_n_u_stream_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6516, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WAD, __pyx_t_3) < (0)) __PYX_ERR(5, 6516, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21302, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21302, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_841stream_WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6549, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WCLPRICE, __pyx_t_3) < (0)) __PYX_ERR(5, 6549, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21398, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21398, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6584, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21500, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21500, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[50]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21599, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_843stream_WILLR, 0, __pyx_mstate_global->__pyx_n_u_stream_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21599, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WILLR, __pyx_t_3) < (0)) __PYX_ERR(5, 6582, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21695, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 21757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[58], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 21757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21797, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_845stream_WMA, 0, __pyx_mstate_global->__pyx_n_u_stream_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21797, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWAP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_WMA, __pyx_t_3) < (0)) __PYX_ERR(5, 6617, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21900, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21900, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22001, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22001, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WAD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22098, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; { - PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_847stream_ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_stream_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22098, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_12); - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_stream_ZLEMA, __pyx_t_3) < (0)) __PYX_ERR(5, 6646, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_12 = PyList_New(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) { - __pyx_t_2 = __pyx_t_13; __Pyx_INCREF(__pyx_t_2); - __pyx_t_23 = 0; - __pyx_t_35 = NULL; - } else { - __pyx_t_23 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_35 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 8, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WILLR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[450])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - for (;;) { - if (likely(!__pyx_t_35)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 8, __pyx_L1_error) - #endif - if (__pyx_t_23 >= __pyx_temp) break; - } - __pyx_t_13 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_2, __pyx_t_23, __Pyx_ReferenceSharing_OwnStrongReference); - ++__pyx_t_23; - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_SIZE - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 8, __pyx_L1_error) - #endif - if (__pyx_t_23 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_13 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_23)); - #else - __pyx_t_13 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_23); - #endif - ++__pyx_t_23; - } - if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 8, __pyx_L1_error) - } else { - __pyx_t_13 = __pyx_t_35(__pyx_t_2); - if (unlikely(!__pyx_t_13)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) __PYX_ERR(0, 8, __pyx_L1_error) - PyErr_Clear(); - } - break; - } - } - __Pyx_GOTREF(__pyx_t_13); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_name, __pyx_t_13) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_stream__s, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_GIVEREF(__pyx_t_4); - if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_12, __pyx_t_4))) __PYX_ERR(0, 8, __pyx_L1_error) - __pyx_t_4 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22296, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[451])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22394, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_2) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22394, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[452])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_2) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; + __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_9) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_9) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /*--- Wrapped vars code ---*/ @@ -112256,8 +350945,9 @@ static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { const char *__pyx_filename = NULL; int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); - __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(1, 64, __pyx_L1_error) + __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_object); if (!__pyx_builtin_object) __PYX_ERR(1, 72, __pyx_L1_error) __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_property); if (!__pyx_builtin_property) __PYX_ERR(2, 129, __pyx_L1_error) + __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(3, 2581, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 322, __pyx_L1_error) /* Cached unbound methods */ @@ -112283,7 +350973,7 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { { PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_stacklevel}; - __pyx_mstate_global->__pyx_tuple[0] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(1, 137, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[0] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[0])) __PYX_ERR(1, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[0]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[0]); @@ -112318,39 +351008,39 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[5] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(1, 64, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[5] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[6] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(1, 64, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[6] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[6])) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[6]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[6]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[7] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(1, 174, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[7] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[7])) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[7]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[7]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[8] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(1, 174, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[8] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[8])) __PYX_ERR(1, 182, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[8]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[8]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[9] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(1, 181, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[9] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[9])) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[9]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[9]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[10] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[10])) __PYX_ERR(1, 181, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[10] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[10])) __PYX_ERR(1, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[10]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[10]); @@ -112374,10 +351064,325 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[13]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[13]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_OutRange, __pyx_mstate_global->__pyx_kp_u_begidx_nbelement}; + __pyx_mstate_global->__pyx_tuple[14] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[14])) __PYX_ERR(3, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[14]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[14]); + + { + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[15] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[15])) __PYX_ERR(3, 2581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[15]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[15]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_ACCBANDS_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; + __pyx_mstate_global->__pyx_tuple[16] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[16])) __PYX_ERR(3, 2644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[16]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[16]); + + { + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[17] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[17])) __PYX_ERR(3, 2686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[17]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[17]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[18] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[18])) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[18]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[18]); + + { + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_1}; + __pyx_mstate_global->__pyx_tuple[19] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[19])) __PYX_ERR(3, 3585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[19]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[19]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_AROON_Value, __pyx_mstate_global->__pyx_kp_u_aroondown_aroonup}; + __pyx_mstate_global->__pyx_tuple[20] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[20])) __PYX_ERR(3, 3647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[20]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[20]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_BBANDS_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; + __pyx_mstate_global->__pyx_tuple[21] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[21])) __PYX_ERR(3, 4335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[21]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[21]); + + { + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[22] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[22])) __PYX_ERR(3, 4378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[22]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[22]); + + { + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_3}; + __pyx_mstate_global->__pyx_tuple[23] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[23])) __PYX_ERR(3, 5484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[23]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[23]); + + { + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_5}; + __pyx_mstate_global->__pyx_tuple[24] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[24])) __PYX_ERR(3, 6186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[24]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[24]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_DONCHIAN_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; + __pyx_mstate_global->__pyx_tuple[25] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[25])) __PYX_ERR(3, 12020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[25]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[25]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_ERI_Value, __pyx_mstate_global->__pyx_kp_u_bullpower_bearpower}; + __pyx_mstate_global->__pyx_tuple[26] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[26])) __PYX_ERR(3, 12618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[26]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[26]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_FRACTAL_Value, __pyx_mstate_global->__pyx_kp_u_swinghigh_swinglow}; + __pyx_mstate_global->__pyx_tuple[27] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[27])) __PYX_ERR(3, 13010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[27]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[27]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_HA_Value, __pyx_mstate_global->__pyx_kp_u_haopen_hahigh_halow_haclose}; + __pyx_mstate_global->__pyx_tuple[28] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[28])) __PYX_ERR(3, 13117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[28]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[28]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value, __pyx_mstate_global->__pyx_kp_u_inphase_quadrature}; + __pyx_mstate_global->__pyx_tuple[29] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[29])) __PYX_ERR(3, 13521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[29]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[29]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_HT_SINE_Value, __pyx_mstate_global->__pyx_kp_u_sine_leadsine}; + __pyx_mstate_global->__pyx_tuple[30] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[30])) __PYX_ERR(3, 13623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[30]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[30]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_KC_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; + __pyx_mstate_global->__pyx_tuple[31] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[31])) __PYX_ERR(3, 14107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[31]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[31]); + + { + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[32] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[32])) __PYX_ERR(3, 14151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[32]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[32]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_KDJ_Value, __pyx_mstate_global->__pyx_kp_u_k_d_j}; + __pyx_mstate_global->__pyx_tuple[33] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[33])) __PYX_ERR(3, 14223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[33]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[33]); + + { + PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13}; + __pyx_mstate_global->__pyx_tuple[34] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[34])) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[34]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[34]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[35] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[35])) __PYX_ERR(3, 14948, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[35]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[35]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MACD_Value, __pyx_mstate_global->__pyx_kp_u_macd_macdsignal_macdhist}; + __pyx_mstate_global->__pyx_tuple[36] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[36])) __PYX_ERR(3, 15010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[36]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[36]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MACDEXT_Value, __pyx_mstate_global->__pyx_kp_u_macd_macdsignal_macdhist}; + __pyx_mstate_global->__pyx_tuple[37] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[37])) __PYX_ERR(3, 15122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[37]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[37]); + + { + PyObject* __pyx_temp[6] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[38] = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_mstate_global->__pyx_tuple[38])) __PYX_ERR(3, 15167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[38]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[38]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MACDFIX_Value, __pyx_mstate_global->__pyx_kp_u_macd_macdsignal_macdhist}; + __pyx_mstate_global->__pyx_tuple[39] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[39])) __PYX_ERR(3, 15237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[39]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[39]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MAMA_Value, __pyx_mstate_global->__pyx_kp_u_mama_fama}; + __pyx_mstate_global->__pyx_tuple[40] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[40])) __PYX_ERR(3, 15347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[40]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[40]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[41] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[41])) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[41]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[41]); + + { + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[42] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[42])) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[42]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[42]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MINMAX_Value, __pyx_mstate_global->__pyx_kp_u_min_max}; + __pyx_mstate_global->__pyx_tuple[43] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[43])) __PYX_ERR(3, 16534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[43]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[43]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value, __pyx_mstate_global->__pyx_kp_u_minidx_maxidx}; + __pyx_mstate_global->__pyx_tuple[44] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[44])) __PYX_ERR(3, 16638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[44]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[44]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_50_0}; + __pyx_mstate_global->__pyx_tuple[45] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[45])) __PYX_ERR(3, 17468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[45]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[45]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_0_02, __pyx_mstate_global->__pyx_float_0_2}; + __pyx_mstate_global->__pyx_tuple[46] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[46])) __PYX_ERR(3, 19115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[46]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[46]); + + { + PyObject* __pyx_temp[8] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[47] = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_mstate_global->__pyx_tuple[47])) __PYX_ERR(3, 19220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[47]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[47]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_SMI_Value, __pyx_mstate_global->__pyx_kp_u_smi_smisignal}; + __pyx_mstate_global->__pyx_tuple[48] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[48])) __PYX_ERR(3, 19567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[48]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[48]); + + { + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[49] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[49])) __PYX_ERR(3, 19610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[49]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[49]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[50] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[50])) __PYX_ERR(3, 19807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[50]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[50]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_STOCH_Value, __pyx_mstate_global->__pyx_kp_u_slowk_slowd}; + __pyx_mstate_global->__pyx_tuple[51] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[51])) __PYX_ERR(3, 19869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[51]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[51]); + + { + PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[52] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[52])) __PYX_ERR(3, 19913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[52]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[52]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_STOCHF_Value, __pyx_mstate_global->__pyx_kp_u_fastk_fastd}; + __pyx_mstate_global->__pyx_tuple[53] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[53])) __PYX_ERR(3, 19981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[53]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[53]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_STOCHRSI_Value, __pyx_mstate_global->__pyx_kp_u_fastk_fastd}; + __pyx_mstate_global->__pyx_tuple[54] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[54])) __PYX_ERR(3, 20091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[54]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[54]); + + { + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[55] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[55])) __PYX_ERR(3, 20132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[55]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[55]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_SUPERTREND_Value, __pyx_mstate_global->__pyx_kp_u_real_integer}; + __pyx_mstate_global->__pyx_tuple[56] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[56])) __PYX_ERR(3, 20391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[56]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[56]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_3_0}; + __pyx_mstate_global->__pyx_tuple[57] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[57])) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[57]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[57]); + + { + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_VORTEX_Value, __pyx_mstate_global->__pyx_kp_u_plusvi_minusvi}; + __pyx_mstate_global->__pyx_tuple[58] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[58])) __PYX_ERR(3, 21757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[58]); + } + __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[58]); #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_tuple; - for (Py_ssize_t i=0; i<14; ++i) { + for (Py_ssize_t i=0; i<59; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -112411,50 +351416,54 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{33},{29},{2},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{32},{33},{30},{48},{35},{39},{34},{9},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{17},{2},{8},{4},{2},{3},{5},{3},{3},{4},{3},{2},{3},{5},{8},{4},{4},{3},{6},{8},{17},{6},{4},{3},{8},{8},{9},{12},{3},{9},{14},{10},{14},{11},{16},{17},{16},{15},{11},{12},{18},{19},{16},{17},{7},{11},{16},{12},{18},{14},{19},{17},{9},{13},{9},{14},{11},{10},{13},{15},{18},{9},{17},{10},{18},{15},{17},{11},{11},{14},{10},{18},{14},{9},{11},{14},{19},{18},{15},{12},{14},{17},{16},{9},{12},{12},{10},{15},{18},{19},{4},{3},{3},{4},{7},{6},{3},{4},{6},{3},{17},{7},{4},{8},{3},{8},{3},{2},{9},{3},{3},{3},{2},{3},{3},{5},{5},{4},{7},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{3},{11},{10},{9},{7},{12},{12},{7},{9},{3},{4},{2},{3},{9},{15},{19},{15},{2},{5},{4},{2},{4},{7},{7},{4},{8},{5},{4},{3},{8},{7},{19},{16},{8},{3},{8},{8},{3},{8},{6},{11},{8},{8},{3},{4},{4},{4},{3},{4},{3},{11},{10},{11},{7},{7},{3},{3},{3},{3},{6},{3},{3},{4},{4},{7},{3},{3},{4},{9},{8},{3},{6},{3},{4},{3},{3},{4},{6},{5},{6},{8},{3},{3},{10},{6},{10},{11},{14},{15},{7},{2},{3},{4},{5},{11},{7},{5},{6},{8},{6},{6},{7},{5},{6},{8},{11},{7},{7},{6},{9},{11},{9},{7},{6},{6},{12},{17},{13},{17},{14},{19},{20},{19},{18},{14},{15},{21},{22},{19},{20},{10},{14},{19},{15},{21},{17},{22},{20},{12},{16},{12},{17},{14},{13},{16},{18},{21},{12},{20},{13},{21},{18},{20},{14},{14},{17},{13},{21},{17},{12},{14},{17},{22},{21},{18},{15},{17},{20},{19},{12},{15},{15},{13},{18},{21},{22},{7},{6},{6},{7},{10},{9},{6},{7},{9},{6},{7},{6},{11},{6},{5},{6},{6},{5},{6},{6},{8},{7},{10},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{6},{14},{13},{12},{10},{15},{15},{6},{14},{13},{7},{5},{6},{12},{18},{22},{18},{5},{8},{5},{7},{10},{10},{7},{11},{8},{7},{6},{11},{11},{6},{11},{11},{6},{11},{9},{14},{11},{11},{6},{7},{7},{6},{6},{15},{13},{14},{10},{10},{6},{6},{6},{6},{19},{18},{9},{6},{6},{7},{7},{10},{6},{6},{7},{31},{6},{9},{6},{7},{6},{6},{7},{9},{8},{9},{11},{6},{6},{13},{20},{19},{26},{23},{20},{11},{5},{6},{7},{7},{9},{8},{7},{6},{6},{11},{9},{6},{6},{9},{7},{7},{6},{11},{8},{6},{8},{4},{6},{5},{4},{3},{3},{8},{6},{3},{3},{6},{4},{4},{3},{8},{5},{3},{5},{24},{32},{30},{35},{16},{20},{15},{18},{13},{20},{29},{18},{15},{18},{15},{20},{21},{7},{12},{8},{15},{23},{17},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{11},{12},{8},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{10},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{4},{4},{9},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{8},{5},{6},{7},{9},{9},{7},{12},{3},{10},{1},{4},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{9},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{7},{11},{13},{7},{6},{9},{14},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{12},{11},{6},{5},{10},{10},{6},{11},{10},{6},{7},{12},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{10},{5},{10},{9},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{9},{9},{15},{11},{9},{10},{12},{10},{10},{11},{9},{10},{12},{15},{11},{11},{10},{13},{15},{13},{11},{10},{10},{16},{21},{17},{21},{18},{23},{24},{23},{22},{18},{19},{25},{26},{23},{24},{14},{18},{23},{19},{25},{21},{26},{24},{16},{20},{16},{21},{18},{17},{20},{22},{25},{16},{24},{17},{25},{22},{24},{18},{18},{21},{17},{25},{21},{16},{18},{21},{26},{25},{22},{19},{21},{24},{23},{16},{19},{19},{17},{22},{25},{26},{11},{10},{10},{11},{14},{13},{10},{11},{13},{10},{11},{10},{15},{10},{9},{10},{10},{9},{10},{10},{12},{11},{14},{9},{10},{18},{17},{16},{14},{19},{19},{10},{11},{9},{10},{16},{22},{26},{22},{9},{12},{9},{11},{14},{14},{11},{15},{12},{11},{10},{15},{15},{10},{15},{15},{10},{15},{13},{18},{15},{15},{10},{11},{11},{10},{10},{17},{18},{14},{14},{10},{10},{10},{10},{13},{10},{10},{11},{11},{14},{10},{10},{11},{10},{13},{10},{11},{10},{10},{11},{13},{12},{13},{15},{10},{10},{17},{9},{10},{11},{11},{13},{12},{11},{10},{10},{15},{13},{10},{10},{13},{11},{11},{10},{15},{12},{10},{12},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{11},{4},{8},{9}}; - const struct { const unsigned int length: 9; } bytes_length_index[] = {{53},{265},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{100},{117},{117},{100},{179},{117},{117},{124},{117},{168},{100},{271},{175},{138},{101},{133},{101},{101},{126},{118},{183},{101},{148},{133},{222},{170},{101},{101},{168},{106},{119},{114},{135},{174},{115},{116},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{143},{161},{133},{143},{143},{133},{155},{148},{240},{134},{133},{133},{134},{169},{134},{134},{178},{157},{134},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{160},{236},{164},{185},{324},{231},{266},{164},{165},{246},{186},{197},{218},{165},{165},{209},{310},{318},{195},{324},{214},{328},{328},{201},{328},{202},{202},{207},{207},{209},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{93},{93},{94},{95},{95},{96},{96},{97},{97},{193},{193},{116},{193},{193},{115},{195},{200},{150},{151},{151},{151},{108},{117},{115},{115},{116},{181},{181},{177},{182},{182},{183},{183},{183},{184},{184},{184},{184},{188},{193},{193},{193},{444},{236},{105},{7},{13},{13},{13},{13},{15},{18},{79},{261},{104},{69},{363},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; + const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{17},{16},{19},{105},{7},{6},{11},{2},{27},{18},{32},{33},{30},{64},{48},{35},{9},{5},{24},{9},{7},{13},{36},{39},{34},{14},{12},{13},{11},{13},{18},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{30},{2},{8},{15},{29},{14},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{11},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{12},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{14},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{13},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{8},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{15},{7},{14},{28},{13},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{8},{3},{10},{24},{9},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{13},{7},{14},{28},{13},{11},{25},{10},{4},{11},{25},{10},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{17},{13},{27},{12},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{9},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{12},{8},{15},{29},{14},{12},{26},{11},{3},{10},{24},{3},{10},{24},{10},{17},{31},{16},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{12},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{24},{32},{30},{35},{16},{20},{15},{18},{13},{20},{29},{18},{15},{18},{15},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{12},{11},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; + const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{261},{104},{277},{246},{247},{247},{247},{309},{248},{248},{249},{279},{250},{250},{373},{259},{261},{253},{254},{259},{253},{453},{276},{419},{396},{262},{353},{265},{262},{377},{248},{276},{323},{362},{287},{352},{288},{293},{441},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{404},{335},{335},{405},{336},{341},{503},{520},{441},{423},{361},{430},{463},{551},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{294},{296},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{638},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (14638 bytes) */ -static const char cstring[] = "BZh91AY&SY8\016\006\264\000\025\300\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`C=\313\357\207>\336`\000\003\343\276c\201\003\320^\327\257^\264\337s{\003\3575\r\356\347\237_\006\265\367\336>\013\272\334\275y\367>\017\233>\273\275\367\017\274\373l\267\336\365\367\274\365\207\327|{\271\272\236\366]}\366\266\3659\363\334:\\\276\373\265\264J\227\000\037_+\347\256w\323\336\357\267;\276\353\343\356\367\000\365\345{\357m9\367\337_{\346{\307wwm\016\356\006\366y\356\303}\276w\336K\354E\350\371n_6j\267\256=\034\373\356\234\222m}\3122_@\000\003\200\000Q\036\236w\301\351v>\346!\003p\000\347\201$\210\020\230\200\001\221\223\010j\236\310\323C \311\223\020F\200\247\242\217&\215\036\232S\365OQ\352{Jz\236H\364\201\2404\321\352\t\"\0014\002\004B0\230\232h\000\221\264f\365Q\246\215#iOI\265\017S\000\236\210\311\264\206\214\230h\002\374\200\022\023\233\256y\337q=\217o\335\263\016\017n\243\355V\270\252)\371\367\204\316\225\"\005\002\010\262\205J\2113m\332\366\314l\320\262\021\001\r\001}\335f\010\223\033\356\302Lf\224J\207V\206\346\000\022-n\030 \262\020\202\220S\n\331\235u\306GjcP\301aCK\335:a\320w\354)\031Z\032\315cm\226\217\027\201t\320\003Z*H\250\022 \020\212\225\025\250\000\025\005J\200\201\"\214\212\222\n\200Q\024T$T\376\222\251T\242\251B\242\243\"\004\202\226\202\025i(@)\210\310\253EP\262(\310\213UH\220\252\005\252\240\005\264\020B\347\343\177#?\330\374K\370>O0|\353\026?\177\362\007B\306\335\361\374C\237\313\337\016b5\337""\270\342;\3603\224p\032#\200\334\202w\250\323\336j\010\0074D\300\240\330;t\014\357\255\244\035\025\303\204\t\274\314\261\0056\232 6mBr\014\0358Z\366\243\265\332\345\n\026\374\337\220\033\362\003\200\377\340\007\347\022\347\347>\200\177Bd\310[\3502\266S,\231J\000\252\252T\006\250)4\206\243!!\206\000b\244\273\310\266\324\301\0102B M\202\005\260\013f\215\0213nL\314Z\346\266\020\234c\n\212\203\002\020E\204\010\300\313f\341\320\376\376?\236\210\375\240\016\226-n\326\375\264\203\247\346\245\047\322\007\356\206\003%N\346\247\374\213\260\212\341\370P\273\332d\307\357%\223 \177\313\277\202\036\016\237\363F\205\234\017\315\277g\360.j\216\034\373\231\177\n]\025\0071d\314i\307\376\240\271\230\315\2402`\215\273?\211\007B\345\225\243\001\203?\304\034IS\023F\222vE\377\215o%\214\026\372\177\3308\032\344\3068e5v\355\377\272+\304iUgq\266%@\257\376\021TK\216u\3103\240\277\220\0163f\032c\325d<\232\014\361e\377\220\\u\270\324\265\326\305\t\267\376\200\301Rx\340m\2410\240\277\225\021\300\265\255}[)\252\214v\1772,P\255VP\214\203\377h\272&\3277\211f\"\314\177:P0\047\265\026\363\200\323o\350F\367\221\333CyM\037\322\241\213\023~\316T6s\n\237\324\215e.\047\006\220\277\030N\262\221\302\273\224\232\213\377Z\322Q77bL0\337\330\240f\314\314C}\215\241\031\257\355\024M\030\231\304\340\301)2\350\337\334\006sff\231\303q\211\026a\376\270\031\312\035\312\356\334\350\277\274Q\302.1\306\333\223\344\307\370\006\221\214\366\032D\231x\277\304%i\367m\300\236\351\272\303N\305\256\362\253j\303@b\031T?\312-\007ve\333\323\311\377\316k\262\346\212\"\301\370t\367\016\305\246\020\340\307\377NK\026\341\0031\243\336\374\207>\343\033cl\246\276U\323X\233\372R\\[\362\234\303\003\204\006`\356~ds5\332\231\310\343\372(\354e\313\247\0168\246\322\177\240+s7\322\021\370\203\216\021\354\2134>\205\213\347L7\237\3475h\353\243\274!\364\352\332\265\324\353\264\247\226Pj\365\355d6\021\340\017lKP:\243F\006:J\260:\245\006\337\r2:\203p\345\325o\226\322\352\017\237Z\261\2656}\330\326-\361\014\303\323~\2712\306\235w\325\316<\270[\341""\325\231\255^;\035T\372\360\341I\256|&\336\017\233\344\004\217\264\007\332HYR2\207j\016\345\235~\345\354\271v\256p4Z\375.\341\207\222\314\274\316y$\340\314(\330\277<\311.I\325nQ$\2237\263\026a0\217RW]\231{\235\234p\234\027\246\364\347rp\354hpb\307\2233g[\037.n\306\306\034\376\214=X\264\264e\323v\224\273\324$\335\323\225{\035].\274\271/\330\265\271\305>\326R\336[t5a\311OB\217\025\215\274\315\274\264\000N0\003\021O \256\304\003Z/\002\017\242#\335E\375QM\341M\341\017\342S\302\t\333T\332A\336E\366\020r\212{@\236\302\007\201Sq\023\201^\350&\3728\3007\2207T7D{\212\224\300)$\251\000ZB\340\005\210H\306$|B8\204\256\202\266\205\300\205\221%dJ\310\213\".\001lE\264\007(\221q%pFD\272\005y\027@\312\205\320.\220:\222\312+\351\035]==<6\337\317z\365\350\255qW\314\347\202\236c\275}y7\314\203\250\271\307\271tt\352t\347n\336\313\261ok\251v\277S\026\356\236-9\351\245!\036\366jS\320\357\r\\\343\024\375\341\242\347\257\326\261\247(n\322\316\375[z\2741\315\267\352k\236\035\347\205\367\352px\342i\037D%\274\243\350\312\224\307\321\035$x\347?GR\224\226^\241\214\255g\217\\\215\262\204\372\221\322\026\336\222\333\2507\255\276\331Z}B|c\276\374\272\207\023\007\352\271(\361\204\274\341\316yS\312\032\255\"\272\233U\317d\316\207S:c\324\314\300\352\263\047\323\251\343cB>\262\323\256\226\367\262+[o\361\336V\317y\237\036\355\233\365\236\277\027_x\317\3430>5\327oA\210\335~\023\034p\022\360D\345.\t%uG\253\332\007h$\273N\333\367j\361]\241\273R\276\257GE|\035\032;\226\366\344\245\241z+\033\371\227z\245A\013\363\351\332\203\202\316\375\2335\352\353\351n\321\265\201%\234\205\240\221}\006\261\200T\200\274*\350\252\212\201\270\213\350)$m\n\272\016\2000\013\0020\"\360`\014\002\260\272\205}`K\211+b\300\"\322\016\0208E\302\005\240-\001i\026\202\310YG\000\276!X,^\016\222\371\322\005\303\250\276`\\\305\325t.\205\325x\347\014=f\023\021\325~\355\357\324\013\363\017\3153\002\001\014\230I$\206\030H\204\024\200\000\240\020\221d\025AU@\220\017\316B3\026.\331\257\230\330\"\2336\375\371w\373$/\235x\014M;\024\0230\365ufub""\315\351|}8\245b}\376~{\375\003O\327\216\367_G76\224\316{\267zoJ\231z(-\334\370\256v\2402\243*<\210\362#\310\203\311\344\325\235\265\271_I\332\026\370\323\\W\013\226\367\016#\212\342\266[-\225\226u\302\342\317-\361[-\034f\305\316%\263l\271\304\\6\370N\022\335\313\225\213\227\r\336;w99\016S\034\2570\220%\303\301\345\263\275\275\371\234\342\270s\207:\347V\263%\363z\001\363\247C:v\001)\252j\232MK\245#\244\232\2270s\006\263R\346\322}\017\204`\260X\262(\244\026\004Pd\026I\031\025dO\203(:2\252.T\320hCA\210\244\240Cz\245\023g!$\246\004\304\246L\2310\027Y\361\346\245\373~\177\340\325|\266\240\367\0372\342c\301^\231\204\303\275\337\367\357\316q(/\027\027\021\267\330V\365E1#\024\200\021\202\001m\270\314b\343\r\213\202\363\000\330]\201\320\020\334\210\2622(\350IP\370yAA\312&Q\001\213\243\320\240\316\030r\2440\023\025\005e`B(2\022I\032\352k\2519\223M\013\237\263\252\305\n\033\301\202\210`F\035\235\017\006{\324C\004w\260S9\033\226R\203\021\030\213R@\205i4\332^\000\316\356n@\"\301 9\326\250\2543\246\006\037\025\r9\2302@\205\010\255U\024\300\241D\231\201\005\367\330\333G\322X\244bcp\0241C\202 0$\242\nTEIT!\030\"\310\006\010\031\005\314\246W:p\251\331r\345\031\002As@p2eG\ti\t\010\315\031\345\206\350n\022\"\262,!e\210\212\202\010\310\006\260\343\002Y\027\321z\222RE\004\202\244!\265\0205\020+A\231\000\251IF\016\247&gwpg\254\352\344\251\374\0054\021\241\263d\217\305\262A\261\264\\a+\211\000XY\244b\2153H\320\311U\005\263\021\216\221CDc\003\221\005-\036S\213\222\303N\341\016\353\r\304p\033#\221\242\2268\021\000\276\270\005\300\201\201p+\200\316\r\000 \010\271\376\255\004\360\0343cD\262Y\002\026Q?\223\001 8\025\001ZV\004\n\310V\022E\215\020\264IhS\\D\027\270\r\034\235\364w2\022F8\341P$\211`\030 \302A+\020i\240V\004Y#\021$\261H\271`\376[\333[\3426 \304\026%\356#c\002\246\026k\000\250$\224$\222\005\374\327\233\274\320\215\226&(40\304Z\253\363\305\225\3268\200\260\303\r\004\\Xi\263\025\026\205kDP\016G\357\014\267\0333\010\032+\200\033\270\022H\220\203\340\020\210\233\026\370\200+\t\033""\233EW|\243\251\226+\225\341h\227:\301ILwC\237\275^f\365\370\220\235\330\360x<\035\275v\367\362\200\363z3_\007\233\310\344\034Dt9\025\366f\372\\\353\221\n/\311\261\302~\371\334mT=\273{\222\342f51\221t\305\0038\326e\376N\332\235\"\341\206\315\221+\332\237\016V\243J\260\311r(Gly\303+0e\233\263\320\2375\200\214x\250e\305\375\311\\\3427:\363\306B\007\222\346\335\271\321Co\013\373Ns}\216\341\273\347i\030<\242\370x_\360\312.\363\322\206\177\255\373\223\226d\255\245\360b\017\365\251\030\306\373\025\321F$g\025\376g#~:fe\r\033\244q\237\360\343\230\2735q\214q\3121\361O\356T\222\305\247\243\375\022\361\2621\317\223Z\213\2148^$\376\313\270\320\017\036\025h\234_\010I\240\374#\241|hF\227\302/7\036\317+\205o\201\047%\031G\010A\332\r\203\037\356\224x\322\322\\w:\234s\034\337\351\314\272\016Q\230a\230fk\374\327A\351$\222\230\214@I\2314&\277\014>\t\264\333\223@\024P\304\272\"1E\372\030\031\215@qp\020\220\305\226\"o\025;t\035S\264$\201H0F\032sfxJ\004\246%df\312h\004\252%TX\252\251\355\037*\317\020F?\217\361\207\037\260h\021\034\310\267\312\301ea\nh\240ll\226\300+\000\266\\\n`8\273\030|\224>/~\275x0\"\2770\353\352\341\n\342\014F#\023\373~\320\"i\032\n\232\367\377`\347\3205\264\003A\320SX]c\367f\373\376=\375\047$6J\020\315\336\372xq\240.\254u\020LC\333\334\352u\030\374\233\020\016\003\226i\322\024)\\:~={d\266\036\t\247\247\200\014Hb\014\325\311\334\256\242\232\213\270:\256\341\357?\006\003\023\207j3\3645\016\226\303\364\372\372\376C\344\366\304\343\261\316%\303\274>\227\206(\345\301\344\366S\022\246m\224Cj\230\236m\240\333(\244s\024\n\351 \330.\253C\212\323\016z\242\246C\020\310m\001\002Y\361\333\224\340\376\t#5\013t\231\376\271\310\375\346r\022\347\243A6\323}\366xq\301\251\227Uj\261d\247KP5\0229:5)\0105\005\377}\241\346C\000\332#Nw\356\3656\267\331\241\026\247\233\274\326w\225l5mJ\254\032\251T\324Z\212\rC\305n$Q\344c\212m\314/\361\330\327Z\252\215\273\033\363\227\237\036[\265\205I\023\254}\243m\206\353\024m%\034\025\356\377e%\306F\256P\3259\206\n\000\270\371h\300Q\255\244rZ\326y\247<;""\356\313\t\310\033r\212\246\215\247!\010\360r\277<\t\016\313\202R\331\033\363\006\304\262\275\235\020\354\207\024_\250\354\232\236\263u\r5\337\202\237:\226k\252\364\210\022(m\322{$9!\350:\r\034\365\313\243d)\242y\t\3427\315\271\341\276\022\305cE\001\302B\030\022R\006\003b$Z\"\320r$T\345,V\356t\206j\2204\360Hi\t\202E\366\311,\354r\227>\200\032\317\277\341\222M^\346\276\255]s}\007\2017\301|\340~\276\263\232\006\274CJ\232SY\317\331;x\243\214\222G\312\307\367\210\315~]\212lw\325v\030a\201\371\314TE\024\257\356p\271\201\373\234B\305\204Y Ap\326\353\327\301\013A+\207\034\026\002\301!%n\177E\317\242\324\315h\340Y$\205\240\006\005L\304f\213\037\377\366\364K\003\000\301#\003}q?V\353\231\257\253\364\373\035wX\320F\2131$+\220\027\371\3753\266\002\022Js6AO\332\033\242\320\017\203+\n\276r\277\357>\327\020\036\301\370pK\r\031\256V\235\357\301\201\200Z\266fm\216\356\236O\227\017\370\337\367\360Z\216e5r\036\377\007\301\355\002\2378\004~\206\177y\244\321\034N\022\366M\246\210f\201\261\300Q\317\004H\300\024\26512n\315\205\264\022\022\0161\213\273\277\177CY\272fW\024\301t\253\215\2212p\021\030\225\263\026\265\345$2e\006EY\262\357\265\246\322\031{\337W\352\035\376?\203\366\373Z\n6\333mY\266\316^\003\225.S\224\016T\034\276\232\267\024\206M\322j\321\020\025Q\\I\231&C\014P{\264Jy\277\353S\304P\340|N{\332\006\006\277\004\341\357V\320>\213(\350w\332\265k\036\276;q\260\356v\207e\210\270\344\004^\204\362\211\256u\333\203]\243\277\034%\266\3649\243\000\223D[\n\212b\255\365X\344\2535LS+j5\005\025\202\361\331c%\2210e5J\215\006RVx\215\027\312*\211\344\231R\203\023\206\2065\321\254\366\231\213\022\316\365\037G0\262\270\243\032LL\003\2621\310u\223f\314\314\356\233_f\325l\010\372\271\260J\2715\237mM\230\226\266\250\370\271\207\231\227|^\250y<> \373x\366\321yW\234\221\010\306\020\214\224\0079KU9\374\035\364\331\321<\226\343~\232{\337\230\236\367\355+\214k\255\267\006\263\033\207$mE\232\000u2\311B{\036\365\264c\227$\266\335S\006\222>M\335x<\321\264C\261i98=\337\305\312&S\344\210\n\300r*\352\344\235\276`~\227\251\315\002u\303\314\210\253\025\"\024O1b\264\047\205\274ur0\347^\246\017\246\331\244\275\247\276Y\013Ez\030\344pt\331\010\023\004,\203q\310#\323\210L^q""\267\030E\322.\035}{\306\307\315\255\250\220\265C\246\010\202\304TR\241\323.4{5\351\367\273\025{\265\003\334%y\343\370\007e\247\204Vi\001\231\3742x\250\324\004C3Rh\027:i\241\317{\232(\211lk1i\2070\314RT~\212T\242\372\341_Q<\235>{\232\325%J\222\036c\230S\321\017_\322>\346\0472/8\035\t\010\021$\032Nv\244\256\346\023\212i\276\313\224(\352\370\336)\225\003u\316\367F\360X\302\347\177@\014\366\t\001:)\207\252\274\252\300\370&Y/P-%\001z\231,\323\227\221\223?\207\037)&>\217\225\024^bL0\026/,\330\363qjFq\316\231\262r\314\231E\032\265\254\"\243\030\306jj\351\222\301n\240\037*\220;I\234=\325\001:&\272u\047\243\033\016z\345\024\235E\370p\214\023\007\237l\345Qf\365\314\245Y\332\211fh\3149\332\277\006\030\024I\235\325\271\364|,\217\005\236\377\353U\017\245\342\3716\325\227\034]9\353j`\245\224\3051[%e\2244L\331\2639\216\370\234)\346;\252\235\344xHH\245\003\204\243F\2343\313\272\211\221\304I\304i:G\303\365\303AS\260\216\210$\026\241\300\246P\361z\344\323\310|\331\341\007\301(,S\030\005\304\252\337\037y\270l\034=\342\240\311s\216\211Y\210Tp\233\n{&\276W\022\206\221\306+Hb\265(\304\237\265\304<\014\035,\007\215\246\236v\266\227\267\r\243\252>\0107\254B\004\302\367\276\036W\367[\334\267J\032\2567=\302\261\344\246\223\206\331!\242\035\370\332\262Q\340akUR\335\203C\030\301\203\231\240\245p\270\353=m\266(ox\035\317 \350ni\203y\331\224\002l\311\231\220\346\275D\234\014\2310\255\211\224\305\024\206#\206\221\312\331\013\315\307\365\311\233>fn\343\253\325\256\245\335\336\350Spt\221iN\222\243\"Q\322N\236\266\316S\242\026\2071\356\337\177\266\262y=\345[\263\331\307J\257\255\325\223y\277e\2734\316\233M\222\330\331B8y`\314\3366vf\214\362\214\340c\214[\034e{\017\336\362U{\342\372Xy\304\307\255\245\250@\210^\007\026\036\353h\0330\314U\235\2112\322\260wwqr\256\025\202c:\234E$KP\243;\263\316eW\224Jr\233\263\370\027\266\227\266x{\300\216\370\031\"B2\024\034\201HQ\310S\047\330\321\333\301N\326\035\213\nY-\243F8\006\214\212Mc\000\220\221\205\013\260o\032$\0261\033\200\250\306\2420&#\030\302\325YZ*\252""\256f\223\021\314\350\2605Uf\2256\023\311\200\232b\250\247.\230+YA\264\213\026+/\233\227\365\255\205\236l\225M\312R\353\263\312N\304\354XS\355c8\373J\232\300:\364A\330\020d?i_\036\377\023\035\2423\21337\203T\2103\206\276A;\311\336\205\315\216TH\\\035\306\007\270\347\321\316\244\223;S\036\353\2367;\235\327E\013\301z\256\372\n*\353\336\264\025\324!\246p\205-\246\202\252\204+U\202\254\245=4\367\241\010Bd!\010Ed\261N\0341\311\214\261Y\253\212VW,\260\216Ks\326LBJ\225\240\047\022\205C\005\240\235\233\2331\207\323\244\251\254\231\036\371A3p\341:\275\036\235\304\n\250\225b)(\r\300Cq\321\210\355\032y\336b\357\330+\203\261\201\204;ou\300\303\324\221R]\365\207\231x\327\263#\326c\277?\002\330\"9\010;\273\335xt\231\242\361eQ\230\256l\323\214H\307J\253\252\242\343\353\224\341\262\237\220\36335s6a\330\244\322W\201\244\304 \372\265\0476S.\376\376\375\263\034H\273Ev\302\207h\307k\265\354\032o\224C\023\001r\351\007;\234\256\346\202B\261\n\260*\260|d_\326\373\036\305u\327\\2L01\211\rbc\352$\217*;\210\033\215\312nu\035\002\233\224wB\223rM\335\215\232xy\336mg\257\013\357>\241/a\343gy$Yt\350\254\234\355X\251\310L]{r\362\256\362e\010d\235\363\302\352\312NJ\312PfrlDw\036\013\304\304\230\252uEu\224\214$\230\304\301\362\324|\321)GD\245\036]\036c\213\216\257\205Vu\234{N\216\021<\323\227\007\315\364Q\354\247\024\345c\327\0339\371\347\267\330\341Vi\017n0\014\372[x\301=\360\300g2\210F\217\001)\026\r\366\313\342\366m\276\266\213\236\\\251{-@\315\242\347\317s\241\237""\0337\031d\263\301Q\031\213\323\274\010\260$0XNu\216\035}2w~\216\312\242o)\"Z\251\t\353l;-\023P\004dm\217\261\325\r\366\272^Y\361x\233A\366(o\256=N\303\023\034_\313\355h\376m\243\\\206\366\234\302\016\332a\023\010B\224\245\374\366\265\374w\241k^\344k\234q\274)2\206^\307\034\361\224\260\322\373p\317\016R\312o\2449s\307\236\177\244\376S\320z\030\2141;;1e\235\200\302\224\312?g\266\276\233q\306\025\340\330\374-\016-XN\261\"\321\350K\035c\322\013j\366\312\275\216\326\343\306|q\323m\260:K\303\303\036\345i\010w\270\307\335\337\246\036\327\326\373\277w\356i\344\317^\343z[k\037K\263\224\247\321\263\271\263K\246xgF\374\207\223/$\2353!\230\354\236_R\211\267j\2531\205\312\252\300L\232k\300\234\324\316\353J^b2L\256\232\013\023\275\246MT\356,\025\023\350\325M&d5\332\311\337f\254\346\262\236\021\274\0475\242\367AY\0333\244Y\303\234\211F\375\225a\210\262\222rh\036?\262\253A\356\371\375\203\326\244\356\363q\367t\037\233\031\234s4\256\260\004r\007\"K\220:\204\tr\211u\002\352D8M_\313F\372\007\232h\013\300\206\016p\321\024\013\310m\004i\341UnqjVg\274\207v0\353\r\247\2475\251\200\271_6qO\036\025UW\214\314\016\344\021\362\300}}\317%\305\331\000\027\"c\310d\\\235\377\204\307\204\253X\355*m\200\371\250=\261\324\235N\315\263\267\325\313C\215\244\301\252\271K\372\363\014\234wZ\326\265\255k\004\273\266\316\345h\324\262T\016\201C\274\303\232\210\n\305\007\001\311\204q$\271n\242*(\242\n\213\266\216\330\207\n\360\227d\370\216\353H{\017\305\034\210\235\260{qJ=\260\206\023^\203J\\J\342\201T\206\253j\362\246\036\236\346\205F\346\250\316\214J\200#m\270\354AD\344\313\253^\367\242\227.\225u\010k\224:\306\032\315:H\351\036ii\022\301\340ae\226HR\022\016\232\203a[,\220\244\3312\270U\312\345S+\345\350\307\227\230\242\253\352\017\010&\"j\"\024\352a\250\313\233\207SOici5\201\355AJ\2005km\305LG\023\034D;\201\3425&\356N\324\016\317b\216\350b\216\261\010\272\326k9\036\3463\234x\221\342 \235\020\03275\215]!4\260\373\340xx\250`\000\304\241\027\020\035\337r\032ZBiA\033\037\222\215\2442\na\014\230\214\211\221\3109""\000\323v\362j\372\373\331}\245*\220\310C\264\201\304!\007\211g>(\361ERbc\247\205N\020\344\036\035\367\200\3410\233`\233 ZX\224-\206\222\206\024H&\021#\205\362\207\274}P\305W\030|q\026\216\330\242\270\217sPj\0165\3418qP\3525\353\260y\306\320/2ZK>H\342#\255F!\255I\254\341W\024E\303\330\003\260d\230\364l\321\264\333\273\264\262\3522\226\024\2225\001\341\004\321\222\034\222\023\331\2409H\047)\361y\025UUEG\320z%Z\252\336\333\265UV*\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\252\250\212\252\252\273\314\021\273\240\252\240*\225Uz*\275o{\332\306\027\032\227kEW\301P\333\007\351{\047\253\370\277\035\346\007\256\355\335U\270\252UUU\3068.\374\213\313\0204Ub\252iT\252\252\252\250\252\341j\225UUQQW\216\253S\217\307\363\262g\267m\336\245\006\323\001X\\J\245\301UuJ\251\375\370\253\361\025J\252\252\252\212\363\374\243Y\214/\034\252U\315R\252\252\256*JU\326\251l\225J\253^\017[fr\202\212\252\252\252\252\350\004\017w\341\362C\247\202\345p$\376M\001\001k\016y \353\253\325\262c\200r\376(d\225\272\357J\303-m\332\227:\344\236e\177/@\314\3378V\370\006\371\276\252x\231\352\305\313`S\365~L4\355)\357\376-\354c\372\177r\237v-\234\261\210\315\256\353\005\000t\267\006k5@\212\277\006\2118\213\347d@`91Z\313t\350\245\252\023\264\213\344>?\212\364\256N\007\022a\210\212g^m\273\367h\253\260Cy\256\026\303f/!:w{\307Y\355\225\231\262\260\3138t\214\210\307\003\014\311\266E\030\010e\361\374\0076\330\212E\025\271\216\241\325\377 B\310\210`\341\000\343H\030V\300\374CS?<\307\023\033H\335h\331\010fL:\3514\237c\021\322A\262#\246\047(X\201\2031\\\010\220\014\002vSH\201\367h\036(#\303\240\024a-\316\3028\nF\374L6\362\341,L\325\370(\206n&\204\210\344\":X\211\037\344\351\334\362\tL\001\361n\3358`\343\325\347\206\373\337\n\364R)\266\023\357\001\2444q\320\223D\330\265\262\251\331\302\257\267t\017\010\302\373\334EqA!\002!\311\311\267\261\302\010\202\031\010\223\030\265\n\323\034\305\002c \354\367W\336\370\201\246\021]\253\314\261\347\247?""\265\366888*HHe<\047d\331\247\212}0\304 F\014$]A39x|L0\313\300\316\323*\240\246B\0347\200V\216\300\030\362fj\232k\261A\226-n\331C\321\033j\300\375\3204\326\221TL\205\223v\346=\356\r\031\022fK|\2615\271y\273+\237~\305\325\270\r\"\006\010\217q\342\361\014~\311\374\365\025V\211/* ^\000\274\016\202 \206\013\247\005[f\377\007(\361\210[\331*\\\347\023\206\031\232T,\242N\2724- \357\305\265\344\211E\310.\375^+\022{\304\000\241\250\304\nV\341!\000$b\202\346\326\033\007q=p\000\270\200`.9\222\254%\204\256\332\256j\005\033e\024l\332[\342\212\303>dC,\236o\201\261\317=\365d\242\335Bg\347Bzm\306\006\300l#\215\326]\217\031\343\335<\246\356\221e\224+\017\256Cp]\300\010\006\342\223\354\352lk\021\214d\002\007\177\307\222\020\267\021\222\r\304\345\346\277B\355\216\3059s\026\320J\002xW5\255\031\013\200\034Y\275\n\223\300\004\200\350\034\364\343\254&\305dC\3019_\003}LV\037\217\234M6\362\263\tF\273U\335\030\217\t\t\025\226]89<\307\233\311\344\313\233\337\360\356\037Zy\303L\326.m\262\266\330Q\331\007pX\233\203\r\303\026\256\246\245\nB\352\212g\244T\273\202\230\225l.\r\2248\031I~\177k\262\253Y\314\3752\210\357\257\177\210/\204\231\217\331\307\002\362Y]\355&i\336T\374\020\305\036Ua\345\342\344b\326^$x\252\036_\177Z\224\303!\267\037\254K\214\004\330\300\207\310\300\216\3348\353E\207\023L\342\2734\t\020{\240|\234D\034&\324\203\212RC\311\231\003#8j\325\212\310U\222\266\"\272E\260\025\260\345-\326\363\252\006\205\300G\304\227\035\266\017\331\260\360V\2207\0053\n@\314\220\314y\266w\251\336\314y{\362\255\223\200\235\231\257#\261\341\004\365\354\345@\337M\355\001\222\027\253\341\251\273\331\035\366\026$PMW\023\030\r\210\304$\357{\224\244\331<\375x7\344h\001bZZ\220\273FD2\214\261\2439\220\231_\031\257b\205\211\260z\006\020!|\337m\226\366\275\047\3003\317W\374\247\311d\365*\346{\014\306\0163/\245i\236\335Nx\275\232A\016\\\240\264\267\034t>\311ds\275p\367W\273\013#\231\340zS:\317\242Z,ywp\007\326\371|\022\227&\232\315\242\335>O\236\033\\~-W\355\324\326&\210\332\321\216\254i\302\252\261\243\304!\n:""\305\240\240\305\244\047mc\351\326\t\241\237\3504C\214S\212d\004\247\207,R\265\225\227\245\206Pr?_D\242A\007\332`\026v\240p\366;\361%\317\235\021\301\230b\310\370\227$q\360j\356t\332:\326\324\01033#\244\350Fc\014\252\363~#\302\244y\224\3604\231\021\307\231\305\034=Gv+CKX\305\3222*\252\240\252\353\266\252$D\212\206\220P\241\025@e\025\234\254\030\372\206:\345]\010f\310\341\3659\026\372\350\275y\"\365\342\365\330\001\002\346\231l\350\235\2009\226\334$\034\245VN\031\2161#\220H`\344Cr\035)yX\240[\2426\376\312\245\004\016\314fg\001djT\345\356%p\212^{w\031\227\233\325s\t\002\314\014\336\351kw\026m^\032\343\254\344\256\036\207K\353\322\220\204R\226sm\225\022**\202F\001\"\250\260\027\312f\r\302me\316\370S\323\020\023\341\246\260\233\312D\336\030o\033h\034\021G%\352\324\210H\024M\2202m\343\222\315U\007\036\030sm\013@\332\271\313\031n\014;\231\016S\253\047~\345\337\233x\025BS\032*\225Z.$F\212\016\317\037\216x\3445\352\370|%)\274T;\365*\331d\241d5\205\306\254\034k\014f\366\"\034P\207\005BZ\023\302\2206\016\272|\260\014\003\n\225\344\261\226\273\231}l\332ra\235\352\330\245[a\242\350\267\213K\010H\024 \331e\020\355.c2\346\314\003\356\233\047x\366R\235\214\333\226\226\236\013R\342\300\224\230\321\332F\016\320\033^N\rU7\347\017\222\330\223\323\235\276\370Am\225^@u\233q2\215,\376~\t\263Z\030\\\330%\351J\031\357\233\275$\351\251\022E\004\374\214\020\361T\tO\250#~\272\314\244\255\304\371\314\023Cvfu\201\232\035\372]\031\352\306\326t\024\217a\233\036\257PDX\342xm\273\361\335\207/\307~!\016\301P(T{\033\\\360\367\037Z\214L\247n\017\025:\311\317K\324\034a\275\366+A\324\331k\212\003\003\031\364v\341\316\016-\376\032 \031\201\r\031\000W\234\317\341d\223m\335\201\271\351\227\\\206L\301\245N\203\r|\006]\316\336\371mp&v)\257M\364q\277`\\9fR]\223\254\360\001\236%\223\257H\334\263\305\342\024\361\nz\201l\267m\"\332\240p\363\034A\313\254=\016x\360\177\034.L\366`cq\013\214X{!=\235\260\356\367\265T\327\202\032\240\246\257\214\007\207\0310\206\026a\366\017\r\266\325\226\367\255\2610#\210\002b;N\354p""R\230X\367\r\335\356\305,5\0007\214\306k\031\210\340\341H\363\206\265Mg8\234\343\316s\003\306\047o\222lOC\256\226\365[\025Iq\350J|\033\025\343V\007\030r=\302\022\006\271Q\"\014D>g\260\007fg\212\0304\263\306\317W\233*0\313-\210j\320\314w\337\002\2437\247.O\342\214\022\231/j\013\004&\350\340bT\277\207I\344\214UR\371M\006q>\240\356\240\016AA\305\342I\246\250\036g\265\374~\277\275*\023\n\2554\344\236qh\007\006\207\300\361!\305\335\206}E\301\200\332 \033\211\270\301\340\227\260_\245@\337Wt\356\t\334N\r>\337q\305d\325)E\354\335(\271\005\312\241\016bwo\000G\260\307\031\016G4\347\343\274\333\263.^\254\331\274\034V2\334a\262\265\255\323j\356\251L\225F\211e\205Q\047\033\010p/}\355\236\253\3424\364\343`\235{\354zb\276~K\322\212\250|\313\n\273\3222\303\303\225\240\007\201\002\360{~\020\312\271s\315_\261\357w\273V\024\335\240i\211\225\030e&]M\r}bJnV\022\232\260\231\260\033\262\372\261D&D\266\356\262\222[<\027XM^\220\360\372\207\r\034<\014\001\177\202\007\2074\226\207\270\340\222v>vt\024\273\247:\233>\217\020\n-\270\243\232h\224n1K4\001\2040\311\020c4\n\220\304J\275K\027\226YA\242\306u\026\030\323\247%\033\203\317\273m\3579q\316\354\353<\241\305f\326(\221\222\002\312\207\020\367\231\253\312C\225+MQ\316\311 \222\355\005\032%!\201=\337\227+\365=/\026:\371\266m\337\2746\337\304\270:T=C\247\247\244\336\356\032\266\202w\203\031d\347\023p0\r\360!\276\353y\262P\324\205\034\332\272\324\244\t[*\035\274\033\327\035\327\014\032P\367fz{\203 \340\037u\235 \343\363!\361K\3444\321\261|v\027\235|A\236E\n/d \264c!\023a#FI,#\237-\345\2221\370\302+\t-\231l\300`\314]\376\265*\313\206\006f}/\336\361\3145~\321Jo\352\324\327\310\0350Qv\363\302\020fg\356\252y\252]Jp:,\3312\221}\302\036\347h\265oI\307n\322\024\027\246\346\262\371\315\022\321\262\2160\375\026\2476\367;7\367fY\243O\206\225\215\370\334\243Y\316\374\216\215\330\365\213\235\255\036\353^\355F\031\261\254u\346\030j~\240\224%\337\260:\\FKb\244T\020\331\007\251S\327\352\364\374\035\\\373\331\227\204&\334\225qS\274\007P\220\352gQ\341\036\324\302""\225\r,\006\373\270\032Y\266\263\233lt\004Ja\\ED\313uQ\216G\217Z0\312\024I\245\236\037;\236B\365\247\336\371\373\331\367}L\007\351\356\333\326\340\0348%\307K\302\230\235\323\2337\n\367q\356\362Ei\223\035\225\354\316\304\003_ \032.\343\025\033\3651\350\035\314\34113\027\276\027\371\201\210r\047>\205\236\227\312b\010\301\202\213\000Eb\305\204b\243\021]g8bj\233\234\020\352\331\324N\340k\3401W\225\243\234\206U!\224\206S\305\240>\267\271n}\212[\300\034\037\002\205\025\001\242\200\325+\351v/\211\013\235G\037\002\341\323,\315\307h!\202\032d\016\222y*[\320$\361O\030\211\310q\335\335R\255f\214\2040ZP\202\004\024d\tu\306fd,\204\223\025M5\033\344\301N\001~\266i\324*\253!\232*%^\312\027f0\351\300\237OM{\240N\202\002t\017A\322zJ\252\017|\242\205\214EC\251-\"\335\357V\356T\242Dpl\301\3611\022\220\360xM\213\200\2755\363 \320\254\337\3203\2022m\035\374\335\373F\243F\004@\021\315\330\206H\347\216\275?Yy\332\360\362*\205\324\200\260\247\332C\270GfNgx\007\340\356\t\273\013\"%e\242\001\203\330\255#\2248YTU\036\236\215fl\347\026\005\203\2645\354\355\2143\232\t\220\313\220G\251\272F\242\311\t5\035CX\001t*\236\037\245\327\265\371\022d,\330\035\310\235\"n\027\204\034\317x\036\371\257\234}m\332j\007fW\tw\375\267KIO\\\247lG2\243/av\331\277\177\344\366|\207\337\047\337n\354\033?\016\025\3260\337\010\331\017\352J\304[\306\303\3326\200\341\255\334\201Z\035\221;W\251\007\216\365\256g\304\216ou,hfqn\002\3234\233R\245\311\336@\220\370\026mG/\030\327Rn\003\246/\324*U\303\234M\353\253\321\"~\255\225\352i9\371\305\351dU@c\313\007N\354\314\320h\307\272\3213\325k\276]\231\360\026}\313}+^\333\325\362\2058l\314W:\031A\233\206\226\236\263\302\255\047wgb\363\035@\331\\\331\255q\016\242\325\200\370 \265\262\254\204M\201\023\313o\022v\325\355#\247BS\037M\327F\311O\340\200\350\253,H\307m\231\245\317\235\025\250\262\203\261X\320\211\255\362\264\t\027E^\241\014\005&I\325\0238\031\232S\025Z\215\243\021\"\274\014\302\047w\223\316\305\216\377\303\034QAq\30466\224\373\2377\324\354\266\347\020\253\033\222]\2479\301\026@\211\254d\242.\274\320\323&3\307\256\321\032\240\244\016>\354=\215s\271\321,i\255\327b\022!\322\224f\250\020H\027l\036N1y,\243,H\331\244Pt\354\304^L;%\014\\\237;9\201\221\350G$\231dw\315\373\367\260j\332l\032\3703g\000\350\007\240\372\300\324\026T\212\250YP\262\250\310\343\236\263g\322\027\247\323\244\030\265\004\355v\364\022\345\202U\240\034\246w\327@\254\t2\260\023;\367X\220zi\240\rE\373\320\314\217\226\365fQI)\236\022\232e\357{C\270\336.\266\020\241\3474\370\306!\t\030I\020d\220\220`:N\356\"\332\006\256\370P\2655\315}J\375\316\305\355\0338fm8\332\335w\010\007\224\202\r\341\312E\032I*\014BD\354\020*\204FC\033\340/\022\262\252X\004\213\036h\302y\2634Z\201\350\344\317\236;fCA\3160\272\222\320\332\241\322\260:S^q\344\250\277b\030v\273sBN\317\220Z\311\267?s{\003,\027\003!.&hm\000\343\364\335\240\3556\203\337\027\276\337\326N\323\272z\331\232W\330\034\204\\\222\221\360\372\364\332T\333X\033c\240\271\341\233\036=\214\267\001D\332S)$\335\004\263\0364=\370\207I\310\000\275\256CV\267\2014M\354\235\310\327\2016\243\177\036\260\006\270\307\\\047\037p\366\263\0062J\236\260R\244\226k\326IZ\3015\230\210n\035\306\340w\036 L}\276\326\306\323\211z\374[\325\352\306\022\200oK\265\204\215\204\014l&\330\234M\2323\234W.""\020>\323\251\274c\304W\303\351\233DsX(\311\342\245{\227\347\374c,\031&\200\032\t\241\246a\211\304\312B\n[\310\022\246\n\232\247HE-\325~pi\3233\265\264w\230\326\220\224\311|\213\261~\233 \006\33206\322m\345]\275`\016\320p\232|@\2307\335\256\006\243\332\360V\273\305j\226C\212i(aY\207\326\000\334\334\024\334\016\023\002\340x1\274\311(d\334\324-vrV\243zl\355\341D\304\2041\023oMO\014=#t-\321\237o\320\016\273\273y\275\231#\247z\020U\030\321\001\260\014lh\001\227\030i:N\3463\351(\230\016\316\374,\r\243S\035*\351\313\322x=\332\230Q1\0141\230\201\307\247\215\304\375NM\250LX\033\r3S{\031*\333j\027\241{\026\376\004C\0100\331!\210\3226xL?Rvr&\3250\016\023^\\\343\226\300\301\351\371\276\032jO[\030\201b\037\003\366[T\312\023K(2\345\265fY\226\006\022(\240)\024X\256t\2639\252L\252\351\246\2303\245Rh`E\226aO\231a\314\010\200Z\001%\020\005\t\251\303\227Ue\231tT\273\002\214\231+\364\371\340\300|\347\314\240\277:\242\237\367\025H\251\001 \240\300H\252\020[\324\340\"\037H@\204E @\204E!\026\"\003\361\021~r!\010\252\257\273J!\355\372\047\317e\202u\317\302\312d\037\372\201<\264\275D\264\030\300\275\213$\0101\307F!\3160\031\344\373\365gJ\221DK\242\225-\226\222I)\033\350@\235\357r\277\371\207\333\277\246\001\013 \006\020\033\246H\210\022 \214\225\000\233\203\357\224\225\311+\355\305\0174>\217\r\213`*;\251\003\322\376\271\360\345\257\274x\313\345\250\271,UZ\325Q=\"\006A\na\207\0023\343\255.\260\231\377\000\373\036z\225\353\375\340\367\201f\250X\232^0\340\305\330[(b\264\320\375\310}t\376\302\004\237\257_\370DI\000Y\005C\362\300\220\017\034\363(xmh\031h,\303\366a|\264\t\346\037\303\001\025\363\036\256s\307X\r\275a\005\361\322\047\222\354\231\005F\353d\374\224D\033\360\006\220D\371\303\333\374\241tP`\2502B}J\276\327\337\257\372k\337\204$\226\0023!\007\3557\243)s\264\251z\303\366\036\337\313\367\205,?u\202\252@\207\275\n\202\223\310\202\324\247\366\307\023\310\034~\004.\036~\342\377\251\201\235\213\337\023\216\317\2241\254bD\204\177\311\232IaS\334\260\246\360\250\357\010\257\342\270L\364g\313p""\220\314\333/\230~\257\227\353a\363}y\376\002\212\332\367\331C\353\245\205\276\301\354\ne\271Q\366n&{^)\007\337$\204\250>\037\307\313\353\360\360\377\210<\312(\020%\345\205\344>xO<\320\024PF2C\243R\317\273\225J\005[\324\200\337B\243\236\302\243\234\232!\234Oc\364\033\337\202\232\261RO\222\025a\017\376Z\263u\227\354\333\357ak\360\366\275\217g\333\371t\023\336E\017r\"\222a\373\377F\031\253\345\314)\227\356\\e\373 \375\272\240c\233xJ\267\351\016O\341\313\306r[\317$m\345\375\265\265\277\317\323M!\264\277/\303\245\014\375\013*\205\216x\245C\223\233\240\350\377\344F\364\002I\030\302I\"H\2619\313\001/\n\212\r\234\224\026?6A?5)ViL\231l\260L\223\0052{\177\243\336\367\377\207\361\247\315\n2h\267\344\005/\254.\003\014.\273\344r\3746\272\3464\252\2243\305:\226\314\353\324\217O\237\370\316S\217\376y\313\255~\253:\272\305\"\251\235x\257]\022\244\277\002?Z\240\"\027N\003\260\010\212\047\214@\212C\202x1\345\345\351\240O\230^Dx\355\215\263\350\245\202\243m\013\036p\347\245\003\236\371P\276\264B\237s\354sr\034\365O\234\007\236\226\363b\250\311\316\302\3525\016pmSS\221\032CzO\177\027\213\036\201\275H\354_\201\214A\360p\376\356\357\2353\036\002C\337\340\240b@x\211;\022?\277\027wj\177zGy\000\216\344\243Q\010#\360\366e\355\020\356\326\357Kd\357\022\032!E\355H\373>\237\207j\027\353;\255\371\201x\236)\036U\031\030\217\331\375\037\372w\210n\347x\240\361\177\003\300\027y*!\2048E>\300f\371\334\261\256\363*\016\322#\"C\204\217\237\255\037+\277%\221\037\340\201.\324\2062\214\243\"OH\241\2000}\235\220c\014\213\340\031\006$$C\322\305\326\276Z\235x\275\231\026D<\204\"\023\222\0316\014\177B\027_\366A\212\236J\341\214\220\005\n\224\t\356`\034\216\223\027A\347\304aXA\030~\270\322s\322s\003F\336\372x\017\323\363\036>\374\206L\204IXs\016/\235\215Tf0\035\206\021\304\"\302\346\007\"\221\205\217\327\361\341\373\361\216;\010\321\330\346N\013\347\307\210\304a=\300b\034\316>F\372\272\317\325\356\252\177NC\031\0166\305\203\t\204rz\034\330FO\373p\364{:\317\313\020\n\010Pa\033\010\317\030Q\376\236s\307[\010!\360\030\006\300`p\303\032\265\022\375\247\356\310=\047\241D?\023A>e\367\274 \047}\037\321\230\315D\232&P\367\013\356(\010\017+$\006\237x\014\303\032\216S\254`\016\302\014\035>""\317\214H\320a\t]d\032\014\221\305\353\373\200\237/\261\243\316\200\327&\036\315j\236CS\356\202:\325\021\017\363\021\365A\037\010\217\365 \374\210?t@\376\205C\235\027\214@\343Q\326\256 \006\221O\224S\352 |J\237\350\200\373\302\267\200^\260\017\336 \372A\035\242\n\340\025\200*!n\000S\0057\317\362\020^I^[\371(x\306\205yR\240\010\213\200\"-E@\317\224\245\235\013\301\221d\300\274X\316F\014\313\022P e\313\301\222\215\211\002\335\272\027(\334\273\233\273\273\273\273\2533S\224%\267)a7w\013\025\334\336fff\023\231\2232\022S32\010\262\210\226\020rS\314\251\254\313\314\3148\354(\220\201\010H\233\014\202E\214\302l\010\016\004\014a\214\025k\223\036\rMD\265u\n\031 d0\030\031 `4\3062\340\001\000\304@\032\350\364\272\356\310I&\207\n\232\325T\313\215\332iYF$\321\014\325\026\311\262\021\r\005\211\260H+\257)\310I3\0044\022\014\026F\033\2464&\343v\t\210L\0317f\031\262\245$LD-JH0\n\004\240H\024T#@%#z\202\300<\000\200\340`\002\257\334+4\2160\023%\254\220\210\047\0005EH\230I\313\0104\014\226\302\n)\300\214\273\211\273HhTT\266K\262\341\271\027\030Q\022\244\226\027\341\241GCE\004I:h\251\266\365\237dl@\212\230\222\024\020%\337l\246\260\224\341H4\332\"\022Vi\220\322\367^\253\253)\010\206S\014\304\312a\226\032\306IP\310\254%I\243*\032\260\251\246h\273f\255\300\223\016\023\tN\nm0\2422\250\200\206\t\022B\023\014\202`\270\242L$\230\251sN\225a\031\225\206\3571\271\201u\005\013)\224\001Q\226\244\220A\006P@\202\010 \202\260\342\016 T\321\r\032""\2655s\200\325D\330\310\337;\314\373\250\257\245\305\177\332\270\242t\262JTz\252\\\306\264[\025\357\371/c0\224\224\217g\227m\230\233\035\311\204\303<\254\273*\252\215\314\245M\265\213\241\356\273\204\265\027mJr\265Qg2R\275\367\014\267\251\235\353\243\3024\252\305\351\252\\w\2721\205\352\252X\276\017\203\2675\310\2209\317\243[\201=\3448\201@. \264\2356bN\224\324\323Lh\332\253Z\264i[\204\361M\324\3429\201\341\030`x\221J4Yr1^V\r\010\001\033m\032f\341\213\224\013\020\005\202\244\247WO2\221\247\007.\345\030u/3\010\303\2000\210)\323\031R\326\034a\333\254e\"Q@\331\272\224&j\225\034\312R\244\253\254\245\357\264\354F\005\202rJx\246nl\337\323\227P\250m\224\326\220q#\353l\235\2462f`\314\302\204fQ\221\027x\222\227\356\3221\223\320H\003\261\tpIsZq\001,\215\250\000\245)\241JB\212\025\242\255d\002\303T\213@Z\326A\260\330\241\032J)\026\222\250R\202\232\024\244\242\204)\n-e,\245\213X\022\303f\225)\n\244\032\002\212E\241\246\220i(\241JJ\240J\n\244\n\010\251\006\"F\212V\206\212\004\246\212F\226\250\002\226 A\252P\241)\241\032B\251R\200\242\200(b\260\010\001\000\360\3224\005\250\032J(R\202\212\024\240\252\022\222\212\026\206\212\006\206#\n\244j+\002\013\n\241(\252\022\200\242\200\242\250J(\316\266@\261n\350XR\317t)Z6+BS\260\032Z\r\210\0244\035\325))\313\335\026\300X\267H\205\221\260[r6\033w\021\240(\273\230K-\216ehn9\304iK\213\032E\325\331\2352\373\327\321\217\005\206\034\214\0308J9^\327\267\267\266\373\036\327\336\372\265\365\030|\2449\321Ux\261_a\371\037\264\374\217\364\376\227\310~~\017\311N\257\271X~7/\326~/\273\263\372\260~\363\366\275P\274\325\315\225\251\323\352\245\347\224l\025k\27733\333\370?\331\355m\3622_S\342%{\235*\307\206\207t\274\272\222em\251\316\301\372?C\375m\353n9\362[\333\271r:\254i\260\337&\344\276\255\314\314ren\315\307\"\203\0030\314\314\315Y\331\374\334o=\233\020\332\305\0166\337\350w\\\336\027\355mW\353\336\207JP\350\032S?\377\305\334\221N\024$\016\003\201\255\000"; - PyObject *data = __Pyx_DecompressString(cstring, 14638, 2); + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20738 bytes) */ +static const char cstring[] = "BZh91AY&SY\327\047\234\204\000 B\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`e\374\370\237y\366\347\000\r\000\000||\035\270\000\021\311\3160\035\343\316\346\035\"\000n\336\000\236N\036\215\003\256\315\\\007Z9G\026\332\330\373r\234\000\243_\\\225\350\230\267\247\244y\237aX\372\301[\356>/:\317\263\022\373c\342j\020\347\260o\263\305\337O\274\361\027\325}]\353\236\232\367\333\357n\000\000\000\t\365|\371\367\226\337M\315$\266*\217\255\361\317`\000\320\000\007w9\332\365\236wf\356\3352of\265E\200\372\r\365\351\276\336\263\332r\266*m\320)\275\275=\356\331\311P\367g\246\255\275uf\245V\347\320s\317]\331\267!T\243\233*>\273tX`\035\000\000\000\000\320\000\001\335B\265(\335\232+\357\274th:\037}\235\367\317\\\367\336\372:\2522\315\336\022H\202h\000&\0004\223\3226\200F\230\003L\206\223Di\242`\243jz\217L\247\205\000\361&G\251\241\241\232\217S\324\r\0012\004\004 \223J~\225?ji\246A#jy\032O\364\375RoT\223\020\320\000\320dh\364\214\2314\032hf\200\t\351\014\032\2335$I\223 \201\222OP\3645=\0203S\324\3044\003M\003 \000\000\000\000\0004\000i\240\t4\222\010B\004\032\0016\232\000\232h\321\244\233I\246\023A\223F&\232h\003CF\203@\036\241\246\200\r44\021(\202a&D\321L\246z\232\243z\0247\251\207\252xhi\210\320LL6M0\232&\251\275&\241\341\240\232m4M2i\033Q\372\n\202$\221\000\200\000j0\030I\246\201\244bja=5\032\232b\232\014\200i\352\007\250\321\241\352\036\246\201\240\000\003\370\200\000\222\036O\216|\257\326\237G\336\3748i\321\367\254~\355\343V\225\3733I\266\366Hl\"n\323mY\247[\346o\177\215\207L\246\351P\247(S\035\323\2158\216[\005B5\233\211\264o\272\360E\361\357]\341P\342\210\213\"\003 )P\032\202\203QD\020\221\004a\021\024\t\004O\324U\"%\025(\024\214AI\004\005\220\200\325\244 \026 \0022@)J\020\024\000D\204\032\322\000\226\302\005\266\004\220\306\020\220,~\207\273\362\316\353R\237Q?\257\364\037\234\211\362}\047\324]\364\320\303AR\302\333\347\321\375O\353p\tZ\2126\005k%(PK!\324hb\340T\336\305)fe\005j%J\020\010\243\314H0\366G\024H\047*J@\220\203G""\201\014\201@\223`fj\013~\231\035\342\321O\010\257\347\023K]\271\252\342\206\276\217\370\364\253\017\374\244\360\261\350\341\017\374R\304\016\362\203p\207\3327\\W\274hj:4Q\nR\224\203\270p2\022\032\323&4\200\034\214\t\246l\324\326I!4\034\357J\272\247\001a!\202\030\006\263p\232\002\230f/\025\202\3032\310(\006D\010\006\240\010@\210X\rt\034h;\017\340a\332\201)\374\374\326L\017\365\200?\017\207\236|. ]\362\225/\321\004=U\363\205\026\270\272\235\277\330,,\020\rhB\320K}n\177\355\255B\021_\217X\234k\372B\014\212\231\034\004\010\346\047O\367\026\346\0106\3074L\232@\336\301?\336[\213\240\026\016\366\267n\000\255G\337\003\202\246\203O\323\344\252&\254\020\314\303\323D\323\376\003\240\255K\232\240\n\034\220\214\250\"\177\342$AT\2712\302\344P 08\330\377PH\211=+b$\010\301\250\025\221@0\246X\375R\346\2319\026\007\275\340\225\300M\277\344T\030\251\315\200\312\035\021\320\264\375b\344gK\216\014\005R\265\004~\271E\3411\305\335\214\233\047\032\377\316J\233[F\003Q\276\t\211hc\02569Q\373\0056\031\205\005\2468\031\254\023\245\254\024\035l\237\364\002\3156\031\270\300\340\035@\263\014\0017\006`\177\326j\310Y\310\343&\262\013B\245&\251\202@\177\366\250|\330)\004\324%vZ\215+\203\377\276\247a}\022\301\003\2467\0325I\006mS\nx\375\221g\024\027\260\010\304\207\274\354d4\025\020\r\016\365\347\377\025\2005#\010Hx\034\"!\203\260[zw;\362\346\307U\t\201\264\31556p\n\230\006\230\237*~<4\020\352:\021\357\005\0302\036\337\375\024\026\225\344\242\0057\334&\245*\024@\030\033\335\034\337\377{fM\314\003\037\266\365\002\232\004\0066\225\222\230\212o\213\037\356\000\214\005\314\262\017|`0\023\002sd@b\336\177\200\022\334\253h4\nI\2600\317G\333*`Z\253=\310%\264d\025\334\303TPF\326BC/\335)-%-\2708\020\"\371Z\2510\375\351l\203D\330] @\213\203\026D\366\376\375Z}J/\2704}j\363\223\341\020!\205]\000\240R\332\241\313\370.7C1\374\047A\253\306\205R\n!\236UL\0041\341\374^\016\303\251k\242d\256\245A8\032\204\251\223:\026~\320\034\224\235\311\027\005\213\250\250?\343\007\311iD\t`\244\374\\r\267\020ID\367\264\376Bx)1K\215X""P`\036\347\374\244|\265\020UC\211\033\321O\371\202t\0026\214\023X(\212Ze\214:\177\362\206\002\016\201Lk[Y\360$`\300K\377d\200]\326+\226\030%;\262\207\023\370K\223A\300\244h\245U\013\246$\017p\007\304\030i\0320\031\244\311\235L?\363\222\rg\234\026T\010\245\347\363\000\345\003\306\234\204\270R\310\335*\177\22040\365\034\266\310.6aXY\277p\211f\344\0030\226\030\016)\240\021\232\227r\203s\001\006\232\0479&\214\221\302\310\356E&\032\274J!Xi\250\245\264\356\005\317\341\201\311V\300g\353)\210\2679\010\202H0\356(a\314X\326\007\002J\375\357\n\267\2627A\273@U\025.\350\004\326\326\027*\013:I\245\020\007[j]\316\324W\272\024.\303\271\225m\000E\250\307\313o\203\003\270\201M0\315\206W{pC\277\005:\003\221e\275\006\206\343\035\311J\254\371$.@O\200\212\2011\370\372\274\255\232\335\357\027~\221#PjZ\2225\035\3653\362e\301\306\376\035\336\r\315\250\314\3262o\335::! \331\351\311\0176\356\337?V\367F\365\01774\226\235\321\301_\266\377m\315\3036\034\022p\364\353\025 \340\273\346\350\311V\317,\256\341\267s\t\2037\025~n\023\227\233n\353eB\r)%\312\204w \016\320\023\260\027\255S\346+\371\025=\242\276(\007\255\020\365\000\372\225=(\236\205\017@\001\363\004=*\277@\201\363A\361U\365\202\037b\001\363\0019\000yU>h>\">\000\207\234\020\357Q\356\001\371\200\375@?4\035b\272\224\rH\237\005_z\047\270C\304G\304\027\304S\330)\354\001\366\010{\221=\200\2375_\030\027\234)\343 y\352\036J\007\222\t\344*\363\321\350\nyB\034\364\203\244\021\321\317\317\317\275\300\330\3716\244&\321)Uu^\341\021U|]J\021\225b:\361>\264&]\nO\272\203\310\251\337\250\312g\251am\325\206B\026\226\177\217\270\032\230\270n\341v\004\301l\017L\367-\212\t\354=\356\047\302@\340a\026\240\351M;\220b\346L\031\212\353Z:\367 \250)\230p\023\270D\034\035k\273\321\317\275\006\302\257\026\025\270\275T\374)\245\014\003\236{\335\220%\360n)\226\247r\366\031D\357\033NsW\224n\345\031\034X%\371\241\005\307\002\036\342~\0100\247\264\213\240\252M{\320\373\203\335\370\252\030\232\322\000\216\3424\343\023i\210dz\025\032\375\363@\353\245\rw\211\247~\373js\030I""\322> y\332F\220\233j\262]\303\0050\324\335\303\237q\305\032\233\306\357\224\237grA\322\240\303\337nu\242\310\356\0079\255\026\226\346\007\207p\203\250\246$\357C1\334\003\354Yr\235\217D\322\\\373\220\3434\264XZ\020\313\343\003\213\312\010\326\351uH3\357\203\334J\326\225\240\014\177`\267\0212\235;\212qS\274\242\367*n2g\251\267p\017a^\215\334\201\360[c1\334\r\200\307:\216\357\274\233M\265\035\345\033#v\047\203>\361L\007\235\360\372\246[\277}\250\016)\236Z\264\020;\3507\204\033\261j0\263\001\237\277\017W\013\307\315\337\213\272/\333-X\373\214\216\026p\335\3650}\242\2702\356\023*\025\n\236\355L\312\231\356\341\320\366\031\035\305iv\203\037\210\211\307\313\002eSr\371\247]6\365\312X\377\047T\333S\273\203\033\373\206w\327q\037TUHg\252}\300w.\343\273\247\243\311\315\2135|\375\033W\372+pk\330\346\361\355I\315\327Cz\035\374[\357\336\301\223\177z]\353u\366/o\370\346rT\223\036\316HL}\032\014[T\340\302\320\330\251\313\216&\305\275\246M\036:\224x\265\261\316\361o\347\352\361\330\001B\010p\203H#xE!-)\006\204\2254.\004\202\370\276\245x\0046\321\343Gm\003\355W\344.\350\007H\277!~B\363\240u\251\362G\344\207\343\007\336\256\260~H\373\2204\203\356\027\254C\"\003\210\003\211%\304\007\022\016\001\034\000o\210\336A\346A\276\205\270-\000u\244\271Dh\021\244Z@\343\016\220:R:Pt\245\324\203\235#\245\016\212\034\365:\003\321^\207G\260\237\200~\014\202\242F \253\010*\244\210\000\310\252\004$\201$\222\002!\370\\_\227\"J\247\350\207\350gM\275\024W\320,\215\275\032\303\177F\030\036\201A\372\035\232\311\350!\222\271\251\307\335\372\032\271\247\3202\326\002\237t}\036\201\375\t\205\347`\336\200\364\r\307\243\3504\305=(=\020F=\004b\314\340\375=\031=\026\274\372\013\256~\211\236\230\372/\021\023\265-\364}\330a\206_\237\347\317SC\372\323\251\340\221\363\233\252K\017\351\233\321\237\246>\232.\217\243\257=\007u\023z\335\006wN\353\243\014>r\016\214\37527\037+r\305\325\251\001\334\216\344x\036\013\324xb\247\273\226\343\253\364\367\356\361ppe\231\341\317\247\257\302}-;\2724i\245;\315\315\243\236\275}\0329+""\001U\025\022\246\2254\251\205!RJ\212(\"x\023\303\255\032V\201XZ\021\244WR\262\213\342\264Z\013A\324\032\026\272\320\027\321}u\243N\235+@i\r\2239\320\031\364\232:\315\315\007\001\247\255\036e\244\323\323\326\263\232\r\047\047gb\355U\375\260\022\\\353\223\220\343{\374\374\234\334G\024|\236x\033\177{\313\275\275\345\335\315\263\377\306\241h5\006\245\251j:\256Z\323k\313\313\243\236\037p&\006\014F2v#\026\364\350\276\267\020Ny\371\376\177\236\374\313\302\004\346G/\334\035\275\273\022\330\005\334\335\257OQQm&\235R\225:\345\264/\333\241\264\272\230B\206\037\237\003\017\372\216\022\342\324\240\374\225[\231\2513\025X\240\250\352\034\037g\322\2603\376\217:\211d\002\334\033d\035\352q\3673X:J\344\273\010\r\306<\0275<\252\014\366A\253\232P\361\243\257\354\031\004\224/}B\332J\247?\242\224[h\277\005hd+}\025?\2049 =\322\321\2633\376\201\344\324c?\310\357_(Q\320\\p\232\3479\201)\024L\356\237\341vD\246\337\2418\372H7\373\377\337\254\306\235\271)\377>\275w\330\312\354k\367\260\356\332\370\017~\3729\221\270{K\201\377\361\250\235\274E)\037\253\260\326\223\241\360>]_\337\177\364\327\005H\307\351{\332\364\003S,\237\263(F8}\271w\371#\036Opex\335R\311\370i\362\230\034\234p\233c\314\361K\024\263F\034G\366\221\001\250\037+\311\260\354\226W5N\215\267\303\342\231-*5\213\036\231\232,\240\366\256Vu\0272=j\035\003\263\265\325P\324\356c\357\273x\307\333\"\367|\336\210>q\370\342yQ\005\372\274A\351s\310I \235/;\243\345\205\250\252iO\332\230\212c\004V\344/\034\007\004O1\0175\310\313Cy\240$ml\240\303\215\014\327!\2210\262\223\215\371\270q\252n\010\233p\270dUq\264w\303g[lN$4kd\0163T\322\034S\004\341\3337\222\222\266\346\202\245\353\222j\206@\n\\\000\270.\013\221b\n\236\021\351b\260\231\002e\363\374\341\311\320i,(\034\210!\231\027\037K&\2019N\020\246\"B:c$\251\245L\234\010\246\212\204+\236\177\007m y\352\325\006\013\366\217j\305\201L\021\370+\3675\201\366J\250J\311d\262\254\220\007\360\367\004\222\261\254\rJ\220\221~\177\356T\\^\234\n\215\020\242\n\361\000aH\376;\177\016\213\325U`\006/8coo\27280\000%j\322E\233^\3539\026\207\354*\367\325\262\320\364\225\237\333|A\264vN\316#\211\025$""\t\033\021\030\211n>;h\317R_\017<\343\343\343J\302\013(\262m?&W\333\013b\224\013\210\tK\250]\213\302\261a\303\256Xt\016\270g\372/\003\373\377O\363v\374\347\3172\047\032\234\342t;C\365\375\035q\315\203\331\256\265\315pR\230\203\036\272y*\tLhX\304\214a\262%\210\362\002\277\306\260\241\251 \330\243\311B\200\263s\360L\005\304\222.Q\2475\005\333\322\246~&\305\017\255S\220\246\244\177\310\246\251\377\275D~\025\303\233\026\024\330\333\304{\273\334\032a\335\277\335\200\276\260Bx\260\t!`Z\367\313\351\034]\030@\022\276x\204\260\027\305\370\211w\007\272\206\001\255\215Tw\355\370\033\017\321eD^\366\035\346\007zV&\273u\0276X\272\225\264\220\274\227\024\026\313g\254\361\206=|\256<\264\374\372_\352\301}1\206\372\202B\373\317\321rH\234\276\001\236\314\303\231Q>9\033\024\002\211\361 @\232\030\014C<\250\357\\ND\004m\230\305\210.\234\203\030\201qc\305\001\210\304x\313{\367\025\252a\351\244\271g\024\220Pu\003n\216\271\205c\030e\233\337_\350\300\314\202\262>\266\036c7Y\360\265UUU_W\333|\336o\374\317)\352\007\3442z\207\220\267U\272\206\244\340>\301\025\n9)\273\307\322\220\221\206\\\217a\016\004\364.\203X\326\336}\374\036\245\000:@N\225zC3\223\220\301\263\260\267I\022\305\006(P\306\236\031\316\256\327l\347^\3345\rM\216\270\246\347=7\243\316ph\313ME6\316\0348\036i\257~\036\301\357\037\341\373\025UUUW\365=\217\247\317\340RB\246!\"\220\005\243\370\007?\361W\rv\013\226V\265e-q$\346H\256\312\252\252\252\252B\376\201\nC\364D\202\007\233\332\365\000$\365*\237\210\214L\220\202\255B\253\027\220\2031|\375\3656\233\016Z`ST\320\257\212\373\264l\212p.\267\354\360y`r\335\260L\363\314\357;:\233V\325\264MJ\3525)\324ux\275\367\353\023Y\257Y\220 \366\216\377Y\254\rh\001k\254\023Y\255z\241\255\357e\250SS\250\035A\341!\266\016\263X\353D]Jl\003\371x\003\304\326w\270]jl\031r\266\265j\025\033\000\324\252<\240\326)\255\r\305\314\030\206\304\031\245v\3206\325\324\033g\334\206\240\324\232\265\006\240u\007\177\255MI\312\212k\214\331\242l\203\255Mh\032\304\177_\227\371i\343C\237?46\327m\344\n\217 \332u\016\314\232""\320\326\350~\377,\242*\343\216A2&A2CA_\2243)\314\357\201[y\234\242d\014\210{\014\272\017W\007h\357\204\2630\261s\360\244\323\245M.\225\312\006\032\\\023?\321\230W,\344j\306\n\0243P\364Rq>pP\330\227\351\244\346+*)\026\350\223\221\216\204\364\347\353W\372\375h\023\336\005\200}\250@\367\323\2775\315\047;\"\033\005\r\211\370`(e\355\200H0!$\211@L\302\240\306F\211\231@\237\t\377W\371O\032X\"sQ\016a\373\035\357$\304\361\204\361\237+\243\247I\261\r\210\3048\244\207{\023\237\r\244\220\232\0134fnq\266\260\376\034\242ZXn\217<\3462+\231\220\256\005\332\273qI\2632\034no\311\273\005\001A\212I\242\034\353h\205\332\033\033\232\233\010o\261\267\344\357\255\226\302\356^\\\231dUe\255\026\314%\204\264\321\231b\254,$\341\234!K\355G\352\251)\315U\362\024\362#\t!\002@\222\202\036CE\204daK\357(k\337\353|\376\201\"\032\217\355\t\352\361\222I$\222I$\222O\235\311\341\354\255\023\2702\t\246\311\203%\036\337\312%\275Bc\2750x\321\314\023\351\004\310Hs\014\204\323L\271\242E\n[\267\027\364\033\237\347\376F\277\3459\337\273~\034\017""\233\273Z\032\315bwlzO\305\367f\254\245\203}4\nk;\220\201\010\302P&\272RF\022R\367\024\223\t\203\267\220I\251K)\305\322\237\006\364\321!\354\330k\212c\014\312c\014\364\323\030fS\030fS\030g\344S\030f\324\306\031\373\264\306\031\370\251\2143\350\2460\315\251\2143\337\2460\317\212\230\3038\2460\317\216\231\337a\255Y.\250\260\272\2460\317\206\230\3036\2460\314\2460\316\372c\014\336\230\3036\2460\317\313\246ma\256\373%\325\026\027\212e\260\316\373%\325\026\027\212c\014\336\230\303:\323\030gJua\236\024\331\206Z,/\342\2460\316\352c\014\356\2460\317\nc\014\374\252c\014\360\2460\316\324\306\031\224\306\031\335La\235\324\306\031\341La\236\024\306\031\224\306\031\3051\206v\2460\317\236\230\3038\2460\317\0251\206xS\030f\364\306\031\326\230\303:S\030fS\030gZc\014\312yd>i\330L\220L7\246\035\332/1\212\300\007\034\363)\211O\210\224\215\244\212\252\252\242\372\364\334\205\201\235\3362\322\036M\340C3E\3070\270\346\027\034\302\343\230\\s\013\216aq\314.9\205\316\3046!\346!\341\337\017\017\313\246<\260\327\253IuNH[\014\346\230\3035L\254\327T\267n\205\262I$\222V[+%\302rEqD\322\047\026_\256\226\322\332[Kim-\245\264\266\226\335\020\361\364\t\3377\322t\007\214\020\317\212\0052\013\204\035\255\005k!\3302\2232)\222\252)\222\252)\314\313\214\314\270\314\313\\K\227\352\352}?OX\020%=\337\244\372C\350\371\217\230\327\370\030O\177\210w\010\036n\360$XFD\203Bw\224\022\022R\367\226\t(\243\214\362rtt\211q\300^%\271gX\227\002aSP\233\310X\036\361\355\355B\034\357\220\373[\323b\035;\020hN>]*\252\252\252\256\020\356\003\344\220`Jl\212(\242\212):\256S`Kb\023\031\321\014q3}\264!\326\2460E3@P\022\014\200@\312A\2209\372;t\317\001E\024QEUJ\251U*\002I$\222I$\222I$\222I$\223np\273sq\244\362\302\244\225\370\265\263~\225RI$\222I$\231\335\231\237Ffm\231\231\231\324\362\220\351$6@\320C\314\020\340\206\341\rF\306\320\232\265\211\242\341/\314H&\033D\274\022\3011\023^x\266\220\357\207\217{\273\304\2030\207=\007\022\034H88\321\255\032\321\255\036\032?/k\203\263F\337\026\210t!v \310td\350QN\006\223\271\326\253QM\020Sk\324P)\226\352\200\344\020\270\004\031b\200\0209\002\262O\037\204<}i\251\340\371\025UUUQ\266,X\261b\305\212\t\305\354\347\213<\017\022m\335\327\222\367\321u\303\323\246rt0\363Y\tT&\203\255VEL<\326BU\t\240\353U\221S\0175\220\225B3h:\325dT\303\315d%P\232\016\265Y\0250\363Y\tT&\203\255VEL<\326BU\003\233\301\326\252\342\246\036k!*\203A\354\324\310pe\366K\340\005\334\032\215]\277-\032-\244\310~0\336\355\005\323\2520H\306\020\211J\032\251I\030J\035)f\265[\330\017\016\242}E\272m\234KZ\331\224\265\255UV\333m\266\333m\266\374\023\332a\351\364\323\337!\253\r{\3241\206u\270\374g\342\350\372WAq\306\265\255k_\254\313\215kZ\225\257\237\340\373\310\020\047\037by\253mM\032\0309\267.\301\2526\210w\025G\047\007\323\373\034\242e>d@y\217s\336\367\246\277\353L&\260\373\0217\0255\247q \30222\024\257pX\220\220\204\245\326\026\n;\255\316&\220NN\241\"\035\242\370\211\001=bXJ\006\361(J\025\250 \366\211\004\274L\002qXV\346\005\360V\t\002)\002@\220\"\214\014\300\314\014\300\334\365a\023\031\034K\345\027\226\360\222\025\356b\375\333\303|\235\303\371\005y\234\341\010\260\220\201$\205#\235,0\220\244\346J\366\375\377c\352UUUU_R\222O\303\010_\240\202\037O\271~W\356\237V\351\357\212\252\252\252\213!\320\222$6?\222\020\373v\035z\323\241 \211\003\202\035\002\034\204\302\037\005is+\333xs\337La<\026\245aN\363\225\272\260\213e\025\204\r\025\205#]\305\205\341\356[wnu\205\314\256\0272\270\\\312\341s+\205\314\256\0272\256\016e{\177\263\227\370\355\242\033\007\253C""\243@v\200\017\235\321\356\236\007Z\247`v\204\t\031$e(v\ti\010HJN\326\304+\267\210\372\047#\355S\250(No\304\3753\254\021\320&3\342\t\205K\204\210`\023VQL\202AB\300\224\230r\032\304\305\250H\326A \233\002b\270J\004\323\230M\201)\014\231\260\t^\\\272R\275T`\207\343\323\t\t\t\t\t\"\250\261|\204!\246H,X\261b\305\213\025Fm\211\216nl\341\004\202m\t\254LBn\ty|$$$$UJ\251U*\245Z\353\254\026\020\004\222I$\222I$\222I%kZ\334%\302d\305LD\332\022\241\350\tj\224%\262\212x\202`B\303r\036\256\332E\024QE\024_1\016\207\233o\002\033\\\330\206\376\264\254X\261b\305\213\026,v\362\035<6\233\273\363\343\272\274\2756\\uN\201\016\262\355\301\006\007\005\025UUU\007b\371or\261\275\341\031*us56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\224>6\\uM\255\343\211\216\266\342\352\356\361\262\343\252|s\347\373\"\317\036O\233\355\332>o\247\375>\217-\256\\\007\207\207\203\355\023\300_a\347\023\243\334\257p\257\234|\030,\010\224/\203Dd\t\n\003\300\250B\025\341\366\352\024\016u=\306\323\264l\237\206\010\006n\2221\200\310\2222\212\351\032\311\022J\006\3053\274\023\347\345N_\246\210&\240\362i\022\224\271/\252\272t\304\273Ui\373\274\310/$-UUU_\234!\374\202\035B\032\010}\262\220\213\261\006\025\"\221H\244R)\024\213\350\363\311\005d\262\221\304K\365\022\343\266\204\027\020\213\254\000\341\005\321\003\2319\027Q\036\227\234\023tH\t\300$\001:D\241(O\006\272\213\304\270\022\334T\t\355\200\227\213\005`\204\303x\236*}\342~Q/!\316\232\020\265UUU}\262\035t\020#=\332B\303\321\233\260\364w\331\357\260\317\301a\2143T\271M\266\346\237!\006\006e\266\333m\266\333m\266\333l!\256\222\204\022\t\006\021\010v\022\224\241\007\r\311\213\252\215\2616\357\262_\256\213\2010\211\274\047\250N\300M\221.\022\204\200\227\360D(\001&\316\346\325\373\326\023\000\225 \220H!\017\260 \220\354C\236w\347\227SZ\315kZ\326\265\255h\000\000\000\002\200\207\231\216\257qsW\210\274\272\357~\037\025x\330]\325\354#\356\245\216\353\330\003\2455D$B\221\324%A\247S5\034""\034\275\t\325\333\\3\212C_\223t\360\303[]>\321\371;\354:\206\366\356\374\037\211UUUUw\310o\357S\352\337\337UUUU_\213\246\320\343\212w\035\335\330\365\347m\373\213\324\202\220\316\274\303\257\246\234\036\037.*\252\2738\342.\355U336550gR\316Cg/\213\204(\201\021\017\020\020\242\004D<@B\210\021\020\361\001\n Z!\342\002\024@\264C\304\004\326\320\242\265\rZ\275j\022\206!\004D<@Oo\305\000\260\310? \002\037j\377T\002\006>M\266\202\025\312\r\240o!\266CoZ\230\303;S\216\362\036\\\206\336j,-\274+\014\355qZ\3038\246\230g\205%\312y;\267\266\333m\266\333m\266\325QUT\t\305\227gb\302D1bLy(\341\004\302\241\207uLr\253y\336\034\370\351\276\333\326\366\231r\266\266\266\266\266\266\266\266\266\312\251U*\245}Z\305\353{Q\365\257\254\321\374::\225;D4\021\222\221\320\005A\241\320:>f\357g\005yxy.NL\024]\202Z\204\241\"\234CF\024\002y\001\"\262\010H$\022\204N\220K\301(\221\005\202A\002\341J\022\t(H\204\021\013\204H$\030\001\212\252\252\252\252\220\273\252\252\252\252\252\252\252\252\252\256\3047!\250\354C\334\300\047\n\252\252\252\252\220\353Ht\047\341\324\204\337V\225\350\361\242\362B\310u\010)\004D\204\036a\333)\315\334\257/:/\303\261\"uubci\321@\230\332tP&6\235\024\t\215\247E\002ci\321@\231T\332tP\047\331[\251k\340y\275\303\013\302q\376\274F#\007\277\206\352\021}\010\300\344\006\001=\222\034\260\003\252\354\325\351d\\\316\343\342 \036\306\352\252\252\252\253\362{P\003\031,\207\265\257\240!\230\252\252\252\253\301\271\r\210|\204\200&\341\363\020H\035Hu\244:UUUUW\247\275\357\374\304:\302\033\220\370~\331\016\362I\304\207\013\315\252\252\252\217\212\020\321\016\304?\017L!\330\207\213Z\360\265UUUx\351\342\361\0049!\231\3172\035Hrm\262\252\325UU*\254\360\341\344I&T\222I$\222I$\222I$\222I+`\232D\314J\010m\347\246\032s\023`L\206\334\004\310\300Ll\322C\312}\302\t\200lC\216x\002\026\007@\207\177\177\t\337\227\0232\342f\\L\313\211\231q3.&e\304\317\177\341\354@\201>\260\370\376\037\212\320\322\376\037\205\255pc\324j5~\377\360hP\322\232\240\262\225\322-\2515$=\047o \047\000\320\235\202u\227|J\334\336""\302\232\361Q\311\022\336\232:\304\364\251\220\311\355\200\\%\352u\211\261\336&\2413^\231\273\350\264Kv\321\331\213\264\207\251!\242\231\226\333m\266\333m\266\333m\267\274\207>=\341\323T\344X^\032[\366*\245\263\205T\212I\024\222)$Rd\020H\244\220*\252\205]\254\010`\020\222\026\t\276\224^A\n|c\3453=\365!\277(\024\310M\315J\302\231kf\270I,\247\273v\351\307i\335\334\025\001\005@AP\020T\004\025\001\005@M\027\202\273\tR\307\222\352\246\022\302X\350\332\343\347\274\000`\00013\204\261\t0\261\013\000\211\202\261\",aq\000.! \217\333\333\356\237(@\244O{\020\201k\000!r\3227\000\211p\003\250\020\370)\360p\240\227\335\364r\373<\37028`I\226\005\220\347\262\323-\235\235\265\231\276\276#.H\032\227dw\255*\301\025\213R\326\213\024U\212*\310g\034X\331.\211\016\003sSN\374;\233\335\362\267\026\3557\321\214\300\326\327\325\010\036\270\036r\010\320\007\032\004^1:=\235Z+\250O\0255\340\202p\330\212\232\\\361\220Z\022b\023\270Le)s\010\021\004\361\022\302\r\352\266\270L\246\276E\007\314%\341\200\022\tBP\227[8\230C1UUT^\002\037\007t>\014\246\267z\204\030\036MB\354\250g\022\275\032\030\221+J-)C\024Ko\023T\0010,\022\035Hfc\366~\267\315\242\035u\325UU\354\374N\"\362n\305\017\212\034\257\305\265e\254 C`\256\305\207&\313D\210\221N\363d\\\004\240&$)|;\241\341\341La\235h\357\000\3522\036\036\036\035\375\242 \233\231\243\t\210xr0`\030\200\260\302\"\036\034\214\030\006 ,0\210\207\207$A83\215\034q\306\334m\021\004\340\3164q\307\033q\264D\023\203!\204\276\307\237g\311v\326\027\250\036\327\261\016\336\023\370X\030\325{\001\010/b\004N\304\265\255\333\265\264#\rDV\270\343\255\220\373.&L:\211\233\256\202{\235\nH\047\210\275xLm!\260&\310\230/\004\210e}\227\366\211\320$\022\326\330\022\252\252\252\252\370u\355!\320\206\326\036?~\236N\342\034b\252\253\263\247\027G)\320\264\266\226\322\332[Kim+R\341\013b]u\n\304\256\252Vd%\252b&\300\236\005\251\243\n\032o\022!\271\016\247\245G\343 \225Gt\2521Q\212\214Tb\243\025\030\250\305G\315\273\352\036/""\035\317\025\273q<}!\341\365\323\332\360!\020\324&\375\311\203\272\261O\177\005%\373\265|\221-uZm\211y\004\235\211\266\241\277\317O9\353\220\373:\272UUwe\\a\236\245\304\350@>\300@\301\020n\247\330x\370\242\354\210\370\243\364\000\020w:\007\204Z\"9\231\240wr\333\272\252j\355\313n\364\314\224)\2272\335\325SWn[w\261\267\r\367\271\275\2731i\266\3276\267l=\226u\207\317\345N\370S\345\177K\365\361}\035\215\027T\222H\326!I$\2215\220\210 \3417\r\315\274\250\225Y>\006Y\204\006\330\201\343B\370\013\007\301g\307\331\270;\336\024n\237\247?\220N\263\316&<\017X\224\206\276N\220\355\366\351\362mUU]8\342\361\000\207B\035\272g\351{\234\376k@\301\272\224\343\365H`\326F\rv\006\rw\256\345\333\304\251\032\225#\363\353\304\267v\3200|\273.]\274J\221\253\0304\014\032\324`\327x`\327\030\301\361*\343\267v\327 \301\257N0k\306\0305\240\301\240`\326\301\203@\301\240`\327P`\326F\rz\321\203]\361\203\\\343\006\2620k\327\214\032\352\214\032\324`\327(\301\361\335\313\267\211R5c\006\273\343\006\2620h\0305\274`\326\203\006\2620k\234`\363\276\345\333\304\251\032\324`\315\367.\336%H\326\243\006\264\0305\264`\327\020\301\355\341r\355\342T\215x\343\006\270\306\rq\214\032\3400k\307\0305\300`\326\341\203@\301\2561\203\\c\006\270\014\032\3400h\0305\250\301\255\303\006\271\206\rj0k\220`\327\001\203Z\014\032\3320k\210`\3200kh\301\240`\327(\301\256\370\301\256\3075\313\266\245H\327 \301\255F\017f\373\227o\022\244k\234`\327\001\203\345\256\255\273\266\272\343\006\271\306\rp\0305\3200k\210`\326\301\203\346\315\313\267\211R5\324\0305\221\203]\003\006\271F\017\246\272y\374\367\027\230\263H\233\366=\231h\0305\3220k\2500kx\301\253\0304\014\032\006\rr\014\032\333\204\267>,\274\345\256\003\006\274\341\203\326\273;s3\227\217P0r\244\260\006\227X`\327\2260|\232\334\273k\2540{\350\240h\0305\3100h\030J\326\335\333]\003\006\263\215\313\251Y3\226\273#\006\266\014\032\3340k\244`\326F\rX\301\2561""\203]~\047\305\227\234\265\3140}~{\227o\227\253r\355\342T\217\022\244kx\301\240`\327H\301\2557\334\273~5\024\017\255\340\\\273x\225#[\306\rm\0305\260`\327X`\365\355\\\273kQ\203\304\251\032\362F\ru\206\rt\214\032\337\337\363o\342v\026\275\332\326\366>~K\227o\022\244k\234`\326\243\006\254`\327h`\3270\301\256a\203Z\214\032\350\030>\326__/9k`\301\256!\203]#\006\267\014\036\312\352[\273j\306\rq\014\032\320`\3200b\302\355,.\236\032\343\013\267\232K\271\243<\320\207\266C\211\016$\020;\310z}\024!\333\242\252\252\252\252\2445\245UUU]\247$;\202\t\007r\036\202\025\016Q\310\310M\273\362\270@\322$\023!!Q3<\r\\\210\033;41!\343\241\016\371\016\244/\010q\265:\220t\206\273\351\264\201n\220\263\225C1%\220,\332\241\216\030\t\257\034\354\330\255\327\t\264\047\212\252`\231\300cd\014DD\343L\3339\312\347\310\002\020$@dP&\2172\260\350\356\352\362D\"\032\"\026 \210L4D,:;\272\274\000Cxh\210X77w|3Q\223\356ffr\346\331\333\037q\3541P\346g\350\001\034\201\310\222\344\016\221 \\\240\272\3105\227\356\263\316\202\270\210\r\332\250\0272\004\302\\\242Lr\246\345\214\023\010\237\244\350S \226\007P\232\237\265q\001pW\013\211\027\022\002\342Fd\214WQ\232\342C\225\333\314\026+\270\200\316\251\270y\240r\200\347\005\200\347R\251\316\023?K\253\272\007w\226\216\340Npy\310\202j\203G\337\243\240<\247\020\231\302\047\037-\034(\230\200\365C}S\204F+\304\001\305\346\373!\273\272&\354\021.\177\216\233\310hH\256\031l\031Q\225Y\312\006U\222\322\327v\303\220\360\313\226\353\313\211.$\211\204\245<\3109\320`9\305\201\234&\21613\300\020\234\334\207\047 rq\332Ah1\n\325\243-\221\0165\202\025)lqdV\301\014J*\251\230#\036\021\036E\030\217\"19*\007\047\310?|\373\303:.x\013\374\220T\243\250ANa\3469\236nN\205\342P\343\343\024\207\013v~J8\327\010G\020?\362\031\"C\327\016@C\225\020\210\034\252\021\345\016H\047&*\234\257\001\027\225\244\016D\310MJl\232\2549d\345\334\206&\205\211\002\nw(\355\002\033\212\207\246\201\335V&\352N~\300\000\264u\010p$\351\034 H\nFkMX\252\375\242\016U\r_4\3112\354l\247\253\354\266\005G(,\251\245\225\254l\321K\317z\315\375\373\310\254\336\341\247F\305\326( g\335\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(j~[s\340\231\372\313\233\326\303,\026Z\210\304\273T\337-\264r\264\335\016\032\327\315\266\221\274\267:V\217\247U\247\354\325\265\316\263\034v\247#\034l\325\261e\2737\345}\3259F\260IE\201\026\002\021@\262.\031l\324Z\334PXE\325\023\374\023\233\350sNewkr\032\242\3402t\030\004\314\354\275t)\355\020`I\262@\206\"\204\010d\310\2503\277\203\000=\322\204T\006\007\002\030\371\035\027\336\rr\177>\323\\\370\250b\362Og\257)\370\235[\002\243\252\013*iek\0334R\363\332\263\177e\344Vop\323\243b\353\024\0203\353\3178kS[\357\306\225\350\356y\324\372a\307\0349\2245=\215\333\242g\330\331\275l2\301e\250\214K\265M\362\333G+M\320\341\255|\333i\033\313s\245h\372uZyk\307\261\255n\017\233Y\265\321\237x\274QGa.l!z\006""\271>\325\232\333\n\030\262\236]r\236=[\002\243\301\005\2254\262\265\215\232)y\351Y\277\225\344Vop\323\243b\353\024\0203\323<\341\255Mo\277\032W\243\271\347S\351\207\034p\346P\324\362o\036\211\237&\315\353a\226\013-Db]\252o\226\3329Zn\207\rk\346\333H\336[\235+G\323\252\323\313^<\232\326\340\371\265\233]\031\367\213\305\024z\203\000\200\213b `\211A\221!\221\020\360\026s\240\252\365\r\222~/5\306\212\030\265O>\331O.\315\201Q\342\202\312\232YZ\306\315\024\274\366\254\337\316\362+7\270i\321\261u\212\010\031\355\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jy\267n\211\2376\315\353a\226\013-Db]\252o\226\3329Zn\207\rk\346\333H\336[\235+G\323\252\323\317^<\332\326\340\371\265\233]\031\367\213\305\024~\017R\021I\025\002\336\370\332R\242\376!\"%\221\001\254\033\213L\361\230\231\327\3006\244\375/6\327e\014[\247\253\307)\347\342\330\025\034\240\262\246\226V\261\263E/>\025\233\372\257\"\263{\206\235\033\027X\240\201\236\331\347\rjk}\370\322\275\035\317:\237L8\343\2072\206\247\251\274\017\246}M\233\326\303,\026\255F%]\252o\226\332\234\2557C\206\265\363m\244o-\316\225\243\365Mi\352\327\217SZ\334\0377\273k\243>\361x\242\216\302\\\330B\364\rr}\2535\266\0241e<\272\345M\233\326\303,\026\255Db]\252o\226\3329Zn\207\rk\346\333H\336[\235+G\323\252\323\313^<\232\326\340\371\265\233]\031\367\213\305\024y\231\002\006`\213`\010\030\004F\276~,\010\003\027\223qe\354\033B~q5\316\252\030\266L\366\312yvl\n\217\024\026T\322\312\3266h\245\347\265f\376w\221Y\275\303N\215\213\254P@\317l\363\206\2655\276\374i^\216\347\235O\246\034q\303\231CS\315\273\037L\371\266o[\014\260Z\265\021\211v\251\276[h\345i\272\0345\257\233m#ynt\255\037N\253O=x\363k[\203\346\326mtg\336/\024R\004\007k\031\333vz_\267\030\274 \256OG\310:\213\210^\241\264\047\347I\306\330P\305\204\362\355\224\361\345\260*\230q\307\016e\rN\315\330\372eqi\257\221\345\303U\241\202\232\355S|\266\321\312\323t8k\343\026\332F\362\334\351\024~\272\255<\265\343\311\255n\017\233\331\265\321\237x\274QC\231\020\003\314\210\027\247\263\003\2147Nx\0355\231\272\310~\331\022\024\022@\323\"&w\217v\\\261\263i`\240\315\004/\366\214R\323\271\316.\231\213\217d\300\373\362\001\370\017\323\337b\020#\031\334\351\246H\027\251\223\225h\370RS\010W#\033\315>\021n\027\372~\246\217V\311\203`\2106\351\264\223=.\313P\275\252\344\022c+X\255\216Z\245\245\266\017\251\021A\20071-\261T\010\254\201J\262\350?;\252\336\027U\0310\306F\014\031\207\215\357kP\314\316F\020\014\tz\"1\005*\203G\004\204\210\227m\251\276jg\231\006T_Z\010H \232M\244D\324\010\330\007\320+vs\035^Q\030n\234\242F$\263\026\237\346t-\036\361\343,\031#\001\361\324|\241X/9Y\316\371\203\361\362\265\216\370\230\224@D\300\201\231\212\231\312|\324R*\202yL\204\350\0339\0228y\362\014C\212\250\211\020v\200x\024`\207\002\047\006\352o\351\237\271d\037+\303\210c]\222-\261\361oA\273\323\261\020\2766D\033\327\201\340\304q3\350W\304\223M\274\313\2416\207\3032\316\377\215\270\223d\264\270\305\036\211y\372#r}%\016e\336f\316\"\351\002\315\004ruj\252\032\357\235\362i\323[(\225\346R\022\033(\375\240q\r\335{\2517NV\363k\3367\370\367\247\240\210\220\220\211\021\206\274\214\000!\332+ E\010\010xx\307\217;\246\010\302\n%\257\243jV\330\342\2776\310\330\303\226S\304D\047\032\210?B}\270\276\300t\203\330\205D-\362\213\r\255NH\365\276*tr:\200\324\331\206i\307\031X\273b\245\267g\017X\020bDY;\301\347\325\364\2423\334k\261\304\310\367\342\323\326\363a9\342\241=\224/\201\340*\275\017\037\221\347\312p2\367\332u\273\277\231\256\23646\255\234M\273a2\336\342b(;\023\213d\254\331\202_|/\221wvw\233\027/\235\251q\252\026\t\254\201\263\025\350\371\036K\017_\246y\022\236\275\252\200QW\250\020\224I\010J\021#\326\200\365\254\361\204Ptg:1\245\320\203\224\200\334\365\325\341\2057\010\030\247\215\262\356M\310J\255\220Sm\030-\002U\304\220\361\276FnP\362M;Zd\021\301\263""\313\307\230e\207\024\002\014\007@\316\251\363\332\\\231\307\346/\307\301\302\224\305\213c\001\353V.\315\t3\004a6TY#b\325.<\347~\215\035\276\217F\217\310\346C\261\256\203\001\276K\303Go1\201\311u\246K\216\313\205\345A\353\021\212\365\200@\370\003\326\363\371\374\364\244\313J\317\021fd\021=\233\357\273\304\331\206\300\262\305\023\001\033Z \203DQ\007\315\354\364Ua\301\200\374\306\0202>\3367\341\"\004\001Pc\363qarr\312\335k\261\261\234b\223\371\353\222\037P\254\021\376\227a\223\253\332\216\020\213\227|\332\357\333\306b\313\262M\326\267~\313\314\316\364i\014Lh\331 >\361\200C8\215\357${\r\224je\341\260\010\340\322\340\004\031B%\010T1\005\212p\300\301\200+&\030QX\"\224:\265\032\221\324\276\275b}\006\237w2\232\323Qw\220\270\250y\236\010\tz\351\253\022\307\232X\034\342\272\225`\032\204\201\250\047\363>\334\375z-5\236\255r\315\323I7n\272\257\370\351\333*\305\376\313\250+bY\254\tj\210\027\351\342\315\0308\302\035n 0|\003\006\254\213L\005\223b\330(\246&\331L\355\330\343n8\342\026k\\q\265\266\325\266\333m\264\266\333m\266\255-\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333mZ[m\266\333m\266\333m\266\332\264\266\332\264\266\333m\266\333V\226\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333mZ[m\266\333m\266\333m\266\333mZ[m\266\333m\257\303\315\000\333m\266\333m\266\333m\267\351I\033m\266\333M\267V\333j\333m\266\333m\266\226\255-\266\333m\266\333j\255-\245\266\333m\266\333m\266\333m\266""\333m\266\333m\266\333n\2632\325Z[Km\266\333m\266\332\264\266\333m\266\333V\333Km\266\333m\265im\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333w\202\304\343\\=[\010\214o@\3570h \021\225\257R\311\375I\024\2500d?(\031\000\002>\217\356\215\273E\330\347F\376@lk\3303\373o\235,ZT\302\206{$\230L\252H\363/\003\352\324v\252T\334\006n\255\3249\r\207\336 \010\002\263\300\337;1\376Pr\036\r\\\276\221\254C\302\330/\351\315\263lUz\355\240\203\034\047\022\341spsf\302F\333x\030\323\372\3334H\231\320\320\310\210\210\020\030[CA\370}\037\234\274P\223\000\345<\256\017v-\210qVm\314m\271T\245\241\030\005]\304\251d\330\224\305\250\002\031n\336\375U\225\325\342\022\300\333\261\240\334U[\261\344\346\2720a!\203\313\307MhY\3205\254\003\320]`\025\031#\n\374\230 !\263f4Vh\0348\221\034\252\266\037=7\274\265R\r\204\326\000S32\036\024\200\324\006\r\214J\321:\022,\206\354\047\330nd\033\313\300\357\216\237l\362\305h\325\272\326TdUU\020Ux\351h\000\2301.\212K\001\212\0002b\321\3521\360\214m\231\324)gD.\237\217\330[\346\"\207\037\032G\037\031\307\305\000 ]s\363\227\227\2348Q\001\315\003\3308\371+\260@\2629n\362\303a\2228R\003\214\0202\0161\014q\257 \036\266%82\r\265\2102\335u\255Y\252J\003\324M\032L\235h\336]\312\"\016\234uz\225Ov\272.\251\201@\013\000\014\242\2005\272\026g\215q\253\271\\\017r\021|\361\016\005*7?\204\322i\322}j\032\203\346\016\260\016\323\304\352\316\233\317b\027\222\3045\356S\333b\233\0378\362\242v\200\301;A\207i>\276\224\0174\005\235x\266-r\301AC\t\342\003\217{\335\\\226\320\367x\343\335\364\2140C\336\003\254pG\235\0238g\304\207\300}\315\376\356\241\343\235;\213D\254ij\253@\264\242\237Ggc\330\270y\216}\300\362\331w\364\224\035\022\212\203\306\253\344\000\020=\302\010{\201\356|^\260\237J|\305\023\001\304\366\357\336\205\252:uP^a\000\372\014\020`\0358_\264\242\251\361v[t\2734\\\275\260\007\334OX\000\016\211\264\203\024\036rkeBS\024\347j{\277\236Q\037\300\232\334\263\206q\252\006\2063\363\272i\315\223\275\347\261\356C\313x\201\205\004\305\024\t\047\001\203\354\274\276a\277w=\346\361xf\016\002\0032)\3113\342u\241\206\240@2\273rLc\0031Rq\021mD\261:\232\263\r\320\270qL8\212\277\016\303\270\255&\315\005\320.\\\336\343\334\017\270S\304\037N\341q\276\354$&\376\321\342Z]\341\214\261-N\360\217\000,C\200I\301\263\275\331\262f\021\031\025R\251\265W\013\036\023\263\267\272\256y\004\3551\230\354\203\214\201\205\303@}\035\212\250\347\0079\330\047`\366\035h\364V\237}\270\264^-\020\245\021\270\201\314Y*\047\223$\3044\316\036Y\363\023`BX\220\224G\240Xt\035/q\t\007\311*\004D\221A$d@\000\221P\221\221\223\333\272\007\256\364\336K\214\0268#\343\271\301\202B%oB\261\016mE>\037\2012wN\242\355=\032\276\301\317]\271\370y\336NN{\252\346\214\277\276\250\030\2254\376mwjL\335\013\350\032\312\242\245\"\"\205\206\333\211T\334\025t\271\270\241\355I\014\016\020\327_\241\004\034\231\265z\275\330$\035\010X\r\233\300\004\025\246\346\304:\034~*0E\352\2416\001\002)\256\340\2710*\300\n\357\014\340,\324\023\016\356*\267p\032\335g\251M`k|\035\006C\247t\344==\047\021b\330\233B\047`\246\204X:\026h8EPS\323+l\303Q\301\200f\302\304\025 \034a\301$\234\022I\303}\344\310&\264\314\017|\307\316]W\265\222\241\3539\207\"a\201i\047\215\204:\036\266\275\374\355\341\271\360d\364\033\320\217\3178\001f\322c\340!\232\351\267\312\265\240\255J\304\022J\304V\247F\016\024\201\257Fd\330\001dB\226YBRn#V\234\005\237\032s""\0166]V\364\022\017d\360\260Hz`D\017H\t\3517\337\331\366\005\276\214F\371\366u\204\315\013\r6\341\236\326\256\230\023c @\224\323a\t\014a\013\244\205\021\006/\226\325u\315\030y\252\0477Y\233j\2340\353\200\025\357\261\203\253e]\247\276\201Z\207\357J\027\316\202\014Q\007\036\033\254\226>F\355m\325\301\n.8\t\010\021\035\312\322S\261\252>+8\001$6d\2101\234\022\302m\022\334\344\324_$\302\206\353\031\355\230\032\303\307yA\227L|\371rX6\003z\343\206c\347;]\2338\342H\020b\240\262\303\300}\206p\371\010y\022\357\302&\334\201\0203\030(\322T$.*\213\200\370\352m\265\305\307\337~\275\334\246S.a\266\337\010\\\232\304\360u\353\334\3503\202w\2726CWea\277\232\2654\035@:\224b\272\225\206\247\233\357\354(\343#R\033<{5P%\256\260s\363s\3408\036\0104Q\366\314\211\302D8\003\325)\002\320\337?\004\254\031\200\371\233[S5k\330\335\032O\25466\\&\027\365\005MS\\5\t|\024\262*\342Y\261\311\332\021\006\335)\237D,f\302\2522\250\300Mf\047\016\177\024s\031W\232\024J:\355k*\004\nm\2741L\n\271o\034\030\253NCq4\007\036F\352\232\345\255R\022\263\270v\266\361\231\234\030lq;Q\215\340f\332Ka\332\353\344\032!\037$*r\026\304>Z7/>\343\037d\035\271\273\2554o\260u\361?\257\347\323\354PT\332>\324,\213\366\270\200uu\366Ph~iVA\3526\365\236,\263\014$\315\212\355\275\276$r\363n\237\230[\260\235\031B\223\202\004\220\200o\026\306F\311&\000\273\316\017\342U\037\005<\017\243d\3532.\370su\357\325\025^H[~e\312F\255\304\203x\020\3027\222\033{\312,\rnsP\306\356r\273\267ZiIX\235e\\`r\330\366\240\203G\230ML{\337\312\202\014\210 \305\010\026H\346\274z,\3058Q&\236e\276\343\310O\231\037\257\325~;;\016\035\263\3033n\250U\340\213\256\202\374\264\364\036\261\343(\235\002\301z\351\353\354A#&)\030\361\007\260P[|\2045s\303\021?{7\020r\354\333\002\310bL\271k.p\202mC\177\001g\207\202$\004V+\005\026\000\212\305\213\010\305F\"\274\013\276\0278BHd\233\227\241\311\313\222\216\324\337g\202yv\250\253\2535\2148q\027)\250F\270\t\204k\210dk\243f\210\225:\274\321R\205\001\026\331\267\245t\233\250\250,\000\270\004nD\033\300\274U\371\000\230\005>)\2068""\304\220\267\302mz\375\326\204o\246\273\300?#\270d$\200i\363\311\364)\300\201(\025V>_.f[\273\260C1\244 \246>Si\266\213\305*m\375\255\253\300m\t$\016\004\220\340\263\223\2315\3036\326\323\245\347~x\016ibU\327\321&\033\256\2302\23680\207\n\246qH9\3069\303\310n\311$\200\373\245,F1\212\326{\211R.ges#bH\222\343\236\017\322\304J\206\277G\250\3450\201\212r\236\010\2646\206\274\306BB2y\r\031\274\047\204\306\343\200\250;\230\033H]\275\272\367\353\305\202\330\2741b\302\337y\203m\005\341\271\364\323\357\247\334\330\361\276@\017\312\352\023\256\205\221\022\354\322\001q\337X\031|\014\326*\212\243\321\233\213\034\231\016L!`\343\034\266\374\371\343\014\246\300\360t\336I>\251\245\242\212\200\250\276\271\365K\300\032KfO7\335\332\273\005\340L\030\345\02275W)\241M)\240\356C\277\277g\300\352w\203-rC\005t\177\007\226\\p60\0032I0\031\200c1fc}\236\235\277\021\017\275+:\227\265=l~\375\005\353\312\263}Z\336\226\004\212\365\006\311\324\304\250\263\255\231\315\203\243+\200\362;\006\253\375 y\263\316\313\223\033|\355,\014De\3032\030\013.\351DeKd+\210HSmJ\313\306\364v%\341N\334Yy\360\215t\232m\345F\316.\315\363 O\247U1\234\324j\361\362\002\367\364\025%\006>%BD3\365\"1\273\271\260\327\202\337\214\370\351\250/=k\366\353~,r\207\2334\237;\231\212\370ka,g\323j\323z^O\tCT4D\013C4&:\032m\023\240\252\271Q,\260\001\335\002V\311J\222:h\260\001S[\254K\325\207Y\240\203\014\024Y@34#\000$\273W\237\305\037sp\307\311\332\266\372\204\0010\246\005\310j\216\tv\003^\004\355\274_\237\025 E\247\331\005\362\rf\257\247p\023s\310[(\365\371p6.4\211m\315\202\342\234;\370\356\316+\245\026\006\221\323\344\350\333:\351\343\206\326\325lg+\025\345\222\240Z\021\347&/\277\035\351.\326]^\242=6\235rn\303\257\253*\2546\312pC\323\317&\273\034\"\367q\000\3246\265C#!\320\203\222\014\2143\2140\225\343\272Li\0058\305\314\312h\304\206Wd\310\345+RZ\234ORQ \202\263Vs[\271\020\366\223y\340\342\234k\254\204\t\243<\275\273\372\341\271\324\217!z\223L\226o\032\000\320o\030)\220z\230`\305\3553 T\312:R\245Q\355\370\233\004 \027l\001\2717/\301""\345\366i\345\307\272o\206(e\203kC|\315\t\024\030ab\320\311\307\222\033\354ko\016:Dm\n\254\017\01719\375~w\353\315\34542V\357\230sBJ\036\322S\213A=\200\220\"\220\201\021\313\275\021{\320\262\357K\207\271\3208BC0\310\346\020\310\224\303\366\251H\005\303\250R\324\006\314Bc\221\333v/\315\205\253o\3308\2671\344\001\305\251\035G\244\035c\255#\214\204\206\036r\226*\254\026\222pf\262\047\276\"\032I\255\301\0012\220\n\276\367\303\220\022\314!0\031\2206j[f\026&\217L\362\210\002I\305\350\014\261P\214\325\3718#\200\305\216<%4\313\335y\236\303)u\260\302\227\214\356\370\014B\0220\222 \311! \300v\303\253x\276\2037`Qzr\230\371w\356\327\347\277\027\216\325\370;\245\031\243\201\334\301\212M`\237\022! \201\212,\036\242\"\324\222\300\304$M\222\005\220\211\022:\321\014\207\330it\035\300.<\334r\006\315\020\341q\242\000\037R\220\372\244P\330X\031T{C\004 \360\300\204\273\204\"\235\300\362f\036z\213\356\206\036N\236\212\312\223l\374\005\254;\231t\326l&&\022\214\2014\004s^\346\276\010/n\253\367\202\362F\362\353\020C\200J_\013\365V\2329\304\243\177\320\333\r\334\240x\247\230\201\213\035Z\031?=t\010\035*\021\016\225\047\257iy&\300z:.\362\366\340F\211\320\024\312\031;\242\226`s\277\241\222F\346\321(\002W\3451\342U.\322q\204q\207_\013(\010.\201E\021\262\277\312#\235B.p#\235\3454\235\037E\022\032Y.7\002\2132Y\257\261%r\213\312r\202\217)\312\007\202\250\352\003:\206\240\362*a9\271]2\212\317\237\256\353\363\361D+\352\2631C\225P\316\211\020\316$3\235\047>\327\260\\\277\010\212\375\363Z\327\323\236\214\323h\360f~\257\332\252#\265\33060\246\275\354V\371\263_\037\347\030\301\222q\000\340M\307~\343\371\324\354\372 \022\312\245\005*\226T\211D)Cq\005 \301n\243\307V\304\305\230\014!\324\036Le\033\376NuS\244\000\212t\243\016\223\251z9\224\355\016e\343\016. M\365\341\047\232o\220\255\323\205\324\220\230=\225\270 o\013\020\336\022\033\305@T\314\030\004\214\001X\254\225m\217z\353\212\356\272\347\270\261\201\343\353\021\340I\222\361\355Y\337@xU\"\034\"N\023\204\017<8\201S\207\255S\201x\002\257\344\312\375}""\247\264\003\353\301\005x\224Ah\326\256\372\251\001\\\020\311\025\3015z\302\014U\302\350VX\277&EJmI\251cq\t\023\312\325\235T\260\241L\303&\221\252\000\212\300\206\025`\031VU\220V\254+U\251~[X\025\202\254\017y_Z\270\317Ub\300\"\3022<\256^\322\243\266\251\027l\010\355\277o!\357\371e_\310\033R\220\3052\233R*\306[rNT\315\334\377\353\332\353\r\267\004\010\0360r\267\334\317fb\026\233\240i\"\213\025\333|6\332\324\333{&2\353\373\033\231\242\000\326\333)l/\227\337m\267K\323\317\203\342\301\374r}\264\341\205n:z\263\360\341l\rE\356kI\260j\204\206\003\303~\334\\\267\330\331M\351\225>\274\324\031\260$\352\300-\315\367J\224\226\330P\345h\247\341\364\301\200\3773\373\010\277r*}\221\001\010\251\001\"\250E\276\233d\007\274\020!\021HE\202(v\210\237q\024T\335\334\357\217\266\325\001`\233\006\377\310\322\254\217\367=\032/\234\226\213\030\027\306@Tc.\344\2718\t#\037?\355\253\034\262\n\210\231J\251\214\304*9\354y\377c?\213\364\345\207\357k\371\340C\010\006\314&\236\031\026\000\013P}!\373C\3579\373l\201\376\264\377\347\311\231\301$\047\327I\363~\323\303\373\207\316i\312Q\326e\374d\220\231A~\201\r\304+\r\235\010\317\317\342\346\223o\306~\357\317e\372?4?\205\234!\211\276kM\205\225\250V4#$\244\241;\257\265>d\027\263O\271D\220\026E\023\376a \3713\373(x\265\254\r\024\n\260\375\320\266V\004\373\337.\010\257\374\2366\047\217K\320\347\250\226A|z\010Z*1\362-\255\302\243u\262wh\240\350\200\322\n}\047\223\363*7\000\236m|\211\316\247zS\234\212\265\266\027\t:\022\313\343I\320J_B\254ELb\320\302\322\277W;\237\333\375\352\\w\255@\033aQIB|\327[R\312\035\322\332\025>.\207\251\ny\276m\324<\336\310y\317\234\246\005\360T~\372M\030\205\047^\252d*?=D\302\206\027\230\n\214\301\256\217\255\363:^\205\377\333\321\237\010\204 \000\225\265\364\307\321J\254/\017@\2213\301\343M\211\377|\311\200\tI\007\333\351\377/{\303\303\361\203\333N\213\324\347\020z\342=t\001\272\313\310\245/e_^\n\005l\025\034j*8\2238`\047\245\367\230\377\0324\251I\047\317\nU\017\356\264\250YAQ\247j\355\353o\365=/O\325\372\362\047\252n_\366\210\233""\222\374)\364\340\246\217\341a\243\250\017^\201QW\0109\t[~\360\334\3747zf\345\273\322F\335\337\262\266\2727\267\351\260\332h\232!\276\2069Yc\210\245\032\n\214\334\352uN\257\340\210\335\000\222F0\222H\222,M\322\n\216\361h\222\215\367\205O\262\364\366\350\245*\335\205\026\352^\245\276\267\337\273\324\352\377D\372\341O\340\313\364\331\365\n]N!Q\302\320\303E\266v\334=\272\330\021U,(\047Yf\213\255*\"\321\341\334\362N\251\324\3678\313\255{\324,\343\341R\010a\013\312\361\334\350\r\027\361\247_\000J\344\320)\001.\316\240@h)I\030\"\260\363w\270\250\037!O\350\275U\336\273\373\321\276R\226\n\215\264\261\343\016\032p\350(\021\013PV\204TgS\321\337\3408j\037\030O\240\031o\006\335[U\022Rp\260\342\025\033\350X\022\3451\025\033\370--\020\236\347\225\324\201\016\000\337>\2649\002\243N\032qyBqR\351\333\272\231dSG\375ca`Z\322\201\025\367\317\2177\216\037\007^\201\326K@\366\010I\004<\321K\375\202\356.\307\035N;\010v.\224@o\300\022\201\002\000\026\205\0012\320\226\026R[\003B.?!>\036\300\250\327k~\335\370q\202X^=\0258\355m\013\216\261;\030K\002\333\255\014\003\001(\331\010\246\366?\007\331J\374\\5^\302u\271\034\345\273\013K4^^\303\215\300\022\267\330PTo\271\354\nV\315\334\200\337\201\276\252\222\034\360w\216+\0369Rp\235ju\270\351\306\\^%e\016\260\236\366\255\335\047\004Jq\024m\003\253\367!}\233\374G_\255\327\022\3004\031\024\276\305\321]\355\347\335;}m\202\207$\220\340\362\324\353\341[\257\275x\213\014iD\244\205\236\3505\301M\340\352\365\271\314\352\357=j{\225\273@\004\224\252\275h\213g\272)B\204{\364-\370\370\263\356R\207L\023\252Q\342\r\353\301:\t\301^\256\202\227\246$w\341n\200-!b\230\267\220\303pWu\005\352uEF\306\201\324\032Z\024\334:\236P_\177R\315\017\274\307\336\024\033 \333\014A9jc\240\207\013~hf{\274\221Q\335\021Z\233\220\337H\177\330u\000_\265\205R\362\017\275q`\250\357\234\030%\217\274u\017\304\250\320\313w\271C|\204\352\n!\325\025\030\252\035\350\374\323\340\321Z\313\303A\032\331\241\261{\270q\007\031k\303\301\330\353wT\326\260n\251C\324\365\354\n\205\241F\0057N\232Q\260l\022\003\275T\224\033\341\275oi\365}w\346\022\264RGt\224(P\351\327\226\334\026%\242\221l\010\332$\370~\017\223\271\351\250x\206\363:}8\r\n\020\255,\243^\241\272\322\320\261H\264z\224%\302\226o|^\267\334>\241\353\211J1\222S\326\016\231\323\255\205\213\006\330\226\303uO\177\346\017\375\236\232zG\252\244\375\304\262B\301\233\226\324}\335\303p\276\3626\203\323\242T\201\241o\343}OD\215(\220\364V\276\345k\270n\027\025B\001a\035\322\344~\023\317\375\241J\036\212\177z\326\237\310\242\376\351\037\342\261s\205Ik\025Ju\007\310\374\002%\037\255\252w\207\326\036\221\210W\2412\210h\217\215#\255`\325\204\364/\235\335\260\250\\\236\377Ba\3124J!~\005\300\177I\246\243\323\371~_\341G\345\376\217\233\202\325X+\3600\211F\020\030w\203D@\204\351\216H\350\370{L\375C\317\277\330v?\365\264HC\r\250\021\"""\206\030\022w{\205#I\323)\330g\355=\315?sE\367\304\221\337\014#\322mNKA\332hm\201\230\322\236\226\271\010\361\342o\326\357\235\227{\036\314\206v>\257\227\260\376\257\325\020/\230G\240\204x\2328\336\217\272\047v\035\347\364v \312}\242D\047q\000\014\367\007\314\337wy\243\355\355;N\333\304\275K)\250\274\262|\216\257\230\204~\345\261\367\226g\354\246|\177\253\366\037a{I\372S\n$@\013@\204\350\230#\3519\217k\006\213\232Q\375\243\021\306\020\240\240%<\316:\035\377\346S\362?\353\0106\235\225\020\311\240\237\315y\377\250\007\376\021\177\236\311\3609\r@\366\007\270\276\322\350\203Y\222E\213\036\200\034\347\014{NT\266\272\303\336,\351y\034\034\"\233pE\361\342\033qN\016g\256\035\307^\261Q\301\317\263=\304\025?\222\347\302\373A\325\016\322\275\366f\372\217\355\002\014H\240\036`~s\344T\317\220\361q\037\032\370\215v=\345\373\010\224\336\036\017\344\231\356\326\372O\246\377i\372\2031\362\356j\370\265g\361\220\366\027\301\003\330\217\260\377\"\325)qw\351\373y\247\267\337vS\333\022\223\264\037\246%?\177\307.a+\371\357\354\366{\204\366D\367X\244{D\266\304\225\360kK\236\217h\375\375\257\030I\346\210u\027\270\224l)l-\n\222\225!\361\177\035\371\347\264\235\241O\340\247\2745\022\222\305\tsE}\266\301\372\356=\337\335\375\241\352S\364\to\222\\\330.)\027T\267o\366\341\352\177\226~\205\251\177\273#B\177\240\006\006\t!\246CE\312\312\320\375\276ou\355\003J\t\354\300*AJ\221\375\366\365k\356zD\365a\345yHQNs\374\325(\004\212\226\022\353\251Hk\0377\303\361k \276H\047\215E\002\304\177`\236\270\207\266 \321\027\333\355\243l\266\335o\217q\332}g\326}g\326f\315\264!\274UM\271V\340\334\276\333Xo\243u#\212Q\220\311]\226\"\014A\300\n\020\301\242\272\210vT\203\205\013E\275%7W\207\005\214aa\212\263V\r\005\333\272\323Kc)\346\364\267\347k2\261\242z#B\234\321\206L""\326~y/\016\326\315.=Z\230\032I\013\017\363\241:\244\235R\032\333\213\243\235kX\2513[\034\260\325\244\201Z\314Dq\377|\220A\033\244\004\006\352\000\224\005\274\007\030o\241\003\301\026JU\241\n[Y\022\300\226Z@(J[\026\001*-B\245Aj\241Q\255U*\255V\245Ej\215R\225)B\222\326\025\260\266\002\326@,\255\202\221\n\020\244\263`\033#f\326T\2626\032D\244\niB\225\244\261`\002\302\330h\020\240\nZU\241i(@\244\224\231\220&\022a\231$\231\000\300\314\010\031!\201P\nF\202\326\001,\205\232\001\240i\265\225,\254B!03\010L\204\310P\201`\026P\201BXfDl-\250\006\204 \014@\252\001\240\ni\006\225\241I%\002\206d\200d\014,!HS2I0\014\nD\241*\204)\n(F\220\256;\002\331\033\024)CT)@Q@4\255\034\026\020\260\226\244J\022\223+`K\r\237u\225l\005\217\306X\026\301\3264)@]\361\006\250\025S\236\255\024(\205\234\324*\201U\253\322P\250%P\251\322V\252\265R\247I\022\250\325\n\235%\032\212U\n\363\020,!e-\367\"YB\303g\356P,\te\263\300\274[\263\331\231O\264\232ITd\2060\3665Ak=\224\33116DLb\314w@\331\200csX\032v\0300t\224\361\277\236\374\337\310\362k\322\235)\347|\264\377h\234\230\033p\222I4\331Ov{\263\370N\324\367{=\203\216\303z\037\341\350R\234\312^\337m\276\271\n\305\374/\2359\206\374/\370P\346\233\252\234\235\315Z\246\315NN\t\370\360\335~\353l\317\271Sf\2649\377\342\356H\247\n\022\032\344\363\220\200"; + PyObject *data = __Pyx_DecompressString(cstring, 20738, 2); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (16440 bytes) */ -static const char cstring[] = "x\332\335}I{\032\307\363p\0048\221c\331\221\034o\211\223\374P\342E\262e\331\310\216\023;\353\010\220\204\205\204\004h\363\206G0\222\260\021H,Z\274\3049\352\310\221#G\216\0349r\3448G\035\375\021\362\021\336\252\356\232\245a@h\263\377\317\353\307\242\227Y\272\272\272\272\272\266\356\371\362K\047\374\013\257\3043N\370/;\327\266\263+\251d<\352\334L\313kkJ\332)\247S\271d\314\031\226\374\276\341\353p\307b&\233\226\243Yg<\231U\322KrT\031t\372\240\224a\357\301\312dL\2119\263)g&\276\272\226\210/m;s\231xr\031.\305\342\033\361XNN\360w9\227r\311h6\236Jf\234\213\333\316\265t\n.\342}2{Q.\031_\212\303{\364V\234K\251\2643\243d\263p\317\355h*\231M\247\022\t\376\336\265\\\326\031\223\263\362\200v]\1775{\325\232\234\226W\025x\r\000\017\035I+\331t\\\331\300\333\322J&\227\310f\240\003\372;\234\360\352L<\223\3158SK\200\215\027/b\361h\366\305\013(\261w\275x\221\314\255\256mC\205\234N\313\333\031g\037@\205\267\255\301\253\345\314\240\007^1\202\315\341#i\254O%\344\264P\337?\340L%\025\3666\366\016\3261E\216\256`\213\2515%9\340\\\211/\257\0148\023\251\315\001g4\221\312(\014\356\215T\"\267\n\310fC\025\225\223\316E\005\373\353\334\214gW\330\333\262+\254\"\302\020\022\341\360\365\365;\241\353+\251\330\240sn%\016m\274R\266\001\253\354b_\246\0372\n\014\017\326d8\"3\316\315\025\205\343-*s\004\343{5\204\"\215h\310\207\247\370\310\342\r\274\321$\3640\203c\t\204\223\335\036\374\322\240\255hB\316d\234\313J\026\333\211g\343r\"\376\032^\200\300\003\376D\202p\342kX\237SkX\0068\266\241H\004ft\316\231Z|\251D\263\214\3768\375@\343\014Z\200.\265\211\240\255\245\343\253rz\333Dk\200m\366\"\215T\250\327\326\224\361\220\367\340\026\3743\267|;,\335\322\336xK\047/|\345\255T2an\r\237\274\305\337\32186\346B\277\351&\355q\270\264\234\351{b\276m\340\231\363\tk\220]\213\000\324\251t\344\325&\026\236\365s`=\251(\320I2+3T\"q5y\300 \"%\311\247 L6\032O\366\246\021}\320\223\231\254\234\2049\210/K\247\226\341u\253\360\372(\033\230\215\270L\024\260\224\032\020\350\000\032\253\237\200D\032q%3h\240\366\026\241\373\026\014@.\2354""O`\021\203\330L*\227e\003\246\021\031\343S\310\2708\235\003\371\"\231+\311L\016^\252\215#\243s9\261\211D\263\001\244\027\243\027\246sI\021\277\317\372\235?1\302\3174\014\227F\"\000!^L,\r\022(\364.\r[>B\326>\006NhS\030\375\326\215\352\377\256\002#r\366)[k0\035`V\0313iI\216\047\264i\246\244\3230~\321TLq^\355\213\3053k\ty\233\215T?<}\265o\031\370\374Z?\020\342\325\314u\234\3461e-\255De|\037\002\261\002\034\"\231r*KK\320\306Cg_\337\325L\177\237\234\334v\002\337\303\036\366\367\367\1779\340\034p.\247\262\316\301\273\017\235\177\374%9a\200\3420$\300\327\\\230\007Z\\e/\311\254\246R\331\025\030g\3113\037\324\336\234C\274-&\024\323Sqd\303\233\311\337 Cs:C\244\226\204\351\006\017\017:C\300\001\257C\356:#RE\216\rJp_\224\023\277\227\365\270/,E$\277?\340\216x\203\301\376a9\346\0140\276\301.\014K\236H`\370\221\327\035fW\246\364\311\254]\234\222\202\322D\377p.\221\270=\254\310i\270#\013\227\223\316>,\3053+\316\337\235w\006\234\223J\016V\305\204\363\017,\340\315x\345O\347\235~\217\234Y\001\014\372\343I\305\223\312f\365l\016{\352\335Z\203\245 \211\334\3209\221b\214G\332P\322\362\262\322\374\212>)\047\001\321#liFPGf&\335\221\311@82\022\230\231\364\364\353w!re\047,\331\212\274\312\3362\345\023\257%\353\021?\212tP\367\366\321``f\312\364\3721\350a\035\\|\t\305\307`\000`A5x<\276\300795\023f/\200\221\200\222/\354\003\226\377\330\333\317\036\313<\204I\223[Z\212G\343\320g\347\030\254\277)`\332\374\301\320\314\310\210\317\355\363N\206#c\276P8\020\\\200\207p\010\0005\306\000\373&\303\336\340\244\344\3071\016\004\341\0166\315\235c@\272\3203~\307,4\351\211\214I\223\036\277W\277\303\017\2159\303\333k\342M~h)\022^\2302\3563(C\307\237\371\001F&l\024\302\276\300\244\305Sc\251DLI[<3\026\360{\274\301\346O4\300f~L\204\321X\212\240\234\343\"\323\270\234[Z\205Q\226b2,\246\033J\335\260\371\343\213i\\ q\340\352\007\r\326d6d\246\341\232\360\206\244f\257\232\030\361\201|X?\2157e\344\302\331x\232\ts\260\322\337\202&\235\356\301\311T\335\343\316>X\277\201\342\263\333\375\223@\373\010P(\267\266\226Jg\t\034""\004%435\025\010\206\275\236~\274\256$S\271\345\025\\\270`m\002v\311\326\275\314C\247\316\010\341&\0058\206\234u\272\231X\313\371Z\"\276\010-f\025X\274`b\200|\007\010\203\233\222\316)\357\324\255{\277\336#\246\213<\002\230nn\221\311.\n\223\010\027s\361\004\254\221\316,\014\n\312\215K\316\355T\316\231T\270\304\273\2062\216\351\001\340UI&\243!\323\272.\047\223)\276*G\340q\350\371ug\014\320\022e\250\204\247G\344DF\031\014\344@\210X\272\025\224\223\200\022/\000\342\003yz\213! \000S(0\022\tJ\223\243\336\210w\322\003\003\343\361\316\367\013O\204\262r:\333\354\231PX\n\206\215\247ZMXx\256\311\214\245\007Ix\230\224\047Q*\200\305\037\305:E\274\230T\226e\354\235X\273\226\312\304\033k_+\351\024\3250=$\312fn\006\244\214WF\265&\017:\373\222\300\201\220\314\372M\0277\220\360\231\224lT\256\311\331\225[\260\224\241V\222\314R}\006V[\220{\230\224Ir/\277\222y\250O?\314j\234>\225J\364\003\347q\217\005C\276\003/W\360,-W\2203\226\253\020jI\365S)\004\374:\271\014k\266\016\303\223[Cw\356\014\016\336r\335\271\363\014V\031Z|\006\234O\260fp\220U\216\222H\253_\274\003\225\2642\301\235p\033=\255\337\310\027*\270\006\027\260\001\366j^\331\037\006\3105V\007\363:\260\231tz\224%\031\304\251:`\303\251\224s\025%\201\346\3630\234\216\003u\346@\025\252\1776\035_k\271\020\322\r\243\n\240\220\310s\317\305s&\371*\t\343\300W\007\241\300H{fr|207\311\244\201Y\344\223\310\240@\326\311\340\332#\243\332\005\243\225\210\257\306\263\215Wa\265dJ1\273<\247\200\236\206\335\023\233\237\213#\337\006\224\205\230\230\323p\3751P\372-\277\274\334\242\007OD\241\364\231\034\213E\200y(\\\327\345j#\322\341f:\005\017\305\342\200\357\014J\313\346\353\tFA\\\364\215\305AlKcS\246\033\220\207\341\024\201\027;c\014\247\202\270k,&\253\361L\206+E\3539\306\307\231\242\014\232$*\347\313\270\250mpDaSH\217Hy\200l\310\3653uy0\022M\245\225\301U\240\2358\351\274\\.\005\256\007\344\017,\336|[\016t\213\225\206;\270\010\023\271\n\263\016\370\367`\024\025P\256\"\360\n\366\006\236M\245\001\377J\0145w^\301\225s\3123\205\234\3473\333\224\311\256""\300\313\321\372\300\213 \226\243\026\302/\336\216h&\217\301\265\2558UES\253\253\251\244\251\002%nS\221C\213\025\365|\342\272\344\226\334\356a\020BB\222;\020\222<\222\007\376\007Bn\311\023\0049\026%b`\270R@\232\nH\301@`\222\375\340\345\220oR\nK\360\027\224fG=\336Y\370\235\n\372\334^\340\336n\306+C|Vg\206\331\313\207\275ai805\234\212m{R/\343\230\372\201X0\r\255\000>13\253\244Y\245\333\355s{\374C\356``.\004\231\273\303~\311=\256\227@\004\363y\274\230\363\373&\275\241p\3207\316J\260Dh\027pa\001\370BP5\206\345\2711_\330\033\002\t\305\347\r\342;$\004)0\351\365\014K\303\013X\366\314J\223n\3570\010\345\343P\034\366\372\303(\317`6\350\225\306\2459\t\357r\373\003\360\322\321\t)83\034x<\2035\001xJ\362\343[Bs\200&V5\203\242\237\024\016K\354]\036)8\016\017\316x\334\201Yo\020+\002\217|\224 \230\230\rJ\243\201\311\021\377\002]\362N\216\316\370G\240%\314\317z\047!g\272\233j\2504*Ma\247\361\217u\022\253`@\000-\330=\376\2761ib\2025\r\242\346(\353\300$+\200\330\34632\301@\010Q3\346\033\035\233\203\027\260\354\370\2704n\312M\004\020%c\201\tx\311\224o\324\033\300\367@\313\223a\237[\362\337\325F\31079\351e}\007\t\321\213\302\221\016\300\270\317=\316\373E\271\341\005\354-\033$\030\004\020 \207\003\341p`\002\213\201\311Q\277wt\324\353\241^\260\n\030p\310\232F`B\n\273\307\340E\376\300\034/\321\270M\004\202ux\243\032*\0054\030\247\200$\334\034&\240\336\361\320\2304\307\361\023\364\205\274#0\246w\047\274\360R\017v,\344EY7\354\343\200\260\232\261@ l\274\025\212\3010\001\031\232\002<\300\245p`\nKax\225\3273\005t\001z\001\253\300\326\200\014\347|n\354~X\032\237\t\372X&43\356\203q\305\374Xp&\024\346\320\001\235S+3\223\276\351\031\357\335\240\217\023\324\014\243\000x@\2370\363T\241\203\356\365\371\335\023#\356\211\000\374\237q\007@f\205\276\007\202A/\220k\010\376\217\271g&B3\023\356Y\2370uQ\324\367\000\022f\374a\217wB\362\370B\3220t\302\343\233\205\311\003h\007\350\247\002\236y\335\230\010\032\245w\304\007wz\203\336\240\317;?\345]\317\311\211\021\177 \020\034\201vF\202\222\033\3200\"\247\265u""\\K\007#\02148D\"\365\025K\0267\256(\321W\021\220\274\310\032\302x\275\351\372\262\222mq\025\245B\241\031~\033\023\025\"\031`\211J\206[\213L\267\240\376\2360\225q\375\025\336\001\334U(\347\222q4k\230\352t#\312RB^6\336\275\\g\323\261\270 \002\203\365\206\371J\257F[\227^H\244R\257\026\345\350+\275\202\233h\352\232\246J\361\365d\314\321\313\351\234\201\371\006[\220p\305\262\027\231&\275\310\010\275\030\223\306&\244\261p\304\343\236\002\252\txxvL\ny!\207i \010\031\340\274X\016\007A\321\360\233\362\300\223\274c \367\370S\233LOGc\240o\3027.MH\343\356q\317#\274W\002J\037\3253\021\t9\213Qd\252\272\333;\0256\252B\376\300\224\327?\351\017\214\272\356\240}d\002\336\346\366\340\237w>\214\311\210o\036\353\200\021\215{\303#\276\t)\024\202\237\331\251\t\t\352\347\231F3!Ep\376P\302\t\0234\222\325H\304\250\342\3248\001|\001WNPX\047|0\243\000 LY\225o\022\376\363\367AV\242_\255b&\024\361\370(\235\230\010LL\300L\305\025y\022\230\377\344\254o\022\004\357\300\360l\200\313\037\036\220?\246\260\247\300\256\375^\312\201\"6>\345g\357\341\311\0040\207\251Y\337\324,\374\206\247\031\227\nB7\003\300[\334S\230\340\037HR\260\276\006g\341\177\300\317\024=\354PP\221\023l=\207\305W\n\002\246p\t\366M\216\205\000=\023\276\320t0\034\n\003\217\237e\252\013\373\031\321\264\230\320\314p\010Y\020@\305F5\304fbhE\216\2456Q\"\3409&(\360\254&*\030%\323\305L\370.H&\360\177\014Mmn\366\303E\034\226\r\260\304\303~\370/0\047\226\006\331\357<\377e\205\000\376L\261_\024|\264\224\036\200\336a\302\032\203\204=\301\204!\236aC\210v;\255m\024\2020\tL\301/H9\370\253\t:\252`T\032\016\215\260_\354LxaJ\2431 \017\316\230f\031\322fY\277g\321\377\202\017\315\3161.=;\307\3364\307\004\2749\267_{x\316\347\367\343S\374\362c?B\200\177\034\004\326>6\016-C\263\324&o\020Z\203\246x;\330\010\266\000\257\327\336\315^\014U\354\225\272\312W\247\300\232\353\255\024X\323u\013\005\326t\265\231\276j\272\205\351\253\365e\264\221\232\352\360\231\272\"\323b\201\265H\013\314\213\027\212\0203cU!\261\216u<\022B-\037\346\0307\021\300\305)XG%\250\000\014\303\3321\341\325k\350""\316\310T\300\017\022\252p\003\257\321o\330\336\202?TU\"\223\312V6\250,E\"\264\376\240#\023x\303\004\336\026\2110s\001$\334\211\245`>Ju\"\342\233\340;\302\234b\206R\026\211\304RQL\360ALq\030\230\312l=\"\346\047\271\032\327blhH\"\253r<\2117\302\242%\363\366\261\220\212\345\022\254\003\253\351TDIf\331\203\021\032#\370\267\226V@[fY\264\247h\325\334\014A\326\207H\004\206w\003\264i\326e(\301pb\252\233\"X\047b\234\375\260x\017\354o&\022\317\240\221\033\364~\320r#h9\310\255\341\2338\3162\271hT\001 \241\202a\005m\307\221x\254\276\\w\003yW\261r\331X\370ME\266\036S\331X\240\251\242q\305\247\013\226\322\200v\255Q\034\240+h\0317x\233V\251\031\301#\334\010\216\325F\024\030\226\322\234iG\270\327O\303[\204\202\264X\207\321\210A\227\033\252\353\333\314X\267\231!\026)\003\232\023\350\002Fg\242)\2170%@\311\255\257\313\240\252k\256\254\277iU\336\262\250jx\214W\254\2413RN/\243MG\316D\343q9\203\256\0309\263\235\214\306S\203:yd\344l\232\303.o,\363\314\342\242\262\034\217m-\306\263\213\333@qC@\212&?i4\201D\005\024\217\336\n\005\345\272(@\245\260\020B\366\023A\246d\362\234D\321Y\232\004\202\306[Y\036\252\326\266c1\005iX\033\0046\3774J\216)\231h:\316\334\260\346\020\"\244\355\2309\360LY]\313nC?\001Z\370\315`\000\222\222\204\313\350w_\222\2430\330K\320\355\030\314P\354;\317\363>b\376\225)\317\\m\2301n\245\213\361\264\236\005\276\301x\007g 4\257\320\001\304\246\tb\232e\320n\3072\210)\226\341!\204\242\271P/a\317\364H\264z\333a\235\311P\264\024\262`*\366\223YQ\022k\030\320\211\177l\000V\230\264\023\217#n\270o+\302B\263\200\322\320m\2170\232\3331\3320\265\326\214\363\221G\016\270\014\033\000d\230\231W\3126\374\317\360`\263\204\262\224]\224\323\031\356\035dlR\263_&R\233\360\237\201\310|\240\034\337@\307\361\325\334*$\034\325\253\3204e\230W\220\222\0106\261\232Yf>\276\265D\\I\047\021\240$\254\027\2131e\203\375\304x>\267\226\004\266\273\025\317\340\034\026P\n\004\302\313,\247\257\000\274\304M\245\314\315\307\007-\265\264\004\363<\225L+\310\207\025\014\235\305?\026\034\204\354\004\362\2543)dd\372""\313\352\326\225\214\321\212\311m\010\215\301\1779\235\002*\007~\241\345sk\220[T\344\364\032\342\207\345q:b&\227Hh\2251\370[\222We\226d\250\0104\r\351\212\314\346!\313!=\260\014 \233\245\254\0038\363\327Vdv\017\r\246\221\343\335\311e_\302\037\276.\241\3101@>\336\273*Gc\224\254\240Y\226g3\361\345$\274\037\013\014\036\030E\376\313\241\346\031\355\2550\262\374\227.\262\214\351b.\263\021\207\\r\021\370\031\316s\034\221\004U\2561\204\351Vo\223\261\333l\367\2461\244$\302\202\226\240\000\213l\014\370B.\2157\247\025\0060&\214\n\0271T\222\227W\3431`u\246\n\346\213\2472\341!\003\017\305(E\024eV\343\374WGE\006\003\203\t\371,\017wr\0071\233\276\006s\301\000*43\254\347&\364\234\346s\240\212\360]-\243\363\014t\004hY\203Epk\274^\360\231.\350t\034\016\215\3509\r\n\315`OEn\267\247\302\254\216\241Y\275\023\334\230\257\025\346t^\216\246}\312\316\351b\263f\350\327\212h\357\327\362\372\355\314\372\317\002x\027\023\n\017\333E\023\037\244F0o|U\teA\245\303\014\227\346\215\234\313\310\016\031\331\273\331T\204G\022\203\222\200\177\232\3155\267\006J\225\302\177\231\031\211\351\236L[\340*\003\331\2027\270q\213oC\340\277L\035\303\220b-\254\030t\020\336\332\277\035\273\216/\376\315\355\270w\326w;\273\363\047\362\323\273]\247w\273/\250\027n\226\\%i\267\313Y9\220\317*\275m\201y\260\321\377T\320.\252\213Q5\n\323\t\220\372\036 \372[\003\223\340\233\307d\336\266\200\311\202\355\261\025\264\352\357023\377\33584\304\267\252\353m\301\014T\300\351uC\335\330\004\270\266:F\021\274Q\rf\0026\202I\304\366\002\223\0276\331\002\364?*\323\207F\364\363\212ko\240\223j\030\260\034Sc\200\345u\000\047\335!!T\2226\311hv\351X\206\344\261\355I#\304W\257\035j\256\r\224\206Kr=\264\227\340\266{\205\355\322\251\362\275\362Fe\272\022\257\276\203\341Tg`\242\001q\254\253\353o\001\232w\032\021\353\223\214\021\211\237@|U\354\321A\374C\375\003\236\236\375o\350\220\200\256V\376\250u\210\300\236S\317]-N\027W\260\023\260\016\301jW\034\303\225\243I\0478\253\200\036\274S\337\375\003\360\276\357\230D\260\0475<\023e,a\262d[\306d\331\226\306$m{\207\311;\333#;v\327>\205\311\224}\032\223i\373SL\236\332\2271Y\266\2471I\333\2670\331\262oc\262m\177m\027\020\363P=\177\225\255\301W\377\254\310\377\r\034\0223\211\372\271\275\327\200\276\325\226\315\204\232XUW\371\200\322\222\031\300$`\233\301d\3066\213\311,L\026Hd[\002\223\204-\203I\306\266\215\311\266\3555&\257mo\304\241\177\230\307\356]\273~(\372\274U\n\226\032X\3007\205""\037\013\236\342\311\322\345\262\247\362yE\256l\327N\003y\251\263\234s\245\325\364;\200\347\037m\325\322\t\223\315\253\t\0022Q\354\325\350\363\332\237\352\237\360\364\034\362\2533;O\n\035\005\006\316l\376~\241\247\320k\006t\026\205\234\003\363\253k\006\260\000\351+\365\025\340~K\335\342K,\255XaL\3020\321!y\242!}\021\223E[\264q\366_\357;\024v\007K\213\345\006b\371\2660T\010\027\277)\335,\207+\027*\353\325\223\265\357\0019\352\034gW\0315\303\047\316\010\0025b\240\025\222\t\333$\201\270jH\235\034\304\003\343u\017\006u\377\300 \232\030\024\200x\343\360X<\255\236\376\241 \027\266Pt6\347\333\306\250%\275\316a2\247\221\300\n&+\266$&I[\n\223\224mMD\372\203\274\204}\372\253\262~\250\225\014{u\2722\335\026u\352@\2049&0\231pLb2\351\0108\314\230RO\375\240\376\000\232\026\340\253\257\377P\363\376v)]n\320\005.\027\206\013\261b\177\351\267r\254r\255\332Q\375\246vK\235\233W\347\201D\025U\311\252Y.\014\322\310\352\263\211\rp\200\2064\211\215\360!\005\020\007\217\026\304\346k}#\350\267\325\205\307\352\343%uiY]\336@\004kj!\361YZ\343\2460\231\322\330--\373\226\213\233\027\207\311\253-\373O0y\242\215\344\"&\213\366\250]@\202\276\302\367\001q\303l\237?\024\223A||WyV\353\335{\330\006\324Y\340,\373\227sV,\006\361o\365o\320\260af\363\267\030\342\350\257\207\354\313\367\225\325\332\037\352<\247\254\334\301\007\032h\024\010\024z*t\363\031&\317l\3171yn{\211\311K\333+L^\325\r\250\037\023\277=\210I\320\036\302$d\177\216\311s{\034\223\270}\003\223\r\373[L\336\332\337a\362\316>\2063t\314\021\302$\344x\216\311sG\014\223\230C\301Dq,9\254\351\241\377\306\241&\357\235\262\255\334@\005\337\025\202\205l\361Ai\274\234\255\334\257\366T\373""\021\271\013\352\002\340\027&A\016;\24011\222\362\364\231K\023A\267\013ic\1774`\366\344\177h\033J5\307\005\267\275!\274\220_*<*\002yt\356|\241~\005x@\243\327z\341s4o\021\364\222*\201\336\r\357\334\370\357\316!\273q\253\362\276\226R\237=\337E\203\232\263\330Q\274T\352\021\363M\272\2463\037\222D\210w\352\226\023\266*F1\211jk\372\006&\033\266\267\230\274\325t\2161\244\2711\215:[2\037\032@\350- \341\306\315C\r\241\253|\266\334\240\312~_X,:\212\276\322\223\212\2432R\355\255>\250M\354\213\327N\333\310Nx\255\250\017V\035\234\335\371\223\205s\205i\001\3403;\262f\260\272\000rU\272t\016\244\306_+C\225p\365\273\3323\3651\21454\277\242\256l\252\233(T7\030\245n\014W{\005\201\350 \255X\253\354\324]\267\355x\032\345\0130\260\2704\256K\035zk\314\322\345il\364\346@\273\330D\335\344\032\014\254\255t\245\264T\036\253\014Wb\325\201\332\252\331\\\005\250T\267_7(\0367\335U\327\241\304\313\241\362\217\345\211j\203\020\362C!]P\322\307\241\016\322\026d\200\372\365Fq\276\024,e\313\367+\227\252g\253\367\320\211\305\335\377h7V\2238\005\2002\033\014\031m4\322\223\3579l#c\352\030L\020\234\211\202\275\301\2525\026\260\304~Z5\211\023\315l\323\"\244\212\263\214lZd\203\336\304d\323\266\205\311\226m\333fa\022p\r\265\213qT\364?/\256\224\026\313\216\362H\245\257\372c\325S\353b.\324FF Y(\365C\217jm\353\276\250\366](n\225\322,\016\345\327\352P5\\\373\216\271\311x\034\002C+\232\206,\315\316\202\232w\367^\273\035DY\366Z\251\263lcN\371\261\352p5F\266\323=U\326Ar""\002\3440\311i\366Uka\315\324\317?\377\022h\346P=l;\262\355\225:\035V\303\217\231Q\223;7,L0\324;R2u\027\016\363\017\307\033\225\034\036\341\320w\264}i+\244\254\2617\207\247Ds\307\220\014\216\272c\221\212\264\357\216\201\312r\244\035\373[\022H\257kg\334\314\315-{\365s\255\343\360\244\007\204\302#@A\023k\313\001N\016\2148&q\303\331f\325\241\033G7L\024\031\364\265\372\365\225\242\004\002\3244c\334?\026{A\235sYG\t\235RC\373\356\234e\304\205\350B\014`\022\260\317`2c\237\305d\326>g\027\214\035\177\025P\351\373{^\235_8JZE$\274k\244\325\275\273\216D\327R\306 C:\r\352\032&k\232sJ\0273\033\3549\350r\343Q\330\024j\371\036\223\3676rRQ\220\303\n&+\216\270CP\330\017\211\n\026\372\241\376\021P\003\320?\276<\223\225\213\206Pw\251\355\035\322rY\r\317\251s\334\200\005b\006\247\022\322\340\0101\353\230\254\333F\261c\243\232B\226\301$c\177\204\375{\344\030\307d\3341\207\311\234c\036\223y\3072&\313\2164&i\3076&\333\216\367\230\274w\374}\002\031\374\t\351D\203\221c\330}\224\313P\233\341\0377\325\031\240Wn\r\002I\213\271R\321\273\247{\236\230e\206$>B\013)\266\242Z\262\332\250\200\363\016\2356x\232\036\036\206\275\370\245(\204\207\315\224\373*7\252#\265\336\0032\267\253\024\364\370F\r\036m\207L\314\r:$\272\303\204\016Y\216\320\375\332a\303r\217\274C&[\"\357\220>Bu\313\217\345\010y\017\334\241\237\r6u|\035b\314w\340h\247\321ed\276_\347\377,\366\024\373J\275\273|C\215\026\023\260\347\224\202\025H\323\237\031\047\026\345WriR\377\210\341\210*>\t\256\343\230\214kK\017\005#?\303\344\231\375\271h$\342\013\221\333s\224\374\244\315\210\224\337\324Y\220\325\270\321(\256\306\365P}\321\304KQ\021\264~\220\314\244\217*YZ\033\314/u\035:\244\260\324f\\,,\023G\333!\023\307\207\016\r\036\371\010\265\027\020y4#G\242\022\351[$9HH\223\222\026tE\024\032\305$j\217a\022\263\2470I\331_c\362Z[J\2470\231rLc2\355\010:\314\343o2\252\273A\030gq\022\346Y~f\347\2259\336\330\022u\2774_[xx\375@\265=vlF\023\267K\220t%j\004\342\036\032\022PH# \341\362oD\300\337v\302\330\260\275\201\237y\274G\311\240\367 \371\031\203\201\001""\216\271A\364\245\372R\217I\020\255/d\370%\213:\351\246\242\233$\325H\362\334OkiJ\323\311\377\253\235\355\202\275\340\022\006\263e\374\314\023\026c\010\372s=\257\265v\201\232T\177\004\207Y\227\006\216\005\"\213X\0361\270\302z\263\222\t@\357\210\265y\265\035\320\254C/^\251\013m\271\337Lr\217\356\276=z8\332\036438H\232\307\000\016w\007\356\033\234\3211\353!\322\047+\352jW\013\353\355\303\302\243r\220\273h\262\221\265gV\004b\377$\374u\336\245\273E\2328\370\237\354\001\212\265\027NP\210G\221Y\036|\270Z\002\326Zx\324\267$4\350\260c\213\270\034iS\223\326\353\021d\303#ZD0\205\347\2470I9\326\034\377\335?h\017\2328\240\237\262(\023\276\225\202\000&@H\213\r# a\373\n&+\366\367\230\274\267\377\215\360\374\355\360c\342\327\266\022<\305\344\251\343\031&\317\034\317\035\rl\327\367\350\340l\244\211\343\223\307c\354\035\263fR\0109\024\247-\346Ec\304\204\276\276\265\230)\267j\377\264\t\204i\246\000\020M<9\326@\230Qa\035\210\323.\020\246u\235\003\321\210\211f<\303\214\t+ \376\320\342c\366\007\005\233\231\203\007\343\033\255\335\342\000\215\331q#\256\201\342\346r}\347\033\2630\306l\026\252\314\243\361\203\223o\023\347k\233\216\036\263\376\321\014\212v\030}\363 \224\266\2400Me\200\342\316\276q\321\020\024s@\254\210\021\270\326\341n\r\022\373#\220#\331\373,)M\027\335\277\316?(\214\026]\355\317\273\367,\362\014\024\225\275\365k1d\330<\007\306\375\007\237\211V\203\372L\013\tYUW1|\223\031J\255\267O\233\006u\341\261\265\256\336\240\343\236/\312VJ\341J\355\245:\377\214m_8\314Y\033u>\267\244\232\004iH\357\005-\256b\254\235\216Y&\310\222\340O\333\252H\275\241u\225\314\250c\215\016\270\005\356e6Hm\350\270q1Q\371\256:\335\256\256|8<\211\026\236V\321@\024\006\324\206\306LVg]U\306\221\320V\1772\274oa\262\345\370\007\223\177\014\343\263\031\367\246)\372\370\311\261\322\337A\275\242)5\005K\010\006\2262)\2114\024q\371\020U(\321yC\212\265Nyl\207\215\317\336 \023@\367o|\214\356\233\035Y\202S\353\370QA\223\220\2542Dj\363\230\314k\244F4\226\303$\247\355\210\333\024\261\305\327c\n\252#~\246\257\334\302""\302t\202\323oD\233\250\344%Z\300d\301\361\330! \230\207\331>\346\2329\031\013\210w\220\237\r\270\352\375c\307s\244\022\250\375\245>\306m\010\372\271[\363\264\260[\346\017\214vq\207\0341F\232\270\342\001\034\272\261\233\305G\256b\262\252\035\300A\0337\207\021\247\303\0167&nm\2075!\232\370c\024\223\250\266\215\223\324\273\327\230\274\326\270\245\007}t\236\023^L\274\047FN\010\003\364\013`\014\017\277z\362\364\230Yf\373\376\241\031u\206\037?\244\250\312\232\272\006Jq}H\267\250\020\033Q\260\030VB~_\242tZ\213DJ\177\324h\231|\372\354\230\273\337\346\251 uN\357uu\035\004B=\224\220\254\024\342\331\004\342\236\r\362\271\320\014\047g\213\336ov\016\314\270\275\301\200\360\224\233\035h\215\247U\3350\347\016\035;j\336WR\265\010\337E\325j\313\352\001\021&\2060S\374\n\341F\334F\255\207)\263c\017D1\205f#m\243\366a\342s\2041\t;\"\230D4W\371*&\253\216$&I\230\224\002\276yPk\235\005\362\350\261J\326\361n\265\273W\363\364\211\301&{\306\020\244\3254(\337z\200\020\351\337b\204\264\250\355\212\307\016\265\261F\023\327\243 \204,&YX\261\005\205\202\207\212>\343\024j\230/\217\037{g*\311\232\264\357\310\013k\254\021\272h\023\231(/\033\013!N7\n\315\241\3637h\3074\235\322D\266\263\270\275A\343z\306\275[\206\0005x\354\350\371\252\362\276&\267\232\254\007D\025\031_\211\t\211\31681\370\221\246.-\244\n&\212\375\025&\257\352\216*\241\251\333\3225G\330\344\323\363y\344\230\327\203\203\005\264\200^\266\245n\351q\225\244b\212VkC~ER\023\017w\241\360/r\276\3533\263\301\264\031yq\314\335?\230\377\035\344-PK\005\373\010\331\"t\213=sRR\337E~O\323\314\222+M\332\033\314cu\246\304cC\301\0219\270\217\0025\226Q\201\342\321?t\224\010I\244\036L<\216\000&\001\020\375\221e9^b\362\022]\014 \2079\3261Yw\244\233\371\277\333w}5\267K\262\0218&\227\352\013n|6\356\273\177$\3206X0\367\200\233sH\335a\306\030\245(\006\212\003\253\357\247a\226+qGV\300\336\304l\"/\036\355X\264\362\224\036t\347+\3008x$02\253?""\271\014\017\rh\313S\357\270\221Af\006\265\201ce)MO\250hqX\005\220\030h[|\213\024\210\337 =s}V\364qP\020\010E\177\210\2070\211a\341\2646\023\255\021/\241\363_\3043\047I\272\246\303&E\207\240\344\020\267I\361\r\33627\342\023\322\2153\222\356\035\tE\260-\306\355P\2049\022\271\375\323\233H#\365`?=vZ\211G\354\026\346\022\231\217\000-\353d\2721\314\316\017\217\244\2670\235\314?\255\273,\354W\2624q\264\222e\311\3561\207\311\234\246\001\210\232\226l\267\264J,F\217\226#Y{^\336\260\235Ymy\367\302\215.\227h\354ha<\226\010\201(\327\207I\010\240\270&\303\220|4\213\232y\223h\313^\010\347\035[*\347$\366\353\241dL\354\047\303\231(\366\353\373\213-\224\354\230rD\213\005\355\203\354\3313\376\241u\234\241\245\305&j\263Pwc|\274\014\331m\360(I\254e\0278\374dik\303\324\2443\200\006\2454V\177\002\337\320\221\223Y\313\236\010q\003m\210\301Dt\326a\214\202z\250,\035\355\234o\031\224\322:bQ\334\252nV\342\226\226\217\026\310\226N\366}\035k`R\263\000\310\241\343\221\250\017\017\256\270\214\213K\233do\242\320\300X\355\245:\327\355\2638_\\.M\267\222\367@\005H\251)d\375\037\303\037I\252\016\241B?\032\203\3117\342q\2434m\304\371\"\0367J\273\250t\303\025s*\275ltY\276}\047`\355\324\3362\362\205b\016c\000\352\261v\257\272U{\255.\000\003\200\016rOv\266\225\270,\265# \303\333\370A\335\t5\001\263\221\373\305E}\200\234\207\2045\313\303\260\211\216\304CZ\305h\002\322\271iM#\254%1I\032\256\270\306\003\004\376y\337n\270dW\333\321j:]\266\241\314q\005i\377\221\301\006\001\374\347\340\250\374\370Dp\277\274X\251\323\222\324\236\237\212C\305p\351\233\362M\320\302/T\327k\047\331\222\362B}\301c\215\361\333\035\352\033\341\010l\342#\342Ng\352\265\030,A\216l2\222\223aNw\3150\303\034\031\177i\362\220\351\205\216\350\327m\345D\0067K.3\016\215\305v\360\270)\242\245\210\307\245\324\366cl\352\016\0067DW\350\025\023s?>e\374Z\261Uz\353)\343j1X\314\226\036\224\307As\270_\353\251\365\263\025\005\270\003\217+\326O\362\047\356 Zl\304}\272\226\373\340I\250\022\027\033\321XIZ4\205\322\020w\320}\047\024\355`|\013\311\300#\023G?>""\036\037T\316V\\\365x\274V\\,9J\276\362\023 \232\221Zo\355\201\032\216\250\021`\261\374\250@\375\204y\313O#\021!\321\242$\0364O\333\177I*\025\327&\321\016&\372\rZ\205\213\260\357F\325\341\321\222\341\236:\224\034C\270&=\243\311\0013\262*\353\0474\211X\021\005B\221\351,7\036;\003\035al\353\343\023\304\303\312\217\025\251\236 \2563\323\347B\371\025H\360\2635W\315\247\316\000\277\205\227\3610`\3750w\313\317%\211\333+-w\367\223\314\"j\224\272E\224\331)h\331]\302dI\213y\321)\2019\222\2664\202\270]2\341\221\r\301q\023\004_\225fK\277\226\207\230Cm\253\232\256\235\253=eGQ\353\307\211\210\037\216\020\317\264\261<\355\240n\001aQ\235\307\337\023\344\242\033\245\371r\220\2713.\325\316\326\356\321\001\220\300@\3718\267\177\204\324\252\315\212\331\261\215k\307\337\023\344c\237\227V@\210\300\263\245\373j?\326<\352\024?]T\260\023\212\342\220(U[\356\254\254\3439lL\217\277;8\013/\224\266\312i&\376\376Z\033\252\205\325i~\200\253 \344\211~\023\321\372i\271k\256n\306\304M\342\363\235\243TR[\261N\340\047\253\352*\227\336\333g\235\024P\244[;,\014\323\320\241\327&\337{\337G\327\377\016z\250\206u\270\214\370\3254Q\\\243U\226L%\242?^4\367\222\201\367%&/\355\353\230\254\033l\224\2763\325 \355}\376\331\211\257\3243\030\n\271\216_\305\334\332\311\344{w;O\356:N\356\364\354j\337tt \311\032\337sl\362\0203\021\261\307\272\325n\374:\203>\235\276\374\354\304\005\366\264:\370w\265\243z\261\326\201\273L\231\221\257s\347\304\316l\336\225\367\302\010u\242\326\323Q\270\000\010=Q\234+I\245i\215\321\250\267\376\004t\256\327\277\357\266z{\270\332\013Z\243D\336\004\341mgv\226\241\257K\005\2510S\274^\352\301\210\234\363&(4\203\362\177]\237\235\350\336as\241\003F\260\227\237\027\214\205\036\262\325w\356|\261\263\256v\263\263\356?0)\335U\220\250\232\367\341\014P\\gw\376\024\273\320yj\347\336\316\353BO\341:\310\362]x\010dg\327\316h\336\245\236\273R\364\227;>\000\250\013\234X\277\370w\235\256\345\331\373NB\223\306\275\243\245\373\345\236r\257\206\226\357\201lg\313.\320\240;9\244\327\212\035\320\000\264\3663Lb\334""\003\321\325\235\267\345\257\34638[\341\3329&:\377\002J\367h\305\305\016\342\007\350\317\354\304\371\264\200\241\035\000E\342d\245G}\350\257\271k\353B\207\276\304\001E\277\300O\371\307\205l\321\265\333u\036\277$\312a\365\025\202\205u\354\306\\^\312\207\013\3479\035\360\342\264\366\032{~(?\003\330t\3419\230\236\302\211\3024\377\362\002\237\300\200\363\263\371\377\025;\324\336\273e\227z\317S\225\252\323\306\211u\037\034\047\260\223\330\253+\360Tg\017\033\227{xz\363\245\302\311bO\361\n\320V\347\267\205\233@d1\346\276\357\274\220\217jw\177[\370\t\032\213\001\215w^\004d\260\007\251I\265\347F\251W\275\371GeZ\375s\262\246\260\317C\316P\273C\345\336\017\334%\004}bC\177\217u\303\225\037\345Z\331\027\377n\356Dq\204\276\332\311\346\177\205\241\036\003B9\331\223\377\032G\030\210\237\240\356@ O\025]EO\251\263\334\2417\014\313\276:\000T\254\376\025\250\345\330\267\362f\251\341\273HU\226\r\217\201\276\007@\361\206\317\347c0\260[\300f\267A\201f@\270\362n\034L\243a\264lJ\2050F\004\351\r\303*\315\010^\225\246\331\311M\370\235\031j\371\347\362t\223\226\037\025\226p\026\234c\r8\324\357\006\231\241\324V\271\016\322\342\264\271\243\372ht\347\035yI\030\265o\370\224FH\272?;\321\371ong\030\326\014\372\026\357\216kGB\202=\221\217\024GpL~G\n\335\355\302n\r1\022\371\330V\275\302_\245\336#\332\343\"\036n*\312R\355\357\344\240\r\234d\234\320]\272\365!\023\237\300\3749\320\270\033\350\200\221\305$\320X~\241AT\324E\237\001yui\005ly\252\211\341:<\366M*\256#2\t\023r,7:\222\264G\350\020}\335o\033\355|\327\2169.Q>\242\200\315V\202!I\204t\256\215h\310{\337\340\006;\366H\272\216#\214\243#3\266\350,\023?*J\366\353V\356\220\346\335\266\230\375\315\273\215a\217G\334\355\026\246\373\303\236s\262w\327\017v\014\316\376\373y\300\217\n7\351\300\307\261\t\265\313\254\352Xx\363\305\216<\327\342\211\252\242\333Wt`\213\007\375\320~\200\005L\026\2145\257%?\3738\230bz\264\340\263\262\014\033\256#|\013\026G|\274\225\232G\010\233B\227H*\240\250\036\353h\014\303\033\375\t\020\325\356\3241\237\016\004\"\201E\2005\321""\222\345\354\021\255j\342q\223\344\334\243\270\025\n|\262>\020\377\223N>W\271\247\216\244\032?\2316\256\316\325\305\t6YBh\311\244\211\047n\316\022=\352\342\301p\344\002%\021\212&\236e\224\230\371\314\366O\3426\356\375\350Nc2\021\212a\275\264\253\215\354-\226_l]l\364\026\177\002\214\335-\327\371\177,>\312\364J]\0001\207\237\324\276\252\256\302,l\021\207J\362\t\2510\342&$\321\232*z\333i#\034M\310V_%4\037\227\377\t0v\257\334\340 \351-\236-\336+n\227OU\356U6\252\323\3258\306-\202\210\304\277\265\007\357\203\371\310u\03116\220|\001\304\346I\245\0217\211\210\026[Q\206\047\3174\005\335\221J\243\343\2126\365\023\312\372K=\237\016e?\227\247\353Q\366#\334\340)\235,_\256x\252\237W\345\3526\363N\303\262\310\277\336\t\312\016h:\334\364)\306\353\211\237\236\245\245Q\024\036D\277\265\270\261\232\334\370$CX\236\200\240h8\273Q\352\375t8\273_\226?A\350\003\351O\342\007CI\356\"#\003-\222:\262\230\213v\311\"\346\341\343\343\354\227\362z=\316,>4\003\274\014\326J\376\301\207uu\375\255\372\226\257\225b\274\231\3701g\313O\034\213\356\007Q\331$\021\214\202\354i\255\324\221\305\274\230\313\366\206\257J|\222P\212\216O\024HA\302\275\256\2353\245\225\334\276d\246\241\025SG\030m\265lt*~\212\320\211\236O\0248\321*\236\237D\376V{S\005\357\345\247\2100\350\375D\361\005\255b\"I\001h\025\023)\270I?>\336~k\014\324\261\370\234\01606X@\371\311Z\302w\272i\021\025mI\342\031\273\264\210\212\212@\033A\377\244\017\210\247\223\220o\361\225\275\341+6\207\370\256P{v\367i\214\317\016\251!`X \255\222\315T\377^d\023k\370~?p\324\226QD\306\250\346\260\032\346\326\177\262i\353\237Zlb\252\330/$mY\330\327\361c[3\352\014\267#\223cY\377\310_\023\273\367~!\271\325\030\350\334\350\346\356@w\377\254:\313\215Dd\373\320\277\201fr7\037\006\222\266\214\315=\370\241\2549u\216;\333\315\266\005\251\265\245x\377_\247\356\335\373\313\324\323\370\025\252\047\354\363\314@(V\332\202\327\326Za\334\377\307y]{\177\246X\306\340\237\247\354\370\017\240\032+\201|\304\326Z+\333/XL\277\252\373pX\243\202\265\316By@\224\343*\274\225\324\253\177""\265\253\211\356s \300\366R\374\314p\001\3539\010\\\373\376\252\273\211t\370)--\370\334\276?\240m\"\000\322\272\003Gt\234\256\365\227\253Mf\372#\374\222A\273\243~\344H;\272o\345H\373\376R\316\001\311\326\304\267\217\376\364m\353\257\277\233pv\343\020K\373\355\372\003\340\316\252g\177*\272\212c<\000\267\321\213\327K\354\207\007)\324\273[DS\270\245.\377\262\356\203\326,\216\3510]\340\216\"\3231b\347\324s\030Y\271R\222\255\275F\022\006\250?f\047/6\021TDS\016\001.\032\n\327\353>\325\373G\241\243\256\037\307zT\311~>.q\264P\265\334\335l\341\345\327\215=\rB\302\307\333\010\274\2373\310\333\377\214B\363\035i\355\200\325\326\371\325{\201U/\222\264>1>\244\206\270\373\235\177\rZ\340\047M\247cS\351\204}\271\275\351\367\255g\330\256 \020\343\370gW\005.1\334\376\334i\347\223\001\326\363$\311\304kN\223\210e\350\254\325\3048\330\261\344\326\314\372\335q6\331\374\233\004\326\013\204iM:\366}\270\255\016\212\332\327\241J&\335\355\330\201nu\356\312\276\2164\331\013\323G\262\031\246%\255\203\026\274\237\243\304L\344x\354\0007a\200\300\207\366{\212\204\211\027\036\373>\307&\014\024fZ\273\347\251\3146\234}q\374P7a\305\300\360\367y\030\206\020\314\362\2117\225j\013\244(N\210\301\240\013\026\006\302c\007\273\211q\201\033\337\365he\321\327%\006r>\2660 \036\377v\272&&\005n\252\327c\317E1I\334\264\371\304\302\216w\374pc\340\304H\251\257\374#\263\250\257T\027k\216\232\237\331A@\234\321\267\213\211r\224\030i\371\324\326\030\337\360\251w\310\266\374\324\271\276%\2631\306\340\370\341\306\000\202\245\322Xy\230\351~""\2355[\355\n.4\334i\240{\014\304\315\275\342\036\322\347\266F?\377\377\211}\274\355\177\307F\360\265\377\337\331\271\333\352[\343\242mBpz\377\337\331\253\333\376\201,\202\367\371\370;\200\256\345k\345\316\212\2159\202\306j\303\265\030[\367\321;\305\354Z\242D(\nXb`\351\242\255\321\005<\364\221\335\347\334ql>p\335\234\027\316\306\026\016b\267\334\324U\267)\007\246\223.T\020V\210 IN\026W\r1\274O\014!\242\320\004\212Q\263\334\324E\2410\264g\227\216\277\327O\346\304Y\241}\261\217\276\024O\307\337+\230(\216%L\226\264\243\177\337b\362\3261\202\237\237\0309\341\307\304\177b\002\223\211\023\223\302\027|v~\317\277-\376\306v\364\376zl\304\307v\371\262\037:B\256\247\271V\005K\007\240\237k\325:\027n\265\223_\014\t\021\303\3467m\226}e\273q\245\335\256\257\363\367A\221jH~\301}\264z\362+t\261\241\362g\350\256\361\300o\005\031\223\207\200\036\343\001\270\366/\337\024JI\376\013\304\022/\360\315\243\022/\344\362R>\244]\311\345\207\363\261B//l\002\356\26301\\\254\250~u\225mv\275V\356(\263w\323~\313\237\212.\354\320$\303}\327\345\302\317\305\256\222TzR\351\250\364\340fJ\334\206<\010\022X\367\271\374XA\332=7P\032\305-\304\037\272\373J_\224\326\313\035:\214\372\353\356\251\327\207\253\275\377}\376\331I\334\024\335\331\245v}\007\017v\235\317\317\024n\025\327\341U]\000\313\377\n\233E\005f\3239\355\033:\335\337\300pn\242\016\n\034\031\304\260\213\245\023\260\266\210\227\267\201\375\\g;\232\273\2729>\020\362\t\334?\214\333\244=\352%`\347\300\017\265\253\010\303\327\371+\371\004\233\363\235\314\200\303\024R6\006\235\305\023\2404\261\375\242\200{\266]\265\373\" \014w`w\241\006\314v\241\202~6\375\001^h\207\233\026\2122#\311\356\363\371yx\342\245\206\001\376) \r\tc\205q\350\346)\276\321\372\324\316\375\374E\365\022\206\272\262\215\334\247\201\010\324o\321g\214\305\017\004\3232\214\375)4O\235&\032a[\304w\273{v\3179\001\312\047\240\262H\310i\010\331\037\240\327\217\362\253 \250\366p\004\340\324bu@\252EGQ\302\216\237\336\t\024\036\340\316XVP\273~\000\375\007\215\330p_\240\340\302\227\320\210\341""\236]$\225M\304\"\3537$(\t\367\300\223\247q\223\365)\030\250.TE\336\000_\354B\005\020z\310n\002\246\310o\272T\370_\251\003\246\3424\026{\362\047\362\263\200Go\361<\020\\/<\335}Q\275\010\214\036\370\345BE\336\355\376\276\020\006.\333\273\333\375u\376^~]\275\324W\262#-\\*t\250\337\334To\216\261\355\375\200\345\247p\327 `\030\332<\237\227\361|uGIj\336\302]\300\271\247r\262\332cj\341|\376\t0\361\037\220*\350%\327\213\331\222\213C\315\312\375\245\313e\332I\334\370J\027\220\333\225r\274\002\024\370\003\356\010\207\311\322}\236mK\207\265\243\364\027\254\203x\252\000\021D\n(Vk\245\037\221A\343\365_\347g\047{\010\331\352\251\037\n\313Hw\335\371/\341-?\027\277B\320\220\036O\203 \354\372@\331\231R\257\360\\\327\216\037\321t\252|\037\247%Z\016\246\013\257J=\352\215\337+\022\265\231\377\007\346w\022\211N\243G\323\363\354+\207\246\331\202\034\345t!\254\366\376R^\257t4\302\211\330@\304]f\207(02\306]\352@\264\336\302\345\242\004$\t\\\244\361\261\013y\371\003\337\343\317\047\326]Xd\001c\227\n\237\263-\3768\336\352E\020Y\312\047`B\234\373\206\275*\\\352)\335d\353(\260\027 \250\335\236\363\300\320N\000I\023\005\\)\312\352\365\007,<\247C\303\376\237\360\320\365\362\005\004\036\047\0214\207\233\305\261M\376)\2560;\256\001\310\200\315\360L\276\0278\352Y\004\0057\244\377S\\\000>\221\003T\235\303\247\316]\204\265\344l\341.\003\361\222\023\047\020\014\320\245\313\205{\352\377\020=]Ui\367\273^\206\nd\213\227\261\010J\322\007vp\202\235wu\235\000C\327\340\275\222>9\0009_~v\362\253\235X\276\257\320W\274\n\263F?\333\201\261\333\263\300\235p\201$D~\211<\023\271\373\317x2C}\305\377\020kb%p0^Q?\314\304\316q\230\317\024\224\342\357\200\362S\014\303\324R\027=\362\241\223\t\3262\316\t|\316\275\363\256\340\003:B\336,\260Tm\340\0373\226\007/\336\310\317b\014\323O0r\367q\306\361\357 \374\004\343\332s1\277\241~\377K9\003\232\321\347U\230\356\240\341\200\312\021\302\241\372Z\375\032=h\000\007~\271K\237 g\214\t\002\350\311!\245\201(\006\342\027vI\201\256\242\261\267\t\352hJ\315\340x\177kL)\004\370\373\242""\254\r\377\317L\332\000\006\377\036:\233\201\271\213v\315\351\0178\307\021\362\253x\032Kez\367\006\212\2437\206`\316\313\273\247\235\305/8\2777\275\266\311\333\\\215or\001\267\233\306\371|\027\340\334(\204`\004\317\027\243\245\213\345\016S\207?t^.\014\025\236\226\316\227^Uz*7\253\323\200\257\357\234\3053%\245\374[E\251\272pA\035*\206`1|\n\327\177do\276\322\007\305\2312-\261Yv\366G\047\236\241\252/\276\374L\017G\336S\370\022X\326=:\200\205\255b\277\024\372\031\376\031\353}\r\263\013\211\362\334\371\017|\255\351P{\037@;\327`\242]\274\264{\356[\365\333\321\352:N\005\\\024/}\007\314\021\231\352\271o\371K>\030\354\014\346\325#\230?\271b\240\014\204s\035\3206\001\214\212ap\335\362\3427\325\336\017]\310\212\357qn\200\263\351\356\216\274\363\017 \312\316 \354\"a\234\211L\260L \312\001\212\323xv\311\017\205\254\372\023\262\276n~\300\304\347\205h\361\034\243M\\)\303\310#\317\252g%\244\313\257\031~\272\221\034z\364\245\265\200k\250yMdB\n_6\375x$\005_\346\244\302\023X\325.3\236\n\372C/\022/`\263\356\276\026\274\370\003?e\003\006|\310D\341\017\311\364\t\322\226\213\013+Y\276\263\243\033\246\3075f\207\207\265\020\207\356O`\262\347p\341\271^\372\016pDY\336+\034\257/H\240bD\371g\361k\034\330\363\352\371\2538\"\220\242\241\022\210t\375C\367\005&\032t\354\336\276_\216\302\000\017\326l\265\336\335\007\017w\357\334+{\241\314\017\337\371w2\337\213\224\331\205\374T\307\276&\301\361\256\250\016\340\251&\216\217\353\253\035E\310\263x\002|\241\227\037\361\362\240\360\250\270\204$\307\030\362\315\222\013\245Fm1\276\300\305#m\235\022q\373\377\000BN\233\222"; - PyObject *data = __Pyx_DecompressString(cstring, 16440, 1); + #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (24937 bytes) */ +static const char cstring[] = "x\332\335}\313_[\267\362\370\005\314\367\322&m\2236I\323\307\3555m^4\t\ri\232\276\037\006\233\340\006l\260\215!\257R\003\006\334\200\r\266IB\232\266w\311\322K/\275\364\322K/Y\262\230\n\215F\007/B\212\331R\271\230\231+\007s\371r\266\270\220\231\313\366\007\243\020*\t<\010\314\317g\347\203\345B\260\224[Y]\316-l\004\327K\271\374\"D\315\347\036\345\346\3273\313\022Wpa=?W\316\025\362\245\340\354Fp\265X\200HL\227\021\210\326\363\271\205\034\340\321\271\004\027\n\305`)[.C\232\317\346\n\371r\261\260\274,\361\256\256\227\203\363\231r\346\212\212\327\250\005\252\325L1\263\222\0054@<\024\244\230-\027s\331G\230\254\230-\255/\227KP\000\215#\010\250K\271R\271\024,,\0007~\375u>7W\376\365W\010\t\\\277\376\232__Y\335\000@\246X\314l\224\202\227\200*L\266\n\2503\245\3760\240\030\306\354\360\223\"\302\013\313\231\"\203\367]\t\026\362Y\201M\340\020\005\313f\346\2260\307\302j6\177%\270\224[\\\272\022\\.<\276\022\234[.\224\262\202\356G\205\345\365\025`\266\250\252\271L>8\233\305\362\006\037\347\312K\002[yI\000f\004Cf$}\227\372\202P\364\245\302|\177pj)\007y<\314n\000WE\344\245R\037x\262P=\010)IF\226\202\217\227\262\222os\031\311`\304\253\030\212mD1\037\276\2225\213\td\246y(a\t\353\022\032Ny\243\377u\323\266\346\2263\245Rp1[\306|r\345\\f9\367\024\020 \361\300?\336 \202\210F\224\271\260\212a\240c\003\202\324\300L\341\202\205\331\337\262se\321\376d\373\201\314\005\265@]\3411\222\266Z\314\255d\212\033V[\003n\013D\252\251P\251\375[\3067\262\004W\341?;\347\317R\241\253\n\343U\335\274\020\345\325B~\331\316\r\277\274*qx\353\306\016\364Y\211\324\347\020\265X\272t\317Nv\345A\360\236\310P\304\315\000\325\205\342\314\303\307\030x\320\047\211\r\027\346\240\235\344\313\031\301Jl\\->0\215(\233\227]\020:\033\325\247\3004\254+=_*g\362\320\007\021Y\261\260\010\350V\000\375\234\250\230G\271\014\265\200\205\302\025\326\016 3w\007""\244\246\221\313\226\372\rk\257\022\273\257B\005\254\027\363v\007\346\034\304l\n\353eQa\252\221\211q\n\007.\331\316\241\371b3\317\346K\353\200T\325\243h\347\231\345\307\330h\036A\323\233\047\204\305\365<\347\357\203\276\340\047\242\341\227<\325\245\232\010P\210\221\313\013\375D\n\341R\334\212\022\263\366Qq,OV\373\273g\252\377;\017\003Q\360R\366\311*t\007\350U\301Y\030sp8\201\236W.\0247\256\0043\345\340r6S*\007M\047[\310\344\226U\017\314\026\213P\265s\205\371l0\230\317fq\000\277\224\301/\304\210\014\330\200\365\031\034\344\203\261L\014\352\030\310\332\240\201\027`\371BY\345\324w\376\322|\256\264\272\234\331\020m\240\017\350:\177i\021f\220\325>h\342\347K\347K\375\231\371G\310\036\360AQf\212\231\374b\366\"b\231\317\256\026\263s\031\244\037\013\275\224A\304\301\354\302\002\224\351\233\340\245K\347K}\2270[\030g\221\243}}}\257_\t^\t.B\346\375\237\177\023\374\376\307P\020\032D\016\232\000\024|\000\375\320\366W\004\222\322J\241P^\202\242\204\302\323\t\205y\035\353iv9k}\225\303a\377q\376[\360\320\030R\242\246\235\207\356\r\037\367\007\2230\342^\004\337E\321)\200A\375!H7\047;[D\260\361R*4\023\032\035\215\017\315D\022\211\276\301\314|0.\306)\0211\030\n\317\304\007\177\216\014\245D\314\270\0369n\241\037\201\322\273\350\222\3239~\006\225\003\223\273\231o\020A46>\231\022\010\240\226 \024MEa\372\271\033\351\023\237\225\276\201\016\274\276\260\220\233\313A\231\203#\262]\323\207\311\311\341\341\350P4\022K\315\214D\223\251x\342\016|\204\325\003\2541\225\037\215\245\"\211Xh\024\353?\236\200\024b\310\t\216@%@\311d\2124d\031\236\031\t\305\302\243""\021\235b\0242\013\2466Vy\242Q\310i&ug\334\2443\255F\363\317\376@4!Q\013\251h<\346\363\325Hay>[\364\371f$>\032\216$Z\177\341\241\315\376\214\323h\246E\010\257K\361\355vf}a\005j94\237\201\211\375Q\326Um\243\271\331\"N\326Xq\356J\003\371@T\231U]c\221d\250\025\252\261\341(\310\252\356.\3768\2033B9W\024\202%H\035W!\313\340P\177\254\340\372\036O\244\"\341>\214\317\346\013\353\213Kj\034D\371\027e9\335\336[7 \232\010\023\331\271\002f\016\344~\003#1\210W0b\254\024`\336\232U\275\270\014x3\213\231\\\276\337\312\020fm\230\230a\256\020\223~\351\233\240\236\005 QV\216\333CB\246\227\203\354rn\026r)ga\346\006\312@\270\315\212\301=\037\034\217\214_\275\361\325\r\232qp\300\202\031g}V\010nY1\233\314\256\347\226A@\010\226\241\025\240\320\274\020\334(\254\213\371\002\213\273\212\002\236\365\001\014\234y!\240\342\010zQ\014Kb\224\234\201\317\201\325\027\203\363P\017s\242\356\340\353\341\314r)\333\037_\007\tj\341j\002\047\205`\004\010\211\302b\342\211\340]\034\372l|x&\021\212\335\212\314Dba`f82\335\307\276H\2263\305r\253o\222\251P\"e\276\332m\204\200\357Z\014\021\364!IN8\031B\263\006\311\007e\332,\217\314g\0273X:\016]-\224r^\350\323l\261@\020\261\010\233\023CE\tD\254\207\006\254\204\341\340\245<\014y\330P\372\254\310G\330\323\304\022\301\000W3\345\245\2530\257\342\222,_&x\tD\r\020\372\204\210MB\277\214)}\243\373;z\325\264S(,\367AK\035\032I$\243\007\236;\341[\232;\301g\346\316$.\021\335}7\t\035&\277\010R\211\246\341\336\325\353\327\256\365\367_\035\270v\355\001Ly4\023^\t\336CH\177\277\000\336\"y^G^\003 M\223\220\022\222\321\327:\241\2345!\016\"0\003\201Z\002\373R@\271\032[a \211?\316\007\303\331\205\014\310\222.bS\205Bp\005\305\222\326\3750U\314A\353\\\207\311\330\375m1\267\272\353\314K\tne\201\205\324<_8[O\346\037\346\241\036\344t\304\002\242iO\306n\307\342S1!\232\244q`\306\021\021\004\257\022Nv\031\\sBm-\347Vreo,L\317B# \242\247\262\260H\305\342\361\354\247r8Q\000\313\222B\346\362\304\337\205\226~u4\263\270K\t\356q\211""\374Af~~\006\006\017\250\327B\001\304f(\216\360\255\257\316f\027s\363O\202\371\331\354r\026\231>\013\225\267*\n0\013\211\205oN\212C\253\320\221\200k\347\241Z\364\200\274$\247\343\325\002\254z\260\037\300 \204\355UM\nPJ1\033]\021\003\342|!+\345\334\271b\241$\324$\305\302\\\026|\263(\227@2\220z\261Cd\363\370\273\000\222\366\303 \376\316/\316-e\304D\260\224\301U=8\300b\370\025\353z(\047t\250lpm=3\017c2\254X\244L-\365\002\330\327\036\027\013\300\230\371\034\024\257\204\313!;~Y\364\022\271\266\231\317\201\234\\DvZ\tp\234V\362\371\274h72ve\035\304\014\030u2A\241\314\240\324B\221!\005E\261\316\223\322c\022:x\266tE\3408_b\353!3\303\257\344J%\271j^[\027\223\253\320\244<\314n\240\366f\021%\215G\2621!\251\330g\261wB\036\340\353\313\225$\317\346\037\006\347\203\277\255d\346\346\203\370S\312-\342P\207^\234RW2+\031`\350\n\n\216\000|\002\016V=\370\300\201\001\211\246\335o\214.\202J\005\305\317\256\254\2267DI\373g\346`B\355_\201n\234#\335\213\\\004A\335\303H\004\323\273\235l\035\326\270K\236\024\253\313\353\245G9(r\036]hI\313A*%\260 +\326L\350)A5?\014\342\357|i%\007+\220\234,Q\t\325\022\242%\010\037\304\227\241g\317\366\323\214\217u,\001\202\022\351-\024\241Ke\347Q\023%\001\262\226\310/\352I\372K\033\344)/\025\345\332M\006a\231\211\253j\031\371\331\214R\341\365\257>\311\021h\256\260\262R\310[\000\\&ZA\331g\004@\rx\026\227K\356\371\340\242\030(f\261\347\254\344\346\241\233\t\257\030\\\320\027\032\n\r\r\r\202\354\233T\356LRd\340\n\366c\317\301\265\362\314BnyYG\212\221)4\024O\342\237\3762\336\352+\235\302?>\034\n\343?\225J\373\334\311\342\311!\361\243\023\032\277;i\002\376\351d\211\026\211\246q1\212\177:\345t\313\244&I\213\024:\201\177\374\350h(\036\212\253Dq\377D\343q\370\247\322\214\267H\224\210\307c\342\007\331A\256\372\206\007}>\264\023\356\222J\326o2\032\303?\365\215\361\272>I\205b\370\247\322\031\257;]\002\376\351T-X\235\276\025\216\244\345\257Jj\007<\251\307\023\321\241\210r\315\027v\320\365\315\362\362\220\230x\222R\014)\r\2126=h7\373\301\326}`\320\352\001\203\221T\010\377""\324W\306\353\372&>\016\377T*\355s%*\314o\204\013\277\345\320\035\2059\007\335\344\022\214w\350Ig\213\00284\024\205\177\364\275\361qLC\341\321\353C\211\370TR{\324\007\256\260\347\263\317\007GCC\267\325\267V\310 \360\002\275X`\225\025\rG\214\317\372\232\001\274_\216Fc\221d*\021\275\035\341!\013\203\007\350\305\002\253\007E\000y\255\3579\304\3731\256R\240\251\047!\335\210;l\241\361\001{qM\215DS\221$\254\315\243\221D\322\003\260\260\371\301=\350B\330\364\342\261Hx04x\307\0356\310\374\300^\\\341t(6\024\031\034\215Ce\362\240\205\311\013\365 \032\214\214\246P\373`y\r\002\027\304\373q\"\022\272\035\232\n\335\261\375\326\347.\220\347\373\241\3218\324\301\255\261Pbr0~w\322\0131\270\374#\274\030\343P\340\320(\262.9\005\243\266\017\310\302\351\037\343\203t\022\025R\241T*$\270\315\3026:/\330\203+\034J\334\206\262L\206\207\342\351H\302\0030\330|\341^t\361\237\243\344`\213\266\274\026&\016\361\305\301S\267L\231\010\335\212\307\206G\357\250l\355\260\205\302\007\354\301\025\211\335\232\034\035\206*\265\375\006\207\033\344\375>\035\211A\264Ur\027\304\302\345\033\321\n#\307\346\213i7,\267B\3438>\341\237\030\025|@\006_\213\030/\322D(\r\243&\216\n\222\363\034`!\364\203{\320\215\204\306\306D\343\223\036\3639\013\373|\026\273%\372`\214\005\354\317]0\037\024\211\320X\324x\022\361d\222\207lln`\013t\356OZ\246\216\336\032\231\002\376X^\353S\016\361\371\370\366\355\320\355\210\361\215\305\303,`\243r\301Z!\363|\3222}|\014\370:\036\275\025\211\307\\A\013\207\027\352A\004\r-\226\212\016\205F?WR\202\013b\320\371Gx1\306b\0211*J\217\365\275\035\366\371\014F\265T$\254\233\"\007\330h|\340\036t\267\243C\267\345XB\276\301;8\204\010\021\300\0051\250\375#Z\341\366|\327*=\314\273\341Hb0\236J\305\307\\A\203\303\007\352E\024\217\335\032\215\334\272\025\tS\257\347\000\013\231\037\334\037\035H_\226\327\205\302@<\037[s\264wr~\321\254<\026J\r\215\000\307F\343S\366\365nr\312X<\341\232+\\\020\013\223oD+\214\034\233/\246\335\260\304U\337\211\273\372N|\327\2763\016R\346\220l\355\312k>uA""<\037\303\302\352vr$4%Gq+dPx\201>X\222\221a\020\231>\037\213\000\347\303I\037\220\215\3177\306\2034\031\301\335\260TT\266\304\244\027bP\372Gx1\216\304\343)SOv\320\302\345\205\372!J\244\250\363h?C\301@\336\357\307a8\204KN\336\216\202\030d\373\355\2179\310\373\375Hb2\231\222}A\373\255\357] \357\367\t5\"\220\317\3726\261\353\0100\031\213NLF>OD\245\030o\007\r\016\037\250\027\221\020\001\241\214z\321\357\202X\350|#<\030\247)\225\3259\335 \203\263E\214\013i$:\212\177\3523\343u\245\033\033\206\177*\225\366\271\023\305\341\337$\376\351\224\361\311VIM\022\377\024\361\361q\\\003KG%f!\367\007\211DdT\376\352\344V\300\235:\t\377F\360O\047N\216\264Jj\222\370\247\230\034KN\216\311_\225\324\016\270R\247\243\360O\245K\267\350B\266*\014\215\013\3020\322N\216\246\302\221\261\020\376\321G\226\227\177\037\216&C\2030R\204\243i\370\247RG\375\325ua\020>G\242B;!\\\225\234\007\375\277\221\032\267\360x<\254\025\243\341\026*\322\360\264\326\322\266P\327jc\320p\241\034\031\216\302?Jf|\374\003(\276\341@+^D\022\221\004L\236\032W\213Q\013\341\2420\272K\267\350\333\221\351q\370\247\322L\373\217a\221\265\365\314\362\360h<\236\020?\224\306\366\363\364\303\320 \207\215\216x\270\225\272x8\021\032\202I\200\034\225\232\205|?\220E\033\316\024\325\346\255r\373gf\320\304nf\306\rX\360I\270\224\235{8SXU\366\177b\363\312\212_\314\226w\211ES\000\226\215L&\366\207gJb;M\332GZI\320\202l\331\n\343\246+\303Q*\363\360z>\207\326z\026L\233\r.,g\026\r\356E\227\025\243O\004\047\006\341\306`S\203\321\272S\007\226\013\205\207\263\231\271\207\032 \215\022]Y\023\220\243\047\363E\035.\256\033\316{\254\037Y\214o)J-JQb\245\030\t\215\250>3\342\337y\000,Z\316\310XhD\367\257\221\026=m$5\023\036\032\207\216\024\017[^\365\221\007\342\367\361H(\0311>\366\251\005\360|\211\221\361\204\366\230\357X\270\305gT\302\324L\022$=r\014\206d+\361O\305\251\257S\211H\014\327\265\021\333o\360\270A\036d""\"\301X<\034\261\375\256\357-\220\353\373\334\342\322h\341\261\260\312C3\344\350X4\2525&\321\026\272\023\333\240\217\354\371n\207\306B\370G\351-/\377\3646\314\315*\315P\213\024\2223\267\303?\303?\225V\373\\\211\001.R#\203B0m\337\322\236\231\020.\202]AB\342\017\345\250M\032a~8\024\031O\371\200<\010\3351\255\220&G\343\343\021W\320\203\314\206\266D\344\376\306/ulTM\307\243\376\363\362h\374\326\3005\361\243\322Y~W\322\\>;\006\365;\024\306\277\310t\212\034J\314C\374S\025\047\252\014\003\303\321ir\254\257M\310\3735\306\351\257\255oZ~\240R\313\377\365\027-\232\247\210\240/\022\267#\251\341\250r\365\227,\350\376:\231\214\212\037\235\332\370\335I\323\343\370\247\023\246\307[\244\003\006M\013#;\345\352OX\320\363\231I\326\"\205N\320*\036\345Gr\344$\235+gWff\014H\316\314c\260\260\304\355Y\345*\274<\350\302\016\2145\230\206\177\024m|\032m]\2572n\214\034\366\201\177m\300\302x\\\257\273\306[\254\300\306\323\321q\315\324\361\026\354\035O\307\341\237N\324\nS\n\376\351D\3765?!4L\362\227\022\260\000O\235\200!Y\217a\211\026\243Y\">\004\377\306\361O\2454^oR\374\033\270v\215\034\363\205\025\362~d%k\225\306$\361O\221\214&\364|\221h1s$\322\321\204\256\202D\272U\242\370(\376\351dq\377U\236h\3348\232\047\262\031a\262\222\014%\340\037\314\321\362\227>b\001\216!\251Ub\311\026\31214\253\210\306F\360O\2454^OR\223\304?\005L\251\272\216\223-j;9\026Mj\3215\331B\210E\270\030?\223\023\211\024\376\251\364\306\353\372 \025\016G\322\362W\245\265\003\356\324\361\241\021""\3613,\177\365\047V\300\347\223a\"\212\014\304\225k\177\335\252e\350H\203\301\376\254\3657\364\301\344 \374S_h\237+\275\255\240j\245\252JN\302\300&\326\035\306\247?q\001Z}I4\211\345}r)3_x\214\006S\322\047\354\250\244WYR\231\220\025Y\242iI\316\002\214.\002Y4Y\020N\017EX\264\020\204\321A0\233\006c\213\356\0010Z,\260E\217\013\312i\262\"-\272,(\243\315\202\333\364\221\255;\0171\312\024\314\"\313\006q\232T\214E""\220\0021j\024\320&\305\266\227\367\0011\242X\204E\231\007\316\311c\321\026\215\014\316\010e16\265\314\036\337\017\306\350\3451\026\301\336\010N1\217\267H\346\021\214f\036e\021\315\354\376}@6\311<\302P\354\2053\202y\264\241\227\303mry\214M\255u\266\300\013a\264\332p\213T7\230Sj\307Z\204\332`F\247\035a\221\251N0\360\220M\236\206\031\322\030\210\221\245c\014I\032d\223\243\2016)\3524\204+\310\210\321@\213\032\006\343\344\350(\213\036\rc\004i\250E\221\353L\205/\320\246\316\035eh\364\213a\224\272\023\030z\33516\325\3568\233v\327\331\r\177(\243\336\035g\221\357\027\305\351w\247\260\n\340\216b%pG\262\"X\347E|@\234x;\302\246\334\rw\221mG\3334\333pN\260\035cQ\313\317\243\370\301lz]1\206`\237\010F\261+\336\220\354\212\260ivE\331D\307\177\216\032\237\270\300\202\205\030\311\nf\021k\2038\231*\306\"P\201\030i\n\350\"\312\235\261+S\377\014]\231y2b\231\330gp|@\214\000\026aQ\342\201s\222X\264E\033\2033\"Y\214E\255>\355\343\n\332T\032\240\241\220\303\030u&\312Pf`6U\006jS\304\317\014\371\002\031u\256(\213F\237\030N\251+\201E\257+\206Q\355\212\363\322\356\241\273\005\315\376\364\356J\253?\235\255ht\323\347>\365\344\017\265)\365\304\031r}\243\030\315\236\024\206pO\224M\275\047\322.\002;g\345\007c\344\363\030\213xo\004\047\235\307[\204\363\010F6\217\262\210\226Ghl\277M$A\014q\026\200\021EpC\014\001l\"\010\3042Wg\303\334aN\204\206\332\2040\240\213\030\035g\023\244\201\234(\rf\204\341\2311\333/\216\234y\000\234L\003\266\351\344P\027\241&\322\246\324@9\251\006\356\241\325K\211\207\210V\371{\262\366\311\225eH\247\342x\210\021\240`\026\t6\210\023\241b,2\024\210\021\242\200\214\024qD\216\005\306\342aw\230\323\246\2416u\014\350\242O\307\331\024j \247Q\203\275T\372P\341%\241e\376\336\314\375rf\331Zg\377\274\020F\215\r\267Hr\2039]v\254E\234\rf\024\332\021\026\231\2563\205\276@\233Xw\224\241\327/\206\221\354N`\250v\307\330\204\273\343l\332\305\231,\333\317(\225\020\213@\003\340tI\270E\216\0040*$\210en\237\202\364\203qbX\214M\224\047\302E\034\213\267\211d\021\234X\026e\021M\347$Y@\035\266\364\005""\332epG\231B\370\305\260R\270\023\230b\270c\354r\270\343\274\005\361!\317KVKr\274d\370eogk\237\021\365Blj\030\334\220\344\0013\272X\254!\216\201m\nY\204M&;}\352\007c\244\362\030\213Xo\004\047\227\307[\004\363\010F2\217r\023\035\215Ex\310C(\302\\$*\220\2278\214q\221\205 \017A\332\030\\\302\270\376\305O\361\342\243qi\255j\361\321\261\370*W\374\264*\326)\\\017\200\023d\3006M\034\352\"\313D\332\224\031(\047\316\3009}F\233\247\016\375r\272\\\272<\033\342\246\307\245\311S\020\027\035n=\236\353\204\260/\220\321\344\212\262h\363\211\3414\272\022X\264\272b\030\315\2568/\355\036\272[\320\354O\357\256\264\372\323\331\212F7}qk\216\215{\346\330\270{\216\215\267\230c\343\35696\356\235c\343\2369V\235\234\346!\233\000\r3$0\020#B\307\03024\310&D\003-R\254\023\330\036\200M\220\r64\271\241\214,;\322PfCm\342l8\243\217\237\350\366\207rJ]q6\271>Q.\232])l\302]Q\234zW\244U\004\327\tr_\240]\000w\224\241\337/\206\221\357N`\250w\307\330\304\273\343l\332\255\023\353^\010\243\332\206[$\273\301\234^;\326\"\326\0063J\355\010N\246<\025\357\n\272\010$ \243\316\202\271I\243(F\027\301\\D\021\324\246\310\234\261\367\000\030U\026\330\242\313\005\345\224Y\221\026m\026\224Qg\301m\372\330\271}?\030\243\222\307X\204z#8\255<\336\"\227G0\212y\024#\332\272\037\300\007\304I\266#l\212\335p\027\301v\264M\257\r\347\344\3321\026\265\362>\002\333o\323G\020C\230\005`\024\021\334\220B\000\233\006\002\261\314\351>\003W\220\223\240\2006\0256\314E\210\212\262iQ0N\216\202\332\024\251\033\022\\AF\221\006Z\0241\030\247HGY\024i\030\243HCm\212\022\226\\\245.a\260\251I\270\345(\033\302)I\270\345&\005aT$ll\342\303\036\233\370\260\261\211\017\3336\361a\313&^\234R\260\216\022\230\223\004\236\203\004\346\034\201}\214\300:E\020\031\216\312_\215\r\375\204Ny\r>\204\020B\364j\214\030\320(E\233\260\233\204\325\"\274\r\302j\017\2549\330\255AH\006\021!JF,!2b\304\307\210Gp\214\030\2211b\013\213\021KL\264\344\013#Rx\244\010#8\330\262\202%\036D\246\307\345\257\3016\255EJ\345\265\360Mk\001\022\275\006\343\264\021\027\305\2554\312\325he\210\020\233\200A-a\204\\\0064z\031\324\031\310\303\024\303\366A\212a\353\020\305\260\367\000\305\260uxb\230\035\234\030\266\017M\320\3556\306g\360SXea\005\255\\\010\2522\242\240\311\313\2768b\365\301\021\323\007G<}p\304\364\301\021\273\017\216X}\320\272+\206\207L\026\026Le\345\002YYZ1*k\013dH\260\200\234\024\274{\206\005\\\204\010\020\243CC\334d\210\010F\205\200\270\210\0200\213\006yS\215\355\267) \210!\300\002\260\374\tn\262\047\200\235\273})\216\204$\245\256G]xce\234\2644$j[\206D-\233\020\371\366\237\032\332\314\273_\020\300;\200\310\321\371""\211\000e\250\375&G\001\242,\205_\347y;du\363\333C\342\307`\3253\302m\367|p[\317\006\267\255\271\340\266\231\tn\207\177\226\277\006\033\370\025:\362Z\370\000\242\020\202\327`T\027\021\211\247\365\350.\036\333/o\032\362Bt\266n8\221\340\0076\344\270c\21147X\223\351\216\360\220\354C\216\276\321\310\037\272\333\027\336B\360(\277\202\230\024\236\302\230(\237\002\231Ho\241\275\312}3\233\206\271\362\345Y\372\346\3063r\347a\243\027\027{Y^;/\t0\271\2310\313O\202M\2162l\347)!\256\\\307,\257;\3271W\256c\376\271\216\271r\035\363\344:f\347j\347be\340\305m\241e\030\r2a\0169f\231@\216\031\263\3071\217\251\343\2301o\034\263M\032\307,3F\274\225\216\034\203\024\003\n\253\362[h\021\244\360\242\337 \306\220\302\034\223WT\304\354;*b\326%\0251\357-\0251\353\232\212\030\273""\247\"f_T\021\023\272\363\230\245;\217\031\335y\314\243;\217\031\335y\314\326\235\307,\335y|0-\1775J\364\023J\3455(\021B(\321\253Qb@\243\224OA\253\025\243\271=\217\005t~\026\210\262uAL\356V\004\021aA4-\026L\221d\335\302\307Cn*\004\214\223\241A\036:D\014\047D\200\334\224\010\240&eT\r\001\352\226?M\302(\033\000\354\240\225\365(\353\376*h\262\034\345\235\237n\0064>Wvc<\2731\337\354\306xvc\356\354L\257\032\027\373\014\343\326>\303\270\331g\030\367\3543\214\233}\206q{\237a\334\332g\030\027\215~\334j\364\343\246\321\217{\032\375\270i\364\343v\243\037\267\032\375x:.\177-\224\206\312\264\207\312\264\2412mS\231\266\251L\311_\013e\312\240LyP\246\014\312\224\215\322\214#By;R\300\307\241\225\266\326\002\221\272V^\233\250=:w\n\022\001V\310\320@@\"\203B\232\022\n+b\022b\341\221\260\204\305\204\221\026\023\036q1a\344\305\204-0&,\2111\021\037\222\277\343\344\030\324\030P\270\225\337B\216 \205\035\375\006=\206,\374\tr\006\256]3>;\033\02169\351 \313L@M~\"hg)\000v\256,\007\033\275\017n\0331\307j\243\2641Z\010\275\370,t\014\233A&\026\\\tk\271\2250\213\255\204g\251\2250\013\255\204\275\314JX\213\254\204\350\241\t\253\207&L\017Mxzh\302\364\320\204\335C\023i\033e|\224\034\013i|\324`\215\217z\320\306G\r\336\370\250\2158n6j\022Y\274\315<+\237\321\240\007\352\325\303\262\370\032\254\260C\222\267aj\217&\201\202D\204\0252d\020\220\010\241\220&\205\302\212\230\244e\350\2244\026NI\217iS\322\3304%mc\246\244e\305$/\363\302\2337\3111\2501\240p+\277\205\034A\n;\372\rz\014Y\370m\214\026B/>\013\035\303f\220\211\361$i\215\047I3\236$=\343I\322\214\047I{,\023\277\034\030z\027n\203xrP\376\032\344\340W\250\311k!\006\210B\013^\203\024\002\006\345\230\374\265P\216\031\224c\036""\224c\006\345\230\215r\314B\251\356Te\001+\003\r\322\3710\210\235\235\216\320\271j\210\2259\277\304\025A\3312\177\245\233`\205\225\325L97\233[\316\2257$\210\355ZG\363\345\354b\266\350\023\203\367\025K\360d\276T\306\035\352\361l1W\230G\330\322zy\276\360\030\013\222\372\\\374\350\242\202\227\212H>S4\000P\221\300\247\213\002~U\004yg\241\274\363U8\006k\310\014\240\332oa\016\231\001T\370\r\366\2205\200\332\227!Zw!z\257B\264nBd\027!\332\367 \246\244\201K\312\266pIY&.)\257\215K\3122rI1+\227\224m\346\202\353\225[\021\3551\330eP\3417!+\007\tTy\310\220\311E\206M>QY\004t\255\\\242V!t\300\316#j\025C\004\254\034\242\254 B\331\217\216\215~\332\302>\355E>m\341\236f\250\215\"\047\225\034\226\277\006oR\017\242\312kaM\352\341\023\275\006gr\330B\031\225\277\026\312\250A\031\365\240\214\032\224Q\033\245\031\025Sw\306\225NQy\rr\005P9\330a+\033\005Vy\251\260\311PAT\256\223\243)i\324#=:G\nR~V\310\344F@\312\213B:\047\n\253|\322BRK[\022T\332HPi\217\004\2256\022T\332\226\240\322\226\004\225\0263d\332\232\036\323fnL{&\306\264\231\025\323\366\224\230\266\346\303t<\221\022zM\3511\210eP\3416!\013\275\004\252\034d\310d\"\303:\237)q\304\000\035\223\307\2249R\240\375\026\376)s\204@\370\r\356)\353\310@zJ\364Rt,\314\246\217j\277\215\331\364P\341\2670[\375sJ\334\372W\"\352p\272\343Qr\036t}\203\035H\366\"Jm\371]I\307B""\206\274V\204\212\306-[\270\214\266\375<\251~a\320\365^\242\r\367{/\321\212\367y/\321\212m\365<\242\225D<\217\350\016C?\315X0\374\306\025\024\217&\206\022\211\320\035\234\330#\311\0312\377\022\240$\207\021\357\361\t\315\344\014\275B\n\221\343\241X8\004\000\030\\\206\023\241\261\210\206P\312\231\361\370h(\301\023H\210N\260\361\004\376\360q\236\231X\366I9\221]\230\231!\023\333T4\036\233\211\301G\220lfF\274N\tN>_(\303\020\204\3769\202q\306\267\340\367\314\334r\246T2\357^\251\367#\354\207#\300\217\204\240[\230C\007\221\242\213U$^o\364\257-\033\253|Ek\227z\243\352\232Y\311\344\362\230p%[\316H\3320P\230__\026\205[)\026f\262\371\262\370p\206\352\017\335\354ctV\213\331\325LQ@V\201\203\217\304\232\tC\370\340\250J\253\236\277P\017f\316\314\340\273\217*VT\377\314\014\264\222G\331bIp\016B\320*\320\325\017h\212\362\316K\325YI\264z`Mi&W\002\366\025\013\353\260\372\313\316\340{\227\353\253\210I\262\276\264>7\227\205\362\000@0p\035\326t3\271yw\330\225\240\010<\004\212\021\270hL\244\255\240\260\\\246\2601e&\200\3276\232\"|\355\246U\234\327p\232b\240t\326ZV\001\327iq:\263*V\247\010\316i\033I\014\025\245\302\021Z$\256\216\025\337\220\355b\231\214I\260\n(\332\003v\347Y\362\317\263DKb\340\367r\241\224\315\314,\345\026\2272P\r\2173388e(m\t\t\312,\313\337k\322\031\200\352.,\257\257d3PG\313\331b\006\373\214\355\307\002\201\200\260\350\206\225\360!\026\033\350N\264\222y\342\003\362|&\001\253@\346|\246\270\210\317\230\3127K3\245\271\\.S*o\254f3\245\215\374\\\256\320\257[X)S.\312\"e\036-J\317\354lv17\377d6W\236\335\200F{\035Z\263\344j\251\234\233{8\267\214\355\022\372W\271\230\231\313\242\021\375\034\n=\202]s\205\345\345\254\030*Js\310\211<\364\004L \374%\034\010\346\347\263\330\370U\355\211>\256\272\300|\2664W\314\255\342\347\363\271\322\352rfCt(\354\024\360\007|\315\227E1\263+\253\345\r(#\320\010\277\245\307\271\362R6\017\321\300\004\3004\007\255d\001\n;\017\243\000\226X\372e\311\320\377\320\362/\347Vre\364\230\244\024\231+j/\214Mb|\222\203\024uH\034\314D\377B.\013\017>S+<\310\037\341)\314""\376\226\225\251\314\353\270:\204%S\201\222\373\251\\\327\013\271\374a\334E\354\237\342\247\264$\252e)\273\274\212\315tI>0\272\234\315/\211\255\255\\\016Y\224[Y\205V1\223-\026\013Ehl\371\371\354\023$\325\316\316dee\332j\220\315IM\023\214R\242\036pl.=\314n\300\277\322\303\307\310\215\345\354By6S\0047\277X^\022#\262z\265\027\272\021\374\313\026%\273\241\t\347V\326W\300\221\234^\311\256\024V [\031\310\225 \253Erf\020\275\034\300WJ\213+\320Zr\253\313\271l1\217$\211FR^_\205\014a\n\233\235\317>\022?\363\322\277\276\232\207\321\376\t\360\006\361\330\305\2066#\303\302\247\047\036\031\222\217\005\203wuC\326caa\001\306\214B\276\230\3051=\213\203\001\376\241\342M\014M\266\344R\300\201Q#tMi%\223SA\276\237\207\215\t2\204\177\231b\001\032?\214?\312\277\276\n\276\331l\246\270\212|\023~\354\233\350Y_^V\300y\370[\310\254d\204S\242 4up\2272\242g\n\0376\022\341\201J\020\256(\004\016\003\253K\031\221\206*\327\370fP\326\201\340o\360\207\350\226\263\231y\250\020L+jr\026\212\014\376\225\314\234rD+\224\336Rn1\017ya@\320\0065-\177e\t\244G\345\260\222\233\207\266\254\360\345\362\362\227R\n\217I\231_/=\312\201/?\013c\037\216\013X]\313\004\\\025\234\324\217B[oA\333\317BS\005\223\2035\223\303\214a\216\237\207qd\275\210\211qP\047\307.,\206\031\265\010X\207aW% \006\225\340\243yr\221w\245\225\234\374\325|\201\261+\277H\265\"\374\262b4\256U\370\313\224D\327\027?\202t3\022\010_\t\3520[\226\023\000|6\007\334\310-ge\047\242\271j\265\260\014\375q\265\260*z\263\370\271&~\007\354\356\355\351\352\324\\\005\034~\241\261\024\313\033E|\007\017{/\026ZL~b\352\003)h\031\246\003\350\t8\222\203\274QD\2355\266n\234{q0Z\\\022\243B\26107 \311\002\337u\355#\017\314\310%\020tV28\227\344\025\375\331\345\005I\226\347\231n\367\353\334\256G\271\371[\334\020RS\215\224\016\260\030\262.\344\200$\375\224\351\303\334\352\214\230\006D5\322d\"\375\224\002\253\325\202?\264\340bbA\217\211\246H\234\017\227a\010Y\006_\261,9\214\323\332\034\320\270\204\3610C>Ri\213\327\305\014\\\022\213\243\322\206\224V\312\320Tg\373QX\001\267\274""\004Q\363X\226\334J6Y\206v\202\036\371\275\361\r\030\357u\343\375\274\\\230\021\003\034\222\210\177Jz\\\027\232\010\371+\3465\321 \005\255\222`\222j\037\311\331V\n=0\366\347\361\017\245.(\266\314\342\177\035;\201\177\377o}shsm\247\347D\245\2732\261s\374\215\235\023g\2343\227\353\003\365\320\316\361`\355X}`\247\347-\210\017\034s\216}X\rU\047\344G\033\225\256\n\305\274\366v\345\023\370\262\347L%\363\377\253\377\271\000\004\216;\307?\251}]\037\252?i\000C^\337<\277\271V\351\330\351y\267\362\264v\362\177\035\317\003o9o}R\033\000Vm\016`\360\355\312\225*|u\2722Q)\324&$\244\277\326! \316\231\213\2655\001r\336\276P\313\324\326\010z\265>AP\210\257\277\321\270\267ul{\200\342\372\353\031\212\273\336\350m(\350\327M\314\373\223s\177_\370W\367\361\315o+\231\n\340zc3U9SY\253v\240\367A\265\267\372U\355\233z\252q\022\203\223\225\213\325\267\253_\326>\256\205v\002om>\256d\253?\326?\206\352\016\274\351\274\371\337\352Z\255\247\016\237\235\204\357\213\325S\325;\265\207\215S\215ts\240\031\335z\340$\222Nr\306\231\371\325\371\265\340\024\236\376\375\257\177\375\3361\330\t\316`\347\010:#\235Qt\242\235?w\312r\347\252k\212\035\237|\333\034\370\373\322\341h\034k\236\334\023\225\367\234{\367\235\373K\316R\316\311=\001\2026:\302HW\270\3636:\267;\047\320\231\350L\240\223\350L\276Zb\201\322\007\316\003\240\3647\347\267\r \350iG\004\351\212t\216\2423j\250\004\047\331\231\362\022{\356\374!\352\336\371\340r\375z}\302M\351\273\325\316\352\271j\256\366{\343\\c\241\031j\336\331Zq\222)\047\0055\237q2\253\316\352\357@\315\263\216!$j\310\324:8?\003\223%\211\277a[\047\022\277k\206\016\301OI\344\203f\357\236\310\177\341P}\355J}\260\236qS{\026\222\335\250n""\324\2175n4\0365\047\232\271\255?\240:\235I\350h\3208\326\234\265g@\315\037\252\021\353N&\032\311(\221\370\260vR\223\370\275\363=|\235\376\373\372!\t]i~\277\335\301\211=\345\234:_\233\250-a!`\036\202\331\2566\2023G\213B\310\241\002J\360\207\363\307\237@\357_\0351$;\246\370L-c\001\235\205\316Et\026;\213\350\024;\377@\347\217\316\237\273\260\270]\343\350\214wM\2403\321u\037\235\373]\213\350,v\025\321)v=A\347I\327\006:\033]O\273\030c\276qN\237\027s\360\371\037\232\231\277\257\034\2223\313\356\276\375\242\n}\246\246\315egy\305Y\221\025JSf\034\235x\347$:\223\235it\322\320Y\300\311t.\243\263\334YB\247\324\271\201\316F\347St\236v\376\316\253\376\233\n\026\357\302\305C\265\317\253\365D\3353\004\274W\375\270\032\256\275V\377\240\021n\376_3\323\334\330~\003\232\227\223\226#W\321)\376\001\364\374\251f-\3350E\277\032#\"\227k\275\252}^\370\301\371\001\276\236\302\361\352\315\315{\325\216\252 \047]\271Y=Y\355\265\tM\243\220s\340\361\352\202!\026(}\350<\004\336?q\236\310)\226f\254\024:)\350\350\340\334SL\237Eg\266s\316\333\373/^:\024w\373\353\263\rOcy\277z\275\232\252\275W\277\334H5\3174\327\266^\333\376\0170\307\231\222\303U\311)\311\2163\214D\r\033\266\2023\326\031#\022W\214\324)I<0__0@\335<0\211\326\000\005$~zx.\276\341\274\361Q5S}\202\242\263\355\3373G}\333\353\024:S\252\t,\241\263\324\231G\047\337Y@\247\320\271\312\231\376u%\204e\372\261\271v\250\231\014K\365FsbO\255\343\027\347\027\030Md\213\226r\030M\2774\272R\253\326#\212\267\221\374\350\374\010]\020F\242\374\3377\016M\364\335\255\247\316Db\047\360\256\363\356\245zG\375,\246?\353\234\355\253\237\254_j\364rx\213\022\301\310\010\322\004TM\031H^Ws3--H^\273\217\316}5$\322,A#\343\237\350\374\331\031\305\261?\332u\027\235\273]\277\242\363kW\006\235L\3272:\313]\217\321y\334u+\200\014\013\214\2413\026\210\241\023\013\304\0036\247\234c\0379\037\301J\013\370u\251\357P\375\376\263z\261\341Y\013|P\035\254\316\327\372\352\3376\346\233\027\266:\266\336\333\276\352LM;\323\320D\263N\266\354\224\2450H5\253{\223\250\3408Ui\0363\221U\n$\366""\267\227\304\326s\275\227\364\317\234;w\235\273\013\316\302\242\263\370\010\031\254\226\2054\316\322\0347\216\316\270\032ni\332\367\235\334\"XM\0215\355\337C\347\236\252\311Ytf\273\346\272\030\023\364\014\177\t\0327\364\366\351C\r2\310\217\017\233\017\266{_\\mW\2344\214,\373\227s\226|*\361\047\347\047XaC\317\226X\2148\372\325!\313\362\237\346\312\366\367\316\264lY\353\007\257hh\243\320@\241\244\254\230\017\320y\320\371\013:\277t\376\206\316o\235\017\321y\350\252\320QtF\273\022\350$\272\222\350$\273~A\347\227\256\034:\271\256G\350<\352z\206\316\263\256?\320\371\243k\004{\350H \211N2\360\013:\277\004\346\321\231\017d\321\311\006\026\002\376\355\241\357\323Cu\336k\215\316\206\247\025|XMT\313\265\257\353\267\033\345\346\315\255\223[}\310\334;\316\035\340/t\202u,\200\032\304H\312\323=\227:\202\326\013\251\272o\017\231\047+\037\355\231Jg]\nn/\246\360Le\241\372s\r\232G\317\346\277\235\267\200\017\250\364Z\253\376\037\252\267\210\372\220\023\202u7\340|\364\367\265C\026\343j\363\257\355\202\363\340\227\035T\250\005k\035\265\263\365\223\334\337\242hz\360!I\204\306N\2559\021\263\342\034:sjN\177\204\316\243\316g\350T\025\0164\336nx\226\262\377\251\316\326\002\265h\375^3\320\034\336\352\335\372z{l_c\355D\047\351\t/\324te]\036\332\0328\224\260r\275\361qcl\3133\245}T-\326N\325\356\324\0376O5\323[\003[\321\355\007\316]\240r\311Y\302QG\364\n\222\272\210:\022\267\370\3701\323iT\244\212\344+W\017\305\332\317\033\327\033\036\331\352\277\265\316\332\271Z\256\376{\363\\sa+\264ug{\345 \232#\347\314\245z\207E\347\247\207\247\363D\345M%\316Z\336\275QL\303\016\251\tt+\260E\250yt\346;W\320YQ\363o\031\235r\347:+\324\351J\272\3725\322g:\376\031(\331\243\352\304\356q\3076\277\253\240z\373\332\300\241\252\355\313F\321\243DuN\236\253\r\326\346\353}\215o\233\363[\027\266;\266\337s\022\373[\\O\2512^\251\353\251\367\306\027\207\242\364\333\346u\217\360\356\234\274T\357\254\237\253\347\032\277o\235\333Z\330\016m\337\021\242\302\301\264P\316\231k\r\335""\314\244\202\307\356\302\257o^\206\341(\243\310\275Y;\311)?\333|\177\353\363\255\314a\365\325\367\234q\020P\356\210!HJ=Z\344\341\013).\343\355\326\324lU6\226K\254J>ms\321\376\263\2259P\341\304\004\311\205o]-\242\200$\354\254\243\263\256\346\221A\234$\006\273\206\320\031\352\nwy\312\371\303\217\254\265\035\252\204{\326\340?t&RN\n\312\006\023\265\024\342\212N\361O\347O\271\320\240\236B\245#U\210\026U\305:8\347\325\210HM\316\245\366\226eO\252soi\016\337\022\355\202a3hw\301f\232\241}\027\014\026\305m-\330O!\326\364\216o\336\266\2079\337R}\261\335q\370\246\007\rE\356t\201\344\262\247\205>\tj9trfQ\341W\240O\333WM\244\001}\307y\347\\-T\233\306\302\301@\376q\255\267\366U}\300_\033z\314I\356\273p\276\232%\276T\212\243\023\357\232Dg\262+\215N\272k\252\213\351S\177\254\242z\342\247i\020\353\333\331V\221\t\177x\333\352\213\213\216\215\316Un\276\254 \021\217*u\025\235U%\204?F\347q\347\023\257\312\030\227\026r\267\231\266\224\376B\347\257N\022\306I\231\263\204\316R \027`:\255C\262B\250\270\234\357\343N\034\312\047u\307$SQ\025\352\245\303\213Uw\0378\251)g\nX\365\213\363\013\210\305\262\225\320\"\205\030\263\206\316Z\347-,\330\255\256\031tf\272J\350\224\272~\306\362\375\034\270\215\316\355\300\024:S\201it\246\003\213\350,\006\212\350\024\003\033\350l\004\376B\347\257\300O\3358\300w\207\272=z\300\301\241vNC{Ts]v&\241\275J\035&\010\256b\311\210\253\030\332K&\211\233D!bK\026\235\254R)\220\np\305\253@\221\005z\303\214iZ\r\216\245\370\262\306\324\340\223\215K\315O\267\206\267{\0178\270\235\247\315\235\337\235D{\013d\rnP \276Pc\005\362\255\241\233\333\207\335~l{\201,\345\277,\220\256!\327\364\343[C\221\003\027\350\0133L\035]\201\304\340{\245\275\335\350\003\034|\337\251\374P;Y\273T\007\226\010\303!\245\373xa\227\202\031H\312t4\022s\371\225\026\333T>\032p\364\330\213{\250\235$\270\336F\347\266\232zh\323\365\001:\017\272~\341\332W9\021\r\205\3339\236\354Q\363\366\255\223\006YM\256\000a\025\254M\022\250VI\341@\332\037\232?Hf\322\265*D\247\274W)\347*\320!\205\245=\356\377\3014\321\336\002Y#>""\024\250\277\3555\264\267\215\237\366\324\034\211J\264\336\"\311!\204m2\244\224\313\324B\347\320\231\353\232Gg\276\253\200N\241\353):O\325T:\216\316x`\002\235\211@\"`\327\277\265\3753\004\3028\256\226X/\177s\363\241\275\257\352\313\272/[\317-\322\214\340\312\326\336\206c\233MR\217F\322\025_\021p[!\022PhE@\302\345O\310\200\237\272\210c\203]\236\361,\034i\347\000\375\202&?i\0060\340\2614.\373\315\371\355\261\363X*\263\250\t\220>\227\2648\264\233BkS\335\326I\222\3664yX\306\371\016J\236\316|\272\226\361k\375K\333\2779\323\017\204>\3720\306\223.\345B\336\311\3030\275\341lH\271\226\232\225\321\030\310w\206I\0253\206\316\330^\206\006\022\257\365\230\2005\021x\200\316\003\265\302x\202\316\223\300\237\350\374i\244l\233\367\326\350q\367\336\221\266\277\203\252\177\nN\241\354\224\237:O\245\005\001\3654nl\312\r\370\370*\225F\020\335\362\304\226I\264\313#\301B\361?}\031\305\267W\354l\365~\364\254\240NH\323\0175\265it\246US\2436\266\216\316\272\332\342|\314\271%e\250\273El\267J\325CJ\220\371N\266\253v4LD{*\264<\344\3664\355\344%1\221\244\224\337\321\371]-\240u\013\022&\034\234{\2643LL\\Eg\265\353wt~\357\032\306\3567\254:*-\207\357\240s\047p7\300\030,Mu\356\312u7)$h\354 \205\002\214\2527\217\234\3173\315\370\366\217\316]\264\240\325\307*\246I\346\360\365\037\230\355|\313\223\006F\352\270\334\242RK\365b\047~\005\235\025eQI;\361\203\310\323\301\300\020:C\312d\206\030M\343\343\034:sj_\276\200N!\360\024\235\247j\264\014\2432\"\334\035A\047\322=\334\315*\350K\340\030\236f\270w\377\210\207\314\275/\204\047\235IiO\236u\262\253\316*,\035\177w~\227[L$\225\360\355em\354,\364\347\244\340\242\226Ns\021o\351?{E\260\373\017\216\270\370{4\363ti\367@\004\006\021\375\231\363L\356\212\220\342\212\033\233q\023JZ\\R\017\247U\245.\2670\354\275\335\345\321\366\335\227\213s\232\343iV7r\353\365#g\315_\315\302\366\214s\037\r\354v\263A8 \303h\023\222\006\036R\324\023o""\270]\014\251\377\310\216\215\213)\324\033\311.&\212N4\220B\047\025\230AgF\351\004W\320Y\t\344\321\311C\247d\374\226\206\013\017~9\3429\232\226\001\047\234\023\275J\245\301\265\352/T\226\026\235\"\254\n\364N\010m\357\362}]m\270k\017wd\323\261\2079\232F=\322\266\226\321)\303\214\315\026\024r[\373\201l\241fs\375\350\271\367f3\277\035\332\267\212\331\237k\304.2\003\340\362\262\231\010\261\273\321\036\004\031T\222\t\014\231\335/\241\263\004s\263g\305\365@.\343\215\000\325\177\344\354y\253\371\327vf\267\316z@V\221\201\n\rB\\\353\300wy\251\353\322D\232E\047\333\365\020\235\207.\333S\352\272\273\352 \210\233\262{\3762s\304\363\301\3014\367\260.{\342<\321\033\310\264\304\3246\026\202qF~\305\246\306\255ui\237\213\264\214\272gz\224\3723\277\036q\361\017\246h\004y\013\226\245L\321JF7Tv\322\306P\331\371xO\335\314wT\212uy\364\220\300\202\376\227\301\2026i\362\332\301\032\337\355On\313M\266\241$\221\206\321\t\007\342\350\304A\364\307!+\360\033:\277\005V\321Y\r\254\241\263\026(\266R\364e\204\236\341\312\221r\272\245\355\334.ft\367\234i\020B\345y0\220J@\250\220b>)\001i\033\203\224\200\244\375\343\306\306\334,\200\206\254\030:1\305b\262s\344g\253H\350\240CU\177\241\363W\327O\310\306\237\002\241\000\267\323\223\047\220\036?yaou\355a\235\256-\342\342\2625/A\364\206\365\r\356\332\274\014\025\010\315\3524\216\321~=i\232\270\311:q\223\253T\271\311:\355P\353\271R\254c\177\363jI@D\264\271v\354\305\355\357Lm\035\325\216n\256\335\330z\262\375\324\271\0032(\024P*\317\312\2735\305\320^\032\037`\223\207\275\226\235e\230$\245*\216o\363\223\276\202\270\346{\240\212\266\322\270\241?W`R7\247e(q-\217N\336\254\376=\326\241\177\007$\035/\237\2037\033\263MW\367uN~R\273^K\325\337k\\n\246\266\316l\255m\277\346L\0002\030\031\245\315.\036\236v~gg\220h%\311M\260HY\302\225\233\244x\"\241\226&R\275\224\022\023)\tk\324\362h\250\2443\222Z\266%\036^\256\017\030\036\212\215\320\227\317\303\257\232\235\315^7\017\317\327\022\265r\375\353\306\355f\0317\264\267\373\234$\310\035\320\010\245\251\253>tH\215\220\226V$""\264qS\033_S6Z\231ri\227O\3034\020\222\222\230\032\241^\025\220\036\317\\\333`\370(v\256^>\037\277n\276\335\034p\363\361Bm\266\036\250G\033\367\266\002h\351\260\375\265\223\202Y\032z\262<\277\255\017\303\371\336\342@\002<\215}\374L\034Y\360\320\342\201\017\201Z\216\021\323\013\227\210wS\204\212+.\014\037E\277x\371|\374\246\371q3\344\346\343\305Z\261~\252~\247\361p\353\324Vz{`;\352LB\207\006d\300D\230\221\365q-\337\013\021\270a\201\257]\033\315(z[N\254,\210\201$\t\321\240\270\200\316\202R\202j\006\212\225\305\023\305\307\317\352\326\330\370\324Z\211]z\351S\363Am\311\374\225\047\374R\004\276AF-\223\026i|uF<\244\311\231\024+\277\241\363[\327\032:k\206\207t\214\334\255\227\372\373\377\376\325\375\226\363&*\306\327\360\n\234\047\233\245J\357N\317k;\201\3276O\356\250+[\002\330\374\314u-->\0227\352\210\317N8\047\360\360\225n\366\257\377\253\373\214\370\332\351\377\t\026]\357nw\340\346\352\211J\007\332\331wo\246+\003\225\010\324P\017\2127\035\3253\300\320\356\332T=T\237P#\221s\365\007`\347\232\033\337g\316g\203[\2750\241\213\3361\341\302\366\346\346\"\224u\241\032\252N\326.\202\320\337\253\312 \251P\232\311\277\217\377\253\373\304\2468\225\320\0015\330+\355\3771 S\210\263\000\233k\316\tq\224\005\357\273\351\253\016TC\004\226ex\023Z\\\317\211\3121\021\321sl\363\306\346\323\352\311\352\305\332\311\235\343\247*\0009\276y\2532\340\234:W\033mt<\007R\357\310\306\372\357\377\255Q\\E\340{\r\2624io\325o6N\302B\205\330\362\037h\266\351\306\000\0107=\222\322\013\265\016\310\000r\373\242\362\232\330\265?~\242\322Y9_)U\317\003\007;@\342\301\351\346K\220\207n5\007\3049\033\240\376\315\315\234\354\026P\265W\352\341\306k\315\223\3167\243\333C\333k\254@\257c\205\242\356\372\223\312]X\026\r\354\034?\215\327\006IZ\243\260TZ\303bLUB\225T\365\264l\00728\241\320tU\256W&\201\233\300\277S\225p\265\273:!\017V\t\201\032y\376v\345\277\265\016\247\367\363\306\200s#\274\025\332\2320g4\236\007\272\261\220X\252s\360U\317IQ/7\3604\306\331\352k\265\223\265s\320\266z\336\257^\206F6/\026s=g*s*\365\373\325O ""\263yh\343=\357\0023\304\207\224\245s\362\323z\257s\371\373\346\204\363Cl;+n\177\231\244|a\265\364\\\356\247@\231D\325\337\020\305\030\250\334\222\206\020\377\376\337\343\3159\254\241\2676\313\225\257\240\252G\240\241\274v\262\362\016\32604~\242\272\003\211]\231\207\212}R{R\337\000\361L\0201P\031\302\3124\031\243\202#TM\241~Hg\014\323\270h\360NhB\030,\3431R\312\371\213\306D\213\234\177\256.`/8%2\0108\037\366\327\347\033\027@\246\271\010S\305\204]P]\033\047*\201J\210\325\332{\262K#%\047\376\325\335\363\277\365\315\301\315\214\272xks`3\204\r\266\2732S\033\306:\371\016[\350\316q,\326u\321D^\366\202\253\372c\275\267M\026\017\374\200\016\255\033Hr\333\373\276~\n\235\224\022}\365J\326m\r\361\nV\246W\274\266!\007\334g\"\251\326\367\310\034\027n\265\361\277\230\010\303\310\215\260\232\001w5\3463{PGn\2620\320\246\325:1\207o\326\223\250J\246A\304\016}m\n\355:\273\327\340G\\\344~\357\206\343\001u\322$\\\362\275\017\352+\264\341H\346\234|\231\370\227\3076\352\310\365\252\035m\324\252\222\206\201k\020\371\235A\244Z\340\253\272\220G\235\332\312H\325\323\373[\027\033\225\340m.\366.Z\225\303\232\367\275\270\350\007\263\376\334\1779\017xgX\213\002\274\234\005\341^\007+\327\020\336z\262\243-s~\220\220\353\302I?\301M6H?A\273\303w\320\271c\346\274]\307\263\227\303)\261\354d\352D\337M$W\303\367\031\342h\034\337m\231G\353g\276%G[J$\025L\2413\345\262m\231\361l0\275\002F\355\265\353\330F\261 \022\370l\267Q[\362\355=\\\305\300OY\221\336\225\314\177h#\\\263\210\354\016\376\001\235o@n9}\264\333\215\010\267\235)\327\366H\213)\204\246L\352x\334T\207\337Z\302\317C\220v\232D(\352x\334:#\323\345\271g\341\225h\364{_\272>\237\254\371\210U4\005\223\215\023\351[|/d\232\365Q\344\277|\216}\336p\351L}.Yx\350\334\0011G\236\334_qV\240\027\356\262\375F\362\t-a\270I\n?\236\3017B\310,\212:\344n\227\216\330\027N\274\002\216\335hx\264\243\275\265\267k7j\033\215c\315\033\315G[\023[\271\355\337\235""\273 \"\311\273\254\000\037\364G\271\226\341\047\256\350`\022\r\363\264\244\341&\003\334\274\237\313\360\264\357A\226\027\264\244\321\274\"\023obY_\375\344\253c\331\027\215\t7\313>\206\004\341\372k\215\017\232\341\255\377\333\312lm8\3430\206\301\264(/\347\301\353\225\235\247R\365\311\217\303\360\233\245hj\344\302\003?U\314\315li\223\210d\010_{\370\254\342\331\247\365\336W\307\263\233\215\314+\330X\243\365\023\277\017\210\344.R2\320$\251\231%\2665\026|v\324^>\317\276l\254\271y\346sY\n\214e0W\312{y\360vY\347\231\234+\371\255I\374\2566\337\033\314\210Y$\253\362\305&\211`d[@s\245f\226\330\302X\354\362\\\303\362J\266\037;^\321\346#\t\367zu.\026\255\264\347Cj\032\23215\303\310\360\316\273\353\370*\266\033O\276\242\315\306\335,\025I\344\337\315R\221\3552\276\212\355\305\336W\264\271\270\233\271\n-\000v3Wa\273\212/\237o\337z7\267}\256W\202\201\r&Py5*\273\206\317\367\366l~\264\224&Q\276\020\340\272T\276?K\262\032\255\007\370Y\025\332[|\330\345\271\274\351p\0175\354A\357>\261\265,\036j\200\001\013\244U\322\231:\277?\333U\033\276\377\233\327\367\240\024\311\340\305\327)q\365:\324.\351\264\235g\177\354\252\252\330\377\205\334{\320\260\257m\037\027\033IR\217L\033\313\316\037\177\356\252\367\336\377\355\331\023/\336\346\356\330\376P\334\236-\225D\244\373\200E\275g\273\371p7M\357A\331|\022\257.\235r\246\344f\273\255[\010\355\256)\336\377u\201\275/\276*pb{Yh\372\245\246\303o\265\020\351\334}\301\270\377\313\366\006^|%`f\373\231\320\351I\275\202\237@>\334\271\373\252l\277d\211\365\225\353\"9\357\002k\315\031\227\246\022r\t\357\047\365\336\352\334}\355s \302^\264\360\263\351\202\241g\037t\265\357\326\226\201}\337\331\202\307\352\325\245 |\273\315W\005\371\253w\363\250\215\267\264\354U\337l\357\024\035\354\212MW\001\332u\350\177\2575\360\217-\300\256SJ\213Ke\016\330\204\254\251\347p\367U\273\316\363\275\350\"\347\336\355\357\304u\343r\227\321\255/\335\3556|-[\362\353\226\205!\302\247\207\272\376\366$?\025f\337K\355\247\366\rm\337\027\266\005r\027\301o\244\341k1\"\234\257\364\327""\\\367\343~_E;\224\353/Y\274\225\202\235}<\316\366\263\223L\354\330\234\257\321\205k\323\034\252W?{A\023*\351\220|\257\033\345\3527\276\304\247\245\003\351\220|\215.h\251J6utXQ\037\030\300\306\025\030EgT]`F\207\025\365%\336\370\271:\250\361\014\235g\201a<,<\334=\212\316h\367\030:c\3351v\337\302\346w\225g\265o\353\231\377\t\013\262\320\316\361w\360\331\013\257\363%\332~i\347\253\352\200\027\370\005\324\254\371\340\333j\006\235o\252\023\326\007\020\207\031\t\0031|2\357\306M\350W\275\315/\266:\376\047\355\233\310\251\374\033\333\211\014\224\021\261\362\242ITH\006\326+\241JR\305\254W\006+\363\325^\031x\014\315\256\014\315i@\004\235\267\316\013\023\256\013\215\216\206\310\235\254\210\360\3059(r\014-\331v\216\177P\375\242v\274\036\202^\322\001\353\363\343o\t\343\272~\030\020N\234\252\214TC;\247\256\324o\241a\334\363\023\227\352\377\256\2575:4\271\032\335\r\347\342\340V\357\337\377\367\257\327\320\324\257\347\270s\374C\370\360\370\351\312d\365jm\rP\035\177\013\257\373}\\\313B\033<\245\356\t8\361^\365\014\300\026\353\023\320]A.x\267\336\r\3220\217\336\200\365\332Ea\247w\374\204d\rR>\206Vqh\374\027v\316\202\334\n\003\231\212E\032\336\251\234\003\241\030{J\217\030d\304\200)j\251\247\326]\233\220VPP;\302\010\353\304\273\3000\264+<\216\003\266\260\255\252>\252M<\007\204]\220\350N-#:\352\211\323\225i\370\3427\305\001y\335\201b\302H\3656\024\363\2304\037<\266y\263\362\256s\026\025\270\302<\361\rh&\316\373(\ta\3609\321\264\010\255\343\330\333\225^\021\215\255H\030>\356\2348\271s*\010T\336k\004\032!\354\237\212\331\237\206\234\020^\033\266\323\323[\373\217(r\317\177\000E\317\307\265+2\364~\365\n\320\372\004\275\037U\013\300\323\245Ff\247\347\303\352\255\332\027\316\245\357@\000\270\047\3263\360\205\3631\210\261\215\221f\010\231\365)\214\020\010\372\nk\277yi\253o\373\246\020\023\3568w`a\214[\027\366\255:\374\262\031>\277\322N\205\357\265\266dP\024\351B\366|U\371\034\206\304\3430\3578\301o\232}[\337mo8\3230\374@~\270a\262\323s\276\366K\343+\030\232D\177yX}\027&l\341\021\306\201O\240""\327^\307\273%\200)\227\257\034\204\035\365\267\032kh\343\307\031q\036\333\013\201B\215i\220\227\026\266\207\235\004\214\214\362\266l-j\360M/\2228|_m0w\340\272J\375E\343Ns\031u\204\260\274\004\354\3022\244\047\010k\276\263\322$\365(J\355\\\022U\354.\366\205\332\204\000A\373lL4\226@\312z\264\235\026\204\311\027\006\265\200\302w\256\250!\370^\375kf{W\261o6r\315g\250\342\203\265,`\307\r},\311\373\365\257d\3179\232b\177\r\355\272\327]\354\213hT\t \350\245\215L\343\t\310f\377\267\275 \010\203\312\260-N\370z\222\032>i\270\271\220c\256\233u\025\373\313\306\306\326q\324\320A\267\002\354\270;\217\264_\256Oc\346GU\354o`v\031p\027\373\022\214\253\010\272\t\205^k\366\300\212\376\314\366#A\230|\035H\337\242\305\327\2534\353\373\336\262\253\267t\335\305\376\252\371\332\326\207\250`\203a\013\260\343^;\316\025\337\341S\250\315\216\243*\366\267r\334\350uz\361\305\323\257\220\005\306\217,\350\253\313\256\377%R\321<\013r\355\005g<-\250\224\367\301k\311\207\013\206\244\370\343;\216\234\0074\364\221v\236\306<\332q4g\225]l\372\272\371\336\326\225\355\234\030q\201\000\334d\337\3519W\033\003qP\264[\1776\r\324F\033\235\260&\301\321\263\350L\240\305\354\341\231\306\333J{\030\3055\244\346N\314\266p\341\260\215\005\247\305\211}\317\210\332D\213\357~\221\245\210\357]\240\346v\305\177\300\374\347\\\372\036\226\323\031w\271/\327\345()\306\313\346W\260Z\032\026\032\017\240\014\252\003\326\"\332\216\226\357^\221\275\207\357\255\222\346\212=W\271\277m~\2755\352\214\003Oa\321\001\350q\333\177\247\347B\255\0003\257\240\355H\013\216\014nW\271iP\277\\c\010\343\013\213=;=\227\244&\343\022\262\374\202s\341K\261~\357\330\333\202\305\036>\371E\321$\257r#Y~\301\n\331\343\221\r#\277\245\214\356\277\243s\360\244\263\247\027r\351\341\315It&\225\316\236\256C.\241SR\217\216\374\216\316\357\201g\201v\254\216\376\250\205j\367\033oC\222oP\242L:I\220Z\244jC\362A\317\244T\211\342\254\360!\206\261\373\370\222\361~G2{N\347M\231_\206\306\315si2\247j\322\326\223m\036\330\200\0470\346\240!\331a\306\267\327\2044\177O\010\361_\211\001\355$o\304\006\276\267\321O\350\245\370Q\003~\217*?\311B,#\031\200_$J\273Q\274eS\223\246m(\272\366\206\356\013\363\2751\230\356\013\273\027h\257J\3473\034\005\244FN.\262\344\204\247\245\037\252\"<7vp\205\350\025a\360\265\327\021\346\205\332R\373i\224C\356\021\2205+Ye\222\3114\231\306\321\315Dt\203\t]-\306/E\244*J\006\332\241\205\205\345\002pt\266\321\323|\035*t\326\031\207\326(\347\241G\316#4}\302\272\010\343D\3662\245 1vp\005-\177\263\223/\276\370\363\027\346\305\254\366\016\032a\047\014_\241\332\374\340\232\231\345\355~g\032\r\363a\345\346|rC\310\000\023\266\177o\352\032\241\233\343\312\010n\270\317\215\251\371:""\224\026\240\324\374\270\235&5?\272\320\2116\252\365\243\323mQq\375Y\233\250-7>\206\266p\033\227\273\262\322\177A\006G\260\245\034\204\263?6\327\240\341{\204\255\253u\t\022\272\337\346\364\326\035\354\321R\377\"_\033\225\272\035.g\363\003\344\374\274\r?3o\3368s\261\345{\020\353`\354\221\252\004\271\364Z\244\261\007\246\202\255\027\312]W\016\314\010\354o\370\250\347>\373\233\034\334|\255Dh\214\343g\047\371\013u\372\214[{\373\333\325\3766i\274\017%X\036\\\003Hkr\032\372\371\305\235\334 \237\206~\272\375\213n\360\247i\371\317\256\227.1\"\343?\251}\217\026\025G\261\013\331st[,\007\335\206\274[G\373\203\2530\300\213\273m\016T\372\375H\312O\370\216\244\375\274\023_\361\362\273\r\370\001#~\233\205>\367\321\256NH<9\360P\204\255\341\362\226\253#\356o\207\332\317\030\201\277\332\306\257\304\241vA\223\036\r\326\264UI+=\022\275\310H\313<\037zD\222\324\035`a?\227\236\202\2657\2045\020\360r\272\266\257A\355\356\026D]\254\375)\032Q\006\347\331\274\221\031v\037\310\200\231\362F\036\350\360r-O\355\214\2469~\204\231\237.\345\"\254/\003\371\201,~s\034]\222\373\264\255\343\330\315\346\273[o\241bS\252Pq!\007\234\2766ph>\357\337\200\004&w\350\303k\316Z\311)\311=4\232)\370\023\020\374X=M\0214sR\337\245k\032\314\253Um\352\311\351\372\227\215\336\366\260\207,.\354\365\356y\347\374M\321{\327^h}\001\353\n\230Q\201O\320\020\345\212\217d.\256\020\340\247\303I\222\365}T\210\032#\035\323\242\331\324w\221[\356j\207\355\306\357\265^HPl\234iw\360\263\320\244-\365}\202D\337<\337\256\215\3746\266\277\003\354\352C\347\004I\037VmR\273\302\037\377\344F\276|\tE\363\007\315\257{4u9\360\246\177\373\231\2647\245\324Ka\236\357\006(\231F\223\372\303w\322\240;\354\3114\232tR\277\240\363K\340Wt~\rd\002m]\224\0167/n\375W\034\326\221\0275\000\003\330\240N\003\026?\2041\215R\363\265\341\255L[\246\237\375\352K^4\001q\235!\277\236\204FU\032\000\250q\323\341W\375\352N\333\347\241[(\310\034\212S\007\332^\311:Y\030,\241=\027\235\242\324\240\320>\253\357cvm`\324Aw_""\332\310(9e\177\267\265\266/3\311\027M\324|\206\346\027k\360\227\205\350\302\003\272XC?[\321.CJ\303)\347\226\024\322\333\321\254`\364\2308\212\226\305\345j~\321\r]\r\344{\363\224\271L\251\315\r\354\372\347\026\303>\256]\225\206\377G/0\037V\n\344\257l\232\047\343\3326P}\335\010\265\207=\0070;\3159\271\227(\260\034t{\\\361\350\363\033\026\217,\275\311>x\264\177\353\365Eg\361%\311\274\007\325(\245\353\3374&\210=\272\345XM\350\216(^;\331\363o6|\377\303\3313U\217\266\213={\354a\027\371\222\t\304%\267\356\223TJ\374\376I~\265\017\267~\347/u\231g\252\332\324\3034\217\242N\024\017\217[\375\014\277\026\003\374\276\373\331e<\n9\261\337\316\326z<\242\026E\2434\227\231\370m\201$\020\370^\270l.\241l[\367\373\266\201G\327>\237p&\344\303\266$\014\323\226\005\235\316\244\375-z\247\365\227\300\241\205-a\027\340\214@M\027PG\253\232\026Mi4\361\233kh\367;/\344\235s\233\\\333\232\346\221\262\323\326\362q\315\336?\200\265{0m\272\215\323\316m\365\320+\031T\246\002\355\340\376F\255\243\366a=Q\177\324\230l\366m\375\350$\244\004!\213\216g\235\333^\047\007Z\311,;\3130\\\240\331\273\375\256\005\311W4T\320&\022\355\206\373^\362\315/a\243\201\226\214{\370\376\234\271\370\257m\322\326\3214\361\375\237\357\365*\256H\021C\302=\265g\232\276\310b\317\367&p\376P\026\251e|_|6\367\001\266M\251u4\354\244\225\3229\347\334\027j\013\231o\336\355W\376$a\200?VC\322(\211\006\276\027\207\023SICA\302\000\337\016\330m\310\240g\335I\2305OD\267\321D\365B\263[\332p\035\371\220\321""\226\035?2J\342o\264\222\030K\302\231\357}\344\372\316\n\261\220%%-\255\311\370\305\215\372\311\356\366m\n\036M#o\333\016!)%\371\373B\264&\240]|\337\033\313\211\231\264\334%;\t\272Q\332\267q\257\264s\023\361H\231zt;\212G\301lj\271\364\264&\355/\222q\035\275\212Mc\007\335\271t\007\235;\2019t\346\002\313\350,\007\236\240\363$\360\047:\177\252\325q\250\273\315\233\216\347A*x\313\231\222\247\001%\213\244n\212\253\306\371\235i\356\353\363\261\332\307\23419\320\265u\025t|\353\366\366\332^\353\377\250WH\\\373\306_\354\240\271\204\344\035j\001\276v\225\267\260Bo)\223z\322\000Q\325\223~\244\200NA\265\2000V}\270\373gt~6\267n\265c\325\365\244\272V;^\037\254/4\"0g}\346LH\tW\362\252\204\302\266\342\022\215\360\374\275O~6vQ\264\203\230\023\203\317\305\r\252m^s\010\033G\361\276\025\273\201\344\345\256=\370\323\304\276w\255\221tF\225\377\047:\177\252~O\347)\310\256 \215NZ\035\337z\210\316C\245\025\243S\\\345#X\220|\275=*\006E\220/\344s\020\005\254\270\ta@\332\276*\3631\215w]\016\261\273\225<\210\323\362\252<\331[\371\253\036\374\252<\352\2554,\361w\026\264Q\233\330\345$I\203\306k\272^\233D\014z\223\233\036\234%\r-\257\267\024:)u8\351>:\367\241\013\267\305\014\337y\027\337\253=\336\030l,4# \001\177\352\244\244\360(\227\026x\372\003\252\351\253qg\034\255\276\332-\236\217m\377\307IO\035V/\274w\271\234\304A\032K\265ZN\324\016\177\366\210\216A\222$N\203(\331\347D\320\211\004\206\003\355\323\013+9\346\353\204\223\220\307\366\333\313\350\030\236\303\271\263\333!\234\243c:\2110\374\354)m\210\360\247m\3509k\262\206\242\213\"i\346\242U\020iL\250\023\314\2433\037\370\r\235\337\224\010\263r\004K\243\207\256I\312)\225Mm\265>-\334\026\225\300\017\333\0379S\220\257\2708t\227\032<2M\001\337\321\342\243\030U\031\211\233\372\344\224\350.\244\353\242\341\213\252l\026\235YUsyt\362\201\307\350<\016\374\205\316_\201\010\n\033\221\356[\350\334\352\036\351n\257)\353\272\274\037U\233\274\311\267M\2241tbj\324\245n9\025h\247\266VUEh\320\252\207\027\214\220\323\365\251\306\276\244\370\216\375\312\355\362\251U\331\r\370\323r|\375H\243:\177\277\220\016Q\321TG\352\026~\006H?(.\364\205\374U!\222\023i\376\243n@\353-\252\220x\240}\347f\323\365\233\215\323\320\227\326\216\262\022\206\3445Z\254\022\006\032RJ\024\025\264u\026\037\022\223\203(\210U\362!1\371\226\211\034J\371cX\374v=\352\010\374\3415\232\212\310\334\2004\037$w\320\304\304\037\334\324zZ\241Z\344\027\215\357\361\026\201\020\210\2720\027\310>\000e\220\267d\\q\256\204\240|\047\267_u-D\266&\266\334\367\033~\336\220*\307\020\266\222\255\257p@\225\013k\220l\245t\252\257\362\347\027\222\370\276\250K\032s\376,\031u\004\252\002\322?\320r\226$@>\037\320\202\211\004\006\352\010\203\310\364A\325\021\250\nhd\232\364\324\304\220\324\021H\265:\224\003f\345\225\235\236~\247?\2625\275=\261\235y\30551\274\225\301\251\201\325\304\215\206\334\260\033\204z\030\330\032\301\315DyF\nJ \267P\330\263\252\244N\340\017O\361\373\365H\375\313\037;\343O\232\323\326\047\237\244\371\213\227\\n\343\313W\337\313|\322\236\332\010oE\361\310\227T\356BY`\204\315\357\364|\346|vk\353\t>\3602\361\212\253\343\326\326\332\266{\216\370\242!\347\0101tA\243\201\351M\276r\013E\300\267\300\234u\366f+?\203\354\373.0\315\022\374\r5~\335!\315\022d\362C\302\322\036\346kR\362\354q\276\216\300\204\267\354\334\225*s(\013*\320vz\2569\327\242\333g\235\211\204\270\372e\017\365\361\274\347\370\346\317\225\225\332M\334r\303k\367O\341\021g\204\345\252k\265@M\260\361""\215\315x\365\353\332p]\334\377\377\206s\374\243\352\254xO\004\322\305\253\003\210\204\336\t8\266yC\256\365\312Dg\253\377\255w\324O\325q\021\373\306\311Jw%]\035\250Fj\247k\363\365^\370\372\304\273\316\273\270\014:\325\270\323\314\354\234\370O5U;Y\353\3359\361N\345Fe\3159{\251\336\205/\020\234\255v8\357]v.\313\273\010O\234\256\334\207T\375\320\260 \317\323\225\014^\374\030\250\207Z\347\200\322^\030D\242\223V\016\247+\367`\315\360\021\276E@H.\326\312\365\001I\265\010\367\325?\300G\000N\370\242\034h\234l\234C\256\357\234\370\250:\017\353\317\001D9Y\355\305w>\352?6\317\211+Z\351\031\002h\335:\227>d\006\275\022\360\374\200\227\261\355\367\"6\371|\n\273\210\206\204\047\376N=\315\336\017\332{\365\332\363\203\336\376\261\337\233?\344\273b\354\376\017\022\323\251\367\223RW\337q\324\326;>\236\037\364f\201\375\336$ \337)\223\027-\360\327o}\205\260\231\366^p\377\374\240\267\333\357\367n{\371\352\231\334Y\345\017\326\362\347\242\314kK\355\274\320\376\371A\257R\333\3675\221\362\271q\271C\312ej_I.\323\336K!\237\037\364Z\032\276\t\263\317\213h\344{\341\354\346\047Z\306\371\312K\374\241\316=\3360\320\266\253e\356\037\224K?p\253${\237yO\027v\313\327\256\245%\035\227*\371\233\340\264\314\242\253TH\234\364\275\\ \336\325\236\213\274\377\202B?k\\\207\251\346\001\251\332p\0209(\237~\364^f\376\302\333\256\344\253\326R%\303E<\032\375H\266\323\026\357m\276\327\352\371A/\361\336\367\345\345\370\026\265\272E\225+,\371\333\026\372\374\\\233o,?XIC\336k\332?\253\313yM\030\3404\237lm\210qP\222\005\334G=\275S\322\017\224\322\314Mc\275o\203_\364\024\365G\230,\217;)9w\003N\271\255\371\251\363\351\367\320\206\304R\373\250\212\312V*\007*\351n]\373(Kz\340{\031\332xu\005\261\200\037\010\335\203\316\"\324\366;+\236\267w3\350\245\035\021 \225\0027g\047\333T\232\003h+\234\314\250\265\302\263\355g\003\236\267w{\373\345\031\020\264\357\250\337\241m\005\236\267\327\340\361""\345\332\220\266\357N\200\303\033\217>?\212\275\244}\257\301\017d)HS\200\357Ep\244D\047\246\222\262\220T\267\2443\344\227\240\322\325Q\264\243G\233\274\317\332z\316\2126\216\236\037\315\356\335~\027\312\007:\214B\323-5`\3425\355[\320\314C\232@\332\300\323\227\356\211}<:vE\372\331=^\201y\230\203*\273\260\334\305\351W4Z\354\2669\307\257Z\341W\332S\213\246m!\232\262hwHoM\264u\264x\275\311g\377\366i\263\345ha\237T\261\375\266\311\017?\301\362\242\021\305_V\340\227:\021\377\371\303\277\244\357\246\365\"\r,\374N:ZUs#:~\303\253\357\210B\326s\244\366&[t2H&\233\324\034:9uD\373):O\225-\372 :\203\312 y\022\235\311\356\031tf\272\263\350d\273\027\321Y\354^j\263\261\2624[?n\031H\312\327\234\331\255\312\\x\340\313/.\255\362\361\231\037\030\2461\203\237\021\312v\035Q\353;\220\030\352?r\356a\262\362}\307\244=f\263\277\267QR\265vL\216\204\345\337y\014\223_x\n\252\365\030\272\233\344\272\333\235\361\334\324\204\026\0014S\221\374E\346\345\374d\032m\357\322F\326_m<%u\324l?\310\334\345sy\n\265\363\335N\240\355vw8\267\347\247\253T\210\3414\223\221}\tm\031\322=\201$!\320\301\300\237\002m\234\336\216\232\361?x^i\334]\271)\307\227\026\206\370\273\2550v{0\214v\316\365\3355B\343I\014\247S\025d\320C\002\032\215/\324\320\365\013\366\355{\353\360\350\031/T\247\377,K*Z)\363s,\374\374\032\311\014\324\322\311\024|\360hL\250\216\210\361?yL\330vW\344J\245\304S\347\251\234Q\371\366\344nGOh\371GS)5u\232QI\277C\034\047\361\202[\262\221\260F#\r\267\241\"\003\236\241@\3734\306G\317\370}k[\345\361b\367\273<4\251\372\356\177\357\341\235\014\262\247&\226\223R\203XNG6\371\325\315$\037S[\047c\235p\240}j\335\243\347\274x=\216q\376Z]\252A\304{\264[=\370\206\324\224x\t\022\210\3277m=s\236IE\034\337\304\365\335\222\337\303\363Y\264\355\307\317H\022\313I\235D\342\014I\221\334Z\215\354r\"\036\316\377\264\365\032>\344$W\340@<\332\023\354\364\\v.\377\010MJ\030#\275:\316\017m\r\374\343L5w;X\305\037\343z\321\301\252\266\330h\036\021\347\303\036#\331\027\274\376*\305\032\331\340I\214\347\033\334\276\306\013{x\014\203VO|""\331\304\355eI\254\241\367\216\270!\032Y-\337\n\264\357]\331\243\347\276x\257\343\037h\034K\032V\255\266\026j\021\222mH\353G\262\r5z\262\336\0379\032\253\330\347Gf\022\373\2175\210\335\355\324\n-c\367xj\245=\226\260\317\217\314\014\366\037k\004K\232\004n\232\314o\276\367=\344\371\363\321Y\277\036I\035\214x\014\221_\360\3725\312\267\335 \271\207\332?\277r\224$N\222{\250\375\223\254\317\017\016\221V\201\333#s\355\031\311=\324\376\351\330\304\355@;\337\326\366\257\203\203\335\237|\000e\245\377E\242\324\344\365\253\006b\334\337\203\224\363Wg\373\324\214\342\332\344\347\207\275\024xO,\341w\201\376SYB\327\000?o\3035\322\355\271D\272}O\223\035\362\366\350\347m\2703\266=7\306\276\372\327\332\350\252\330\277{\376\365\332I:\212\340\034\373\250\272\010\3059~\242\362z\265\267\372E\355-4\334\177\247\362E\365\r\350g\003\317\311;Y\357e\337\035\337\034\305C\004\307\0327\233xx\241\362au\242\372\260~\322\371\024\025\364\322\"_\\\\\224Gr\336p\336\370\250\312\363%\302\360(\305i<\005\361\326\346Z\345\215j\312\351\375R\232\020\013+~+=\236\025\300c\005\037\324C\250\r:\266y\263\362\016\300\217\237\252D\252\037\324B\265{\262b\335\237\235\251d\360\350\306\255\312\000fQ\006\026f\253\003;\047\316V\377\257\232\251\256\211\323\020\316\273\237A\353\350\206\231\347\324{\002U\252~\262~\271\221\026*\367S\037\327zwN\236\256$\253\335\325\tu>\342\\-\343\\\374\272yF\250(\351l\302\017\360\321\305\306\031$\3769P\007\331\275\207\247: O\347\235s\204\264\027\017IL \260T\351\255\334\254\276\215\244\234\252\014\001\243\356@;\\\007V\235\302\257N\275[)B\344\347\202\304\263A<^\002\025t\366\203\352\r\347\277_\322\213&\037\366\nV\334kv4?\300\340\247\365^\314\367\213J\227,\352\032\021\346|p\271~\243\256\217\216\000s^\377\327kom\316W.U/\325\316\243\2418\036FyZ=Y=\017\231\035\177\273r\016*nM1\022\322\236\000\256}\005\315\242\243v\322\r\370/r\215\003\273k\004pWsL\342\307j~\263\232\255}\007,?&75dN\307\351\223\347=@\350\005\350\214eTs\037\337\034\332\374\243\032\205v\224\305\0031\247*a\347l\277\350""\262\272\342\357\212\256\r\210\037U\322\316\007\327\033\237@\315\335\304\363(}\300\361K\020\234\3309\371n\345\221\363\237/\033\245\346\205\255\377\003\321\373\304\025\340\334t#\211U\365\216\363\316\047\265\001\334\017\376\260\032\252\252\343#\177\277i:\010\260g\035[\332\t\347DPv\251,\024\365Kh\027-XG]j\022\353\373}\323\245\220\340\377\3242\252\372\277\250va\365\277+,~K\365^\250\245G\215\211\347x\002\006)?_\377C\\\371\367\3515(\335\247\327\033\347`@z#X\373wm\275\036bh[`\033\360b\032h\234\202\014\240?\3038RyTMB\r\236\256\315\325\337mtX\005~\336\363A\365z\365~\375t\375\241|\231\021\370\365a\260\366f=\333\370\266\231Em\311\0470\216$\353\335\365\373\020\377\261\300|\356\022\004\047\033\302\364\032\033\302\000\362\355\335\212\220Tn8\027\205v\013\233f\240\022\256\276^\353\255\335\250\255\341\251\"\034r\272*_V\373\004\377\305\301$|\034\021\033\345\251\323\317O@?\000~;\275\270\277t\001:\332\273gwN\275\357\274\217\202;t\205\201jh\347\354\207\325\2108rt\352}\211\344\271\031\316\240_\375\014\375g\275\026\207\225\325\361\213\300\2661\030\250\004\007\327|#\337\333\352}~\034\017*\335\220\243\001\366\246\31773\233\177\002\243\272\004\205\330\002zE~\307\305!*d9P\361\306\211JG\345\243j\331\371\004\207>\321\237\327`x\231\253\235\022m3\000SD\n\307\310\267\235\267Q\303\n\345D\376\234\300\346p\262\332\213\355\246\017\361\3000e\237\030s\216C{\224\207\312F\253\257\325N\312C`\241\352\275z\2078<\325\363\306\346d\245\027\033/p\323\225n\227\261\370y\017\216\202\003P\341\327\255\026\376Me\242\222\307\022\002_\261V\376]);\037\334\204\026w\002\272\307\205\332\"\214\270\247\316\212\252\373\001\006\331Sx,\353b\375C\340\021ye\251\260\276\200\273\365\016\325(\177\250\275\203\025{\3329}\036k\004\\\350\330\330H\327\236\2378#\016\316u\354|v\2631\007\025\334\277\335\271\335\273\363\3657;\327n4\"\322\222\017;b\254\322\213-\3638\216\247\232\373\304\234\035Y\024\047\000c\2525\342\343\3513\250\257\235\236\267+\027\005\203\305\360\377u\365\347\332\002691 _\256\017\324o5\006\324Q\2653@\3641\\\200\313y\212\363""\366\377\0015\364\007\273"; + PyObject *data = __Pyx_DecompressString(cstring, 24937, 1); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (23256 bytes) */ -static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\337cted \300\205\007fa\373il\337\205\005error\377 code %(\377display_\376\256\206\001)s (%(g\377roup)s)""\n\367%s\047\207\213\001depr\347ecaL\001\373\207\001has\377 no effe\377ct: ((%s\377)(any nd\376\206\211\002)))\n, ,\377 got .3:\377 =?A per\327iod\306\211\0011\010\001fo\373rm@\002smoot\377hingADXRu S\004u\341able+\010\375i\203\212\001wn; it\363 f\317\206\002\332\206\003inne\373r :\000. Set\353 \047D\000\047\240\204\002ead\277.Alloc\367\204\003E\376\355\002(TA_ALL\377OC_ERR)B\257ad O\263\207\002 \025\001B\377AD_OBJEC\345T\025\002P\244\213\005\024\006PAR\377AM)Bull/\377Bear Pat\277tern (\n\001i\377sh < 0, \377Neutral \361=\t\001)\001\026\001> 0)\377Dashed L\237ineDo7\000\003\005u\376\346\001Exponen\356\212\211\001 Mo\216\214\002AveOrage\000\027\214\206\006N\346 \371F\226\216\002\335\001FUNC_\377NOT_FOUN\363D)\262\206\006\263Aa st\357ream\202\216\001APIV\016\013n \352,G\204a P\013_GROUPT\010H\214 b\243\014I\276\215\002\221\001\376 I\331\212\010>\374!INPUT\233\002\207@\377_INITIAL\357IZE)2\002s:I\377nsuffici\376\213 Histor\375y\233BINSUFF\377ICIENT_H?ISTORY2\000\377!\367al \327GINTEoRNAL\340AORT\000>\342\206\002 Hand\320`}\003\377VALID_HA\357NDLE\031\006Lis\177t Type \031\t=Lg\000_TYP\036\007\220g\350\216\211\006J\t\242b_\202ATIO\371Nw\006\306gHolde\373r \"\017HOLDE\201R\030\027\213\016e\0031\003\226\013\201\214\007v\357alue\256\221\002Kau\377fman Ada\337ptive\332lLi\343br\235\215\001\312a\245MLIB\274\316b\244HMESA3\025M\357FI\047s\276m wa\177s retir\310\222\002\357 TA-p\000 C.{No\344\204\014 (id\210\205\001\177ty)None\333\204\001?Suppor\316\210\001\300\206\001\376\332\204\001SUPPORT\373ED!\000t eno\377ugh pric\337e arg\363\214\002s:\375 \200\211\006Note t\237hat C\322\224\002\322\210\003l\377iberatel}y\225\205\001icter!\001\377n PEP-48\3714\343\212\004\330\217\001s sub\372\267\220\002e\215\223\002built\317in t\256`\264\223\001f \277you ne\354\224\003p<\340\220\001&\010then\237\222\002\227\222\001_\047anno\220\216\003_<\000\277ing\047 d\224 c\376\221Bto Fals\377e.Out-of\377-Range E\377nd Index\376\247\210\002OUT_OF_\377RANGE_EN\377D_INDEX)\276%\nStart\034\025S\017TAR""T,\007\264\225\001\231\206\025i\000r\233\206\024O\374\215\002\265\217\005NaN\222\217\001\327inf\323\222\001e\017\013ne\363ga\360a%\013posi\236\004\017zeroT\004\203\230\002c>\265\206\002stick\r\007\210\223\005\377 (nullabwle)\022\010ver\237\225\004\376?\007path-de\347pen\331a\265\004sca\377le same \031a\361\224\004\320\003s:\370\212\006\007\001\342\212\005\377ool)STOC\017HRSI\366\21369\000\250\214\004C\000\362\245\214\007S\242\231\001\206\206\rStre\357ngth\344\213\007[-2\37700..-100\357] = \366\213\004, [\226\016\001..\020\002G\230\231\003\023\0070\203 =\222\214\005\047\000<\0007\004 \006u\037llishC\000T\000]\001|V\002\017\003)The \372\222\005\377\047s Own D\277efault\235\214\014T\317oo m\206\217\001\356\205\027Tr\377iangular~,\rriple \357\214\027}T\033\003Gener\255\227\004\373Do\236\215\034Unkno\360\254\000\372\216\002\000\n\356\216\002UNKN\227OWN\211\217\002V\244\211\001\235\210\001p\327res\370\213\001a\363\231\001er\277 limit\014\017n\363 u\220\235\002\032\002Weig\331h\354\221\001\256\216\013Wi\346\212\001\047s\333 S\342\220\002ed\315\216\014Ze\277ro-Lag\333\030[\376\350\226\n]]add_n\227ote\326\232\002 \261\233\003\215\222\001w\377rong dim\247ens\306\235\001\024\tl\275bs\276\336\232\002diffe\320`t\3705\t\300\210\001\360\236\001not dt\317\"\256\233\t \316\230\007mis\275\236\002\317requ\303\212\002\351\235\001 k\013ey\377\236\001g\321\214\001\352\213\002e\003\236\204\001\367, 0\247\227\001100)\376\252\235\002._core.\237multi\355\234\004\222\224\003t\317o im\337\212\001\033\tum\237ath f\023\014\275\220\003_\377%stalib.\037colle\271\237\003\013\003\223\236\002.\026\003ord\352\000d\266\236\001\047\003\260\227\236\003\005\004\214\236\002?\003syG\004t\377hreadingfW\003wa\201\230\002e\003/_\353\240\005\257.pxiy\002/\315\000m\007mon\006\010\311\240\001\025\010\353\221\003-\001\376\307\224\r\047ACACCB\377ANDSACOS\357ADAD\000\000OSC\277ADRADX\216\225\001A\377LLAOAPOA\317ROON\000\002\033\001SI\357NATA\001\000RAV\357GDEV\003\000PRI\277CEAllC\341\220\002S\366\227\241\003sBX""\002BETA\377BOPBodyD\227oji\004\001L\252`\014\001S\357hort\025\001Ver\375y\021\001CCICDL\2772CROWS\006\0003\337BLACK\005\006IN\357SIDE\024\001LIN\277ESTRIK\t\002O\343UT\021\005\325\213\001\235\000SOU\373TH=\001WHITE\177SOLDIERN\001\375A\354\001ONEDBA\373BYh\000ADVAN\337CEBLOe\000DL\317BELT\203\221\001\202\000BR\277EAKAWA\"\001C\373LO\362\000GMARUoBOZU\240\000CO3\000\373ALB\001SWALL\272\016\002U\367\222\001ATT\260\001D\337LDARK6\000UD\337COVER\324\000DO\343JI\000\004\374\214\001\016\001RAG\337ONFLY\024\004EN\177GULFING\202 \017EVEN\007\0001\001\047\004\013\004\0165\004GAP\212!\216!\340\002\265 \341G\216@\224 \333\001e\003HAM\275Mv\002HANGT\000M\216\351\000DLH\305\227\001\344!\002\004R\373OS\351!HIGHW\373AV\334!HIKKA\275K\000\007EMOD\225@H{OM\231\000PIGE\373\000\373DL\211@NTICA{L3\250EINNE\303\"\273IN\360\000TEDx\006K\347ICK\322\003\003\004BYL\364\353\000\240BL\366`ERBO\357TTOM\373@LON\177GLEGGED\252$\360\014\002\356@\227`\367(MATC\235H\250 LOW\024\002\260EM\243OR\251,\013\004\355$O\234\005P\352\220`C\346#R\233\000SHA\375W\232#RISEFA_LL3ME\212`D\205\204\001\313SE\372\231\001Tk\001\366aCD\037LSHOO\014\001\303D\014\0007RTL\237\003SP\205 \302@\367TOP%\001TALLwEDP\225`ERN\014\002~j\001ANDWIC\240\204\001\337TAKUR\363\204\001TA\357SUKI\325@CDL\277THRUST\204cT\366\216\000TA\276aUNIQ_UE3RI\313cU\375B\304\206`\250\205\006X\235\205\001\227`\262\006EI\177LCMFCMO\000\000\337UCOPP\344\204\001OR\377RELCOSCO\377SHCUMSUM\247CVI\256\206\n\203\230\001D\202 U\377LTDEMADI\367SAB\302\000DIVD\373ON\364 ANDPO\373DX\334\247\006DotEF\375I\047\000ERERIE\377XPEqualF\377LOORFOSC\377FRACTALFsar\302\242\005\312\242\005.__\332\246\001\343__\001\r\214\252\005\035\thec\037k_opt\322\247\004\326\227\002>\010\007get\003\030\351\246\001Z\n\230\250\003\256\226\002\177_series\377\237\002\351s\220\010\274\236\001l\240\010rep\355r\236\nst\002\013unix\323\240\001\304\010\272\245\006flagR\007\000\250\001\223\251\t\207&\017\007\276\250\002\013\n\266\253\007\266&\374\350\244\001\303&lookba\023ck\324&\235\244""\003_m\013\016\004Q\013\\\306\244\004\216Frun\232Fs\325 \200\375\246\n\r\n\261\022/\001\376\251\010>\n\374\254\007H\377AHMAHT_D\333CP\263`OD\005\003HAkSE\022\000P\005\000OR\033\000\367SIN\014\001TREN\373DL\001\010MODEH?ighLow\243\236\002\211\247\001\377IMIKAMAK\357CKDJ\240\213\001ARR\033EG\000\006_A\326\207\001\005\007\246\236\002\357CEPT\030\007SLO\377PELNLOG1\3650\247\241\001MK\000CDMA\337CDEXT\003\001FI\375X\020\001MARKET\277FIMASS\002\000V\327PMA\025\000X\203\231\002MA\371_\303\236\001\000\004.__ge\177titem__\t\007\256\210\204\003MED\265\215\002MF\000I\377DPOINTMI>\014\004INMINJ\003\010\000x[\000\001\002\t\005US_D\352\000\375N\004\001MMOMMU\373LT\216\216\001NONEN\377VINearOB{VO\372\217\003Dict\337 \177CENTILE\003\004?RANKPLC\002\001\003\377MPPOPVIP\375V\003\000TQSTIC\177KRMAROC\000\000\371P\003\001\007\001100RS7IRV\000\000OL\226\233\002\256\240\001\357Real\313\216\002ARS\363AR\247 \377\215\001INHS\376\234 MISQRTS\237TDDEV\266\230\002\273\230\002F\036\276\230\005SUBS\377\207\001\377@\335B\375S\205\206\002Shadow\200\243\217\001\004\003\244\217\002\017\003\243\217\005\004\007\022\010s\377T3TANTAN\305H\347\245\001C\000\002\335\220\003\013\002OS\262\376\245\001D\000\002\000\003OS \002D\245R\024\002X\000\003\010\002O\251\246\001P`\001\002\372\220\001\267\246\001\202\221\001*\004SIc\000\211_\203\221\001\320\246\001T:\002\210\221\002\337\246\001V\235G\213\221\002TA_\374\220\003\005\001E\373TA\014\001OPTA_\007CCI\002\001\341\220\005\006\003\341\220\010\n\004\000\351\220\003\027\004\350\220\007(\004\356\220\0046\004\354\220\tI\004\000\356\220\nj\003\361\220\n\014\004\366\220\010\217\003\374\220\005\007\004\000\377\220\005\254\003\373\220\014\016\004\376\220\014\016\005\205\221\010\352\003\034\205\221\013\r\004OJI\000\007\224\237\002\237 \007DLD\220\221\t\251#\226\221\006\010\004\224\221\013\000\010\n>\007\230\221\r\364#\235\221\013\210C\250\221\003\004\005\274\251\221\005\024\005RAMI\000\tC\300\263\221\0012\004\263\221\004\006\005\270\221\002\000\nMO\001D]\004\270\221""\010\376C\267\221\014\016\004\304\221\002\004\005\000\300\221\t\263c\310\221\004\000\n\312\221\005\325c\311\221\t\013\004\034\313\221\n\t\010INE\211\204\003\330\224\005\006\005\200\330\221\006\010\006\237\247\001%\004\331\221\013\010\n\273GO\000\275\010\350\221\005\365\204\003\350\221\010\t\005\350\221\013\234\205\003\352\221\014\000\016\004\361\221\010\t\006\371\221\003/\004\370\221\007@\004\370\221\n\000\014\005\375\221\010\212\206\003\205\222\003\004\005\207\222\004\024\004\211\222\005\000#\004\216\222\003\301\206\003\213\222\t\013\004\214\222\013\350\206\003\215\222\rn\206\207\001EIL\215\207\001MF\001\002\000\360\207\001\245\222\001\240\207\001\246\222\003\005\002\253\222\001\016\002\273\210\001\220\261\222\001\300\207\001\263\222\002\311\207\001V\311\207\001\242\222\001T\037A_DIV\002\001\235\222\004\r\001\332\275\210\002D\325\210\001EF\362\207\001EMZ\204\210\001E\354\210\001ER\014\002X\217\210\001\036\246\222\002TA_F\213\211\003\252\222\004\r\001\236\313\256\001FLAG\267\211\001\204\266\001T\270\351\244\001\326\260\002+\001unc\014\002F\377reeTA_Ge\361t\250\266\001\347\254\003\006\007Info\220\030\003\230\256\002\323\260\006\016\007L\264\220\004>\003O\203pt\021\025\357\246\0031\016\257\263\001\215\nG\224\t\006\224\004H\374\211\001H\371\002\350\217\010TCA_\354\217\007\007\003\363\217\003\023\003S\226\205\003\207HT_\366\217\006,\003\211\220\002\376\217\001T\207A_I\224\207\002\323\257\003\242%\355\257\007T\343A_\217\220\001\003\001\214\214\001KDJ\007TA_\223\220\006\000\t\231\220\003\005\n\231\220\006\340\033\n\240\220\002B\001\200\214\001\246\220\002TA_`\323B\245\220\001\007\002\253\220\002\003\004FI\324\214\001\260\306\220\001\"\002\263\220\003-\002SS\205\214\001M\033AV\222\214\001MA!\003\277\220\003N\001\010\227\220\004Y\001\267bM\235\220\004j\001\240\220\004\006\002\000\207\215\001\245\220\005\013\003E\004\251\220\007\"\003\261\220\002\001\007\365M\263\001O\001\002ULTTcA_\320\237\001\003\001\316\204\002OB\310\204\0018\370\252\004\372e\275\220\007TA_\277\220\010""\n\001\241LW\005\311\220\004\036\001\274\216\002P\236\205\002P\rV\317\216\001PVe\001\331\265\002\203\261\003\303\204\005x\010\010\306\204\004\376\220\003TA_R\257\205\002\343RO\314\217\001\211\221\001\017\001OCRN\000\004100 \001\306\"R\210\206\002\267RVO\322\206\001Re\272\263\001e\370\216\241\003\253\250\004\223\241\005TA_SA\260\361\217\001\252\221\003\013\001\315\217\002SI\266\220\002S\202\241\206\002S\355\213\002\273\221\001+\001\275\221\002\004\002O\253CH\000\005F\t\005R\306BSkUBV\001U\326!SU\314\221\005\346i\001et\216\242\013\r\004omp\377atibilit\371y!\003\357\205\nInteg\243er\007\020\357\222\001R\003U\250\271\004P\374\337\271\002\325\001hutdow\257nTA_\213\222\001_\215\222\002_\312\216\222\004T\373\207\003T\267\257\002\036\001RI\266\215\210\002TR\241\204\002TS\206\211\001T\356\223\204\002TYP\300\221\005ULTZ\244\222\003V\260\"VH\254\211\001V\374\261\001n\257\222\001VWA\323\221\001VW\327\210\002\273WA\335\222\001WCL\375\221\005WgILL\334\222\001\031\003ZL\377\210\001`\203\211\001}\003{\002y\001w\000SIl\005\000k\003k\000h\000b\003a\001^\001\\\000T\005\016T\002WMAN\002\271\234\006\313\234\004\263\301\006\016\265\300\005__c\255\234\021-\010\256\234\020K\010\000\230\234\025n\010\253\234\002\000\r\215\310\001\222\010\226\305\001\000\014\276\301\234\002ARRAY\345\267\002S\223__\240\271\003\016\002S\006\013\345\246\002_\315S\342\236\001S_\234\237\004.\000PA\377NDAS_DAT\377AFRAME__\374\013\004#\004_POLAR\370\023\013\014\003\030\006yx_Py\376\247\230\001_NextRegf__\371\213\004\305\270\001_NS\000\376\227\000__all__\204\004\000\277\264\003e\010\001\275\237\003\351-\3314_|\375\306\002\213\232\007__docN\001\200\203\313\001V\001\304\237\001\251\236\002\265\232\002\341\237\r\304\232\010_\255_\317\237\003__\203V_\215C_\357main\262\001met\371az\003\301\000modul~\274\002mro_en\213\313\001\361s\330\001\237B\342\000prep\303ar\336\002\314\241\001\017\005\201\240\003__\376\371\237\002__ta_veyr\363\255\001\224!test\234!,\202\240\006\373\233\001_d\253\261\003s\245\306\001\354\001\357s_is""\210\255\001out\367ine\243\000okup\374F\001\236\204\003succesqsW\001\221\"\217\301\001_id\000\r\010\022\014\327\271\004\215\001g\203\217\003\365\216\001\004\010\267\217\002\000\030\004\227\216\007)\004\211\217\017B\004\371\216\022\024\005\200\306\002@\304\217\nx\004\226\255\001\322\210\007\r\005\324\302\005_\214\303\003(\270!\374\312\007\306!r\257\212\003_\360\266\003\260%\001_\351\316\004\215\"\214\241\001\030\004\006\016\304\211\t\225AT\270\241\001a\020s\234\211\004a\344 l\377\272\001\347ion\000\t\226\314\001lon\305g\004\rs\255\255\001)\t\025\rma\321x\000\020&\016B\003p\211\270\001ar\375g\261\312\001asciia\375s\313\273\001asynci\337o.cor\231csa\273tr\274\305\003avg\305\305\003b\377begidxbi\367tby\357`2strv\235\271\010cl\321ain_\235\322\001\225e\217\244\001c\313\000e\276\317\002\303\317\002_\364\242\321\001\257\261\010c\317\317\001n_st\367ack\006\003scopOydde\242\307\001\266\204\004_\307\277\002~\302\204\005descri\222\316\002\276\267\307\tdocsd\355\313\te\177mptyend\253\000\357ends\241\320\001enu\375m\363\275\002factor=f\364\000d_ma\307\275\001\006\003\014\251\307\003\024\001k_\002\007\205\266\002)\001!\007\336\"\004irst-\004laqg\345\246\002\273\207\003\216\246\001up_\267\322\001\000\331\207\002\233\315\001\342\207\002\240\314\001\353\207\002\246!\364\207\002\275\317\003\000\241\247\013\367\315\006\313\320\001\235\324\006\254\247\r\244\247\014\203\251\001\340\323\007|\310\311\002\315\311\002shelp\315\322\0014\321\322\001\374\"h\205\303\002ii\230!\370\264\003\035_\226\312\002ini\347\276\001\304\315\001\267\322\tp\320\321\007\331\321\010\256\251\025\213\266\004is_\374\"\376\374\244\001skeykey\375s\240\317\003leftba\343rs\230\267\003\345\251\002\270\250\005low\367low\237blowe\375r\225Cmaximu\357mmax\310\312\003min\350\001\005\221\267\002\226\267\004__\001msg~\337\266\002pliern\211\323\001\377nannbdev\372\000\002d\006\003upno_\317exis\307\326\001\241\324\nnu\005m\270\324\003s\006\001\352\253\006\010\003\362\316\003\372\325\002\376\362\322\003offseto\027nre\204\212\001e""\267\325\001\273\325\001\271\221\001.\312\207\002pen\354\204\002o\323\230\001\267\254\006\362\272\254\014s\\\007\254\267\010outo\177utaroon\317\221\001\376\004\005upoutbe\207arp\234!\007\002\213\206\001\021\001u\373ll\r\005doutf\267ama\002\002st\t\003s\177tkoutha\313\326\0028\005\002\341\326\001\016\002low\026\002\274\002>\225\213\001phase\236\213\002\202\223\002|\000\007\311\003utjouJ\002\177leadsin(\001\247mact\001\003\001h\273\311\001u\375t\016\001signal\271o\t\001\213\002max\010\002x\353id\000\006xN\005min\306&\001in\026\004\004\002\022\010us\377vioutnbe\337lemen\236!pl\002\016\004p\254\"\227\326\001\354\255\002\342\254\010\354\254\t\265\322\004\364\274\322\004\325\207\001i\251!quad\337ratur\361\001re\250\254\002\003\001\201\204\002b\340\324\001u\274\314\001l?middle\006\010\207\276\002<\032\004\201$slow\375!\004\001F\356!sm\260\001\003\000\202&s\225\327\001\034\366$\007\002low\270\332\003\244\333\002\330\325\003\370\305\330\001\256\333\007\275\333\002spene{tr\322\325\002perc\264\316\001\023le\335\320\003\343\320\003s\000\004\342\211\002\363\332\003\247pop\231\310\002\236\310\0020\244\310\0021\250\360\260\t\367\260\016\350\211\003s\316\310\002s\247\325\004y!r\211\307\001\357\307\001\231!\235!0\000\002\312\212\002\342\254!1\000\002\006\006\021\004pla\363ce\334\334\004\361\334\001etCo\226\225\275\001t_\200\323\001r\270\300\001\206\207\001r\047oc1\243\322\003\007\0002\001\006\014\004\377unsschem\177asecond\342\004\007elf\266\262\003\224\260\016\371\257\007\233\335\003\204\260\014\034\321\260\001\206\336\007set\232\221\005\323\336\003\322\311\002\360\257\204\002\222\213\003\272\204\003\327$kip_\301f\360\212\001\337B\263\213\004\006\003\371$lo\003wk\r\010\276\213\005\220a\313\302\002\231aR\004\370\361A\231\324\002\370\214\002level\371s\267\311\001\304\300\003tddev\316\316Dtr2\350\215\002\372\277\004ACX\000\006\300\276\003\017\006OS\033\005D\000\006\266\000\007OS0\006DR \006X\024\000\007\014\006Ob\005P\001\006\205\277\001x\005\334\210\255\004\207\005SIN\222\005TA\000""\001\007Z\006\247\277\002\264\005\234\255\004\305\301\004\243\277\003\005\005\267ETA\020\005OP\347\301\004C\003CI\002\005\230\277\005\006\007\234\277\010\n\010\250\277\003\000\033\010\253\277\0070\010\265\277\004B\010\267\277\tY\010\275\277\n\000\202\007\304\277\n\014\010\315\277\010\257\007\327\277\005\007\010\336\277\005\000\324\007\336\277\014\016\010\345\277\014\016\t\360\277\010\236\047\364\277\013\016\r\010OJI\000\013\214\316\001-\010\213\300\t\000\355\047\225\300\006\010\010\227\300\013\010\016J\013\243\300\r\310G\000\254\300\013\340G\273\300\003\004\t\300\300\005\030\t\227\256\001\000\r\300\232\256\002>\010\326\300\004\006\t\337\300\002\000\016MO\001Du\010\347\300\010\366g\352\300\014\016\010\373\300\002\004\t\000\373\300\t\267\204\007\207\301\004\000\016\215\301\005\341\204\007\220\301\t\013\010\034\226\301\n\t\014INE\241\205\007\253\304\005\006\t\200\257\301\006\010\n\372\326\001-\010\270\301\013\010\016\243kO\000\351\014\323\301\005\251\206\007\327\301\010\t\t\333\301\013\330\206\007\341\301\014\000\016\010\354\301\010\t\n\370\301\0037\010\373\301\007L\010\377\301\n\000\014\t\210\302\010\336\207\007\224\302\003\004\t\232\302\004\030\010\240\302\005\000+\010\251\302\003\245\210\007\252\302\t\013\010\257\302\013\324\210\007\264\302\rn\372\210\005EIL\205\211\005MF\001\006\000\234\212\005\334\302\001\244\211\005\341\302\003\005\006\352\302\001\022\006\223\213\005\020\370\302\001\324\211\005\376\302\002\341\211\005V\341\211\005\365\302\001\345\314\004\207DIV\002\005\370\302\004\021\005\221\213\006D\266\271\213\005EF\242\212\005EM\300\212\005E\026\340\213\005ER\024\006X\323\212\005\241\303\002\316\315\004QF\223\214\007\255\303\004\347\315\004H\213\213\005HL\006\200\256\277\010\035\005\306\277\002\274\277\001\007\007\301\277\003\027\007S`\225\205\007\312\256\t8\007\321\256\006\341\316\004IM\362\213\005t\326\277\001\366\316\004K\364\215\005KDJ\211\317\004\000\346\277\006\000\r\360\277\003\005\016\364\277\006\037\016\377\277\002N\005\000\314\215\005\215\300\002""\364\317\004\317&\224\300\001\013\006\236\300\002\003\010\203FI\314\216\005\301\300\0012\006\262\300\003A\006S\001S\321\215\005\203\257\001X\0061\007\316\300\003r\005\252\300\004\000\201\005\343F\223\257\005\232\005\277\300\004\006\006\223\217\005\314\300\005\016\017\007MAX\000\n\306\333\002.\007\344\300\002\352\001\013M\377\005O\001\006ULT0\220\322\004\223\320\001\003\005\302\204\006OB\270\204\005\375\300\007\010\300\322\004\203\301\010\n\005Lh\t\225\301\004&\005\201\221\006mP\237\205\006PV\240\221\005PV~\0054\271\301\003\243\323\004R\377\204\006RO\254\222\005\320\301\001\356\027\005OCR\000\010100\3040\005\222FR\214\206\006\327\257\001\372\323\004SA\200\266\222\005\356\301\003\017\005\376\221\006\310\257\001$\005\202\206\006S\340\306\204\006\223\302\001C\005\231\302\002\004\006OCH\352\000\tF\r\tR\247fSUBb\202\005U\213E\352\257\007\237\325\004T3\001\005\000\212\223\006\232\302\001\026\005\231\207\007\213\257\003.\005\221\257\001\002\007\026\224\224\005TS\360\210\005T\255\204\006\235\257\005\217\326\0044\243\257\003\234\326\004V\231&VH\252\211\005\257\257\003\306\031\005WA\331\223\005\271\257\001\323\326\004WA\000\257\225\005\275\257\005\021\005\305\257\001\035\005\324\210\006\314\257\002\274\326\002\347ble\216\327\003\217\252\001lib\376\303\326\007imeStamOptim\242\232\004\000\0071\013\007\2752\026\0073to_\304\327\003y\353pe\341\342\001_\375\251\004upd\027ate\000\003_\347\360\001\203\333\002\342\345\002\004\367\330\003\205\253\004v\327\244\003\247\366\003\255\366\003\361\245\002\317\327\001\356\317\327\005wma\224\355\003\200\001\330\377\004\007\200u\210C\210q\377\330\010\020\220\005\220Q\330\377\014\r\330\020\026\320\026+\377\2501\250A\330\014 \240\277\013\2501\330\010\017\035\000\004\377\013\320\013\034\230A\230Q\336/\003y\220\003\220\023\004\t\022\373\220#7\000\010\026\220a\330\240\000\t\000\025\000-\000]\235\200 \340\330\002\004\377\n\210)\2201\220A\330\377\010\027\220z\240\021\200\001\377\340\004\017\320\017#\2401\337\330\004\013\2101\013\001\022\220\377,\230a""\330\004\025\220Q\357\220o\240Q\014\003.\240\001\276\r\002\320\026\047\240q \002\320\277\022&\240a\240q\017\004-\355\250#\003\320\022\035\000\250\r\260\337[\300\013\3101+\004.\250\275a+\0042\260!\260\016\0059\375\270x\001#$\360&\000\005\277\014\210;\220a\220I\000\r\177\210T\220\026\220q\230\320@\377\r\210]\230!\2308\240\377:\250T\260\021\330\004\r\377\210U\220\047\230\022\2307\377\240\"\240A\330\004\017\210\177w\220e\230?\250\"\336@\377\004\016\320\016\037\230q\240\353\010\250\207`\021=\000r\230\024\377\230Y\240k\260\024\260V\377\2701\270I\300]\320R\377S\320S_\320_`\320\377`o\320oz\360\000\000\357{\001B\002\004\000B\002H\356\003\001H\002I\n\001I\002J\335\002\362\003i\230q\207%#;o\2701\360(f;M\270\277\000\376\203\200 [\320[\\\320\\h\277\320hi\320ix\243\000y\273\001D\242\001D\002K\251\001K\273\002Q\260\001Q\002R\267\001Rs\002S/{\247\000]\320]\247\000\357j\320jy\320 z\001E.\317!E\002L\326!L\234\007\354 \267S\002T\310/$%\301\2028\320\177\033+\2502\250Q\330\356L\377\027\230\002\230$\230i\240\377{\260$\260f\270A\270\377Y\300m\320ST\320T\376\367@a\320ap\320p{.\372@|\001C\371AC\354G\217`\311J\342 \357\204\003j\350\204\001\206\205\003$^\2701\234\204\037n\320\375T\343 d\320dp\320p\177q\360\000\000r\001A\264\210\001\325A\335\205\005S\302\210\001S\334\047\360\000o\000Z\002[\333/%&\257\205:\337,\250B\250a\334\205\r\030\230\377\022\2304\230y\250\013\260\3774\260v\270Q\270i\300\377}\320TU\320Ua\320\375a\232`q\320q|\360\000\333\000}\273\210\005J\002\336\205\004\360\000\357\000K\002L\342\211\004k\240\021\336\360\213\005%=\320=;\000V\360\3712\325\2028\245\001m\270=\310\001\376\213\207\013\024\320\024%\240Q""\240\375h\301\001\022\320\022#\2401\033\240H\266\213\001\021\220\260\022\245\207\003\277\000\377}\320}~\360\000\000\177K\001N\252\213\001N\306\204\005\223df\277\213\001wf\002g\306\213\001g\002r\315\213\001\367r\002}\324\213\001}\002J\003v\320\207\001\003P\003\001P\003Q\n\001wQ\003\\\021\001\\\003g\030\001wg\003r\037\001r\003x&\001\367x\003y-\001y\003z\003\274\364\215\003\222$:\320\025%\377\215\002%_>\270a\360,\333\200\320>;\000\375W\254\210\001\016\210[\230\001\230\376\222\220\002V\2206\230\021\230!D\236\220\001\251\220\005V\341\220\001\235\220\021\213\210\"&\243\007\277b\320bk\320k\371 x\323\320x\335\215\003\241\220\004T\271\220\001T\002\325[\300\220\001[\355%b\316\220\001b\002\355c\331\211\017\047(\255\215:.\250b\375\260\302\205\014\021\220\032\2302\230\377T\240\031\250+\260T\270\377\026\270q\300\t\310\035\320\357VW\320W\251\210\003s\320s\252\263\205\003F\343\221\001F\214\217\005M\361\221\001M\013\002N\340\221\004m\354\223\007\235\003\237\2016\202\210\034\3016j6\226\210\010\303 \357\2139\277$\r\320?\r\036\230a\230x\267\225\001\000\th\251\201&\337\221\004\242\204\013W\312\224\001W\002\374D\335h\330\224\001h\002n\337\224\001n\002\335o\346\224\001o\002p\347+9\220\377A\200\001\340\047?\270q\314\244\220:\230a\r\270\367\221\016\211r^\320\017^_\320_\314\204\003\202\222\003\370\215\004\327\211\004\360\317\204\004\311\207\006\376\227\003\231i?\320?V\377\320Vm\320mn\3604\374\373\2168\257\003Z\300z\320QR\377\330\004\027\320\027(\250\001\373\250\030\343\227\001\030\320\030)\250\237\021\250(""\260!\n\013\331\204\024`\377\320`j\320js\320s\037t\360\000\000u\224\216\005\324\227\004\247\226\004E\\\345\227\001\\\213\211\005\237\213\004\223\211\004~\201\230\001w~\002I\251\213\001I\003Z\260\213\001wZ\003`\267\213\001`\003a\276\213\001wa\003l\305\213\001l\003w\314\213\001\377w\003G\004\360\000\000G\273\004M\003\001M\004N\n\001N\367\004O\004\236)\320\013\036\320\377\0362\260!\200\001\340(\275)\245\225:/\250r\260\250\230\016\033\377\230B\230d\240)\250;\377\260d\270&\300\001\300\031\377\310-\320WX\320Xd\377\320de\320et\320t\370\207\223\003\322\221\004\350\206\006\360\000\000N\002EO\330\231\004n\277\232\001\350\233\003\240\000.\305\2228\370\220\020\322\216\027\251\017/\320YZ\320\377Zf\320fg\320gv\217\360\000\000w\217\233\005\211\233\004\335\214\004P\242\250\233\001P\347\211\005\360\216\004\310\214\022E\363\216\001E\252\357\216\005[\201\217\001[\302Eb\217\217\001b\343\003c\333\216\004\376\004\331\216\006(?\320\343?W\310 \323\224:\257A\034\270]\371\310\341\227\016\245O,\320Vc\320\255c\324\223\001\320q\274\220)h\262P@\377\320@S\320Sk\320k\354\250\221\003\354\226\006\3608\235\202<\035\270m/\310=\320X\324cu\255\222%\217\204\022\277d\320dq\320q\302\222\n]\356\200\237\001]\002^\207\237\001^\002j.\216\237\001j\002k\225\237\001k\246\220\005\312D\335L\313\222\001L\003R\322\222\001R\003\335S\331\222\001S\003^\340\222\001^\003\335i\347\222\001i\003v\356\222\001v\003\335|\365\222\001|\003}\374\222\001}\003\335H\254\206\001H\004S\263\206\001S\004\335^\272\206\001^\004d\301\206\001d\004\235e\310\206\001e\004f\267\206\004\200m)\275*\342\234:0\260\002\260\347\233\016\034\377\230R\230t\2409\250K\377\260t\2706\300\021\300)\376\331!Y\320Ye\320ef\177\320fu\360\000\000v\331\227\005\300\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005aC\021\220\231\036\270\242\007\207\034\320u\263\222\003\200\037\026\377\220f\230J\240a\330\004\377\010\210\007\320\017\037\230q\316\361\244\001q\230\006\333\244\001\347\244\003)A\377\320A[\320[u\320u\347v\3600\315\2338\352!-\270\177\277\310o\320]^""\330\315\245\001 \277\240\001\240\030\250\021\000\t\330\007\004\021\220\3542\364\207\006\246\221\004\216\234\004\325\232\004\252\345\222\004c\254\244\001c\314\216\005v\272\244\001v\253\002|\301\244\001|\354\227\005H\360\227\001H\334\226\204\005\340\207\032o\240Q\354\246\001;\220\366\227\246\001*+\314\241:1\260\022\260\376\272\234\016\035\230b\240\004\240I\377\250[\270\004\270F\300!\257\3009\310M\277\211*Q\204\246\003\320\343\026&\274A\224\250\003\231\014\020\220\t\317\230\024\230Q\230\247\001\255\247\006\016\210\375a\343!\026\220r\230\026\230\377x\240r\250\024\250V\260\3778\2702\270T\300\034\310\377]\320Z[\320[g\320\177gh\320hw\320w\321\225\001\036\336\246\016*B\300!\342\246\n21\235\236\023\346\353\247\004C\002\037S\373\215\003q\320q\237r\360\000\000s\330\250\005\343\244\004D\306\307\250\017+,\356\251\n\2638\321\245\001&\240\377\010\250\002\250$\250f\260\377H\270B\270d\300,\310\375m\241\250\t\320xy\320yz\356\257\245\016+C\300\201\2519\320\0332\337\260\"\260M\300\255\251\016\036\230\377r\240\024\240Y\250k\270\177\024\270V\3001\300I\330A\016\323Ct\320t\302\210\003\207\250\004\265\216\004\232\225\004\006\344\212\013_\002\313\254\007\367\254\005\242\016\345\2001\334\202\"\374\335\247\0100Bj\320jk\320k0\325\204\001\266\253\002\304\254\023h\n\320C\356\253\001\364\245\n\356\323\2021h\320h\363a\320r~\323\320~\205\247\003\252\221\013Q\353\246\017+Ds\300A\277\205%\351sn\320\\\206\235\023\354\340\243\006\275\252\016,-\264\253:3\2602\375\260\340\253\016\037\240\002\240$\240\377i\250{\270$\270f\300\347A\300Y\212\205\013\235\256%\320\026(\340\272\260\001\374\261\003\231\014\315\210\030\377\245\0016\240\030\377\250\022\2504\250v\260X\377\270R\270t\300<\310}\373\320\\\220\256\007\320yz\320z\301{\310\243\n\342\262\001\211 \274\2519\205$\020\220\031\016\304\234\005\000\010\021\220\362\200!\302\250\004\221\247\004t\334\225\004\246\231\013d\240\262\001d\002m\247\262\001um\306\243\005t\265\262\001t\002u\231\213\005>\264\"\025\220V\2309\225\263\001\340\216\007\237\026\220a\220v\233\213""\001\000\031\013\367\210<\220\314\264\001,D\320D\370\315\260\001\360\247\n\310\213\026\024\220A\330\004\007\022\220!\316\216\001\3526\300\262\001\257\242\005\313\216\013`\245\245\004\255\236\004\254\245\004\267\242\004\222\233\013t\002\370\246\023\017,E\300Q\201\247\n\363\214\026\212\215\004\223s\241|\206\215\005\245\211\r\257\242\004\207KR\245\246\021-\371.\236\213%\213\246\001F\240(\250\"\377\250D\260\006\260h\270b\377\300\004\300L\320P]\320\317]^\320^\266\210\003\246\204\001\320{y|\366\267\003\360\245\010-E\320E$\001~\356\245\n\022\220)\2306\240\366\245\013\204\370\216\004\235\214\021.f\002\215\236\036\315\265\014\201\263\010.\371/\210\215%\227\245\001V\2408\2502\377\250T\260\026\260x\270r?\300\024\300\\\320Q\362\240\n\344\000\007\320|}\321\240\016_\003\326\247\006\311\030\347\206\021\301>J\030\337\255\010\307\000\350\261\t\264\221\021\r\210B\323\221\002Q\260\224\001\250\200$\350\256\002\264\224\013H\337\243\021\017.F\300a\272\221%\2607\256\236\003\361\241\006\364\241\271\004\373\267\004F\316\247\017.F\320FG]\320]\231\217\002\257\243\t\261\223\021\027\207\274\001\341\030\201\274\001\005\002\346\250\003\273Sh\320h?r\320r{\320{\346\260\003\276\273\006\240\314\267\002\375\234\007\222\262\001\277\210\004\216\246\004B\234\257\001B{\003C\243\257\001C\003D\003\253\242\024\363/0\375\221%\224\242\001f\240H\250\377B\250d\260&\270\010\300\177\002\300$\300l\320R\360\274\003\034\270\256\004\357`\320}~\325\276\003\371\241\010b\000\360\370\241\t\322\210\"X\024\366\262\003n\320noC\320o\205\217\006\355\262\013\256\254\004\220\245\004]\205\243\013\302\347\260\006/\255@\254\247\001\365\217%\350\024^\320_^k\320kx\344\211!X\213\244\017\177/G\320GZ\320Z\313\225\003\360\303\254\004\215\267\006\317\240\n\370\2009_\320_l\243\320l\275\275\003\211\270\004\307\261\004e\240\300\001e\321\002\341\263\004\255\247\013\263kM\353\263\001M\003\325N\362\263\001N\221\240\005_\200\264\001_\003\355`\332\243\02401\303\275:7\260r\376\306\300\016\320\021$\240B\240d\377\250)\260;\270d\300&\217\310\001\310""\031\364l\216\267\002\246\263\031W\202\361\232\005,\327\302\001\215\304\003\233\014\336\232\030\335\240\001v\377\240X\250R\250t\2606\377\270\030\300\022\3004\300|\263\320S\371\276\003\264\253\001\320n\320\266\001\320s~\177\270\240\016B \021\220\021\275\236\005\376-5H\320Hb\320b|\007\320|}\343\237\n\270\234\021\254\310\002\261\310\002\262\237\003\200\302\023\345\205\001\227\270\t\220\266\004\330\205\013\315\244\004\220\266\004w\356\367\304\001w\002x\376\304\001x\002y\231\002\307\242\n\215\237\00312\365\232%\345\236\001\006\377\240h\250b\260\004\260F\377\270(\300\"\300D\310\014\353\320T\364\206\022A\302\236\0202J\310|\310\235&\363\232\001\026\240x\250r\326\306\002\3778\3002\300T\310\034\320\017Ub\320b\202\300\003\322\"\320\266\001\342\253\022\314\267\310\002\336\310\00534\326\234%\336\226\001&\250\367\010\260\002\316\303\002H\300B\300\003d\310\266\251\003\204\276\020\326\236\013\311\226\no\000\326\215\035\037\020\220\001\330\004\000\002\275\225\003G-\330\230\246\022\322\227\006\344\224\00345\271\305:;\270\3352\335\262\016\320\021(\227\237\002i\260\377{\300$\300f\310A\3109Y\327\253\002\201\3003\320\0260\352\267\001\207\314\003\36378\376\237$\364\207\003f\250H\260\375B\224\260\002\010\310\002\310$\310\207l\320Z\200\237\023\341\245\006\317\314\004\342\207\010;\371?\272\320\n\200\202:\261\314&\177k\320QT\320TZ\320\250\002\202\327\260\003r\361\241\017\327\004\221\302\004\244\304\004\231\273\004i\200\203\312\017\334""\300\003\300\203F\326\314(\274\017\310\203?\277\316\010>:\340\204\001\360\212\200L_\270A\337\317\037\230L\267s\320s\214\200J@A\265\325\n\014\223\210K\264\325\t\243\207\0225\233\311\001\206\304\027Q\356\257\200\"V\320V\374\322\003f\320f\024\334\274\"\272\260\004i\364\325\001i\343\265\007\343\321\016\316\000\366\345\206F\320\033\223\307\004\023\320\023$\357\240A\240X\256\323\001\021\320\021\177\"\240!\2408\2501\216\262\001\016\224\307\017\013\320S\254\200.\335\301\022\352\310\004\215\273\004\335O\216\313\001O\003U\225\313\001U\003\275V\234\313\001V\003W\003\340\240\n?}\230\263\276\001@X\320XY\340\203I\362\233\311\001}\232\204\017\331\037\360\000\000t\320\307\300\014\203\267\013\264\271\004\316Dp\320\331\001p\002@\226\264\004\336\223\006\277\242\016\357\265\001\200\332\003\344\321\004\177\211\332\001\323\177\002\233\275\004\336\300\004h\350\300\001h\004\343i\004\337\302\n\235\211<\253\304\002\320=O\037\320Of\320f\261\330\003\327\276\004\256\305\004\370\312\265\006\313\327\r\337\310\017\033\320TW\320\035W\273\244\003g\320g\376\302\003\313\323\004\315\273\004\335q\342\333\001q\002G\212\317\001G\003\272\212\232\004s\230\317\001s\003J\310\302\001J\273\004K\317\302\001K\004W\326\302\001W\273\004X\335\302\001X\004g\344\302\001g\273\004r\353\302\001r\004y\362\302\001y{\004\177\371\302\001\177\004@\005\353\325\0017\005A\005\217\305\016BC\273\213I\330\302$\277+\320UX\320X\326\306\003h\343\320h\306\271\002\306\301\001\361\263\006\360\000\000CD\002\242\324\004\344\275\004\322\234\004\211\230\013m\214\303\017b\313\003\r\312\210\007\356\315\006\231\337\0017\240\352\315\n\177U\260(\270*\300F\370\300\001:\250\2102%\277\324\004{\320R\203\200K\306\333\010\260\237@\276\337\013\304\n\321\222\0226\310\350\340\024\320\001\033\360\325$\200\200N\253\326\010\313\003\231F\360\213\014\215RuE\230\20065\301\322\004\013\320S\245\203K\240\305\t\370\211\002\336\325\t\217\222<\302\311\001\033\245\217\001\023\377\220>\240\021\240(\250!\232\270\257\001.\230\277\005\021\220\300\311\017\304\205\014s\003""\320s\334\335\003\365\332\004\307\311\013\276\304\004\245\243\004\352\207\004\224\325\236\013\337\247\004K\220\330\001K\363\213\005\206\330\004]\316\245\330\001]\003^\210\310\013\203\214\003CD\374\213\224I\353\303$;\320VY\320Y\016\250\346\003i\320i\242\336\006\325\252\013\373\324\004\244\336\004\200\203\332\004\360\327\004\341\251\006\234\304\016\302\014\356\220<\361\324$\033\003\320T\203\200K\254\325\010\237@\263\315\t\272\227<\255\307\004@\353\320#\272\307\017\206\2021\226\324\004\351\231\004\320\304\004A\271\335\001\323A\003\356\311\004\233\204\004c\316\335\001c\003\335d\325\335\001d\003o\334\335\001o\003\325z\343\335\001z\303\215\005P\232\321\001P\004=Q\241\321\001Q\004R\004\241\310\t\214\321\010\317CZ\320Z\243\301\002\304\335\t\016\210\311k\274\332\t\334\235\0227\302\213\027\236\341\001l\270;,\300\203\341 {\320R\325\204\t\360\311\003@\210\354\004\370\333\013\266\345\013\317\326\004\316\335\004\307\335\004@\344\337\001\333@\003\253$B\003\330\272\016DE\350\272\354\001\331\211E\354\332\034U\214\323\004+\320UwZ\320Z\357\351\003j\320j\213\300\006\036\227\262\006\360\000\000F\263\337\005\341\345\004\300\341\004\302\231\261\013o\230\333\017\242\272\003\254\264\022\254\241\006\017\210\237y\230\003\2301\261\241\n\376\306\032[\016\337\317\002r\320r\334\211\r\355\270\023\225\357\010\263\273\001\000\357\303\002\221\342\t\222\310\006Q>\271\306\020\207\324\013\227\350\023\266\360\010\343EF\272\310\023\211\201!\344\306\023k\320Y\000\332\265\"\276\355\010\266\272\006\342\362\006\366\200*l\031\214\202&\203\t\202\214\357\001\360\213\2036\376\026\211\267\003\236\203#\334\357\010G\371H\335\313\023\304\236\006\021\220\031\230%\000\220\364\001\220\365\003\362\274\002\321\274\030\230\312\002\301\363\003\206\226\006\204\272\023,w\013\221\204/\023\220\300\235\002\021\302\235\005\316\276\020g[\320[n\032\200\301\013X\002\376\234\020\001G\270\366\001\365\2017\343\277\024\223\003\222\230\033\212\340\006\203\300\016?Hb\360\000\000c\277\367\005\204\353\004\245F\362\352\001F\212\327\005\230""\336\004o\260\336\001o\037\004p\004\3606\340\370\010\366\206*\273\277\024?\\\320\\i\320i\315\364\003\203\357\004t\215\354\004\222\323\004T\202\354\001T\003h\211\354\001wh\003\177\220\354\001\177\003@\300\337\001W@\004L\307\337\001L\303\337\005\\\325\337\001\367\\\004]\334\337\001]\004^\004\346\353\341\016IJ\215\2077\205\274\024]\320]\000\217\314\"\244\337\010\200\003\210\233\006\215\205\010\212\352\004\213\303\010\232\233\006\016\373\302\030-\310~^$\213\367\010\210 \251\301\024\000o\023\243\206\t\234\312\023]%\244\361\010\177\003\370\017\234\207\025\204\250\235\002\363\306\030=\230\305\005\242\317\037z\t\225\206\002.p\247\204.\263\207\002\273\311\004\204wh\320h\306\322\006\036\265\325\006\360\000\000C\316\373\014\361\354\006\217\206\0013\002d\330\343\013\316\245\003JK\314\2147\276\273\024\002\302\262$\220\345\331\004\362\315\001n\025\305\212!\274\307\027\343\320\"\004\341\355\010\211 0\331\207.\204\305\016\337\2004\346\341\013\331\314\023<\230\334\003\276\350\010Ja\320a\377\360\002\223\304\022~\262\226\006\023\2209\230G\240\342\222\022:\224\321\023\177\365\313\002v\320v\276\235\037\236\343\004\215_\247\370\017KL\277\374\001\324\2053\227\313\021]\370\261\306\002\354\365\003\322\331\001\360\000\000{\001\314\251\371\023\266\361\010YZ\355\263\023\200\257\016\025\240\355a\241\364\tT\260\305\267\003h\310j\303\320X\211\316\001\270\267\030\335\260\016\323\265\036n\320\017ns\320s\275\006\240\312\004\223\355\004\243\377\004\036\321&\360\000\000_\255\360\005\255\367\004\330\230\004,\321\215\004\300\251\004H\003\246\336\016Y\227\375\003\366\311\007\370\271\373\t\303\271\006\300\200IM\270\034\300Q\000\225\357%\352\200;\324\242\013\362\306\031\200\307\004\217\235 \357\253\004\242\235\006O\360\000\000R\366\216\005\362\255\004x\350\357\001\027x\004~\357\357\001~\363\253\007\247\341\t\341\357\010\363Z[\243\203Z\336\2705o\320ot{\320t\377\330\001\360\000\000|\345\372\005>\335\322\006\360\000\000S\002\265\231\013\250\365\004\370\247\374\004\204\240\004\361f\360\000\000H\003\003I\003""\331\340\016\374\000\317\274\022\270\205D\214\273\006\275\264\t\372\310\264\n\220\242\342\001$\230i\240{\036\243\304\002A\270Y\300\222\273\014\313\200=\326\224\0044\204\355\004\353\313\004X\267\364\001X\003\226\242\004\217\242\004\025u\314\364\001u\212\355\005w\240+\336\264\003\316\315\004\214\357\375\004\326\350\004d\002\370\351\n\350\205M\365\375\007}\037\320TU\330\004\377\371\t\200\201I\316\264\004\n\347\311\004{\250\376\001{\243\352\005\235\352\004\353\366\004\260+t\302\357\004\324\244\004p\221\367\001p\003{\230\367\001w{\003F\365\366\001F\004R\374\366\001\365R\236\263\005Y\212\367\001Y\004Z\004\204\354\345\n\324\372\003Z\215\370\003\273\364\004\303\317\004\341\265\004@\371\003\376\227\n\222\201S_\270O\310?\377\320Zi\320ij\330\004\377\013\320\013\034\230A\230X\010\362\353\002\000\t\r\010\021\213\2045\224\355\013\333\371\004\275\247\004\335P\327\371\001P\003Q\336\371\001Q\003~\344\254\006\360\000\000^\003m\363\371\001Wm\003x\372\371\001x\261\362\005B\336\371\001\027B\004C\345\371\001C\332\371\005\342$\227\231\004\245c\201\372\001c\277\362\005\330\232\004z\226\372\001z\272\246\211\005D\240\266\001D\005E\247\266\001E\367\005F\005\215\351\n7\220\047\230?\021\200\001\340[\\\324\210\\\366\262\047\367U\320U\207\347\001\320\\e\320\177ep\320pu\320u\313\330\006x\216\360\004\200\360\013\374\324\007\000\000a\002\361\272\004h\343\204\004\324\330\004\334\204\013J\210\250\017\\]\323\212\\\236\365\276\004\016\320\016\037\323\363\007\317\276\036q\037\320qv\320v\302\317\006\302\374\004\200\237\006\037\360\000\000U\002\246\342\013\336\272\004\206\362\004\364\314\332\004\315\376\004J\327\376\001J\003K\003\002\304\340\016\\\353\373\003\237\377\004\316\373\004\305\252\007\345\217Y\221\301\003\037\177\270o\310_\300\351\003\227\364\031\372\2004\340\265\330\013\256\346\004\350\334\004\271\371\013\236\330\006\360\000\000\321`\312\256\014\207\206\004\300\371\004I\312\371\001I\004]T\321\371\001T\004_\330\371\001_\243\275\005\335m\346\371\001m\004n\355\371\001n\004so\004\270\343\n\342\364""\003]^\360\306\215[\036\212\263\004\020\320\020!\342\266\005\337\303\013\243\277\036?r\320rw\320w\206\376\006\376\371\004\215U\374\377\001U\002\261\347\004\340\234\013\252\347\004}F\307\374\001}\002\201\216 \357\210\004\376\277\004t\325\374\001\047t\003u\364\337\n\216\351\004]\234\204\003\221\352\007>\334\200_\016\270n\310A\311\301.\2403\360\340\351\004\276\353\004\313\351\013\377\214\007\000\000@\003\272\224\306\004Z\341\376\001Z\003a\350\376\001ak\003g\357\376\001g\264\245\005i\003\233\346\016\177]w\360\000\000x\001\302\223\007\370\365\265\022\270\222F\266\304\001\017\270\177\310a\000\304\373\031\252\2034\227\365\004\342\337\004\377\265\013\234\344\013\264\206\004\257\273\004\335e\356\373\001e\003k\365\373\001k\003\335l\374\373\001l\003w\203\374\001w\003`\302\215\004\337\304\004\205\266\023\303\270\004\201\374\003^_\343\226\\~\233\3043s\320sx\320x\322\364\006\270\334\346\004\266\356\013\266\224\007\000\000d\241\360\005~\206\256\376\001~\002\370\312\004\366\275\004\265\225\006\365\345\016_\371`\342\230\\\312\2753t\320ty\320\001y\363\277\n\333\365\004\314\371\004\236\270\004\245\362\004\254\344\004\236\362\004\014\321\312\004\245\227\022N\003\362\341\016\200 \346\204[\223\274K\320\327\200A\201\317\022\373\207\004\311\205\004}\247\353\001}\003\272\213\224\004D\222\315\001D\004O\231\315\001O\273\004Z\240\315\001Z\004j\247\315\001j\276\337\257\001\000\000p\004q\265\315\001q\033\004r\350\274\025`a\323\264%\347\263\027\301\243\002\006\374\270T`x\274\374\002\211\367\007\221\261$\217\034\306\356\016\376\256\333\001\026\230x\240r\250\024\377\250V\2608\2702\270T\027\300\034\310\202\273\006~\322\345\002\213\352\004\307\375\004\320\371\222\013\346\204\013\307\345\006\373\375\001\002\204\352\013O\003\006\240\241\024ab\276\201K\226\272\031\211\326\033\340\364\027\241\000@\273\256$\221|\251\267\002\254\267\004h>\252\371\013c\326\377\013\342\303\325\003a\272\251\002\267\312\022\317\241F2\260\"/\260M\300\021\370\332\r\036\350\227\007\262\350\001\377\024\240Y\250k\270\024\270\337V""\3001\300I\337a[\320\375[\246\361\003k\320kv\320v4\276\266\003\326\260\013L\372\374\001L\002\277\363\004\376\356\004\240\273\336\004\376\302\004\311\225\013\367\356\004\333\327\004[\336\363\001[Q\003\340\312\004\307\220\004\260\305\004y\372\363\001y\202\267\014\371A\252\305\003\236\351\006:\220Q\200\001\323\340a\223\360\003\221\371\004j\216\376\001j\002\017k\002\3604\246\270#\243\207\034\343\367\002\356\202!\360\376\327\t\340\350\004\274\257\013\220\007\000\000k\002\264\364\331\004\365\241\004D\351\365\001D\003\202\332\004F\205\003\234\241\020a\300\271\003\224\376\004\242\355\004\355\253\007:\016\251\200B\013\2101\373\353\002\200\354\002\271\377\001\304\301\031@\222\307\003\313\370\004\316\240\022\203\307\004\267\224\022\361\240\004W\343\367\001\263W\003\237\246\004\334\231\013a\003\201\240\022bIc\320\212K\345\377\023{\225\352\002\271\266\"T\341\261\0173cd\364\213K\315\276Rc}\351\347\002\276\312\004\000\370\372\004\277\253\007\217\214C\231\363\t\313\300\032\247\230\003\313\367\022\226\236\004<\355\350\004\302\313\006\360\000\000B\261\245\005\351\226\013\275^\271\374\001^\003_\003\322\235\020d\003e\360\347\212C\201\361\004\355\365\002\343\300\032\204\323\033\265\235\004\010\230\213\023\303\321\004\224\361\003d\252C\315\224\007\257\214C\361\313\004@\246\302\032\304\233\003\333\373\004\310\243 \202\373\006\362\336\016d\260\220\003\002\361\377\0072\343\211B\200\370\t\360\303\032\265\222\003\332\372\004\377\226 \030\342\355\004\261\320\023\222\233\nef\350\223K\370\303\032\224\320\033\214\252\310\006\264\232\016fg\215\225K\336\277\032\215\275\002\000\007\000z\001\316\312\013\273\311\023\373\277\010\242\000\320\202C\260\346\276+\212\200\"\271\216\013\231\242\013A\003\272\326\024w9x\333\274\036\331\341\014\025\240g\207\353\001\311\315\003\3578\240:\250\367\274\re\320e\007o\320o\311\344\001\315\365\023\302\267K\374\347\004\204\315\004\r\\\234\376\001\\\002\322\336\004\354\365\004\344\222\013\351\326\013\240\336\260\004\353\222\004\277\351\004\356\312\004\316\263\004j\241""\270\017|\375}\327\376\n\013\210;\220a\220\367q\330\004\225\275\027\026\240u\250\375A\253\277\0174\300x\310z\320\177Y\\\320\\d\320d\354\276\003\311t\2365\253\225\001A\364\355\001\201\225\035\\\320\377\\b\320bc\320cl\037\320lw\320w\251\353\003\372\340\004\237\331\013\000\272\317\004\233\370\004\215\256\013\333\347\004\307\277\004\212\356\004\300\277\013\203\356\004T\315\214\004\244\315\004n\251\356\001n\336\333\005p\240\356\003\036\264\377\n~\177\360,\311\2247\221\313\025\221\204\004\300\277\322\032\371\325\003\350\353\003\210\311\013\366\326!\212\365\007\360\004\337\000A\002B\002\222\202p6\260\367b\270\001\367K\320\021#\240\3772\240T\250\031\260+\270\377T\300\026\300q\310\t\320\177Q\\\320\\`\320`\346\327\003?p\320p{\320{\216\236\003\271\333\013\000\211\331\004\301\372\004\313\357\004\333\353\004\251\374\004\337\337\004\236\255\004\222\246\004>\222\262\006\360\000\000K\003\366\252\004\374\357\004\232\304\250\004r\260\362\001r\003\243\255\006\247\377\004+M\250\302\226\003\200\001\277\"\343\215\007.\262\202]0\256\324\032\313\263\003\272\305\047\365\341\004p\002\221\362\r\227`\367C\002D\246\202q8\270\002\270\375!\212m%\240R\240t\250\3779\260K\270t\3006\310\377\021\310)\320S^\320^wb\320b\335\330\003r\320r\344\225\003\000\230\351\004\244\242\013\345\307\004\315\211\004\363\374\022\236\362\004\206\257\013\331\300\013p\246\351\004\366\343\004\227\207\004\263\261\006\360\000\000\352\300\001\272\227d-\341\367\001\013\2101\231bD\373\002E\356\204q9\270\022\2701\376\322\205\r&\240b\250\004\250I\357\260[\300\004\243\361\001\3109\320\177T_\320_c\320c\240\276\001\037\320js\320s\355\244\003\205\344\004\366\263\004\340\315\311\004\246\312\004\347\353\004\353\321\004\300\377\006\360\000\000\203i\002\306\316\004\205\344\013\372\244\013\252\257\013\223\303\031\320\017\026.\250a\251\235\002\276\047\316\341\022\257\214\006\230\332\341\030\257\335\027\314\214\004\021\220\276\334\002\247\242\001\026\377\240x\250r\260\024\260V\377\2708\3002\300T\310\034\377\320Ua\320al\320l\220\250\367\003""\210+\214\266\013\347\207\013g\312\364\003\252\213\t\360\337\004\000E\002F\377\210q:\270\273\"\270\351\215\014\320\021\047\366\250\002Y\377\260k\300\024\300V\3101\377\310I\320U`\320`d;\320d\221\332\003t\320t\362\357\003\304\366\004\016\324\315\007\000\000J\303\366\014\311\376\022\244\350\004\304\233\013h\237\244\004\210\375\004\304\233\004f\231\375\001f\003\355\304\004\325v\247\375\001v\301\263\005x\366\215\005/\250}q\207gH\002I\002\360\261\202]\376\220\214\003V\2508\2602\260T\377\270\026\270x\300r\310\024\017\310\\\320Y\241\301\003\333\236\003\241\246\004\217\362\004\036\360\231\007\000\000Z\002\222\375\004\256\245\006\255\213\021\347J\002Kfa\302\211\001v\250X\377\260R\260t\2706\300\030\377\310\022\3104\310|\320[?g\320gr\320r\332\363\003\316\376\013\330\312\221\004\207\224\004\227\372\022\320\026\340\210\nK\002\371L\260\201a\304\210\001\006\250h\260b\377\270\004\270F\300(\310\"\377\310D\320P\\\320\\h\007\320hs\234\247\t\233\351\013\310\225\013\226\363\022\345\207\014\347L\002M\377\202a\202\206\001\026\250x\373\260r\233\253\0028\3102\310T\377\320Q]\320]i\320i\260\330\222\n\375\353\013\272\331\013\241\355\022\320\026\245\205\ni\305\001\265\225\0070\371\251B\314\355\004\237\211\031`\320\017`m\320m\270\226\003\221\211\047\312\307\004\306\370\004yr\272\211\014\224\254\002\360\004\000z\361\275\0100\312\375\t\334\326\021\256\232O\332\307\001}\270\202\331\016\251\3074\000\205\331\004\353\362\004\205\331\013\362\362\004\235\365\004\202\276\013\264\300\004\340\314\004\272\304\305\004j\345\372\001j\003q\354\372\001q\354\275\211\007\253\300\001\003y\371\307\016\360\006\000\177\005\017\320\016\036\230a\336\353\001\377\007\200x\210s\220!\330\377\010\t\330\004\t\210\021\330\377\004\022\320\022\047\240q\250\335\004\366\232\001\025\220Q\223\216\002\200\001\370\036\024\212\250\0022\002\020\320\020%\240{Q\240\272\216\006\n\000\005\0269\002\377\320.@\300\001\300\027\310\371\001\203\377\001\340\246\002\010\210\005\210V\377\2201\220E\230\021\330\010\376\202\317\001\001\230\026\230q\240""\005\317\240W\250A\242\236\001q\002-\320\237->\270a\270\371\212\006H\005/\377\320/B\300!\3001\300\356\224\234\002Q\330\004A\n\016\210g\377\220Q\220f\230A\230U\257\240\047\250\021\370\375\001\025{\010\021\376\331\217\005\014\000\005\020\210q\330\377\004\020\220\001\220\031\230!\217\2309\240A\007\003\034\003R\001\007\377\210q\320\0201\260\022\260w1\340\004\342\347\0011\230A\020\004\373\220\001r\001\016\220a\330\010\357\020\220\013\230\025\001\010\013\210\3774\210z\230\021\230\047\240\377\021\330\014\024\220A\330\010\377\014\210G\2201\320\024$\377\240L\260\001\340\004\r\210]Y\350\235\003\007\200q\025\004\220K\002\367\t\220\021!\010G\2506\260\367\021\260!\217%\035\240g\250\317V\2601\260L\000\244\003&\240\271\001^\000k\0005\220\t\272\370\002\014\177\020\220\002\220%\220s\253\357\001\357\240\001\240\024\266\225\0027\260\"\277\260G\2701\270F\245!\340\377\004\016\210i\220q\230\001\376\326B,\250D\260\t\270\021\177\320:L\310C\310q\304\n\375\n\202a\013\2107\220#\220\177Z\230t\2401\330\014\374@\276\244\005I\230R\230q\303\001W\277\220A\220T\230\025\267c\r\365\210\013\001Q\220%\003\2202\220\375U\313 1\330\004\024\220D\037\230\005\230Q\230\316\222\002\273\206\003\361 \377\022\220\037\240\001\320!3\177\2601\3204D\300A\315\335\001\226\336b(\250\240 \005\313!\322\001$\3303\000\225`\224A4\230\253 \030\230\277\t\240\021\240$\240\355 \032\273\230+\342`d\250(\240!\026\337\220c\230\021\230)\002\032\230\375#j\000d\240!\330\010\027v\212 !\2306\000\200\001\360o\001\377\320\021*\250!\320+=\377\270Q\320>N\310e\320\363ST\210\327\002\326\204\0022\260!\340\317\004\013\2109\317\002\230b4\210\377q\220\003\2201\220G\230\276\215\373\002\007\200w\210c\236A\017\257\210t\2208\350@H\246`\t7\021\220\023\336A\017\210\217 \261\002\377\001\330\010\030\230\013\2401\277\240D\250\010\260\001p\006+\377\2501\320,>\270a\320\377?O\310u\320TU\320\343UV\313\233\004\377\000b\024H\230F\371\240\222\000s\003\025\220d\230%\177\230x\240x\250y\270a\000n\201\0011\220C\311A\340\004q\005\377\021\220\033\230A\230T\240w\030\250""\021\351\006-\250Q\362\205\002\377\320AQ\320QV\320V\357W\320WX\305\234\0045\260Q\256\334\024J\230f\202\205\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007\216\203H\020\220\004\346\204\001\372\370\001\201D\031\374\315\206\003\206\001\020\000\005\010\200u\277\210B\210a\330\010\261\260\002\013\377\2101\210A\330\014\020\220_\005\220_\240F\220A<\236\204\001\313\330\014\330!2\371\267\001\345\245n\230?\000\236\207\001\243\323\013\255\3444\237\372\004\264\316\004\276\221\013\217\240\013\366\350\013\200\267\325\004\303\342\004\272\362\004\223\314\004\312\272\006\360\344\r\214\250p,\371\250\375\346\016\330\360\0014\230y\250\013\377\2604\260v\270Q\270i\017\300{\320R\270\327\037\207\347\004\375\313\004\222\353\013\000\216\377\004\341\233\004\233\264\013\317\272\004\266\316\004\300\246\004\350\274\004\340\332\006\010\310\367\003\256\361\007\304\343^1\256\320\r\341\3414\251\372\004\234\344\0130\342\360\004\305\267\004\316\325\004\336\274\013|\002\214\344\r\271\345\\@\242\236\002\326\331\013\260\3244\267\352\004\277\235\022\334\333\004w\311\341\001\233w\002\273\246\013\177\002\236\370\r\351\314^\001|\224\324\r\240\363\001t\2409\250K\331\231\002\377\021\300)\310;\320VY\033\320Y\266\374\001\320`\307\226\001\257\315\026\375\344\004@\301\315\013\341\302\004\231\361\004\207\355\004\363\260\031\353\243\002&\326\373\010\346\355\354\006\r\210\354\260\016\350\356\027^\320^\r_\332\260\0250\260\302\2002\240\256\030\334\304\004\274\317\004\000\343\304\004\316\243\004\334\304\004\201\352\004\213\267\023\321\365\007\347\360\023\332\262\003t\373\371\002\331\262\017a\234\200Ij\320j\377\273\0060\254\337\004\330\360\004\271\306\004\327\353\013a\002\355\320\r\231\261p\000\302\254\002\220\341\013\260\353\022\216\343\014\276\362\020\337\347\004\202\346\004\203\256\004\370\212\262\004\213\323\013\312\232\006\360\000\000r\002t\327\355\004\314\353\004S\310\353\001S\003Y\317\353\001\215Y\211\256\005[\003\263\210\032\320\263c\365\243\002\021\371\220\312\312\010\261\374\001d""\240)\250;\377\260d\270&\300\001\300\031\017\310+\320U\341\206\014\267\336\020\277\345\004\313\232\031\200\254\243\004\367\331\013\276\327\004\331\362\004\317\306\004\300\350\013\206\302\005n\342\267\230\001\013\376\206\016\371\265c\373\206%Z\320Z\377`\320`a\320aj\320\017ju\320u\316\331\020\316\352\004\251\205\022\310\245\013\rv\335\355\001v\002\224\213\004\244\367\004\352\352\004\230\360\004\334\250\304\006\337\367\001\003`\003\372\204\2001\260\375\021\370\270\014\035\230b\240\004\240\367I\250[\322\244\002!\3009\310\007K\320W\231\317\014\364\331\024\232\343\004\374\264\004\217\352\013\200\213\315\013\272\215\004\245\324\004\312\371\004\371\340\004\362\205\004\221\313\022\320#\026&\302\236\007\333\213\t\317\272e!\304\272n\271\362\004P\311\326\013\271\362\004\320\357\004\253\343\004`\201\365\001`\261\343\005\331b\234\273\017\366\274p3\260\361\262\014\220\037\377\240\002\240$\240i\250{\377\270$\270f\300A\300Y\377\310k\320Y]\320]c\377\320cd\320dm\320m\007x\320x\355\323\030\235\343\004\226\300\004\367\347\013\300\251\013@\340\275\013\344\364\004\373\361\004\217\324\004\335\345\004\244\300\004c\330\275\005g(\250\001\353\262\005\362\202o4\260\220\261\016\377!\240\022\2404\240y\260\377\013\2704\270v\300Q\300\377i\310{\320Z^\320^\377d\320de\320en\320\377ny\320y|\360\000\000\003}\001\234\261\004\366\271\004\205\257\004\224\341\004\271\376\004\227\343\013\300\244\252\013\242\324\013\256\357\004\240\355\004\273\326\004\243&\360\000\357\000c\003d\213\300\005)\250\021\356\271\200w5\260Q\267\276\r\"\240\"\377\240D\250\t\260\033\270D\377\300\006\300a\300y\320P\377[\320[_\320_e\320\377ef\320fo\320oz\003\320z\224\321\003\243\274\004\334\324\004\317\326\004\350\330\004\373\250\004\032\310\343\013n\307\371\001n\002\233\376\004\313\371\013\331\345\004P\275\217\004\342\366\004\220\374\004\260\272\004e\277\302\005*\204\247\001\016\253\214u6\260a\210\300p\234\366\004\235\364\004\247\357\004\360\304\376\004\336\237\004\317\322\004\244&\360\000\000e\347\003f\003\342\300\017\215\212o7\260q""\376\237\303\r$\240B\240d\250)\377\260;\270d\300&\310\001\377\310\031\320R]\320]a\377\320ag\320gh\320h?q\320q|\320|\261\350\003\221\315\013\000\310\360\004\250\307\004\302\370\004\320\335\013\361\257\013\250\303\013\321\342\004\336\335\004\210\265\364\004\201\355\004\277\270\004g\247\307\005\237\241\002\223\221u8\000\321\305\017\342\300d\373\375\004\371\354\004\355\377\004\226\340\004\347\311\004\253\215\004\216\250&\360\000\000\347\361\001\260\301\017\371\216o9\003\270\021\302\300t\264\336\031\302\336\004\200\364\031\245\301\n\261\221o\001:\247\306\017\371\276d\326\373\004\377\320\022\363\340\004\370\320\031\232\271\n\372\351\223o;\227\306\017(\250\002\250$\377\250i\260{\300$\300f\377\310A\310Y\320Va\320\377ae\320ek\320kl\003\320l\224\343\003\205\321\004\350\312\004\215\362\004\305\243\004\240\354\004\200\205\315\004\373\370\004\224\345\013\322\336 \202\236\004\276\215\004\300\323\006\360\037\000\000j\003k\213\321\005\220\243\002\335\233\017\237\r\210T\220\026\340\263\003\331\325\t\021\374\270\325\023\322\255#Q\300l\320RS\377\320Sb\320bm\320m\377t\320tz\320z{\320\303{|\361\254\032[+\323\326\001\237\252 a\300\375|\263\263\002c\320cn\320nwu\320u\203\001\320|}\336\251\032\334Z-\275\255\"q\310\014\304\263\002d\320\377do\320ov\320v|\016\204\000\320}~\333\254\032\344\200-\315\314\002\210\261\013:\325\274\017\001\246\311\001V\320V\225\305\003\365\240\004\207\320~\177\314\317\016\231\250\t\356\201-\310\253\"\021\373\310,\336\264\002f\320fq\320\345q\261\372\tA\214\253\033\374\202-2\260!\366\346\356\017r\240\337\356\013Q\310l\320OZ[\320[\344\240\003\232\227\021E\226\313\020\320\351\2009\366\232\002\267\264\013\352\232\017a\371\306\001\\\320\t\\\372\357\003\375\225\021F\270\314\005\377\231\024\252\205-\333\231\002\326\317\265\n\320\021\317\231\017q\306\306\002]\320\t]\362\332\003\335\326\021G\321\315\005\345\230\024d2\322\246\t\016x\035t\320td1\230\320\006\222\211\010\246\371\032\300\260h\366\212\001\331\266\032B\030\376\366\023\366Hl\320\303lm\231\263\032\237\030\311\356""\023\272Im\320\243mn\352\265\032\375\030\202\356\024Q\234\311\002^;\320^X\001\320no\307\207\032\3348\356\301\353\024R\320R\204\261\001\320_n\216Y\000\320op\302\263\032\273X\270\323\024V;\320V\325\340\003r\320r\220\372\001\317\333\004\307\047\240q\351\240\021\233x\316\242\001&\250\377\010\260\002\260$\260f\270\037H\300B\300d\364\210\004\316\242\003\355\372\001\207\320tu\257\334\004\306\241\024\374w\231\206\0036\357\250\030\260\022\315\272\002X\300R\377\300t\310<\320WX\3209X\374\240\003\274\362\001\320uv\220\335\004\364\237\0248\343\204\021\352\325\003#;\r\210K\331\217\005\321\346\n\3677\240!\230\344\tU\260(\270\021*\354\330\001\257\346\027\231\272\030%\300\274\007\363\000\220c<\361\333\003\230\347\001\360\000\000w\366\351\005\342\333\004\242\255\312\022`\203\272\017\245\314\t\221\266\016\021\323\345\0176\363\310\021\214\2002\226aA\270Y\300\377k\320QW\320W]\320\017]^\320^\235\235\003\364\365\006\335\367\004\376\347\004\202\363\275\022_\243\033\340\331\030\370\265\010\203\361\004\272\354\027_\343\320_\334\224\003\302\221\n\332\266\010(\000\005\010\355F\263\376\014\341RE\376\2004\353H\344\200NyE\376\344\301\0325\270\006\270a\270y\217\310\013\320S\364\203@\264\301\010\366)\021\203\220\031\343\313\001\235\355\001\272\350\023\205\206\002\261\350\030-C\310~\213\204\002\351\333\003\301\226\n\234\350\010*\337\377\010\370\236\226-\256\333\002\304\306\t\022\320\022#\240g1\240H\304\354\001\246\311\001B\230\270\266\013\201!\331\210\004\221\331\003\337\261\r\344\332\004\234\367\004\360\340\022j\341\002\210\363\n\246\324\003\207\2009\243\263\003\320\021\"\357\240!\2408\365\347\001\024\320\024Z\326\321\001h\233\341\001\021\220\244\263\017A\235\334\001\007Z\320Z\357\277\003\236\351\021\206\345\013\235\334\004\205\347\006?\360\000\000p\002q\265\340\005\360\262\004\213=\230\303\314\001*\353\326I\201\220\023\330\354\003gS\320g\226\215\001\325\345\001\001\231\253\013F\316\304\017\200IJ\316\373\032\323\276\020\235\345\006\363\303\016\340\200J\354\366\032l\023\320l\203\367\006\227\342\013K""\326\277\017\235\202$\255\303\006\034\350\324\001\267\301\0106\240\025\321\326\001\253\212\036\320\223\001\237\320my\320y\264\362\003\222\240\013L\314p$\231\225\r\022\220\230\353\002\244\372\024S\320\375S\351\305\003o\320op\320p\240\221\237\n\217\275\004\375\205\017\205\220\026\261\326\001\004\332\205\003\006\377\240h\250b\260\004\260F\277\270(\300\"\300D\354\235\004a\377\320ab\320bq\320q\340\267\341\006\226\364\006\241\357\004\232\205\037\3147\021\330\004\356\351\362\032n\320\\\236\337\003j\320j.\342!\320z{\350\312\016*\244\215\010\244\212\006\344\364\350\025\213\212\037}\027Y\264\227\021=\320P\341]\211\213\025\310\316\010\247\365^\377\322\001\026\230x\376\251\351\002V\2608\2702\270T\377\300\034\310[\320Xe\320\001e\236\210\006\216\370\013\360\357\004\266\316\006\241\322\016\334\366^\203\232\023?{\320Zg\320g\263\224\006\251\270\013\214\227\304\004\300\306\004U\002\254\321\016\247\355W\325\370\032l\037\320Ze\320e\250\231\003\214\354\003\202\373\004\342\205\345\013R\351\320\017P^\266\224\024_\320_\377j\320jw\320wx\360O\000\000y\001\243\370\013\247\357\013W\371\312\017\374\207\360^\252\211\024^\320^i\320i\370\277\314\006\222\272\013\215f\360\000\000U\002\301V\331\220\013\351\364\001\275\361^\235\305\001\370\211\020`\320\017`k\320k\370\214\006\340\266\013\226\377\004\324\321\006@\214\212\013Rb\267\363\033\231\215\005\250\370\013\377\322\013Y\267\363\020\360\253\364^\306\237\024\367\255\003\366\255\001\360\000\000|\t\001\227\367\013\273\322\013Z\256\247\020\320\361_\260\302\001\241\240\020 \245\256\003\253\257\001\253\302\002\276\364\013\247\362\013[\315\247\020\210\363_\376\265\301\001F\250(\260\"\260D\377\270\006\270h\300b\310\004\273\310L\344\241\002o\320o\322\256\001\360O\000\000~\001\332\262\013\334\321\013\\\351\367\005\014\325\300\010\242\364}\320}\316\373\003\336\330\004\245\365\004\315\363\013\343]\002\205\365\017\370\365_\275\277\001f\250H\373\260B\275\322\002\010\310\002\310$\034\246\256\001\257\257\003~\320~\365\370\003\317\366\013\266\363\013\001^\331\372""\005\335\276\010\260\367_\245\366 \341\362\004\213\370\004\317\366\004\000\243\363\013\312\242\004\264\366\n\354\370_\222\366%\373\377\004\202\370\013\207\361\013\000\314\245\004\232\377\n\255\372_\204\366%\253\375\004\364\367\013\356\332\022\230\366\n|\356\373_\327\273\001&\260\010\270\002\200\317\002\237H\310B\310d\350\254\002\204\326\001\360G\000\000v\272\314\014\346\367\013\313\323\013b\217\366\005\342\370\272\0102\315\367\010\267\331a\253\352\003\020\320\020\237!\240\021\240(\333\362\001\000\t\017\337\320\017 \240\001\206\355\001\330\004\355\021\267\241\010\021\220\300\352\022T\320T9Z\246\266\002\307\271\003r\320r\315\235\006\330\316\004\000\232\375\004\277\332\004\335\376\013\321\316\013\264\370\013\267\340\004\235\314\004\300\352\022\364\265\307\004\255\366\004z\276\366\001z\003@\004\277\360\000\000@\004A\003\001A\273\004L\n\001L\004W\021\001W\273\004_\030\001_\004e\037\001e\273\004f&\001f\004q-\001q\373\004|4\001|\004F\005\360\337\000\000F\005L\003\001L\005\275M\n\001M\005N\005\261\353\n<\377\220|\240;\250a\200\001\303\3608\200\373\021\327\335\006\310\252\030\272\233\0256\240\317\026\240u\250\303\365\003\326\365\002\330\004\364\233\367\002\367\256\003\220\300\231\023\\\320Yd\203\320d\320\235\003\375\211\006\256\376\031\377\332\013\251\335\013w\371\002\327\022\211\366\002A\330\014\023\220\3476\230\021\000\004\003\0107\230!\234\030\001\000\0048\2301\003\010\025\0045\273\230\0014\010;\230aI\001:c\230QP\001*\004X\000\200A\346\360\002F\000\004\220\007\362\365\001\016\003\267\363\003A\033\003\177u\220A\220S\230\001\005\005\337B\220d\230!5\003w\220\177a\220t\2308\2401E\002\373\320\017\316\371\001d\250&\260\001s\260\021X\001\351\361\004#\2401\333\367\001\375N\210\252\002\014\033\2305\240\014\377\250A\250[\270\001\270\021\374\311\361\001\203\370\001.\250\001\330\020\024\377\220H\230A\330\024,\250\375G\277\367\001\340\020(\250\007\250\347q\260\001\233\006F\0064\320\047\177B\300!\360\006\000\t\221\371\001\177\010\014\320\014\034\230A\373\366\001\277U\230-\240q\250\370""\000\017\377\320\017\037\230w\240e\250\3671\330\024\265\373\001x\240q\330\357\020\031\230\026\021\000g\250Q\377\250a\330\021!\240\027\250\367\005\250Q\020\014y\250\002\250M\047\315\370\002\014\020\212#\225\371\001M\274\367\001\376\243\371\001D\320\030.\250a\250\363q\330\026\005\200\001\023\220$\220\377l\240\"\240A\330\010\013\237\210:\220Q\220\312\356\001\271@5?\230\010\240\005\240Q\252\363\003\371 \346\252\364\002\020\027\256 \227\372\001\014\021\220\375\030\210\367\003\230v\240Q\340\014\377\020\220\003\220:\230Y\240\375a\216\204\002\020\025\220X\230Q\373\230j\372\005\r\320\r\036\230\375a\314%H\230K\240q\250\375\013\343\371\003\013\2106\220\027\320\371\030\347\324\001\304\372\002\r\023\2207\320\251\032\251\327\001\324\372\001\340\215\004g\371@\013\360\233\244\001\033\001\274a\236\373\002\330\020\021\330\377\024 \240\005\240[\260\004\277\260A\260V\2701\212d\340\377\010\014\210J\220m\2406\235\250\351\372\002M\230\024\271`\017\002i\277\230q\240\004\240A\371!\r\317\210O\2309\226\365\001\010\002\320\014\177\036\230b\240\010\250\001\307\373\001\033O\230\220`\340\010\352\365\004\351\373\001\247a\271w\204\204\001\363\002\330\014\021\331\275\001\021\357\360\006\000\r\341\371\001\013\2501~\020\000\220\036\230{\250!\005\001\271\033\336\001 \002\"\240!\037\003\030\377\230\037\250\001\250\024\250Q\3760\001\021\220\005\220V\2301\377\230E\240\025\240d\250!\377\2501\330\020\027\320\0270\376\366`\024\260Y\270a\330\020\377\035\230T\240\021\240!\330\377\020\023\2204\220q\320\030\367(\250\003\210a\030\230\001\320\237\031+\320+H\332\376\002\343 \\\277\240\021\240.\260\001y\001\025\237\220a\320\027(\305\377\001H\0273\377\2601\260D\270\t\300\021\376W\010\025\220[\240\001\240\036\366\222a\021\220@\002\047\240t\250y1\325\003P\002)\250\033\260\303\367\004\376\243\0171\260\021\260$\260i\377\270q\330\020\036\230d\240\253!\240\311\000\025\222\374\002?\326\000?s\270$\321\377\002\212do\250Q\242\006\371)\211!\272\206\004\360\010\000\t\021~\330\370\003\013\320\013\036\230g\364a\377\020\220\n\230!""\2305\240\375\017\255\204\001\023\2205\230\r\240\357V\2501\340\226\204\002\r\240U\357\250!\200A-\010\014\210L\356\243!\013\2606\223\206\001\021\220\034\377\230Q\230k\250\021\320*\367<\270A\230$\220~\240Q\343\240n\332\376\001\210\204\005m\010\016\210k\373\230\021\243\205\010\017\210q\220\r\377\230T\320!7\260q\270\361\001\226\017\324\371\001\265!\033\250A\250\365Q\267\205\0016\241\374\002\014\024\220E?\230\033\240A\240[\302\207\001\315\017w\026\220a\231\204\001G\2201\203\372\003\3573\220e\230\373@\030\230\006\374\336\376\002\354A\320\027/\250q\260\277\005\260Q\330\024\031F\002T\317\250\021\250+\332\204\001\307\000\024\"\177\240!\330\021\025\220S\353\376\001\375\330\373D$\240a\320\0479?\270\026\270q\300\001\020\001\221\377\001\235>2\000\047\260\026\271\001\301\205\0011s\330\014\251\373\001\371\372\001\320\023$\235\000\364Q\001\335`\035\321\211\001\017\210s\220\237!\2206\230\022\207\001\215\374\001~\377\240Y\250a\250u\260A~\177\001\021\330\024\027\220r\032\000\3553\236\002\030 \275\205\001\240Q\330\277\030\033\2304\320\037\233!\014\177\300A\330\034!\240\033\220\211\004]\033\013\001*\250!\271\206\0015\333\376\001\022\360\373\001q\222\004\377\312\0014\350b\357\261\002\301@\377\n\000\t\017\210d\220(\277\230(\240%\240q\202\210\0014\375\210\321\211\001%\230q\330\014\022?\220$\220a\220q\240e)\000}\020\226\377\0025\240\001\240\0217\003r\007\007\037\262!\007\013\005\240Q]\003\360\330d\336F\310\212\004\343A\016\230e\240\377<\250q\260\013\2701\270\366\313\213\005\360\014\213\204\004\340\010\021\320\317\021&\240a\220\205\001\203\213\001C\210\347}\230I\305`\230\212\001\014\024\220\364\311\211\007\361EZ\360\212\002\014\017\210v\377\220V\320\0332\260#\260WV\2706\356\205\001)\304@(\014\000\377Q\330\021\027\220v\320\035\3377\260s\270&\301\336\001\330\020\377,\250A\250X\260S\270\277\001\340\010\023\320\023\276\265\001A\337\330\010\034\230A\262\210\001\017\210\337q\200A\360\016\227\205\007\2104\367\210u\220\326\376\001\320\020 \240\377\001\330\010\016\210e\2208\305\230\223\276\001\010""\246\210\001\251/\314\205\004U\250\317!\330\020\032\311\205\007\246\204\001\035\240\271a\215\377\001\373A5\230\003\206\204\001\027\377\220\177\240a\240s\250!\177\2504\250v\260Q\340\225\210\001\376\266\001%\250}\270A\270Q\373\330*\243\364\001*2\260$\260?a\330\r \240\007\352\212\003L\010t\307c=\01618\0171\260\024^\000\377\014\023\2203\220a\220v\377\230S\240\001\240\025\240c\357\250\027\260\001\346\010\340\010\033\377\2302\230\\\250\025\250k\377\270\021\270+\300Q\300a\377\330\034 \240\016\250e\260\377;\270e\3001\330\010#\377\2402\240S\250\005\250\\\372\035\000\"\237\002$(\250\005\250\273U\260\334\215\004t\2201\254 \010\315\027\302a#\240\367\215\003\350\214\0015\220\377\004\220D\230\n\240!\240\3474\240q\264\211\001\223\215\001\003\2207\277\230)\2401\240A\365\211\003z\273\240\021\220\204\002\024\025\340\346\213\003\001\367\320!9\205\000&\300\001\330\377\027\030\330\024\032\320\032G\363\300q\207\205\001\221\215\001\030\034\230E\266\262\212\002\024\032?\003\340\010\306\210\006\020\377\024\220J\230a\230u\240\377O\2601\330\014\047\240uo\250M\270\021\274#q\330\t\021/\031\300!\340%\000t\205@\211\207\002\276\207\215\0013\210a\210~\246 \003r\235\002\014\222\226\004\312\221\0024\220q\275A\377\230A\330\r\020\220\001\220_\036\230t\320#\367\210\001\020\314\206\001\377q\230\006\230c\240\024\240\364\230\204\001\246\215\001T\267\220\001\022\320\022A\252\206\213\001\023\233\"\020\265\210\001\021\322\215\006\230\303A\340\225\220\001\212\215\007\240\220\002\261\215\003L\230\367\t\240\021\341\214\003A\230[\250\375\001\232\213\002\010\r\210U\220!\360\271\204\001\313 \031\014\361\211\030\340\010\017\210\036\236@\200A\3602\327\204\010\203\220\001\345\361\001s\014\033\232\223\001\307\220\001t\320\033\326\342\001\177\020\023\320\023&\240g\365\220\001\335\030\266B>\260\021\237\221\001d\240\177\047\250\034\260Q\340\024\200\214\001W\047\250\021\265\215\0011\230\217\001\007\312\221\004\356\335\210\002>\240\023\325A\025\320\025\237%\240Q\330\020\005\000\362\355\001\020\336\227`\340\020\026\220\227""\217\001\001\330\357/6\260c\346`.\310\002\377\310!\3309:\33004\353\260E\366`!\345\223\003N\220!\036\207\206\001\014\2101\330\364\047\272\222\005\305\003\037\320\004\035\230Q\306\214\010\334\215\001\255@\277\330\010\022\220\047\230\335!\010\377\014\210G\2209\230J\240\367f\250A\331\221\002\320\023+\250\3211\262\223\001\314\212\001\211\216\001\026\231\221\003\330\010\002\262\221\003\330\317*"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 23256, 63757); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35983 bytes) */ +static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notearoo\363nd\330\001\005\002upbe\377gidx nbe\377lementbu\377llpower \257bear\005\002c\211\221\003p\377ickle %s\365:\207\212\007h\211\216\003poin\206\220\234\002to\267\233\002\215\213\005\202 \211\214\002,\356\370\235\002doe\213\224\001t c\367ros\352\227\001proc\337ess b\231\241\001aroydis\216\206\001en\224\206\001\277fastk \002\001dogcha\204\213\002ha\322\236\001\377 halow h\375a\323\236\002inphas\377e quadra/ture\267\236\002 \222\237\003""\376\224\001\377wrong diR\334\000s\247\241\001\024\tl\241\205\002s\277\236\002?differ\273\222\001\305\240\002\310\323\237\003\244\212\001\230\226\005d\263bY\003mu\033st\272\237\001a \310\240\002h\004\304\240\002\370\301\240\003\343\232\002\264\240\002 Serioes, \340\226\001%s\317\237\t\335 \357\234\007mis\336\242\002re\363qu\330\215\002\212\242\001 key\302\240\243\001g\346\217\001\377\216\002\245\003\302\206\001, \3750\310\233\001100)is\376\256#dk d jm\357acd \001\001sig\347nal\006\002\301\230\001mam\371a\316 \004\000in ma\217xmin\367A\007\000\377@n\315o\367\227\005: \203\240\006\276$is\277 empty\262\242\002.\377_core.mu\347lti\365\241\004\377\230\003to \363im\333\216\001\033\tumat\367h f\023\014plus\277vi min\004\001r\357eal \337\004sin\371e\257\231\002\005\001slowk} \002\001dsmi \001\000\342\314\003s\223\240\001\205b\005\002low?talib.\353\216\004\213\245\001\270\013\003\343\243\002\026\003ord\331@d\300\206\244\001\047\003\347\243\003\005\004\334\243\002?\003sy}sH\003threa\270\232\001fW\003wa\321\235\002\027\003/_\273\246\005\257.pxiy\002/\225 m\007mon\006\010\231\246\001\025\010\257\226\003,\002T\351\210\005\240\204\010s\274\231\r\047\244\207\002b\263\244\001\277middle\006\002l\374\230\206\001\021\001ACACCB\257ANDS\000\005_\361\212\001a\345m\000\014.\213\245\001\341\240\001_fisll#\006\263\210\002ACO;\000\003OS1\006\002\006&\rS\006^\004G\014\327DAD\000\000Dz\005DD>\020\024OSCAD\002\000 \006\274\002\007B\rRADRG\006R\"`\024X\211\234\001\215\234\001q\006X\022\026\031\007\370\255\024\265\006\316\023LLAOA\365O\335%O\363\023POAP\372\033\006P\016\024ROONA\000\001\001\213!\001\004\265E\001\013\256L5\001\035\tx\3673!\002\332CSINA\001\000x\222e\001\007\207lTANA\001\000\270\272e\001\007\030\rRAT\215FT~\3774VGDEVA\001\002\370\213\204\005\001\t\202\204\014VGPRI\207CEA\001\004(\007\022\002\331slklC\203\233\002S\305\254\003sB\203\205\002\300\000\003\377\204\004\000\n\366\204\013!\004\265\216\002BE\303TA\000\001.\005\014\000\315\204\022BO\331P\000\000T\005OP\017\023od\277yDojiB""\005\000L\367ong\004\001Shor\275t\r\001Very\021\001C\303CI\000\000\245\206\004\000\007\231\206\013CD\177L2CROWS\000\006\360)\005\021\005\363\205\0224\0003BLA\203CK4\005\003\0107\007\003\017l\0163?INSIDEL\001\004\003\3703\010\004\n(\017LINES\017TRIK9\002\004\007u\010\004\016\016n\017OUTy\005\004\004\265\010\004\013\374\253\017\242\230\001SINSOU\203TH\217!\004\t\374\010\004\020\367\017W\377HITESOLD\027IER\212A3\004\n\312(\004\021\372\304NA\255\212\001ONEDB\007ABY\342@\003\n\331G\003\021:\017\377DVANCEBL\035O\355@DLA\004\010?\010\004\017\036\331nBELT\261\240\001\362`\003\005\370\344g\003\014+\017REAKA\013WA\312\001B\004\0054\010\004\014\326\204\016\377CLOSINGM\377ARUBOZUCCDL\003\014\357\204\007\003\023@\017O\223 \373AL\336!SWALL\240O\001\004\014I\010\004\023B\020U\215\244\001A\023TT\332\205\001\242\000O\005\010C\t\005\017\336\311\206\016DARK\364\000UD\377COVERCDLp\003\013\340\206\007\003\022=\017OJIA\001@\004\000\233\236\001\000\010?\010\026\004\236\207\025DA\000\374 \013\021\026RAGONF\007LYDp\004\004\t\260\010\004\020\322\210\016\277ENGULF\373@C\303DL\003\006\337\210\007\003\r.\017VE\025N\271`D\360\007E\004\013A\010\004\022\200:\025\301$G\004\361\240\0019\016\n\010\252\212\016G\343AP\272\211\001\276\211\001\272\207\002CDL\360\003\r\305\212\007\003\024C\017RAVE\023ST\271\207\001\353CG\004\nF\010\004\021\036\316\213\016HAMM\370b\003\003\325\213\007\354\003\n$\020NG\252\206\002NCD\207LHA\005\0053\t\005\014g\020R\353AM\256\204\001H\242\256\001ICR\003OS\343\214\001\003\010\201\t\047\002\037\001\331\214\025x@\003#\r\025\026IGHW\306 \340\272\001\004\004\360\010\004\013\242/IKKuA\323\214\002H\004\003MODD\002\200\022\002\n\000?\t\005\0145\025\"\016\317\026O\377MINGPIGE\301O\367\"\004\010\262H\004\017\310\217\016ID\377ENTICAL3\340\332\217\005\003\014\341\217\007\003\023@\017NNE\302\377\213\002I\004\0025\010\004\t$\020VE\014\367\252\001\202\204\006IN\005\t;\t\005\020\240\221\016\317KICK\306\207\003\003\004BY\000\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016""\356\221\025\377LADDERBO\177TTOMCDL\003\t\370\277\222\007\003\020\365\222\016LONGL\037EGGED\351\211\004\003\013B\010\010\034\n\177\026K\001I\253@\221\000\004\0044\014\007INE\303\223\025\231\216\010\247\216\005\214\224\007\003\014~\276\224\016MATCHI\312\000\037OWCDL\003\0107\t\032\006\200i\027\242\220\005M\000\345\261\0011\n\006\010n\017O\005R\235\213\014M\004\013\300\010\004\022:\025\355\215\004PG\004\236\213\013\003\017\326\226\016O\264\205\005O\255\205\014}O\237\205\032PIERC\264\215\003\360\003\005\230\227\007\003\014\312\227\016RICK?SHAWMA\302\212\001\003\010\370\333\227\007\003\0173\020SEFAL\377L3METHOD\206\247\230\001RI\005\013D\t\005\022\345\230\016S\345E\270\272\001T\245a\304\227\001CDLp\003\014\376\230\007\003\023@\017HOOL\001\302\225\221\004S\004\010A\010\004\0175\021RT\201L\267\205\003C\000\006\0036\n\006\n\311\017P;IN\253\220\001TOP\323\001\004\007\370\310\010\004\016\217/TALLE\017DPAT\234\271\001\234!\004\n\224(\370\004\021<\020\210aANDWI\rC\250\231\001ST\005\010A\t\005\017\241\234\016\037TAKUR\207\224\001\003\003\250\234\007\374\003\n$\020SUKIGA\206\222!TA\005\0041\t\005\013e\017H\373RU\264\000NGCDLaT\004\005r\010\004\014\245\017RI\261\225\004\341T\004\003\256\010\004\n\222\236\016UNI?QUE3RI\301\226\003\003\tp\245\236\007\003\0207\017\253\223\002GAP\354\236\006\241U\004\013D\010\004\022\255\237\016X\273\236\001G\203AP\222\206\010\003\r\310\237\007\003\024\204\240\014E\207ILC\001\000\262\240\005\001\007\254\240\014M\217FCMF\330\240\005\001\006\025\rO\317CMOU\000\001!\006OU\346\276\240\023MO\031\007\340\240\023OPP\340\200\235\001\001\003\322\241\005\001\n\317\241\014ORR\207ELC\001\002&\006\017\001H\024S\317COSH\000\001S\006SH\370\023\025\031\007\214\242\023UMSUM\341C\001\002\374\242\005\001\t\370\242\014VIC\203VI\244\243\005\001\006\235\243\014\377\244\t\365\300\001D\377EFAULTDE\303MA\000\001\220\253\004\000\010\205\253\013DI\377SABLEDDI\331V\000\000&\005IV\325\252\022DO?NCHIAN\000\005U\005\364\020\004\027\032_\247\265\002DPODz\232\251\006D\214\251\024DXD""X\260\005\371Xs\023\235\323\005DotEF\001I\000\000\370\254\004\000\007\354\254\013\213 \216 \035\005\373MA\264\254\022ERERI\254\000\000D\005RI\020\024I\307\003E:\233\254\005E\214\254\023EXP\000\000\222\005\375X\241\247\023EqualF\017LOOR\000\002\300\256\004\000\t\266\256\013_FOSCF\273\255\007F\254\255\025\177FRACTAL\000\004\340O\005\017\003\262\256\022\"\005\317\270\002Far\334\264\320\005\274\320\005.__\314\324\001__\370\001\r\376\327\005\035\theck_\307opt\304\325\004\274\304\002>\010ge\301t\003\030\333\324\001Z\n\212\326\003\243\302\002_s\244\312\265\002\227\315\002s\220\010\276\313\001l\240\010r\267epr\236\nst\002\013u\343ni\252\316\001\304\010\254\323\006fla\001gR\007\250\001\205\327\t\207&\017\007\260\326\002\013\n\360\250\331\007\266&\332\322\001\303&lookOback\324&\217\322\003_m\013p\016\004Q\013\270\322\004\216Frun\232F\001s\325 \357\324\n\r\n\261\022/\001\360\327\010>\n.\356\332\007HAH\254\205\005H\247\205\023\035\000^\211\275\002HMAH\327\205\006H\323\205\024\377HT_DCPER\007IOD\000\010\274\264\004\000\017\270\264\0137\003\017HASE\000\007.\n\027\001\225\264\022\032t\000P5\000OR\000\006i\007\023\003x\031\033\276\210\003\272\000SINE\000\004\342\253\007S\246\231\025\"\005\232#T_T\037RENDL=\003\003\006\363\0078\003\r\355\016;\002MOD\374\001\003\006\3701\014\033\001\356\023ighLo9w\221\316\002\203\330\001IMI\000\000\267\267\004\360\000\007\253\267\013\305\316\t\311\316\004KAMA\360\000\001\361\267\004\000\010\346\267\013KCKC\342\034\005C\253\267\022\035\000\303\301\002KDJ\014\000\000H\005DJ\027\023\025\000\361\301\002\346\257\001\337ARREG\000\006_A\200\252\235\001\000\014\220\271\004\000\023\220\271\013?\007\372\317\002C\007EPT\000\020@\016$\006\210\271\022\224\007\037SLOPE\000\014\215\016 \002\340)\035\372\322\002N\010\212\323\002\275\014NLN\372\363\005N\203\023OG10L\360\001\001\233%\001\010\212,ineM\376\354@CDMACDE\003XT\000\004\354\273\004\000\013\344\273\013\"\005\244\305\002\016:\001FIX\000\0043\010\022\000\305\273\022\000\"\0055\006g\010\030\026\343\217\003\254""\001\260\001\233\006\370\335\216\024\037\002\227\004RKETF\207IMA\002\003\325\006\002\n\317\rS\301S.\000\002\000\203&\002\007\372\rVP\207MAV\264\267\005\000\010\242-\236 X\006\226\316\002MA\002\003\337&\002\n&\016\035\007p\2664\247F\010\025\265\325\001MA_\274\325\001\377.__getit\317em__\t\007\224\216\003ME\201D\261\272\002\000\005\200e\020\004\265S\326 F\366\305\224\005MF\304\221\023MIDP\017OINT\000\005\331e\020\004\216s\301I\206\004\001\004)\010\326\273\001\035\024NM\203IN\336#\001\004b\006\021\003\036\026A\017XMIN\221E\000\0106\007\247L\200\201\205\0143\007\241\204\004I\0021\na\030+\006U\177S_DIMIN\003\002P\262\007\003\th\0160\001M-\004M&\013\361M\2175\215\047\213\206\023OMMO\372C\006O0\024ULTMU\343LT\247\207\005\001\007\220\304\013NAT\343RN\330\277\007\000\010\031\014ONE\257NVIN\223\231\006N\205\231\024N?earOBV\000\000\226\305\004\364\000\007\212\305\013O\231\307\003Dict\367Out\267\325\002PERC\006\246\255\001LE\000\007\334\305\004\000\016\327\305\0133\004\017RANK\000\010.\013\031\001\267\305\022#PL\325B\000\004i\005L\276W+\0031M\000\004$\n\277SPP\255\235\001\303\005^\216\304\024PVIP\362\233\006P\344\233\024\247PVO\000\000\215%V\376\304\023PSVT\000\000\034\006T\255\307\022Q\364\243\002\360\000\003\301\310\004\000\n\270\310\013RMAR\272\271\232\006R\265\232\024ROC\000\000P\300\000\001\223\311\004\000\010A\014(\000+\00110y0\000\004(\007R100\340\310\022\340\\\001\034\010\014\025r\0070\023SIRqS\333\236\005\000\007\341\014VIR\377\236\006=R\361\236\024RVOL\000\001\345\005\360\014\000\242\023\252\347\001\235\341\001Real\376\236\304\002ARSAREX\001T\000\003\300\313\004\000\n\267\313\013+\000\033\007\374\312\022\036\372\301\001INHS\001\000G\005\001\007\346>\014IN\031\0077\023MAS:\247\236\006S\243\236\024SMI\000\000\264\005\361M\242\236\023\036\001\254\326\002SQRT\360\000\001\344\005\014\000\262\023TDDE\003VS\001\002\220%\001\t\211,\336\332\001\342\332\002yF\000\003*\006OCHFJ\024\000\026\002\217\003\232\333\004\241\333\0052\t\202u#\0068\0078i\tZ\027\207\242\003SUB\000\000\352E""\263UB\267S\242\244\tSU\224\213\023S\017UPER\322\230\002\000\007O\006\023\005\360H\024\026\006\226C\251\325\002Shad\003ow\302\311\001\004\003\303\311\002\017\003\302\311\005\004\007\342\022\010s\377\320\003\205\321\003\255\240\001opy\375_\255\320\005__deep\375c\005\013reduce?__T3T3\274\321\004\000\006\376\257\321\013TANTANH\200\000\001!\005\014\000\375\320\022\303\315\007\264\315\025\335\354\001C\370\000\002\300\322\003\000\010_Clon\275e\005\tOpen\000\rA\277ndFill,\tP\367eek<\tUpda1t<\n\252\334\002v\002OS\000\004c\010\307OS_a\006\005\004Z\tOS\335_Y\006OS_S\010OS\001_P\007\264\010E\007T\002\247\tA\007=\t\252=\007D\376\356\001D\000\003D\210\047D\261D\232\006\004\004\375\010DD\230\006DmD\225\010DDM\010OS\362\"\000\202\324\002\340&\220\324\002\336%\004\006O\t\262\324\001\330%\260\276\324\002\323\047\315\324\002\321&DR\265\002Rj\251\010R\252\007R\371\rDR\252\007UR\250\tR\201(X\210\"XT\003UXO\tXQ\010XK\017XS\010\245XR\nXS\n\326(X\327\047X*\234\016X\327\047X\325)X\256H\242H\240\242G\346\016\240G\235I\275gO\376\362\001O\252\201\205\007O\222\204\006O\274mO\216\204\006O\252\212\204\010O\211\204\007PH\002PC\010P\252E\007P?\016PG\007PF\tP\000H\010\300\326\001\240\364\001\300\326\004\000\010\264\206\007\323\326\005\266\206\005\000\004\t\263\206\010\372\326\005\266\206\005\212\327\005\264\206\007\234\327\005\265\206\006\200\204\327\002\235\207\006\222\327\002Y\t\335\205\r\263\327\002S\t_\034N\013\263\206\007SIN\366\365\001\260\327\001\374\207\006\000\275\327\001\371\207\005\004\005\362\207\010\334\327\001\361\207\005\350\327\001\353\207\007\010\366\327\001\350\207\006\270\211\002_\341\327\002\326\210\006\357\327\001\323\210\005\000\004\005\314\210\010\216\330\001\313\210\005\232\330\001\305\210\007\250\330\001P\007\252\354\205\002T\346\205\010T\347\205\007T\340\205\016T\n\347\205\007T\345\205\tT\346\205\010\276\330\002\377\367\001\300\330\003\000\207\212\006\317\330\003\206\212\005\004\007\201\212\010\362\330\003\202\212\005\200\331\003\000\376\211\007\220\331\003\375\211\006""\366\330\004d\003\353\330\003a\010\374\330\003\000d\007\006\007c\n\243\331\003h\007\263\331\003h\t\305\331\003\034\364\212\005\250\331\003TA_\252\331\004\346\213\005\271\331\004\000\345\213\004\003\010\340\213\007\334\331\004\341\213\004\352\331\004\335\213\006\315\331\t\016[\001ETA\000\004\311\214\006\347\331\002Z\005\000\351\331\001\326\214\001U\010\374\331\001V\005\210\332\001R\007\226\332\001\266\271\006OP\273\001OPN\007OeP\263\214\005B\004\004\253\010OP\261\214\005\354\301\332\001\246\007OP\256\214\006CCI\007TA_\226\332\001\365\215\005\242\332\001\361\215\004\003\005\000\351\215\007\277\332\001\347\215\004\312\332\001\340\215\006\327\332\001\334\215\005\274\332\006\000U\001\257\332\006V\006\301\332\006]\005\004\n`\010\352\332\006\000i\005\373\332\006m\007\216\333\006r\010\200\333\010|\003\202\333\t\000|\010\231\333\t\202\007\006\r\204\n\314\333\t\214\007\342\333\t\000\217\t\372\333\t\224\t\337\333\003\225\004\341\333\004\214\t\364\333\004\000\211\010\007\010\202\013\237\334\004\201\010\261\334\004{\n\305\334\004\000\230)\245\334\007\235$\247\334\010\230)\276\334\010\231(\007\014\000\226+\361\334\010\231(\207\335\010\227*\237\335\010\270I\202\335\004\000\272D\204\335\005\262I\230\335\005\260H\007\t\252K\305\335\005\000\252H\330\335\005\245J\355\335\005\303i\313\335\t\312d\315\335\n\000\307i\346\335\n\312h\007\016\311k\235\336\n\316h\265\336\n\000\316j\317\336\n\361\204\t\254\336\n\371\204\004\256\336\013\367\204\t\310\336\013\000\373\204\010\007\017\373\204\013\201\337\013\201\205\010\232\337\013\202\205\n\265\337\013\000\244\207\010\222\337\n\260\207\003\224\337\013\262\207\010\255\337\013\272\207\007\006\017\000\276\207\n\344\337\013\310\207\007\374\337\013\315\207\t\226\340\013\242\t\366\337\010\000\246\004\370\337\t\240\t\220\340\t\240\010\007\r\234\013\305\340\t\000\236\010\334\340\t\233\n\365\340\t\371\211\010\327\340\005\200\212\003\331\340\006\000\375\211\010\355\340\006\200\212\007\006\n\377\211\n\232\341\006\204\212\007\255\341\006\000\204\212\t\302""\341\006\177\t\245\341\005\205\004\247\341\006\201\t\274\341\006\000\203\010\007\n\201\013\353\341\006\205\010\377\341\006\204\n\225\342\006\000\226\214\010\360\341\014\244\214\003\362\341\r\250\214\010\215\342\r\262\214\007\006\021\000\270\214\n\310\342\r\304\214\007\342\342\r\313\214\t\376\342\r\260\t\332\342\014\000\266\004\334\342\r\262\t\370\342\r\264\010\007\021\262\013\265\343\r\000\266\010\320\343\r\265\n\355\343\r\266\n\314\343\010\270\005\316\343\t\000\260\n\347\343\t\256\t\010\r\250\014\236\344\t\250\t\266\344\t\000\243\013\320\344\t\303\220\010\253\344\013\320\220\003\255\344\014\323\220\010\307\344\014\000\334\220\007\006\020\341\220\n\200\345\014\354\220\007\231\345\014\362\220\t\264\345\014\216\251\tOJI\244\004\233\345\004\000\013_\000\247\t\237\345\005\242\010\007\t\231\013\314\345\005\226\010\337\345\005\020\216\n\364\345\005\206\014i\r_g\013\242\241\014\333\346\004\025__\013_Y\r_\243I\237\346\t\247D\000\241\346\n\241I\272\346\n\241H\007\016\235K\361\346\n\237H\000\211\347\n\234J\243\347\n\240\225\010\204\347\006\250\225\003\206\347\007\246\225\010\000\233\347\007\252\225\007\006\013\252\225\n\312\347\007\260\225\007\336\347\007\261\225\t\000\364\347\007\206\t\321\347\013\221\004\323\347\014\222\t\356\347\014\231\010\000\007\020\234\013\251\350\014\245\010\303\350\014\251\n\337\350\014\252\017\000\206\361\001\253\n\307\350\002\242\017\336\350\002\237\016\r\006\230\021\000\221\351\002\227\016\247\351\002\221\020\277\351\002\216\231\010\223\351\r\235\231\003\000\225\351\016\242\231\010\261\351\016\255\231\007\006\022\264\231\n\356\351\016\301\231\007\000\211\352\016\311\231\t\246\352\016\267\t\204\352\n\272\004\206\352\013\263\t\000\240\352\013\262\010\007\017\255\013\331\352\013\256\010\362\352\013\252\n\000\215\353\013\206\234\010\361\352\003\213\234\003\363\352\004\206\234\010\205\353\004\207\234\007\000\006\010\204\234\n\256\353\004\207\234\007\277\353\004\205\234\t\322\353\004p\n\000\265\353\005y\005\267\353\006x\n\315\353\006}\t\010\n~\014\000""\376\353\006\205\t\223\354\006\207\013\252\354\006\211*\217\354\001\216%\000\352\353\006\000\016\240\213\t\244\354\t\245)\247\354\007\315\240\013\253\355\002\200\304\354\007\257)\332\354\007\262+\362\354\007\233\016x\017_*u\r_i\024_k\r_d\017\273\213\t\001H\254\355\004\256d\256\355\005\253i\302\355\005\256h\007\t\000\255k\357\355\005\262h\202\356\005\262j\227\356\005\262\204\t\373\355\003\000\202\005\357\355\005\000\r\232J\241\356\006\225)\007\013\221\014\000\305\356\006\226\t\332\356\006\226\013\361\356\006\224\017s\020q\017\024\222P\337\357\003_l\016_g\020\233J\226\357\010\000\332\206\004\230\357\t\333\206\t\260\357\t\342\206\010\007\r\345\206\013\345\357\t\000\356\206\010\374\357\t\362\206\n\225\360\t\210\245\010\360\357\014\226\245\003\362\357\r\000\232\245\010\215\360\r\244\245\007\006\021\252\245\n\310\360\r\266\245\007\342\360\r\000\275\245\t\376\360\r\260\t\344\360\002\254\004\346\360\003\236\t\370\360\003\000\226\010\007\007\212\013\241\361\003\204\010\262\361\003y\n\305\361\003\000p\n\243\361\t}\005\245\361\n\200\n\277\361\n\211\t\010\016\000\216\014\370\361\n\231\t\221\362\n\237\013\254\362\n\366\250\010\216\362\004\000\374\250\003\211\362\014\000\022\203\226\t\246\362\r\237\251\007\006\021\245\251\n\200\341\362\r\261\251\007\373\362\r\270\251\t\227\363\r\267\017\214\020_(\206\016\251\226\017\225\364\004_v\016_l\020\270\226\t\000\275\363\t\301\253\003\277\363\n\302\253\010\327\363\n\311\253\007\006\016\314\253\n\000\214\364\n\325\253\007\243\364\n\331\253\t\274\364\n\335\254\010\231\364\013\242\004\000\204\364\013\237\t\236\364\013\242\010\007\017\241\013\327\364\013\246\010p\360\364\013\246\n\213\365\013\245\rINE\244\010\000\372\364\001\231\r\216\365\001\224\014\013\005\213\017\273\365\001\210\014\000\316\365\001\200\016\343\365\001\235\257\010\323\365\005\244\257\003\325\365\006\241\257\010\000\351\365\006\244\257\007\006\n\243\257\n\226\366\006\250\257\007\251\366\006\250\257\t\000\276\366\006~\n\240\366\006\206\005\215\366\007\204\n\244\366\007\210""\t\000\010\013\210\014\327\366\007\216\t\355\366\007\217\013\205\367\007\222\013\000\365\366\001\223\006\201\367\002\212\013\224\367\002\207\n\t\006\200\r\000\277\367\002\177\n\321\367\002y\014\345\367\002\243I\277\367\013\257D\000\301\367\014\261I\334\367\014\271H\007\020\275K\227\370\014\307H\000\261\370\014\314J\315\370\014\252\017\220\233\007\256\370\t\242\017\213\233\014\200\333\370\t\317\224\016\370\370\t\227\016\211\233\016\246\371\t\250\265\010O\252\331\215\010O\323\215\016O\324\215\rO\315\215\024O\n\324\215\rO\322\215\017O\323\215\016\317\371\005\254\266\003\321\371\006\000\251\266\010\345\371\006\254\266\007\006\n\253\266\n\222\372\006\260\266\007\245\372\006\000\260\266\t\272\372\006\260\267\010\232\372\010\272\267\003\234\372\t\272\267\010\263\372\t\000\300\267\007\006\r\302\267\n\346\372\t\312\267\007\374\372\t\315\267\t\224\373\t\000\223\n\361\372\013\235\005\363\372\014\235\n\217\373\014\243\t\010\020\000\245\014\314\373\014\255\t\347\373\014\260\013\204\374\014\223\272\010\336\373\014\000\241\272\003\340\373\r\245\272\010\373\373\r\257\272\007\006\021\265\272\n\266\374\r\000\301\272\007\320\374\r\310\272\t\354\374\r\260\t\314\374\010\262\004\316\374\t\000\252\t\346\374\t\250\010\007\r\242\013\233\375\t\242\010\262\375\t\000\235\n\313\375\t\231\013\257\375\003\233\006\261\375\004\223\013\306\375\004\000\221\n\t\010\213\r\365\375\004\213\n\211\376\004\206\014\237\376\004\000\351I\375\375\007\352D\377\375\010\341I\226\376\010\336H\007\014\000\327K\311\376\010\326H\337\376\010\320J\367\376\010\211\204\t\324\376\n\000\215\204\004\326\376\013\207\204\t\360\376\013\207\204\010\007\017\203\204\013\251\377\013\000\205\204\010\302\377\013\202\204\n\335\377\013\250\n\274\377\010\254\005\276\377\t\000\246\n\327\377\t\246\t\010\r\242\014\367\377\t\244\t\\\t\370\241\013v\t\213\302\010TAKUR\000\216\257\004\006\003\371\256\t\013\004\214\302\007\006\010\211\302\n4\004\340\214\302\007E\004\212\302\tX\004p\nSUKoIGAP\220\303\003TA\010\004\000u\013\r\005z\t\010\tz\014<""\005\200\tP\005\370\201\013f\005\203)HRUST\007ING\213\004\007\005\210*\014\006\215(\000\007\n\215+;\006\223(O\006\224*e\006\225I\013RI\260\254\007T\007\003\226J\014\004\231H\000\007\010\227K7\004\233HI\004\232J]\004\260\306\010\377UNIQUE3R}I\362\235\001A_CDL\006\t\000\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007W\n\370\323\306\tp\n\233\tPSIDE\377GAP2CROW\005S\345\307\003U\007\013\240\n\014\014\245\010\007\020\200\245\013G\014\253\010a\014\254\n}\014\223\311\010X\376\264\0043METHOD\000\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\nH\016\340\306\311\007c\016\316\311\t\200\016\330\312\006EIL\000\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010(\001`\261\313\0054\001\260\313\007B\001\262\313\006MF\212\314\001\003MF\224\270\007\t\000\206\314\005\004\004\203\314\010&\000\300\206\314\0051\000\204\314\007>\000I\007\316\325\001CM\033OUU\002OUP\010\n\000S\006\000\005\004Q\t)\000U\0065\000T\010C\000U\010DF\t\305\270\006M\237\326\r\200\000\275\270\006M\246\326\010\030\024\001\262\315\006\236\350\001CK\216\316\001\004\003\234\272\007\000\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\234\316\007\\N\004e\007RRE\306BO\005\001\000b\010\n\002c\006\005\006_\t-\002a\006;\002p^\010K\002\315\007\234\206\002OSH\325\002\003SH\314\010\n\000\313\006\005\004\305\t)\000\000\305\0065\000\300\010C\000U\010F\t\311\273\006\273\336\016UC\301\336\007C\276\336\tC\276\336\010C\362\342\002\000\221\321\001\372\342\003\217\321\006\211\343\003\223\321\005\004\007\223\321\010\254\343\003\240\231\321\005\272\343\003\232\321\007\312\343\003\236\321\006V\365\321\002V\215I\200\276\007VI\204\275\006\004\004\357\321\010VmI\374\274\006VI\366\274\010VI\373\337\006\007DEM\366\323\001\003\001\303\341\006\010\002\301\341\004\000\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002\260\341\005?DIVTA_\003\000N\007\013IV\255\341\005D\004\004K\010\032\000M\005\360%\000J\0072\000J\006ONCH\rI\327\343\001_D\004\004\253\007\t\005\261\005\000\004\t""\262\0100\005\271\005@\005\273\007R\005\300\006\252\217\335\002D\211\335\010D\212\335\007D\203\335\016D\252\212\335\007D\210\335\tD\211\335\010D\242\340\001D\251X\350\047\301\337\006D\271\337\rD\277\337\006D\032\274\337\010D\274\337\007EF\213\326\001\003\000\203\345\006\000\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\357\344\006`=\001\353\344\005\216c\227`I\007MA\350\344\005\031E\004\004H\010MA\346\344\0050\001I\007+MA\343\344\006E\347\342\001E\306\223\002\003\000J\241\007R\267\204\006E\004\004\240\010R\267\204\006T0\001\241\007R\266\204\007E\263\343\007E\263\343\006UE\253\343\rE\261\343\006E\256\343\010E\256\343\007\243EX\243\331\001\003\000\273\047X\236\331\006ED\004\004\272(X\236\331\0060\001\273\047X\235\331\007\017FLOO\334\344\001\003\002\237\350\006\010\003\000\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006E\003\002\221\350\005F\231\346\003\003\001U\007\370\345\001V\005\004\005\300R\010\220\346\0103\002Q\007\261\346\001Q\006RA\027CTA\255\216\001F\004\003\265\007\t\004\000\271\005\004\010\270\010.\004\275\005=\004\275\007N\004\376\300\006UNC_FLA\375G\344\351\001FuncTa\377bleAllocwTA_\010\006Fre\346\352\001\367Get \001Hand\375l\005\010InfoTA\375_\033\000InputP\377arameter\376\016\007Lookbac\335k \003Opt\021\025Ou\275t.\021roup\215\nG\264\t\006\224\004H\301\336\001HA\214\354\006H\210\254\205\006\003\004\377\353\007H\252\205\006-\000\364\353\006HB\247\205\007H\223\212\002\003\000D\007\372\205\007H\363\205\016\341H\372\205\0070\001H\007\371\205\010HT_\177DCPERIO\256\353\001\020\003\010\247\007\030\007\327\354\005H\004\014\270\010\"\010\300\310\355\004H\t\313\007J\010\315\355\005\205\003HA\001S\325\340\001\003\007z\014\034\001z\013\t\006w\r@&\002y\n8\002v\014L\002y\010P\177\000\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\031\007\373\341\013@1\007\373\007E\004\367\tX\004\366\010S\313\261\003\"\223@S\301\261\t\010\005m\007S\263\261\017-\005B\356\047S\260\261\nM\005\345(\355\363\002Lk\006\000\006\006\361I\013\007\353\007""\006\013\362J:\007\366GpN\007\365Id\007\202\rMOD\375D\000\216\365\002\013\001\201\016\020\002\203\014\013\006\200\017?\002`\203\014S\002\201\016i\002\341\362\005IM\324\344\001\000\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007%\001\277\363\004\3600\001\270\363\006=\001J\006NPUT\376\322\210\006Initial\033iz\255\364\001KA\364\221\002\003\001\274\364\006\000\010\002\272\364\004\003\006\263\364\007\047\002\262\364\0043\002\254\364\006\264A\002\251\364\005K\250\365\001KCL\007CF\243\364\005KC\315\363\014#\000H\005C\233\364\007\3749\000C\006DJTA_K\003DJ\232\007\t\000\233\005\004\004\227\010&\000\300\231\0051\000\226\007>\000\310\365\005\303\343\001AR\363RE\300\241\001\003\006_ANG\001L\341\350\001\003\014\327\366\006\010\r\340\366\004\003\021\344\366\007\200=\r\356\366\004T\r\363\366\006m\r\242\016|\020I\377NTERCEPTGTA_\305\007\r\006\026\031_\264\016\000-\007\337\352\013E\021\274\016j\007\276\020\207\007\303\017x\273.e\025\257.SLOP\250K\000\r\002\243P\022\003\245N\r\007\242QG\003`\023\201_\243Pw\003\244O\316P\205\204\006\301\362\001L\025N\336gN\215FN\372\371\014#\000\271e\365Ns\010N\307\372\006LOG1\0010\203a\004\001\260\204\007\t\002\250\204\005\004\006\233\204\010\200*\002\224\204\0057\002\210\204\007F\002\203\374\005\246\232\002M3AC\355\372\001\003\001EX\362a\003\004\000\202\375\006\010\005\203\375\004\003\t\377\374\007-\005\201\375\004<\005x\376\374\006M\005q\007CDFI\331\371\001\000|\001\007\000b\n\014\001d\010\007\005a\0131\001@d\010@\001b\nQ\001c\t\304\n_\303\010\224\222\375\014\215!_\275\010_\270\n\345\375\006M\000\353\211\003\003\001\240(\316\230\007\024\002\326\361\013\047\002\231&\363MAN\t\321\230\010MARK\003ET\202\232\002\003\005\202H\026\003\266\007\005\010\200\203I \004\207F0\004\206HB\004\203gS\rS\205\362\001MA\005\000\362H\n\001\362F\000\005\005\355I+\001\356F8\001\352HG\001\344g\035V\270\363\001MAV\263\363\007\010\002\320f\213VP\372.V\267\363\0063\002\305hV\366\270\363\007MA\303cXINDAE\000\010\207\235\007\037\000\027\002\355GX\006\007\000\272""\204\t\020\004\276\204\006 \004\275\204\0102\004\272\205\007Y\n@V\010\306n\271\376\006\255\000\311i\270\376\007M\342\226\007`\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\315\370\002\017TA_M\004\004\304\206\007\t\005\307\206\005\000\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\005\305\207\006\032\254\204\003F\304\243\007MF\305\243\006\003\005\247\207\010\321F\305\243\006$\001\240\207\007F\304\243\007MI\037DPOIN\221\210\002\004\004\215\210\007\000\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\221\210\007\304R\005\216\211\006I\265\047\004\004i\nRI\007CE_k\010\007\006h\013\"\002k\010\3402\002i\nD\002l\007\374\376\001MINh\274\204\006\004\004\347\010N\267\204\013IN\260\204\022\2000\005\351\0060\004\347\010B\004q\010\275\205\004I\001N\243\205\005\271a\004\007y\t\274\205\016\034\010\342\210\014\0006\010\204\007\204\206\006\205\t\231\206\006\206\013i\014\355\047*\244\001_Z\021_\\\n_U\014\265\212\007?INUS_D\355\210\002\004\004\000\335)\027\002c\010\006\007\317i=\003g\0101\003\020\335)C\003\332Hr\001M\327#\006\002f\r\005Mg\014M\324\0172\003\325GB\003f\r\001M\340\t\271i\272(\260/\264(\257*\356\214\007\255O\271\002OM\227\217\007O\252\007O\240\236\016&\000\215\217\0051\000\207\217\007O\225\010U\001L\364\217\002\004\000\354\217\007\t\001\353\217\005\004\005\345\217\010\300(\001\345\217\0054\001\340\217\007B\001\201\377\005NA\001T\245\247\001\003\001\345\353\006\010\002\330\377\004\003\006\326\377\007\200\047\002\332\377\0043\002\331\377\006A\002Q\006\267\255\002N\252\261\255\010N\262\255\007N\253\255\016N\262\255\007N\032\260\255\tN\261\255\010OB\336\254\001\003\000\220\355\006\000\010\001\221\377\004\003\005\203\377\007%\001\373\376\0040\001\356\376\006\\=\001\344\376\005OUT\246\233\tP\327\227\001\007NTI\226\231\002\003\007\200\356\006\010\010\364\376\004\000\003\014\361\376\0073\010\364\376\004E\010\372\377\006Y\010\367\377\005\016}\004RAN\341\263\001\003\010v\r\036\001\001_y\013\n\006w\016(\002{\013;\002z\r\224P\002\202\006L\373\206\005P\004\003""\377\007LF\364\206\nPL\354\206\021-\005\370\005L\357\206\014\020M\005a\013\370\206\001i\003M`\014\361\206\006\027\005\010\271\344\013-\005b\nM\376\357\007M\005\340&\343\257\002UP\335\257\010P\336\257\007P\327\257\016P\336\257\007UP\334\257\tP\335\257\010P\254\263\002P\246\263\010UP\247\263\007P\240\263\016P\247\263\007P\245\263\t\215P\246\263\010PV\231\271\001\003\000\373gVEO\356FV\263\270\r%\001\350eV\270\270\010t=\001\331fV\271\235\001PVTH\010ETI\007T\321\362\014%\001J\006T\305(\370>\000\254\204\006\373\252\001Holde\345r\300\253\005P\t\007\303\253\004QST\001I\265\271\002\003\003\326\364\006\010\004\242\377\004\003\010\225\377\007@+\004\216\377\0049\004\202\377\006I\004\371\376\005R\336\265\002UR\242\223\010R\305\261\007R\276\261\016R\305\261\0075R\350\227\tR\304\261\010RO\341\242\001\003\000\000\230\305\001\003\001\223\366\006\010\002\262\377\004\003\006\244\377\007\047\002`\234\377\0043\002\217\377\006A\002\252\006OC\255\262\001\016d\000R10\320\234\001\003\004[\t\026\001\001_`\007\006\006`\n \002f\007/\002g\t@@\002j\tU\nS\t\327\366\014\227\001_N\010\005_I\n_\276\010\217)\245\010>\017D\010\030A\nC\007\354\231\002RS\366\271\007\010\001\345%\213SI\223\rS\367\271\0060\001\340\047S\252\366\271\007R\316\272\002R\310\272\010R\311\272\007R\252\302\272\016R\311\272\007R\307\272\tR\310\272\010R\003VO\350\301\001\003\001\214g\021\000\243F\004\005\200\213h\033\001\216e\047\001\214g5\001\300\204\006e\277storeC\366\261\002D\377efaultSe\377ttingsTA\007_SA\341\266\001\003\000\222\240\003\003\003\254\373\006\000\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004\230\377\006\020I\004\214\377\005k\000P\t_O\007\201\373\014%\001\262I\007_D\t\373\372\006SI\204\243\001S\003IN\353\277\001\003\001\255\007\021\000S\006\004\005\200\250\010\033\001\251\005\047\001\245\0075\001\244\006I\201NF\tF\010\235\r&\000E\007\242\010I\252\336\243\007S\256\276\002S\362\233\010S\225\272\007S\252\216\272\016S\225\272\007S\270\240\tS\224\272\010Sh\367\254\002\003\000\245GM\321\277\006SM\312\204""\r\304%\001\236EM\317\277\010=\001\227FQR\002\220\251\001S\004\000\372G\t\001\372E\004\005\365H\300(\001\366E4\001\362GB\001\361FTD\013DE\331\277\001S\004\002\330g\t\003\332e\000\004\007\327h,\003\332e:\003\330gJ\003^\007KOC\213bT\005\000\342\307\001S\004\002\010e\010\024\001\360fT\005\006d\t\036\002g\006\020,\002e\010<\002c\nR\320\242\002e\002\335\207\t\010\010\006\325\006\231\000R\342\207\016/\006f\t\360\207\n@Q\006\331\n\306\013\306\n\276\205\r\211!_\305\t\331_\302\013\312\205\007UB\221\207\001UB\000\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\362\206\0051\000h\355\206\007>\000\353\206\006U\206\232\001SU\302\230\007\000\010\001J\006\353\231\r%\001J\006\357\221\010=\001I\007\007PER\227\265\002\250\002\005\005\251\010\n\006\000\262\006\005\n\266\t5\006\300\006G\006\305\010[\006\306\302\210\006et\316\211\003\301\211\t\021\000om\377patibili\333ty\334\211\001et\251\274\nIn\337teger\007\020Re{al+\003Unst\312\275\001\277Period\241\212\001h\377utdownTAg_T3\000\002\242\372\006T3\222\371\005\000\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006.\000\336\376\005\301T\221\306\002\003\000\254\312\001\003\001L\007AN\001HO\006\004\005O\010\033\001T\005\047\001T\007@5\001U\010F\tF\010\256\372\014\206\000_E\007\251_B\t\242\372\006T\357\310\003T\326\304\tT\005E\331\304\007T\322\304\017\047\002\373\005\331\304\nA\002^\376\006RANG\243\355\001T\004\002\010\321\047\t\003\250\377\004T\004\007\330(,\003\337%\320:\003\341\047J\003^\007I\263\312\002TR\021I\371\247\010\010\003\\\006I\231\306\016)\003Z\006\341I\307\254\tE\003V\010\240\310\001TRI\000\234\310\007\010\002T\007\232\310\r\047\002R\007\243\310\010A\002\032\241fS\255\322\001TS\247\322\007\010\001\222%\000\024\000\377\376\013%\001\363e1\000\362g>\000I\007Z\237\334\001T\215\222\010TS\217\315\006T\207\222\016\341T\216\222\0070\001H\010\216\315\007TYP\000\213\252\005\003\005\236\205\007\025\004\245\205\006\004\t\251\205\010\037\005\340\262\205\005/\005\266\205\007A\005\261\376\005ULT\000\317\306\003\003\003\225\376""\006\010\004\256\377\004\003\010\246\377\007+\004 \244\377\0049\004\235\377\006I\004\231\377\005V\245\222\002\003\000\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\375\377\0040\001h\363\377\006=\001J\006H\204\326\001VH\376\325\007\000\010\001K\005\024\000\366\354\013%\001K\0051\000I\007\\>\000\235\006ORT\232\257\002V\004\002\000\242\007\t\003\247\005\004\007\247\010,\003\255\005:\003(\256\007J\003\205&W\336\337\002V\004\000\206\047\000\t\001\211%\004\005\207((\001\213%4\001\212\047\030B\001P\007\331\321\002VW\236\257\010\010\002Q\006\300\274\315\016\047\002Q\006\350\263\tA\002\227\377\005WA\000\300\306\001\003\000\375\372\006\010\001\353\376\004\003\005\331\376\007%\001`\315\376\0040\001\365\377\006=\001J\006CL\376\257\005\001W\004\004S\007\t\005Z\005\004\t\\\0100\005\340d\005@\005g\007R\005\300\006ILL\002\230\317\001W\004\001\303\007\t\002\307\005\004\006\306\010\000*\002\313\0057\002\313\007F\002\241&\334\324\002\366)UW\303\320\007W\274\320\016W\303\320\007W\346\266\t\rW\302\320\010ZL\260\325\003\003\002\376\375\006\010\003\000\270\377\004\003\007\251\377\007)\003\240\377\0046\003\222\377\006E\003\370\211\377\003\217\326\001\371\321\001Strea\373mT\001\007.open\377_and_fil\001l\335\213\003\342\213\004%\004\360\213\0033\003\036\r\256\213\001\220\252\213\002$\005\267\213\001\024\024X\364\212\002 \006X\315_>\022SF\303\212\001\240\004SF\022\016\024I\225\212\001\035\005I4\023\346\211\005\322\211\005\000\364\004\001\013\361\013\246\211\003\242\211\004\245#\000\n\237+\207VAR\353\210\001\315#\000\007\026\014H\tF\275\210\001\036\004H\273\023\207\210\003\214\210\004I\004\004\232\210\003\3431V\340\207\010\335\207\001\340\207\002\177\004\354\207\001\316\037\022WMA\256\207\002 \005MA\016\3532WAD\375\206\001\241c\000\007\230k\000\303\206\005\312\206\006(\004\332\206\005\230q\207\206\002\213\206\003V\004\\\230\206\002\026\022MAW\226\006W\222\024\300\253\205\002\247\205\003\316\204\003\000\t\307\204\013\352\322\002ti\377on__call__func\n\002F\001\005\377_check_o\357p""t_i\346\322\001_vawlue-\010get\003\030\376.\003price_s\377eries_naYm\003\000W\007lox\000_\001\014\217data\222\0100\001\000\014s\377tr__ARRA\377Y_TYPES_\223_I\372\312\002\016\002S\006\013\352\272\002_\357SERI%\000DEF\357AULT.\000PAN\377DAS_DATA\177FRAME__\013\004~#\004_POLAR\023\013\374\014\003\030\006yx_PyD\377ict_Next\337Ref__\301\325\001UN\177CTION_NS\000\326\227\000__\331!_\004\000nn\237otate\010\000\353#_\374\351-\3314_class\275_\352 item:\002o\373pyC\001deepc8\004\005\205\001d\000doc^\001\312A\374f\001\237Aflags_y_\232QJ\tinit\231\001z\237V_\251C_mai\262`?__meta\226\003\334\000\337modul\330\002mr\037o_ent\354B\365\000\273B\366\004\001ew\367\001prep+ar\201\"p\277 v\257\231\002\220!\357qual$\005red\243uc\245\"+\000\351@_\276`t\331_B\005\372B__\243`ve\263rs\275\204\002\013\000es\271\002u\237nicod\342!\232\204\001d\362\265\245\003s\306\212\002\230 s_is\377_corouti{ne\316\000okupF\001>\345\204\003succe\351 \376`v\274\"unR\000id_\001\014=s\003\013reti\257\000\215\001\001g\255\331\003\237\331\001\004\010\341\331\002\030\004\301\330\007)\004\000\263\331\017B\004\243\331\022\024\005\247\331\017x\004\333\000\301\234\010\232\r\005u\226\234\004_p\231\234\002\270!i\264\233\321\006\306!r\353\247\003_c\350\332\002_p\261$\363!\357\247\002\351!set\027\005\211s\204\250\004\016\006oe\014(\001a\020s\376\214\235\004a_close\177a_higha\325`\327wa_\356\215\001a\231\004sa__real\000\0030\007\003\3771a_volum{ea\241@lera\270\210\001\274\000\t\274\204\001long\004\rs\317hort)\t\025\rma\361x\000\020&\016B\003ppen\357darg\000\000sar\377raysasci\377iastypea\177syncio.\331f\357satr\355#avg\376\366#bbegidx\377bitbytes\3572str\357#sti\357ckcl\224\204\001in_\237trace\301\335\001\247 n}e\252\"colle\237\212\002\375s\010\000umn_st\351a0\000\222!n\020\000pyd\303de\371\204\001\266E\253\212\002\373\204\005de\337scrip\356\212\001di\237splay\212\212\002\221\205\001d\333oc\325 nt\316\"em\307pty\341\000\241\000\347\000sw\237ithen\364 \356 e\177factorf\352\000\017d_ma\356\001\006\003\320c\024\001\373k_\002""\007limitx)\001!\007\"\004irst-\004glag\233\210\002\237\210\003lo\214\206\002\217dict\275\210\002\342!\306\210\002i\307nfo\317\210\002\234!\330\210\002ob\003je \003\300\214\002?\003\274\214\005\345\213\001\311\214\005\201s\243\214\001\273\214\003\253C\006\007\213\214\002\302\214\001pf\275\340\005sg\371\337\001\000\002sh\364\340\002ohelp\243\204\001hi\217\256\001\337ylenh\351\264\002ii\335d\304@imp\333`_e\377rrorinin\007dex\247\001c\t\266\215\003\367\214\001\000\007us\205\215\025i\344\243\003is_\203B\336\356\212\001skey\000\000sk\375w\360aleftba\273rs\205\000gth\274\215\002ln\350\341\004low\000\000er\224C\377maximumm\373ax\356\206\003memom\333in\006\004is\200\000gm\362\001\003_[\001\273\212\003msgm\377ultiplie\363rn\254\216\001\260\216\001dtup\376\366\000annbdev\372\000\002d\006\003upno_\212\361\000s\227\260\001_\332)\261`\261\217\003s`\006\001\274\217\006\010\003\363\342\002\025\001py\302C\377offseton\013re\320\212\001e\373\225\001\377\225\001\365\245\001\226\210\002\242\203\226\to\315\343\001\215\220\006\220\220\014s`\007o\277rdered\311ao\377utoutaro\363on\217\246\001\004\005upou\377tbearpowqe\221\213\001\226\206\003\021\001ull\r\005\377doutfama\366\002\002st\t\003stko\017utha\304\210\002\005\002\310\210\001\016\002\360\205@\026\002\300\002\345\213\001phas\321e\356\213\002\302\247\002\000\007_\350\220\001ou\357tjouJ\002lea\261d\230`(\001\305Bba\254\000u\017tmac\200\001\003\001\201\204\002\014\003\177signalo\033\001\356\227\002max\010\002xid\372\000\006xZ\005middlmeH\005in3\001in#\004\374\004\002 \007nusvio\377utnbelem[en\267!pl\016\004p\305\"/put_\322\217\002o\275\346\002\324\222\002R\000\010s\021\003\000\004s\265\223\001i\302!\377quadratuYr\212!\336\212\001ou\366\231\001l\341\t\370\365\212\001\241\n\206\213\001upper<\207$\232$slow\226A\004\001\306\207Asm\260\001\003\000\217&sw\207ing\217D\007\002\223CC\006p\037andas\366\206\002\373\206\002\232\224\002\374\200\207\007\217\207\002spenet\376\347\213\003percent\347ile\300\215\003\306\215\003spo\227lar\003\000p\346""\224\002\353\224\0020\"\361\224\0021\360\224\t\367\224\016\310\225\003s\233\225\002\003\000\377opertyraGnge\306\213\001\373\214\001\377\214\0010\204\215\001\3771replace\377resultsr\330\216\000\260\254\001\332\204\001t_\352\220\001ri{gh\221\207\002roc1\335\216\003\362\007\0002\001\006\014\004unss\377chemasecwond\271\004elf\231\226\003\000\335\216\001\375\226\006\334\214\001\356\216\001\255\211\t\006\007\304\226\002\215\217\001\016\257\211\007set\346\221\005\243\270\003\215\215\001\236\204\003\370\245\213\003\252\204\003\256$kip_f\340\203\213\001\302B\306\213\004\006\003\320$low\201k\r\010\321\213\005\363A\324\213\002\374AR\004l\363ow\205D\214\215\001leve\277lstart\253\230\002s\376\323\214\001cmethod\277stddev$\005r\2652\375\215\002s\370\236\002sy\271\256\003t\237alib.\331\223\001\005\000t\377hreading\377timeStamQp\005\001\276\221\003\000\0071\013\0072\026\007\3773to_nump\351y\225\217\001\231\217\001_\307\223\004upd\027ate\000\003_\324\214\001\330\204\002\327\231\002\344\253\003\317\224\004v\350\215\003\357\220\003war\271n\000\001\375\272\001wma\301\222\003\200\377\001\330\004\007\200u\210C\377\210q\330\010\020\220\005\220\377Q\330\014\r\330\020\026\320\377\026+\2501\250A\330\014\377 \240\013\2501\330\010\017\376\035\000\004\013\320\013\034\230A{\230Q/\003y\220\003\220\023\004\357\t\022\220#7\000\010\026\220\203a\330\000\t\000\025\000-\000]\235\200 \340\376\330\002\004\014\320\014#\2409\377\250C\250x\260q\330\004\377\n\210%\210q\220\001\330\377\010\027\220z\240\021\200\001\377\340\004\017\320\017#\2401\337\330\004\013\2101\013\001\022\220\377,\230a\330\004\025\220Q\357\220o\240Q\014\003.\240\001\276\r\002\320\026\047\240q \002\320\277\022&\240a\240q\017\004-\355\250#\003\320\022\035\000\250\r\260\337[\300\013\3101+\004.\250\275a+\0042\260!\260\016\0059\375\270x\001#$\360&\000\005\277\014\210;\220a\220\231\000\r\177\210T\220\026\220q\230\336@\377\r\210]\230!\2308\240\377:\250T\260\021\330\004\r\377\210U\220\047\230\022\2307\377\240\"\240A\330\004\017\210\177w\220e\230?""\250\"\354@\377\004\016\320\016\037\230q\240\353\010\250\225`\021=\000r\230\024\377\230Y\240k\260\024\260V\377\2701\270I\300]\320R\377S\320S_\320_`\320\377`o\320oz\360\000\000\357{\001B\002\004\000B\002H\356\003\001H\002I\n\001I\002J\335\002\362\003i\230q\207%#;o\2701\360(f;M\270\277\000\376\203\200 [\320[\\\320\\h\277\320hi\320ix\243\000y\273\001D\242\001D\002K\251\001K\273\002Q\260\001Q\002R\267\001Rs\002S/{\247\000]\320]\247\000\357j\320jy\320 z\001E.\317!E\002L\326!L\234\007\354 \267S\002T\310/$%\301\2028\320\177\033+\2502\250Q\330\356L\377\027\230\002\230$\230i\240\377{\260$\260f\270A\270\377Y\300m\320ST\320T\376\367@a\320ap\320p{.\372@|\001C\371AC\354G\217`\311J\342 \357\204\003j\350\204\001\206\205\003$^\2701\234\204\037n\320\375T\343 d\320dp\320p\177q\360\000\000r\001A\264\210\001\325A\335\205\005S\302\210\001S\334\047\360\000o\000Z\002[\333/%&\257\205:\337,\250B\250a\334\205\r\030\230\377\022\2304\230y\250\013\260\3774\260v\270Q\270i\300\377}\320TU\320Ua\320\375a\232`q\320q|\360\000\333\000}\273\210\005J\002\336\205\004\360\000\357\000K\002L\342\211\004k\240\021\336\360\213\005%=\320=;\000V\360\3712\325\2028\245\001m\270=\310\001\376\213\207\013\024\320\024%\240Q\240\375h\301\001\022\320\022#\2401\033\240H\266\213\001\021\220\260\022\245\207\003\277\000\377}\320}~\360\000\000\177K\001N\252\213\001N\306\204\005\223df\277\213\001wf\002g\306\213\001g\002r\315\213\001\367r\002}\324\213\001}\002J\003v\320\207\001\003P\003\001P\003Q\n\001wQ\003\\\021\001\\\003g\030\001wg\003r\037\001r\003x&\001\367x\003y-\001y\003z\003\274\364\215\003\222$:\320\025%\377\215\002%_>\270a\360,\333\200\320>;\000\375W\254\210\001\016\210[\230\001\230\376\222\220\002V\2206\230\021\230!D\236\220\001\251\220\005V\341\220\001\235\220\021\213\210\"&\243\007\277b\320bk\320k\371 x\323\320x\335\215\003\241\220\004T\271\220\001T\002\325[\300\220\001[\355%b\316\220\001b\002\355c\331\211\017\047(\255\215:.\250b\375\260\302\205\014\021\220\032\2302\230\377T\240\031\250+\260T\270\377\026\270q\300\t\310\035\320\357VW\320W\251\210\003s\320s\252\263\205\003F\343\221\001F\214\217\005M\361\221\001M\013\002N\340\221\004m\354\223\007\235\003\237\2016\202\210\034\3016j6\226\210\010\303 \357\2139\277$\r\320?\r\036\230a\230x\267\225\001\000\th\251\201&\337\221\004\242\204\013W\312\224\001W\002\374D\335h\330\224\001h\002n\337\224\001n\002\335o\346\224\001o\002p\347+9\220\377A\200\001\340\047?\270q\314\244\220:\230a\r\270\367\221\016\211r^\320\017^_\320_\314\204\003\202\222\003\370\215\004\327\211\004\360\317\204\004\311\207\006\376\227\003\231i?\320?V\377\320Vm\320mn\3604\374\373\2168\257\003Z\300z\320QR\377\330\004\027\320\027(\250\001\373\250\030\343\227\001\030\320\030)\250\237\021\250(\260!\n\013\331\204\024`\377\320`j\320js\320s\037t\360\000\000u\224\216\005\324\227\004\247\226\004E\\\345\227\001\\\213\211\005\237\213\004\223\211\004~\201\230\001w~\002I\251\213\001I\003Z\260\213\001wZ\003`\267\213\001`\003a\276\213\001wa\003l\305\213\001l\003w\314\213\001\377w\003G\004\360\000\000G\273\004M\003\001M\004N\n\001N\367\004O\004\236)\320\013\036\320\377\0362\260!\200\001\340(\275)\245\225:/\250r\260\250""\230\016\033\377\230B\230d\240)\250;\377\260d\270&\300\001\300\031\377\310-\320WX\320Xd\377\320de\320et\320t\370\207\223\003\322\221\004\350\206\006\360\000\000N\002EO\330\231\004n\277\232\001\350\233\003\240\000.\305\2228\370\220\020\322\216\027\251\017/\320YZ\320\377Zf\320fg\320gv\217\360\000\000w\217\233\005\211\233\004\335\214\004P\242\250\233\001P\347\211\005\360\216\004\310\214\022E\363\216\001E\252\357\216\005[\201\217\001[\302Eb\217\217\001b\343\003c\333\216\004\376\004\331\216\006(?\320\343?W\310 \323\224:\257A\034\270]\371\310\341\227\016\245O,\320Vc\320\255c\324\223\001\320q\274\220)h\262P@\377\320@S\320Sk\320k\354\250\221\003\354\226\006\3608\235\202<\035\270m/\310=\320X\324cu\255\222%\217\204\022\277d\320dq\320q\302\222\n]\356\200\237\001]\002^\207\237\001^\002j.\216\237\001j\002k\225\237\001k\246\220\005\312D\335L\313\222\001L\003R\322\222\001R\003\335S\331\222\001S\003^\340\222\001^\003\335i\347\222\001i\003v\356\222\001v\003\335|\365\222\001|\003}\374\222\001}\003\335H\254\206\001H\004S\263\206\001S\004\335^\272\206\001^\004d\301\206\001d\004\235e\310\206\001e\004f\267\206\004\200m)\275*\342\234:0\260\002\260\347\233\016\034\377\230R\230t\2409\250K\377\260t\2706\300\021\300)\376\331!Y\320Ye\320ef\177\320fu\360\000\000v\331\227\005\300\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005aC\021\220\231\036\270\242\007\207\034\320u\263\222\003\200\037\026\377\220f\230J\240a\330\004\377\010\210\007\320\017\037\230q\316\361\244\001q\230\006\333\244\001\347\244\003)A\377\320A[\320[u\320u\347v\3600\315\2338\352!-\270\177\277\310o\320]^\330\315\245\001 \277\240\001\240\030\250\021\000\t\330\007\004\021\220\3542\364\207\006\246\221\004\216\234\004\325\232\004\252\345\222\004c\254\244\001c\314\216\005v\272\244\001v\253\002|\301\244\001|\354\227\005H\360\227\001H\334\226\204\005\340\207\032o\240Q\354\246\001;\220\366\227\246\001*+\314\241:1\260\022\260\376\272\234\016\035\230b\240\004\240I\377\250[\270\004\270F\300!\257\3009\310M\277\211*Q\204\246\003""\320s\026&\274A\224\250\003+C\300\317\2459\377\320\0332\260\"\260M\300\376\373\245\016\036\230r\240\024\240Y\377\250k\270\024\270V\3001\377\300I\310]\320Zg\320\177gh\320ht\320t\220\205\0030\325\244\004\203\213\004\350\221\004\262\207\013_\002\231\251\007\305\251\005{,-\247\244:3\2602\260\323\244\016\377\037\240\002\240$\240i\250\377{\270$\270f\300A\300wY\310m\204\2471\320\026(\255\251\001p\357\252\003\245\000\313\2419\241\004\020\220\016\323\224\005\006\000\010\021\220\216\200!\321\240\004\240\237\004\353\215\004\265\221\013]d\257\252\001d\002m\266\252\001m\325\233\005\235t\304\252\001t\002u\250e\320\002\025\317\220V\2309\244\253\001\357\206\007\026\220\237a\220v\230Q\324\254\001\002\027\013\267\210<\220\333\254\00101\336\247:7\373\260r\341\252\016\320\021$\240B\377\240d\250)\260;\270d\377\300&\310\001\310\031\320R\224\216\254\003\265\235%W\214\205\005,\362\254\001\250\256\0034\3355\210\251:;\2702\254\226\016\320\021\377(\250\002\250$\250i\260\377{\300$\300f\310A\3109Y\246\217\002\320\2433\320\0260\271\233\001\326\257\003\374\333\242\003\302\255\t\n\210+\220Q\220\345a\267\235\0056\214\243\001\357\256\t\030\270\032\317\3003\300a\346\256\030\270\255\"[\320\037PS\320SY\352\222\002\360\220\003\322\242\006\020\353\236\013\314\235\004\324\242\004\317y\220\232\257\010\265\244\001\221\230\002l\300\250\t\227\200A\035\300\346\245\016\026\220\320\260\r\330\312\020\325\240\002\357\225\013Z\002\226\247\004\360\000\253\000[\345\220\005u\202\261\001u\300\213\005B\356\261\244\001B\003C\270\244\001C\003D\215\003\374\260\016>?\242\262\n\200\202:\231\256&k\377\320QT\320TZ\320Z\367[\320[\277\222\003r\320r~\003\320~\360\253\003\200\244\004\327\004\371\243\004\214\246\004\201\235\004\001i\353\253\017\304\242\003\300\203F\276\256(\274\017\310\203?\247\260\010u>\340\204\001\360\212\200L_\270A\307\261\037n\230Ls\320s\214\200J@A\235\267\n\047\014\210K\234\267\t\243\207\0225\203\253\001\356\245\027\335Q\257\200\"V\320V\344\264\003f\320)f\304\236\"\242\222\004i\334\267\001i\313\227\007\313""\263\016\354\316\000\345\206F\320\033\373\250\004\023\320\023\337$\240A\240X\226\265\001\021\320\377\021\"\240!\2408\2501\034\366\223\001\374\250\017\013\320S\254\200.\305\243\022\322\252\004\272\365\234\004O\366\254\001O\003U\375\254\001U;\003V\204\255\001V\003W\320\254\004\311\251\004\373?\230\233\240\001@X\320XY\344\340\203I\203\253\001}\232\204\017\331\037\360\000\000\241t\257\242\014\353\230\013\234\233\004\316Dp\270\273\001pu\002\376\225\004w\306\273\001w\002x\241\253\017h\327\227\001\350\273\003\314\263\004\177\361\273\001\177\002\203\237\004z\306\242\004h\320\242\001h\004i\004\307\244\n\374\235\211<\223\246\002\320=O\320Of\003\320f\231\272\003\277\240\004\226\247\004\262\227\006\263\271\r\307\252\017\377\033\320TW\320W]\320\177]^\320^g\320g\346\244\003t\263\265\004\265\235\004q\312\275\001q\002G\362\260\001wG\003_\371\260\001_\003s\200\261\001ws\003J\260\244\001J\004K\267\244\001wK\004W\276\244\001W\004X\305\244\001wX\004g\314\244\001g\004r\323\244\001wr\004y\332\244\001y\004\177\341\244\001\357\177\004@\005\323\267\001\005A\005\346\367\246\016BC\273\213I\300\244$+\320UwX\320X\276\250\003h\320h\256\233\002\240\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004e\341\277\001e$\313\237\005\217\261\004m\364\244\017\313\003\r\312\210\007\326\257\006\366\201\301\0017\240\322\257\nU\260(\270\247*\300F\340\242\001\250\2102%\247\266\004{\003\320R\203\200K\256\275\010\237@\246\301\013\304\n\321\222\022\0336\310\320\302\024\320\033\330\267$\200\200N\223\270\010P\313\003\231F\360\213\014\215RE\230\20065\251\264\004\007\013\320S\245\203K\305\t\370\211\002\306\267\t\217\222<\372\252\253\001\033\245\217\001\023\220>\240\021\377\240(\250!\330\004\022\220\315.\200\241\005\021\220\250\253\017\304\205\014s\320\001s\304\277\003\335\274\004\257\253\013\246\246\004\314\205\004\352\207\004\363\211\006*\312\276\001\002\262\224\004K\370\271\001K\363\213\005\356\271\004\235]\215\272\001]\003^\360\251\013\203\214\003C\371D\213\224I\323\245$;\320VY\320\035Y\220\310\003i\320i""\212\300\006\354\306\004\306\305\004\360\343\266\004\214\300\004\353\273\004\300\207\006\360\000\000m\207\002n\002\204\246\016\302\014\356\220<\331\266$\033\003\320T\203\200K\224\267\010\237@\233\257\t\272\227<\225\251\004@\323\262#\242\251\017\206\2021\376\265\004\351\231\004\270\246\004A\241\277\001\323A\003\326\253\004\233\204\004c\266\277\001c\003\335d\275\277\001d\003o\304\277\001o\003\325z\313\277\001z\303\215\005P\202\263\001P\004=Q\211\263\001Q\004R\004\211\252\t\364\262\010\377CZ\320Zq\320qrN\253\277\n\016\210k\244\274\t\334\235\0227\302\213\027\336\206\303\001l\270,\300\353\302 {\320\001R\325\204\t\330\253\003\360\315\004\340\275\013\236\307\013\267\270\004\266\277\004Z\257\277\004@\314\301\001@\003\253$B\230\301\013F\263\320\001DE\242\316\001\331\211E\324\274\034U\364\264\004\277+\320UZ\320Z\327\313\003j\037\320jw\320w\261\316\003\203\315\004\366\274\004\300\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\334\270\016YZ\334\326\235\023\351\230\016\025\240a\362\277\tT\260>\256\241\003h\310j\320X\261\222\001\377\320;\376\253\241\014n\320ns\320sy\003\320y\300\321\003\231\320\004\213\320\013\311\261\004\300\311\004\377\273\004\264\376\302\004\301DF\233\305\001F\003\251\223\004H\202\330\237\017Y\350\310\003\217\322\006\211\307\n\254\243\006\300\200IM\017\270\034\300Q\346\272%\344\241\036\213:\275\214\013h\300\307\004\214\273\013\204\242\004M\303\307\001M\003\370\206 \374\330\225\004\213\207\006\360\000\000R\004]\326\253\273\001]\004\333\227\004x\271\273\001x\004\305~\300\273\001~\334\225\007\347\324\t\262\273\010Z[\374\243\203Z\307\2425o\320ot\320t\007z\320z\304\322\003\355\323\004\212\325\006\350\323\002\263\316\013\360\371\300\004\370\307\004\355\211\004\361f\360\000\000H\007\003I\003\352\322\016\374\000\270\246\022\270\205D\267\324\006\004\246\236\t\261\236\n\220\272\324\017\373\244\014\313\200=\376\205\004\325\270\004\232\344dX\265\314\001X\003\377\213\004\370\213\004u\312\312\314\001u\333\270\005w\240+\307\236\003Zr\237\360\000\000s\001\243""\330\004\247\264\004da\002\311\265\n\350\205M\366\322\007\366\317\001\330\004\320\305\t(\200\201I\212\323\004\317\314\004{\266\333\001{\364\265\005\356\265\004\320\274\302\004\260+\223\273\004\275\216\004p\217\317\001p\003\335{\226\317\001{\003F\306\302\001F\004\325R\315\302\001R\207\235\005Y\333\302\001Y\004\023Z\004\375\327\n\245\306\003Z\336\303\003\360\315\004\323\233\004\236\312\237\004@\003\3606\274\335\010\222\201S_\277\270O\310?\320Z\356\332\001\330B\317\341\005X\303\267\002\335\341\003\000\t\023\002\021\213\2045\340\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\360\000\000\227^\003m\361\321\001m\312\321\005\203\276\004B.\257\305\001B\004C\266\305\001C\253\305\005\342$\252\231\211\004c\322\305\001c\220\276\005o\340\305\001o\253\004z\347\305\001z\246\211\005D\211\240\001D{\005E\220\240\001E\005F\005\236\333\no7\220\047\230\306\341\001[\\\324\210\\\356\337\234\047U\320U\310\337\003e\320e\377p\320pu\320u{\320\341{\213\326\003\214\316\004\321\273\013\344\330\006\360\000\000Ca\002\332\244\004\343\204\004\220\257\004\334\204\013J\361\221\017\343\\]\323\212\\\300\322$\312\250\014q\320q?v\320v|\320|\352\322\003\354\332\004\000\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004\210\261\004\236\312\004\322\326\004\tK\303\250\013\265\345\001\\\274\307\003\236\342\004\226\327\004\256\224\007\3712\304\205Z\376\324\001\177\270o\310_\003\320\\\257\323\001\350\277\031\351\252\036\2333\333\326\004\314\244\004\000\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\264\230\013\207\206\004\221\305\004\335I\313\314\001I\004T\322\314\001T\004\325_\331\314\001_\214\247\005m\347\314\001m\004\035n\356\314\001n\004o\335\314\004\212\326\004\263\300\003\347]^\360\306\215[\363\324\004\020\320\020\361!\313\240\005\310\255\013\214\251\036r\320rw\303\320w\277\333\006\350\347\004\247\331\013\260\326\006\360\000C\000c\271\333\014\201\216 \357\210\004\347\251\004t\365\333\001Ot\003u\003\261\321\n\321\274\003]\336\314\003|\323\275\007\334\200_\016\270n\310A\262""\253.\340\2403\335\333\004\200\277\004\274\321\013\377\214\007\000\000@\241\003\375\257\004\312\321\004\303\321\004\360\335\004h\226\336\001h\227\003i\003\316\323\016]\216\343\003\302\223\007.|\367\214Z\323\331\001\017\270\177\310a\225\307\031\200\252\2034\211\327\004\233\340\004\350\237\013\330\272\013\314\314\004\230\245\004e.\263\340\001e\003k\272\340\001k\355\323\014\302\215\0040\310\256\004\356\237\023\313\332\004\322\307\003^_\343\226\\\204\2563?s\320sx\320x\270\273\006\364\356\004x\272\340\004\302\331\004\266\224\007\000\000d\002\240\326\013`\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010_`\342\230\\~\263\2473t\320ty\320y\334\251\n\200\225\346\004\276\333\004\263\352\004\347\305\004\342\212\013\272\264\004\245\227\022N\001\003\214\317\016\200 \346\204[\374\245K\327\200A\352\270\022\276\332\013t\225\323\004\213\224\004D\317\332\001D\004O\326\332\001wO\004Z\335\332\001Z\004j\344\332\001wj\004p\353\332\001p\004q\362\332\001Wq\004r\321\246\025a\213\242\002,\245\226Z\370\243\315\026\360\365\006\265\315\017[\320X[\320\375[\212\353\003k\320kv\320v\000\371\361\003\365\365\004\377\361\004\251\363\004\243\357\004\307\351\013\273\347\004\340\217\013\005N\330\351\001N\332\273\005\336\331\004\316\351\013\260\251\004\316\351\004\335\177\211\352\001\177\003@\271\335\001@\0043A\004\232\316\013\374\347\003wx\316\245\036\265\264\014\307\025\240g\375\363\001\234\310\017\362\245\005e\320\017eo\320o\330\323\001\252\370\023\265\240K\236\334\004\000\202\352\004\357\337\004\333\330\004\245\334\013\254\315\004\305\251\013\243\354\004\254\334\004\374\245\334\004\243\215\006\360\000\000i\003j\226\224\241\017|}\263\372\n\013\301\372\005\210\246\027\026\363\240u\260\372\001\324\312\r4\300x\310\377z\320Y\\\320\\d\320%d\337\247\003t\2365\303\322\001A\312\325\001\251\327\010\356\350r\\\320\\\241\364\003l\320l\007w\320w\363\372\003\272\361\004\373\253\013\270\354\004\274\351\022@\212\333\004\270\354\013\263\250\013\337\300\004\212\333\004\333\217\004n\377\356\001\355n\272\256""\005p\003\215\323\016\360\004\000\357A\002B\002\317\200p6\260b\373\270\001\264+\320\021#\2402\377\240T\250\031\260+\270T\377\300\026\300q\310\t\320Q?\\\320\\`\320`\232\341\003\271\371\001\003\320{\211\361\003\322\254\013\365\311\013\267\365\004\364\274\004\235\361\004\000\375\347\004\226\361\004\360\344\004\302\231\006\217\363\001\366\344\005\237\341\004\360\344\004\210\235\361\004\323\224\006\376\377\004+\320\304\001\236\372\002\301 C;\002D\320\200q8\270\002\325\372\001\256\334\t\377\320\021%\240R\240t\250\3779\260K\270t\3006\310\377\021\310)\320S^\320^\007b\320b\317\376\003\354\357\006\277\366\004\370\367\004\376\377\004\000\243\347\013\266\314\022\341\301\004\340\224\013\263\246\013\336\363\004\271\263\004\376d,\215\227\006\244\350\001\003v\204\204\005-\276\375\001\300%wD\002E\230\203q9\270\022\206\371\001\376\272+&\240b\250\004\250I\357\260[\300\004\346\300\001\3109\320\177T_\320_c\320c\352\377\003\000\326\357\006\344\351\004\214\364\004\227\361\004\373\373\004\327\342\004\206\355\013\220\312\004\300\246\366\004\310\263\013\346\255\004\330\213\004\204\225\013\355\250\031\320\026\271.\232\371\001\210\204\005E\002F\340\205q:\367\270\"\270\207\211\014\320\021\047\240\377r\250\024\250Y\260k\300\377\024\300V\3101\310I\320\377U`\320`d\320dj\037\320jk\320k\246\352\006\276\304\004\345\261\007\017\000\000J\002\276\304\013\303\314\022\333\366\004\216\266\006\037\360\000\000B\003\231\216\004\202\313\004\237\345\004\215f\215\371\001f\003\376\250\004\246\345\004\317\354\004x\262\224\211\005/\302\366\001\320\206\005z\001\314\256\007(\000\277\250\034\311\215O\224\3135\330\243\023\231\260\004\342\270\004\223\265\013\247\362\004\240\204\326\004\366\325\013\306\315\004\300\373\004\321\311\004j\330\373\001j\013\003q\337\373\001q\222\357\005\276\373\006\272\373\003\257\370\007\177\360\006\000\005\017\320\016\361\363\001\377q\330\004\007\200x\210s\377\220!\330\010\t\330\004\t\377\210\021\330\004\022\320\022\047\357\240q\250\004\213\375\001\025\220Qv\307\204\002\200\001\036\024\017""\210q0\004\327\020\320\020\316\375\001a\267\376\004\360\n\367\000\005\0269\002\320.@\300\337\001\300\027\310\001\313\306\001\020\220\375\001\371\345\001\005\210V\2201\220\337E\230\021\330\010\220\253\001\001\230\377\026\230q\240\005\240W\250\371A\244\320\001q\002-\320->\270\367a\270q@\r/\320/B\277\300!\3001\300A\336\371\001Q\376?\014\016\210g\220Q\220f\377\230A\230U\240\047\250\021\362\357\303\001\025{\010\324\377\005\360\014\000\005y\020\267\001\215\000\220\031\230!\226\337\003x\t\001\370\377\003\234\347\002\210q\320\020\306\344\002\377\340\004\022\220)\2301\230\371A\020\004\276\003\016\220a\330\010\367\020\220\013\024\002\010\013\2104\377\210z\230\021\230\047\240\021\377\330\014\024\220A\330\010\014\377\210G\2201\320\024$\240\377L\260\001\340\004\r\210YW\220a\220\353\"q\025\004\220K\002\367\t\220\021!\010G\2506\260\367\021\260!\217%\035\240g\250\317V\2601\260L\000\244\003&\240\373\001\240\262 \013\2105\220\t\376\341\373\002\014\020\220\002\220%\220\377s\230%\230q\240\001\240\375\024\352\213\0027\260\"\260G\270\3751\343\345\0021\340\004\016\210i\374\225\325\003\330@,\250D\260\t\270\377\021\320:L\310C\310q\372\304\n\n\202a\013\2107\220#\377\220Z\230t\2401\330\014|\374@\244\005I\230R\230q\303\001\377W\220A\220T\230\025\230\247a\230q\337\374\001\013\001Q\220%\003\357\2202\220U\313 1\330\004\177\024\220D\230\005\230Q\323\351\003\374\316\376\002\360!\022\220\037\240\001\320\377!3\2601\3204D\300YA\333\271\001\336b(\250\240 \005\313!V\322\001$\230\327 \021\223B4\237\352\001\377\030\230\t\240\021\240$\240\376\355 \032\230+\240Q\240d\376\213\366\002\010\026\220c\230\021\230\356)\002\032\230#j\000d\240!\262\315\352\001s\316@6\000\200\001n\002\320\377\021*\250!\320+=\270\377Q\320>N\310e\320S\357T\320TU\222\346\0042\260!\237\340\004\013\2109\317\002\230b4\377\210q\220\003\2201\220G}\230\365\337\002\007\200w\210c\236A\337\017\210t\2208\201`H\240\277A\330\t\021\220\023\336A\017\371\210\217 \261\002\001\330\010\030\230\377\013\2401\240D\250\010\260\375\001p\006+\2501\320,>\177""\270a\320?O\310us\000\307\320UV\213\347\004\377\000b\024H\230sF\240\222\000s\003\025\220d\326@?x\240x\250y\270a\000\201\00171\220C\344\330\001\340\004q\005\304\311\001\347A\230T\331\353\001\351\006-\250Q~\362\205\002\320AQ\320QV\202\376\002\335X\205\350\0045\260Q\334\024J\230\365f\203\366\001\024\\\002\004\320\034.\377\250d\260&\270\002\270\047\317\300\024\300Qf\007\203H\020\220\255\004\346\204\001\020\220\255F\031\315\206\003\021\377\200\001\360\020\000\005\010\200\177u\210B\210a\330\010\242\207\002\377\013\2101\210A\330\014\020\277\220\005\220_\240F\220A<\366\206\353\001\330\014\330!2\220Q\200\035\001\200\231n\230?\250\210\365\016\223\2764\223\367\004\240\245\374\004\257\343\004\344\372\004\355\224\013\274\276\031T\365\372\001T\340\361\372\005\301\234\006\350\341\r\247\233p\336\347\002\016\320\016\375\037\215\362\007\030\230\022\2304\230\037y\250\013\2604\270\323\007\306\263\037\200\375\004\260\236\355\022\232\342\013\302\352\006\311\375\001\002D\221\375\001D \303\252\005\301\333\004\267\316\023\236\322\007\322\277^1\330\340.\233\300\023\000\344\362\004\252\300\013\370\263\004\332\354\004\323\354\004\327\335\004\355\273\006\271\337\r\000\307\301\\\326\224\002\373K\276\2604\315\375\004\356\260\013\233\331\004\313\335\004L\304\335\004\231\233\013\177\002\361\332\r\367\250^\001\337\344\r\000\344\316\036\274\251\027\331\353\004\317\251\013\232\350\004\355\306\004\225\311\004\266\260\013\001A\276\251\016\344\351\025\207\244\016\366\312\027\273\334\001\365\243\025\243\356\002@\345\206\013\323\200!\273\241\030\323\246\004\246\3166\237\370\0041\223\213\025\354\243\357\003\206\357+\320\033\264\2001j\320j \230\326\006\230\372\004\354\307\004\260\250\004\345\307\013a\202\326\016\264\244p\000\240\241\002\265\212\013\276\307\022\234\277\014\314\316\020\367\376\004\203\374\004\273\357\013\320\231\257\013\201\343\004\245\302\013\331\324\004S\233\374\001S\003\005Y\242\374\001Y\352\214\007\263\210\032\353\246c\362\233\002\366\377\n\034\227\334\022\243\332\tt\320t\305\272\020\254""\376\004\313\232\031\320\221\353\004\373\326\013\264\351\004\347\316\004W\304\376\001W\003\206\316\304\013_\003\321\263\r\207\251p\373\206%\211\325\tu\003\320u\334\265\020\321\334\004\251\205\022\255\355\013\330\351\013\262\323\004\rQ\246\364\001Q\003\246\314\004\361\251\004\357\277\006\200\335\r\356\261\253p1\260\021\223\254\014\035\230b\377\240\004\240I\250[\270\004>\245\232\0029\310K\320W\220\261\014\202\266\024(\272\327\004\273\366\004\235\306\013j\221\375\001j\333\347\005\202\341\013\320\210\352\004\213\356\004\362\205\004\220\302\013a\217\254\005&\240\222\303\236\006&\300\313\010\352\255e!\337\255n\207\352\004x\006\321\377\001x\002\230\330\004\307\316\004\336\313\004\271\277\004\302\304\004r\300\277\004b\266\256\020\300\200o3\2601\363\260\014\377\037\240\002\240$\240i\250\377{\270$\270f\300A\300\377Y\310k\320Y]\320]\377c\320cd\320dm\320\017mx\320x\344\265\030\253\277\004\261\263\004\205\304\013\300\342\343\013\373\260\013\362\320\004\212\206\004\206\266\004\242&\360\000\357\000b\003c\363\260\005(\250\001\354\250\243\005\362\202o4\260\215\251\016!\240\022\377\2404\240y\260\013\2704\377\270v\300Q\300i\310{\377\320Z^\320^d\320d\377e\320en\320ny\320\001y\256\315\003\327\356\013\322\375\004\260\340\004\222\350\004\245\277\013\321\336\013\200\266\226\013\274\313\004\256\311\004\231\350\004\215\363\004\365\342\006\235\270\004)\273\250\021\271\200w5\260Q\225\263\r\"\377\240\"\240D\250\t\260\033\377\270D\300\006\300a\300y\377\320P[\320[_\320_\377e\320ef\320fo\320\017oz\320z\343\315\003\273\350\013\311\365\004\337\272\004\370\311\365\004\326\277\013\203\341\006\360\000\000o\002P\331\325\013\315\352\004\275\217\004\226\345\022e\332\265\005*\367\353\001\034\230\263\003\331\207o6\260a\346\264p\213\370\004\314\366\006\037\360\000\000}\002\321\347\004\336\237\004\226\270\004\314\321\347\004\342\306\004f\003\300\265\017\215\212o7\260\375q\375\267\r$\240B\240d\250\377)\260;\270d\300&\310\377\001\310\031\320R]\320]\377a\320ag\320gh\320\177hq\320q|\320|\250\357\003\000\337\345""\004\212\370\004\337\370\004\303\272\004\355\345\004\307\277\013\270\372\004\255\370\004\340\206\270\013\352\341\004\267\374\004\302\370\004\244&\360\000\000Gf\003g\302\272\005\237\241\002\360\202u8\257\272\017\000\226\267d\242\344\004\276\272\004\314\374\004\215\302\004\350\376\004\364\322\004\355\262\004\260\360\315\006\361\301\004\353\267\010\371\216o9\270\212\222\014\320\001\021\206\267d\312\354\004\225\320\022\354\226\004\216\320\031\331\267\n\261\221o\301:\333\274\017\366\266d\223\304\031\247\344\004\223\304\031\320\026\364\313\267\010\351\223o;\313\274\017(\250\002\250\377$\250i\260{\300$\300\377f\310A\310Y\320Va\337\320ae\320e\266\332\001\320l\000\243\361\003\375\370\004\320\377\004\233\316\004\260\361\004\207\367\013\211\325\004\373\226\013\200\276\251\013\222\272\013\266\231\004\202\236\004\351\363\004\245\344\004\325\267\004k\370\246\304\005\220\243\002\272\215\017\r\210T\220\026\344\340\263\003\364\310\t\021\323\357\026\325\255 Q\300l\377\320RS\320Sb\320bwm\320m\336\352\004\320{|\361\254\032\270[+\361\353\001\237\252 a\300|\263\263\002c\337\320cn\320n\265\341\004\320|q}\336\251\032Z-\275\255\"q\310\014\304\263\002\277d\320do\320o\300\340\004\320\003}~\354\372\003\341\254\024\344\200-\201\303\002\336\256\013\222\337\017\377\001\310\034\320UV\320V\034\312\343\003\315\334\004\320~\177\336\273\016\262\233\t\356\201-\356\310\253\"\021\310,\336\264\002f\320f\227q\320q\277\326\tA\214\253\033\374\202-2\371\260\235\263\016\322\320\017Q\310l\320Z\377[\320[j\320ju\320\ru\232\227\021E\002\350\312\017\351\2009\366\232\002\215\262\013~\352\232\017a\310|\320[\\\210\343\002\027v\320v\375\225\021F\217\005\377\231\024\252\205-\354\333\231\002\245\263\n\320\021\317\231\017q\320P?\\\320\\]\320]\215\316\003\273\313\021\303G\002\336\230\033d2\231\312\013z\033t\320\331tm(\352\373\006\r\210\224\323\n7\240}!\213\372\tU\260(\270*\310\310\001t\362\322\027\301\263\030%\350\265\007X\320X\302\256\001\363\320_\315\313\003\333\323\001\360\000\000w1\001\346\373\004\204\372\004\325\303""\022`\002\254\263\016\315\305\t\334\262\014\206\377\0226\310\021\214\2002$\260\377f\270A\270Y\300k\320oQW\320W\223\374\001\320^\305\226\003\207t\320t\225\377\003\256\375\004\227\344\004\233\267\022_\300\254\022\255\376E\224\255\032\367((\226\230\272\0325\270\377\006\270a\270y\310\013\320\201S\200\203@\350\271\010\233\371\t\337\215-\354\312\002\333\273\t\022\177\320\022#\2401\240H\240\327\001\376\347\300\001B\230d\240)\250;\377\260d\270&\300\001\300\031\377\310!\310<\320WX\320\177Xg\320gr\320r\271\340\r\030\304\333\004\367\344\004\345\316\022j\002\234\342\n\246\304\003\207\2009\376\344\252\003\320\021\"\240!\2408\256\224\324\001\024\320\024\227\311\001h\220\317\001\021\375\220\345\252\017A\310\\\320YZ\000\304\365\002\323\207\024\373\322\013\254\320\004\300\374\004\264\234\006\276\334\004\261\252\004\013=\230\204\304\0012\313\251l\313\301\003\223\355\t\237\355\t\277\017\320\017 \240\001\246\304\001\330y\004\251\355\013\340\301\022T\320TZ\306\215\002\376\347\220\003r\320rx\320xy\037\360\000\000z\001\243\337\004\275\243\004\263\364\004\000\252\337\004\210\264\004\244\346\013\325\236\013\376\361\004\253\346\004\340\301\022\230\320\004\352\315\315\004z\201\375\001z\247\337\007\360\000\000wA\004L\256\372\001L\004W\265\372\001uW\245\360\005e\303\372\001e\004f\312\372\001uf\241\342\005|\330\372\001|\004F\260\367\001wF\005L\267\367\001L\005M\276\367\001\357M\005N\005\321\302\n<\220|\337\240;\250a\200\275\313\002A\330?\014\023\2206\230\021\000\004\003\010\3477\230!\030\001\000\0048\2301\334\003\010\025\0045\230\0014\010;\230\035aI\001:\230QP\001*\004X\000\374e\001\234\313\002\330\014\r\33046\377\260d\270!\2705\300\001n|\001\017\210q\000\004\220\007\275\313\001F\016\003t\220V\000\003\005\217\311\001A&\003\277u\220A\220S\2302\004u\277\220B\220d\230!@\003w\377\220a\220t\2308\2401\366P\002\320\017\244\317\001d\250&\260\347\001\260\021\343\001\277\307\004#\2401\372\261\315\001N\306\314\001\330\014\033\2305\377\240\014\250A\250[\270\001\363\270\021\237\307\001\331\315\001.\250\001""\330\377\020\024\220H\230A\330\024\367,\250G\225\315\001\340\020(\250\257\007\250q\260\231\311\002qB\n4\377\320\047B\300!\360\006\000\375\t\347\316\001\010\014\320\014\034\230\375A\321\314\001U\230-\240q\250\376\232 \017\320\017\037\230w\240\337e\2501\330\024\213\321\001x\240\277q\330\020\031\230\026\021\000g\377\250Q\250a\330\021!\240\337\027\250\005\250Q\020\014y\2507\002\250\047\243\316\002\014\020\225#\353\316\001\371M\222\315\001\371\316\001D\320\030.\250\317a\250q\330\026\005\200\001\023\220\377$\220l\240\"\240A\330\177\010\013\210:\220Q\220\240\304\001\376\333@5\230\010\240\005\240Q\230\200\311\003\233@\200\312\002\020\027\256 \355\317\001\014\367\021\220\030\336\314\003\230v\240Q\377\340\014\020\220\003\220:\230\367Y\240a\260\341\002\020\025\220X\357\230Q\230j\372\005\r\320\r\367\036\230a\314%H\230K\240\367q\250\013\271\317\003\013\2106\220\347\027\320\030\275\252\001\232\320\002\r\023\220\2477\320\032\377\254\001\252\320\001\340\215\004g>\233`\013\022\220!\330\033\001\336a\376\364\320\002\330\020\021\330\024 \240\377\005\240[\260\004\260A\260\367V\2701\315\312\002\200A\330*\377A\320AX\320XY\330o\010!\240\035\356\002\010\035\336`\357\010\"\240,\010\003\032\230,\376\251\000x\250q\330\010\036\230\375o\321 h\260a\330\010\034\377\230G\2405\320(<\270\367A\270[\313\230\002\330\010\"\320\377\"3\2601\260H\270A\256\255A*\250\021\016\0028\372A\270\337(\300)\3106\242\217\002Y\320\357Ya\320a\267\260\001\360\000\000\003y\001\357\337\004\332\371\004\330\332\013\314\325\004\316\262\004\352\360\004\330\272\372\004\271\374\004\312\307\004E\003\217A8\220\3773\220a\330\014\037\230q\377\320 :\270)\300<\310\377y\320XZ\320Za\320\375a\255\261\001\330\010%\240^\260\3778\2701\270A\330\010\016\277\210k\230\027\240\001\003\003\021\376\333\314\001x\220|\2402\240X\177\250Q\200A\330+,\333\2001O\250\017\260q\340\316\001\373\013%\254a\376\225$A\260X\270Y\300f\377\310F\320RT\320T\\\037\320\\h\320h\243\221\006\267\344\013\312\366\004\330\273\351\004\346\250\013\327\327\004i\002\346\r5\260""\367Y\270l\235\340\001U\320U\\\373\320\\\225\303\002\010 \240\t\250\231\030\215\324\003\242\200Q\320(\336B\360M&\353\240Q\216b4\354`Q\260h\377\270i\300v\310V\320S\377U\320U]\320]i\320\001i\333\224\006\253\353\013\343\375\004\211\300\004\242\341\013\273\273\006\335M\3376\260i\270|\314\337\001V\320\377V]\320]_\320_`\316\313\204\001\032\2508\363\325\003\241\200S9\270\327\021\270!\347\204\r\047\337\324\001\"\320\377\"5\260Q\260a\260x\377\270y\310\006\310f\320T?V\320V^\320^\346\303\t\360\263\013\340\231\370\004\245\350\004\321\340\013\205\273\006\324\204\r7\260y\373\300\014\373\336\001W\320W^\320\377^`\320`a\330\010\"\317\240+\250Xy\001\216\204S\320(\347:\270!\272\207\001\340\206\013(\240q\372\374\206\0026\362\000q\270\010\300\t\377\310\026\310v\320UW\320\377W_\320_k\320kw\007\320wx\353\206\002\263\263\013\207\340\004\322\354\004\200\340\013\372\234\352\004l\324\204\0168\270\t\300\034~\335\245\001X\320X_\320_\207\360\001\177\330\010#\240<\250x\371\205\003\372\217\204S;\262\207\003!\320!2\260\315!\302\207\001\330\010\002\007\236\214\001)\250\365\001\377\210\0027\201\207\001\270\030\300\031\377\310&\320PV\320VX\377\320X`\320`l\320l\000\361\220\006\334\351\013\373\305\004\344\267\013\314\344\004\240\354\004\345\372\004\334\351\004\270\276\321\004\343\351\004\242\370\007\010\013\210\366\210\t9\377\270\031\300,\310i\320W\277Y\320Y`\320`\261\355\001\330?\010$\240M\260\030\262\204\003\354\210\023\1771\240L\260\002\260(\271\211\002\177r\320QY\320YZ\327\2106\203\320(\256$\214\213\013\343\200C\224\251\013\305\274\006\330\310\301\200B\312\212;\221\215\003Q\341\214.\355\366\002\000\000\003{\001\360\264\013\211\330\004\332\343\004\265\372\004\272\360\004\212\274\006\376\374\213\201\320(=\270Q\270a\346\372\216\r+\250\240\211\003\253\211\002\2708\300\3659\373\214\001X\225\216\002b\320bn\037\320nz\320z\276\367\003\255\355\013\267\376\004\340\365\357\004\275\367\004\333\302\004\316\273\006\350\216\r;\2709\377\300L\320PY\320Y[\337\320[b\320b\363\276\001\330\010\037&\240o\260X\226\003\255""\214S\362\004\340\335\217\001\371\220\006\271\200<\347\366\004\275\2008\340\010$\357\240F\250*\367\343\001\014\210E\277\220\025\220a\220z\330\344\001\033\303\2301\236\340\001\264\200`\371\346\003\213\223\014,\250y1\250\223\002\304\213\002\270H\300I\224\217\001\376\253Cc\320co\320o{\003\320{\234\302\003\365\356\013\347\333\004\244\311\004\340\333\004\321\331\004\374\300\235\006\370\222\r<\270I\300\\\320\377QZ\320Z\\\320\\c\373\320c\317\300\001\330\010\047\320\047\1777\260x\270q\300\001\316\214U\232\255\351\001\021\204\225\r.\250\216\221\003\262\225\001Q\357\270h\300i\240\215\001[\320[\377]\320]e\320eq\320\017q}\320}\207\366\003\216\263\013\300\375\004\357\360\0048\256\237\013\225\322\006\362\224\r>\270i\357\260\001\201\223\003\367e\320e\341\275\001\330\010)\320\317);\2708\367\351\002\257\224R\320(\016\363\004$\240N\240\215\005\002\006\305\232\001\305\200<\000\203\370\004\331\355\004\327\303\004\343\333\004\317\335\004\375\374\004\276\310\004\253\360\004\366\326\317\004R\003\203\201!\340\010#\240\3476\250\031\301\352\001\254\205\n\032\230!\370\317\347\002\000\034\305=\320\027(\250\001\377\250\034\260R\260x\270|\304\370\244\001\216\231\003b\256\2158\204\352\003\364\231\0142\260\314\375\231\003\207\204\002\300(\265\370\001\351\324\003a\320}a\376\225\001\360\000\000v\001\361\225\013\200\313\306\004\367\372\004\334\377\013\274\340\004\230\363\004\344\324\006\352\231\rBs\300)\314\246\001\355\217\003i\320i\375\270\001\377\330\010-\320-C\3008w\3101\310\245\231T\320(H\232\360\002f\367\233\0146\260\200\230\003\245\354\002\300h\213\221\001~\271\315\003e\320em\320m\204\244\003\000\337\303\013\261\342\013\253\372\004\213\322\004\244\372\004\314\340\004\265\377\006\355\233\r\367F\300i\247\262\001d\320df\377\320fm\320mo\320o\377p\330\0101\3201K\310\2118\266\354\004\341\233\035>\304\215\001\340\235/\376\233\002\014s\300A\376\235\r\342\233 |\320|\336\312\003P\243\367\013\330\364\004\263\374\004\343\205\022q\270\233M@\224\212\001\034\333\2371\351\237\001\034\300Q\331\2330\262\200I""\320\233<\034\305\2006\237\230\001L\310\001\372\241\r\365\227!\360\311\003\000\231\300\004\334\342\004\213\321\004\201\355\004\215\337\004\217\232\004\215\337\004\244\373\004;t\002\250\225LB\300!\310\2416\310\2043\374\256\215I\307\241\363\310\002\377\320HY\320Yo\360\000\303\000p\313\320\005\347\373\004\244\333\004\267\214\004B\003\376\361\310+i\320in\320nt\373\320t\225\272\001\360\000\000\177\001\200\234\277\004\305\374\004\204\352\004\224\342\004\276\226\004\305\304\004\273\266\004O\326\340\363\001O\004\301\363\022r\374\363\001r\004\335@\322\363\001@\005I\331\363\001I\005\335P\340\363\001P\005V\347\363\001V\005=X\356\363\001X\005Y\005\223\340E\222\244\005\20345\252\347\001\370\217\004\360\257\010\373\210(\323\352$w\270\371\350\007\333\212g\335\3525W\250J\301\204\0025\027J\310!\225\250B\036\366\226\017\200\355\032\303\250\026L\203\341\013\321\232\20778\356\252\021\315\224\nW\220\273\002\000\260\363 \221\3610\320\233\017\336\353\004\306\306\004\363\375\004\333\373\004\334\355\004|\270\337\004\270\320\006\360\000\000t\002\306\262\006\037\360\000\000@\003\243\303\013\240\314\004\261\303\004z\324\373\004g\322\226H5\260\t\270\311\371\001\000\202\201I""\350\3611\311\255\017\235\366\004\220\323\004\235\366\004\260\354\004\264\356\004\200\213\364\004\367\262\004\244\366\004\234\376\004\261\227\004\202\336\004\260\253\004_\326\212\376\001_\003\357\316\004g\230\376\001g\003\001h\263\255H\362\200Z\377\255\t\341\313\013\253\206,\207\201Q\270\310 ]K\315\321\001K\004Q\324\321\001Q\311\321\005\373T\004\224\365Ay\240\001\240\034\377\250R\250v\260U\270)\217\300?\320R\224\364\003\253\262\003\350\370\001\200\363A\330\225\204K\225\2302l\320lr\037\320rt\320t\344\347\003\353\355\004\354\330\004@\220\364\004\362\355\004\223\362\004\367\367\004\357\340\006\272\341\001\002\315\217\006\037\360\000\000B\003\275\246\004\326\306\004\222\266\013\035h\325\324\001h\003i\243\221H\334\206S\256\366/\000\320\263\017\302\356\004\307\343\004\333\364\004\311\356\004\317\376\004\317\370\004\307\304\004\200\313\341\004\317\376\004\316\321\004\255\346\004\260\223\004\342\263\004\244\207\004i\216\244\327\001i\003j\212\244H\253\211S\261\367\004$\007\320$5\273\273\005\257\266\013\232\367\033\356\223\017\216\355\004\000\234\346\004\226\363\004\225\355\004\245\361\004\264\371\004\375\226\013\243\324\004\267\367\004h\341\253\004\201\257\013\362\320\031I\200\332\001I\004\306\224\004:\263\207\004R\326\323J&\270\005\276\312\003\322\206^\000\255\266B\241\345\004\234\321\004\247\364\004\250\345\004\236\360\004\220\370\004\243\312\006\322\377\374\001\002\271\372\004\362\273\004S\355\334\001S\003\232\215\232\004c\373\334\001c\003\327\204\004\206\335\004l\000\312\266H\220\217S\331\266F\361\360\004\344\326\004\353\362\004\370\360\004\204\352\004\240\354\370\004\273\252\013\277\276\004\332\337\004\342\303\004]\310\337\001]m\003\326\326\022m\003\361\366FV\250\370\200Zh\370\266W\231\201Q\221\212\004o\303\342\001o\003\355\334\004\252\326\315\004D\303\342\001D\356\217\005W\321\342\001W\273\004Y\330\342\001Y\004c\337\342\001c\273\004l\346\342\001l\004x\355\342\001xk\004~\364\342\001~\226\235\005A\005\246\267L\177%\270y\310\017\320W\220\367\003\000\254\274\003\213\357""\003\223\301\013\373\354\004\371\375\004\356\241\004\350\377\006\313\220\001\177M\320Mb\320bc\267\230L\037\014\300K\310q\277\340%\304\356\032\337\230@\370\312\312\004\332\205\013\314\365\006\360\000\000R\003(\211\310\004\223\216\004\303\321\022G\305\346\001G\313\335\005\373\242\004T\364D\231\241\004o\350\346\001o\372ED\225\241\001wD\005J\234\241\001J\005L\243\241\001\357L\005M\005\317\261Ax\230q\377\240\014\250B\250f\260E\377\270\031\300/\320Q]\320/]_\320_\252\270\003s\214\233\001\226\317\005\320\376\334\004\222\363\004\212\361\004\216\365\013g\211\274\0017N\037\320Ne\320e\274\336\001\307\234G\275\232\003\375\034\301\374\001]\320]^\330\010\017!\320!2\322\371\005\216\227k\322\371\004\200\307\004\370\307\246\004\312\277\004\210\235\006\360\000\000g\003\232\316\325\004~\311\352\001~\003\361\206\004\311\341\004L\256\311\352\001L\004V\320\352\001V\267\352\005k\256\336\352\001k\004q\345\352\001q\276\352\005t\376\276\227P9\310L\320XZ\320\377Z`\320`e\320en\027\320no\214\230\001Q\346\351\002\265\277\017\216\2403\373\320(\210\335\020\330\010%\240^?\2601\260H\270A\203\375\001\210\335\033\377m\320mr\320rx\320\001x\254\275\003\372\344\004\221\362\004\226\350\004\216\377\004\230\362\004\205\253\004x\215\342\004\302\352\004\314\314\006\360\000\000H\207\273\005Z\377\321\004b\345\355\001b\003\351\355\004r\363\355\001\227r\003x\372\355\001x\372\337\005\252KT\352\201\356\001T\225\350\005\\\217\356\001\\\004]\375\004\302\335B\320\027\047\240q\250\377\014\260B\260f\270E\300\037\031\310*\320T\272\373\003\267\314\003\372\342\001\177\200A\3308P\320P\362\312\001\374\221\205I\260\365\001M\310\035\320VW\200\330\252=\356\225\047\264\336\004\363\317\004\351\302\006\250\276\002\214\256\006\360\207\000\000_\377\360\005\221\350\004\255\353\004\231\306\004E\236\221\361\001E\004F\004\316\252G\373\243\0059GR\320R\261\376\003\311\204G\231\370\001N\204\346\001\001Y\351\345\031\263\230W\246\376\004\356\363\013\204\330\004\275\320\004\214\205\004\325p\377\363\001p\273\325\005A\370\363\001A\004\320\263""\214\004\377\230\004\374\363\004\376\204\004d\233\364\001d\004Uj\242\364\001j\273\220\005m\310\230Pk\226\214\014?\320st\200A\330\247D\224\367\027\370\364\330\006\227\2105\375\323\001>\310\036\320W\017e\320esr\000\253\351\031\335\323,\200\237\047\340\352\344\004\325\226\013\245K\334\361\004\261\351\006\360\000\000\243}\003\345\244\004\270\210\004\261\210\004b\316\367\001bu\004\263Dn\334\367\001n\004w\343\367\001ww\004\177\352\367\001\177\004E\220\262\001wE\005G\227\262\001G\005H\356\261\016\276\215\324;u\270I\300[\350\314\010i?\320ir\320rs\307E\244\313\001\361\001\210\376\004\223\271\006\205\217M\036\300~\320\377Uc\320cq\320qr\377\330\010\037\320\0370\260\001\017\260\030\270\021\000\t\014\t\220\373\001\207\250Vh\320\350\004\221\240\013\334\334\004n\221\373\001n\003\316\227\004\000\231\355\004\253\346\004\221\240\004\273\365\004\317\217\004\227\214\004\256\320\004\225\373\004\252\326\217\004u\311\373\001u\224\373\005}\327\373\001}\351\004\337D\363\265\004T\213\266\001T\005Z\356\222\266\001Z\005\\\231\266\001\\\005]\375\005\315\250O7\310,\320VX\377\320X^\320^c\320c?l\320ls\320s\360\376\003\306\373\004\370\317\334\004\371\341\004\272\372\006\200A\330?@\360\330\261\032\210\303\n\364\276\002\351\266\001,\250a\250\377q\330\010\032\230,\240a\373\240x\007\001\036\230o\250Q\377\250h\260a\330\010\034\230\007G\2405\311\256f\372\373\004\335\356\004\224\331\004\201\374\004\370\372\373\004\316\371\004\267\314\006\360\000\000V\003\350\220\212\031\241\377\004\316\371\004H\262\377\001H\004I\375\004\211\336G5\260\007\260z\300\006\242\262\001?V\256\217\002\230\223\030\310\2017\354\336\001\373\316?\000\341\251 \324\350\004\264\366\022\324\350\004\313\374\004\257\371\004\230\244\004\266\371\004\320\336\236\004\251\215\004\346\226\004\334\232\004N\325\374\001N\004\204\256\223\004\346\226\004W\301\374\016\334\3361\375\317\003\201GA\371B\304\377\010\245\226\034X\250W\260A\364\342\204%\335\364\001\001\210\226-s\320sy\003\320y\216\344\003\305\371\004\267\351\004\262\233\013\353\304\004\366""\346\004\000\232\327\004\276\351\004\325\362\004\367\341\004\305\360\004\271\374\004\272\332\004\275\302\004\036\260\265\006\360\000\000h\270\374\005\263\367\004\325\377\004\354\351\231\004\212DO\004\356\364GV\2506\237\260\025\260i\270\303\356\001\254\201VCs\3001\204\375\001\260\231\n1\260\001\335\377\002~\234B\300\030\310\031\320R\277\211\003\277`\320`h\320h\341\307\003}\003\320}\357\351\003\223\347\004\270\377\004\365\351\004\275\354\004\206\260\004\000\271\372\004\313\374\004\333\365\004\343\367\004\304\354\004\375\344\004\231\332\004\270\270\004\300\374\351\004\237\252\006\333\332\001\270\372\005\206\210\004\237\377$A\300\235\031\210\213\001_\320_\325\344\003\331\351\001\330_\010,\320,A\335\000\021\206\300\001\234\246\370\025\241\201bE\300Q\335\370\001\266\234\n3\336\210\311\001\"\320\"A\332\371\001\3008\357\3109\320T\323\235\003b\320b\007j\320j\203\205\003\301\214\n\362\347\004\363\332\004\312\245\013\000\345\370\004\311\305\004\303\375\004\336\370\004\307\357\004\312\375\004\256\326\004\307\357\004\232\256\226\013m\277\375\001m\003\252\217\004\274\375\004B\242\315\340\001B\311\340\005\243\217\004\310\234\004U\271\340\016C\375\300\237\237\002a\320ac\320c\377j\320jl\320lm\330\377\010.\320.E\300X\310\337Q\310a\330\010\215\201zF\300\271a\216\360\001\300\237\n4\2601\370\373\002B\377\300!\3001\300H\310I\373\320U\236\351\003c\320ck\320\017kt\320t\364\335\003\200\346\004\310\237\004\302\310\004\000\253\355\004\347\364\004\261\340\004\224\360\004\363\373\004\325\362\004\325\371\004\356\364\004@\210\327\004\227\216\013\317\237\004\300\260\004\252\222\013\261\234\013M\342\343\001uM\364\273\005U\360\343\001U\004V\307\343\016wD\300I\357\352\001b\320b\222\343\003\377m\320mn\330\010/\320?/G\300x\310q\256\333\002\234\204z\257G\300q\310\224\213\r5\336\213\002\320\371\"\266\210\002\262`Y\320V\\\320\375\\\275\003l\320lu\320u\000\255\360\003\326\365\004\366\367\013\263\360\004\212\321\004\373\376\004\234\363\004\255\271\004\000\301\353\004\226\356\004\337\301\004\353\374\004\307""\343\004\335\365\004\215\216 \216\256\004\376\211\216$E\300Y\310l\320Z\356\255\255\003l\320l\275\245\001\330\0100\377\3200I\310\030\320QR\367\320RS\372\204\"\340\010\014\210\377J\220m\2406\250\021\330\276\010\000M\230\024\230Q\005\001J\177\220i\230q\240\004\240\236\245\002\377\r\210O\2309\240F\250\375!\346\365\001\r\320\014\036\230b\357\240\010\250\001-\001O\2301\377\200A\340\010\020\220\004\220\375A\246\376\0014\210w\220a\220\377w\230a\330\014\021\220\030\373\230\021\004\000\320\021!\240\021\377\360\006\000\r\022\220\037\240\367\013\2501\026\001\036\230{\250}!\037\001\033\230K\240q \002\367\"\240!\037\003\030\230\037\250\357\001\250\024\250\324\366\001\r\021\220\377\005\220V\2301\230E\240\337\025\240d\250!;\000\020\027\373\320\027\233\231\001\024\260Y\270a\377\330\020\035\230T\240\021\240\377!\330\020\023\2204\220q\337\320\030(\250\003`\000\024\030\377\230\001\320\031+\320+H\377\310\001\310\021\330\020\025\220\335\\#\000.\260\001\223\001\025\220\177a\320\027(\250\004\250\374\246\001\376K\0243\2601\260D\270\t\373\300\021W\010\025\220[\240\001\357\240\036\250q<\006\047\240t\363\2501\325\003P\002)\250\033\260\357A\330\014\020\240\0221\260\021\373\260$\241\216\001\330\020\036\230d\357\240!\2401\224\001U\230!\373\230?\326\000?\270$\270a;\270q\247\001X\230Q\210\227\001\242\006})\211!\330\010\017\210q\347!\212\332\351\006\035\246A\"\243\312$\243\342*\315\362\001\320\ti\237\303\001\327\301\001\001\257\221\013\321\366\004\241\327\004\373\373\004;]\002\324\341EX\250Q\260\2003\335\311\002\374\323\375\r\302\316\032i\320ij\320j\377u\320uv\360\000\000w\301\001\326\311\004\324\375\004\261\370\004\201\331\004\363\303\004^\002\364\227\377E\254\20089\224\237\001\"\320\"3\230\272\254\007\244\330\032\232\373\001\320k\266\252\001\205\330\001\001\230\332\305\004\257\300\004\360\221\022_\002\301\327E\223\2028:\363\270!\210\352*\243\251\001\320lw\320\001w\343\364\003\325\354\004\234\360\013\272\307\004\212\357\006\323\373\r\315\2305\316\372\2038;\2701\332\330+\202\221\001\320m\307x\320x""\270\336\003\306\225\013\265\222\022a\002\334\314\335E\342\2058<\270A\315\372\t\330\010\377&\320&7\260q\270\010\353\300\001\265\375\001*\374\213\001\"\320\"~\374\377\002\270(\300)\3106\247\340\010>\350\217\001\320ny\320y\262\360\003\351\302\004\340\371\320\004\233\221\022\341\362\004\276\370\004\273\377$:\270)O\300<\310y\222\264\002\360\223\003d\247\263\003\3478\2701\273\001\345\226\021}\240A\377\240\\\260\022\2608\270:\376\226\267\001S\320S[\320[\\n\213\2105>\270a\307\377\t\330\010\260\370\007\346\333\377\001,\250\331\223\003\225\313\002\270H\300\377I\310V\320SY\320Y\377[\320[c\320co\320\177op\320p{\320{\304\315\003\260\310\223\013\346\312\004\201\375\004\335\372\004p\002\243\336\001\002t\204\356\004\310\377\022O\251\377\016<\270I\200\271\001\277Z\320Z\\\320\\\255\276\003f\376\230\275\0027\260x\270q\300\001\376\201\226\023\177\240a\240|\2602\217\260X\270]\344\245\004\255\360\001\263\2125?\371\270\301\362\016\252\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\273\325\004\321\317\004\264\325\004\320\362\004\242\377\006\326\235Gn\232\2148@\300\001\254\364\r.\250\231\362\003\336\267\311\002\270h\300i\367\350\001[\320\177[]\320]e\320e\300\253\001?\320r}\320}~\240\341\002\243\250\013\360\273\321\004\251\344\004\350\376\006\264\373\r>\270i\300\377|\320S\\\320\\^\320\377^e\320eg\320gh\377\330\010)\320);\2708\270\200\237\003\354\234\025\204\2168A\300\021\226\366\r/\363\250a\264\366\002\321\310\002\270x\300y\367\320PV\276\226\002^\320^f\233\320f\244\256\001\320s\342\276\001\243\333\001\002\350\273\350\004\347\343\004\334\204\022g\227\220\016?\270y\357\310\014\320T\355\277\003f\320f~\321\270\003*\320*=\270X\345\235\003\300\223\200U\371\273\n\265\2002\316\346\004yn\247\3763=\270\306\305\367\016+\250\336\216\003\376\360\002\330`9\310\375F\274\243\002Z\320Zb\320b\016\203\307\003v\320v\314\216\003\376\261\004\223\327\004\250\354\004\350\213\314\004\257\354\004\221\240 A\243\313I7\260!\034\206\226\n\237\266>8\270\001\226\224*\347\3369\300\331\004\000\234\337\013\352\326\004""\323\303\004\214\321\004\300\331\004\350\250\006\373\255I\346\341\002\003\340\010\222\274J\327\276g\320\323\004\250\356@\317\3677\250\344\004\340\370\200I\344\205D\232\323\047\224\357\004\321\376@;\2709\317\300L\320P\217\221\003\247\244\003e\330\377\010&\240o\260X\270Q\001\270\227\247\032\245\201!\226\2665\312\351\001\327\235*\227\3512\327\222\004\000\346\330\004\275\260\004\204\347\004\276\255\004\255\252\004\256\377\004\231\326\004\322\266\004\272\355\330\004l\222\364\001l\003s\231\364\001s\004\366\301\005\263\323\004|\233\351J\275\266\004\342\206\032\206\2717\371\234-\007g\320g\333\343/\233\371\004\325\364\004\360\351\004\340\365\004\000\205\364\004\203\247\004\242\371\004\364\366\004\301\266\004\232\364\004\321\275\004\226\322\022\001~\334\343J\3308\233\274\014\365\265&\340\206K\201\266\031\273\367\004\000\325\315\004\217\266\004\334\315\004\235\274\004\310\341\004\363\346\004\326\354\004\316\307\006\006\236\333J\n\270\360\216\013\250\270G\250\207\003\236\344\t\252\344\t?#\320#4\260A\314\210\001\240\233\t\374\310\320\001\334\327\035k\320kq\320q\007s\320s\220\271\003\310\357\004\344\336\004\317\325\013\201\377\004\000\323\374\004\235\347\004\251\233\004\226\271\004\217\271\004\323\374\004\334\320\004\267\315\013\200\244\347\004\310\344\004\275\207\022\267\315\004\240\274\004\205\334\004\214\374\004_n\226\374\001_\004i\235\374\001i\004\234\372\004Uz\253\374\001z\242\372\005B\255\372\001B\211\330\005\335U\273\372\001U\005_\302\372\001_\005\335e\311\372\001e\005g\320\372\001g\005\235h\336\327LF\270%\266\227\003\230\321\006n\037\320ns\320s\302\354\003\215\344\004\210\347\013\200\361\231\013\324\265\013\222\212\013\267\257\004\300\374\004\250\377\004\226\347\013e\001\003\202\253\n\244\275I\324\2230\261\356\023\335\366\031\204\240\004\234\351\004\010\341\267\004\200\367\004\361\324C{\373\363H\330\275\006\241\224\010\227\300I\370\233\245\002\214\330\n\365\244\033j\320jp\320\001p\215\231\r\257\346\004\367\353\031\232\367\004\310\303 \330\333\004\353\303\004@\250\367\004""\351\371\004\235\217\004\211\325\004\341\316\004\337\333\004\177\333\350H\000\227\201]\341\2331\320\300\003\233\344\003\227\313\004\332\374\004\346\353\031\257\364\004\320\354\245\004\347\361\004\211\354\004\302\336\013M\216\372\001M\003\320\231\372\004\275\364\004\222\372\004\214\325\004w\261\372\001w\003z\201\330\004\177\277\372\001\177\003@\004\377\350H\000\220\204]\344\250\003\375\335\t\277\250\033\241\367\003\362\335\024\212\354\031\330\364\004\000\301\300\004\330\364\004\255\354\004\212\375\004\352$\340\377\004\256\367\004\346\364\004 \247\367\004\362\320\004\220\336\004\310\341\004\337\314\004A\236\372\016\355\2503\240\311\311\003\211\207]\266\251\002\324\340+\352\310]O\377\377\001Oi\003\272\344\013\262\354\013y\261\372\001y\003\343\204\004\202\204\333\004B\355\310S\213\212T\305\252\002\356\343\n\253\252\033n\033\320n\254\303\001\320z\223\375\003\221\270\013\337\343\031\000\345\364\004\303\322\004\230\362\004\202\344\004\312\372\004\353$\240\375\004\274\314\013`\365\367\004\366\335\004\335\326\004\312\322\004\272\306\004C\004\350\252Gp\261\314\010\204\215T\324\253\002\302\251)o\320o\227\303\001\003\320{\247\257\003\244\271\013\353\274\022\320\261\004\213\365\004\357\263\004\000\257\317\004\267\314\004\350\372\004\313\222\004\313\375\004\346\367\004\231\365\004\337\367\004\210\236\362\013\360\340\004\345\343\004D\327\372\016\207\2547\230\201_B[\300!\337\351\0140\250\263\262\003>\351\300\001\317\300\010\310\t\341\266\002\353\356\003g\320\035g\315\220\003|\320|\267\260\003\267\272\013\376\275\022\000\267\330\004\272\243\004\260\330\004\357\351\004\267\330\004\331\372\004\226\361\013\214\370\004\240\337\346\004\354\240\004\366\351\004\240\314\013\246\365\004E\321\375\016@\277\300\t\310\034\320U\236\375\003g\373\320g\314\277\001\330\010+\320+\307?\270x\207\310\003\207\317 \370\222TC\300\0011\331\354\014\251\321\177\332\375\004\304\351\022\346\243\004\262\351$\337\321B\332\362\225TD\224\325\0162\260\323\264\003@\300\177\001\300\021\300(\310)\257\272\002\034\333""\323\003\350\343\003x\320x\250\266\003\342\343\004\323\274\013\000\366\375\004\257\300\013\253\333\004\273\272\004\372\253\004\250\336\004\253\333\004\356\357\004\320\276\256\004\204\376\004\242\325\013\311\342\004t\234\376\001t\003\364\230\363\013\266\336\004G\353\362\016B\300)\310w<\320W\222\357\003i\320i\233\354\003\377-\320-C\3008\3101\343\310A\322\313$\334\362\006\336\332IE\300Q\000\321\362\014\227\324\203\264\341\004\223\372\004\340\354\004\225\376\004\232\372\004\277\226\004$\307\357\004\232\372\004H\300\324S\356\233TF\212\330\016\207\324\207 \306\357\031\320\362\004\217\344$\304\324C\361\236TG\203\330\016\373\323\207 \265\344\004\215\330\013\244\357\004\313\234\004\320\362\022J\356\373\016\265\324F\332\260\207RH\370\327\0166\260\255\302\003D\300\377A\300Q\300h\310i\320\357W]\320]\267\326\003m\320m\007v\320v\256\306\003\331\373\004\204\320\004\337\353\013\331\373\004\000\212\333\004\340\373\004\332\310\013\347\373\004\212\333\004\305\272\004\253\347\013\300\242\004\240\262\347\013\347\373\013\237\336\004\257\352\004\246\377\004K\362\376\016F\377\300i\310|\320[d\320\177df\320fm\320m\373\307\001\377\330\0101\3201K\3108?\320ST\320TU\331\212-\236\355\nqQ\374\354(\204\275-\325\231\003v\320v\236\305\003\240\371\335\004\317\376\004\271\303\004\216\341\004\356\343 \177\315\322FV\307\250:\260\372\324\002\227\367\006\236\367\010Y\240\375a\306\200Jw\310f\320TV\377\320V^\320^g\320g\240{\225\255\361\002\337\333\001\324\200<\221\325\"\007\306\311\001W\377\320W_\320_h\320h\016\201\233\003w\320w\313\372\003\255\313\004\373\362\004\255\345\004\004\246\342\004\353\221 @\376\265F\201/\331\363\010\310\202[\263\200]\3376\260i\270|\274\350\001V\320\365V\215\312\003`\350\371\001\032\2508\260\3731\260\276\223\030W\250J\260a\177\200A\360\010\000\t\021\204\340\004\177\320\013\036\230g\240Q\212\336\001\177\n\230!\2305\240\017\265\336\001\377\023\2205\230\r\240V\250w1\340\014\005\003U\250!+\n\367\014\210L\301\337\001\013\2606\270\376\271\340\001\220\034\230Q\230k\250\367\021\320*\275""\324\001\014\021\220\025\377\220a\220~\240Q\240n>\272\360\001\r\320\r\036\230j\013\231\353\001\372\304\341\004\025\202\341\001\017\210q\220\r/\230T\320!\351\324\001\001\277\336\004\235\010\334\250\337\001\323\337\001\033\250A\323\316\001\013\210\3776\220\023\220A\330\014\024\377\220E\230\033\240A\240[\343\260\001\273\227\001\370\336\002\324\010\026\220a\376\267\342\001G\2201\330\014\017\210\377t\2203\220e\2301\330\377\020\030\230\006\230a\230q\376\211\341\002\320\027/\250q\260\005\337\260Q\330\024\031F\002T\250\337\021\250+\260V\307\324\002\024\"\377\240!\330\021\025\220S\230\367\005\230Q\230\341\005$\240a\320\357\0479\270\026\301\322\002\020\025\220\372\230\340\001>2\000\047\260\026\260q\377\270\001\340\010\013\2101\330\363\014\031\322\342\001q\000\320\023$\240\313A\240Q\001!\203\342\001\347 \017\210\177s\220!\2206\230\022\207\001\367\024\220C\246 Y\250a\250\367u\260A\177\001\021\330\024\027k\220r\032\0003\236\002\030 \333\343\001~\236@\030\033\2304\320\037\210\327\001\177\014\300A\330\034!\240\207!\337[\270\001\270\033\013\001*\250]!t\0015\220\003\345\003q\256\341\004?\320\033+\2504\250\262\343\006\371@\377\n\000\t\017\210d\220(\277\230(\240%\240q\207\344\003z\357\230\021\230%\215 \014\022\220\237$\220a\220q\370%)\000\020:\263 8\224`\001\240\0217\003\007\0079\037\262!\007\013\005\240Q]\003\330d\362\336FNZ\003\343A\016\230e\240\245<\360 \013\250\327\003\255C\014\213\204\004\340\177\010\021\320\021&\240a\256\343\001\276\346\345\001C\210}\230I\305`e~\215\345\001\024\220D\320\030.\216\373\002\352\360FZ\272@\001\331Av\220V_\320\0332\260#\267@6\214\344\001\365)\304@(\014\000Q\330\021\027\377\220v\320\0357\260s\270\377&\300\006\300a\330\020,\356\302`X\260S\247A\023\320\023_#\2401\240A\312\373\001A\320\346\001z\274c\016\227\205\007\2104\210u\346a\337\020\320\020 \240\261\326\002e\220_8\2307\240!\2435\013\315\205\003?U\250!\330\020\032\311\205\007\246\204\001\347\035\240a\204\204\001\373A5\230\003v\206\204\001\027\220\356\326\001s\250!\243@\317v\260Q\340\263\346\001\266""\001%\250\377}\270A\270Q\330*0\377\260\001\330*2\260$\260\377a\330\r \240\007\240u\243\250AJ\n\307c=\01618\0171\373\260\024^\000\014\023\2203\220\377a\220v\230S\240\001\240\377\025\240c\250\027\260\001\200\373A\360\351\005\340\010\033\2302\377\230\\\250\025\250k\270\021\373\270+\301\361\002\034 \240\016\250\337e\260;\270e\252\241\001#\240\1772\240S\250\005\250\\\035\000m\"\237\002$(\014\000U\260\362\350\002\352\253a1\340\350\001\027\302a#\2404\373\320\047\331\244\002\013\2105\220\004\377\220D\230\n\240!\2404\363\240q\322\347\001\375\346\001\003\2207\230\271)\373\"\224\350\002z\240\021\220\204\002\024\277\025\340\020\021\330\024\355 \320\375!\361\320\001&\300\001\330\027\030\337\330\024\032\320\032\265\226\001\030\033\377\2301\230A\330\030\034\230mE\320\350\002\024\032?\003\340\010\365$\377Q\330\020\024\220J\230a\377\230u\240O\2601\330\014]\047\264 M\270\021\274#q\010\022/\031\300!\340%\000t\252\205\001\212\207\001\276\302\206\0013\210a\210~\246 \003*\235b\014\377@!\300\351\002\014\300\351\002\275A\376\203\000\r\020\220\001\220\036\230\347t\320#\270\336\001u\000C\220q\177\230\006\230c\240\024\240\230\204\001\337\004\260A\260T\240\211\001\022\320\235\022\267\326\001\020\023\220\234!\235\000E\377\230\021\230!\330\014\022\220\335)\312\001\340\010\014\246\353\t\320\014{\034\230\316\353\004L\230\t\240\337\211\002\177\033\230A\230[\250\001\270\351\002?\010\r\210U\220!\271\204\001\313 \262\353\353\002\210\037\006\361\211\030\340\010\202\211\0011\357\200A\3602\327\204\010:\220Q?\220n\240A\330\014\325 \223\352\001\277\007\220t\320\0336\357`\020\377\023\320\023&\240g\250Q\367\330\024\030\266B>\260\021\330\375\024\223\352\001\047\250\034\260Q\340\252\004\004\021\323\353\0011\254A\007\330@\001\376\333\204\005>\240\023\240A\330\020\337\025\320\025%\240\271\211\001\320\025\337&\240a\330\020\227`\340\020\375\026\264\355\002\001\330/6\260c\376\346`.\310\002\310!\3309\277:\33004\260E\366`!.\302\352\003N\220!\226\204\001\014\314\211\001\365&\364\245!\232 \330\305\003\320\004\035\230""\361Q\306\214\010\372\353\001\255@\330\010\022\220\375\047\334\"\010\014\210G\2209\277\230J\240f\250A\200\213\002\320\177\023+\2501\250G\260\323\353\002>\247\354\001\026\240q\250\013\216\364\001\242\214\003\001\330\317*"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35983, 111563); #define __Pyx_DecompressString_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (63757 bytes) */ -static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected function failed with error code %(display_name)s (%(group)s)\n%s\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)Dashed LineDotted LineDouble Exponential Moving AverageExponential Movin""g AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected Triangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothe""d Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_noteinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)numpy._core.multiarray failed to importnumpy._core.umath failed to importstream_%stalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxiunstable period \047ACACCBANDSACOSADADDADOSCADRADXADXRALLAOAPOAROONAROONOSCASINATANATRAVGDEVAVGPRICEAllCandleSettingsBBANDSBETABOPBodyDojiBodyLongBodyShortBodyVeryLongCCICDL2CROWSCDL3BLACKCROWSCDL3INSIDECDL3LINESTRIKECDL3OUTSIDECDL3STARSINSOUTHCDL3WHITESOLDIERSCDLABANDONEDBABYCDLADVANCEBLOCKCDLBELTHOLDCDLBREAKAWAYCDLCLOSINGMARUBOZUCDLCONCEALBABYSWALLCDLCOUNTERATTACKCDLDARKCLOUDCOVERCDLDOJICDLDOJISTARCDLDRAGONFLYDOJICDLENGULFINGCDLEVENINGDOJISTARCDLEVENINGSTARCDLGAPSIDESIDEWHITECDLGRAVESTONEDOJICDLHAMMERCDLHANGINGMANCDLHARAMICDLHARAMICROSSCDLHIGHWAVECDLHIKKAKECDLHIKKAKEMODCDLHOMINGPIGEONCDLIDENTICAL3CROWSCDLINNECKCDLINVERTEDHAMMERCDLKICKINGCDLKICKINGBYLENGTHCDLLADDERBOTTOMCDLLONGLEGGEDDOJICDLLONGLINECDLMARUBOZUCDLMATCHINGLOWCDLMATHOLDCDLMORNINGDOJISTARCDLMORNINGSTARCDLONNECKCDLPIERCINGCDLRICKSHAWMANCDLRISEFALL3METHODSCDLSEPARATINGLINESCDLSHOOTINGSTARCDLSHORTLINECDLSPINNINGTOPCDLSTALLEDPATTERNCDLSTICKSANDWICHCDLTAKURICDLTASUKIGAPCDLTHRUSTINGCDLTRISTARCDLUNIQUE3RIVERCDLUPSIDEGAP2CROWSCDLXSIDEGAP3METHODSCEILCMFCMOCMOUCOPPOCKCORRELCOSCOSHCUMSUMCVICandleSettingTypeDEFAULTDEMADISABLEDDIVDONCHIANDPODXDataFrameDotEFIEMAERERIEXPEqualFLOORFOSCFRACTALFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFun""ction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHMAHT_DCPERIODHT_DCPHASEHT_PHASORHT_SINEHT_TRENDLINEHT_TRENDMODEHighLowHistogramIMIKAMAKCKDJLINEARREGLINEARREG_ANGLELINEARREG_INTERCEPTLINEARREG_SLOPELNLOG10LineMAMACDMACDEXTMACDFIXMAMAMARKETFIMASSIMAVPMAXMAXINDEXMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMFIMIDPOINTMIDPRICEMINMININDEXMINMAXMINMAXINDEXMINUS_DIMINUS_DMMOMMULTNATRNONENVINearOBVOrderedDictPERCENTILEPERCENTRANKPLUS_DIPLUS_DMPPOPVIPVOPVTQSTICKRMAROCROCPROCRROCR100RSIRVIRVOLRangeTypeRealBodySARSAREXTSINSINHSMASMISQRTSTDDEVSTOCHSTOCHFSTOCHRSISUBSUMSUPERTRENDSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsT3TANTANHTA_ACTA_ACCBANDSTA_ACOSTA_ADTA_ADDTA_ADOSCTA_ADRTA_ADXTA_ADXRTA_AOTA_APOTA_AROONTA_AROONOSCTA_ASINTA_ATANTA_ATRTA_AVGDEVTA_AVGPRICETA_BBANDSTA_BETATA_BOPTA_CCITA_CDL2CROWSTA_CDL3BLACKCROWSTA_CDL3INSIDETA_CDL3LINESTRIKETA_CDL3OUTSIDETA_CDL3STARSINSOUTHTA_CDL3WHITESOLDIERSTA_CDLABANDONEDBABYTA_CDLADVANCEBLOCKTA_CDLBELTHOLDTA_CDLBREAKAWAYTA_CDLCLOSINGMARUBOZUTA_CDLCONCEALBABYSWALLTA_CDLCOUNTERATTACKTA_CDLDARKCLOUDCOVERTA_CDLDOJITA_CDLDOJISTARTA_CDLDRAGONFLYDOJITA_CDLENGULFINGTA_CDLEVENINGDOJISTARTA_CDLEVENINGSTARTA_CDLGAPSIDESIDEWHITETA_CDLGRAVESTONEDOJITA_CDLHAMMERTA_CDLHANGINGMANTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHIGHWAVETA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHOMINGPIGEONTA_CDLIDENTICAL3CROWSTA_CDLINNECKTA_CDLINVERTEDHAMMERTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLLADDERBOTTOMTA_CDLLONGLEGGEDDOJITA_CDLLONGLINETA_CDLMARUBOZUTA_CDLMATCHINGLOWTA_CDLMATHOLDTA_CDLMORNINGDOJISTARTA_CDLMORNINGSTARTA_CDLONNECKTA_CDLPIERCINGTA_CDLRICKSHAWMANTA_CDLRISEFALL3METHODSTA_CDLSEPARATINGLINESTA_CDLSHOOTINGSTARTA_CDLSHORTLINETA_CDLSPINNINGTOPTA_CDLSTALLEDPATTERNTA_CDLSTICKSANDWICHTA_CDLTAKURITA_CDLTASUKIGAPTA_CDLTHRUSTINGTA_CDLTRISTARTA_CDLUNIQUE3RIVERTA_CDLUPSIDEGAP2CROWSTA_CDLXSIDEGAP3METHODSTA_CEILTA_CMFT""A_CMOTA_CMOUTA_COPPOCKTA_CORRELTA_COSTA_COSHTA_CUMSUMTA_CVITA_DEMATA_DIVTA_DONCHIANTA_DPOTA_DXTA_EFITA_EMATA_ERTA_ERITA_EXPTA_FLOORTA_FOSCTA_FRACTALTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HMATA_HT_DCPERIODTA_HT_DCPHASETA_HT_PHASORTA_HT_SINETA_HT_TRENDLINETA_HT_TRENDMODETA_IMITA_INPUT_FLAGSTA_InitializeTA_KAMATA_KCTA_KDJTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_INTERCEPTTA_LINEARREG_SLOPETA_LNTA_LOG10TA_MATA_MACDTA_MACDEXTTA_MACDFIXTA_MAMATA_MARKETFITA_MASSITA_MAVPTA_MAXTA_MAXINDEXTA_MEDPRICETA_MFITA_MIDPOINTTA_MIDPRICETA_MINTA_MININDEXTA_MINMAXTA_MINMAXINDEXTA_MINUS_DITA_MINUS_DMTA_MOMTA_MULTTA_NATRTA_NVITA_OBVTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTRANKTA_PLUS_DITA_PLUS_DMTA_PPOTA_PVITA_PVOTA_PVTTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_RMATA_ROCTA_ROCPTA_ROCRTA_ROCR100TA_RSITA_RVITA_RVOLTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SINTA_SINHTA_SMATA_SMITA_SQRTTA_STDDEVTA_STOCHTA_STOCHFTA_STOCHRSITA_SUBTA_SUMTA_SUPERTRENDTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_TANTA_TANHTA_TEMATA_TRANGETA_TRIMATA_TRIXTA_TSFTA_TSITA_TYPPRICETA_ULTOSCTA_VARTA_VHFTA_VORTEXTA_VWAPTA_VWMATA_WADTA_WCLPRICETA_WILLRTA_WMATA_ZLEMATEMATRANGETRIMATRIXTSFTSITYPPRICEULTOSCVARVHFVORTEXVWAPVWMAWADWCLPRICEWILLRWMAZLEMA_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr__ARRAY_TYPES__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTS__PANDAS_DATAFRAME__PANDAS_SERIES__POLARS_DATAFRAME__POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_""names__local__main____metaclass____module____mro_entries____name____prepare____qualname____repr____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdownaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackclonecloseclose_datacollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshelphighhigh_dataholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallookbacklowlow_datalowermatypemaximummaxperiodminperiodmissingmissing_keysmsgmultipliernnamenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_dataoptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowe""rbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutswinghighoutswinglowpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodsperiods_datapolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real0_datareal1real1_datareal_datareplaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestddevperiodstr2bytesstream_ACstream_ACCBANDSstream_ACOSstream_ADstream_ADDstream_ADOSCstream_ADRstream_ADXstream_ADXRstream_AOstream_APOstream_AROONstream_AROONOSCstream_ASINstream_ATANstream_ATRstream_AVGDEVstream_AVGPRICEstream_BBANDSstream_BETAstream_BOPstream_CCIstream_CDL2CROWSstream_CDL3BLACKCROWSstream_CDL3INSIDEstream_CDL3LINESTRIKEstream_CDL3OUTSIDEstream_CDL3STARSINSOUTHstream_CDL3WHITESOLDIERSstream_CDLABANDONEDBABYstream_CDLADVANCEBLOCKstream_CDLBELTHOLDstream_CDLBREAKAWAYstream_CDLCLOSINGMARUBOZUstream_CDLCONCEALBABYSWALLstream_CDLCOUNTERATTACKstream_CDLDARKCLOUDCOVERstream_CDLDOJIstream_CDLDOJISTARstream_CDLDRAGONFLYDOJIstream_CDLENGULFINGstream_CDLEVENINGDOJISTARstream_CDLEVENINGSTARstream_CDLGAPSIDESIDEWHITEstream_CDLGRAVESTONEDOJIstream_CDLHAMMERstream_CDLHANGINGMANstream_CDLHARAMIstream_CDLHARAMICROSSstream_CDLHIGHWAVEstream_CDLHIKKAKEstream_CDLHIKKAKEMODstream_CDLHOMINGPIGEONstream_CDLIDENTICAL3CROWSstream_CDLINNECKstream_CDLINVERTEDHAMMERstream_CDLKICKINGstream_CDLKICKINGBYLENGTHstream_CDLLADDERBOTTOMstream_CDLLONGLEGGEDDOJIstream_CDLLONGLINEstream_CDLMARUBOZUstream_CDLMATCHINGLOWstream_CDLMATHOLDstream_CDLMORNINGDOJISTARstream_CDLMORNINGSTARstream_CDLONNECKstream_CDLPIERCINGstream_CDLRICKSHAWMANstream_CDLRISEFALL3METHODSstream_CDLSEPARATINGLINESstream_CDLSHOOTINGSTARstream_CDLSHORTLINEstream_CDLSPINNINGTOPstream_CDLSTALLEDPATTE""RNstream_CDLSTICKSANDWICHstream_CDLTAKURIstream_CDLTASUKIGAPstream_CDLTHRUSTINGstream_CDLTRISTARstream_CDLUNIQUE3RIVERstream_CDLUPSIDEGAP2CROWSstream_CDLXSIDEGAP3METHODSstream_CEILstream_CMFstream_CMOstream_CMOUstream_COPPOCKstream_CORRELstream_COSstream_COSHstream_CUMSUMstream_CVIstream_DEMAstream_DIVstream_DONCHIANstream_DPOstream_DXstream_EFIstream_EMAstream_ERstream_ERIstream_EXPstream_FLOORstream_FOSCstream_FRACTALstream_HAstream_HMAstream_HT_DCPERIODstream_HT_DCPHASEstream_HT_PHASORstream_HT_SINEstream_HT_TRENDLINEstream_HT_TRENDMODEstream_IMIstream_KAMAstream_KCstream_KDJstream_LINEARREGstream_LINEARREG_ANGLEstream_LINEARREG_INTERCEPTstream_LINEARREG_SLOPEstream_LNstream_LOG10stream_MAstream_MACDstream_MACDEXTstream_MACDFIXstream_MAMAstream_MARKETFIstream_MASSIstream_MAVPstream_MAXstream_MAXINDEXstream_MEDPRICEstream_MFIstream_MIDPOINTstream_MIDPRICEstream_MINstream_MININDEXstream_MINMAXstream_MINMAXINDEXstream_MINUS_DIstream_MINUS_DMstream_MOMstream_MULTstream_NATRstream_NVIstream_OBVstream_PERCENTILEstream_PERCENTRANKstream_PLUS_DIstream_PLUS_DMstream_PPOstream_PVIstream_PVOstream_PVTstream_QSTICKstream_RMAstream_ROCstream_ROCPstream_ROCRstream_ROCR100stream_RSIstream_RVIstream_RVOLstream_SARstream_SAREXTstream_SINstream_SINHstream_SMAstream_SMIstream_SQRTstream_STDDEVstream_STOCHstream_STOCHFstream_STOCHRSIstream_SUBstream_SUMstream_SUPERTRENDstream_T3stream_TANstream_TANHstream_TEMAstream_TRANGEstream_TRIMAstream_TRIXstream_TSFstream_TSIstream_TYPPRICEstream_ULTOSCstream_VARstream_VHFstream_VORTEXstream_VWAPstream_VWMAstream_WADstream_WCLPRICEstream_WILLRstream_WMAstream_ZLEMAsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumevolume_datawarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007""\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\n\210)\2201\220A\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r""\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!""\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016""\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360""\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de""\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d""\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021""\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Z[\320[g\320gh\320hw\320wx\320xy\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340*B\300!\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Zc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340*B\300!\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310]\320Zd\320de\320eq\320qr\360\000\000s\001B\002\360\000\000B\002C\002\360\000\000C\002D\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340+,\360&\000""\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[\\\320\\h\320hi\320ix\320xy\320yz\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[c\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+C\320C[\320[\\\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[h\320hq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340+D\300A\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330""\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310n\320\\k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310}\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\340,D\320D\\\320\\]\3602\000\005\014\210;\220a\220q\330\004\020\220\t""\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310}\320\\i\320ix\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002a\002\360\000\000a\002b\002\360\000\000b\002r\002\360\000\000r\002s\002\360\000\000s\002t\002\330\004\025\220Q\220k\240\021\330\004\013\210:\320\025%\240Q\200\001\340,E\300Q\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310|\320[g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002F\002\360\000\000F\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340-.\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P]\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340-E\320E]\320]^\360*\000\005\016\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210V\2206\230\021\230!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300.\320P]\320]j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340./\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340./\360&\000\005\016\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210V\2206\230\021\230!\330\004""\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300>\320Q^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340./\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\r\210Q\330\004\r\210Q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^_\320_k\320kl\320l{\320{|\360\000\000}\001F\002\360\000\000F\002G\002\360\000\000G\002H\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340.F\300a\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^f\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340.F\320F]\320]t\320tu\3604\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^h\320hr\320r{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002m\002\360\000\000m\002n\002\360\000\000n\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340/0\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R_\320_`\320`l\320lm\320m|\320|}\320}~\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340/0\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320Ra\320ab""\320bn\320no\320o~\320~\177\360\000\000@\002J\002\360\000\000J\002K\002\360\000\000K\002[\002\360\000\000[\002\\\002\360\000\000\\\002]\002\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340/F\320F^\320^_\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340/G\320GZ\320Zr\360\000\000s\001F\002\360\000\000F\002`\002\360\000\000`\002a\002\3608\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\024\220A\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R_\320_l\320ly\360\000\000z\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003C\003\360\000\000C\003M\003\360\000\000M\003N\003\360\000\000N\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S""`\320`a\320am\320mn\320n}\320}~\320~\177\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`\320`a\320am\320mn\320n}\320}~\320~\177\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\3400H\320Hb\320b|\320|}\3600\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\017\210q\330\004\017\210q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S`\320`o\320o~\360\000\000\177\001N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002y\002\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\34012\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320Ta\320ab\320bn\320no\320o~\320~\177\360\000\000@\002A\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\3402J\310!\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ub\320bo\320op\320p|\320|}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\34034\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002C\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\34034\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q""\330\004\r\210T\220\026\220q\230\001\330\004\020\220\001\330\004\020\220\001\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\320\026(\250\001\330\004\013\210<\220q\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\34078\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021$\240B\240f\250H\260B\260d\270&\300\010\310\002\310$\310l\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\340;<\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021(\250\002\250&\260\010\270\002\270$\270f\300H\310B\310d\320R^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360""\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360""\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h""\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330""\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310""\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r""\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002""\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340D\\\320\\]\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340D\\\320\\t\320tu\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\360\000\000s\001B\002\360\000\000B\002C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340EF\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240""\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340E]\320]^\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fr\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340E`\320`a\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yh\320hr\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340GH\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310m\320[h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002H\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340GH\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\023\2201\330\004\021\220\021\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340G_\320_`\360*\000\005\014\210;\220a\220q\330\004\020\220""\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340Hb\360\000\000c\001B\002\360\000\000B\002f\002\360\000\000f\002F\003\360\000\000F\003i\003\360\000\000i\003N\004\360\000\000N\004o\004\360\000\000o\004p\004\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320i{\360\000\000|\001S\002\360\000\000S\002f\002\360\000\000f\002|\002\360\000\000|\002T\003\360\000\000T\003h\003\360\000\000h\003\177\003\360\000\000\177\003@\004\360\000\000@\004L\004\360\000\000L\004M\004\360\000\000M\004\\\004\360\000\000\\\004]\004\360\000\000]\004^\004\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340IJ\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340IJ\360(\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300-\310~\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340IJ\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230""\024\230Q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310~\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340IJ\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300=\320P]\320]j\320jk\320kw\320wx\360\000\000y\001H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340I_\320_`\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\023\2201\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]h\320ht\320tu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002c\002\360\000\000c\002d\002\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340JK\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340JK\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000""\000J\002K\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340JK\3600\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002]\002\360\000\000]\002^\002\360\000\000^\002r\002\360\000\000r\002s\002\360\000\000s\002t\002\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340Ja\320ax\320xy\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\016\210k\230\021\230!\330\004\023\2209\230G\2401\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310\177\320^j\320jv\320v\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340KL\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300]\320R_\320_l\320lm\320my\320yz\360\000\000{\001J\002\360\000\000J\002K\002\360\000\000K\002L\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360""\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002""\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R""\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360""\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330""\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240""\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t""\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340`a\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220i\230q\330\004\013\2101\200""\001\340`x\360\000\000y\001P\002\360\000\000P\002Q\002\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320er\320r~\360\000\000\177\001G\002\360\000\000G\002H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002d\002\360\000\000d\002e\002\360\000\000e\002x\002\360\000\000x\002y\002\360\000\000y\002M\003\360\000\000M\003N\003\360\000\000N\003O\003\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340ab\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340ab\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\023\2201\330\004\023\2201\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260""\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:\220Q\200\001\340ay\360\000\000z\001R\002\360\000\000R\002j\002\360\000\000j\002k\002\3604\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210Q\330\004\023\2201\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fs\360\000\000t\001A\002\360\000\000A\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002{\002\360\000\000{\002D\003\360\000\000D\003E\003\360\000\000E\003F\003\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340a{\360\000\000|\001V\002\360\000\000V\002l\002\360\000\000l\002F\003\360\000\000F\003G\003\360:\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\013\2101\330\004\013\2101\330\004\013\2101\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fu\360""\000\000v\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003P\003\360\000\000P\003W\003\360\000\000W\003X\003\360\000\000X\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340bc\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310{\320Zg\320gt\320tu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340cd\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340c}\360\000\000~\001X\002\360\000\000X\002m\002\360\000\000m\002G\003\360\000\000G\003H\003\3606\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\017\210q\330\004\017\210q\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hw\360\000\000x\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B""\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340de\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\020\220\001\330\004\021\220\021\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340d}\360\000\000~\001W\002\360\000\000W\002X\002\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320iw\360\000\000x\001F\002\360\000\000F\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002r\002\360\000\000r\002s\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340d~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\017\210q\330\004\017\210q\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320ix\360\000\000y\001H\002\360\000\000H\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220m\2401\330\004\013""\210;\220a\200\001\340ef\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R]\320]j\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340fg\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340fg\3602\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\027\220q\330\004\030\230\001\330\004\027\220q\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002j\002\360\000\000j\002k\002\360\000\000k\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w""\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340~\177\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320ft\360\000\000u\001B\002\360\000\000B\002C\002""\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000A\002Y\002\360\000\000Y\002Z\002\360.\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320P[\320[h\320hv\360\000\000w\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r""\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000D\002E\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004""\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ua\320al\320ly\360\000\000z\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002g\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000H\002I\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021#\2402\240V\2508\2602\260T\270\026\270x\300r\310\024\310\\\320Ye\320ep\320p}\360\000\000~\001L\002\360\000\000L\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025""\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000J\002K\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021%\240R\240v\250X\260R\260t\2706\300\030\310\022\3104\310|\320[g\320gr\320r\177\360\000\000@\002N\002\360\000\000N\002O\002\360\000\000O\002[\002\360\000\000[\002\\\002\360\000\000\\\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000K\002L\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021&\240b\250\006\250h\260b\270\004\270F\300(\310\"\310D\320P\\\320\\h\320hs\360\000\000t\001A\002\360\000\000A\002O\002\360\000\000O\002P\002\360\000\000P\002\\\002\360\000\000\\\002]\002\360\000\000]\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000L\002M\002\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021\047\240r\250\026\250x\260r\270\024\270V\3008\3102\310T\320Q]\320]i\320it\360\000\000u\001B\002\360\000\000B\002P\002\360\000\000P\002Q\002\360\000\000Q\002]\002\360\000\000]\002^\002\360\000\000^\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000i\001A\002\360\000""\000A\002B\002\3600\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320U`\320`m\320mz\360\000\000{\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002f\002\360\000\000f\002p\002\360\000\000p\002q\002\360\000\000q\002r\002\330\004\025\220Q\320\026\047\240q\330\004\013\210:\220Q\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300""\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!""\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000""\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025""\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002""\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;""\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j""\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360""\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a""\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w""\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;""\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360""\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310Q\310l\320Z[\320[j\320jk\320kl\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,""\310a\310|\320[\\\320\\k\320kl\320lm\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310q\320P\\\320\\]\320]l\320lm\320mn\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\031\230\"\230F\240(\250\"\250D\260\006\260h\270b\300\004\300L\320PQ\320Q]\320]^\320^m\320mn\320no\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320QR\320R^\320^_\320_n\320no\320op\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320UV\320Vb\320bc\320cr\320rs\320st\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320VW\320Wc\320cd\320ds\320st\320tu\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320WX\320Xd\320de\320et\320tu\320uv\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X""\300R\300t\310<\320WX\320Xd\320de\320et\320tu\320uv\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^_\320_k\320kl\320l{\320{|\320|}\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu""\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300-\310~\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220""\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310k\320Yf\320fg\320gs\320st\360\000\000u\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\032\2302\230V\2408\2502\250T\260\026\260x\270r\300\024\300\\\320Q\\\320\\i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002H\002\360\000\000H\002I\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S^\320^k\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240a\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270""\030\300\022\3004\300|\320S^\320^l\320lm\320my\320yz\360\000\000{\001J\002\360\000\000J\002K\002\360\000\000K\002L\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\016\210a\330\004\022\220!\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320RS\320S_\320_`\320`o\320op\320pz\320z{\320{|\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210T\220\026\220q\230\001\330\004\021\220\021\330\004\024\220A\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320TU\320Ua\320ab\320bq\320qr\320r\177\360\000\000@\002A\002\360\000\000A\002B\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\360*\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\021\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310n\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300-\310}\320\\]\320]i\320ij\320jy\320yz\320z{\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360*\000\005\r\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2307\240!\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300=\320P]\320]^\320^j\320jk\320kz\320z{\320{|\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230""\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310[\320Xe\320es\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210[\230\001\230\021\330\004\022\220)\2306\240\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\016\210a\330\004\021\220\030\230\022\2306\240\030\250\022\2504\250v\260X\270R\270t\300<\310{\320Zg\320gu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002T\002\360\000\000T\002U\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\016\210a\330\004\021\220\027\230\002\230&\240\010\250\002\250$\250f\260H\270B\270d\300,\310l\320Ze\320er\320rs\320s\177\360\000\000@\002A\002\360\000\000A\002P\002\360\000\000P\002Q\002\360\000\000Q\002R\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\016\210a\330\004\021\220\034\230R\230v\240X\250R\250t\2606\270\030\300\022\3004\300|\320S_\320_j\320jw\320wx\360\000\000y\001E\002\360\000""\000E\002F\002\360\000\000F\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\033\230B\230f\240H\250B\250d\260&\270\010\300\002\300$\300l\320R^\320^i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\035\230b\240\006\240h\250b\260\004\260F\270(\300\"\300D\310\014\320T`\320`k\320kx\320xy\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002V\002\360\000\000V\002W\002\360\000\000W\002X\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\036\230r\240\026\240x\250r\260\024\260V\2708\3002\300T\310\034\320Ua\320al\320ly\320yz\360\000\000{\001G\002\360\000\000G\002H\002\360\000\000H\002W\002\360\000\000W\002X\002\360\000\000X\002Y\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y""\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\220\037\240\002\240&\250\010\260\002\260$\260f\270H\300B\300d\310,\320Vb\320bm\320mz\320z{\360\000\000|\001H\002\360\000\000H\002I\002\360\000\000I\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021!\240\022\2406\250\030\260\022\2604\260v\270X\300R\300t\310<\320Wc\320cn\320n{\320{|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021\"\240\"\240F\250(\260\"\260D\270\006\270h\300b\310\004\310L\320Xd\320do\320o|\320|}\360\000\000~\001J\002\360\000\000J\002K\002\360\000\000K\002Z\002\360\000\000Z\002[\002\360\000\000[\002\\\002\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021#\2402\240V\2508\2602\260T\270\026\270x\300r\310\024\310\\\320Ye\320ep\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002""\360\000\000L\002[\002\360\000\000[\002\\\002\360\000\000\\\002]\002\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021$\240B\240f\250H\260B\260d\270&\300\010\310\002\310$\310l\320Zf\320fq\320q~\320~\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002\\\002\360\000\000\\\002]\002\360\000\000]\002^\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021%\240R\240v\250X\260R\260t\2706\300\030\310\022\3104\310|\320[g\320gr\320r\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021&\240b\250\006\250h\260b\270\004\270F\300(\310\"\310D\320P\\\320\\h\320hs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024""\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021\047\240r\250\026\250x\260r\270\024\270V\3008\3102\310T\320Q]\320]i\320it\360\000\000u\001B\002\360\000\000B\002C\002\360\000\000C\002O\002\360\000\000O\002P\002\360\000\000P\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360,\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\021\220\021\330\004\021\320\021(\250\002\250&\260\010\270\002\270$\270f\300H\310B\310d\320R^\320^j\320ju\360\000\000v\001C\002\360\000\000C\002D\002\360\000\000D\002P\002\360\000\000P\002Q\002\360\000\000Q\002`\002\360\000\000`\002a\002\360\000\000a\002b\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000""\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200\001\3608\000\005\014\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\013\210;\220a\220q\330\004\020\220\t\230\024\230Q\330\004\n\210+\220Q\220a\330\004\017\210y\230\003\2301\330\004\014\210K\220q\230\001\330\004\021\220\031\230%\230q\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\020\220\001\330\004\020\220\001\330\004\017\210q\330\004\021\220\021\330\004\021\220\026\220r\230\026\230x\240r\250\024\250V\2608\2702\270T\300\034\310\\\320Yd\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002P\002\360\000\000P\002\\\002\360\000\000\\\002]\002\360\000\000]\002i\002\360\000\000i\002j\002\360\000\000j\002u\002\360\000\000u\002v\002\360\000\000v\002w\002\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A""\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.""\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 ""\240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e""\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014""\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; + #else /* compression: none (111563 bytes) */ + #ifdef _MSC_VER +static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','a','r','o','o','n','d','o','w','n',' ','a','r','o','o','n','u','p','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','b','u','l','l','p','o','w','e','r',' ','b','e','a','r','p','o','w','e','r','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','f','a','s','t','k',' ','f','a','s','t','d','g','c','h','a','o','p','e','n',' ','h','a','h','i','g','h',' ','h','a','l','o','w',' ','h','a','c','l','o','s','e','i','n','p','h','a','s','e',' ','q','u','a','d','r','a','t','u','r','e','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','k',' ','d',' ','j','m','a','c','d',' ','m','a','c','d','s','i','g','n','a','l',' ','m','a','c','d','h','i','s','t','m','a','m','a',' ','f','a','m','a','m','i','n',' ','m','a','x','m','i','n','i','d','x',' ','m','a','x','i','d','x','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','p','l','u','s','v','i',' ','m','i','n','u','s','v','i','r','e','a','l',' ','i','n','t','e','g','e','r','s','i','n','e',' ','l','e','a','d','s','i','n','e','s','l','o','w','k',' ','s','l','o','w','d','s','m','i',' ','s','m','i','s','i','g','n','a','l','s','w','i','n','g','h','i','g','h',' ','s','w','i','n','g','l','o','w','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','u','p','p','e','r','b','a','n','d',' ','m','i','d','d','l','e','b','a','n','d',' ','l','o','w','e','r','b','a','n','d','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','C','B','A','N','D','S','_','V','a','l','u','e','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','V','a','l','u','e','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','B','A','N','D','S','_','V','a','l','u','e','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','_','V','a','l','u','e','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','I','_','V','a','l','u','e','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','_','V','a','l','u','e','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','A','_','V','a','l','u','e','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','_','V','a','l','u','e','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','_','V','a','l','u','e','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','_','V','a','l','u','e','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','E','X','T','_','V','a','l','u','e','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','_','V','a','l','u','e','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','V','a','l','u','e','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','_','V','a','l','u','e','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','V','a','l','u','e','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','_','V','a','l','u','e','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','F','_','V','a','l','u','e','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','_','V','a','l','u','e','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','V','a','l','u','e','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','_','V','a','l','u','e','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','_','A','R','R','A','Y','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\320','\017','\037','\230','w','\240','e','\250','1','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021','!','\240','\027','\250','\005','\250','Q','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270',')','\300','<','\310','r','\320','Q','Y','\320','Y','Z','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','(','\250','\001','\250','\034','\260','R','\260','x','\270','|','\310','<','\320','W','Y','\320','Y','a','\320','a','b','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270','/','\310','\034','\320','U','W','\320','W','_','\320','_','o','\320','o','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','G','\002','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','h','\320','h','t','\320','t','v','\320','v','~','\320','~','\177','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','H','\270','K','\300','|','\320','S','U','\320','U',']','\320',']','^','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','Y','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','6','\270','\027','\300','\017','\310','|','\320','[',']','\320',']','c','\320','c','j','\320','j','k','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','w','\270','o','\310','\\','\320','Y','[','\320','[','a','\320','a','h','\320','h','i','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','\047','\300','\037','\320','P','\\','\320','\\','^','\320','^','d','\320','d','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002','X','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','?','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','l','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','%','\270','y','\310','\017','\320','W','c','\320','c','e','\320','e','k','\320','k','p','\320','p','y','\360','\000','\000','z','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','E','\270','\031','\300','/','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\360','\000','\000','t','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','g','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','9','\310','L','\320','X','Z','\320','Z','`','\320','`','e','\320','e','n','\320','n','o','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','T','\004','\360','\000','\000','T','\004','Z','\004','\360','\000','\000','Z','\004','\\','\004','\360','\000','\000','\\','\004',']','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','\047','\240','q','\250','\014','\260','B','\260','f','\270','E','\300','\031','\310','*','\320','T','`','\320','`','b','\320','b','h','\320','h','m','\320','m','v','\320','v','w','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','k','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\320','s','t','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','u','\270','I','\300','[','\320','P','\\','\320','\\','^','\320','^','d','\320','d','i','\320','i','r','\320','r','s','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','7','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','s','\320','s','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','W','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','H','\310','\001','\310','\021','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','\\','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','\177','\240','a','\240','|','\260','2','\260','X','\270',']','\310',',','\320','V','X','\320','X','`','\320','`','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','F','\270','%','\270','y','\310','\014','\320','T','`','\320','`','b','\320','b','h','\320','h','n','\320','n','s','\320','s','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','e','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\036','\230','g','\240','U','\250','!','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','4','\250','v','\260','Q','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','0','\260','\001','\330','*','2','\260','$','\260','a','\330','\r',' ','\240','\007','\240','u','\250','A','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','1','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','1','\260','\024','\260','Q','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r',' ','\240','\007','\240','q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','&','\240','g','\250','Q','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; + #else +static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notearoondown aroonupbegidx nbelementbullpower bearpowercannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablefastk fastdgchaopen hahigh halow hacloseinphase quadratureinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledk d jmacd macdsignal macdhistmama famamin maxminidx maxidxno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importplusvi minusvireal integersine leadsineslowk slowdsmi smisignalswinghigh swinglowtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047upperband middleband lowerbandACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACCBANDS_ValueACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillAROON_ValueASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream"".open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBBANDS_ValueBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CROWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGIN""GMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.open_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTI""CKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDLUNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDONCHIAN_ValueDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillERI_ValueER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFRACTAL_ValueFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsF""unction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHA_ValueHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_PHASOR_ValueHT_SINEHT_SINE_StreamHT_SINE_Stream.open_and_fillHT_SINE_ValueHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKC_ValueKDJKDJ_StreamKDJ_Stream.open_and_fillKDJ_ValueLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDEXT_ValueMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACDFIX_ValueMACD_StreamMACD_Stream.open_and_fillMACD_ValueMAMAMAMA_StreamMAMA_Stream.open_and_fillMAMA_ValueMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAXINDEX_ValueMINMAX_StreamMINMAX_Stream.open_and_fillMINMAX_V""alueMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Stream.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSMI_ValueSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHF_ValueSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCHRSI_ValueSTOCH_StreamSTOCH_Stream.open_and_fillSTOCH_ValueSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSUPERTREND_ValueSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_A""CCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI""_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LINESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFi""llTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenAndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHAN""GINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMOD_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA""_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenT""A_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAndFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CM""O_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_UpdateTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_""HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN""_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MAMA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_M""INUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_Upd""ateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_OpenAndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TA""NH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_PeekTA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_Strea""mTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVORTEX_ValueVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.open_and_fill_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr__ARRAY_TYPES__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTS__PANDAS_DATAFRAME__PANDAS_SERIES__POLARS_DATAFRAME__POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackclone""closecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallookbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutswinghighoutswinglowoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupda""teupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330""\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000""\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016""\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307""\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q""\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!""\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600""\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"""\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i""\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@""\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i""\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000""\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308""\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330""\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000""\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D""\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S""\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000""\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a""\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n""\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001""\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001""\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B""\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000""\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^""\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B""\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208""\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200""\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T""\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002""\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001""\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A""\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh""\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S""\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i""\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047""\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310""\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002""\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000""\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250""\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3""\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010""\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260(\270)\300<\310r\320QY\320YZ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e""\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,""\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330""\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027(\250\001\250\034\260R\260x\270|\310<\320WY\320Ya\320ab\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3""\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402""\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[""\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401""\240L\260\002\260(\270/\310\034\320UW\320W_\320_o\320o{\320{}\360\000\000~\001F\002\360\000\000F\002G\002\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320Xh\320ht\320tv\320v~\320~\177\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x""\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260H\270K\300|\320SU\320U]\320]^\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601""\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002""\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330""\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320XY\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2606\270\027\300\017\310|\320[]\320]c\320cj\320jk\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035""\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260w\270o\310\\\320Y[\320[a\320ah\320hi\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330""\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270\047\300\037\320P\\\320\\^\320^d\320dk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002W\002\360\000\000W\002X\002\200A\3300F\300a\330\010!\240\035\250a""\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310""\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003""\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330""\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320T""V\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330""\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[""\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T""\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\300?\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW""\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300l\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o""\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G""\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270%\270y\310\017\320Wc\320ce\320ek\320kp\320py\360\000\000z\001J\002\360\000\000J\002V\002\360\000\000V\002X\002\360\000\000X\002^\002\360\000\000^\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360""\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260E\270\031\300/\320Q]\320]_\320_e\320ej\320js\360\000\000t\001D\002\360\000\000D\002P\002\360\000\000P\002R\002\360\000\000R\002X\002\360\000\000X\002]\002\360\000\000]\002f\002\360\000\000f\002g\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k""\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3009\310L\320XZ\320Z`\320`e\320en\320no\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003D\004\360\000\000D\004J\004\360\000\000J\004T\004\360\000\000T\004Z\004\360\000\000Z\004\\\004\360\000\000\\\004]\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027\047\240q\250\014\260B\260f\270E\300\031\310*\320T`\320`b\320bh\320hm\320mv\320vw\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^""\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300k\320Q]\320]_\320_e\320ej\320js\320st\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q""\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260u\270I\300[\320P\\\320\\^\320^d\320di\320ir\320rs\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004""\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3007\310,\320VX\320X^\320^c\320cl\320ls\320s\177\360\000\000@\002B\002\360\000\000B\002H\002\360\000\000H\002M\002\360\000\000M\002V\002\360\000\000V\002W\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240""\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m""\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B""\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U""\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330""\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000""\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[\\\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220\177\240a\240|\2602\260X\270]\310,\320VX\320X`\320`a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330""\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G""\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360""\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002""\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009""\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240""\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260F\270%\270y\310\014\320T`\320`b\320bh\320hn\320ns\320s|\360\000\000}\001I\002\360\000\000I\002U\002\360\000\000U\002W\002\360\000\000W\002]\002\360\000\000]\002c\002\360\000\000c\002h\002\360\000\000h\002q\002\360\000\000q\002|\002\360\000\000|\002H\003\360\000\000H\003J\003\360\000\000J\003P\003\360\000\000P\003V\003\360\000\000V\003[\003\360\000\000[\003d\003\360\000\000d\003e\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320p""v\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,""\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402""\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D""\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~""\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y""\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X""\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101""\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330""\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014""\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104""\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404""\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; + #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED #define __Pyx_DecompressString_LZSS_UNUSED #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 1115; i++) { + for (int i = 0; i < 2601; i++) { Py_ssize_t bytes_length = str_length_index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); - if (likely(string) && i >= 113) PyUnicode_InternInPlace(&string); + if (likely(string) && i >= 144) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) @@ -112462,8 +351471,8 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 stringtab[i] = string; pos += bytes_length; } - for (int i = 1115; i < 1382; i++) { - Py_ssize_t bytes_length = bytes_length_index[i-1115].length; + for (int i = 2601; i < 2870; i++) { + Py_ssize_t bytes_length = bytes_length_index[i-2601].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; pos += bytes_length; @@ -112473,15 +351482,15 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 1382; i++) { + for (Py_ssize_t i = 0; i < 2870; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 1115; - for (Py_ssize_t i=0; i<267; ++i) { + PyObject **table = stringtab + 2601; + for (Py_ssize_t i=0; i<269; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -112503,19 +351512,28 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 #endif } { - PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 0; - int8_t const cint_constants_1[] = {0,-1,1,2,3,4,8,12,14,16,32,64}; + PyObject **numbertab = __pyx_mstate->__pyx_number_tab; + double const c_constants[] = {0.2,0.3,0.5,3.0,0.02,-4e37,50.0}; + for (int i = 0; i < 7; i++) { + numbertab[i] = PyFloat_FromDouble(c_constants[i]); + if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error) + } + } + { + PyObject **numbertab = __pyx_mstate->__pyx_number_tab + 7; + int8_t const cint_constants_1[] = {0,-1,1,2,3,4,8,12,13,14,16,32,64}; int16_t const cint_constants_2[] = {128,256,512,1024,2048,4096,8192}; int32_t const cint_constants_4[] = {16777216L,33554432L,67108864L,134217728L,268435456L,536870912L,1073741824L}; - for (int i = 0; i < 26; i++) { - numbertab[i] = PyLong_FromLong((i < 12 ? cint_constants_1[i - 0] : (i < 19 ? cint_constants_2[i - 12] : cint_constants_4[i - 19]))); + int64_t const cint_constants_8[] = {-2147483648LL}; + for (int i = 0; i < 28; i++) { + numbertab[i] = PyLong_FromLongLong((i < 13 ? cint_constants_1[i - 0] : (i < 20 ? cint_constants_2[i - 13] : (i < 27 ? cint_constants_4[i - 20] : cint_constants_8[i - 27])))); if (unlikely(!numbertab[i])) __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_number_tab; - for (Py_ssize_t i=0; i<26; ++i) { + for (Py_ssize_t i=0; i<35; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -112549,7 +351567,7 @@ typedef struct { unsigned int num_kwonly_args : 1; unsigned int nlocals : 5; unsigned int flags : 10; - unsigned int first_line : 13; + unsigned int first_line : 15; } __Pyx_PyCode_New_function_description; #ifdef __cplusplus } /* anonymous namespace */ @@ -112569,62 +351587,62 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { PyObject* tuple_dedup_map = PyDict_New(); if (unlikely(!tuple_dedup_map)) return -1; { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_function_name, __pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_check_success, __pyx_mstate->__pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 54}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 62}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_initialize, __pyx_mstate->__pyx_kp_b_iso88591_Q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 59}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 67}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_shutdown, __pyx_mstate->__pyx_kp_b_iso88591_a_QoQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 68}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 76}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; __pyx_mstate_global->__pyx_codeobj_tab[3] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_init, __pyx_mstate->__pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[3])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 86}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 94}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_type}; __pyx_mstate_global->__pyx_codeobj_tab[4] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_getitem, __pyx_mstate->__pyx_kp_b_iso88591_A_t81A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[4])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 135}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 143}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name}; __pyx_mstate_global->__pyx_codeobj_tab[5] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_func_unst_id, __pyx_mstate->__pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[5])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 144}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 152}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_ret_code, __pyx_mstate->__pyx_n_u_id, __pyx_mstate->__pyx_n_u_unst_id}; __pyx_mstate_global->__pyx_codeobj_tab[6] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_aq_xs_q_A_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[6])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 154}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 162}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_name, __pyx_mstate->__pyx_n_u_period, __pyx_mstate->__pyx_n_u_id, __pyx_mstate->__pyx_n_u_unst_id}; __pyx_mstate_global->__pyx_codeobj_tab[7] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_unstable_period, __pyx_mstate->__pyx_kp_b_iso88591_aq_xs_q_Qa_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[7])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 164}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 172}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[8] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[8])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 169}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 177}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_value}; __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_get_compatibility, __pyx_mstate->__pyx_kp_b_iso88591_1_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 186}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 194}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_rangetype, __pyx_mstate->__pyx_n_u_avgperiod, __pyx_mstate->__pyx_n_u_factor, __pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_set_candle_settings, __pyx_mstate->__pyx_kp_b_iso88591_q_1_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 191}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 199}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_settingtype, __pyx_mstate->__pyx_n_u_ret_code}; __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__common_pxi, __pyx_mstate->__pyx_n_u_ta_restore_candle_default_setti, __pyx_mstate->__pyx_kp_b_iso88591_2_1_Q_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad; } @@ -113814,1009 +352832,1024 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { __pyx_mstate_global->__pyx_codeobj_tab[248] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_defaults_and_docs, __pyx_mstate->__pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[248])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AC, __pyx_mstate->__pyx_kp_b_iso88591_D_ttu_aq_Q_Qa_y_1_6_a_r_xr_V82T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2532}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; + __pyx_mstate_global->__pyx_codeobj_tab[249] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_copy_2, __pyx_mstate->__pyx_kp_b_iso88591_A_t5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[249])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 43}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_fg2_aq_Q_Qa_y_1_Kq_q_6_a_q_q_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2535}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_memo}; + __pyx_mstate_global->__pyx_codeobj_tab[250] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_deepcopy, __pyx_mstate->__pyx_kp_b_iso88591_A_t5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[250])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 84}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2538}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; + __pyx_mstate_global->__pyx_codeobj_tab[251] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_reduce, __pyx_mstate->__pyx_kp_b_iso88591_A_iq_46d_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[251])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 111}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2581}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_G5_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 147}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2686}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 178}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_A_Y_Y_Z_aq_Q_Qa_y_1_Kq_q_6_6_gQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2790}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 217}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADR, __pyx_mstate->__pyx_kp_b_iso88591_EF_aq_Q_Qa_y_1_6_a_fHBd_kYffggs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2887}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 249}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADX, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2986}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 284}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3087}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 319}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AO, __pyx_mstate->__pyx_kp_b_iso88591_D_aq_Q_Qa_y_1_6_a_r_xr_V82T_Xee, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3187}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_8_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 352}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_APO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3286}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 383}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup}; - __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROON, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Qa_y_1_6_1_F_D_hb_LP_hh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3386}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 418}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3486}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 450}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3585}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 477}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3686}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_1_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 504}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ATR, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3788}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 539}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_Q___kkll_Qm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3883}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 568}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_Rv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3977}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 604}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_FF_ttu4_aq_Q_T_q_q_q_2V82T_xr_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4075}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 642}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BETA, __pyx_mstate->__pyx_kp_b_iso88591_IJ_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4173}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 675}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_a_fH, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4270}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 711}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CCI, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4378}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_G5_1L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 746}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4484}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_9_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 782}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4582}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 818}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4683}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 854}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4782}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 890}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4882}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 926}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4982}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 962}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5082}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 998}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_J_K_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5182}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1036}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5282}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1072}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5382}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1108}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5484}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1144}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5584}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1180}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5684}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1216}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5784}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1252}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_K_L_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5884}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1290}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5984}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1326}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6084}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1362}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6186}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1398}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6286}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1434}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6386}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1472}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6486}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1510}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6586}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1546}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6688}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1582}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6790}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1618}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6890}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1654}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6990}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1690}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7090}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1726}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7190}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1762}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7290}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1798}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_F_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7390}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1834}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7490}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1870}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7590}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1906}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7690}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1942}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7790}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1978}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7890}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2014}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7990}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2050}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8090}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2086}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8190}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2122}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8290}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2158}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8390}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2194}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8490}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2230}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8590}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2268}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_L_M_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8690}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2306}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_H_I_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8790}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2344}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8892}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2380}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8994}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2416}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9096}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2452}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9196}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2488}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9296}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2524}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9396}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2560}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9496}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2596}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_2V82, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9596}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2632}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9696}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2668}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_RvXR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9796}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2704}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_b_hb, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9896}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2740}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9996}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2776}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_6_4v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10096}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2812}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10196}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2848}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_BfHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10296}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2884}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_r_xr_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10396}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2920}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_fHBd_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10496}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2956}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10596}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2983}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10696}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3021}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10796}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3050}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CMOU, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10893}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3079}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COPPOCK, __pyx_mstate->__pyx_kp_b_iso88591_FF___aq_Q_T_q_a_BfHBd_lR_kkxxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10992}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3110}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_KL_Kq_q_Kq_q_7_a_2V82T_xr_R__ll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11091}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3143}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11187}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3170}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11285}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3197}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CUMSUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_2V82T_xr_QRR___nnoop, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11383}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_1A_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3224}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_CVI, __pyx_mstate->__pyx_kp_b_iso88591_E_aq_Q_Qa_y_1_6_a_fHBd_kYffrrss, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11478}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3257}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11572}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3286}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11666}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3317}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DONCHIAN, __pyx_mstate->__pyx_kp_b_iso88591_JK0_aq_Q_Qa_y_1_6_q_q_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11764}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_G5_8_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3355}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DPO, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11861}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3384}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_DX, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_Q_Qa_y_1_Kq_q_6_a_a_r_xr_V, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11957}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3419}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EFI, __pyx_mstate->__pyx_kp_b_iso88591_IJ_Kq_q_6_7_a_fHBd_jjkkwwx_y_H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12061}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3451}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12166}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3480}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ER, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_Z_gghhwwxx, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12264}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3509}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower}; - __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ERI, __pyx_mstate->__pyx_kp_b_iso88591_ab_aq_Q_Qa_y_1_Kq_q_6_a_1_1_fHB, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12363}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3547}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12460}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3574}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12556}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3601}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FOSC, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12658}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3630}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow}; - __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_FRACTAL, __pyx_mstate->__pyx_kp_b_iso88591_I___aq_Q_Qa_y_1_6_1_BfHBd_lR_hh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12758}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3666}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose}; - __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HA, __pyx_mstate->__pyx_kp_b_iso88591_8_aq_Q_aq_Q_Qa_y_1_Kq_q_6_uA_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12852}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3711}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12948}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3740}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_VWWccddssttu_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13050}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_G5_AZq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3767}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_UVVbbccrrs, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13160}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3794}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature}; - __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_A_b_hb_F_D_TUUaabbqqrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13271}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3824}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine}; - __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_BfHBd_lRSS___ooppzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13365}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3854}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_WXXddeettuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13459}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3881}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_6_4vXRt_WXXddeettuuv_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13557}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_a_6axq_9_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3908}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_IMI, __pyx_mstate->__pyx_kp_b_iso88591_GH_aq_Q_Kq_q_6_a_fHBd_m_hhiiuuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13659}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3940}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13757}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_a_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3969}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KC, __pyx_mstate->__pyx_kp_b_iso88591_x_y_P_P_Q_6_aq_Q_Qa_y_1_Kq_q_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13851}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_1HA_a_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4012}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj}; - __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_KDJ, __pyx_mstate->__pyx_kp_b_iso88591_a_V_V_l_l_F_F_G_aq_Q_Qa_y_1_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13948}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_8_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4057}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_12_aq_Q_T_q_a_b_hb_F_D_Taabbnno, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14045}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4086}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14151}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4115}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBdR_kkllxxy_z_I_I, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14269}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4144}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_78_aq_Q_T_q_a_BfHBd_lZgghhttu_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14375}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_aq_31HA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4173}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_r_xr_V82T_QlZ_jjkkl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14471}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4200}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LPQQ_mmnno_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14567}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_H_31HA_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4227}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MA, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zccddppq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14663}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4257}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACD, __pyx_mstate->__pyx_kp_b_iso88591_DD_2_aq_Q_T_q_a_A_6_4vXRt_iixxy, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14757}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4294}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_GGZZr_s_F_F_a_8_aq_Q_T_q_a_A_Bf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14851}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4334}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_A_BfHBd_lRaabbnnoo, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14948}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_G5_q_A_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4369}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama}; - __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_EQ_aq_Q_T_q_a_a_6_4vXRt_gghhttu, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15052}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_G5_9_lRS_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4402}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MARKETFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_6_a_a_RvXRt6_4_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15167}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4435}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MASSI, __pyx_mstate->__pyx_kp_b_iso88591_G___aq_Q_Qa_y_1_6_a_F_D_hb_LP_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15277}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4468}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_periods_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_Jaaxxy_aq_Q_k_9G1_6_a_6_4vXRt_j, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15386}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_9_Q_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4503}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15486}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_G5_Q_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4532}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15586}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4561}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_6_a_RvXRt6_4_S___kk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15687}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_periods, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_G5_9_PQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4591}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_fHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15784}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4629}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_a_RvXRt6_4_S_aammnn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15880}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4658}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15979}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_G5_Q_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4690}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16079}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4719}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_Q_T_q_RvXRt6_4_S_aammnn_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16178}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_31HA_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4748}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax}; - __pyx_mstate_global->__pyx_codeobj_tab[389] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_Q_Q_2V82T_xr_Q___kkll, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[389])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16275}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[389] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[389])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4780}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx}; - __pyx_mstate_global->__pyx_codeobj_tab[390] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_34_aq_Q_T_q_fHBd_Vccddppq_r_A_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[390])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16372}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[390] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[390])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4812}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[391] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_fg_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[391])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16468}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[391] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[391])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4847}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[392] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Qa_y_1_6_a_RvXRt6_4_S_k, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[392])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16572}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[392] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_2_81_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[392])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4879}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[393] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[393])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16676}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outminidx_data, __pyx_mstate->__pyx_n_u_outmaxidx_data, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[393] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_N_81_N_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[393])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4908}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[394] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_6_4vXRt_P_jjkkzz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[394])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16785}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[394] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[394])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4939}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[395] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_NATR, __pyx_mstate->__pyx_kp_b_iso88591_bc_aq_Q_Qa_y_1_Kq_q_6_a_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[395])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16884}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[395] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[395])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4974}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[396] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_NVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[396])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16981}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[396] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[396])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5004}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[397] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_6_6_a_fHBd_n_iijjyyzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[397])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17077}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[397] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[397])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5035}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[398] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PERCENTILE, __pyx_mstate->__pyx_kp_b_iso88591_2J_aq_Q_T_q_a_r_xr_V82T_Ubboopp, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[398])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17176}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[398] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[398])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5065}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[399] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PERCENTRANK, __pyx_mstate->__pyx_kp_b_iso88591_34_aq_Q_T_q_a_fHBd_Vccddppq_r_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[399])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17273}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[399] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[399])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5094}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[400] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_ef_aq_Q_Qa_y_1_Kq_q_6_a_a_BfHBd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[400])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17370}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[400] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[400])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5129}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[401] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_IJ_aq_Q_Qa_y_1_6_a_BfHBd_lR_jjk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[401])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17468}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[401] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_q_A_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[401])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5161}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[402] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PPO, __pyx_mstate->__pyx_kp_b_iso88591_CC_aq_Q_T_q_a_fHBd_m_hhqqrr_O_O, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[402])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17564}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[402] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[402])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5192}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[403] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[403])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17662}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[403] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[403])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5222}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[404] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PVO, __pyx_mstate->__pyx_kp_b_iso88591_EE_6_V6_a_fHBd_P_jjsst_u_A_A_B, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[404])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17761}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[404] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_AQ_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[404])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5253}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[405] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_PVT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_6_7_a_fHBd_jjkkzz_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[405])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17860}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[405] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[405])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5283}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_open_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[406] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_QSTICK, __pyx_mstate->__pyx_kp_b_iso88591_JK_aq_Q_Kq_q_6_a_2V82T_xr_Q_kkl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[406])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17955}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[406] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[406])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5315}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[407] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[407])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18054}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[407] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_G5_8_QR_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[407])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5344}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[408] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[408])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18149}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[408] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[408])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5373}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[409] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[409])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18247}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[409] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_1A_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[409])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5402}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[410] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[410])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18344}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[410] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[410])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5431}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[411] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_0_aq_Q_T_q_a_BfHBd_lR___llmm_Qn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[411])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18440}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[411] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[411])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5460}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[412] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[412])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18536}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[412] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[412])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5489}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[413] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RVI, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_jjkkwwx_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[413])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18632}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[413] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[413])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5519}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[414] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_RVOL, __pyx_mstate->__pyx_kp_b_iso88591_6_V6_a_6_4vXRt_Q___kkll_Qk_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[414])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18728}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[414] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[414])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5548}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[415] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAR, __pyx_mstate->__pyx_kp_b_iso88591_E_a_aq_Q_Qa_y_1_6_a_fHBd_kYhhrr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[415])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18824}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[415] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[415])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5581}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[416] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_Hb_c_B_B_f_f_F_F_i_i_N_N_o_o_p, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[416])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18921}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[416] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_G5_8_Q_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[416])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5620}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[417] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[417])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19017}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[417] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_aq_axq_oQha_G5_9_31HA_a_5Qax, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[417])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5647}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[418] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[418])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19115}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[418] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_G5_8_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[418])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5674}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[419] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[419])) goto bad; + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19220}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[419] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[419])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5703}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal}; - __pyx_mstate_global->__pyx_codeobj_tab[420] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SMI, __pyx_mstate->__pyx_kp_b_iso88591_ay_z_R_R_j_j_k_4_aq_Q_Qa_y_1_Kq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[420])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19315}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[420] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[420])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5744}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[421] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[421])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19409}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[421] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[421])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5771}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[422] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_Fa_aq_Q_T_q_a_2V82T_xr_Q_ffggss, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[422])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19505}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[422] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[422])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5801}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd}; - __pyx_mstate_global->__pyx_codeobj_tab[423] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_c_X_X_m_m_G_G_H_6_aq_Q_Qa_y_1_K, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[423])) goto bad; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19610}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[423] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[423])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5843}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[424] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_d_Y_Y_Z_2_aq_Q_Qa_y_1_Kq_q_6_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[424])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19710}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[424] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[424])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5883}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[425] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_0HHbb_0_aq_Q_T_q_q_q_RvXRt6_4_S, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[425])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19807}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[425] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1L_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[425])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5918}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real0_data, __pyx_mstate->__pyx_n_u_real1_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[426] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_q_Kq_q_7_a_fHBd_iijjyyzz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[426])) goto bad; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19913}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[426] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[426])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5949}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[427] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[427])) goto bad; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20023}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[427] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[427])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5978}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[428] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_i_A_A_B_0_aq_Q_Qa_y_1_Kq_q_6_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[428])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20132}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[428] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_G5_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[428])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6017}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[429] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_T3, __pyx_mstate->__pyx_kp_b_iso88591_B_aq_Q_T_q_a_r_xr_V82T_Zddeeqqr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[429])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20232}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[429] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[429])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6047}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[430] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_a_kkllm_Qj_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[430])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20329}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[430] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[430])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6074}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_qP_llmmn_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20432}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6101}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[432] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[432])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20535}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[432] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_G5_q_A_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[432])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6130}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[433] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_2V82T_xr, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[433])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20629}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[433] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[433])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6163}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[434] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[434])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20723}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[434] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[434])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6192}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[435] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_6_4vXRt_iijjyyzz_Qk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[435])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20819}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[435] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[435])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6221}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[436] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[436])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20915}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[436] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[436])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6250}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[437] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TSI, __pyx_mstate->__pyx_kp_b_iso88591_DA_aq_Q_T_q_a_fHBd_n_kkllxxy_z, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[437])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21013}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[437] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[437])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6280}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[438] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[438])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21109}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[438] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[438])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6313}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[439] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_d_W_W_X_aq_Q_Qa_y_1_Kq_q_6_a_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[439])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21205}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[439] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[439])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6350}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[440] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VAR, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_Q_T_q_a_fHBd_m_ccddppq_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[440])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21302}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[440] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_8_a_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[440])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6380}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[441] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VHF, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[441])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21398}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[441] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[441])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6409}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi}; - __pyx_mstate_global->__pyx_codeobj_tab[442] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VORTEX, __pyx_mstate->__pyx_kp_b_iso88591_de_aq_Q_Qa_y_1_Kq_q_6_a_2V82T_x, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[442])) goto bad; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21500}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[442] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[442])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6447}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[443] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VWAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_6_gQ_a_6_4vX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[443])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21599}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[443] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_Q_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[443])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6483}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_volume_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[444] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_VWMA, __pyx_mstate->__pyx_kp_b_iso88591_IJ_aq_Q_6_6_a_6_4vXRt_jjkkwwx_y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[444])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21695}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[444] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[444])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6516}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[445] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WAD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_fHBd_kYf, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[445])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21797}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[445] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[445])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6549}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[446] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_Qa_y_1_Kq_q_6_a_a_RvXRt6_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[446])) goto bad; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21900}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[446] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[446])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6582}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_high_data, __pyx_mstate->__pyx_n_u_low_data, __pyx_mstate->__pyx_n_u_close_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[447] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_cd_aq_Q_Qa_y_1_Kq_q_6_a_a_F_D_h, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[447])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22001}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[447] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_G5_9_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[447])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6617}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[448] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_fHBd_m_hhiixxyyz_Qj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[448])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22098}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[448] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[448])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6646}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_real_data, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[449] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_stream_ZLEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_Q_T_q_a_F_D_hb_LP_jjkkzz_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[449])) goto bad; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22196}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[449] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[449])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22296}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[450] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[450])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22394}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[451] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[451])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22490}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + __pyx_mstate_global->__pyx_codeobj_tab[452] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[452])) goto bad; } Py_DECREF(tuple_dedup_map); return 0; @@ -115580,6 +354613,86 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject return; } +/* IgnoreException (used by GetModuleGlobalName) */ +static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception) { + if (PyErr_GivenExceptionMatches(given_exception ? given_exception : PyErr_Occurred(), ignorable_exception)) { + PyErr_Clear(); + return 1; + } + return 0; +} + +/* PyDictVersioning (used by GetModuleGlobalName) */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { + PyObject **dictptr = NULL; + Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; + if (offset) { +#if CYTHON_COMPILING_IN_CPYTHON + dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); +#else + dictptr = _PyObject_GetDictPtr(obj); +#endif + } + return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; +} +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) + return 0; + return obj_dict_version == __Pyx_get_object_dict_version(obj); +} +#endif + +/* GetModuleGlobalName */ +#if CYTHON_USE_DICT_VERSIONS +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) +#else +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) +#endif +{ + PyObject *result; +#if CYTHON_COMPILING_IN_LIMITED_API + if (unlikely(!__pyx_m)) { + if (!PyErr_Occurred()) + PyErr_SetNone(PyExc_NameError); + return NULL; + } + result = PyObject_GetAttr(__pyx_m, name); + if (likely(result)) { + return result; + } + if (!__Pyx_IgnoreException(PyExc_Exception)) { + return NULL; // BaseException + } +#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS + if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) { + if (!__Pyx_IgnoreException(PyExc_Exception)) { + return NULL; // BaseException + } + } + __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return result; + } +#else + result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash); + __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } + PyObject *exc = PyErr_Occurred(); + if (unlikely(exc) && !__Pyx_IgnoreGivenException(exc, PyExc_Exception)) { + return NULL; // BaseException + } +#endif + return __Pyx_GetBuiltinName(name); +} + /* PyUnicode_Unicode */ static CYTHON_INLINE PyObject* __Pyx_PyUnicode_Unicode(PyObject *obj) { if (unlikely(obj == Py_None)) @@ -116061,15 +355174,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); } -/* IgnoreException (used by UnpackUnboundCMethod_impl) */ -static CYTHON_INLINE int __Pyx_IgnoreGivenException(PyObject *given_exception, PyObject *ignorable_exception) { - if (PyErr_GivenExceptionMatches(given_exception ? given_exception : PyErr_Occurred(), ignorable_exception)) { - PyErr_Clear(); - return 1; - } - return 0; -} - /* UnpackUnboundCMethod_impl (used by UnpackUnboundCMethod) */ #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030C0000 static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) { @@ -116789,77 +355893,6 @@ static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, in return 0; } -/* PyDictVersioning (used by GetModuleGlobalName) */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { - PyObject **dictptr = NULL; - Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; - if (offset) { -#if CYTHON_COMPILING_IN_CPYTHON - dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); -#else - dictptr = _PyObject_GetDictPtr(obj); -#endif - } - return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; -} -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) - return 0; - return obj_dict_version == __Pyx_get_object_dict_version(obj); -} -#endif - -/* GetModuleGlobalName */ -#if CYTHON_USE_DICT_VERSIONS -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) -#else -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) -#endif -{ - PyObject *result; -#if CYTHON_COMPILING_IN_LIMITED_API - if (unlikely(!__pyx_m)) { - if (!PyErr_Occurred()) - PyErr_SetNone(PyExc_NameError); - return NULL; - } - result = PyObject_GetAttr(__pyx_m, name); - if (likely(result)) { - return result; - } - if (!__Pyx_IgnoreException(PyExc_Exception)) { - return NULL; // BaseException - } -#elif CYTHON_AVOID_BORROWED_REFS || CYTHON_AVOID_THREAD_UNSAFE_BORROWED_REFS - if (unlikely(__Pyx_PyDict_GetItemRef(__pyx_mstate_global->__pyx_d, name, &result) == -1)) { - if (!__Pyx_IgnoreException(PyExc_Exception)) { - return NULL; // BaseException - } - } - __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return result; - } -#else - result = _PyDict_GetItem_KnownHash(__pyx_mstate_global->__pyx_d, name, ((PyASCIIObject *) name)->hash); - __PYX_UPDATE_DICT_CACHE(__pyx_mstate_global->__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return __Pyx_NewRef(result); - } - PyObject *exc = PyErr_Occurred(); - if (unlikely(exc) && !__Pyx_IgnoreGivenException(exc, PyExc_Exception)) { - return NULL; // BaseException - } -#endif - return __Pyx_GetBuiltinName(name); -} - /* PyObjectSetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { @@ -118594,6 +357627,738 @@ static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_object_str(PyObject *op1, return 0; } +/* ExtTypeTest */ +static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { + if (unlikely(!type)) { + PyErr_SetString(PyExc_SystemError, "Missing type object"); + return 0; + } + if (likely(__Pyx_TypeCheck(obj, type))) + return 1; + __Pyx_RaiseTypeErrorWithTypes( + "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME, + Py_TYPE(obj), type); + return 0; +} + +/* CIntToPyUnicode */ +static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (unlikely(!(is_unsigned || value == 0 || value > 0) || + !(sizeof(value) <= 2 || value & ~ (int) 0x01fffff || __Pyx_CheckUnicodeValue((int) value)))) { + PyErr_SetString(PyExc_OverflowError, "%c arg not in range(0x110000)"); + return NULL; + } + if (width <= 1) { + return PyUnicode_FromOrdinal((int) value); + } + return __Pyx_PyUnicode_FromOrdinal_Padded((int) value, width, padding_char); +} +static CYTHON_INLINE PyObject* __Pyx____Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char) { + char digits[sizeof(int)*3+2]; + char *dpos, *end = digits + sizeof(int)*3+2; + const char *hex_digits = DIGITS_HEX; + Py_ssize_t length, ulength; + int prepend_sign, last_one_off; + int remaining; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (format_char == 'X') { + hex_digits += 16; + format_char = 'x'; + } + remaining = value; + last_one_off = 0; + dpos = end; + do { + int digit_pos; + switch (format_char) { + case 'o': + digit_pos = abs((int)(remaining % (8*8))); + remaining = (int) (remaining / (8*8)); + dpos -= 2; + memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2); + last_one_off = (digit_pos < 8); + break; + case 'd': + digit_pos = abs((int)(remaining % (10*10))); + remaining = (int) (remaining / (10*10)); + dpos -= 2; + memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2); + last_one_off = (digit_pos < 10); + break; + case 'x': + *(--dpos) = hex_digits[abs((int)(remaining % 16))]; + remaining = (int) (remaining / 16); + break; + default: + assert(0); + break; + } + } while (unlikely(remaining != 0)); + assert(!last_one_off || *dpos == '0'); + dpos += last_one_off; + length = end - dpos; + ulength = length; + prepend_sign = 0; + if (!is_unsigned && value <= neg_one) { + if (padding_char == ' ' || width <= length + 1) { + *(--dpos) = '-'; + ++length; + } else { + prepend_sign = 1; + } + ++ulength; + } + if (width > ulength) { + ulength = width; + } + if (ulength == 1) { + return PyUnicode_FromOrdinal(*dpos); + } + return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char); +} + +/* RejectKeywords */ +static void __Pyx_RejectKeywords(const char* function_name, PyObject *kwds) { + PyObject *key = NULL; + if (CYTHON_VECTORCALL && likely(PyTuple_Check(kwds))) { + key = __Pyx_PySequence_ITEM(kwds, 0); + } else { +#if CYTHON_AVOID_BORROWED_REFS + PyObject *pos = NULL; +#else + Py_ssize_t pos = 0; +#endif +#if !CYTHON_COMPILING_IN_PYPY || defined(PyArg_ValidateKeywordArguments) + if (unlikely(!PyArg_ValidateKeywordArguments(kwds))) return; +#endif + __Pyx_PyDict_NextRef(kwds, &pos, &key, NULL); +#if CYTHON_AVOID_BORROWED_REFS + Py_XDECREF(pos); +#endif + } + if (likely(key)) { + PyErr_Format(PyExc_TypeError, + "%s() got an unexpected keyword argument '%U'", + function_name, key); + Py_DECREF(key); + } +} + +/* AllocateExtensionType */ +static PyObject *__Pyx_AllocateExtensionType(PyTypeObject *t, int is_final) { + if (is_final || likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { + allocfunc alloc_func = __Pyx_PyType_GetSlot(t, tp_alloc, allocfunc); + return alloc_func(t, 0); + } else { + newfunc tp_new = __Pyx_PyType_TryGetSlot(&PyBaseObject_Type, tp_new, newfunc); + #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 + if (!tp_new) { + PyObject *new_str = PyUnicode_FromString("__new__"); + if (likely(new_str)) { + PyObject *o = PyObject_CallMethodObjArgs((PyObject *)&PyBaseObject_Type, new_str, t, NULL); + Py_DECREF(new_str); + return o; + } else + return NULL; + } else + #endif + return tp_new(t, __pyx_mstate_global->__pyx_empty_tuple, 0); + } +} + +/* CallSlotAsVectorcallUnpackDict (used by CallSlotAsVectorcall) */ +static CYTHON_INLINE int __Pyx_CallSlotAsVectorcallUnpackDict(Py_ssize_t args_size, PyObject *keys_dict, PyObject **args, PyObject *kwnames) { + Py_ssize_t pos = 0, i = 0; + PyObject *key, *value; + while (PyDict_Next(keys_dict, &pos, &key, &value)) { + Py_INCREF(value); + args[args_size+i] = value; + Py_INCREF(key); + if (unlikely(__Pyx_PyTuple_SET_ITEM(kwnames, i, key) == -1)) { + return -1; + } + ++i; + } + return 0; +} + +/* CallSlotAsVectorcall */ +#if CYTHON_VECTORCALL_TPNEW +static PyObject * __Pyx_CallTpnewAsVectorcall(__Pyx_tpnewvectorcallfunc f, PyTypeObject* o, PyObject *a, PyObject *k) { + Py_ssize_t k_size = k ? __Pyx_PyDict_GET_SIZE(k) : 0; +#if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely(k_size < 0)) return NULL; +#endif + Py_ssize_t a_size = __Pyx_PyTuple_GET_SIZE(a); +#if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely(a_size < 0)) return NULL; +#endif +#if CYTHON_ASSUME_SAFE_MACROS + if (k_size == 0) { + return f(o, &PyTuple_GET_ITEM(a, 0), a_size, NULL); + } +#else + if (k_size == 0 && a_size == 0) { + return f(o, NULL, 0, NULL); + } +#endif + PyObject *stack_args[5]; + PyObject **args = stack_args; + Py_ssize_t maxnargs = PY_SSIZE_T_MAX / sizeof(PyObject*) - 1; + if (a_size > maxnargs - k_size) { + PyErr_NoMemory(); + return NULL; + } + Py_ssize_t total_size = a_size + k_size; + if (total_size > 5) { + args = (PyObject**)PyMem_Malloc(((size_t)total_size)*sizeof(PyObject*)); + if (unlikely(!args)) { + PyErr_NoMemory(); + return NULL; + } + } + PyObject * result = NULL; + PyObject *kwnames = NULL; + int unpack_dict_result; + Py_ssize_t i = 0; + for (; i < a_size; ++i) { + args[i] = __Pyx_PyTuple_GET_ITEM(a, i); +#if !CYTHON_ASSUME_SAFE_MACROS + if (unlikely(!args[i])) goto cleanup; +#endif + } +#if !CYTHON_ASSUME_SAFE_MACROS + if (k) // There's a specific shortcut earlier for ASSUME_SAFE_MACROS with no keywords +#endif + { + kwnames = PyTuple_New(k_size); + if (unlikely(!kwnames)) goto cleanup; + __Pyx_BEGIN_CRITICAL_SECTION(k); + unpack_dict_result = __Pyx_CallSlotAsVectorcallUnpackDict(a_size, k, args, kwnames); + __Pyx_END_CRITICAL_SECTION(); + if (unlikely(unpack_dict_result == -1)) goto cleanup; + } + result = f(o, args, a_size, kwnames); + cleanup: + Py_XDECREF(kwnames); + for (i=a_size; i__pyx_empty_tuple); + } + result = tp_new(t, args_tuple, kwds_dict); + if (unlikely(!result)) { + goto end; + } + if (PyObject_TypeCheck(result, t)) { + initproc tp_init = __Pyx_PyObject_GetSlot(result, tp_init, initproc); + if (tp_init && unlikely(tp_init(result, args_tuple, kwds_dict) < 0)) { + Py_CLEAR(result); + } + } + end: + Py_XDECREF(args_tuple); + Py_XDECREF(kwds_dict); + return result; +} +#endif + +/* CallSlotAsVectorcall */ +#if CYTHON_VECTORCALL_TPNEW +static int __Pyx_CallTpinitAsVectorcall(__Pyx_tpinitvectorcallfunc f, PyObject* o, PyObject *a, PyObject *k) { + Py_ssize_t k_size = k ? __Pyx_PyDict_GET_SIZE(k) : 0; +#if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely(k_size < 0)) return -1; +#endif + Py_ssize_t a_size = __Pyx_PyTuple_GET_SIZE(a); +#if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely(a_size < 0)) return -1; +#endif +#if CYTHON_ASSUME_SAFE_MACROS + if (k_size == 0) { + return f(o, &PyTuple_GET_ITEM(a, 0), a_size, NULL); + } +#else + if (k_size == 0 && a_size == 0) { + return f(o, NULL, 0, NULL); + } +#endif + PyObject *stack_args[5]; + PyObject **args = stack_args; + Py_ssize_t maxnargs = PY_SSIZE_T_MAX / sizeof(PyObject*) - 1; + if (a_size > maxnargs - k_size) { + PyErr_NoMemory(); + return -1; + } + Py_ssize_t total_size = a_size + k_size; + if (total_size > 5) { + args = (PyObject**)PyMem_Malloc(((size_t)total_size)*sizeof(PyObject*)); + if (unlikely(!args)) { + PyErr_NoMemory(); + return -1; + } + } + int result = -1; + PyObject *kwnames = NULL; + int unpack_dict_result; + Py_ssize_t i = 0; + for (; i < a_size; ++i) { + args[i] = __Pyx_PyTuple_GET_ITEM(a, i); +#if !CYTHON_ASSUME_SAFE_MACROS + if (unlikely(!args[i])) goto cleanup; +#endif + } +#if !CYTHON_ASSUME_SAFE_MACROS + if (k) // There's a specific shortcut earlier for ASSUME_SAFE_MACROS with no keywords +#endif + { + kwnames = PyTuple_New(k_size); + if (unlikely(!kwnames)) goto cleanup; + __Pyx_BEGIN_CRITICAL_SECTION(k); + unpack_dict_result = __Pyx_CallSlotAsVectorcallUnpackDict(a_size, k, args, kwnames); + __Pyx_END_CRITICAL_SECTION(); + if (unlikely(unpack_dict_result == -1)) goto cleanup; + } + result = f(o, args, a_size, kwnames); + cleanup: + Py_XDECREF(kwnames); + for (i=a_size; itp_dictoffset != 0; +#else + Py_ssize_t dictoffset = __Pyx_GetTypeDictOffset(b, 0); + has_dictoffset = dictoffset != 0; +#endif +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b); +#endif +#if !CYTHON_USE_TYPE_SLOTS + if (dictoffset == -1 && PyErr_Occurred()) return -1; +#endif + } + for (i = 1; i < n; i++) + { + PyTypeObject *b; +#if CYTHON_AVOID_BORROWED_REFS + PyObject *b0 = PySequence_GetItem(bases, i); + if (!b0) return -1; +#elif CYTHON_ASSUME_SAFE_MACROS + PyObject *b0 = PyTuple_GET_ITEM(bases, i); +#else + PyObject *b0 = PyTuple_GetItem(bases, i); + if (!b0) return -1; +#endif + b = (PyTypeObject*) b0; + if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE)) + { + __Pyx_RaiseErrorWithType( + PyExc_TypeError, "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b); +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + return -1; + } + if (!has_dictoffset) + { + Py_ssize_t b_dictoffset = 0; +#if CYTHON_USE_TYPE_SLOTS + b_dictoffset = b->tp_dictoffset; +#else + b_dictoffset = __Pyx_GetTypeDictOffset((PyObject*)b, 0); + if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return; +#endif + if (b_dictoffset) { + __Pyx_RaiseErrorWithType1( + PyExc_TypeError, + "extension type '%.200s' has no __dict__ slot, " + "but base type '" __Pyx_FMT_TYPENAME "' has: " + "either add 'cdef dict __dict__' to the extension type " + "or add '__slots__ = [...]' to the base type", + type_name, b); +#if !CYTHON_USE_TYPE_SLOTS + dictoffset_return: +#endif +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + return -1; + } + } +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(b0); +#endif + } + return 0; +} +#endif + +/* PyType_Ready */ +CYTHON_UNUSED static int __Pyx_PyType_HasMultipleInheritance(PyTypeObject *t) { + while (t) { + PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); + if (bases) { + return 1; + } + t = __Pyx_PyType_GetSlot(t, tp_base, PyTypeObject*); + } + return 0; +} +static int __Pyx_PyType_Ready(PyTypeObject *t) { +#if CYTHON_USE_TYPE_SPECS || !CYTHON_COMPILING_IN_CPYTHON + (void)__Pyx_PyObject_CallMethod0; +#if CYTHON_USE_TYPE_SPECS + (void)__Pyx_validate_bases_tuple; +#endif + return PyType_Ready(t); +#else + int r; + if (!__Pyx_PyType_HasMultipleInheritance(t)) { + return PyType_Ready(t); + } + PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); + if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset != 0, bases) == -1)) + return -1; + { + int gc_was_enabled; + #if PY_VERSION_HEX >= 0x030A00b1 + gc_was_enabled = PyGC_Disable(); + (void)__Pyx_PyObject_CallMethod0; + #else + PyObject *ret, *py_status; + PyObject *gc = NULL; + #if (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) &&\ + !CYTHON_COMPILING_IN_GRAAL + gc = PyImport_GetModule(__pyx_mstate_global->__pyx_kp_u_gc); + #endif + if (unlikely(!gc)) gc = PyImport_Import(__pyx_mstate_global->__pyx_kp_u_gc); + if (unlikely(!gc)) return -1; + py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_isenabled); + if (unlikely(!py_status)) { + Py_DECREF(gc); + return -1; + } + gc_was_enabled = __Pyx_PyObject_IsTrue(py_status); + Py_DECREF(py_status); + if (gc_was_enabled > 0) { + ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_disable); + if (unlikely(!ret)) { + Py_DECREF(gc); + return -1; + } + Py_DECREF(ret); + } else if (unlikely(gc_was_enabled == -1)) { + Py_DECREF(gc); + return -1; + } + #endif + t->tp_flags |= Py_TPFLAGS_HEAPTYPE; +#if PY_VERSION_HEX >= 0x030A0000 + t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE; +#endif + r = PyType_Ready(t); + t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; + #if PY_VERSION_HEX >= 0x030A00b1 + if (gc_was_enabled) + PyGC_Enable(); + #else + if (gc_was_enabled) { + PyObject *tp, *v, *tb; + PyErr_Fetch(&tp, &v, &tb); + ret = __Pyx_PyObject_CallMethod0(gc, __pyx_mstate_global->__pyx_kp_u_enable); + if (likely(ret || r == -1)) { + Py_XDECREF(ret); + PyErr_Restore(tp, v, tb); + } else { + Py_XDECREF(tp); + Py_XDECREF(v); + Py_XDECREF(tb); + r = -1; + } + } + Py_DECREF(gc); + #endif + } + return r; +#endif +} + +/* GetVTable (used by MergeVTables) */ +static int __Pyx_GetVtable(PyTypeObject *type, void** table) { + void* ptr; + *table = NULL; +#if CYTHON_COMPILING_IN_LIMITED_API + PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_mstate_global->__pyx_n_u_pyx_vtable); +#else + PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable); +#endif + if (!ob) + goto no_attr; + ptr = PyCapsule_GetPointer(ob, 0); + if (!ptr && !PyErr_Occurred()) + PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type"); + Py_DECREF(ob); + *table = ptr; + return 1; +no_attr: + if (PyErr_ExceptionMatches(CYTHON_COMPILING_IN_LIMITED_API ? PyExc_AttributeError : PyExc_KeyError)) { + return 0; + } + Py_XDECREF(ob); + return -1; +} + +/* MergeVTables (used by SetVTable) */ +static int __Pyx_MergeVtables(PyTypeObject *type) { + int i=0; + Py_ssize_t size; + void** base_vtables; + void* unknown = (void*)-1; + PyObject* bases = __Pyx_PyType_GetSlot(type, tp_bases, PyObject*); + int base_depth = 0; + { + PyTypeObject* base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); + while (base) { + base_depth += 1; + base = __Pyx_PyType_TryGetSlot(base, tp_base, PyTypeObject*); + } + } + base_vtables = (void**) PyMem_Malloc(sizeof(void*) * (size_t)(base_depth + 1)); + if (unlikely(!base_vtables)) { + PyErr_NoMemory(); + return -1; + } + base_vtables[0] = unknown; +#if CYTHON_COMPILING_IN_LIMITED_API + size = PyTuple_Size(bases); + if (size < 0) goto other_failure; +#else + size = PyTuple_GET_SIZE(bases); +#endif + for (i = 1; i < size; i++) { + PyObject *basei; + void* base_vtable; +#if CYTHON_AVOID_BORROWED_REFS + basei = PySequence_GetItem(bases, i); + if (unlikely(!basei)) goto other_failure; +#elif !CYTHON_ASSUME_SAFE_MACROS + basei = PyTuple_GetItem(bases, i); + if (unlikely(!basei)) goto other_failure; +#else + basei = PyTuple_GET_ITEM(bases, i); +#endif + int get_vtable_result = __Pyx_GetVtable((PyTypeObject*)basei, &base_vtable); +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(basei); +#endif + if (get_vtable_result != 1) { + if (get_vtable_result == -1) { + goto other_failure; + } + PyErr_Clear(); // Class doesn't have a vtable. + } else { + assert(base_vtable != NULL); + int j; + PyTypeObject* base = __Pyx_PyType_TryGetSlot(type, tp_base, PyTypeObject*); +#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 + if (!base) goto bad; +#endif + for (j = 0; j < base_depth; j++) { + if (base_vtables[j] == unknown) { + switch (__Pyx_GetVtable(base, &base_vtables[j])) { + case 1: + assert(base_vtables[j] == NULL); + break; + case 0: + goto bad; + case -1: + default: + goto other_failure; + } + base_vtables[j + 1] = unknown; + } + if (base_vtables[j] == base_vtable) { + break; + } + base = __Pyx_PyType_TryGetSlot(base, tp_base, PyTypeObject*); +#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 + if (!base) goto bad; +#endif + } + } + } + PyMem_Free(base_vtables); + return 0; +bad: + { + PyTypeObject* tp_base = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); + PyTypeObject* basei; +#if CYTHON_AVOID_BORROWED_REFS + basei = (PyTypeObject*)PySequence_GetItem(bases, i); + if (unlikely(!basei)) goto other_failure; +#elif !CYTHON_ASSUME_SAFE_MACROS + basei = (PyTypeObject*)PyTuple_GetItem(bases, i); + if (unlikely(!basei)) goto other_failure; +#else + basei = (PyTypeObject*)PyTuple_GET_ITEM(bases, i); +#endif + __Pyx_RaiseTypeErrorWithTypes( + "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base, basei); +#if CYTHON_AVOID_BORROWED_REFS + Py_DECREF(basei); +#endif + } +other_failure: + PyMem_Free(base_vtables); + return -1; +} + +/* SetVTable */ +static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) { + PyObject *ob = PyCapsule_New(vtable, 0, 0); + if (unlikely(!ob)) + goto bad; +#if CYTHON_COMPILING_IN_LIMITED_API + if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0)) +#else + if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_mstate_global->__pyx_n_u_pyx_vtable, ob) < 0)) +#endif + goto bad; + Py_DECREF(ob); + return __Pyx_MergeVtables(type); +bad: + Py_XDECREF(ob); + return -1; +} + /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType_3_3_0 #define __PYX_HAVE_RT_ImportType_3_3_0 @@ -118792,6 +358557,233 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *const *imported_names, P return __Pyx__Import(name, imported_names, len_imported_names, qualname, __pyx_mstate_global->__pyx_d, level); } +/* Py3UpdateBases */ +static PyObject* +__Pyx_PEP560_update_bases(PyObject *bases) +{ + Py_ssize_t i, j, size_bases; + PyObject *base = NULL, *meth, *new_base, *result, *new_bases = NULL; +#if CYTHON_ASSUME_SAFE_SIZE + size_bases = PyTuple_GET_SIZE(bases); +#else + size_bases = PyTuple_Size(bases); + if (size_bases < 0) return NULL; +#endif + for (i = 0; i < size_bases; i++) { +#if CYTHON_AVOID_BORROWED_REFS + Py_CLEAR(base); +#endif +#if CYTHON_ASSUME_SAFE_MACROS + base = PyTuple_GET_ITEM(bases, i); +#else + base = PyTuple_GetItem(bases, i); + if (!base) goto error; +#endif +#if CYTHON_AVOID_BORROWED_REFS + Py_INCREF(base); +#endif + if (PyType_Check(base)) { + if (new_bases) { + if (PyList_Append(new_bases, base) < 0) { + goto error; + } + } + continue; + } + meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_mstate_global->__pyx_n_u_mro_entries); + if (!meth && PyErr_Occurred()) { + goto error; + } + if (!meth) { + if (new_bases) { + if (PyList_Append(new_bases, base) < 0) { + goto error; + } + } + continue; + } + new_base = __Pyx_PyObject_CallOneArg(meth, bases); + Py_DECREF(meth); + if (!new_base) { + goto error; + } + if (!PyTuple_Check(new_base)) { + PyErr_SetString(PyExc_TypeError, + "__mro_entries__ must return a tuple"); + Py_DECREF(new_base); + goto error; + } + if (!new_bases) { + if (!(new_bases = PyList_New(i))) { + goto error; + } + for (j = 0; j < i; j++) { + PyObject *base_from_list; +#if CYTHON_ASSUME_SAFE_MACROS + base_from_list = PyTuple_GET_ITEM(bases, j); + PyList_SET_ITEM(new_bases, j, base_from_list); + Py_INCREF(base_from_list); +#else + base_from_list = PyTuple_GetItem(bases, j); + if (!base_from_list) goto error; + Py_INCREF(base_from_list); + if (PyList_SetItem(new_bases, j, base_from_list) < 0) goto error; +#endif + } + } +#if CYTHON_ASSUME_SAFE_SIZE + j = PyList_GET_SIZE(new_bases); +#else + j = PyList_Size(new_bases); + if (j < 0) goto error; +#endif + if (PyList_SetSlice(new_bases, j, j, new_base) < 0) { + goto error; + } + Py_DECREF(new_base); + } + if (!new_bases) { + Py_INCREF(bases); + return bases; + } + result = PyList_AsTuple(new_bases); + Py_DECREF(new_bases); +#if CYTHON_AVOID_BORROWED_REFS + Py_XDECREF(base); +#endif + return result; +error: + Py_XDECREF(new_bases); +#if CYTHON_AVOID_BORROWED_REFS + Py_XDECREF(base); +#endif + return NULL; +} + +/* CalculateMetaclass */ +static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { + Py_ssize_t i, nbases; +#if CYTHON_ASSUME_SAFE_SIZE + nbases = PyTuple_GET_SIZE(bases); +#else + nbases = PyTuple_Size(bases); + if (nbases < 0) return NULL; +#endif + for (i=0; i < nbases; i++) { + PyTypeObject *tmptype; +#if CYTHON_ASSUME_SAFE_MACROS + PyObject *tmp = PyTuple_GET_ITEM(bases, i); +#else + PyObject *tmp = PyTuple_GetItem(bases, i); + if (!tmp) return NULL; +#endif + tmptype = Py_TYPE(tmp); + if (!metaclass) { + metaclass = tmptype; + continue; + } + if (PyType_IsSubtype(metaclass, tmptype)) + continue; + if (PyType_IsSubtype(tmptype, metaclass)) { + metaclass = tmptype; + continue; + } + PyErr_SetString(PyExc_TypeError, + "metaclass conflict: " + "the metaclass of a derived class " + "must be a (non-strict) subclass " + "of the metaclasses of all its bases"); + return NULL; + } + if (!metaclass) { + metaclass = &PyType_Type; + } + Py_INCREF((PyObject*) metaclass); + return (PyObject*) metaclass; +} + +/* PyObjectCall2Args (used by Py3ClassCreate) */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { + PyObject *args[3] = {NULL, arg1, arg2}; + return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); +} + +/* PyObjectLookupSpecial (used by Py3ClassCreate) */ +#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) { + PyObject *res; + PyTypeObject *tp = Py_TYPE(obj); + res = _PyType_Lookup(tp, attr_name); + if (likely(res)) { + descrgetfunc f = Py_TYPE(res)->tp_descr_get; + if (!f) { + Py_INCREF(res); + } else { + res = f(res, obj, (PyObject *)tp); + } + } else if (with_error) { + PyErr_SetObject(PyExc_AttributeError, attr_name); + } + return res; +} +#endif + +/* Py3ClassCreate */ +static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, + PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { + PyObject *ns; + if (metaclass) { + PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare); + if (prep) { + PyObject *pargs[3] = {NULL, name, bases}; + ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw); + Py_DECREF(prep); + } else { + if (unlikely(PyErr_Occurred())) + return NULL; + ns = PyDict_New(); + } + } else { + ns = PyDict_New(); + } + if (unlikely(!ns)) + return NULL; + if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad; + if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad; + if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad; + return ns; +bad: + Py_DECREF(ns); + return NULL; +} +static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, + PyObject *dict, PyObject *mkw, + int calculate_metaclass, int allow_py2_metaclass) { + PyObject *result; + PyObject *owned_metaclass = NULL; + PyObject *margs[4] = {NULL, name, bases, dict}; + if (allow_py2_metaclass) { + owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass); + if (owned_metaclass) { + metaclass = owned_metaclass; + } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { + PyErr_Clear(); + } else { + return NULL; + } + } + if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { + metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); + Py_XDECREF(owned_metaclass); + if (unlikely(!metaclass)) + return NULL; + owned_metaclass = metaclass; + } + result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw); + Py_XDECREF(owned_metaclass); + return result; +} + /* dict_setdefault (used by FetchCommonType) */ static CYTHON_INLINE PyObject *__Pyx_PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *default_value) { PyObject* value; @@ -120355,233 +360347,6 @@ static PyTypeObject *__Pyx_Get_CyFunction_Type(void) { return tp; } -/* Py3UpdateBases */ -static PyObject* -__Pyx_PEP560_update_bases(PyObject *bases) -{ - Py_ssize_t i, j, size_bases; - PyObject *base = NULL, *meth, *new_base, *result, *new_bases = NULL; -#if CYTHON_ASSUME_SAFE_SIZE - size_bases = PyTuple_GET_SIZE(bases); -#else - size_bases = PyTuple_Size(bases); - if (size_bases < 0) return NULL; -#endif - for (i = 0; i < size_bases; i++) { -#if CYTHON_AVOID_BORROWED_REFS - Py_CLEAR(base); -#endif -#if CYTHON_ASSUME_SAFE_MACROS - base = PyTuple_GET_ITEM(bases, i); -#else - base = PyTuple_GetItem(bases, i); - if (!base) goto error; -#endif -#if CYTHON_AVOID_BORROWED_REFS - Py_INCREF(base); -#endif - if (PyType_Check(base)) { - if (new_bases) { - if (PyList_Append(new_bases, base) < 0) { - goto error; - } - } - continue; - } - meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_mstate_global->__pyx_n_u_mro_entries); - if (!meth && PyErr_Occurred()) { - goto error; - } - if (!meth) { - if (new_bases) { - if (PyList_Append(new_bases, base) < 0) { - goto error; - } - } - continue; - } - new_base = __Pyx_PyObject_CallOneArg(meth, bases); - Py_DECREF(meth); - if (!new_base) { - goto error; - } - if (!PyTuple_Check(new_base)) { - PyErr_SetString(PyExc_TypeError, - "__mro_entries__ must return a tuple"); - Py_DECREF(new_base); - goto error; - } - if (!new_bases) { - if (!(new_bases = PyList_New(i))) { - goto error; - } - for (j = 0; j < i; j++) { - PyObject *base_from_list; -#if CYTHON_ASSUME_SAFE_MACROS - base_from_list = PyTuple_GET_ITEM(bases, j); - PyList_SET_ITEM(new_bases, j, base_from_list); - Py_INCREF(base_from_list); -#else - base_from_list = PyTuple_GetItem(bases, j); - if (!base_from_list) goto error; - Py_INCREF(base_from_list); - if (PyList_SetItem(new_bases, j, base_from_list) < 0) goto error; -#endif - } - } -#if CYTHON_ASSUME_SAFE_SIZE - j = PyList_GET_SIZE(new_bases); -#else - j = PyList_Size(new_bases); - if (j < 0) goto error; -#endif - if (PyList_SetSlice(new_bases, j, j, new_base) < 0) { - goto error; - } - Py_DECREF(new_base); - } - if (!new_bases) { - Py_INCREF(bases); - return bases; - } - result = PyList_AsTuple(new_bases); - Py_DECREF(new_bases); -#if CYTHON_AVOID_BORROWED_REFS - Py_XDECREF(base); -#endif - return result; -error: - Py_XDECREF(new_bases); -#if CYTHON_AVOID_BORROWED_REFS - Py_XDECREF(base); -#endif - return NULL; -} - -/* CalculateMetaclass */ -static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { - Py_ssize_t i, nbases; -#if CYTHON_ASSUME_SAFE_SIZE - nbases = PyTuple_GET_SIZE(bases); -#else - nbases = PyTuple_Size(bases); - if (nbases < 0) return NULL; -#endif - for (i=0; i < nbases; i++) { - PyTypeObject *tmptype; -#if CYTHON_ASSUME_SAFE_MACROS - PyObject *tmp = PyTuple_GET_ITEM(bases, i); -#else - PyObject *tmp = PyTuple_GetItem(bases, i); - if (!tmp) return NULL; -#endif - tmptype = Py_TYPE(tmp); - if (!metaclass) { - metaclass = tmptype; - continue; - } - if (PyType_IsSubtype(metaclass, tmptype)) - continue; - if (PyType_IsSubtype(tmptype, metaclass)) { - metaclass = tmptype; - continue; - } - PyErr_SetString(PyExc_TypeError, - "metaclass conflict: " - "the metaclass of a derived class " - "must be a (non-strict) subclass " - "of the metaclasses of all its bases"); - return NULL; - } - if (!metaclass) { - metaclass = &PyType_Type; - } - Py_INCREF((PyObject*) metaclass); - return (PyObject*) metaclass; -} - -/* PyObjectCall2Args (used by Py3ClassCreate) */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { - PyObject *args[3] = {NULL, arg1, arg2}; - return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); -} - -/* PyObjectLookupSpecial (used by Py3ClassCreate) */ -#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) { - PyObject *res; - PyTypeObject *tp = Py_TYPE(obj); - res = _PyType_Lookup(tp, attr_name); - if (likely(res)) { - descrgetfunc f = Py_TYPE(res)->tp_descr_get; - if (!f) { - Py_INCREF(res); - } else { - res = f(res, obj, (PyObject *)tp); - } - } else if (with_error) { - PyErr_SetObject(PyExc_AttributeError, attr_name); - } - return res; -} -#endif - -/* Py3ClassCreate */ -static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, - PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { - PyObject *ns; - if (metaclass) { - PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_mstate_global->__pyx_n_u_prepare); - if (prep) { - PyObject *pargs[3] = {NULL, name, bases}; - ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw); - Py_DECREF(prep); - } else { - if (unlikely(PyErr_Occurred())) - return NULL; - ns = PyDict_New(); - } - } else { - ns = PyDict_New(); - } - if (unlikely(!ns)) - return NULL; - if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_module, modname) < 0)) goto bad; - if (unlikely(PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_qualname, qualname) < 0)) goto bad; - if (unlikely(doc && PyObject_SetItem(ns, __pyx_mstate_global->__pyx_n_u_doc, doc) < 0)) goto bad; - return ns; -bad: - Py_DECREF(ns); - return NULL; -} -static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, - PyObject *dict, PyObject *mkw, - int calculate_metaclass, int allow_py2_metaclass) { - PyObject *result; - PyObject *owned_metaclass = NULL; - PyObject *margs[4] = {NULL, name, bases, dict}; - if (allow_py2_metaclass) { - owned_metaclass = PyObject_GetItem(dict, __pyx_mstate_global->__pyx_n_u_metaclass); - if (owned_metaclass) { - metaclass = owned_metaclass; - } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { - PyErr_Clear(); - } else { - return NULL; - } - } - if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { - metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); - Py_XDECREF(owned_metaclass); - if (unlikely(!metaclass)) - return NULL; - owned_metaclass = metaclass; - } - result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw); - Py_XDECREF(owned_metaclass); - return result; -} - /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); @@ -120691,6 +360456,68 @@ static CYTHON_INLINE int __Pyx_PyObject_CompareBoolGe_object_str(PyObject *op1, return 0; } +/* LimitedApiGetTypeTypeDict (used by SetItemOnTypeDict) */ +#if CYTHON_COMPILING_IN_LIMITED_API +static PyObject *__Pyx_GetTypeTypeDict(PyTypeObject *tp) { + static Py_ssize_t tp_dictoffset = 0; + if (unlikely(tp_dictoffset == 0)) { + tp_dictoffset = __Pyx_GetTypeDictOffset((PyObject*)(&PyType_Type), 1); + if (unlikely(tp_dictoffset == -1 && PyErr_Occurred())) { + tp_dictoffset = 0; // try again next time? + return NULL; + } + } + return *(PyObject**)((char*)tp + tp_dictoffset); +} +#endif + +/* SetItemOnTypeDict */ +static int __Pyx__SetItemOnTypeDict(PyTypeObject *tp, PyObject *k, PyObject *v) { + int result; + PyObject *tp_dict; +#if CYTHON_COMPILING_IN_LIMITED_API + tp_dict = __Pyx_GetTypeTypeDict(tp); + if (unlikely(!tp_dict)) return -1; +#else + tp_dict = tp->tp_dict; +#endif + result = PyDict_SetItem(tp_dict, k, v); + if (likely(!result)) { + PyType_Modified(tp); + if (unlikely(PyObject_HasAttr(v, __pyx_mstate_global->__pyx_n_u_set_name))) { + PyObject *setNameResult = PyObject_CallMethodObjArgs(v, __pyx_mstate_global->__pyx_n_u_set_name, (PyObject *) tp, k, NULL); + if (!setNameResult) return -1; + Py_DECREF(setNameResult); + } + } + return result; +} + +/* GetNameInClass */ +static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) { + PyObject *result; + PyObject *dict; + assert(PyType_Check(nmspace)); +#if CYTHON_USE_TYPE_SLOTS + dict = ((PyTypeObject*)nmspace)->tp_dict; + Py_XINCREF(dict); +#else + dict = PyObject_GetAttr(nmspace, __pyx_mstate_global->__pyx_n_u_dict); +#endif + if (likely(dict)) { + result = PyObject_GetItem(dict, name); + Py_DECREF(dict); + if (result) { + return result; + } + } + if (!__Pyx_IgnoreException(PyExc_Exception)) { + return NULL; // BaseException + } + __Pyx_GetModuleGlobalNameUncached(result, name); + return result; +} + /* CLineInTraceback (used by AddTraceback) */ #if CYTHON_CLINE_IN_TRACEBACK && CYTHON_CLINE_IN_TRACEBACK_RUNTIME #if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000 @@ -124220,6 +364047,386 @@ static CYTHON_INLINE PyObject* __Pyx_PyLong_From_TA_OutputFlags(TA_OutputFlags v } } +/* CIntToPy */ +static CYTHON_INLINE PyObject* __Pyx_PyLong_From_npy_intp(npy_intp value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const npy_intp neg_one = (npy_intp) -1, const_zero = (npy_intp) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(npy_intp) < sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(npy_intp) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#if !CYTHON_COMPILING_IN_PYPY + } else if (sizeof(npy_intp) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(npy_intp) <= sizeof(long)) { + return PyLong_FromLong((long) value); + } else if (sizeof(npy_intp) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); + } + } + { + unsigned char *bytes = (unsigned char *)&value; +#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4 + if (is_unsigned) { + return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1); + } else { + return PyLong_FromNativeBytes(bytes, sizeof(value), -1); + } +#elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 + int one = 1; int little = (int)*(unsigned char *)&one; + return _PyLong_FromByteArray(bytes, sizeof(npy_intp), + little, !is_unsigned); +#else + int one = 1; int little = (int)*(unsigned char *)&one; + PyObject *result = NULL, *kwds = NULL; + PyObject *py_bytes = NULL, *order_str = NULL, *from_bytes_str = NULL;; + py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(npy_intp)); + if (!py_bytes) goto limited_bad; + from_bytes_str = PyUnicode_FromStringAndSize("from_bytes", 10); + if (!from_bytes_str) goto limited_bad; + order_str = PyUnicode_FromString(little ? "little" : "big"); + if (!order_str) goto limited_bad; + { + PyObject *args[] = { (PyObject*)&PyLong_Type, py_bytes, order_str, Py_True }; + if (!is_unsigned) { + PyObject *signed_str = PyUnicode_FromStringAndSize("signed", 6); + if (!signed_str) goto limited_bad; +#if CYTHON_VECTORCALL + kwds = PyTuple_Pack(1, signed_str); +#else + { + PyObject *keys[] = {signed_str}; + PyObject *values[] = {Py_True}; + kwds = __Pyx_MakeKwargDict(keys, values, 1); + } +#endif + Py_DECREF(signed_str); + if (unlikely(!kwds)) goto limited_bad; + } + result = __Pyx_Object_VectorcallMethodKwds(from_bytes_str, args, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, kwds); + } + limited_bad: + Py_XDECREF(kwds); + Py_XDECREF(order_str); + Py_XDECREF(py_bytes); + Py_XDECREF(from_bytes_str); + return result; +#endif + } +} + +/* CIntFromPy */ +static npy_intp __Pyx_LargePyLong___Pyx_PyLong_As_npy_intp(PyObject *x); +static npy_intp __Pyx_raise_neg_overflow___Pyx_PyLong_As_npy_intp(void) { + const char* type_name = "npy_intp"; + PyErr_Format(PyExc_OverflowError, + "can't convert negative value to %.200s", type_name); + return (npy_intp) -1; +} +static npy_intp __Pyx_raise_overflow___Pyx_PyLong_As_npy_intp(void) { + const char* type_name = "npy_intp"; + PyErr_Format(PyExc_OverflowError, + "value too large to convert to %.200s", type_name); + return (npy_intp) -1; +} +static CYTHON_INLINE npy_intp __Pyx_PyULong___Pyx_PyLong_As_npy_intp(PyObject *x) { + const int is_unsigned = 1; +#if CYTHON_USE_PYLONG_INTERNALS + { + const digit* digits = __Pyx_PyLong_Digits(x); + const Py_ssize_t size = __Pyx_PyLong_DigitCount(x); + if (size == 2 && (8 * sizeof(npy_intp) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(npy_intp) >= 2 * PyLong_SHIFT)) { + return (npy_intp) (((((npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])); + } + } else + if (size == 3 && (8 * sizeof(npy_intp) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(npy_intp) >= 3 * PyLong_SHIFT)) { + return (npy_intp) (((((((npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])); + } + } else + if (size == 4 && (8 * sizeof(npy_intp) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(npy_intp) >= 4 * PyLong_SHIFT)) { + return (npy_intp) (((((((((npy_intp)digits[3]) << PyLong_SHIFT) | (npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])); + } + } else + {} + } +#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (npy_intp) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if ((sizeof(npy_intp) <= sizeof(unsigned long))) { + __PYX_VERIFY_RETURN_INT_EXC(npy_intp, unsigned long, PyLong_AsUnsignedLong(x)) + } else if ((sizeof(npy_intp) <= sizeof(unsigned PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(npy_intp, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) + } + return __Pyx_LargePyLong___Pyx_PyLong_As_npy_intp(x); +raise_neg_overflow: + return __Pyx_raise_neg_overflow___Pyx_PyLong_As_npy_intp(); +raise_overflow: + return __Pyx_raise_overflow___Pyx_PyLong_As_npy_intp(); +} +static CYTHON_INLINE npy_intp __Pyx_PySLong___Pyx_PyLong_As_npy_intp(PyObject *x) { + const int is_unsigned = 0; +#if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsNeg(x)) { + const Py_ssize_t size = __Pyx_PyLong_DigitCount(x); + const digit* digits = __Pyx_PyLong_Digits(x); + if (size == 2 && (8 * sizeof(npy_intp) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { + long ival = - (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + __PYX_VERIFY_RETURN_INT(npy_intp, long, ival) + } else if ((8 * sizeof(npy_intp) - 1 > 2 * PyLong_SHIFT)) { + return (npy_intp) (((npy_intp) -1) * (((((npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0]))); + } + } else + if (size == 3 && (8 * sizeof(npy_intp) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { + long ival = - (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + __PYX_VERIFY_RETURN_INT(npy_intp, long, ival) + } else if ((8 * sizeof(npy_intp) - 1 > 3 * PyLong_SHIFT)) { + return (npy_intp) (((npy_intp) -1) * (((((((npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0]))); + } + } else + if (size == 4 && (8 * sizeof(npy_intp) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) { + long ival = - (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + __PYX_VERIFY_RETURN_INT(npy_intp, long, ival) + } else if ((8 * sizeof(npy_intp) - 1 > 4 * PyLong_SHIFT)) { + return (npy_intp) (((npy_intp) -1) * (((((((((npy_intp)digits[3]) << PyLong_SHIFT) | (npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0]))); + } + } else + {} + } else { + const Py_ssize_t size = __Pyx_PyLong_DigitCount(x); + const digit* digits = __Pyx_PyLong_Digits(x); + if (size == 2 && (8 * sizeof(npy_intp) > 1 * PyLong_SHIFT)) { + if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(npy_intp) - 1 > 2 * PyLong_SHIFT)) { + return (npy_intp) (((((npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])); + } + } else + if (size == 3 && (8 * sizeof(npy_intp) > 2 * PyLong_SHIFT)) { + if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(npy_intp) - 1 > 3 * PyLong_SHIFT)) { + return (npy_intp) (((((((npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])); + } + } else + if (size == 4 && (8 * sizeof(npy_intp) > 3 * PyLong_SHIFT)) { + if ((8 * sizeof(long) > 4 * PyLong_SHIFT)) { + __PYX_VERIFY_RETURN_INT(npy_intp, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if ((8 * sizeof(npy_intp) - 1 > 4 * PyLong_SHIFT)) { + return (npy_intp) (((((((((npy_intp)digits[3]) << PyLong_SHIFT) | (npy_intp)digits[2]) << PyLong_SHIFT) | (npy_intp)digits[1]) << PyLong_SHIFT) | (npy_intp)digits[0])); + } + } else + {} + } +#endif + #if __PYX_LIMITED_VERSION_HEX >= 0x030d0000 + if ((sizeof(npy_intp) <= sizeof(int)) && (sizeof(int) < sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(npy_intp, int, PyLong_AsInt(x)) + } else + #endif + if ((sizeof(npy_intp) <= sizeof(long))) { + __PYX_VERIFY_RETURN_INT_EXC(npy_intp, long, PyLong_AsLong(x)) + } else if ((sizeof(npy_intp) <= sizeof(PY_LONG_LONG))) { + __PYX_VERIFY_RETURN_INT_EXC(npy_intp, PY_LONG_LONG, PyLong_AsLongLong(x)) + } + return __Pyx_LargePyLong___Pyx_PyLong_As_npy_intp(x); +raise_neg_overflow: + return __Pyx_raise_neg_overflow___Pyx_PyLong_As_npy_intp(); +raise_overflow: + return __Pyx_raise_overflow___Pyx_PyLong_As_npy_intp(); +} +static npy_intp __Pyx_LargePyLong___Pyx_PyLong_As_npy_intp(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const npy_intp neg_one = (npy_intp) -1, const_zero = (npy_intp) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + npy_intp val; + int ret = -1; +#if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API + Py_ssize_t bytes_copied = PyLong_AsNativeBytes( + x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0)); + if (unlikely(bytes_copied == -1)) { + } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) { + goto raise_overflow; + } else { + ret = 0; + } +#elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + ret = _PyLong_AsByteArray((PyLongObject *)x, + bytes, sizeof(val), + is_little, !is_unsigned); + if ((0)) goto raise_overflow; +#else + PyObject *v; + PyObject *stepval = NULL, *mask = NULL, *shift = NULL; + int bits, remaining_bits, is_negative = 0; + int chunk_size = (sizeof(long) < 8) ? 30 : 62; + if (likely(PyLong_CheckExact(x))) { + v = __Pyx_NewRef(x); + } else { + v = PyNumber_Long(x); + if (unlikely(!v)) return (npy_intp) -1; + assert(PyLong_CheckExact(v)); + } + { + int result = PyObject_RichCompareBool(v, Py_False, Py_LT); + if (unlikely(result < 0)) { + Py_DECREF(v); + return (npy_intp) -1; + } + is_negative = result == 1; + } + if (is_unsigned && unlikely(is_negative)) { + Py_DECREF(v); + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to npy_intp"); + return (npy_intp) -1; + } else if (is_negative) { + stepval = PyNumber_Invert(v); + Py_DECREF(v); + if (unlikely(!stepval)) + return (npy_intp) -1; + } else { + stepval = v; + } + v = NULL; + val = (npy_intp) 0; + mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; + shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; + for (bits = 0; bits < (int) sizeof(npy_intp) * 8 - chunk_size; bits += chunk_size) { + PyObject *tmp, *digit; + long idigit; + digit = PyNumber_And(stepval, mask); + if (unlikely(!digit)) goto done; + idigit = PyLong_AsLong(digit); + Py_DECREF(digit); + if (unlikely(idigit < 0)) goto done; + val |= ((npy_intp) idigit) << bits; + tmp = PyNumber_Rshift(stepval, shift); + if (unlikely(!tmp)) goto done; + Py_DECREF(stepval); stepval = tmp; + } + Py_DECREF(shift); shift = NULL; + Py_DECREF(mask); mask = NULL; + { + long idigit = PyLong_AsLong(stepval); + if (unlikely(idigit < 0)) goto done; + remaining_bits = ((int) sizeof(npy_intp) * 8) - bits - (is_unsigned ? 0 : 1); + if (unlikely(idigit >= (1L << remaining_bits))) + goto raise_overflow; + val |= ((npy_intp) idigit) << bits; + } + if (!is_unsigned) { + if (unlikely(val & (((npy_intp) 1) << (sizeof(npy_intp) * 8 - 1)))) + goto raise_overflow; + if (is_negative) + val = ~val; + } + ret = 0; +done: + Py_XDECREF(shift); + Py_XDECREF(mask); + Py_XDECREF(stepval); +#endif + if (unlikely(ret)) + return (npy_intp) -1; + return val; +raise_overflow: + return __Pyx_raise_overflow___Pyx_PyLong_As_npy_intp(); +} +static CYTHON_INLINE npy_intp __Pyx_PyLong___Pyx_PyLong_As_npy_intp(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const npy_intp neg_one = (npy_intp) -1, const_zero = (npy_intp) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + #if CYTHON_USE_PYLONG_INTERNALS + if (unlikely(__Pyx_PyLong_IsNeg(x))) { + goto raise_neg_overflow; + } else if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(npy_intp, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) + } else + #endif + { + return __Pyx_PyULong___Pyx_PyLong_As_npy_intp(x); + } + } else { + #if CYTHON_USE_PYLONG_INTERNALS + if (__Pyx_PyLong_IsCompact(x)) { + __PYX_VERIFY_RETURN_INT(npy_intp, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) + } else + #endif + { + return __Pyx_PySLong___Pyx_PyLong_As_npy_intp(x); + } + } +#if CYTHON_USE_PYLONG_INTERNALS +raise_neg_overflow: + return __Pyx_raise_neg_overflow___Pyx_PyLong_As_npy_intp(); +raise_overflow: + return __Pyx_raise_overflow___Pyx_PyLong_As_npy_intp(); +#endif +} +static npy_intp __Pyx_NonPyLong___Pyx_PyLong_As_npy_intp(PyObject *x) { + npy_intp val; + PyObject *tmp = __Pyx_PyNumber_Long(x); + if (!tmp) return (npy_intp) -1; + val = __Pyx_PyLong_As_npy_intp(tmp); + Py_DECREF(tmp); + return val; +} +static CYTHON_INLINE npy_intp __Pyx_PyLong_As_npy_intp(PyObject *x) { + if (likely(PyLong_Check(x))) { + return __Pyx_PyLong___Pyx_PyLong_As_npy_intp(x); + } else { + return __Pyx_NonPyLong___Pyx_PyLong_As_npy_intp(x); + } +} + /* CIntFromPy */ static long __Pyx_LargePyLong___Pyx_PyLong_As_long(PyObject *x); static long __Pyx_raise_neg_overflow___Pyx_PyLong_As_long(void) { diff --git a/talib/_ta_lib.pyi b/talib/_ta_lib.pyi index 55b6155bd..4a308712d 100644 --- a/talib/_ta_lib.pyi +++ b/talib/_ta_lib.pyi @@ -1255,1240 +1255,3 @@ def IMI( close: NDArray[np.float64], timeperiod: int= 14 )-> NDArray[np.float64]: ... - -#Overlap Studies Functions - -def stream_BBANDS( - real: NDArray[np.float64], - timeperiod: int= 20, - nbdevup: float= 2, - nbdevdn: float= 2, - matype: MA_Type = MA_Type.SMA - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_DEMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_DONCHIAN( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 20 - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_EMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_HMA( - real: NDArray[np.float64], - timeperiod: int= 20 - )-> NDArray[np.float64]: ... - -def stream_HT_TRENDLINE(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_KAMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_KC( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 20, - atrperiod: int= 10, - nbdev: float= 2.0 - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MA( - real: NDArray[np.float64], - timeperiod: int= 30, - matype: MA_Type = MA_Type.SMA - )-> NDArray[np.float64]: ... - -def stream_MAMA( - real: NDArray[np.float64], - fastlimit: float= 0, - slowlimit: float= 0 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MAVP( - real: NDArray[np.float64], - periods: float, - minperiod: int= 2, - maxperiod: int= 30, - matype: MA_Type = MA_Type.SMA - )-> NDArray[np.float64]: ... - -def stream_MIDPOINT( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_MIDPRICE( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_RMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_SAR( - high: NDArray[np.float64], - low: NDArray[np.float64], - acceleration: float= 0, - maximum: float= 0 - )-> NDArray[np.float64]: ... - -def stream_SAREXT( - high: NDArray[np.float64], - low: NDArray[np.float64], - startvalue: float= 0, - offsetonreverse: float= 0, - accelerationinitlong: float= 0, - accelerationlong: float= 0, - accelerationmaxlong: float= 0, - accelerationinitshort: float= 0, - accelerationshort: float= 0, - accelerationmaxshort: float= 0 - )-> NDArray[np.float64]: ... - -def stream_SMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_SUPERTREND( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 10, - multiplier: float= 3.0 - )-> Tuple[NDArray[np.float64], NDArray[np.int32]]: ... - -def stream_T3( - real: NDArray[np.float64], - timeperiod: int= 5, - vfactor: float= 0 - )-> NDArray[np.float64]: ... - -def stream_TEMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_TRIMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_VWMA( - real: NDArray[np.float64], - volume: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_WMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_ZLEMA( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -#Momentum Indicator Functions - -def stream_AC( - high: NDArray[np.float64], - low: NDArray[np.float64], - fastperiod: int= 5, - slowperiod: int= 34, - signalperiod: int= 5 - )-> NDArray[np.float64]: ... - -def stream_ADX( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_ADXR( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_AO( - high: NDArray[np.float64], - low: NDArray[np.float64], - fastperiod: int= 5, - slowperiod: int= 34 - )-> NDArray[np.float64]: ... - -def stream_APO( - real: NDArray[np.float64], - fastperiod: int= 12, - slowperiod: int= 26, - matype: MA_Type = MA_Type.EMA - )-> NDArray[np.float64]: ... - -def stream_AROON( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 14 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_AROONOSC( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_BOP( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_CCI( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_CMO( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_CMOU( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_COPPOCK( - real: NDArray[np.float64], - wmaperiod: int= 10, - roc1period: int= 11, - roc2period: int= 14 - )-> NDArray[np.float64]: ... - -def stream_DPO( - real: NDArray[np.float64], - timeperiod: int= 20 - )-> NDArray[np.float64]: ... - -def stream_DX( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_ER( - real: NDArray[np.float64], - timeperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_ERI( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 13 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_FOSC( - real: NDArray[np.float64], - timeperiod: int= 5 - )-> NDArray[np.float64]: ... - -def stream_FRACTAL( - high: NDArray[np.float64], - low: NDArray[np.float64], - leftbars: int= 2, - rightbars: int= 2 - )-> Tuple[NDArray[np.int32], NDArray[np.int32]]: ... - -def stream_KDJ( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - fastk_period: int= 9, - slowk_period: int= 3, - slowk_matype: MA_Type = MA_Type.RMA, - slowd_period: int= 3, - slowd_matype: MA_Type = MA_Type.RMA - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MACD( - real: NDArray[np.float64], - fastperiod: int= 12, - slowperiod: int= 26, - signalperiod: int= 9 - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MACDEXT( - real: NDArray[np.float64], - fastperiod: int= 12, - fastmatype: MA_Type = MA_Type.SMA, - slowperiod: int= 26, - slowmatype: MA_Type = MA_Type.SMA, - signalperiod: int= 9, - signalmatype: MA_Type = MA_Type.SMA - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MACDFIX( - real: NDArray[np.float64], - signalperiod: int= 9 - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MFI( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - volume: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_MINUS_DI( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_MINUS_DM( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_MOM( - real: NDArray[np.float64], - timeperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_PLUS_DI( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_PLUS_DM( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_PPO( - real: NDArray[np.float64], - fastperiod: int= 12, - slowperiod: int= 26, - matype: MA_Type = MA_Type.EMA - )-> NDArray[np.float64]: ... - -def stream_QSTICK( - open: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_ROC( - real: NDArray[np.float64], - timeperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_ROCP( - real: NDArray[np.float64], - timeperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_ROCR( - real: NDArray[np.float64], - timeperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_ROCR100( - real: NDArray[np.float64], - timeperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_RSI( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_SMI( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 13, - fastperiod: int= 2, - slowperiod: int= 25, - signalperiod: int= 9 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_STOCH( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - fastk_period: int= 5, - slowk_period: int= 3, - slowk_matype: MA_Type = MA_Type.SMA, - slowd_period: int= 3, - slowd_matype: MA_Type = MA_Type.SMA - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_STOCHF( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - fastk_period: int= 5, - fastd_period: int= 3, - fastd_matype: MA_Type = MA_Type.SMA - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_STOCHRSI( - real: NDArray[np.float64], - timeperiod: int= 14, - fastk_period: int= 5, - fastd_period: int= 3, - fastd_matype: MA_Type = MA_Type.SMA - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_TRIX( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_TSI( - real: NDArray[np.float64], - firstperiod: int= 25, - secondperiod: int= 13 - )-> NDArray[np.float64]: ... - -def stream_ULTOSC( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod1: int= 7, - timeperiod2: int= 14, - timeperiod3: int= 28 - )-> NDArray[np.float64]: ... - -def stream_VHF( - real: NDArray[np.float64], - timeperiod: int= 28 - )-> NDArray[np.float64]: ... - -def stream_VORTEX( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_WAD( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_WILLR( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -#Volume Indicator Functions - -def stream_AD( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - volume: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_ADOSC( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - volume: NDArray[np.float64], - fastperiod: int= 3, - slowperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_CMF( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - volume: NDArray[np.float64], - timeperiod: int= 20 - )-> NDArray[np.float64]: ... - -def stream_EFI( - close: NDArray[np.float64], - volume: NDArray[np.float64], - timeperiod: int= 13 - )-> NDArray[np.float64]: ... - -def stream_MARKETFI( - high: NDArray[np.float64], - low: NDArray[np.float64], - volume: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_NVI( - close: NDArray[np.float64], - volume: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_OBV( - close: NDArray[np.float64], - volume: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_PVI( - close: NDArray[np.float64], - volume: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_PVO( - volume: NDArray[np.float64], - fastperiod: int= 12, - slowperiod: int= 26, - matype: int= 1 - )-> NDArray[np.float64]: ... - -def stream_PVT( - close: NDArray[np.float64], - volume: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_RVOL( - volume: NDArray[np.float64], - timeperiod: int= 20 - )-> NDArray[np.float64]: ... - -def stream_VWAP( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - volume: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -#Volatility Indicator Functions - -def stream_ADR( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_ATR( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_CVI( - high: NDArray[np.float64], - low: NDArray[np.float64], - timeperiod: int= 10, - rocperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_MASSI( - high: NDArray[np.float64], - low: NDArray[np.float64], - fastperiod: int= 9, - slowperiod: int= 25 - )-> NDArray[np.float64]: ... - -def stream_NATR( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_RVI( - real: NDArray[np.float64], - timeperiod: int= 14, - stddevperiod: int= 10 - )-> NDArray[np.float64]: ... - -def stream_TRANGE( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -# Price Transform Functions - -def stream_AVGPRICE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_HA( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MEDPRICE( - high: NDArray[np.float64], - low: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_TYPPRICE( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_WCLPRICE( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -# Cycle Indicator Functions - -def stream_HT_DCPERIOD(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_HT_DCPHASE(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_HT_PHASOR(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_HT_SINE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_HT_TRENDMODE(real: NDArray[np.float64])-> Tuple[NDArray[np.float64], NDArray[np.int32]]: ... - -#Pattern Recognition Functions - -def stream_CDL2CROWS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDL3BLACKCROWS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDL3INSIDE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDL3LINESTRIKE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDL3OUTSIDE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDL3STARSINSOUTH( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDL3WHITESOLDIERS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLABANDONEDBABY( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - penetration: float= 0 - )-> NDArray[np.int32]: ... - -def stream_CDLADVANCEBLOCK( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLBELTHOLD( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLBREAKAWAY( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLCLOSINGMARUBOZU( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLCONCEALBABYSWALL( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLCOUNTERATTACK( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLDARKCLOUDCOVER( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - penetration: float= 0 - )-> NDArray[np.int32]: ... - -def stream_CDLDOJI( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLDOJISTAR( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLDRAGONFLYDOJI( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLENGULFING( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLEVENINGDOJISTAR( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - penetration: float= 0 - )-> NDArray[np.int32]: ... - -def stream_CDLEVENINGSTAR( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - penetration: float= 0 - )-> NDArray[np.int32]: ... - -def stream_CDLGAPSIDESIDEWHITE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLGRAVESTONEDOJI( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHAMMER( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHANGINGMAN( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHARAMI( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHARAMICROSS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHIGHWAVE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHIKKAKE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHIKKAKEMOD( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLHOMINGPIGEON( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLIDENTICAL3CROWS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLINNECK( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLINVERTEDHAMMER( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLKICKING( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLKICKINGBYLENGTH( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLLADDERBOTTOM( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLLONGLEGGEDDOJI( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLLONGLINE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLMARUBOZU( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLMATCHINGLOW( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLMATHOLD( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - penetration: float= 0 - )-> NDArray[np.int32]: ... - -def stream_CDLMORNINGDOJISTAR( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - penetration: float= 0 - )-> NDArray[np.int32]: ... - -def stream_CDLMORNINGSTAR( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - penetration: float= 0 - )-> NDArray[np.int32]: ... - -def stream_CDLONNECK( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLPIERCING( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLRICKSHAWMAN( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLRISEFALL3METHODS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLSEPARATINGLINES( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLSHOOTINGSTAR( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLSHORTLINE( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLSPINNINGTOP( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLSTALLEDPATTERN( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLSTICKSANDWICH( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLTAKURI( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLTASUKIGAP( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLTHRUSTING( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLTRISTAR( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLUNIQUE3RIVER( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLUPSIDEGAP2CROWS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -def stream_CDLXSIDEGAP3METHODS( - open: NDArray[np.float64], - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64] - )-> NDArray[np.int32]: ... - -# Statistic Functions - -def stream_BETA( - real0: NDArray[np.float64], - real1: NDArray[np.float64], - timeperiod: int= 5 - )-> NDArray[np.float64]: ... - -def stream_CORREL( - real0: NDArray[np.float64], - real1: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_LINEARREG( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_LINEARREG_ANGLE( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_LINEARREG_INTERCEPT( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_LINEARREG_SLOPE( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_PERCENTILE( - real: NDArray[np.float64], - timeperiod: int= 30, - percentile: float= 50.0 - )-> NDArray[np.float64]: ... - -def stream_PERCENTRANK( - real: NDArray[np.float64], - timeperiod: int= 100 - )-> NDArray[np.float64]: ... - -def stream_STDDEV( - real: NDArray[np.float64], - timeperiod: int= 5, - nbdev: float= 1 - )-> NDArray[np.float64]: ... - -def stream_TSF( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_VAR( - real: NDArray[np.float64], - timeperiod: int= 5, - nbdev: float= 1 - )-> NDArray[np.float64]: ... - -# Math Transform Functions - -def stream_ACOS(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_ASIN(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_ATAN(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_CEIL(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_COS(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_COSH(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_EXP(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_FLOOR(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_LN(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_LOG10(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_SIN(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_SINH(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_SQRT(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_TAN(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -def stream_TANH(real: NDArray[np.float64])-> NDArray[np.float64]: ... - -#Math Operator Functions - -def stream_ADD( - real0: NDArray[np.float64], - real1: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_CUMSUM( - real: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_DIV( - real0: NDArray[np.float64], - real1: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_MAX( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_MAXINDEX( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.int32]: ... - -def stream_MIN( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_MININDEX( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.int32]: ... - -def stream_MINMAX( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MINMAXINDEX( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> Tuple[NDArray[np.float64], NDArray[np.float64]]: ... - -def stream_MULT( - real0: NDArray[np.float64], - real1: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_SUB( - real0: NDArray[np.float64], - real1: NDArray[np.float64] - )-> NDArray[np.float64]: ... - -def stream_SUM( - real: NDArray[np.float64], - timeperiod: int= 30 - )-> NDArray[np.float64]: ... - -def stream_ACCBANDS( - high: NDArray[np.float64], - low: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 20 - )-> NDArray[np.float64]: ... - -def stream_AVGDEV( - real: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... - -def stream_IMI( - open: NDArray[np.float64], - close: NDArray[np.float64], - timeperiod: int= 14 - )-> NDArray[np.float64]: ... diff --git a/talib/_ta_lib.pyx b/talib/_ta_lib.pyx index 2b8aec2b6..c6b71c63d 100644 --- a/talib/_ta_lib.pyx +++ b/talib/_ta_lib.pyx @@ -5,4 +5,4 @@ include "_func.pxi" include "_abstract.pxi" include "_stream.pxi" -__all__ = __TA_FUNCTION_NAMES__ + ["stream_%s" % name for name in __TA_FUNCTION_NAMES__] +__all__ = __TA_FUNCTION_NAMES__ diff --git a/talib/stream.py b/talib/stream.py index ee2cc85e9..0030729cf 100644 --- a/talib/stream.py +++ b/talib/stream.py @@ -1,6 +1,65 @@ +"""Streaming API: one handle per indicator, O(1) per closed bar. + +A handle is opened on history, then carried forward one bar at a time. Every +value it produces is bit-identical to what the Function API reports for the +same bar. + + from talib import stream + + s = stream.RSI(history, timeperiod=14) # same arguments as talib.RSI + s.value # value at the last history bar + + for bar in feed: + emit(s.update(bar)) # one closed bar in, its value out + + s.peek(forming) # what update would return; commits + # nothing, so call it as often as + # the forming bar is revised + fork = s.copy() # independent handle at the same bar + s.advance() # count a bar you did not feed + s.out_range # (begidx, nbelement), as batch reports + +Opening needs at least ``lookback + 1`` bars, which ``abstract`` knows -- and a +little more where a function's seeding does, so treat a short history as "not +yet" rather than computing the number: + + while handle is None: + history.append(next(feed)) + try: + handle = stream.RSI(history, timeperiod=14) + except talib.InsufficientHistory: + pass + +Leading bars that are NaN in any input are not history: they are skipped, as the +Function API skips them, and do not count toward the warm-up. A NaN or an +infinity anywhere else in the history is undefined behaviour in TA-Lib C, and +for a few window functions a handle and the Function API do then disagree. + +A bar that is not finite is likewise rejected: ``update`` raises and the handle +is left exactly as it was, neither its value nor its range moved. For a bar you +mean to skip rather than re-feed, say so with ``advance()``, or two handles on +one feed drift a bar apart. + +``open_and_fill`` is the alternate constructor for when you want the batch +series over the history as well -- one pass gives both: + + s, rsi = stream.RSI.open_and_fill(history, timeperiod=14) + +A multi-output function answers with a named tuple whose fields are the output +names in the function's docstring; a single-output one with a bare float (or +int). Handles cannot be pickled. +""" import talib._ta_lib as _ta_lib -from ._ta_lib import __TA_FUNCTION_NAMES__ +from talib._ta_lib import OutRange, Stream, __TA_FUNCTION_NAMES__ +__all__ = ['Stream', 'OutRange'] for func_name in __TA_FUNCTION_NAMES__: - globals()[func_name] = getattr(_ta_lib, "stream_%s" % func_name) + globals()[func_name] = getattr(_ta_lib, '%s_Stream' % func_name) + __all__.append(func_name) + # the named tuple a multi-output handle answers with + value_name = '%s_Value' % func_name + value_type = getattr(_ta_lib, value_name, None) + if value_type is not None: + globals()[value_name] = value_type + __all__.append(value_name) diff --git a/talib/stream.pyi b/talib/stream.pyi new file mode 100644 index 000000000..f87ec8729 --- /dev/null +++ b/talib/stream.pyi @@ -0,0 +1,2128 @@ +from typing import NamedTuple, Tuple + +import numpy as np +from numpy.typing import NDArray + + +class OutRange(NamedTuple): + begidx: int + nbelement: int + + +class Stream: + @property + def out_range(self) -> OutRange: ... + def advance(self) -> None: ... + + +class AC(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], fastperiod: int = 5, slowperiod: int = 34, signalperiod: int = 5) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], fastperiod: int = 5, slowperiod: int = 34, signalperiod: int = 5) -> Tuple["AC", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "AC": ... + +class ACCBANDS_Value(NamedTuple): + upperband: float + middleband: float + lowerband: float + +class ACCBANDS(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20) -> Tuple["ACCBANDS", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> ACCBANDS_Value: ... + def peek(self, high: float, low: float, close: float) -> ACCBANDS_Value: ... + @property + def value(self) -> ACCBANDS_Value: ... + def copy(self) -> "ACCBANDS": ... + +class ACOS(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["ACOS", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ACOS": ... + +class AD(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64]) -> Tuple["AD", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float, volume: float) -> float: ... + def peek(self, high: float, low: float, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "AD": ... + +class ADD(Stream): + def __init__(self, real0: NDArray[np.float64], real1: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real0: NDArray[np.float64], real1: NDArray[np.float64]) -> Tuple["ADD", NDArray[np.float64]]: ... + def update(self, real0: float, real1: float) -> float: ... + def peek(self, real0: float, real1: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ADD": ... + +class ADOSC(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], fastperiod: int = 3, slowperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], fastperiod: int = 3, slowperiod: int = 10) -> Tuple["ADOSC", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float, volume: float) -> float: ... + def peek(self, high: float, low: float, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ADOSC": ... + +class ADR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> Tuple["ADR", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ADR": ... + +class ADX(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["ADX", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ADX": ... + +class ADXR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["ADXR", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ADXR": ... + +class AO(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], fastperiod: int = 5, slowperiod: int = 34) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], fastperiod: int = 5, slowperiod: int = 34) -> Tuple["AO", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "AO": ... + +class APO(Stream): + def __init__(self, real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, matype: int = 1) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, matype: int = 1) -> Tuple["APO", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "APO": ... + +class AROON_Value(NamedTuple): + aroondown: float + aroonup: float + +class AROON(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> Tuple["AROON", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float) -> AROON_Value: ... + def peek(self, high: float, low: float) -> AROON_Value: ... + @property + def value(self) -> AROON_Value: ... + def copy(self) -> "AROON": ... + +class AROONOSC(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> Tuple["AROONOSC", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "AROONOSC": ... + +class ASIN(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["ASIN", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ASIN": ... + +class ATAN(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["ATAN", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ATAN": ... + +class ATR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["ATR", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ATR": ... + +class AVGDEV(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["AVGDEV", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "AVGDEV": ... + +class AVGPRICE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["AVGPRICE", NDArray[np.float64]]: ... + def update(self, open: float, high: float, low: float, close: float) -> float: ... + def peek(self, open: float, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "AVGPRICE": ... + +class BBANDS_Value(NamedTuple): + upperband: float + middleband: float + lowerband: float + +class BBANDS(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> Tuple["BBANDS", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> BBANDS_Value: ... + def peek(self, real: float) -> BBANDS_Value: ... + @property + def value(self) -> BBANDS_Value: ... + def copy(self) -> "BBANDS": ... + +class BETA(Stream): + def __init__(self, real0: NDArray[np.float64], real1: NDArray[np.float64], timeperiod: int = 5) -> None: ... + @staticmethod + def open_and_fill(real0: NDArray[np.float64], real1: NDArray[np.float64], timeperiod: int = 5) -> Tuple["BETA", NDArray[np.float64]]: ... + def update(self, real0: float, real1: float) -> float: ... + def peek(self, real0: float, real1: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "BETA": ... + +class BOP(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["BOP", NDArray[np.float64]]: ... + def update(self, open: float, high: float, low: float, close: float) -> float: ... + def peek(self, open: float, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "BOP": ... + +class CCI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["CCI", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CCI": ... + +class CDL2CROWS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDL2CROWS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDL2CROWS": ... + +class CDL3BLACKCROWS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDL3BLACKCROWS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDL3BLACKCROWS": ... + +class CDL3INSIDE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDL3INSIDE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDL3INSIDE": ... + +class CDL3LINESTRIKE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDL3LINESTRIKE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDL3LINESTRIKE": ... + +class CDL3OUTSIDE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDL3OUTSIDE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDL3OUTSIDE": ... + +class CDL3STARSINSOUTH(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDL3STARSINSOUTH", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDL3STARSINSOUTH": ... + +class CDL3WHITESOLDIERS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDL3WHITESOLDIERS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDL3WHITESOLDIERS": ... + +class CDLABANDONEDBABY(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> Tuple["CDLABANDONEDBABY", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLABANDONEDBABY": ... + +class CDLADVANCEBLOCK(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLADVANCEBLOCK", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLADVANCEBLOCK": ... + +class CDLBELTHOLD(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLBELTHOLD", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLBELTHOLD": ... + +class CDLBREAKAWAY(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLBREAKAWAY", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLBREAKAWAY": ... + +class CDLCLOSINGMARUBOZU(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLCLOSINGMARUBOZU", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLCLOSINGMARUBOZU": ... + +class CDLCONCEALBABYSWALL(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLCONCEALBABYSWALL", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLCONCEALBABYSWALL": ... + +class CDLCOUNTERATTACK(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLCOUNTERATTACK", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLCOUNTERATTACK": ... + +class CDLDARKCLOUDCOVER(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.5) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.5) -> Tuple["CDLDARKCLOUDCOVER", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLDARKCLOUDCOVER": ... + +class CDLDOJI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLDOJI", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLDOJI": ... + +class CDLDOJISTAR(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLDOJISTAR", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLDOJISTAR": ... + +class CDLDRAGONFLYDOJI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLDRAGONFLYDOJI", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLDRAGONFLYDOJI": ... + +class CDLENGULFING(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLENGULFING", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLENGULFING": ... + +class CDLEVENINGDOJISTAR(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> Tuple["CDLEVENINGDOJISTAR", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLEVENINGDOJISTAR": ... + +class CDLEVENINGSTAR(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> Tuple["CDLEVENINGSTAR", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLEVENINGSTAR": ... + +class CDLGAPSIDESIDEWHITE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLGAPSIDESIDEWHITE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLGAPSIDESIDEWHITE": ... + +class CDLGRAVESTONEDOJI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLGRAVESTONEDOJI", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLGRAVESTONEDOJI": ... + +class CDLHAMMER(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHAMMER", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHAMMER": ... + +class CDLHANGINGMAN(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHANGINGMAN", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHANGINGMAN": ... + +class CDLHARAMI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHARAMI", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHARAMI": ... + +class CDLHARAMICROSS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHARAMICROSS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHARAMICROSS": ... + +class CDLHIGHWAVE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHIGHWAVE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHIGHWAVE": ... + +class CDLHIKKAKE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHIKKAKE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHIKKAKE": ... + +class CDLHIKKAKEMOD(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHIKKAKEMOD", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHIKKAKEMOD": ... + +class CDLHOMINGPIGEON(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLHOMINGPIGEON", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLHOMINGPIGEON": ... + +class CDLIDENTICAL3CROWS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLIDENTICAL3CROWS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLIDENTICAL3CROWS": ... + +class CDLINNECK(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLINNECK", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLINNECK": ... + +class CDLINVERTEDHAMMER(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLINVERTEDHAMMER", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLINVERTEDHAMMER": ... + +class CDLKICKING(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLKICKING", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLKICKING": ... + +class CDLKICKINGBYLENGTH(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLKICKINGBYLENGTH", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLKICKINGBYLENGTH": ... + +class CDLLADDERBOTTOM(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLLADDERBOTTOM", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLLADDERBOTTOM": ... + +class CDLLONGLEGGEDDOJI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLLONGLEGGEDDOJI", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLLONGLEGGEDDOJI": ... + +class CDLLONGLINE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLLONGLINE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLLONGLINE": ... + +class CDLMARUBOZU(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLMARUBOZU", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLMARUBOZU": ... + +class CDLMATCHINGLOW(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLMATCHINGLOW", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLMATCHINGLOW": ... + +class CDLMATHOLD(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.5) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.5) -> Tuple["CDLMATHOLD", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLMATHOLD": ... + +class CDLMORNINGDOJISTAR(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> Tuple["CDLMORNINGDOJISTAR", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLMORNINGDOJISTAR": ... + +class CDLMORNINGSTAR(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], penetration: float = 0.3) -> Tuple["CDLMORNINGSTAR", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLMORNINGSTAR": ... + +class CDLONNECK(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLONNECK", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLONNECK": ... + +class CDLPIERCING(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLPIERCING", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLPIERCING": ... + +class CDLRICKSHAWMAN(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLRICKSHAWMAN", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLRICKSHAWMAN": ... + +class CDLRISEFALL3METHODS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLRISEFALL3METHODS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLRISEFALL3METHODS": ... + +class CDLSEPARATINGLINES(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLSEPARATINGLINES", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLSEPARATINGLINES": ... + +class CDLSHOOTINGSTAR(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLSHOOTINGSTAR", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLSHOOTINGSTAR": ... + +class CDLSHORTLINE(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLSHORTLINE", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLSHORTLINE": ... + +class CDLSPINNINGTOP(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLSPINNINGTOP", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLSPINNINGTOP": ... + +class CDLSTALLEDPATTERN(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLSTALLEDPATTERN", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLSTALLEDPATTERN": ... + +class CDLSTICKSANDWICH(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLSTICKSANDWICH", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLSTICKSANDWICH": ... + +class CDLTAKURI(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLTAKURI", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLTAKURI": ... + +class CDLTASUKIGAP(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLTASUKIGAP", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLTASUKIGAP": ... + +class CDLTHRUSTING(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLTHRUSTING", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLTHRUSTING": ... + +class CDLTRISTAR(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLTRISTAR", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLTRISTAR": ... + +class CDLUNIQUE3RIVER(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLUNIQUE3RIVER", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLUNIQUE3RIVER": ... + +class CDLUPSIDEGAP2CROWS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLUPSIDEGAP2CROWS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLUPSIDEGAP2CROWS": ... + +class CDLXSIDEGAP3METHODS(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["CDLXSIDEGAP3METHODS", NDArray[np.int32]]: ... + def update(self, open: float, high: float, low: float, close: float) -> int: ... + def peek(self, open: float, high: float, low: float, close: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "CDLXSIDEGAP3METHODS": ... + +class CEIL(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["CEIL", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CEIL": ... + +class CMF(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 20) -> Tuple["CMF", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float, volume: float) -> float: ... + def peek(self, high: float, low: float, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CMF": ... + +class CMO(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["CMO", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CMO": ... + +class CMOU(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["CMOU", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CMOU": ... + +class COPPOCK(Stream): + def __init__(self, real: NDArray[np.float64], wmaperiod: int = 10, roc1period: int = 11, roc2period: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], wmaperiod: int = 10, roc1period: int = 11, roc2period: int = 14) -> Tuple["COPPOCK", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "COPPOCK": ... + +class CORREL(Stream): + def __init__(self, real0: NDArray[np.float64], real1: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real0: NDArray[np.float64], real1: NDArray[np.float64], timeperiod: int = 30) -> Tuple["CORREL", NDArray[np.float64]]: ... + def update(self, real0: float, real1: float) -> float: ... + def peek(self, real0: float, real1: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CORREL": ... + +class COS(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["COS", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "COS": ... + +class COSH(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["COSH", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "COSH": ... + +class CUMSUM(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["CUMSUM", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CUMSUM": ... + +class CVI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 10, rocperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 10, rocperiod: int = 10) -> Tuple["CVI", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "CVI": ... + +class DEMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["DEMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "DEMA": ... + +class DIV(Stream): + def __init__(self, real0: NDArray[np.float64], real1: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real0: NDArray[np.float64], real1: NDArray[np.float64]) -> Tuple["DIV", NDArray[np.float64]]: ... + def update(self, real0: float, real1: float) -> float: ... + def peek(self, real0: float, real1: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "DIV": ... + +class DONCHIAN_Value(NamedTuple): + upperband: float + middleband: float + lowerband: float + +class DONCHIAN(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 20) -> Tuple["DONCHIAN", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float) -> DONCHIAN_Value: ... + def peek(self, high: float, low: float) -> DONCHIAN_Value: ... + @property + def value(self) -> DONCHIAN_Value: ... + def copy(self) -> "DONCHIAN": ... + +class DPO(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20) -> Tuple["DPO", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "DPO": ... + +class DX(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["DX", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "DX": ... + +class EFI(Stream): + def __init__(self, close: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 13) -> None: ... + @staticmethod + def open_and_fill(close: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 13) -> Tuple["EFI", NDArray[np.float64]]: ... + def update(self, close: float, volume: float) -> float: ... + def peek(self, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "EFI": ... + +class EMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["EMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "EMA": ... + +class ER(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 10) -> Tuple["ER", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ER": ... + +class ERI_Value(NamedTuple): + bullpower: float + bearpower: float + +class ERI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13) -> Tuple["ERI", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> ERI_Value: ... + def peek(self, high: float, low: float, close: float) -> ERI_Value: ... + @property + def value(self) -> ERI_Value: ... + def copy(self) -> "ERI": ... + +class EXP(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["EXP", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "EXP": ... + +class FLOOR(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["FLOOR", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "FLOOR": ... + +class FOSC(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 5) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 5) -> Tuple["FOSC", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "FOSC": ... + +class FRACTAL_Value(NamedTuple): + swinghigh: int + swinglow: int + +class FRACTAL(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], leftbars: int = 2, rightbars: int = 2) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], leftbars: int = 2, rightbars: int = 2) -> Tuple["FRACTAL", Tuple[NDArray[np.int32], NDArray[np.int32]]]: ... + def update(self, high: float, low: float) -> FRACTAL_Value: ... + def peek(self, high: float, low: float) -> FRACTAL_Value: ... + @property + def value(self) -> FRACTAL_Value: ... + def copy(self) -> "FRACTAL": ... + +class HA_Value(NamedTuple): + haopen: float + hahigh: float + halow: float + haclose: float + +class HA(Stream): + def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["HA", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, open: float, high: float, low: float, close: float) -> HA_Value: ... + def peek(self, open: float, high: float, low: float, close: float) -> HA_Value: ... + @property + def value(self) -> HA_Value: ... + def copy(self) -> "HA": ... + +class HMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20) -> Tuple["HMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "HMA": ... + +class HT_DCPERIOD(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_DCPERIOD", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "HT_DCPERIOD": ... + +class HT_DCPHASE(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_DCPHASE", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "HT_DCPHASE": ... + +class HT_PHASOR_Value(NamedTuple): + inphase: float + quadrature: float + +class HT_PHASOR(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_PHASOR", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> HT_PHASOR_Value: ... + def peek(self, real: float) -> HT_PHASOR_Value: ... + @property + def value(self) -> HT_PHASOR_Value: ... + def copy(self) -> "HT_PHASOR": ... + +class HT_SINE_Value(NamedTuple): + sine: float + leadsine: float + +class HT_SINE(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_SINE", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> HT_SINE_Value: ... + def peek(self, real: float) -> HT_SINE_Value: ... + @property + def value(self) -> HT_SINE_Value: ... + def copy(self) -> "HT_SINE": ... + +class HT_TRENDLINE(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_TRENDLINE", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "HT_TRENDLINE": ... + +class HT_TRENDMODE(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_TRENDMODE", NDArray[np.int32]]: ... + def update(self, real: float) -> int: ... + def peek(self, real: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "HT_TRENDMODE": ... + +class IMI(Stream): + def __init__(self, open: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["IMI", NDArray[np.float64]]: ... + def update(self, open: float, close: float) -> float: ... + def peek(self, open: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "IMI": ... + +class KAMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["KAMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "KAMA": ... + +class KC_Value(NamedTuple): + upperband: float + middleband: float + lowerband: float + +class KC(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20, atrperiod: int = 10, nbdev: float = 2.0) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20, atrperiod: int = 10, nbdev: float = 2.0) -> Tuple["KC", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> KC_Value: ... + def peek(self, high: float, low: float, close: float) -> KC_Value: ... + @property + def value(self) -> KC_Value: ... + def copy(self) -> "KC": ... + +class KDJ_Value(NamedTuple): + k: float + d: float + j: float + +class KDJ(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 9, slowk_period: int = 3, slowk_matype: int = 13, slowd_period: int = 3, slowd_matype: int = 13) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 9, slowk_period: int = 3, slowk_matype: int = 13, slowd_period: int = 3, slowd_matype: int = 13) -> Tuple["KDJ", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> KDJ_Value: ... + def peek(self, high: float, low: float, close: float) -> KDJ_Value: ... + @property + def value(self) -> KDJ_Value: ... + def copy(self) -> "KDJ": ... + +class LINEARREG(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["LINEARREG", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "LINEARREG": ... + +class LINEARREG_ANGLE(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["LINEARREG_ANGLE", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "LINEARREG_ANGLE": ... + +class LINEARREG_INTERCEPT(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["LINEARREG_INTERCEPT", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "LINEARREG_INTERCEPT": ... + +class LINEARREG_SLOPE(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["LINEARREG_SLOPE", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "LINEARREG_SLOPE": ... + +class LN(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["LN", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "LN": ... + +class LOG10(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["LOG10", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "LOG10": ... + +class MA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30, matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30, matype: int = 0) -> Tuple["MA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MA": ... + +class MACD_Value(NamedTuple): + macd: float + macdsignal: float + macdhist: float + +class MACD(Stream): + def __init__(self, real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, signalperiod: int = 9) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, signalperiod: int = 9) -> Tuple["MACD", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> MACD_Value: ... + def peek(self, real: float) -> MACD_Value: ... + @property + def value(self) -> MACD_Value: ... + def copy(self) -> "MACD": ... + +class MACDEXT_Value(NamedTuple): + macd: float + macdsignal: float + macdhist: float + +class MACDEXT(Stream): + def __init__(self, real: NDArray[np.float64], fastperiod: int = 12, fastmatype: int = 0, slowperiod: int = 26, slowmatype: int = 0, signalperiod: int = 9, signalmatype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], fastperiod: int = 12, fastmatype: int = 0, slowperiod: int = 26, slowmatype: int = 0, signalperiod: int = 9, signalmatype: int = 0) -> Tuple["MACDEXT", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> MACDEXT_Value: ... + def peek(self, real: float) -> MACDEXT_Value: ... + @property + def value(self) -> MACDEXT_Value: ... + def copy(self) -> "MACDEXT": ... + +class MACDFIX_Value(NamedTuple): + macd: float + macdsignal: float + macdhist: float + +class MACDFIX(Stream): + def __init__(self, real: NDArray[np.float64], signalperiod: int = 9) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], signalperiod: int = 9) -> Tuple["MACDFIX", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> MACDFIX_Value: ... + def peek(self, real: float) -> MACDFIX_Value: ... + @property + def value(self) -> MACDFIX_Value: ... + def copy(self) -> "MACDFIX": ... + +class MAMA_Value(NamedTuple): + mama: float + fama: float + +class MAMA(Stream): + def __init__(self, real: NDArray[np.float64], fastlimit: float = 0.5, slowlimit: float = 0.05) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], fastlimit: float = 0.5, slowlimit: float = 0.05) -> Tuple["MAMA", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> MAMA_Value: ... + def peek(self, real: float) -> MAMA_Value: ... + @property + def value(self) -> MAMA_Value: ... + def copy(self) -> "MAMA": ... + +class MARKETFI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], volume: NDArray[np.float64]) -> Tuple["MARKETFI", NDArray[np.float64]]: ... + def update(self, high: float, low: float, volume: float) -> float: ... + def peek(self, high: float, low: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MARKETFI": ... + +class MASSI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], fastperiod: int = 9, slowperiod: int = 25) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], fastperiod: int = 9, slowperiod: int = 25) -> Tuple["MASSI", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MASSI": ... + +class MAVP(Stream): + def __init__(self, real: NDArray[np.float64], periods: NDArray[np.float64], minperiod: int = 2, maxperiod: int = 30, matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], periods: NDArray[np.float64], minperiod: int = 2, maxperiod: int = 30, matype: int = 0) -> Tuple["MAVP", NDArray[np.float64]]: ... + def update(self, real: float, periods: float) -> float: ... + def peek(self, real: float, periods: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MAVP": ... + +class MAX(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MAX", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MAX": ... + +class MAXINDEX(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MAXINDEX", NDArray[np.int32]]: ... + def update(self, real: float) -> int: ... + def peek(self, real: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "MAXINDEX": ... + +class MEDPRICE(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64]) -> Tuple["MEDPRICE", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MEDPRICE": ... + +class MFI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 14) -> Tuple["MFI", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float, volume: float) -> float: ... + def peek(self, high: float, low: float, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MFI": ... + +class MIDPOINT(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["MIDPOINT", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MIDPOINT": ... + +class MIDPRICE(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> Tuple["MIDPRICE", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MIDPRICE": ... + +class MIN(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MIN", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MIN": ... + +class MININDEX(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MININDEX", NDArray[np.int32]]: ... + def update(self, real: float) -> int: ... + def peek(self, real: float) -> int: ... + @property + def value(self) -> int: ... + def copy(self) -> "MININDEX": ... + +class MINMAX_Value(NamedTuple): + min: float + max: float + +class MINMAX(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MINMAX", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> MINMAX_Value: ... + def peek(self, real: float) -> MINMAX_Value: ... + @property + def value(self) -> MINMAX_Value: ... + def copy(self) -> "MINMAX": ... + +class MINMAXINDEX_Value(NamedTuple): + minidx: int + maxidx: int + +class MINMAXINDEX(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MINMAXINDEX", Tuple[NDArray[np.int32], NDArray[np.int32]]]: ... + def update(self, real: float) -> MINMAXINDEX_Value: ... + def peek(self, real: float) -> MINMAXINDEX_Value: ... + @property + def value(self) -> MINMAXINDEX_Value: ... + def copy(self) -> "MINMAXINDEX": ... + +class MINUS_DI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["MINUS_DI", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MINUS_DI": ... + +class MINUS_DM(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> Tuple["MINUS_DM", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MINUS_DM": ... + +class MOM(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 10) -> Tuple["MOM", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MOM": ... + +class MULT(Stream): + def __init__(self, real0: NDArray[np.float64], real1: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real0: NDArray[np.float64], real1: NDArray[np.float64]) -> Tuple["MULT", NDArray[np.float64]]: ... + def update(self, real0: float, real1: float) -> float: ... + def peek(self, real0: float, real1: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "MULT": ... + +class NATR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["NATR", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "NATR": ... + +class NVI(Stream): + def __init__(self, close: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(close: NDArray[np.float64], volume: NDArray[np.float64]) -> Tuple["NVI", NDArray[np.float64]]: ... + def update(self, close: float, volume: float) -> float: ... + def peek(self, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "NVI": ... + +class OBV(Stream): + def __init__(self, real: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], volume: NDArray[np.float64]) -> Tuple["OBV", NDArray[np.float64]]: ... + def update(self, real: float, volume: float) -> float: ... + def peek(self, real: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "OBV": ... + +class PERCENTILE(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30, percentile: float = 50.0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30, percentile: float = 50.0) -> Tuple["PERCENTILE", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PERCENTILE": ... + +class PERCENTRANK(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 100) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 100) -> Tuple["PERCENTRANK", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PERCENTRANK": ... + +class PLUS_DI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["PLUS_DI", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PLUS_DI": ... + +class PLUS_DM(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> Tuple["PLUS_DM", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PLUS_DM": ... + +class PPO(Stream): + def __init__(self, real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, matype: int = 1) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, matype: int = 1) -> Tuple["PPO", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PPO": ... + +class PVI(Stream): + def __init__(self, close: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(close: NDArray[np.float64], volume: NDArray[np.float64]) -> Tuple["PVI", NDArray[np.float64]]: ... + def update(self, close: float, volume: float) -> float: ... + def peek(self, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PVI": ... + +class PVO(Stream): + def __init__(self, volume: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, matype: int = 1) -> None: ... + @staticmethod + def open_and_fill(volume: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, matype: int = 1) -> Tuple["PVO", NDArray[np.float64]]: ... + def update(self, volume: float) -> float: ... + def peek(self, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PVO": ... + +class PVT(Stream): + def __init__(self, close: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(close: NDArray[np.float64], volume: NDArray[np.float64]) -> Tuple["PVT", NDArray[np.float64]]: ... + def update(self, close: float, volume: float) -> float: ... + def peek(self, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "PVT": ... + +class QSTICK(Stream): + def __init__(self, open: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(open: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10) -> Tuple["QSTICK", NDArray[np.float64]]: ... + def update(self, open: float, close: float) -> float: ... + def peek(self, open: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "QSTICK": ... + +class RMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["RMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "RMA": ... + +class ROC(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 10) -> Tuple["ROC", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ROC": ... + +class ROCP(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 10) -> Tuple["ROCP", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ROCP": ... + +class ROCR(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 10) -> Tuple["ROCR", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ROCR": ... + +class ROCR100(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 10) -> Tuple["ROCR100", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ROCR100": ... + +class RSI(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["RSI", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "RSI": ... + +class RVI(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14, stddevperiod: int = 10) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14, stddevperiod: int = 10) -> Tuple["RVI", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "RVI": ... + +class RVOL(Stream): + def __init__(self, volume: NDArray[np.float64], timeperiod: int = 20) -> None: ... + @staticmethod + def open_and_fill(volume: NDArray[np.float64], timeperiod: int = 20) -> Tuple["RVOL", NDArray[np.float64]]: ... + def update(self, volume: float) -> float: ... + def peek(self, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "RVOL": ... + +class SAR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], acceleration: float = 0.02, maximum: float = 0.2) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], acceleration: float = 0.02, maximum: float = 0.2) -> Tuple["SAR", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SAR": ... + +class SAREXT(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], startvalue: float = 0.0, offsetonreverse: float = 0.0, accelerationinitlong: float = 0.02, accelerationlong: float = 0.02, accelerationmaxlong: float = 0.2, accelerationinitshort: float = 0.02, accelerationshort: float = 0.02, accelerationmaxshort: float = 0.2) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], startvalue: float = 0.0, offsetonreverse: float = 0.0, accelerationinitlong: float = 0.02, accelerationlong: float = 0.02, accelerationmaxlong: float = 0.2, accelerationinitshort: float = 0.02, accelerationshort: float = 0.02, accelerationmaxshort: float = 0.2) -> Tuple["SAREXT", NDArray[np.float64]]: ... + def update(self, high: float, low: float) -> float: ... + def peek(self, high: float, low: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SAREXT": ... + +class SIN(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["SIN", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SIN": ... + +class SINH(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["SINH", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SINH": ... + +class SMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["SMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SMA": ... + +class SMI_Value(NamedTuple): + smi: float + smisignal: float + +class SMI(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13, fastperiod: int = 2, slowperiod: int = 25, signalperiod: int = 9) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13, fastperiod: int = 2, slowperiod: int = 25, signalperiod: int = 9) -> Tuple["SMI", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> SMI_Value: ... + def peek(self, high: float, low: float, close: float) -> SMI_Value: ... + @property + def value(self) -> SMI_Value: ... + def copy(self) -> "SMI": ... + +class SQRT(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["SQRT", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SQRT": ... + +class STDDEV(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 5, nbdev: float = 1.0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 5, nbdev: float = 1.0) -> Tuple["STDDEV", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "STDDEV": ... + +class STOCH_Value(NamedTuple): + slowk: float + slowd: float + +class STOCH(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0) -> Tuple["STOCH", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> STOCH_Value: ... + def peek(self, high: float, low: float, close: float) -> STOCH_Value: ... + @property + def value(self) -> STOCH_Value: ... + def copy(self) -> "STOCH": ... + +class STOCHF_Value(NamedTuple): + fastk: float + fastd: float + +class STOCHF(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> Tuple["STOCHF", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> STOCHF_Value: ... + def peek(self, high: float, low: float, close: float) -> STOCHF_Value: ... + @property + def value(self) -> STOCHF_Value: ... + def copy(self) -> "STOCHF": ... + +class STOCHRSI_Value(NamedTuple): + fastk: float + fastd: float + +class STOCHRSI(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> Tuple["STOCHRSI", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, real: float) -> STOCHRSI_Value: ... + def peek(self, real: float) -> STOCHRSI_Value: ... + @property + def value(self) -> STOCHRSI_Value: ... + def copy(self) -> "STOCHRSI": ... + +class SUB(Stream): + def __init__(self, real0: NDArray[np.float64], real1: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real0: NDArray[np.float64], real1: NDArray[np.float64]) -> Tuple["SUB", NDArray[np.float64]]: ... + def update(self, real0: float, real1: float) -> float: ... + def peek(self, real0: float, real1: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SUB": ... + +class SUM(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["SUM", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "SUM": ... + +class SUPERTREND_Value(NamedTuple): + real: float + integer: int + +class SUPERTREND(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, multiplier: float = 3.0) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, multiplier: float = 3.0) -> Tuple["SUPERTREND", Tuple[NDArray[np.float64], NDArray[np.int32]]]: ... + def update(self, high: float, low: float, close: float) -> SUPERTREND_Value: ... + def peek(self, high: float, low: float, close: float) -> SUPERTREND_Value: ... + @property + def value(self) -> SUPERTREND_Value: ... + def copy(self) -> "SUPERTREND": ... + +class T3(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 5, vfactor: float = 0.7) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 5, vfactor: float = 0.7) -> Tuple["T3", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "T3": ... + +class TAN(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["TAN", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TAN": ... + +class TANH(Stream): + def __init__(self, real: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64]) -> Tuple["TANH", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TANH": ... + +class TEMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["TEMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TEMA": ... + +class TRANGE(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["TRANGE", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TRANGE": ... + +class TRIMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["TRIMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TRIMA": ... + +class TRIX(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["TRIX", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TRIX": ... + +class TSF(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14) -> Tuple["TSF", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TSF": ... + +class TSI(Stream): + def __init__(self, real: NDArray[np.float64], firstperiod: int = 25, secondperiod: int = 13) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], firstperiod: int = 25, secondperiod: int = 13) -> Tuple["TSI", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TSI": ... + +class TYPPRICE(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["TYPPRICE", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "TYPPRICE": ... + +class ULTOSC(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod1: int = 7, timeperiod2: int = 14, timeperiod3: int = 28) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod1: int = 7, timeperiod2: int = 14, timeperiod3: int = 28) -> Tuple["ULTOSC", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ULTOSC": ... + +class VAR(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 5, nbdev: float = 1.0) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 5, nbdev: float = 1.0) -> Tuple["VAR", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "VAR": ... + +class VHF(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 28) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 28) -> Tuple["VHF", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "VHF": ... + +class VORTEX_Value(NamedTuple): + plusvi: float + minusvi: float + +class VORTEX(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["VORTEX", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... + def update(self, high: float, low: float, close: float) -> VORTEX_Value: ... + def peek(self, high: float, low: float, close: float) -> VORTEX_Value: ... + @property + def value(self) -> VORTEX_Value: ... + def copy(self) -> "VORTEX": ... + +class VWAP(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], volume: NDArray[np.float64]) -> Tuple["VWAP", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float, volume: float) -> float: ... + def peek(self, high: float, low: float, close: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "VWAP": ... + +class VWMA(Stream): + def __init__(self, real: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], volume: NDArray[np.float64], timeperiod: int = 30) -> Tuple["VWMA", NDArray[np.float64]]: ... + def update(self, real: float, volume: float) -> float: ... + def peek(self, real: float, volume: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "VWMA": ... + +class WAD(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["WAD", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "WAD": ... + +class WCLPRICE(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["WCLPRICE", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "WCLPRICE": ... + +class WILLR(Stream): + def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... + @staticmethod + def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["WILLR", NDArray[np.float64]]: ... + def update(self, high: float, low: float, close: float) -> float: ... + def peek(self, high: float, low: float, close: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "WILLR": ... + +class WMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["WMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "WMA": ... + +class ZLEMA(Stream): + def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... + @staticmethod + def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["ZLEMA", NDArray[np.float64]]: ... + def update(self, real: float) -> float: ... + def peek(self, real: float) -> float: ... + @property + def value(self) -> float: ... + def copy(self) -> "ZLEMA": ... diff --git a/tests/test_pandas.py b/tests/test_pandas.py index 78f1a1236..1839a70f7 100644 --- a/tests/test_pandas.py +++ b/tests/test_pandas.py @@ -3,6 +3,7 @@ import pandas as pd import talib +from talib import stream def test_MOM(): @@ -49,3 +50,25 @@ def test_MAVP(): assert_array_equal(sma3.index, range(10, 20)) assert_array_equal(result.values[2::2], sma2.values[2::2]) assert_array_equal(result.values[3::2], sma3.values[3::2]) + + +def test_stream_MOM(): + values = pd.Series([90.0, 88.0, 89.0], index=[10, 20, 30]) + assert stream.MOM(values, timeperiod=1).value == 1 + assert stream.MOM(values, timeperiod=2).update(94.0) == 6 + + handle, filled = stream.MOM.open_and_fill(values, timeperiod=1) + assert isinstance(filled, pd.Series) + assert_array_equal(filled.values, talib.MOM(values, timeperiod=1).values) + assert_array_equal(filled.index, [10, 20, 30]) + assert handle.value == filled.iloc[-1] + + +def test_stream_MAVP(): + a = pd.Series([1, 5, 3, 4, 7, 3, 8, 1, 4, 6], index=range(10, 20), dtype=float) + b = pd.Series([2, 4, 2, 4, 2, 4, 2, 4, 2, 4], index=range(20, 30), dtype=float) + handle, filled = stream.MAVP.open_and_fill(a, b, minperiod=2, maxperiod=4) + assert isinstance(filled, pd.Series) + assert_array_equal(filled.values, talib.MAVP(a, b, minperiod=2, maxperiod=4).values) + assert_array_equal(filled.index, range(10, 20)) + assert handle.value == filled.iloc[-1] diff --git a/tests/test_polars.py b/tests/test_polars.py index f83e594d9..b281fa9bc 100644 --- a/tests/test_polars.py +++ b/tests/test_polars.py @@ -3,7 +3,7 @@ import polars as pl import talib -from talib import abstract +from talib import abstract, stream def test_MOM(): values = pl.Series([90.0,88.0,89.0]) @@ -86,3 +86,14 @@ def test_AVR(): low = df['low'] close = df['close'] atr = talib.ATR(high, low, close, timeperiod=14) + + +def test_stream_MOM(): + values = pl.Series([90.0, 88.0, 89.0]) + assert stream.MOM(values, timeperiod=1).value == 1 + assert stream.MOM(values, timeperiod=2).update(94.0) == 6 + + handle, filled = stream.MOM.open_and_fill(values, timeperiod=1) + assert isinstance(filled, pl.Series) + assert_array_equal(filled.to_numpy(), talib.MOM(values, timeperiod=1).to_numpy()) + assert handle.value == filled[-1] diff --git a/tests/test_stream.py b/tests/test_stream.py index afb99edcf..f029b92e1 100644 --- a/tests/test_stream.py +++ b/tests/test_stream.py @@ -1,66 +1,347 @@ +import ast +import copy +import os +import pickle +from functools import lru_cache + import numpy as np -import pandas as pd - -from talib import stream - - -def test_streaming(): - a = np.array([1,1,2,3,5,8,13], dtype=float) - r = stream.MOM(a, timeperiod=1) - assert r == 5 - r = stream.MOM(a, timeperiod=2) - assert r == 8 - r = stream.MOM(a, timeperiod=3) - assert r == 10 - r = stream.MOM(a, timeperiod=4) - assert r == 11 - r = stream.MOM(a, timeperiod=5) - assert r == 12 - r = stream.MOM(a, timeperiod=6) - assert r == 12 - r = stream.MOM(a, timeperiod=7) - assert np.isnan(r) - - -def test_streaming_pandas(): - a = pd.Series([1,1,2,3,5,8,13]) - r = stream.MOM(a, timeperiod=1) - assert r == 5 - r = stream.MOM(a, timeperiod=2) - assert r == 8 - r = stream.MOM(a, timeperiod=3) - assert r == 10 - r = stream.MOM(a, timeperiod=4) - assert r == 11 - r = stream.MOM(a, timeperiod=5) - assert r == 12 - r = stream.MOM(a, timeperiod=6) - assert r == 12 - r = stream.MOM(a, timeperiod=7) - assert np.isnan(r) - - -def test_CDL3BLACKCROWS(): - o = np.array([39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 40.32, 40.51, 38.09, 35.00]) - h = np.array([40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 41.69, 40.84, 38.12, 35.50]) - l = np.array([35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 39.26, 36.73, 33.37, 30.03]) - c = np.array([40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.46, 37.08, 33.37, 30.03]) - - r = stream.CDL3BLACKCROWS(o, h, l, c) - assert r == -100 - - -def test_CDL3BLACKCROWS_pandas(): - o = pd.Series([39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 39.00, 40.32, 40.51, 38.09, 35.00]) - h = pd.Series([40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 40.84, 41.69, 40.84, 38.12, 35.50]) - l = pd.Series([35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 35.80, 39.26, 36.73, 33.37, 30.03]) - c = pd.Series([40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.29, 40.46, 37.08, 33.37, 30.03]) - - r = stream.CDL3BLACKCROWS(o, h, l, c) - assert r == -100 - - -def test_MAXINDEX(): - a = np.array([1., 2, 3, 4, 5, 6, 7, 8, 7, 7, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 15]) - r = stream.MAXINDEX(a, 10) - assert r == 21 +import pytest + +import talib +from talib import abstract, stream + + +def _flagged(flag): + return {name for name in talib.__TA_FUNCTION_NAMES__ + if flag in abstract.Function(name).function_flags} + + +# The corpus is what the C library itself says streams, not the hand-maintained +# group dict: a function the flag knows and the dict does not would otherwise be +# silently absent from every parametrised test below. +FUNCTIONS = sorted(_flagged('Function has a streaming API')) +CANDLESTICKS = _flagged('Output is a candlestick') +NAN_BARS = 5 + +with open(os.path.join(os.path.dirname(talib.__file__), 'stream.pyi')) as _stub: + STUB = _stub.read() + + +@lru_cache(maxsize=None) +def _input_names(name): + return abstract.Function(name).info['input_names'] + + +def series(name, data): + """The arrays talib. and stream. take, in order.""" + args = [] + for role, price in _input_names(name).items(): + if isinstance(price, list): + args.extend(data[p] for p in price) + else: + args.append(data[price if price in data else role]) + return args + + +def lookback(name): + # Not cached: the unstable period moves it. + return abstract.Function(name).lookback + + +def outputs(result): + return result if isinstance(result, tuple) else (result,) + + +def paired(got, want): + """zip() stops at the shorter side; a handle short of an output would + otherwise compare nothing.""" + assert len(got) == len(want), (len(got), len(want)) + return zip(got, want) + + +def batch(name, data): + return [np.asarray(a) for a in outputs(getattr(talib, name)(*series(name, data)))] + + +def opened(name, args, warmup): + """A handle over the first `warmup` bars, or over as few more as its seeding + needs: lookback + 1 is a floor, not a promise.""" + for size in range(warmup, warmup + 4): + try: + return size, getattr(stream, name)(*[a[:size] for a in args]) + except talib.InsufficientHistory: + continue + pytest.fail('%s did not open on %d bars' % (name, warmup + 3)) + + +def carried(name, data, warmup): + """Open on a prefix, then update through the rest, against the batch series.""" + args = series(name, data) + expected = batch(name, data) + warmup, handle = opened(name, args, warmup) + for got, want in paired(outputs(handle.value), expected): + assert repr(got) == repr(want[warmup - 1].item()), name + updated = 0 + for bar in range(warmup, len(data['close'])): + produced = handle.update(*[a[bar] for a in args]) + for got, want in paired(outputs(produced), expected): + assert repr(got) == repr(want[bar].item()), (name, bar) + updated += 1 + assert updated == len(data['close']) - warmup + return handle + + +def identical(got, want): + """Bit-exact for arrays: NaN equals NaN, and -0.0 does not equal 0.0.""" + got, want = np.asarray(got).astype(float), np.asarray(want).astype(float) + if not np.array_equal(got, want, equal_nan=True): + return False + real = ~np.isnan(got) + return np.array_equal(np.signbit(got[real]), np.signbit(want[real])) + + +def parameters(doc): + """Names and defaults from the signature Cython embeds on the first line.""" + head = doc.split('\n')[0] + body = head[head.index('(') + 1:head.rindex(')')] + named = [] + for argument in body.split(','): + argument = argument.strip() + if argument and argument != 'self': + name, _, default = argument.partition('=') + named.append((name.split()[-1], default)) + return named + + +def varies(out, warmup): + out = np.asarray(out[warmup:], dtype=float) + return len(np.unique(out[~np.isnan(out)])) > 1 + + +@pytest.fixture(scope='session') +def datasets(ford_2012): + """The real prices, and the same prices mapped into [-1, 1] so that the + domain-limited transforms produce something other than NaN.""" + ford = {k: np.asarray(v, dtype=float) for k, v in ford_2012.items()} + prices = np.concatenate([ford[k] for k in ('open', 'high', 'low', 'close')]) + lo, hi = prices.min(), prices.max() + volume = ford['volume'] + scaled = {k: (v - lo) / (hi - lo) * 2 - 1 for k, v in ford.items() if k != 'volume'} + scaled['volume'] = (volume - volume.min()) / (volume.max() - volume.min()) * 0.9 + 0.1 + # And one with degenerate bars, which real prices never have: a bar with no + # range at all and a bar with no trades are the inputs that reach the + # zero-denominator guards. + flat = {k: v.copy() for k, v in ford.items()} + for k in ('open', 'high', 'low'): + flat[k][::7] = flat['close'][::7] + flat['volume'][::11] = 0.0 + for data in (ford, scaled, flat): + data['periods'] = np.linspace(2, 20, len(data['close'])) + return ford, scaled, flat + + +@pytest.fixture(scope='session') +def nan_prefixed(datasets): + """The real prices behind NAN_BARS bars of NaN -- what a shifted or resampled + column looks like. The Function API opens past those bars; so does a handle.""" + return {k: np.concatenate([np.full(NAN_BARS, np.nan), v]) + for k, v in datasets[0].items()} + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_matches_batch(name, datasets): + """Two warm-up prefixes: an open-side seeding bug hides at a single one.""" + for data in datasets: + for warmup in (lookback(name) + 1, len(data['close']) // 2): + carried(name, data, max(warmup, lookback(name) + 1)) + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_leading_nan_bars_are_not_history(name, nan_prefixed): + """They are not counted as warm-up, and an index output still comes back in + the caller's coordinates, exactly as the Function API reports it.""" + handle = carried(name, nan_prefixed, NAN_BARS + lookback(name) + 1) + bars = len(nan_prefixed['close']) - NAN_BARS - lookback(name) + assert handle.out_range == (NAN_BARS + lookback(name), bars) + + args = series(name, nan_prefixed) + filled = outputs(getattr(stream, name).open_and_fill(*args)[1]) + for got, want in paired(filled, batch(name, nan_prefixed)): + assert identical(got, want) + + if lookback(name): + with pytest.raises(talib.InsufficientHistory): + getattr(stream, name)(*[a[:NAN_BARS + lookback(name)] for a in args]) + + +def test_the_data_discriminates(datasets): + """A stream-equals-batch comparison proves nothing about an output whose + batch series never varies. Only candlesticks are flat here, and data rich + enough to fire every pattern is the C library's own gate.""" + flat, checked = set(), 0 + for name in FUNCTIONS: + warmup = lookback(name) + 1 + seen = [varies(out, warmup) for out in batch(name, datasets[0])] + for data in datasets[1:]: + seen = [was or varies(out, warmup) + for was, out in zip(seen, batch(name, data))] + checked += 1 + if not all(seen): + flat.add(name) + assert checked == len(FUNCTIONS) + assert flat <= CANDLESTICKS + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_open_and_fill_matches_batch(name, datasets): + data = datasets[0] + expected = batch(name, data) + handle, filled = getattr(stream, name).open_and_fill(*series(name, data)) + for got, want in paired(outputs(filled), expected): + assert got.dtype == want.dtype + assert identical(got, want) + for got, want in paired(outputs(handle.value), expected): + assert repr(got) == repr(want[-1].item()) + assert handle.out_range == (lookback(name), len(data['close']) - lookback(name)) + if len(expected) > 1: + assert handle.value._fields == tuple(abstract.Function(name).output_names) + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_peek_and_copy_commit_nothing(name, datasets): + data = datasets[0] + args = series(name, data) + handle, _ = getattr(stream, name).open_and_fill(*args) + fork = handle.copy() + value, span = repr(handle.value), handle.out_range + bar = [a[-2] for a in args] # a bar other than the one it just consumed + + provisional = repr(handle.peek(*bar)) + assert repr(handle.peek(*bar)) == provisional + assert (repr(handle.value), handle.out_range) == (value, span) + assert repr(handle.update(*bar)) == provisional + assert handle.out_range == (span.begidx, span.nbelement + 1) + assert (repr(fork.value), fork.out_range) == (value, span) + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_advance_counts_a_skipped_bar(name, datasets): + handle, _ = getattr(stream, name).open_and_fill(*series(name, datasets[0])) + value, span = repr(handle.value), handle.out_range + handle.advance() + assert handle.out_range == (span.begidx, span.nbelement + 1) + assert repr(handle.value) == value + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_the_open_boundary_is_sharp(name, datasets): + """Opening needs at least lookback + 1 bars, and more where the seeding does, + so what holds everywhere is that every shorter history is refused.""" + args = series(name, datasets[0]) + need = lookback(name) + 1 + for size in range(need + 3): + try: + getattr(stream, name)(*[a[:size] for a in args]) + except talib.InsufficientHistory: + continue + assert size >= need + return + pytest.fail('%s never opened' % name) + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_takes_the_arguments_the_function_takes(name): + """Including the bar arguments' names and order, which no value comparison + reaches: swapping high and low leaves MEDPRICE bit-identical.""" + handle, function = getattr(stream, name), getattr(talib, name) + assert parameters(handle.__doc__) == parameters(function.__doc__) + assert parameters(handle.open_and_fill.__doc__) == parameters(function.__doc__) + bars = parameters(handle.update.__doc__) + assert bars == parameters(handle.peek.__doc__) + assert bars == parameters(function.__doc__)[:len(bars)] + + +@pytest.mark.parametrize('name', FUNCTIONS) +def test_the_stub_matches_the_handle(name): + """talib/stream.pyi is generated from the same headers, but nothing in a + plain test run regenerates it, so compare it to what actually shipped.""" + declared = {node.name: node for node in ast.parse(STUB).body + if isinstance(node, ast.ClassDef)} + for method, signature in (('__init__', getattr(stream, name).__doc__), + ('update', getattr(stream, name).update.__doc__)): + stub = [argument.arg + for node in declared[name].body + if isinstance(node, ast.FunctionDef) and node.name == method + for argument in node.args.args if argument.arg != 'self'] + assert stub == [n for n, _ in parameters(signature)], (name, method) + + +def test_the_corpus_is_what_the_library_says_streams(): + """FUNCTIONS is derived from TA_FUNC_FLG_STREAM. Pin it against the other two + lists of the same thing, so a function added to one and not the others fails + here rather than quietly dropping out of the tests above.""" + assert FUNCTIONS + assert set(FUNCTIONS) == set(talib.__TA_FUNCTION_NAMES__) + assert set(FUNCTIONS) == set(talib.get_functions()) + assert all(isinstance(getattr(stream, name), type) for name in FUNCTIONS) + + +def test_multi_output_is_a_named_tuple(datasets): + handle = stream.MACD(datasets[0]['close']) + macd, macdsignal, macdhist = handle.value + assert (handle.value.macd, handle.value.macdsignal, handle.value.macdhist) \ + == (macd, macdsignal, macdhist) + + +def test_single_output_is_a_scalar(datasets): + assert isinstance(stream.SMA(datasets[0]['close']).value, float) + assert isinstance(stream.CDLDOJI(*series('CDLDOJI', datasets[0])).value, int) + + +def test_a_handle_takes_what_the_function_takes(datasets): + close = datasets[0]['close'] + for rejected in (list(close), close.astype(int), close.reshape(-1, 1)): + with pytest.raises((TypeError, Exception)): + stream.SMA(rejected) + + +def test_a_result_pickles(datasets): + import pandas as pd + import polars as pl + handle = stream.MACD(datasets[0]['close']) + assert pickle.loads(pickle.dumps(handle.value)) == handle.value + assert pickle.loads(pickle.dumps(handle.out_range)) == handle.out_range + with pytest.raises(Exception, match='Cannot mix polars and pandas'): + stream.MAVP.open_and_fill(pd.Series(datasets[0]['close']), + pl.Series(datasets[0]['periods'])) + + +def test_a_handle_does_not_pickle(datasets): + handle = stream.SMA(datasets[0]['close']) + with pytest.raises(TypeError): + pickle.dumps(handle) + assert copy.copy(handle).value == handle.value + assert copy.deepcopy(handle).value == handle.value + + +def test_update_rejects_a_non_finite_bar(datasets): + close = datasets[0]['close'] + handle = stream.SMA(close) + span = handle.out_range + for bar in (np.nan, np.inf, -np.inf): + with pytest.raises(Exception, match='Bad Parameter'): + handle.update(bar) + assert handle.value == talib.SMA(close)[-1] + assert handle.out_range == span + + +def test_insufficient_history_says_what_it_counted(datasets): + with pytest.raises(talib.InsufficientHistory, + match='29 bars of history, at least 30 needed'): + stream.SMA(datasets[0]['close'][:29], timeperiod=30) + + +def test_a_handle_takes_the_arguments_the_function_takes(datasets): + close = datasets[0]['close'] + assert stream.SMA(close, timeperiod=10).value == talib.SMA(close, timeperiod=10)[-1] + assert stream.SMA(close, 10).value == talib.SMA(close, 10)[-1] diff --git a/tests/test_stubs.py b/tests/test_stubs.py index 6c47e8d36..975a219ce 100644 --- a/tests/test_stubs.py +++ b/tests/test_stubs.py @@ -14,14 +14,15 @@ def _stub(name): # The stubs ship as package data beside py.typed, and nothing else in the build # reads them, so a broken one reaches every downstream type checker in silence. def test_stubs_parse(): - for name in ('_ta_lib.pyi', 'abstract.pyi'): + for name in ('_ta_lib.pyi', 'abstract.pyi', 'stream.pyi'): ast.parse(_stub(name), filename=name) def test_stubs_cover_every_function(): - stub = _stub('_ta_lib.pyi') - declared = {node.name for node in ast.parse(stub).body + declared = {node.name for node in ast.parse(_stub('_ta_lib.pyi')).body if isinstance(node, ast.FunctionDef)} + handles = {node.name for node in ast.parse(_stub('stream.pyi')).body + if isinstance(node, ast.ClassDef)} for name in talib.__TA_FUNCTION_NAMES__: assert name in declared, name - assert 'stream_%s' % name in declared, name + assert name in handles, name diff --git a/tools/generate_stream.py b/tools/generate_stream.py index 4688b94b9..d768655f8 100644 --- a/tools/generate_stream.py +++ b/tools/generate_stream.py @@ -4,11 +4,9 @@ from talib import abstract -# FIXME: initialize once, then shutdown at the end, rather than each call? -# FIXME: should we pass startIdx and endIdx into function? -# FIXME: don't return number of elements since it always equals allocation? +VERBS = ('OpenAndFill', 'Open', 'Update', 'Peek', 'Value', 'Clone', 'Close', + 'OutRange', 'Advance') -functions = [] if sys.platform == 'win32': include_dirs = [ r"c:\ta-lib\c\include", @@ -37,46 +35,30 @@ if not header_found: print('Error: ta-lib/ta_func.h not found', file=sys.stderr) sys.exit(1) + with open(ta_func_header) as f: - tmp = [] - for line in f: - if line.startswith('TA_LIB_API'): - line = line[10:] - line = line.strip() - if tmp or \ - line.startswith('TA_RetCode TA_') or \ - line.startswith('int TA_'): - line = re.sub(r'/\*[^\*]+\*/', '', line) # strip comments - tmp.append(line) - if not line: - s = ' '.join(tmp) - s = re.sub(r'\s+', ' ', s) - functions.append(s) - tmp = [] - -# strip "float" functions -functions = [s for s in functions if not s.startswith('TA_RetCode TA_S_')] - -# strip non-indicators -functions = [s for s in functions if not s.startswith('TA_RetCode TA_Set')] -functions = [s for s in functions if not s.startswith('TA_RetCode TA_Restore')] - -# strip TA-Lib C's own streaming API (ta-lib >= 0.8.1). Those declarations take -# an opaque TA__Stream handle, not the batch argument shape parsed below. -functions = [s for s in functions if '_Stream' not in s] - -# print headers -print("""\ -cimport numpy as np -from cython import boundscheck, wraparound -cimport _ta_lib as lib -from _ta_lib cimport TA_RetCode -# NOTE: _ta_check_success, NaN are defined in common.pxi + source = re.sub(r'/\*.*?\*/', '', f.read(), flags=re.S) + +# One entry per TA__ declaration; the argument lists never nest +# parentheses, so splitting on commas is enough. +declarations = {} +pattern = r'TA_LIB_API\s+TA_RetCode\s+TA_(\w+)_(%s)\s*\(([^;]*)\)\s*;' % '|'.join(VERBS) +for name, verb, args in re.findall(pattern, source): + args = [re.sub(r'\s+', ' ', a).strip() for a in args.split(',')] + declarations.setdefault(name, {})[verb] = args + +if not declarations: + print('Error: %s declares no streaming API; TA-Lib C 0.8.1 or later is required' + % ta_func_header, file=sys.stderr) + sys.exit(1) + +for name, decls in declarations.items(): + missing = [verb for verb in VERBS if verb not in decls] + if missing: + print('Error: TA_%s is missing %s' % (name, ', '.join(missing)), file=sys.stderr) + sys.exit(1) -np.import_array() # Initialize the NumPy C API -""") -# cleanup variable names to make them more pythonic def cleanup(name): if name.startswith('in'): return name[2:].lower() @@ -85,215 +67,422 @@ def cleanup(name): else: return name.lower() -# print functions -names = [] -for f in functions: - if 'Lookback' in f: # skip lookback functions - continue - - i = f.index('(') - name = f[:i].split()[1] - args = f[i:].split(',') - args = [re.sub(r'[\(\);]', '', s).strip() for s in args] - - shortname = name[3:] - names.append(shortname) - try: - func_info = abstract.Function(shortname).info - defaults, documentation = abstract._get_defaults_and_docs(func_info) - except: - print("cannot find defaults and docs for", shortname, file=sys.stderr) - defaults, documentation = {}, "" - - print('@wraparound(False) # turn off relative indexing from end of lists') - print('@boundscheck(False) # turn off bounds-checking for entire function') - print('def stream_%s(' % shortname, end=' ') - docs = [' %s(' % shortname] - i = 0 - for arg in args: - var = arg.split()[-1] - if var in ('startIdx', 'endIdx'): +def split_arg(arg): + """'const double inReal[]' -> ('const double', 'inReal', 0, True)""" + array = arg.endswith('[]') + if array: + arg = arg[:-2] + ctype, _, var = arg.rpartition(' ') + stars = len(var) - len(var.lstrip('*')) + return ctype.strip(), var[stars:], stars, array + + +def declare(name, decls): + yield ' ctypedef struct TA_%s_Stream:' % name + yield ' pass' + for verb in VERBS: + args = [] + for arg in decls[verb]: + ctype, var, stars, array = split_arg(arg) + args.append('%s%s %s' % (ctype, '*' * (stars + array), var)) + yield ' TA_RetCode TA_%s_%s(%s)' % (name, verb, ', '.join(args)) + + +def parse(name, decls, defaults, output_names): + open_args = decls['Open'] + history = open_args.index('int historyLen') + inputs, params, outputs = [], [], [] + for arg in open_args[1:history]: + ctype, var, stars, array = split_arg(arg) + assert (ctype, array) == ('const double', True), arg + inputs.append(cleanup(var)) + for arg in open_args[history + 1:]: + ctype, var, stars, array = split_arg(arg) + if var.startswith('out'): + spelled = (output_names[len(outputs)] if output_names + else cleanup(var)[len('out'):]) + outputs.append((ctype, 'out%s' % spelled)) continue + key = var[len('optIn'):] + key = key[0].lower() + key[1:] + if ctype == 'double': + default = defaults.get(key, '-4e37') # TA_REAL_DEFAULT + elif ctype == 'int': + default = defaults.get(key, '-2**31') # TA_INTEGER_DEFAULT + else: + assert ctype == 'TA_MAType', arg + # abstract lowercases the whole name, and a prefixed one (KDJ's + # slowk_matype) is not spelled 'matype'. + default = defaults.get(key.lower(), 11) # TA_MAType_DEFAULT + params.append(('double' if ctype == 'double' else 'int', + cleanup(var), default)) + assert output_names is None or len(outputs) == len(output_names), name + return {'name': name, 'inputs': inputs, 'params': params, 'outputs': outputs} + + +PREAMBLE = '''\ +cimport cython +cimport numpy as np +import numpy +from collections import namedtuple - elif 'out' in var: - break - - if i > 0: - print(',', end=' ') - i += 1 - - if var.endswith('[]'): - var = cleanup(var[:-2]) - assert arg.startswith('const double'), arg - print('np.ndarray %s not None' % var, end=' ') - docs.append(var) - docs.append(', ') - - elif var.startswith('opt'): - var = cleanup(var) - default_arg = arg.split()[-1][len('optIn'):] # chop off typedef and 'optIn' - default_arg = default_arg[0].lower() + default_arg[1:] # lowercase first letter - - if arg.startswith('double'): - if default_arg in defaults: - print('double %s=%s' % (var, defaults[default_arg]), end=' ') - else: - print('double %s=-4e37' % var, end=' ') # TA_REAL_DEFAULT - elif arg.startswith('int'): - if default_arg in defaults: - print('int %s=%s' % (var, defaults[default_arg]), end=' ') - else: - print('int %s=-2**31' % var, end=' ') # TA_INTEGER_DEFAULT - elif arg.startswith('TA_MAType'): - # abstract lowercases the whole name, and a prefixed one (KDJ's - # slowk_matype) is not spelled 'matype'. - print('int %s=%s' % (var, defaults.get(default_arg.lower(), 11)), end=' ') # TA_MAType_DEFAULT - else: - assert False, arg - if '[, ' not in docs: - docs[-1] = ('[, ') - docs.append('%s=?' % var) - docs.append(', ') +cimport _ta_lib as lib +from _ta_lib cimport TA_RetCode, TA_MAType, TA_BAD_PARAM +# NOTE: _ta_check_success and InsufficientHistory come from _common.pxi, +# check_array / make_*_array from _func.pxi, and __PANDAS_SERIES / +# __POLARS_SERIES from _abstract.pxi. +np.import_array() # Initialize the NumPy C API +''' + +ARRAYS = '''\ +cdef np.npy_intp check_length(tuple arrays) except -1: + cdef np.npy_intp length = (arrays[0]).shape[0] + for other in arrays[1:]: + if length != (other).shape[0]: + raise Exception("input array lengths are different") + return length + + +cdef int check_begidx(np.npy_intp length, tuple arrays) except -2: + """The first bar that is not NaN in any input, as the batch tier reads it.""" + cdef double* data[8] + cdef np.npy_intp i + cdef int k, count = len(arrays) + if count > 8: + raise Exception("too many input arrays") + for k in range(count): + data[k] = (arrays[k]).data + for i in range(length): + for k in range(count): + if data[k][i] != data[k][i]: + break + else: + return i + return length - 1 + + +''' + +HELPERS = '''\ +OutRange = namedtuple("OutRange", "begidx nbelement", module=__name__) + + +cdef np.ndarray _stream_input(object values): + """What the Function API accepts, through the same checks.""" + if isinstance(values, np.ndarray): + return check_array(values) + for series in (__PANDAS_SERIES, __POLARS_SERIES): + if series is not None and isinstance(values, series): + return check_array(values.to_numpy().astype(float)) + raise TypeError("input must be a numpy array or a pandas or polars Series, " + "not %s" % type(values).__name__) + + +cdef int _stream_history(np.npy_intp length, int begidx) except -1: + if begidx < 0: + raise InsufficientHistory("no history: the input array is empty") + return (length - begidx) + + +cdef _stream_open_failed(str function_name, TA_RetCode retCode, int historylen, int need): + if retCode == 17: + if need <= historylen: + need = historylen + 1 # a seeding that wants more than the lookback + raise InsufficientHistory( + "%s: %d bars of history, at least %d needed (a leading bar that is " + "NaN in any input is not history)" % (function_name, historylen, need)) + _ta_check_success(function_name, retCode) + + +cdef _stream_like(tuple sources, object result): + pandas = [s for s in sources + if __PANDAS_SERIES is not None and isinstance(s, __PANDAS_SERIES)] + polars = [s for s in sources + if __POLARS_SERIES is not None and isinstance(s, __POLARS_SERIES)] + if pandas and polars: + raise Exception("Cannot mix polars and pandas") + if pandas: + return __PANDAS_SERIES(result, index=pandas[0].index) + if polars: + return __POLARS_SERIES(result) + return result + + +cdef class Stream: + """Base class of every talib.stream handle. + + Carries what does not depend on the function: the opaque C handle, and the + offset of the first history bar the batch tier would have used.""" + cdef void* _handle + cdef int _begidx + cdef object __weakref__ + + def __cinit__(self): + self._handle = NULL + + cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): + return TA_BAD_PARAM + + cdef TA_RetCode _advance(self): + return TA_BAD_PARAM + + @property + def out_range(self): + cdef int outbegidx + cdef int outnbelement + cdef TA_RetCode retCode = self._out_range(&outbegidx, &outnbelement) + if retCode != 0: + _ta_check_success("%s.out_range" % type(self).__name__, retCode) + return OutRange(outbegidx + self._begidx, outnbelement) + + @cython.binding(False) + def advance(self): + cdef TA_RetCode retCode = self._advance() + if retCode != 0: + _ta_check_success("%s.advance" % type(self).__name__, retCode) + + def __copy__(self): + return self.copy() + + def __deepcopy__(self, memo): + return self.copy() + + def __reduce__(self): + raise TypeError( + "cannot pickle %s: a stream handle points into the TA-Lib C library, " + "and does not cross a process boundary" % type(self).__name__) +''' + + +def emit(func, docstring): + name, inputs = func['name'], func['inputs'] + params, outputs = func['params'], func['outputs'] + handle, cls = 'TA_%s_Stream' % name, '%s_Stream' % name + arguments = inputs + ['%s %s=%s' % p for p in params] + out_ptrs = ['&%s' % py for _, py in outputs] + # An index output counts from the first bar the stream opened on; the batch + # tier reports it in the caller's coordinates, so shift it back the same way. + shift = ' + self._begidx' if 'INDEX' in name else '' + value = (outputs[0][1] + shift if len(outputs) == 1 else '%s_Value(%s)' % ( + name, ', '.join(py + shift for _, py in outputs))) + live = '<%s*>self._handle' % handle + lookback_args = ', '.join(py for _, py, _ in params) + out = [] + + def call(verb, *args): + return 'TA_%s_%s(%s)' % (name, verb, ', '.join(args)) + + def emit_call(verb, *args): + out.append(' cdef TA_RetCode retCode = %s' % call(verb, *args)) + out.append(' if retCode != 0:') + out.append(' _ta_check_success("TA_%s_%s", retCode)' % (name, verb)) + + def emit_history(): + """Read the inputs as the batch tier does: leading bars that are NaN in + any input are not history, and the stream opens past them.""" + for py in inputs: + out.append(' cdef np.ndarray a_%s = _stream_input(%s)' % (py, py)) + out.append(' cdef tuple arrays = (%s,)' + % ', '.join('a_%s' % py for py in inputs)) + out.append(' cdef np.npy_intp length = check_length(arrays)') + out.append(' cdef int begidx = check_begidx(length, arrays)') + out.append(' cdef int historylen = _stream_history(length, begidx)') + + def opened(*tail): + return (['&handle'] + ['a_%s.data + begidx' % py for py in inputs] + + ['historylen'] + [py for _, py, _ in params] + list(tail)) + + if len(outputs) > 1: + out.append('%s_Value = namedtuple("%s_Value", "%s", module=__name__)\n' + % (name, name, ' '.join(py[3:] for _, py in outputs))) + out.append('cdef class %s(Stream):' % cls) + out.append(' """%s"""' % docstring) + out.append('') + out.append(' def __dealloc__(self):') + out.append(' if self._handle is not NULL:') + out.append(' %s' % call('Close', live)) + out.append(' self._handle = NULL') + out.append('') + out.append(' def __init__(self, %s):' % ', '.join(arguments)) + emit_history() + out.append(' cdef %s* handle = NULL' % handle) + out.extend(' cdef %s %s' % o for o in outputs) + out.append(' cdef TA_RetCode retCode = %s' % call('Open', *opened(*out_ptrs))) + out.append(' if retCode != 0:') + out.append(' _stream_open_failed("TA_%s_Open", retCode, historylen, ' + 'lib.TA_%s_Lookback(%s) + 1)' % (name, name, lookback_args)) + out.append(' if self._handle is not NULL:') + out.append(' %s' % call('Close', live)) + out.append(' self._handle = handle') + out.append(' self._begidx = begidx') + out.append('') + out.append(' @staticmethod') + out.append(' def open_and_fill(%s):' % ', '.join(arguments)) + emit_history() + out.append(' cdef int lookback = begidx + lib.TA_%s_Lookback(%s)' + % (name, lookback_args)) + out.extend(' cdef np.ndarray %s = make_%s_array(length, lookback)' % (py, ctype) + for ctype, py in outputs) + out.append(' cdef int outbegidx') + out.append(' cdef int outnbelement') + out.append(' cdef %s* handle = NULL' % handle) + out.append(' cdef TA_RetCode retCode = %s' % call('OpenAndFill', *opened( + '&outbegidx', '&outnbelement', + *['<%s*>%s.data + lookback' % o for o in outputs]))) + out.append(' if retCode != 0:') + out.append(' _stream_open_failed("TA_%s_OpenAndFill", retCode, historylen, ' + 'lookback - begidx + 1)' % name) + if shift: + out.append(' cdef np.npy_intp i') + for ctype, py in outputs: + out.append(' cdef %s* %s_data = <%s*>%s.data' % (ctype, py, ctype, py)) + out.append(' for i in range(lookback, length):') + out.append(' %s_data[i] += begidx' % py) + out.append(' cdef %s stream = %s.__new__(%s)' % (cls, cls, cls)) + out.append(' stream._handle = handle') + out.append(' stream._begidx = begidx') + filled = ['_stream_like((%s,), %s)' % (', '.join(inputs), py) for _, py in outputs] + out.append(' return stream, %s' % ( + filled[0] if len(outputs) == 1 + else '%s_Value(%s)' % (name, ', '.join(filled)))) + for verb in ('Update', 'Peek'): + out.append('') + out.append(' @cython.binding(False)') + out.append(' def %s(self, %s):' + % (verb.lower(), ', '.join('double %s' % py for py in inputs))) + out.extend(' cdef %s %s' % o for o in outputs) + emit_call(verb, *([live] + inputs + out_ptrs)) + out.append(' return %s' % value) + out.append('') + out.append(' @property') + out.append(' def value(self):') + out.extend(' cdef %s %s' % o for o in outputs) + emit_call('Value', *([live] + out_ptrs)) + out.append(' return %s' % value) + out.append('') + out.append(' cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement):') + out.append(' return %s' % call('OutRange', live, 'outbegidx', 'outnbelement')) + out.append('') + out.append(' cdef TA_RetCode _advance(self):') + out.append(' return %s' % call('Advance', live)) + out.append('') + out.append(' @cython.binding(False)') + out.append(' def copy(self):') + out.append(' cdef %s* clone = NULL' % handle) + out.append(' cdef TA_RetCode retCode = %s' % call('Clone', live, '&clone')) + out.append(' if retCode != 0:') + out.append(' _ta_check_success("TA_%s_Clone", retCode)' % name) + out.append(' cdef %s stream = %s.__new__(type(self))' % (cls, cls)) + out.append(' stream._handle = clone') + out.append(' stream._begidx = self._begidx') + out.append(' return stream') + return '\n'.join(out) + + +STUB = '''\ +from typing import NamedTuple, Tuple + +import numpy as np +from numpy.typing import NDArray + + +class OutRange(NamedTuple): + begidx: int + nbelement: int + + +class Stream: + @property + def out_range(self) -> OutRange: ... + def advance(self) -> None: ... +''' + + +def emit_stub(func, documented): + """The talib/stream.pyi entry, defaults spelled as the documentation does.""" + name, inputs, params, outputs = (func['name'], func['inputs'], + func['params'], func['outputs']) + args = ', '.join(['%s: NDArray[np.float64]' % py for py in inputs] + + ['%s: %s = %r' % (py, 'float' if ctype == 'double' else 'int', + documented[py]) for ctype, py, _ in params]) + scalars = ['float' if ctype == 'double' else 'int' for ctype, _ in outputs] + arrays = ['NDArray[np.float64]' if ctype == 'double' else 'NDArray[np.int32]' + for ctype, _ in outputs] + out = [] + if len(outputs) > 1: + out.append('class %s_Value(NamedTuple):' % name) + out.extend(' %s: %s' % (py[3:], t) for (_, py), t in zip(outputs, scalars)) + out.append('') + value, filled = '%s_Value' % name, 'Tuple[%s]' % ', '.join(arrays) + else: + value, filled = scalars[0], arrays[0] + bars = ', '.join('%s: float' % py for py in inputs) + out.append('class %s(Stream):' % name) + out.append(' def __init__(self, %s) -> None: ...' % args) + out.append(' @staticmethod') + out.append(' def open_and_fill(%s) -> Tuple["%s", %s]: ...' % (args, name, filled)) + out.append(' def update(self, %s) -> %s: ...' % (bars, value)) + out.append(' def peek(self, %s) -> %s: ...' % (bars, value)) + out.append(' @property') + out.append(' def value(self) -> %s: ...' % value) + out.append(' def copy(self) -> "%s": ...' % name) + return '\n'.join(out) + + +def docstring_for(func, documentation): + """The batch function's docstring, verbatim: same call, same defaults.""" + docs = [' %s(' % func['name']] + for py in func['inputs']: + docs.append(py) + docs.append(', ') + for _, py, _ in func['params']: + if '[, ' not in docs: + docs[-1] = '[, ' + docs.append('%s=?' % py) + docs.append(', ') docs[-1] = '])' if '[, ' in docs else ')' if documentation: - tmp_docs = [] - lower_case = False - documentation = documentation.split('\n')[2:] # discard abstract calling definition - for line in documentation: + lines = [] + for line in documentation.split('\n')[2:]: # discard the calling definition line = line.replace('Substraction', 'Subtraction') if 'prices' not in line and 'price' in line: line = line.replace('price', 'real') - if not line or line.isspace(): - tmp_docs.append('') - else: - tmp_docs.append(' %s' % line) # add an indent of 4 spaces + lines.append('' if not line or line.isspace() else ' %s' % line) docs.append('\n\n') - docs.append('\n'.join(tmp_docs)) + docs.append('\n'.join(lines)) docs.append('\n ') - print('):') - print(' """%s"""' % ''.join(docs)) - print(' cdef:') - print(' np.npy_intp length') - print(' TA_RetCode retCode') - for arg in args: - var = arg.split()[-1] - if 'out' in var: - break - if var.endswith('[]'): - var = cleanup(var[:-2]) - if 'double' in arg: - print(' double* %s_data' % var) - elif 'int' in arg: - print(' int* %s_data' % var) - else: - assert False, args - - for arg in args: - var = arg.split()[-1] - if 'out' not in var: - continue - if var.endswith('[]'): - var = cleanup(var[:-2]) - if 'double' in arg: - print(' double %s' % var) - elif 'int' in arg: - print(' int %s' % var) - else: - assert False, args - elif var.startswith('*'): - var = cleanup(var[1:]) - print(' int %s' % var) - else: - assert False, arg - - for arg in args: - var = arg.split()[-1] - if 'out' in var: - break - if var.endswith('[]'): - var = cleanup(var[:-2]) - if 'double' in arg: - cast = '' - else: - assert False, arg - print(' %s = check_array(%s)' % (var, var)) - print(' %s_data = %s%s.data' % (var, cast, var)) - - # check all input array lengths are the same - inputs = [] - for arg in args: - var = arg.split()[-1] - if 'out' in var: - break - if var.endswith('[]'): - var = cleanup(var[:-2]) - inputs.append(var) - - if len(inputs) == 1: - print(' length = %s.shape[0]' % inputs[0]) - else: - print(' length = check_length%s(%s)' % (len(inputs), ', '.join(inputs))) - - for arg in args: - var = arg.split()[-1] - - if 'out' not in var: - continue - - if var.endswith('[]'): - var = cleanup(var[:-2]) - if 'double' in arg: - print(' %s = NaN' % var) - elif 'int' in arg: - print(' %s = 0' % var) - else: - assert False, args - - print(' retCode = lib.%s(' % name, end=' ') - - for i, arg in enumerate(args): - if i > 0: - print(',', end=' ') - var = arg.split()[-1] + return ''.join(docs) - if var.endswith('[]'): - var = cleanup(var[:-2]) - if 'out' in var: - print('&%s' % var, end=' ') - else: - print('%s_data' % var, end=' ') - elif var.startswith('*'): - var = cleanup(var[1:]) - print('&%s' % var, end=' ') +stub = '--stub' in sys.argv - elif var in ('startIdx', 'endIdx'): - print('(length) - 1', end= ' ') - - else: - cleaned = cleanup(var) - print(cleaned, end=' ') - - print(')') - print(' _ta_check_success("%s", retCode)' % name) - print(' return ', end='') - i = 0 - for arg in args: - var = arg.split()[-1] - if var.endswith('[]'): - var = var[:-2] - elif var.startswith('*'): - var = var[1:] - if var.startswith('out'): - if var not in ("outNBElement", "outBegIdx"): - if i > 0: - print(',', end=' ') - i += 1 - print(cleanup(var), end=' ') - else: - assert re.match('.*(void|startIdx|endIdx|opt|in)/*', arg), arg - print('') - print('') +if not stub: + print(PREAMBLE) + print('cdef extern from "ta-lib/ta_func.h":') + for name in sorted(declarations): + print() + for line in declare(name, declarations[name]): + print(line) + print() + print(ARRAYS) + print(HELPERS) +else: + print(STUB) +for name in sorted(declarations): + try: + info = abstract.Function(name).info + defaults, documentation = abstract._get_defaults_and_docs(info) + except Exception: + print("cannot find defaults and docs for", name, file=sys.stderr) + info = {'output_names': None, 'parameters': {}} + defaults, documentation = {}, "" + func = parse(name, declarations[name], defaults, info['output_names']) + print() + if stub: + print(emit_stub(func, info['parameters'])) + else: + print(emit(func, docstring_for(func, documentation))) + print() From fe83195abf6143464dddff65153adcd26a0eceec Mon Sep 17 00:00:00 2001 From: mario4tier Date: Wed, 9 Sep 2026 18:10:48 -0400 Subject: [PATCH 03/12] fix(stream): regenerate _stream.pxi against current TA-Lib C SUPERTREND's streaming outputs are outSupertrend/outTrend in the C header. The committed _stream.pxi predates that rename and names them real/integer, so its namedtuple fields disagree with abstract's output_names and test_open_and_fill_matches_batch[SUPERTREND] fails on dev. _ta_lib.c regenerated with Cython 3.2.8, the version that produced the committed file. Claude-Session: https://claude.ai/code/session_01RQsaLFjtMXaVE4UHQKVaeu --- talib/_stream.pxi | 54 +-- talib/_ta_lib.c | 826 +++++++++++++++++++++++----------------------- talib/stream.pyi | 4 +- 3 files changed, 443 insertions(+), 441 deletions(-) diff --git a/talib/_stream.pxi b/talib/_stream.pxi index d96815336..a0de4b5b2 100644 --- a/talib/_stream.pxi +++ b/talib/_stream.pxi @@ -2163,11 +2163,11 @@ cdef extern from "ta-lib/ta_func.h": ctypedef struct TA_SUPERTREND_Stream: pass - TA_RetCode TA_SUPERTREND_OpenAndFill(TA_SUPERTREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, int* outBegIdx, int* outNBElement, double* outReal, int* outInteger) - TA_RetCode TA_SUPERTREND_Open(TA_SUPERTREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, double* outReal, int* outInteger) - TA_RetCode TA_SUPERTREND_Update(TA_SUPERTREND_Stream* stream, double inHigh, double inLow, double inClose, double* outReal, int* outInteger) - TA_RetCode TA_SUPERTREND_Peek(const TA_SUPERTREND_Stream* stream, double inHigh, double inLow, double inClose, double* outReal, int* outInteger) - TA_RetCode TA_SUPERTREND_Value(const TA_SUPERTREND_Stream* stream, double* outReal, int* outInteger) + TA_RetCode TA_SUPERTREND_OpenAndFill(TA_SUPERTREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, int* outBegIdx, int* outNBElement, double* outSupertrend, int* outTrend) + TA_RetCode TA_SUPERTREND_Open(TA_SUPERTREND_Stream** stream, const double* inHigh, const double* inLow, const double* inClose, int historyLen, int optInTimePeriod, double optInMultiplier, double* outSupertrend, int* outTrend) + TA_RetCode TA_SUPERTREND_Update(TA_SUPERTREND_Stream* stream, double inHigh, double inLow, double inClose, double* outSupertrend, int* outTrend) + TA_RetCode TA_SUPERTREND_Peek(const TA_SUPERTREND_Stream* stream, double inHigh, double inLow, double inClose, double* outSupertrend, int* outTrend) + TA_RetCode TA_SUPERTREND_Value(const TA_SUPERTREND_Stream* stream, double* outSupertrend, int* outTrend) TA_RetCode TA_SUPERTREND_Clone(const TA_SUPERTREND_Stream* stream, TA_SUPERTREND_Stream** clone) TA_RetCode TA_SUPERTREND_Close(TA_SUPERTREND_Stream* stream) TA_RetCode TA_SUPERTREND_OutRange(const TA_SUPERTREND_Stream* stream, int* outBegIdx, int* outNBElement) @@ -20388,7 +20388,7 @@ cdef class SUM_Stream(Stream): return stream -SUPERTREND_Value = namedtuple("SUPERTREND_Value", "real integer", module=__name__) +SUPERTREND_Value = namedtuple("SUPERTREND_Value", "supertrend trend", module=__name__) cdef class SUPERTREND_Stream(Stream): """ SUPERTREND(high, low, close[, timeperiod=?, multiplier=?]) @@ -20401,8 +20401,8 @@ cdef class SUPERTREND_Stream(Stream): timeperiod: 10 multiplier: 3.0 Outputs: - real - integer + supertrend + trend """ def __dealloc__(self): @@ -20419,9 +20419,9 @@ cdef class SUPERTREND_Stream(Stream): cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef TA_SUPERTREND_Stream* handle = NULL - cdef double outreal - cdef int outinteger - cdef TA_RetCode retCode = TA_SUPERTREND_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outreal, &outinteger) + cdef double outsupertrend + cdef int outtrend + cdef TA_RetCode retCode = TA_SUPERTREND_Open(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outsupertrend, &outtrend) if retCode != 0: _stream_open_failed("TA_SUPERTREND_Open", retCode, historylen, lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) + 1) if self._handle is not NULL: @@ -20439,45 +20439,45 @@ cdef class SUPERTREND_Stream(Stream): cdef int begidx = check_begidx(length, arrays) cdef int historylen = _stream_history(length, begidx) cdef int lookback = begidx + lib.TA_SUPERTREND_Lookback(timeperiod, multiplier) - cdef np.ndarray outreal = make_double_array(length, lookback) - cdef np.ndarray outinteger = make_int_array(length, lookback) + cdef np.ndarray outsupertrend = make_double_array(length, lookback) + cdef np.ndarray outtrend = make_int_array(length, lookback) cdef int outbegidx cdef int outnbelement cdef TA_SUPERTREND_Stream* handle = NULL - cdef TA_RetCode retCode = TA_SUPERTREND_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outbegidx, &outnbelement, outreal.data + lookback, outinteger.data + lookback) + cdef TA_RetCode retCode = TA_SUPERTREND_OpenAndFill(&handle, a_high.data + begidx, a_low.data + begidx, a_close.data + begidx, historylen, timeperiod, multiplier, &outbegidx, &outnbelement, outsupertrend.data + lookback, outtrend.data + lookback) if retCode != 0: _stream_open_failed("TA_SUPERTREND_OpenAndFill", retCode, historylen, lookback - begidx + 1) cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(SUPERTREND_Stream) stream._handle = handle stream._begidx = begidx - return stream, SUPERTREND_Value(_stream_like((high, low, close,), outreal), _stream_like((high, low, close,), outinteger)) + return stream, SUPERTREND_Value(_stream_like((high, low, close,), outsupertrend), _stream_like((high, low, close,), outtrend)) @cython.binding(False) def update(self, double high, double low, double close): - cdef double outreal - cdef int outinteger - cdef TA_RetCode retCode = TA_SUPERTREND_Update(self._handle, high, low, close, &outreal, &outinteger) + cdef double outsupertrend + cdef int outtrend + cdef TA_RetCode retCode = TA_SUPERTREND_Update(self._handle, high, low, close, &outsupertrend, &outtrend) if retCode != 0: _ta_check_success("TA_SUPERTREND_Update", retCode) - return SUPERTREND_Value(outreal, outinteger) + return SUPERTREND_Value(outsupertrend, outtrend) @cython.binding(False) def peek(self, double high, double low, double close): - cdef double outreal - cdef int outinteger - cdef TA_RetCode retCode = TA_SUPERTREND_Peek(self._handle, high, low, close, &outreal, &outinteger) + cdef double outsupertrend + cdef int outtrend + cdef TA_RetCode retCode = TA_SUPERTREND_Peek(self._handle, high, low, close, &outsupertrend, &outtrend) if retCode != 0: _ta_check_success("TA_SUPERTREND_Peek", retCode) - return SUPERTREND_Value(outreal, outinteger) + return SUPERTREND_Value(outsupertrend, outtrend) @property def value(self): - cdef double outreal - cdef int outinteger - cdef TA_RetCode retCode = TA_SUPERTREND_Value(self._handle, &outreal, &outinteger) + cdef double outsupertrend + cdef int outtrend + cdef TA_RetCode retCode = TA_SUPERTREND_Value(self._handle, &outsupertrend, &outtrend) if retCode != 0: _ta_check_success("TA_SUPERTREND_Value", retCode) - return SUPERTREND_Value(outreal, outinteger) + return SUPERTREND_Value(outsupertrend, outtrend) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_SUPERTREND_OutRange(self._handle, outbegidx, outnbelement) diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index 20127a106..2426f16de 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -14316,7 +14316,7 @@ namespace { __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; PyObject *__pyx_tuple[59]; PyObject *__pyx_codeobj_tab[453]; - PyObject *__pyx_string_tab[2870]; + PyObject *__pyx_string_tab[2872]; PyObject *__pyx_number_tab[35]; /* #### Code section: module_state_contents ### */ /* PyFrozenDict.module_state_decls */ @@ -14490,10 +14490,10 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[121] #define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[122] #define __pyx_kp_u_plusvi_minusvi __pyx_string_tab[123] -#define __pyx_kp_u_real_integer __pyx_string_tab[124] -#define __pyx_kp_u_sine_leadsine __pyx_string_tab[125] -#define __pyx_kp_u_slowk_slowd __pyx_string_tab[126] -#define __pyx_kp_u_smi_smisignal __pyx_string_tab[127] +#define __pyx_kp_u_sine_leadsine __pyx_string_tab[124] +#define __pyx_kp_u_slowk_slowd __pyx_string_tab[125] +#define __pyx_kp_u_smi_smisignal __pyx_string_tab[126] +#define __pyx_kp_u_supertrend_trend __pyx_string_tab[127] #define __pyx_kp_u_swinghigh_swinglow __pyx_string_tab[128] #define __pyx_kp_u_talib_collections __pyx_string_tab[129] #define __pyx_kp_u_talib_numpy __pyx_string_tab[130] @@ -16881,361 +16881,363 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_n_u_outslowk __pyx_string_tab[2512] #define __pyx_n_u_outsmi __pyx_string_tab[2513] #define __pyx_n_u_outsmisignal __pyx_string_tab[2514] -#define __pyx_n_u_outswinghigh __pyx_string_tab[2515] -#define __pyx_n_u_outswinglow __pyx_string_tab[2516] -#define __pyx_n_u_outupperband __pyx_string_tab[2517] -#define __pyx_n_u_pandas __pyx_string_tab[2518] -#define __pyx_n_u_param __pyx_string_tab[2519] -#define __pyx_n_u_param_name __pyx_string_tab[2520] -#define __pyx_n_u_parameters __pyx_string_tab[2521] -#define __pyx_n_u_params __pyx_string_tab[2522] -#define __pyx_n_u_penetration __pyx_string_tab[2523] -#define __pyx_n_u_percentile __pyx_string_tab[2524] -#define __pyx_n_u_period __pyx_string_tab[2525] -#define __pyx_n_u_periods __pyx_string_tab[2526] -#define __pyx_n_u_polars __pyx_string_tab[2527] -#define __pyx_n_u_pop __pyx_string_tab[2528] -#define __pyx_n_u_price __pyx_string_tab[2529] -#define __pyx_n_u_price0 __pyx_string_tab[2530] -#define __pyx_n_u_price1 __pyx_string_tab[2531] -#define __pyx_n_u_price_series __pyx_string_tab[2532] -#define __pyx_n_u_price_series_name_values __pyx_string_tab[2533] -#define __pyx_n_u_prices __pyx_string_tab[2534] -#define __pyx_n_u_property __pyx_string_tab[2535] -#define __pyx_n_u_rangetype __pyx_string_tab[2536] -#define __pyx_n_u_real __pyx_string_tab[2537] -#define __pyx_n_u_real0 __pyx_string_tab[2538] -#define __pyx_n_u_real1 __pyx_string_tab[2539] -#define __pyx_n_u_replace __pyx_string_tab[2540] -#define __pyx_n_u_results __pyx_string_tab[2541] -#define __pyx_n_u_ret __pyx_string_tab[2542] -#define __pyx_n_u_retCode __pyx_string_tab[2543] -#define __pyx_n_u_ret_code __pyx_string_tab[2544] -#define __pyx_n_u_rightbars __pyx_string_tab[2545] -#define __pyx_n_u_roc1period __pyx_string_tab[2546] -#define __pyx_n_u_roc2period __pyx_string_tab[2547] -#define __pyx_n_u_rocperiod __pyx_string_tab[2548] -#define __pyx_n_u_run __pyx_string_tab[2549] -#define __pyx_n_u_s __pyx_string_tab[2550] -#define __pyx_n_u_schema __pyx_string_tab[2551] -#define __pyx_n_u_secondperiod __pyx_string_tab[2552] -#define __pyx_n_u_self __pyx_string_tab[2553] -#define __pyx_n_u_series __pyx_string_tab[2554] -#define __pyx_n_u_set_function_args __pyx_string_tab[2555] -#define __pyx_n_u_set_input_arrays __pyx_string_tab[2556] -#define __pyx_n_u_set_input_names __pyx_string_tab[2557] -#define __pyx_n_u_set_parameters __pyx_string_tab[2558] -#define __pyx_n_u_setdefault __pyx_string_tab[2559] -#define __pyx_n_u_settingtype __pyx_string_tab[2560] -#define __pyx_n_u_signalmatype __pyx_string_tab[2561] -#define __pyx_n_u_signalperiod __pyx_string_tab[2562] -#define __pyx_n_u_skip_first __pyx_string_tab[2563] -#define __pyx_n_u_slowd_matype __pyx_string_tab[2564] -#define __pyx_n_u_slowd_period __pyx_string_tab[2565] -#define __pyx_n_u_slowk_matype __pyx_string_tab[2566] -#define __pyx_n_u_slowk_period __pyx_string_tab[2567] -#define __pyx_n_u_slowlimit __pyx_string_tab[2568] -#define __pyx_n_u_slowmatype __pyx_string_tab[2569] -#define __pyx_n_u_slowperiod __pyx_string_tab[2570] -#define __pyx_n_u_stacklevel __pyx_string_tab[2571] -#define __pyx_n_u_startvalue __pyx_string_tab[2572] -#define __pyx_n_u_staticmethod __pyx_string_tab[2573] -#define __pyx_n_u_stddevperiod __pyx_string_tab[2574] -#define __pyx_n_u_str2bytes __pyx_string_tab[2575] -#define __pyx_n_u_stream __pyx_string_tab[2576] -#define __pyx_n_u_sys __pyx_string_tab[2577] -#define __pyx_n_u_table __pyx_string_tab[2578] -#define __pyx_n_u_talib__ta_lib __pyx_string_tab[2579] -#define __pyx_n_u_threading __pyx_string_tab[2580] -#define __pyx_n_u_timeStamp __pyx_string_tab[2581] -#define __pyx_n_u_timeperiod __pyx_string_tab[2582] -#define __pyx_n_u_timeperiod1 __pyx_string_tab[2583] -#define __pyx_n_u_timeperiod2 __pyx_string_tab[2584] -#define __pyx_n_u_timeperiod3 __pyx_string_tab[2585] -#define __pyx_n_u_to_numpy __pyx_string_tab[2586] -#define __pyx_n_u_type_2 __pyx_string_tab[2587] -#define __pyx_n_u_type __pyx_string_tab[2588] -#define __pyx_n_u_unst_id __pyx_string_tab[2589] -#define __pyx_n_u_update __pyx_string_tab[2590] -#define __pyx_n_u_update_info __pyx_string_tab[2591] -#define __pyx_n_u_upper __pyx_string_tab[2592] -#define __pyx_n_u_value __pyx_string_tab[2593] -#define __pyx_n_u_values __pyx_string_tab[2594] -#define __pyx_n_u_version __pyx_string_tab[2595] -#define __pyx_n_u_vfactor __pyx_string_tab[2596] -#define __pyx_n_u_volume __pyx_string_tab[2597] -#define __pyx_n_u_warn __pyx_string_tab[2598] -#define __pyx_n_u_warnings __pyx_string_tab[2599] -#define __pyx_n_u_wmaperiod __pyx_string_tab[2600] -#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[2601] -#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[2602] -#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[2603] -#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[2604] -#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[2605] -#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[2606] -#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[2607] -#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[2608] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[2609] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[2610] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[2611] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[2612] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[2613] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[2614] -#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[2615] -#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[2616] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[2617] -#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[2618] -#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[2619] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[2620] -#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[2621] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[2622] -#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[2623] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[2624] -#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[2625] -#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[2626] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[2627] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[2628] -#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[2629] -#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[2630] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[2631] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[2632] -#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[2633] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[2634] -#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[2635] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[2636] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[2637] -#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[2638] -#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[2639] -#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[2640] -#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[2641] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[2642] -#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[2643] -#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[2644] -#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[2645] -#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[2646] -#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[2647] -#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2648] -#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[2649] -#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[2650] -#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[2651] -#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[2652] -#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[2653] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[2654] -#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[2655] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[2656] -#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[2657] -#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[2658] -#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[2659] -#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[2660] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2661] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2662] -#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[2663] -#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[2664] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[2665] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[2666] -#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[2667] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[2668] -#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2669] -#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2670] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[2671] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2672] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2673] -#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[2674] -#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[2675] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[2676] -#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2677] -#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2678] -#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2679] -#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2680] -#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[2681] -#define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[2682] -#define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[2683] -#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[2684] -#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[2685] -#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[2686] -#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[2687] -#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[2688] -#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2689] -#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2690] -#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2691] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[2692] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[2693] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[2694] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[2695] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[2696] -#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[2697] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[2698] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[2699] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[2700] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[2701] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[2702] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[2703] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[2704] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[2705] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[2706] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[2707] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[2708] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[2709] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[2710] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[2711] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[2712] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[2713] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[2714] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[2715] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[2716] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[2717] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[2718] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[2719] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[2720] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[2721] -#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[2722] -#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[2723] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[2724] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[2725] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[2726] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[2727] -#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[2728] -#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2729] -#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2730] -#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2731] -#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[2732] -#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[2733] -#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[2734] -#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[2735] -#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[2736] -#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2737] -#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2738] -#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2739] -#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[2740] -#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2741] -#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU __pyx_string_tab[2742] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3 __pyx_string_tab[2743] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2744] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2 __pyx_string_tab[2745] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6 __pyx_string_tab[2746] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_2_81_2 __pyx_string_tab[2747] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_31HA_7q __pyx_string_tab[2748] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_8 __pyx_string_tab[2749] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_31HA_9 __pyx_string_tab[2750] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8 __pyx_string_tab[2751] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_aq_31HA_1 __pyx_string_tab[2752] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh_2 __pyx_string_tab[2753] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_N_81_N_81 __pyx_string_tab[2754] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2 __pyx_string_tab[2755] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_H_31HA_6Q __pyx_string_tab[2756] -#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2757] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_Q_31HA_Q __pyx_string_tab[2758] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1L_31HA_7q __pyx_string_tab[2759] -#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2760] -#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[2761] -#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR __pyx_string_tab[2762] -#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_G5_1L __pyx_string_tab[2763] -#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_G5_9_lRS_3 __pyx_string_tab[2764] -#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_G5_8_Q_31H __pyx_string_tab[2765] -#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_G5_Ql __pyx_string_tab[2766] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_q_A_31H __pyx_string_tab[2767] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_8_a_31H __pyx_string_tab[2768] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_9 __pyx_string_tab[2769] -#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_G5_9_31HA_a_5Qax __pyx_string_tab[2770] -#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_G5_8_QR_31 __pyx_string_tab[2771] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_9_Q_31H __pyx_string_tab[2772] -#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_G5_AZq __pyx_string_tab[2773] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_8_31 __pyx_string_tab[2774] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_1_8 __pyx_string_tab[2775] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_AQ_3 __pyx_string_tab[2776] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3 __pyx_string_tab[2777] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_8 __pyx_string_tab[2778] -#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_G5_8_Q __pyx_string_tab[2779] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_A __pyx_string_tab[2780] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_3 __pyx_string_tab[2781] -#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_G5_q __pyx_string_tab[2782] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_8_31H __pyx_string_tab[2783] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_1A_31 __pyx_string_tab[2784] -#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2785] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2786] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_1A_31H __pyx_string_tab[2787] -#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_G5_9_PQ __pyx_string_tab[2788] -#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[2789] -#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2790] -#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_G5_8_q __pyx_string_tab[2791] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_q __pyx_string_tab[2792] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8 __pyx_string_tab[2793] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8_2 __pyx_string_tab[2794] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9 __pyx_string_tab[2795] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1_2 __pyx_string_tab[2796] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1 __pyx_string_tab[2797] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_A __pyx_string_tab[2798] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_2 __pyx_string_tab[2799] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q __pyx_string_tab[2800] -#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2801] -#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_G __pyx_string_tab[2802] -#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5 __pyx_string_tab[2803] -#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2804] -#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2805] -#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[2806] -#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[2807] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8 __pyx_string_tab[2808] -#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_G __pyx_string_tab[2809] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[2810] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[2811] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[2812] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2813] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2814] -#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[2815] -#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[2816] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3_2 __pyx_string_tab[2817] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2 __pyx_string_tab[2818] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5 __pyx_string_tab[2819] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq __pyx_string_tab[2820] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_7q __pyx_string_tab[2821] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_7q __pyx_string_tab[2822] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_a_6axq_9_1 __pyx_string_tab[2823] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_1 __pyx_string_tab[2824] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh __pyx_string_tab[2825] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_a_Q __pyx_string_tab[2826] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_1HA_a_Qa __pyx_string_tab[2827] -#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_G5_Q_31HA __pyx_string_tab[2828] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_8_3 __pyx_string_tab[2829] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_1_3 __pyx_string_tab[2830] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3 __pyx_string_tab[2831] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_q __pyx_string_tab[2832] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_9 __pyx_string_tab[2833] -#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_G5_Q_31H __pyx_string_tab[2834] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_15 __pyx_string_tab[2835] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_2 __pyx_string_tab[2836] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_13 __pyx_string_tab[2837] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5 __pyx_string_tab[2838] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3 __pyx_string_tab[2839] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5 __pyx_string_tab[2840] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6 __pyx_string_tab[2841] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10 __pyx_string_tab[2842] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14 __pyx_string_tab[2843] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4 __pyx_string_tab[2844] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9 __pyx_string_tab[2845] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7 __pyx_string_tab[2846] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8 __pyx_string_tab[2847] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11 __pyx_string_tab[2848] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12 __pyx_string_tab[2849] -#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2850] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2851] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a __pyx_string_tab[2852] -#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2853] -#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[2854] -#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2855] -#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2856] -#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2857] -#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[2858] -#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[2859] -#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[2860] -#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[2861] -#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2862] -#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2863] -#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2864] -#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[2865] -#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2866] -#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[2867] -#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2868] -#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[2869] +#define __pyx_n_u_outsupertrend __pyx_string_tab[2515] +#define __pyx_n_u_outswinghigh __pyx_string_tab[2516] +#define __pyx_n_u_outswinglow __pyx_string_tab[2517] +#define __pyx_n_u_outtrend __pyx_string_tab[2518] +#define __pyx_n_u_outupperband __pyx_string_tab[2519] +#define __pyx_n_u_pandas __pyx_string_tab[2520] +#define __pyx_n_u_param __pyx_string_tab[2521] +#define __pyx_n_u_param_name __pyx_string_tab[2522] +#define __pyx_n_u_parameters __pyx_string_tab[2523] +#define __pyx_n_u_params __pyx_string_tab[2524] +#define __pyx_n_u_penetration __pyx_string_tab[2525] +#define __pyx_n_u_percentile __pyx_string_tab[2526] +#define __pyx_n_u_period __pyx_string_tab[2527] +#define __pyx_n_u_periods __pyx_string_tab[2528] +#define __pyx_n_u_polars __pyx_string_tab[2529] +#define __pyx_n_u_pop __pyx_string_tab[2530] +#define __pyx_n_u_price __pyx_string_tab[2531] +#define __pyx_n_u_price0 __pyx_string_tab[2532] +#define __pyx_n_u_price1 __pyx_string_tab[2533] +#define __pyx_n_u_price_series __pyx_string_tab[2534] +#define __pyx_n_u_price_series_name_values __pyx_string_tab[2535] +#define __pyx_n_u_prices __pyx_string_tab[2536] +#define __pyx_n_u_property __pyx_string_tab[2537] +#define __pyx_n_u_rangetype __pyx_string_tab[2538] +#define __pyx_n_u_real __pyx_string_tab[2539] +#define __pyx_n_u_real0 __pyx_string_tab[2540] +#define __pyx_n_u_real1 __pyx_string_tab[2541] +#define __pyx_n_u_replace __pyx_string_tab[2542] +#define __pyx_n_u_results __pyx_string_tab[2543] +#define __pyx_n_u_ret __pyx_string_tab[2544] +#define __pyx_n_u_retCode __pyx_string_tab[2545] +#define __pyx_n_u_ret_code __pyx_string_tab[2546] +#define __pyx_n_u_rightbars __pyx_string_tab[2547] +#define __pyx_n_u_roc1period __pyx_string_tab[2548] +#define __pyx_n_u_roc2period __pyx_string_tab[2549] +#define __pyx_n_u_rocperiod __pyx_string_tab[2550] +#define __pyx_n_u_run __pyx_string_tab[2551] +#define __pyx_n_u_s __pyx_string_tab[2552] +#define __pyx_n_u_schema __pyx_string_tab[2553] +#define __pyx_n_u_secondperiod __pyx_string_tab[2554] +#define __pyx_n_u_self __pyx_string_tab[2555] +#define __pyx_n_u_series __pyx_string_tab[2556] +#define __pyx_n_u_set_function_args __pyx_string_tab[2557] +#define __pyx_n_u_set_input_arrays __pyx_string_tab[2558] +#define __pyx_n_u_set_input_names __pyx_string_tab[2559] +#define __pyx_n_u_set_parameters __pyx_string_tab[2560] +#define __pyx_n_u_setdefault __pyx_string_tab[2561] +#define __pyx_n_u_settingtype __pyx_string_tab[2562] +#define __pyx_n_u_signalmatype __pyx_string_tab[2563] +#define __pyx_n_u_signalperiod __pyx_string_tab[2564] +#define __pyx_n_u_skip_first __pyx_string_tab[2565] +#define __pyx_n_u_slowd_matype __pyx_string_tab[2566] +#define __pyx_n_u_slowd_period __pyx_string_tab[2567] +#define __pyx_n_u_slowk_matype __pyx_string_tab[2568] +#define __pyx_n_u_slowk_period __pyx_string_tab[2569] +#define __pyx_n_u_slowlimit __pyx_string_tab[2570] +#define __pyx_n_u_slowmatype __pyx_string_tab[2571] +#define __pyx_n_u_slowperiod __pyx_string_tab[2572] +#define __pyx_n_u_stacklevel __pyx_string_tab[2573] +#define __pyx_n_u_startvalue __pyx_string_tab[2574] +#define __pyx_n_u_staticmethod __pyx_string_tab[2575] +#define __pyx_n_u_stddevperiod __pyx_string_tab[2576] +#define __pyx_n_u_str2bytes __pyx_string_tab[2577] +#define __pyx_n_u_stream __pyx_string_tab[2578] +#define __pyx_n_u_sys __pyx_string_tab[2579] +#define __pyx_n_u_table __pyx_string_tab[2580] +#define __pyx_n_u_talib__ta_lib __pyx_string_tab[2581] +#define __pyx_n_u_threading __pyx_string_tab[2582] +#define __pyx_n_u_timeStamp __pyx_string_tab[2583] +#define __pyx_n_u_timeperiod __pyx_string_tab[2584] +#define __pyx_n_u_timeperiod1 __pyx_string_tab[2585] +#define __pyx_n_u_timeperiod2 __pyx_string_tab[2586] +#define __pyx_n_u_timeperiod3 __pyx_string_tab[2587] +#define __pyx_n_u_to_numpy __pyx_string_tab[2588] +#define __pyx_n_u_type_2 __pyx_string_tab[2589] +#define __pyx_n_u_type __pyx_string_tab[2590] +#define __pyx_n_u_unst_id __pyx_string_tab[2591] +#define __pyx_n_u_update __pyx_string_tab[2592] +#define __pyx_n_u_update_info __pyx_string_tab[2593] +#define __pyx_n_u_upper __pyx_string_tab[2594] +#define __pyx_n_u_value __pyx_string_tab[2595] +#define __pyx_n_u_values __pyx_string_tab[2596] +#define __pyx_n_u_version __pyx_string_tab[2597] +#define __pyx_n_u_vfactor __pyx_string_tab[2598] +#define __pyx_n_u_volume __pyx_string_tab[2599] +#define __pyx_n_u_warn __pyx_string_tab[2600] +#define __pyx_n_u_warnings __pyx_string_tab[2601] +#define __pyx_n_u_wmaperiod __pyx_string_tab[2602] +#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[2603] +#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[2604] +#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[2605] +#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[2606] +#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[2607] +#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[2608] +#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[2609] +#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[2610] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[2611] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[2612] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[2613] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[2614] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[2615] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[2616] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[2617] +#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[2618] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[2619] +#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[2620] +#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[2621] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[2622] +#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[2623] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[2624] +#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[2625] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[2626] +#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[2627] +#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[2628] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[2629] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[2630] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[2631] +#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[2632] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[2633] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[2634] +#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[2635] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[2636] +#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[2637] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[2638] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[2639] +#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[2640] +#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[2641] +#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[2642] +#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[2643] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[2644] +#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[2645] +#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[2646] +#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[2647] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[2648] +#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[2649] +#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2650] +#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[2651] +#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[2652] +#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[2653] +#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[2654] +#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[2655] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[2656] +#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[2657] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[2658] +#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[2659] +#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[2660] +#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[2661] +#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[2662] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2663] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2664] +#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[2665] +#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[2666] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[2667] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[2668] +#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[2669] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[2670] +#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2671] +#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2672] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[2673] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2674] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2675] +#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[2676] +#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[2677] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[2678] +#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2679] +#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2680] +#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2681] +#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2682] +#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[2683] +#define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[2684] +#define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[2685] +#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[2686] +#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[2687] +#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[2688] +#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[2689] +#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[2690] +#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2691] +#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2692] +#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2693] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[2694] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[2695] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[2696] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[2697] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[2698] +#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[2699] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[2700] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[2701] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[2702] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[2703] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[2704] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[2705] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[2706] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[2707] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[2708] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[2709] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[2710] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[2711] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[2712] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[2713] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[2714] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[2715] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[2716] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[2717] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[2718] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[2719] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[2720] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[2721] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[2722] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[2723] +#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[2724] +#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[2725] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[2726] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[2727] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[2728] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[2729] +#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[2730] +#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2731] +#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2732] +#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2733] +#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[2734] +#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[2735] +#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[2736] +#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[2737] +#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[2738] +#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2739] +#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2740] +#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2741] +#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[2742] +#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2743] +#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU __pyx_string_tab[2744] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3 __pyx_string_tab[2745] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2746] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2 __pyx_string_tab[2747] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6 __pyx_string_tab[2748] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_2_81_2 __pyx_string_tab[2749] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_31HA_7q __pyx_string_tab[2750] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_8 __pyx_string_tab[2751] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_31HA_9 __pyx_string_tab[2752] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8 __pyx_string_tab[2753] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_aq_31HA_1 __pyx_string_tab[2754] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh_2 __pyx_string_tab[2755] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_N_81_N_81 __pyx_string_tab[2756] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2 __pyx_string_tab[2757] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_H_31HA_6Q __pyx_string_tab[2758] +#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2759] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_Q_31HA_Q __pyx_string_tab[2760] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1L_31HA_7q __pyx_string_tab[2761] +#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2762] +#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[2763] +#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR __pyx_string_tab[2764] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_G5_1L __pyx_string_tab[2765] +#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_G5_9_lRS_3 __pyx_string_tab[2766] +#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_G5_8_Q_31H __pyx_string_tab[2767] +#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_G5_Ql __pyx_string_tab[2768] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_q_A_31H __pyx_string_tab[2769] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_8_a_31H __pyx_string_tab[2770] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_9 __pyx_string_tab[2771] +#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_G5_9_31HA_a_5Qax __pyx_string_tab[2772] +#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_G5_8_QR_31 __pyx_string_tab[2773] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_9_Q_31H __pyx_string_tab[2774] +#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_G5_AZq __pyx_string_tab[2775] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_8_31 __pyx_string_tab[2776] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_1_8 __pyx_string_tab[2777] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_AQ_3 __pyx_string_tab[2778] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3 __pyx_string_tab[2779] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_8 __pyx_string_tab[2780] +#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_G5_8_Q __pyx_string_tab[2781] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_A __pyx_string_tab[2782] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_3 __pyx_string_tab[2783] +#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_G5_q __pyx_string_tab[2784] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_8_31H __pyx_string_tab[2785] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_1A_31 __pyx_string_tab[2786] +#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2787] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2788] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_1A_31H __pyx_string_tab[2789] +#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_G5_9_PQ __pyx_string_tab[2790] +#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[2791] +#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2792] +#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_G5_8_q __pyx_string_tab[2793] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_q __pyx_string_tab[2794] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8 __pyx_string_tab[2795] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8_2 __pyx_string_tab[2796] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9 __pyx_string_tab[2797] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1_2 __pyx_string_tab[2798] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1 __pyx_string_tab[2799] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_A __pyx_string_tab[2800] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_2 __pyx_string_tab[2801] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q __pyx_string_tab[2802] +#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2803] +#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_G __pyx_string_tab[2804] +#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5 __pyx_string_tab[2805] +#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2806] +#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2807] +#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[2808] +#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[2809] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8 __pyx_string_tab[2810] +#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_G __pyx_string_tab[2811] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[2812] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[2813] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[2814] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2815] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2816] +#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[2817] +#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[2818] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3_2 __pyx_string_tab[2819] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2 __pyx_string_tab[2820] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5 __pyx_string_tab[2821] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq __pyx_string_tab[2822] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_7q __pyx_string_tab[2823] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_7q __pyx_string_tab[2824] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_a_6axq_9_1 __pyx_string_tab[2825] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_1 __pyx_string_tab[2826] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh __pyx_string_tab[2827] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_a_Q __pyx_string_tab[2828] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_1HA_a_Qa __pyx_string_tab[2829] +#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_G5_Q_31HA __pyx_string_tab[2830] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_8_3 __pyx_string_tab[2831] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_1_3 __pyx_string_tab[2832] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3 __pyx_string_tab[2833] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_q __pyx_string_tab[2834] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_9 __pyx_string_tab[2835] +#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_G5_Q_31H __pyx_string_tab[2836] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_15 __pyx_string_tab[2837] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_2 __pyx_string_tab[2838] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_13 __pyx_string_tab[2839] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5 __pyx_string_tab[2840] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3 __pyx_string_tab[2841] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5 __pyx_string_tab[2842] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6 __pyx_string_tab[2843] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10 __pyx_string_tab[2844] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14 __pyx_string_tab[2845] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4 __pyx_string_tab[2846] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9 __pyx_string_tab[2847] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7 __pyx_string_tab[2848] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8 __pyx_string_tab[2849] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11 __pyx_string_tab[2850] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12 __pyx_string_tab[2851] +#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2852] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2853] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a __pyx_string_tab[2854] +#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2855] +#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[2856] +#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2857] +#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2858] +#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2859] +#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[2860] +#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[2861] +#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[2862] +#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[2863] +#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2864] +#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2865] +#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2866] +#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[2867] +#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2868] +#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[2869] +#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2870] +#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[2871] #define __pyx_float_0_2 __pyx_number_tab[0] #define __pyx_float_0_3 __pyx_number_tab[1] #define __pyx_float_0_5 __pyx_number_tab[2] @@ -17710,7 +17712,7 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method); for (int i=0; i<59; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } for (int i=0; i<453; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<2870; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<2872; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } for (int i=0; i<35; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ @@ -18159,7 +18161,7 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method); for (int i=0; i<59; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } for (int i=0; i<453; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<2870; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<2872; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } for (int i=0; i<35; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ @@ -267032,8 +267034,8 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o int __pyx_v_begidx; int __pyx_v_historylen; TA_SUPERTREND_Stream *__pyx_v_handle; - double __pyx_v_outreal; - int __pyx_v_outinteger; + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; int __pyx_r; __Pyx_RefNannyDeclarations @@ -267086,7 +267088,7 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o __pyx_v_handle = NULL; - __pyx_v_retCode = TA_SUPERTREND_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outreal), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_SUPERTREND_Open((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); __pyx_t_4 = (__pyx_v_retCode != 0); @@ -267282,8 +267284,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO int __pyx_v_begidx; int __pyx_v_historylen; int __pyx_v_lookback; - PyArrayObject *__pyx_v_outreal = 0; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outsupertrend = 0; + PyArrayObject *__pyx_v_outtrend = 0; int __pyx_v_outbegidx; int __pyx_v_outnbelement; TA_SUPERTREND_Stream *__pyx_v_handle; @@ -267348,17 +267350,17 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_handle = NULL; - __pyx_v_retCode = TA_SUPERTREND_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SUPERTREND_OpenAndFill((&__pyx_v_handle), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_a_close)) + __pyx_v_begidx), __pyx_v_historylen, __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsupertrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback)); __pyx_t_4 = (__pyx_v_retCode != 0); @@ -267394,7 +267396,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20453, __pyx_L1_error) + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsupertrend)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20453, __pyx_L1_error) @@ -267408,7 +267410,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20453, __pyx_L1_error) + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outtrend)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_10 = 1; @@ -267472,8 +267474,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outsupertrend); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); @@ -267590,8 +267592,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; - int __pyx_v_outinteger; + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -267607,7 +267609,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("update", 0); - __pyx_v_retCode = TA_SUPERTREND_Update(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_SUPERTREND_Update(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); __pyx_t_1 = (__pyx_v_retCode != 0); @@ -267623,9 +267625,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20462, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20462, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS @@ -267785,8 +267787,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; - int __pyx_v_outinteger; + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -267802,7 +267804,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("peek", 0); - __pyx_v_retCode = TA_SUPERTREND_Peek(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_SUPERTREND_Peek(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); __pyx_t_1 = (__pyx_v_retCode != 0); @@ -267818,9 +267820,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20471, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20471, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS @@ -267891,8 +267893,8 @@ static PyObject *__pyx_pw_5talib_7_ta_lib_17SUPERTREND_Stream_5value_1__get__(Py } static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *__pyx_v_self) { - double __pyx_v_outreal; - int __pyx_v_outinteger; + double __pyx_v_outsupertrend; + int __pyx_v_outtrend; TA_RetCode __pyx_v_retCode; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -267908,7 +267910,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(str int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get__", 0); - __pyx_v_retCode = TA_SUPERTREND_Value(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outreal), (&__pyx_v_outinteger)); + __pyx_v_retCode = TA_SUPERTREND_Value(((TA_SUPERTREND_Stream *)__pyx_v_self->__pyx_base._handle), (&__pyx_v_outsupertrend), (&__pyx_v_outtrend)); __pyx_t_1 = (__pyx_v_retCode != 0); @@ -267924,9 +267926,9 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(str __pyx_t_3 = NULL; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20480, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20480, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = 1; #if CYTHON_UNPACK_METHODS @@ -326125,7 +326127,7 @@ static struct PyGetSetDef __pyx_getsets_5talib_7_ta_lib_SUPERTREND_Stream[] = { #if CYTHON_USE_TYPE_SPECS static PyType_Slot __pyx_type_5talib_7_ta_lib_SUPERTREND_Stream_slots[] = { {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5talib_7_ta_lib_SUPERTREND_Stream}, - {Py_tp_doc, (void *)PyDoc_STR("SUPERTREND_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer")}, + {Py_tp_doc, (void *)PyDoc_STR("SUPERTREND_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n supertrend\n trend")}, {Py_tp_methods, (void *)__pyx_methods_5talib_7_ta_lib_SUPERTREND_Stream}, {Py_tp_getset, (void *)__pyx_getsets_5talib_7_ta_lib_SUPERTREND_Stream}, {Py_tp_init, (void *)__pyx_tp_init_5talib_7_ta_lib_SUPERTREND_Stream}, @@ -326167,7 +326169,7 @@ static PyTypeObject __pyx_type_5talib_7_ta_lib_SUPERTREND_Stream = { 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - PyDoc_STR("SUPERTREND_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"), /*tp_doc*/ + PyDoc_STR("SUPERTREND_Stream(high, low, close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n supertrend\n trend"), /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ @@ -351360,7 +351362,7 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[55]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_SUPERTREND_Value, __pyx_mstate_global->__pyx_kp_u_real_integer}; + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_SUPERTREND_Value, __pyx_mstate_global->__pyx_kp_u_supertrend_trend}; __pyx_mstate_global->__pyx_tuple[56] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[56])) __PYX_ERR(3, 20391, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[56]); } @@ -351416,43 +351418,43 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{17},{16},{19},{105},{7},{6},{11},{2},{27},{18},{32},{33},{30},{64},{48},{35},{9},{5},{24},{9},{7},{13},{36},{39},{34},{14},{12},{13},{11},{13},{18},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{30},{2},{8},{15},{29},{14},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{11},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{12},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{14},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{13},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{8},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{15},{7},{14},{28},{13},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{8},{3},{10},{24},{9},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{13},{7},{14},{28},{13},{11},{25},{10},{4},{11},{25},{10},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{17},{13},{27},{12},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{9},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{12},{8},{15},{29},{14},{12},{26},{11},{3},{10},{24},{3},{10},{24},{10},{17},{31},{16},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{12},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{24},{32},{30},{35},{16},{20},{15},{18},{13},{20},{29},{18},{15},{18},{15},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{12},{11},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; - const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{261},{104},{277},{246},{247},{247},{247},{309},{248},{248},{249},{279},{250},{250},{373},{259},{261},{253},{254},{259},{253},{453},{276},{419},{396},{262},{353},{265},{262},{377},{248},{276},{323},{362},{287},{352},{288},{293},{441},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{404},{335},{335},{405},{336},{341},{503},{520},{441},{423},{361},{430},{463},{551},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{294},{296},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{638},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; + const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{17},{16},{19},{105},{7},{6},{11},{2},{27},{18},{32},{33},{30},{64},{48},{35},{9},{5},{24},{9},{7},{13},{36},{39},{34},{14},{13},{11},{13},{16},{18},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{30},{2},{8},{15},{29},{14},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{11},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{12},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{14},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{13},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{8},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{15},{7},{14},{28},{13},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{8},{3},{10},{24},{9},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{13},{7},{14},{28},{13},{11},{25},{10},{4},{11},{25},{10},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{17},{13},{27},{12},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{9},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{12},{8},{15},{29},{14},{12},{26},{11},{3},{10},{24},{3},{10},{24},{10},{17},{31},{16},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{12},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{24},{32},{30},{35},{16},{20},{15},{18},{13},{20},{29},{18},{15},{18},{15},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; + const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{261},{104},{277},{246},{247},{247},{247},{309},{248},{248},{249},{279},{250},{250},{373},{259},{261},{253},{254},{259},{253},{453},{276},{419},{396},{262},{353},{265},{262},{377},{248},{276},{323},{362},{287},{352},{288},{293},{441},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{404},{335},{335},{405},{336},{341},{503},{520},{441},{424},{361},{430},{463},{551},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{294},{296},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{638},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20738 bytes) */ -static const char cstring[] = "BZh91AY&SY\327\047\234\204\000 B\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`e\374\370\237y\366\347\000\r\000\000||\035\270\000\021\311\3160\035\343\316\346\035\"\000n\336\000\236N\036\215\003\256\315\\\007Z9G\026\332\330\373r\234\000\243_\\\225\350\230\267\247\244y\237aX\372\301[\356>/:\317\263\022\373c\342j\020\347\260o\263\305\337O\274\361\027\325}]\353\236\232\367\333\357n\000\000\000\t\365|\371\367\226\337M\315$\266*\217\255\361\317`\000\320\000\007w9\332\365\236wf\356\3352of\265E\200\372\r\365\351\276\336\263\332r\266*m\320)\275\275=\356\331\311P\367g\246\255\275uf\245V\347\320s\317]\331\267!T\243\233*>\273tX`\035\000\000\000\000\320\000\001\335B\265(\335\232+\357\274th:\037}\235\367\317\\\367\336\372:\2522\315\336\022H\202h\000&\0004\223\3226\200F\230\003L\206\223Di\242`\243jz\217L\247\205\000\361&G\251\241\241\232\217S\324\r\0012\004\004 \223J~\225?ji\246A#jy\032O\364\375RoT\223\020\320\000\320dh\364\214\2314\032hf\200\t\351\014\032\2335$I\223 \201\222OP\3645=\0203S\324\3044\003M\003 \000\000\000\000\0004\000i\240\t4\222\010B\004\032\0016\232\000\232h\321\244\233I\246\023A\223F&\232h\003CF\203@\036\241\246\200\r44\021(\202a&D\321L\246z\232\243z\0247\251\207\252xhi\210\320LL6M0\232&\251\275&\241\341\240\232m4M2i\033Q\372\n\202$\221\000\200\000j0\030I\246\201\244bja=5\032\232b\232\014\200i\352\007\250\321\241\352\036\246\201\240\000\003\370\200\000\222\036O\216|\257\326\237G\336\3748i\321\367\254~\355\343V\225\3733I\266\366Hl\"n\323mY\247[\346o\177\215\207L\246\351P\247(S\035\323\2158\216[\005B5\233\211\264o\272\360E\361\357]\341P\342\210\213\"\003 )P\032\202\203QD\020\221\004a\021\024\t\004O\324U\"%\025(\024\214AI\004\005\220\200\325\244 \026 \0022@)J\020\024\000D\204\032\322\000\226\302\005\266\004\220\306\020\220,~\207\273\362\316\353R\237Q?\257\364\037\234\211\362}\047\324]\364\320\303AR\302\333\347\321\375O\353p\tZ\2126\005k%(PK!\324hb\340T\336\305)fe\005j%J\020\010\243\314H0\366G\024H\047*J@\220\203G""\201\014\201@\223`fj\013~\231\035\342\321O\010\257\347\023K]\271\252\342\206\276\217\370\364\253\017\374\244\360\261\350\341\017\374R\304\016\362\203p\207\3327\\W\274hj:4Q\nR\224\203\270p2\022\032\323&4\200\034\214\t\246l\324\326I!4\034\357J\272\247\001a!\202\030\006\263p\232\002\230f/\025\202\3032\310(\006D\010\006\240\010@\210X\rt\034h;\017\340a\332\201)\374\374\326L\017\365\200?\017\207\236|. ]\362\225/\321\004=U\363\205\026\270\272\235\277\330,,\020\rhB\320K}n\177\355\255B\021_\217X\234k\372B\014\212\231\034\004\010\346\047O\367\026\346\0106\3074L\232@\336\301?\336[\213\240\026\016\366\267n\000\255G\337\003\202\246\203O\323\344\252&\254\020\314\303\323D\323\376\003\240\255K\232\240\n\034\220\214\250\"\177\342$AT\2712\302\344P 08\330\377PH\211=+b$\010\301\250\025\221@0\246X\375R\346\2319\026\007\275\340\225\300M\277\344T\030\251\315\200\312\035\021\320\264\375b\344gK\216\014\005R\265\004~\271E\3411\305\335\214\233\047\032\377\316J\233[F\003Q\276\t\211hc\02569Q\373\0056\031\205\005\2468\031\254\023\245\254\024\035l\237\364\002\3156\031\270\300\340\035@\263\014\0017\006`\177\326j\310Y\310\343&\262\013B\245&\251\202@\177\366\250|\330)\004\324%vZ\215+\203\377\276\247a}\022\301\003\2467\0325I\006mS\nx\375\221g\024\027\260\010\304\207\274\354d4\025\020\r\016\365\347\377\025\2005#\010Hx\034\"!\203\260[zw;\362\346\307U\t\201\264\31556p\n\230\006\230\237*~<4\020\352:\021\357\005\0302\036\337\375\024\026\225\344\242\0057\334&\245*\024@\030\033\335\034\337\377{fM\314\003\037\266\365\002\232\004\0066\225\222\230\212o\213\037\356\000\214\005\314\262\017|`0\023\002sd@b\336\177\200\022\334\253h4\nI\2600\317G\333*`Z\253=\310%\264d\025\334\303TPF\326BC/\335)-%-\2708\020\"\371Z\2510\375\351l\203D\330] @\213\203\026D\366\376\375Z}J/\2704}j\363\223\341\020!\205]\000\240R\332\241\313\370.7C1\374\047A\253\306\205R\n!\236UL\0041\341\374^\016\303\251k\242d\256\245A8\032\204\251\223:\026~\320\034\224\235\311\027\005\213\250\250?\343\007\311iD\t`\244\374\\r\267\020ID\367\264\376Bx)1K\215X""P`\036\347\374\244|\265\020UC\211\033\321O\371\202t\0026\214\023X(\212Ze\214:\177\362\206\002\016\201Lk[Y\360$`\300K\377d\200]\326+\226\030%;\262\207\023\370K\223A\300\244h\245U\013\246$\017p\007\304\030i\0320\031\244\311\235L?\363\222\rg\234\026T\010\245\347\363\000\345\003\306\234\204\270R\310\335*\177\22040\365\034\266\310.6aXY\277p\211f\344\0030\226\030\016)\240\021\232\227r\203s\001\006\232\0479&\214\221\302\310\356E&\032\274J!Xi\250\245\264\356\005\317\341\201\311V\300g\353)\210\2679\010\202H0\356(a\314X\326\007\002J\375\357\n\267\2627A\273@U\025.\350\004\326\326\027*\013:I\245\020\007[j]\316\324W\272\024.\303\271\225m\000E\250\307\313o\203\003\270\201M0\315\206W{pC\277\005:\003\221e\275\006\206\343\035\311J\254\371$.@O\200\212\2011\370\372\274\255\232\335\357\027~\221#PjZ\2225\035\3653\362e\301\306\376\035\336\r\315\250\314\3262o\335::! \331\351\311\0176\356\337?V\367F\365\01774\226\235\321\301_\266\377m\315\3036\034\022p\364\353\025 \340\273\346\350\311V\317,\256\341\267s\t\2037\025~n\023\227\233n\353eB\r)%\312\204w \016\320\023\260\027\255S\346+\371\025=\242\276(\007\255\020\365\000\372\225=(\236\205\017@\001\363\004=*\277@\201\363A\361U\365\202\037b\001\363\0019\000yU>h>\">\000\207\234\020\357Q\356\001\371\200\375@?4\035b\272\224\rH\237\005_z\047\270C\304G\304\027\304S\330)\354\001\366\010{\221=\200\2375_\030\027\234)\343 y\352\036J\007\222\t\344*\363\321\350\nyB\034\364\203\244\021\321\317\317\317\275\300\330\3716\244&\321)Uu^\341\021U|]J\021\225b:\361>\264&]\nO\272\203\310\251\337\250\312g\251am\325\206B\026\226\177\217\270\032\230\270n\341v\004\301l\017L\367-\212\t\354=\356\047\302@\340a\026\240\351M;\220b\346L\031\212\353Z:\367 \250)\230p\023\270D\034\035k\273\321\317\275\006\302\257\026\025\270\275T\374)\245\014\003\236{\335\220%\360n)\226\247r\366\031D\357\033NsW\224n\345\031\034X%\371\241\005\307\002\036\342~\0100\247\264\213\240\252M{\320\373\203\335\370\252\030\232\322\000\216\3424\343\023i\210dz\025\032\375\363@\353\245\rw\211\247~\373js\030I""\322> y\332F\220\233j\262]\303\0050\324\335\303\237q\305\032\233\306\357\224\237grA\322\240\303\337nu\242\310\356\0079\255\026\226\346\007\207p\203\250\246$\357C1\334\003\354Yr\235\217D\322\\\373\220\3434\264XZ\020\313\343\003\213\312\010\326\351uH3\357\203\334J\326\225\240\014\177`\267\0212\235;\212qS\274\242\367*n2g\251\267p\017a^\215\334\201\360[c1\334\r\200\307:\216\357\274\233M\265\035\345\033#v\047\203>\361L\007\235\360\372\246[\277}\250\016)\236Z\264\020;\3507\204\033\261j0\263\001\237\277\017W\013\307\315\337\213\272/\333-X\373\214\216\026p\335\3650}\242\2702\356\023*\025\n\236\355L\312\231\356\341\320\366\031\035\305iv\203\037\210\211\307\313\002eSr\371\247]6\365\312X\377\047T\333S\273\203\033\373\206w\327q\037TUHg\252}\300w.\343\273\247\243\311\315\2135|\375\033W\372+pk\330\346\361\355I\315\327Cz\035\374[\357\336\301\223\177z]\353u\366/o\370\346rT\223\036\316HL}\032\014[T\340\302\320\330\251\313\216&\305\275\246M\036:\224x\265\261\316\361o\347\352\361\330\001B\010p\203H#xE!-)\006\204\2254.\004\202\370\276\245x\0046\321\343Gm\003\355W\344.\350\007H\277!~B\363\240u\251\362G\344\207\343\007\336\256\260~H\373\2204\203\356\027\254C\"\003\210\003\211%\304\007\022\016\001\034\000o\210\336A\346A\276\205\270-\000u\244\271Dh\021\244Z@\343\016\220:R:Pt\245\324\203\235#\245\016\212\034\365:\003\321^\207G\260\237\200~\014\202\242F \253\010*\244\210\000\310\252\004$\201$\222\002!\370\\_\227\"J\247\350\207\350gM\275\024W\320,\215\275\032\303\177F\030\036\201A\372\035\232\311\350!\222\271\251\307\335\372\032\271\247\3202\326\002\237t}\036\201\375\t\205\347`\336\200\364\r\307\243\3504\305=(=\020F=\004b\314\340\375=\031=\026\274\372\013\256~\211\236\230\372/\021\023\265-\364}\330a\206_\237\347\317SC\372\323\251\340\221\363\233\252K\017\351\233\321\237\246>\232.\217\243\257=\007u\023z\335\006wN\353\243\014>r\016\214\37527\037+r\305\325\251\001\334\216\344x\036\013\324xb\247\273\226\343\253\364\367\356\361ppe\231\341\317\247\257\302}-;\2724i\245;\315\315\243\236\275}\0329+""\001U\025\022\246\2254\251\205!RJ\212(\"x\023\303\255\032V\201XZ\021\244WR\262\213\342\264Z\013A\324\032\026\272\320\027\321}u\243N\235+@i\r\2239\320\031\364\232:\315\315\007\001\247\255\036e\244\323\323\326\263\232\r\047\047gb\355U\375\260\022\\\353\223\220\343{\374\374\234\334G\024|\236x\033\177{\313\275\275\345\335\315\263\377\306\241h5\006\245\251j:\256Z\323k\313\313\243\236\037p&\006\014F2v#\026\364\350\276\267\020Ny\371\376\177\236\374\313\302\004\346G/\334\035\275\273\022\330\005\334\335\257OQQm&\235R\225:\345\264/\333\241\264\272\230B\206\037\237\003\017\372\216\022\342\324\240\374\225[\231\2513\025X\240\250\352\034\037g\322\2603\376\217:\211d\002\334\033d\035\352q\3673X:J\344\273\010\r\306<\0275<\252\014\366A\253\232P\361\243\257\354\031\004\224/}B\332J\247?\242\224[h\277\005hd+}\025?\2049 =\322\321\2633\376\201\344\324c?\310\357_(Q\320\\p\232\3479\201)\024L\356\237\341vD\246\337\2418\372H7\373\377\337\254\306\235\271)\377>\275w\330\312\354k\367\260\356\332\370\017~\3729\221\270{K\201\377\361\250\235\274E)\037\253\260\326\223\241\360>]_\337\177\364\327\005H\307\351{\332\364\003S,\237\263(F8}\271w\371#\036Opex\335R\311\370i\362\230\034\234p\233c\314\361K\024\263F\034G\366\221\001\250\037+\311\260\354\226W5N\215\267\303\342\231-*5\213\036\231\232,\240\366\256Vu\0272=j\035\003\263\265\325P\324\356c\357\273x\307\333\"\367|\336\210>q\370\342yQ\005\372\274A\351s\310I \235/;\243\345\205\250\252iO\332\230\212c\004V\344/\034\007\004O1\0175\310\313Cy\240$ml\240\303\215\014\327!\2210\262\223\215\371\270q\252n\010\233p\270dUq\264w\303g[lN$4kd\0163T\322\034S\004\341\3337\222\222\266\346\202\245\353\222j\206@\n\\\000\270.\013\221b\n\236\021\351b\260\231\002e\363\374\341\311\320i,(\034\210!\231\027\037K&\2019N\020\246\"B:c$\251\245L\234\010\246\212\204+\236\177\007m y\352\325\006\013\366\217j\305\201L\021\370+\3675\201\366J\250J\311d\262\254\220\007\360\367\004\222\261\254\rJ\220\221~\177\356T\\^\234\n\215\020\242\n\361\000aH\376;\177\016\213\325U`\006/8coo\27280\000%j\322E\233^\3539\026\207\354*\367\325\262\320\364\225\237\333|A\264vN\316#\211\025$""\t\033\021\030\211n>;h\317R_\017<\343\343\343J\302\013(\262m?&W\333\013b\224\013\210\tK\250]\213\302\261a\303\256Xt\016\270g\372/\003\373\377O\363v\374\347\3172\047\032\234\342t;C\365\375\035q\315\203\331\256\265\315pR\230\203\036\272y*\tLhX\304\214a\262%\210\362\002\277\306\260\241\251 \330\243\311B\200\263s\360L\005\304\222.Q\2475\005\333\322\246~&\305\017\255S\220\246\244\177\310\246\251\377\275D~\025\303\233\026\024\330\333\304{\273\334\032a\335\277\335\200\276\260Bx\260\t!`Z\367\313\351\034]\030@\022\276x\204\260\027\305\370\211w\007\272\206\001\255\215Tw\355\370\033\017\321eD^\366\035\346\007zV&\273u\0276X\272\225\264\220\274\227\024\026\313g\254\361\206=|\256<\264\374\372_\352\301}1\206\372\202B\373\317\321rH\234\276\001\236\314\303\231Q>9\033\024\002\211\361 @\232\030\014C<\250\357\\ND\004m\230\305\210.\234\203\030\201qc\305\001\210\304x\313{\367\025\252a\351\244\271g\024\220Pu\003n\216\271\205c\030e\233\337_\350\300\314\202\262>\266\036c7Y\360\265UUU_W\333|\336o\374\317)\352\007\3442z\207\220\267U\272\206\244\340>\301\025\n9)\273\307\322\220\221\206\\\217a\016\004\364.\203X\326\336}\374\036\245\000:@N\225zC3\223\220\301\263\260\267I\022\305\006(P\306\236\031\316\256\327l\347^\3345\rM\216\270\246\347=7\243\316ph\313ME6\316\0348\036i\257~\036\301\357\037\341\373\025UUUW\365=\217\247\317\340RB\246!\"\220\005\243\370\007?\361W\rv\013\226V\265e-q$\346H\256\312\252\252\252\252B\376\201\nC\364D\202\007\233\332\365\000$\365*\237\210\214L\220\202\255B\253\027\220\2031|\375\3656\233\016Z`ST\320\257\212\373\264l\212p.\267\354\360y`r\335\260L\363\314\357;:\233V\325\264MJ\3525)\324ux\275\367\353\023Y\257Y\220 \366\216\377Y\254\rh\001k\254\023Y\255z\241\255\357e\250SS\250\035A\341!\266\016\263X\353D]Jl\003\371x\003\304\326w\270]jl\031r\266\265j\025\033\000\324\252<\240\326)\255\r\305\314\030\206\304\031\245v\3206\325\324\033g\334\206\240\324\232\265\006\240u\007\177\255MI\312\212k\214\331\242l\203\255Mh\032\304\177_\227\371i\343C\237?46\327m\344\n\217 \332u\016\314\232""\320\326\350~\377,\242*\343\216A2&A2CA_\2243)\314\357\201[y\234\242d\014\210{\014\272\017W\007h\357\204\2630\261s\360\244\323\245M.\225\312\006\032\\\023?\321\230W,\344j\306\n\0243P\364Rq>pP\330\227\351\244\346+*)\026\350\223\221\216\204\364\347\353W\372\375h\023\336\005\200}\250@\367\323\2775\315\047;\"\033\005\r\211\370`(e\355\200H0!$\211@L\302\240\306F\211\231@\237\t\377W\371O\032X\"sQ\016a\373\035\357$\304\361\204\361\237+\243\247I\261\r\210\3048\244\207{\023\237\r\244\220\232\0134fnq\266\260\376\034\242ZXn\217<\3462+\231\220\256\005\332\273qI\2632\034no\311\273\005\001A\212I\242\034\353h\205\332\033\033\232\233\010o\261\267\344\357\255\226\302\356^\\\231dUe\255\026\314%\204\264\321\231b\254,$\341\234!K\355G\352\251)\315U\362\024\362#\t!\002@\222\202\036CE\204daK\357(k\337\353|\376\201\"\032\217\355\t\352\361\222I$\222I$\222O\235\311\341\354\255\023\2702\t\246\311\203%\036\337\312%\275Bc\2750x\321\314\023\351\004\310Hs\014\204\323L\271\242E\n[\267\027\364\033\237\347\376F\277\3459\337\273~\034\017""\233\273Z\032\315bwlzO\305\367f\254\245\203}4\nk;\220\201\010\302P&\272RF\022R\367\024\223\t\203\267\220I\251K)\305\322\237\006\364\321!\354\330k\212c\014\312c\014\364\323\030fS\030fS\030g\344S\030f\324\306\031\373\264\306\031\370\251\2143\350\2460\315\251\2143\337\2460\317\212\230\3038\2460\317\216\231\337a\255Y.\250\260\272\2460\317\206\230\3036\2460\314\2460\316\372c\014\336\230\3036\2460\317\313\246ma\256\373%\325\026\027\212e\260\316\373%\325\026\027\212c\014\336\230\303:\323\030gJua\236\024\331\206Z,/\342\2460\316\352c\014\356\2460\317\nc\014\374\252c\014\360\2460\316\324\306\031\224\306\031\335La\235\324\306\031\341La\236\024\306\031\224\306\031\3051\206v\2460\317\236\230\3038\2460\317\0251\206xS\030f\364\306\031\326\230\303:S\030fS\030gZc\014\312yd>i\330L\220L7\246\035\332/1\212\300\007\034\363)\211O\210\224\215\244\212\252\252\242\372\364\334\205\201\235\3362\322\036M\340C3E\3070\270\346\027\034\302\343\230\\s\013\216aq\314.9\205\316\3046!\346!\341\337\017\017\313\246<\260\327\253IuNH[\014\346\230\3035L\254\327T\267n\205\262I$\222V[+%\302rEqD\322\047\026_\256\226\322\332[Kim-\245\264\266\226\335\020\361\364\t\3377\322t\007\214\020\317\212\0052\013\204\035\255\005k!\3302\2232)\222\252)\222\252)\314\313\214\314\270\314\313\\K\227\352\352}?OX\020%=\337\244\372C\350\371\217\230\327\370\030O\177\210w\010\036n\360$XFD\203Bw\224\022\022R\367\226\t(\243\214\362rtt\211q\300^%\271gX\227\002aSP\233\310X\036\361\355\355B\034\357\220\373[\323b\035;\020hN>]*\252\252\252\256\020\356\003\344\220`Jl\212(\242\212):\256S`Kb\023\031\321\014q3}\264!\326\2460E3@P\022\014\200@\312A\2209\372;t\317\001E\024QEUJ\251U*\002I$\222I$\222I$\222I$\223np\273sq\244\362\302\244\225\370\265\263~\225RI$\222I$\231\335\231\237Ffm\231\231\231\324\362\220\351$6@\320C\314\020\340\206\341\rF\306\320\232\265\211\242\341/\314H&\033D\274\022\3011\023^x\266\220\357\207\217{\273\304\2030\207=\007\022\034H88\321\255\032\321\255\036\032?/k\203\263F\337\026\210t!v \310td\350QN\006\223\271\326\253QM\020Sk\324P)\226\352\200\344\020\270\004\031b\200\0209\002\262O\037\204<}i\251\340\371\025UUUQ\266,X\261b\305\212\t\305\354\347\213<\017\022m\335\327\222\367\321u\303\323\246rt0\363Y\tT&\203\255VEL<\326BU\t\240\353U\221S\0175\220\225B3h:\325dT\303\315d%P\232\016\265Y\0250\363Y\tT&\203\255VEL<\326BU\003\233\301\326\252\342\246\036k!*\203A\354\324\310pe\366K\340\005\334\032\215]\277-\032-\244\310~0\336\355\005\323\2520H\306\020\211J\032\251I\030J\035)f\265[\330\017\016\242}E\272m\234KZ\331\224\265\255UV\333m\266\333m\266\374\023\332a\351\364\323\337!\253\r{\3241\206u\270\374g\342\350\372WAq\306\265\255k_\254\313\215kZ\225\257\237\340\373\310\020\047\037by\253mM\032\0309\267.\301\2526\210w\025G\047\007\323\373\034\242e>d@y\217s\336\367\246\277\353L&\260\373\0217\0255\247q \30222\024\257pX\220\220\204\245\326\026\n;\255\316&\220NN\241\"\035\242\370\211\001=bXJ\006\361(J\025\250 \366\211\004\274L\002qXV\346\005\360V\t\002)\002@\220\"\214\014\300\314\014\300\334\365a\023\031\034K\345\027\226\360\222\025\356b\375\333\303|\235\303\371\005y\234\341\010\260\220\201$\205#\235,0\220\244\346J\366\375\377c\352UUUU_R\222O\303\010_\240\202\037O\271~W\356\237V\351\357\212\252\252\252\213!\320\222$6?\222\020\373v\035z\323\241 \211\003\202\035\002\034\204\302\037\005is+\333xs\337La<\026\245aN\363\225\272\260\213e\025\204\r\025\205#]\305\205\341\356[wnu\205\314\256\0272\270\\\312\341s+\205\314\256\0272\256\016e{\177\263\227\370\355\242\033\007\253C""\243@v\200\017\235\321\356\236\007Z\247`v\204\t\031$e(v\ti\010HJN\326\304+\267\210\372\047#\355S\250(No\304\3753\254\021\320&3\342\t\205K\204\210`\023VQL\202AB\300\224\230r\032\304\305\250H\326A \233\002b\270J\004\323\230M\201)\014\231\260\t^\\\272R\275T`\207\343\323\t\t\t\t\t\"\250\261|\204!\246H,X\261b\305\213\025Fm\211\216nl\341\004\202m\t\254LBn\ty|$$$$UJ\251U*\245Z\353\254\026\020\004\222I$\222I$\222I%kZ\334%\302d\305LD\332\022\241\350\tj\224%\262\212x\202`B\303r\036\256\332E\024QE\024_1\016\207\233o\002\033\\\330\206\376\264\254X\261b\305\213\026,v\362\035<6\233\273\363\343\272\274\2756\\uN\201\016\262\355\301\006\007\005\025UUU\007b\371or\261\275\341\031*us56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\2248s56A\020Jp\360\214\224>6\\uM\255\343\211\216\266\342\352\356\361\262\343\252|s\347\373\"\317\036O\233\355\332>o\247\375>\217-\256\\\007\207\207\203\355\023\300_a\347\023\243\334\257p\257\234|\030,\010\224/\203Dd\t\n\003\300\250B\025\341\366\352\024\016u=\306\323\264l\237\206\010\006n\2221\200\310\2222\212\351\032\311\022J\006\3053\274\023\347\345N_\246\210&\240\362i\022\224\271/\252\272t\304\273Ui\373\274\310/$-UUU_\234!\374\202\035B\032\010}\262\220\213\261\006\025\"\221H\244R)\024\213\350\363\311\005d\262\221\304K\365\022\343\266\204\027\020\213\254\000\341\005\321\003\2319\027Q\036\227\234\023tH\t\300$\001:D\241(O\006\272\213\304\270\022\334T\t\355\200\227\213\005`\204\303x\236*}\342~Q/!\316\232\020\265UUU}\262\035t\020#=\332B\303\321\233\260\364w\331\357\260\317\301a\2143T\271M\266\346\237!\006\006e\266\333m\266\333m\266\333l!\256\222\204\022\t\006\021\010v\022\224\241\007\r\311\213\252\215\2616\357\262_\256\213\2010\211\274\047\250N\300M\221.\022\204\200\227\360D(\001&\316\346\325\373\326\023\000\225 \220H!\017\260 \220\354C\236w\347\227SZ\315kZ\326\265\255h\000\000\000\002\200\207\231\216\257qsW\210\274\272\357~\037\025x\330]\325\354#\356\245\216\353\330\003\2455D$B\221\324%A\247S5\034""\034\275\t\325\333\\3\212C_\223t\360\303[]>\321\371;\354:\206\366\356\374\037\211UUUUw\310o\357S\352\337\337UUUU_\213\246\320\343\212w\035\335\330\365\347m\373\213\324\202\220\316\274\303\257\246\234\036\037.*\252\2738\342.\355U336550gR\316Cg/\213\204(\201\021\017\020\020\242\004D<@B\210\021\020\361\001\n Z!\342\002\024@\264C\304\004\326\320\242\265\rZ\275j\022\206!\004D<@Oo\305\000\260\310? \002\037j\377T\002\006>M\266\202\025\312\r\240o!\266CoZ\230\303;S\216\362\036\\\206\336j,-\274+\014\355qZ\3038\246\230g\205%\312y;\267\266\333m\266\333m\266\325QUT\t\305\227gb\302D1bLy(\341\004\302\241\207uLr\253y\336\034\370\351\276\333\326\366\231r\266\266\266\266\266\266\266\266\266\312\251U*\245}Z\305\353{Q\365\257\254\321\374::\225;D4\021\222\221\320\005A\241\320:>f\357g\005yxy.NL\024]\202Z\204\241\"\234CF\024\002y\001\"\262\010H$\022\204N\220K\301(\221\005\202A\002\341J\022\t(H\204\021\013\204H$\030\001\212\252\252\252\252\220\273\252\252\252\252\252\252\252\252\252\256\3047!\250\354C\334\300\047\n\252\252\252\252\220\353Ht\047\341\324\204\337V\225\350\361\242\362B\310u\010)\004D\204\036a\333)\315\334\257/:/\303\261\"uubci\321@\230\332tP&6\235\024\t\215\247E\002ci\321@\231T\332tP\047\331[\251k\340y\275\303\013\302q\376\274F#\007\277\206\352\021}\010\300\344\006\001=\222\034\260\003\252\354\325\351d\\\316\343\342 \036\306\352\252\252\252\253\362{P\003\031,\207\265\257\240!\230\252\252\252\253\301\271\r\210|\204\200&\341\363\020H\035Hu\244:UUUUW\247\275\357\374\304:\302\033\220\370~\331\016\362I\304\207\013\315\252\252\252\217\212\020\321\016\304?\017L!\330\207\213Z\360\265UUUx\351\342\361\0049!\231\3172\035Hrm\262\252\325UU*\254\360\341\344I&T\222I$\222I$\222I$\222I+`\232D\314J\010m\347\246\032s\023`L\206\334\004\310\300Ll\322C\312}\302\t\200lC\216x\002\026\007@\207\177\177\t\337\227\0232\342f\\L\313\211\231q3.&e\304\317\177\341\354@\201>\260\370\376\037\212\320\322\376\037\205\255pc\324j5~\377\360hP\322\232\240\262\225\322-\2515$=\047o \047\000\320\235\202u\227|J\334\336""\302\232\361Q\311\022\336\232:\304\364\251\220\311\355\200\\%\352u\211\261\336&\2413^\231\273\350\264Kv\321\331\213\264\207\251!\242\231\226\333m\266\333m\266\333m\267\274\207>=\341\323T\344X^\032[\366*\245\263\205T\212I\024\222)$Rd\020H\244\220*\252\205]\254\010`\020\222\026\t\276\224^A\n|c\3453=\365!\277(\024\310M\315J\302\231kf\270I,\247\273v\351\307i\335\334\025\001\005@AP\020T\004\025\001\005@M\027\202\273\tR\307\222\352\246\022\302X\350\332\343\347\274\000`\00013\204\261\t0\261\013\000\211\202\261\",aq\000.! \217\333\333\356\237(@\244O{\020\201k\000!r\3227\000\211p\003\250\020\370)\360p\240\227\335\364r\373<\37028`I\226\005\220\347\262\323-\235\235\265\231\276\276#.H\032\227dw\255*\301\025\213R\326\213\024U\212*\310g\034X\331.\211\016\003sSN\374;\233\335\362\267\026\3557\321\214\300\326\327\325\010\036\270\036r\010\320\007\032\004^1:=\235Z+\250O\0255\340\202p\330\212\232\\\361\220Z\022b\023\270Le)s\010\021\004\361\022\302\r\352\266\270L\246\276E\007\314%\341\200\022\tBP\227[8\230C1UUT^\002\037\007t>\014\246\267z\204\030\036MB\354\250g\022\275\032\030\221+J-)C\024Ko\023T\0010,\022\035Hfc\366~\267\315\242\035u\325UU\354\374N\"\362n\305\017\212\034\257\305\265e\254 C`\256\305\207&\313D\210\221N\363d\\\004\240&$)|;\241\341\341La\235h\357\000\3522\036\036\036\035\375\242 \233\231\243\t\210xr0`\030\200\260\302\"\036\034\214\030\006 ,0\210\207\207$A83\215\034q\306\334m\021\004\340\3164q\307\033q\264D\023\203!\204\276\307\237g\311v\326\027\250\036\327\261\016\336\023\370X\030\325{\001\010/b\004N\304\265\255\333\265\264#\rDV\270\343\255\220\373.&L:\211\233\256\202{\235\nH\047\210\275xLm!\260&\310\230/\004\210e}\227\366\211\320$\022\326\330\022\252\252\252\252\370u\355!\320\206\326\036?~\236N\342\034b\252\253\263\247\027G)\320\264\266\226\322\332[Kim+R\341\013b]u\n\304\256\252Vd%\252b&\300\236\005\251\243\n\032o\022!\271\016\247\245G\343 \225Gt\2521Q\212\214Tb\243\025\030\250\305G\315\273\352\036/""\035\317\025\273q<}!\341\365\323\332\360!\020\324&\375\311\203\272\261O\177\005%\373\265|\221-uZm\211y\004\235\211\266\241\277\317O9\353\220\373:\272UUwe\\a\236\245\304\350@>\300@\301\020n\247\330x\370\242\354\210\370\243\364\000\020w:\007\204Z\"9\231\240wr\333\272\252j\355\313n\364\314\224)\2272\335\325SWn[w\261\267\r\367\271\275\2731i\266\3276\267l=\226u\207\317\345N\370S\345\177K\365\361}\035\215\027T\222H\326!I$\2215\220\210 \3417\r\315\274\250\225Y>\006Y\204\006\330\201\343B\370\013\007\301g\307\331\270;\336\024n\237\247?\220N\263\316&<\017X\224\206\276N\220\355\366\351\362mUU]8\342\361\000\207B\035\272g\351{\234\376k@\301\272\224\343\365H`\326F\rv\006\rw\256\345\333\304\251\032\225#\363\353\304\267v\3200|\273.]\274J\221\253\0304\014\032\324`\327x`\327\030\301\361*\343\267v\327 \301\257N0k\306\0305\240\301\240`\326\301\203@\301\240`\327P`\326F\rz\321\203]\361\203\\\343\006\2620k\327\214\032\352\214\032\324`\327(\301\361\335\313\267\211R5c\006\273\343\006\2620h\0305\274`\326\203\006\2620k\234`\363\276\345\333\304\251\032\324`\315\367.\336%H\326\243\006\264\0305\264`\327\020\301\355\341r\355\342T\215x\343\006\270\306\rq\214\032\3400k\307\0305\300`\326\341\203@\301\2561\203\\c\006\270\014\032\3400h\0305\250\301\255\303\006\271\206\rj0k\220`\327\001\203Z\014\032\3320k\210`\3200kh\301\240`\327(\301\256\370\301\256\3075\313\266\245H\327 \301\255F\017f\373\227o\022\244k\234`\327\001\203\345\256\255\273\266\272\343\006\271\306\rp\0305\3200k\210`\326\301\203\346\315\313\267\211R5\324\0305\221\203]\003\006\271F\017\246\272y\374\367\027\230\263H\233\366=\231h\0305\3220k\2500kx\301\253\0304\014\032\006\rr\014\032\333\204\267>,\274\345\256\003\006\274\341\203\326\273;s3\227\217P0r\244\260\006\227X`\327\2260|\232\334\273k\2540{\350\240h\0305\3100h\030J\326\335\333]\003\006\263\215\313\251Y3\226\273#\006\266\014\032\3340k\244`\326F\rX\301\2561""\203]~\047\305\227\234\265\3140}~{\227o\227\253r\355\342T\217\022\244kx\301\240`\327H\301\2557\334\273~5\024\017\255\340\\\273x\225#[\306\rm\0305\260`\327X`\365\355\\\273kQ\203\304\251\032\362F\ru\206\rt\214\032\337\337\363o\342v\026\275\332\326\366>~K\227o\022\244k\234`\326\243\006\254`\327h`\3270\301\256a\203Z\214\032\350\030>\326__/9k`\301\256!\203]#\006\267\014\036\312\352[\273j\306\rq\014\032\320`\3200b\302\355,.\236\032\343\013\267\232K\271\243<\320\207\266C\211\016$\020;\310z}\024!\333\242\252\252\252\252\2445\245UUU]\247$;\202\t\007r\036\202\025\016Q\310\310M\273\362\270@\322$\023!!Q3<\r\\\210\033;41!\343\241\016\371\016\244/\010q\265:\220t\206\273\351\264\201n\220\263\225C1%\220,\332\241\216\030\t\257\034\354\330\255\327\t\264\047\212\252`\231\300cd\014DD\343L\3339\312\347\310\002\020$@dP&\2172\260\350\356\352\362D\"\032\"\026 \210L4D,:;\272\274\000Cxh\210X77w|3Q\223\356ffr\346\331\333\037q\3541P\346g\350\001\034\201\310\222\344\016\221 \\\240\272\3105\227\356\263\316\202\270\210\r\332\250\0272\004\302\\\242Lr\246\345\214\023\010\237\244\350S \226\007P\232\237\265q\001pW\013\211\027\022\002\342Fd\214WQ\232\342C\225\333\314\026+\270\200\316\251\270y\240r\200\347\005\200\347R\251\316\023?K\253\272\007w\226\216\340Npy\310\202j\203G\337\243\240<\247\020\231\302\047\037-\034(\230\200\365C}S\204F+\304\001\305\346\373!\273\272&\354\021.\177\216\233\310hH\256\031l\031Q\225Y\312\006U\222\322\327v\303\220\360\313\226\353\313\211.$\211\204\245<\3109\320`9\305\201\234&\21613\300\020\234\334\207\047 rq\332Ah1\n\325\243-\221\0165\202\025)lqdV\301\014J*\251\230#\036\021\036E\030\217\"19*\007\047\310?|\373\303:.x\013\374\220T\243\250ANa\3469\236nN\205\342P\343\343\024\207\013v~J8\327\010G\020?\362\031\"C\327\016@C\225\020\210\034\252\021\345\016H\047&*\234\257\001\027\225\244\016D\310MJl\232\2549d\345\334\206&\205\211\002\nw(\355\002\033\212\207\246\201\335V&\352N~\300\000\264u\010p$\351\034 H\nFkMX\252\375\242\016U\r_4\3112\354l\247\253\354\266\005G(,\251\245\225\254l\321K\317z\315\375\373\310\254\336\341\247F\305\326( g\335\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(j~[s\340\231\372\313\233\326\303,\026Z\210\304\273T\337-\264r\264\335\016\032\327\315\266\221\274\267:V\217\247U\247\354\325\265\316\263\034v\247#\034l\325\261e\2737\345}\3259F\260IE\201\026\002\021@\262.\031l\324Z\334PXE\325\023\374\023\233\350sNewkr\032\242\3402t\030\004\314\354\275t)\355\020`I\262@\206\"\204\010d\310\2503\277\203\000=\322\204T\006\007\002\030\371\035\027\336\rr\177>\323\\\370\250b\362Og\257)\370\235[\002\243\252\013*iek\0334R\363\332\263\177e\344Vop\323\243b\353\024\0203\353\3178kS[\357\306\225\350\356y\324\372a\307\0349\2245=\215\333\242g\330\331\275l2\301e\250\214K\265M\362\333G+M\320\341\255|\333i\033\313s\245h\372uZyk\307\261\255n\017\233Y\265\321\237x\274QGa.l!z\006""\271>\325\232\333\n\030\262\236]r\236=[\002\243\301\005\2254\262\265\215\232)y\351Y\277\225\344Vop\323\243b\353\024\0203\323<\341\255Mo\277\032W\243\271\347S\351\207\034p\346P\324\362o\036\211\237&\315\353a\226\013-Db]\252o\226\3329Zn\207\rk\346\333H\336[\235+G\323\252\323\313^<\232\326\340\371\265\233]\031\367\213\305\024z\203\000\200\213b `\211A\221!\221\020\360\026s\240\252\365\r\222~/5\306\212\030\265O>\331O.\315\201Q\342\202\312\232YZ\306\315\024\274\366\254\337\316\362+7\270i\321\261u\212\010\031\355\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jy\267n\211\2376\315\353a\226\013-Db]\252o\226\3329Zn\207\rk\346\333H\336[\235+G\323\252\323\317^<\332\326\340\371\265\233]\031\367\213\305\024~\017R\021I\025\002\336\370\332R\242\376!\"%\221\001\254\033\213L\361\230\231\327\3006\244\375/6\327e\014[\247\253\307)\347\342\330\025\034\240\262\246\226V\261\263E/>\025\233\372\257\"\263{\206\235\033\027X\240\201\236\331\347\rjk}\370\322\275\035\317:\237L8\343\2072\206\247\251\274\017\246}M\233\326\303,\026\255F%]\252o\226\332\234\2557C\206\265\363m\244o-\316\225\243\365Mi\352\327\217SZ\334\0377\273k\243>\361x\242\216\302\\\330B\364\rr}\2535\266\0241e<\272\345M\233\326\303,\026\255Db]\252o\226\3329Zn\207\rk\346\333H\336[\235+G\323\252\323\313^<\232\326\340\371\265\233]\031\367\213\305\024y\231\002\006`\213`\010\030\004F\276~,\010\003\027\223qe\354\033B~q5\316\252\030\266L\366\312yvl\n\217\024\026T\322\312\3266h\245\347\265f\376w\221Y\275\303N\215\213\254P@\317l\363\206\2655\276\374i^\216\347\235O\246\034q\303\231CS\315\273\037L\371\266o[\014\260Z\265\021\211v\251\276[h\345i\272\0345\257\233m#ynt\255\037N\253O=x\363k[\203\346\326mtg\336/\024R\004\007k\031\333vz_\267\030\274 \256OG\310:\213\210^\241\264\047\347I\306\330P\305\204\362\355\224\361\345\260*\230q\307\016e\rN\315\330\372eqi\257\221\345\303U\241\202\232\355S|\266\321\312\323t8k\343\026\332F\362\334\351\024~\272\255<\265\343\311\255n\017\233\331\265\321\237x\274QC\231\020\003\314\210\027\247\263\003\2147Nx\0355\231\272\310~\331\022\024\022@\323\"&w\217v\\\261\263i`\240\315\004/\366\214R\323\271\316.\231\213\217d\300\373\362\001\370\017\323\337b\020#\031\334\351\246H\027\251\223\225h\370RS\010W#\033\315>\021n\027\372~\246\217V\311\203`\2106\351\264\223=.\313P\275\252\344\022c+X\255\216Z\245\245\266\017\251\021A\20071-\261T\010\254\201J\262\350?;\252\336\027U\0310\306F\014\031\207\215\357kP\314\316F\020\014\tz\"1\005*\203G\004\204\210\227m\251\276jg\231\006T_Z\010H \232M\244D\324\010\330\007\320+vs\035^Q\030n\234\242F$\263\026\237\346t-\036\361\343,\031#\001\361\324|\241X/9Y\316\371\203\361\362\265\216\370\230\224@D\300\201\231\212\231\312|\324R*\202yL\204\350\0339\0228y\362\014C\212\250\211\020v\200x\024`\207\002\047\006\352o\351\237\271d\037+\303\210c]\222-\261\361oA\273\323\261\020\2766D\033\327\201\340\304q3\350W\304\223M\274\313\2416\207\3032\316\377\215\270\223d\264\270\305\036\211y\372#r}%\016e\336f\316\"\351\002\315\004ruj\252\032\357\235\362i\323[(\225\346R\022\033(\375\240q\r\335{\2517NV\363k\3367\370\367\247\240\210\220\220\211\021\206\274\214\000!\332+ E\010\010xx\307\217;\246\010\302\n%\257\243jV\330\342\2776\310\330\303\226S\304D\047\032\210?B}\270\276\300t\203\330\205D-\362\213\r\255NH\365\276*tr:\200\324\331\206i\307\031X\273b\245\267g\017X\020bDY;\301\347\325\364\2423\334k\261\304\310\367\342\323\326\363a9\342\241=\224/\201\340*\275\017\037\221\347\312p2\367\332u\273\277\231\256\23646\255\234M\273a2\336\342b(;\023\213d\254\331\202_|/\221wvw\233\027/\235\251q\252\026\t\254\201\263\025\350\371\036K\017_\246y\022\236\275\252\200QW\250\020\224I\010J\021#\326\200\365\254\361\204Ptg:1\245\320\203\224\200\334\365\325\341\2057\010\030\247\215\262\356M\310J\255\220Sm\030-\002U\304\220\361\276FnP\362M;Zd\021\301\263""\313\307\230e\207\024\002\014\007@\316\251\363\332\\\231\307\346/\307\301\302\224\305\213c\001\353V.\315\t3\004a6TY#b\325.<\347~\215\035\276\217F\217\310\346C\261\256\203\001\276K\303Go1\201\311u\246K\216\313\205\345A\353\021\212\365\200@\370\003\326\363\371\374\364\244\313J\317\021fd\021=\233\357\273\304\331\206\300\262\305\023\001\033Z \203DQ\007\315\354\364Ua\301\200\374\306\0202>\3367\341\"\004\001Pc\363qarr\312\335k\261\261\234b\223\371\353\222\037P\254\021\376\227a\223\253\332\216\020\213\227|\332\357\333\306b\313\262M\326\267~\313\314\316\364i\014Lh\331 >\361\200C8\215\357${\r\224je\341\260\010\340\322\340\004\031B%\010T1\005\212p\300\301\200+&\030QX\"\224:\265\032\221\324\276\275b}\006\237w2\232\323Qw\220\270\250y\236\010\tz\351\253\022\307\232X\034\342\272\225`\032\204\201\250\047\363>\334\375z-5\236\255r\315\323I7n\272\257\370\351\333*\305\376\313\250+bY\254\tj\210\027\351\342\315\0308\302\035n 0|\003\006\254\213L\005\223b\330(\246&\331L\355\330\343n8\342\026k\\q\265\266\325\266\333m\264\266\333m\266\255-\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333mZ[m\266\333m\266\333m\266\332\264\266\332\264\266\333m\266\333V\226\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333mZ[m\266\333m\266\333m\266\333mZ[m\266\333m\257\303\315\000\333m\266\333m\266\333m\267\351I\033m\266\333M\267V\333j\333m\266\333m\266\226\255-\266\333m\266\333j\255-\245\266\333m\266\333m\266\333m\266""\333m\266\333m\266\333n\2632\325Z[Km\266\333m\266\332\264\266\333m\266\333V\333Km\266\333m\265im\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333w\202\304\343\\=[\010\214o@\3570h \021\225\257R\311\375I\024\2500d?(\031\000\002>\217\356\215\273E\330\347F\376@lk\3303\373o\235,ZT\302\206{$\230L\252H\363/\003\352\324v\252T\334\006n\255\3249\r\207\336 \010\002\263\300\337;1\376Pr\036\r\\\276\221\254C\302\330/\351\315\263lUz\355\240\203\034\047\022\341spsf\302F\333x\030\323\372\3334H\231\320\320\310\210\210\020\030[CA\370}\037\234\274P\223\000\345<\256\017v-\210qVm\314m\271T\245\241\030\005]\304\251d\330\224\305\250\002\031n\336\375U\225\325\342\022\300\333\261\240\334U[\261\344\346\2720a!\203\313\307MhY\3205\254\003\320]`\025\031#\n\374\230 !\263f4Vh\0348\221\034\252\266\037=7\274\265R\r\204\326\000S32\036\024\200\324\006\r\214J\321:\022,\206\354\047\330nd\033\313\300\357\216\237l\362\305h\325\272\326TdUU\020Ux\351h\000\2301.\212K\001\212\0002b\321\3521\360\214m\231\324)gD.\237\217\330[\346\"\207\037\032G\037\031\307\305\000 ]s\363\227\227\2348Q\001\315\003\3308\371+\260@\2629n\362\303a\2228R\003\214\0202\0161\014q\257 \036\266%82\r\265\2102\335u\255Y\252J\003\324M\032L\235h\336]\312\"\016\234uz\225Ov\272.\251\201@\013\000\014\242\2005\272\026g\215q\253\271\\\017r\021|\361\016\005*7?\204\322i\322}j\032\203\346\016\260\016\323\304\352\316\233\317b\027\222\3045\356S\333b\233\0378\362\242v\200\301;A\207i>\276\224\0174\005\235x\266-r\301AC\t\342\003\217{\335\\\226\320\367x\343\335\364\2140C\336\003\254pG\235\0238g\304\207\300}\315\376\356\241\343\235;\213D\254ij\253@\264\242\237Ggc\330\270y\216}\300\362\331w\364\224\035\022\212\203\306\253\344\000\020=\302\010{\201\356|^\260\237J|\305\023\001\304\366\357\336\205\252:uP^a\000\372\014\020`\0358_\264\242\251\361v[t\2734\\\275\260\007\334OX\000\016\211\264\203\024\036rkeBS\024\347j{\277\236Q\037\300\232\334\263\206q\252\006\2063\363\272i\315\223\275\347\261\356C\313x\201\205\004\305\024\t\047\001\203\354\274\276a\277w=\346\361xf\016\002\0032)\3113\342u\241\206\240@2\273rLc\0031Rq\021mD\261:\232\263\r\320\270qL8\212\277\016\303\270\255&\315\005\320.\\\336\343\334\017\270S\304\037N\341q\276\354$&\376\321\342Z]\341\214\261-N\360\217\000,C\200I\301\263\275\331\262f\021\031\025R\251\265W\013\036\023\263\267\272\256y\004\3551\230\354\203\214\201\205\303@}\035\212\250\347\0079\330\047`\366\035h\364V\237}\270\264^-\020\245\021\270\201\314Y*\047\223$\3044\316\036Y\363\023`BX\220\224G\240Xt\035/q\t\007\311*\004D\221A$d@\000\221P\221\221\223\333\272\007\256\364\336K\214\0268#\343\271\301\202B%oB\261\016mE>\037\2012wN\242\355=\032\276\301\317]\271\370y\336NN{\252\346\214\277\276\250\030\2254\376mwjL\335\013\350\032\312\242\245\"\"\205\206\333\211T\334\025t\271\270\241\355I\014\016\020\327_\241\004\034\231\265z\275\330$\035\010X\r\233\300\004\025\246\346\304:\034~*0E\352\2416\001\002)\256\340\2710*\300\n\357\014\340,\324\023\016\356*\267p\032\335g\251M`k|\035\006C\247t\344==\047\021b\330\233B\047`\246\204X:\026h8EPS\323+l\303Q\301\200f\302\304\025 \034a\301$\234\022I\303}\344\310&\264\314\017|\307\316]W\265\222\241\3539\207\"a\201i\047\215\204:\036\266\275\374\355\341\271\360d\364\033\320\217\3178\001f\322c\340!\232\351\267\312\265\240\255J\304\022J\304V\247F\016\024\201\257Fd\330\001dB\226YBRn#V\234\005\237\032s""\0166]V\364\022\017d\360\260Hz`D\017H\t\3517\337\331\366\005\276\214F\371\366u\204\315\013\r6\341\236\326\256\230\023c @\224\323a\t\014a\013\244\205\021\006/\226\325u\315\030y\252\0477Y\233j\2340\353\200\025\357\261\203\253e]\247\276\201Z\207\357J\027\316\202\014Q\007\036\033\254\226>F\355m\325\301\n.8\t\010\021\035\312\322S\261\252>+8\001$6d\2101\234\022\302m\022\334\344\324_$\302\206\353\031\355\230\032\303\307yA\227L|\371rX6\003z\343\206c\347;]\2338\342H\020b\240\262\303\300}\206p\371\010y\022\357\302&\334\201\0203\030(\322T$.*\213\200\370\352m\265\305\307\337~\275\334\246S.a\266\337\010\\\232\304\360u\353\334\3503\202w\2726CWea\277\232\2654\035@:\224b\272\225\206\247\233\357\354(\343#R\033<{5P%\256\260s\363s\3408\036\0104Q\366\314\211\302D8\003\325)\002\320\337?\004\254\031\200\371\233[S5k\330\335\032O\25466\\&\027\365\005MS\\5\t|\024\262*\342Y\261\311\332\021\006\335)\237D,f\302\2522\250\300Mf\047\016\177\024s\031W\232\024J:\355k*\004\nm\2741L\n\271o\034\030\253NCq4\007\036F\352\232\345\255R\022\263\270v\266\361\231\234\030lq;Q\215\340f\332Ka\332\353\344\032!\037$*r\026\304>Z7/>\343\037d\035\271\273\2554o\260u\361?\257\347\323\354PT\332>\324,\213\366\270\200uu\366Ph~iVA\3526\365\236,\263\014$\315\212\355\275\276$r\363n\237\230[\260\235\031B\223\202\004\220\200o\026\306F\311&\000\273\316\017\342U\037\005<\017\243d\3532.\370su\357\325\025^H[~e\312F\255\304\203x\020\3027\222\033{\312,\rnsP\306\356r\273\267ZiIX\235e\\`r\330\366\240\203G\230ML{\337\312\202\014\210 \305\010\026H\346\274z,\3058Q&\236e\276\343\310O\231\037\257\325~;;\016\035\263\3033n\250U\340\213\256\202\374\264\364\036\261\343(\235\002\301z\351\353\354A#&)\030\361\007\260P[|\2045s\303\021?{7\020r\354\333\002\310bL\271k.p\202mC\177\001g\207\202$\004V+\005\026\000\212\305\213\010\305F\"\274\013\276\0278BHd\233\227\241\311\313\222\216\324\337g\202yv\250\253\2535\2148q\027)\250F\270\t\204k\210dk\243f\210\225:\274\321R\205\001\026\331\267\245t\233\250\250,\000\270\004nD\033\300\274U\371\000\230\005>)\2068""\304\220\267\302mz\375\326\204o\246\273\300?#\270d$\200i\363\311\364)\300\201(\025V>_.f[\273\260C1\244 \246>Si\266\213\305*m\375\255\253\300m\t$\016\004\220\340\263\223\2315\3036\326\323\245\347~x\016ibU\327\321&\033\256\2302\23680\207\n\246qH9\3069\303\310n\311$\200\373\245,F1\212\326{\211R.ges#bH\222\343\236\017\322\304J\206\277G\250\3450\201\212r\236\010\2646\206\274\306BB2y\r\031\274\047\204\306\343\200\250;\230\033H]\275\272\367\353\305\202\330\2741b\302\337y\203m\005\341\271\364\323\357\247\334\330\361\276@\017\312\352\023\256\205\221\022\354\322\001q\337X\031|\014\326*\212\243\321\233\213\034\231\016L!`\343\034\266\374\371\343\014\246\300\360t\336I>\251\245\242\212\200\250\276\271\365K\300\032KfO7\335\332\273\005\340L\030\345\02275W)\241M)\240\356C\277\277g\300\352w\203-rC\005t\177\007\226\\p60\0032I0\031\200c1fc}\236\235\277\021\017\275+:\227\265=l~\375\005\353\312\263}Z\336\226\004\212\365\006\311\324\304\250\263\255\231\315\203\243+\200\362;\006\253\375 y\263\316\313\223\033|\355,\014De\3032\030\013.\351DeKd+\210HSmJ\313\306\364v%\341N\334Yy\360\215t\232m\345F\316.\315\363 O\247U1\234\324j\361\362\002\367\364\025%\006>%BD3\365\"1\273\271\260\327\202\337\214\370\351\250/=k\366\353~,r\207\2334\237;\231\212\370ka,g\323j\323z^O\tCT4D\013C4&:\032m\023\240\252\271Q,\260\001\335\002V\311J\222:h\260\001S[\254K\325\207Y\240\203\014\024Y@34#\000$\273W\237\305\037sp\307\311\332\266\372\204\0010\246\005\310j\216\tv\003^\004\355\274_\237\025 E\247\331\005\362\rf\257\247p\023s\310[(\365\371p6.4\211m\315\202\342\234;\370\356\316+\245\026\006\221\323\344\350\333:\351\343\206\326\325lg+\025\345\222\240Z\021\347&/\277\035\351.\326]^\242=6\235rn\303\257\253*\2546\312pC\323\317&\273\034\"\367q\000\3246\265C#!\320\203\222\014\2143\2140\225\343\272Li\0058\305\314\312h\304\206Wd\310\345+RZ\234ORQ \202\263Vs[\271\020\366\223y\340\342\234k\254\204\t\243<\275\273\372\341\271\324\217!z\223L\226o\032\000\320o\030)\220z\230`\305\3553 T\312:R\245Q\355\370\233\004 \027l\001\2717/\301""\345\366i\345\307\272o\206(e\203kC|\315\t\024\030ab\320\311\307\222\033\354ko\016:Dm\n\254\017\01719\375~w\353\315\34542V\357\230sBJ\036\322S\213A=\200\220\"\220\201\021\313\275\021{\320\262\357K\207\271\3208BC0\310\346\020\310\224\303\366\251H\005\303\250R\324\006\314Bc\221\333v/\315\205\253o\3308\2671\344\001\305\251\035G\244\035c\255#\214\204\206\036r\226*\254\026\222pf\262\047\276\"\032I\255\301\0012\220\n\276\367\303\220\022\314!0\031\2206j[f\026&\217L\362\210\002I\305\350\014\261P\214\325\3718#\200\305\216<%4\313\335y\236\303)u\260\302\227\214\356\370\014B\0220\222 \311! \300v\303\253x\276\2037`Qzr\230\371w\356\327\347\277\027\216\325\370;\245\031\243\201\334\301\212M`\237\022! \201\212,\036\242\"\324\222\300\304$M\222\005\220\211\022:\321\014\207\330it\035\300.<\334r\006\315\020\341q\242\000\037R\220\372\244P\330X\031T{C\004 \360\300\204\273\204\"\235\300\362f\036z\213\356\206\036N\236\212\312\223l\374\005\254;\231t\326l&&\022\214\2014\004s^\346\276\010/n\253\367\202\362F\362\353\020C\200J_\013\365V\2329\304\243\177\320\333\r\334\240x\247\230\201\213\035Z\031?=t\010\035*\021\016\225\047\257iy&\300z:.\362\366\340F\211\320\024\312\031;\242\226`s\277\241\222F\346\321(\002W\3451\342U.\322q\204q\207_\013(\010.\201E\021\262\277\312#\235B.p#\235\3454\235\037E\022\032Y.7\002\2132Y\257\261%r\213\312r\202\217)\312\007\202\250\352\003:\206\240\362*a9\271]2\212\317\237\256\353\363\361D+\352\2631C\225P\316\211\020\316$3\235\047>\327\260\\\277\010\212\375\363Z\327\323\236\214\323h\360f~\257\332\252#\265\33060\246\275\354V\371\263_\037\347\030\301\222q\000\340M\307~\343\371\324\354\372 \022\312\245\005*\226T\211D)Cq\005 \301n\243\307V\304\305\230\014!\324\036Le\033\376NuS\244\000\212t\243\016\223\251z9\224\355\016e\343\016. M\365\341\047\232o\220\255\323\205\324\220\230=\225\270 o\013\020\336\022\033\305@T\314\030\004\214\001X\254\225m\217z\353\212\356\272\347\270\261\201\343\353\021\340I\222\361\355Y\337@xU\"\034\"N\023\204\017<8\201S\207\255S\201x\002\257\344\312\375}""\247\264\003\353\301\005x\224Ah\326\256\372\251\001\\\020\311\025\3015z\302\014U\302\350VX\277&EJmI\251cq\t\023\312\325\235T\260\241L\303&\221\252\000\212\300\206\025`\031VU\220V\254+U\251~[X\025\202\254\017y_Z\270\317Ub\300\"\3022<\256^\322\243\266\251\027l\010\355\277o!\357\371e_\310\033R\220\3052\233R*\306[rNT\315\334\377\353\332\353\r\267\004\010\0360r\267\334\317fb\026\233\240i\"\213\025\333|6\332\324\333{&2\353\373\033\231\242\000\326\333)l/\227\337m\267K\323\317\203\342\301\374r}\264\341\205n:z\263\360\341l\rE\356kI\260j\204\206\003\303~\334\\\267\330\331M\351\225>\274\324\031\260$\352\300-\315\367J\224\226\330P\345h\247\341\364\301\200\3773\373\010\277r*}\221\001\010\251\001\"\250E\276\233d\007\274\020!\021HE\202(v\210\237q\024T\335\334\357\217\266\325\001`\233\006\377\310\322\254\217\367=\032/\234\226\213\030\027\306@Tc.\344\2718\t#\037?\355\253\034\262\n\210\231J\251\214\304*9\354y\377c?\213\364\345\207\357k\371\340C\010\006\314&\236\031\026\000\013P}!\373C\3579\373l\201\376\264\377\347\311\231\301$\047\327I\363~\323\303\373\207\316i\312Q\326e\374d\220\231A~\201\r\304+\r\235\010\317\317\342\346\223o\306~\357\317e\372?4?\205\234!\211\276kM\205\225\250V4#$\244\241;\257\265>d\027\263O\271D\220\026E\023\376a \3713\373(x\265\254\r\024\n\260\375\320\266V\004\373\337.\010\257\374\2366\047\217K\320\347\250\226A|z\010Z*1\362-\255\302\243u\262wh\240\350\200\322\n}\047\223\363*7\000\236m|\211\316\247zS\234\212\265\266\027\t:\022\313\343I\320J_B\254ELb\320\302\322\277W;\237\333\375\352\\w\255@\033aQIB|\327[R\312\035\322\332\025>.\207\251\ny\276m\324<\336\310y\317\234\246\005\360T~\372M\030\205\047^\252d*?=D\302\206\027\230\n\214\301\256\217\255\363:^\205\377\333\321\237\010\204 \000\225\265\364\307\321J\254/\017@\2213\301\343M\211\377|\311\200\tI\007\333\351\377/{\303\303\361\203\333N\213\324\347\020z\342=t\001\272\313\310\245/e_^\n\005l\025\034j*8\2238`\047\245\367\230\377\0324\251I\047\317\nU\017\356\264\250YAQ\247j\355\353o\365=/O\325\372\362\047\252n_\366\210\233""\222\374)\364\340\246\217\341a\243\250\017^\201QW\0109\t[~\360\334\3747zf\345\273\322F\335\337\262\266\2727\267\351\260\332h\232!\276\2069Yc\210\245\032\n\214\334\352uN\257\340\210\335\000\222F0\222H\222,M\322\n\216\361h\222\215\367\205O\262\364\366\350\245*\335\205\026\352^\245\276\267\337\273\324\352\377D\372\341O\340\313\364\331\365\n]N!Q\302\320\303E\266v\334=\272\330\021U,(\047Yf\213\255*\"\321\341\334\362N\251\324\3678\313\255{\324,\343\341R\010a\013\312\361\334\350\r\027\361\247_\000J\344\320)\001.\316\240@h)I\030\"\260\363w\270\250\037!O\350\275U\336\273\373\321\276R\226\n\215\264\261\343\016\032p\350(\021\013PV\204TgS\321\337\3408j\037\030O\240\031o\006\335[U\022Rp\260\342\025\033\350X\022\3451\025\033\370--\020\236\347\225\324\201\016\000\337>\2649\002\243N\032qyBqR\351\333\272\231dSG\375ca`Z\322\201\025\367\317\2177\216\037\007^\201\326K@\366\010I\004<\321K\375\202\356.\307\035N;\010v.\224@o\300\022\201\002\000\026\205\0012\320\226\026R[\003B.?!>\036\300\250\327k~\335\370q\202X^=\0258\355m\013\216\261;\030K\002\333\255\014\003\001(\331\010\246\366?\007\331J\374\\5^\302u\271\034\345\273\013K4^^\303\215\300\022\267\330PTo\271\354\nV\315\334\200\337\201\276\252\222\034\360w\216+\0369Rp\235ju\270\351\306\\^%e\016\260\236\366\255\335\047\004Jq\024m\003\253\367!}\233\374G_\255\327\022\3004\031\024\276\305\321]\355\347\335;}m\202\207$\220\340\362\324\353\341[\257\275x\213\014iD\244\205\236\3505\301M\340\352\365\271\314\352\357=j{\225\273@\004\224\252\275h\213g\272)B\204{\364-\370\370\263\356R\207L\023\252Q\342\r\353\301:\t\301^\256\202\227\246$w\341n\200-!b\230\267\220\303pWu\005\352uEF\306\201\324\032Z\024\334:\236P_\177R\315\017\274\307\336\024\033 \333\014A9jc\240\207\013~hf{\274\221Q\335\021Z\233\220\337H\177\330u\000_\265\205R\362\017\275q`\250\357\234\030%\217\274u\017\304\250\320\313w\271C|\204\352\n!\325\025\030\252\035\350\374\323\340\321Z\313\303A\032\331\241\261{\270q\007\031k\303\301\330\353wT\326\260n\251C\324\365\354\n\205\241F\0057N\232Q\260l\022\003\275T\224\033\341\275oi\365}w\346\022\264RGt\224(P\351\327\226\334\026%\242\221l\010\332$\370~\017\223\271\351\250x\206\363:}8\r\n\020\255,\243^\241\272\322\320\261H\264z\224%\302\226o|^\267\334>\241\353\211J1\222S\326\016\231\323\255\205\213\006\330\226\303uO\177\346\017\375\236\232zG\252\244\375\304\262B\301\233\226\324}\335\303p\276\3626\203\323\242T\201\241o\343}OD\215(\220\364V\276\345k\270n\027\025B\001a\035\322\344~\023\317\375\241J\036\212\177z\326\237\310\242\376\351\037\342\261s\205Ik\025Ju\007\310\374\002%\037\255\252w\207\326\036\221\210W\2412\210h\217\215#\255`\325\204\364/\235\335\260\250\\\236\377Ba\3124J!~\005\300\177I\246\243\323\371~_\341G\345\376\217\233\202\325X+\3600\211F\020\030w\203D@\204\351\216H\350\370{L\375C\317\277\330v?\365\264HC\r\250\021\"""\206\030\022w{\205#I\323)\330g\355=\315?sE\367\304\221\337\014#\322mNKA\332hm\201\230\322\236\226\271\010\361\342o\326\357\235\227{\036\314\206v>\257\227\260\376\257\325\020/\230G\240\204x\2328\336\217\272\047v\035\347\364v \312}\242D\047q\000\014\367\007\314\337wy\243\355\355;N\333\304\275K)\250\274\262|\216\257\230\204~\345\261\367\226g\354\246|\177\253\366\037a{I\372S\n$@\013@\204\350\230#\3519\217k\006\213\232Q\375\243\021\306\020\240\240%<\316:\035\377\346S\362?\353\0106\235\225\020\311\240\237\315y\377\250\007\376\021\177\236\311\3609\r@\366\007\270\276\322\350\203Y\222E\213\036\200\034\347\014{NT\266\272\303\336,\351y\034\034\"\233pE\361\342\033qN\016g\256\035\307^\261Q\301\317\263=\304\025?\222\347\302\373A\325\016\322\275\366f\372\217\355\002\014H\240\036`~s\344T\317\220\361q\037\032\370\215v=\345\373\010\224\336\036\017\344\231\356\326\372O\246\377i\372\2031\362\356j\370\265g\361\220\366\027\301\003\330\217\260\377\"\325)qw\351\373y\247\267\337vS\333\022\223\264\037\246%?\177\307.a+\371\357\354\366{\204\366D\367X\244{D\266\304\225\360kK\236\217h\375\375\257\030I\346\210u\027\270\224l)l-\n\222\225!\361\177\035\371\347\264\235\241O\340\247\2745\022\222\305\tsE}\266\301\372\356=\337\335\375\241\352S\364\to\222\\\330.)\027T\267o\366\341\352\177\226~\205\251\177\273#B\177\240\006\006\t!\246CE\312\312\320\375\276ou\355\003J\t\354\300*AJ\221\375\366\365k\356zD\365a\345yHQNs\374\325(\004\212\226\022\353\251Hk\0377\303\361k \276H\047\215E\002\304\177`\236\270\207\266 \321\027\333\355\243l\266\335o\217q\332}g\326}g\326f\315\264!\274UM\271V\340\334\276\333Xo\243u#\212Q\220\311]\226\"\014A\300\n\020\301\242\272\210vT\203\205\013E\275%7W\207\005\214aa\212\263V\r\005\333\272\323Kc)\346\364\267\347k2\261\242z#B\234\321\206L""\326~y/\016\326\315.=Z\230\032I\013\017\363\241:\244\235R\032\333\213\243\235kX\2513[\034\260\325\244\201Z\314Dq\377|\220A\033\244\004\006\352\000\224\005\274\007\030o\241\003\301\026JU\241\n[Y\022\300\226Z@(J[\026\001*-B\245Aj\241Q\255U*\255V\245Ej\215R\225)B\222\326\025\260\266\002\326@,\255\202\221\n\020\244\263`\033#f\326T\2626\032D\244\niB\225\244\261`\002\302\330h\020\240\nZU\241i(@\244\224\231\220&\022a\231$\231\000\300\314\010\031!\201P\nF\202\326\001,\205\232\001\240i\265\225,\254B!03\010L\204\310P\201`\026P\201BXfDl-\250\006\204 \014@\252\001\240\ni\006\225\241I%\002\206d\200d\014,!HS2I0\014\nD\241*\204)\n(F\220\256;\002\331\033\024)CT)@Q@4\255\034\026\020\260\226\244J\022\223+`K\r\237u\225l\005\217\306X\026\301\3264)@]\361\006\250\025S\236\255\024(\205\234\324*\201U\253\322P\250%P\251\322V\252\265R\247I\022\250\325\n\235%\032\212U\n\363\020,!e-\367\"YB\303g\356P,\te\263\300\274[\263\331\231O\264\232ITd\2060\3665Ak=\224\33116DLb\314w@\331\200csX\032v\0300t\224\361\277\236\374\337\310\362k\322\235)\347|\264\377h\234\230\033p\222I4\331Ov{\263\370N\324\367{=\203\216\303z\037\341\350R\234\312^\337m\276\271\n\305\374/\2359\206\374/\370P\346\233\252\234\235\315Z\246\315NN\t\370\360\335~\353l\317\271Sf\2649\377\342\356H\247\n\022\032\344\363\220\200"; - PyObject *data = __Pyx_DecompressString(cstring, 20738, 2); + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20704 bytes) */ +static const char cstring[] = "BZh91AY&SYL\006\n\341\000 B\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`e\377z\371\247\237np\000\000\000>>\017n\000\004\344w\2748\036\342\367`t\210\000\317\000y\347\265\342\212\005_{]\200/\016\243\212[\261\356\363\313\300\n\017\254U\364^\352\335\247\244f{\n\307\254\025\254x\275\306DK\333\036&\242\016{\006\346\354\335\351\357S\343\017o\321\365\330\272\\}\024\317\205cuQS\352\265\320\277\n\222\033\010\233\264\333Vi\326\371\233\337\320\303\246St\250S\224)\216\361\310\234g5\202\241\032\313\215\264o\272\360E\363\366\256\372\250q\304E\221\001\221D\250\rAA\250\n\010H\0020\202\212\004\202\047\254U\"%\025(\024\214AI\004\005\220\200\325\244 \026 \0022@)J\020\030\253\010\"J\224 B\251\020\252\244\025-\021\024.~w\273\362\316\353b\276\222\177O\346=\362\047o\350>\223\017\242\214\271\013\027\027\343>\177\350\177L\000\223\"\215\2013R\252\024\022\324:\215\014\\\t7\261U,\314\240\255D\222\204\002(\365""\212\203\017dqD\202r\245R\005B\r\036\0042\005\002\246\300\314\305g\177N\023z\334p\324s\374\354$\347\267\214\316\312\363\364?\343\350\346\217\371\220\324\327\320\326\203\375)r\007\201A\300C\354\0340-\34026\034\231)\n\252\2508\007\003!!\2552cH\001\310\300\232f\315Md\222\023A\316\364\253\252p\026\022\030!\200k7\t\240)\206b\361t\026\031\226\240\240\031\020 \032\200!\002!`5\320q\240\352?y\207Z\004\247\360\36350?\272\000\374\335\376Y\357\270\201w\312I~\260!\350\237(Qk\213\251\333\373\302\302\301\000\326\204-\004\267\326\347\375\371\220\204W\343\343\025\306\277\256 \310\251\221\300@\216b\272\177\200\2670A\266:\3212i\003{\004\377\tn.\200X;\332\335x\002d~P8*h4\377\027%\"\262\301\014\314=4M?\306:\t\222\346P\005\016HFT\021_\362\n\210).L\260\271\024\010\014\0166?\330\025\021S\322lD\201\0305\002\262(\006\024\313\037\262\\\323\047Q`{\336\t\\\004\333\374\245A\211:\330\014\241\321\035\013O\363\027#:\\p`*\225\250#\374\345\027\204\307\027v2l\234k\376\212\2256\266\214\006\243|\023\022\320\306$\330\352\243\366\212\266\031\205\005\2468\031\230\047KX(9\262\177\244\0135l3q\201\3009\002\3140\005n\014\300\377Ue\220\263\221\306Mj\013B\245+)\202@\177\353\220\371\260R\t\250I\331di8?\366jv\027\321,\020:cq\243I \315\244\302\236?\332,\342\202\366\001\030\220\367\256\306CA\"\001\241\336y\377t\300\032\221\204$<\016\021\020Ih\036\010~\337\210\2411j\200\344pG\225\033\310\n$\014\231\017\367\220\364MA\216\341\320\217x(\301\220\365\177\300\240\264\236J S}\302jUP\242\000\300\336\350\346\377\361\333570\014\177\311\344\nh\020\030\332\253R\254E7\305\217\376`#\001s,\203\337\030\014\005`W6D\006-\345\373\200\226\3456\203@\244\233\003\014\364}\262\246\005\245k\330\202[FA;\230i\024\021\265\220\220\313\367J\245\245R\333\203\201\002/\225\225&\037\364\253d\032&\302\351\002\004\\\030\262\047\253\376\262\325\364(\276\340\321\365\227\256O\204@\206\025t\002\201Ki\016_\275q\272\031\217\337:\r^4) \242\031\352\252`!\216\377\373w\273\016\342\327D\311]J\202\270\032\204\223&t,\375\3609*\235\311\027\005\213\250\220\177\367""\007\311iD\t`\244\374\\r\267\020ID\370\264\376\002x*\230\245\306\254(0\017s\377\301\037-D\022\241\305F\364S\377\310N\200F\321\202k\005\021KV\254a\323\377T0\020t\ncY\265\237\002\243\006\002_\371D\002\356\2619a\202S\273(q_\314\\\232\016\005#E)P\272b\240{\000> \303Th\300f\225\251\234\230\177\341$\032\327\234\026T\010\245\353\370\200\345\003\306\234\204\270R\310\335$\377\21640\3629m\220\\l\302ak~\301\022\315\310\006a,0\034S@#2]\212\r\314\004\032h\234\344\2322G\013Q\330\212\246\032x\252!Xi\250\245\264\354\005\317\346\201\311M\200\317\333S\021nr\021\005H0\354(a\314X\326\007\002\245~\327\205[\331\033\240\335\240*\211.\310\005f\326\027*\013:T\322\210\003\255\265.\307j-\350\205\t\260\354e6\200\"\324c\345\267\301\201\330@\246\230f\303+\275\270!\333\202\256\200\352,\267\240\320\334c\261)q\261\034e\230\r\210\010\247\022\337\177\267\221\262\330\267\271\350\326$y\007\222\362H\362=\024\273\2727nh\1777\017\036m\371F]\234H\237\020O\305W\352\005\343\ny\350\036\222\207\025\003\212\t\304U\322G\220)\307\020\322Pv\002:\372\272\272\263\361\265\376\215\370\311\223\312\024\334\372~\"\"\246\371]\252\021\225B]X\237R\023.\205S\354\240\360W\356\031L\367\025\326{\230`!f\317\364v\003C\027\r\330.\240\230-\201\351\236\305\261A=\207\305\322\275\365\003\201\204Y\007Ji\330\203\02750f\047Y\243\257b\n\202\231\207\001;\004A\301\314\356\364s\355A\260\227\213\t\270\274\251\367\323J\030\007^{]\220%\360n)\226\247b\364\231Ew\215\253\234\313\325\033\261FG\026\t~hAq\300\207\270\257\313\006\024\366\250\272\tJ\317j""\037`{\277\022\206+4\200#\260\2158\305mX\206G\241Q\257\3334\016\272P\327x\255;v\333S\254a+\244|\340\363\265F\220\233j\265.\301\202\230jn\341\317\260\342\215M\343w\312W\323\330\220t\220a\357\267:\321j;\001\316f\213Ks\003\277\260A\334)\212\235\350f;\000}K.U\330\364M*\347\330\207\031\245\242\302\320\206_@\034^\250#[\245\325 \317\266\017qU\232M\000c\373\205\270\212\325:v\024\342N\365E\354T\334d\317Sn\300\036\302z7b\007\301m\214\307`6\003\034\352;>\3656\255\265\035\252\215\221\273\023\301\237h\246\003\327|>\251\226\355\333j\003\212g\226\232\010\035\264\033\302\r\330\265\030Z\300g\355\303\313\257\036\336\334]\321\177\001j\307\330dp\265\303v\324\301\365\211\301\227`\231P\250T\366jf)\235\373PQ\017q\240\354-L1~uS\237\\\n\325S\202\366\327mw\370\352\226?\303\252m\251\335\301\215\375\203#}w\021\332\224\310v\025\037\020\020\033\301(C\357\004\371\304\330/\336\241\373*\355G\350P\364\013\360W\204Cj<\210\355@\373\225\373\305\336\000\352\027\357\027\357\027\324\201\205#Z\026\264\032\201t$\267\201kB\320\200\304\013@\226\021\006\024\0078\007:K\234\016t\034b8\300\342\021\235\007*\016$,\302\324\007zK\244F\241\032\321\254\r\001\330\007bGb\016\304\273Pu\010\354A\311CINB\362W\221\311\337O\274>\366AQ#\020U\204\025\220X\000E\222@\021PUP\204\017\377nq\333\317\314\350~h~ft\333\315D\371\205\250\333\315\2547\363a\201\346\024\037\231\331\254<\304*Nd\351\357\3704\346\237\001\226\261\n{\307\303\314?\2310\275v\r\346\017@\334y\276\202\357\346\343\315\005/\346\"\362\316\017>~n\236k\307\235\361\244D\337\337aO\204Wj[\340=\342\030a\227\335\356\367o\360_y&\337\034\255\317\264\367/\266\336\317w\266=\272${=\376\354\247aoz7\271/\357\321\337\357\206\366{\275\262z:[\246.\337$\007\212~N\034\271?\370\362\026\243\310<\227\222\362;l\327\327_\223\247WT>\360K\013\227\213\344\333\305\353\367\325\013\345\331/\337\277~\375\373\376\330%z_@\237\266~\360\034\253\332\035\241\332\366\235\241\201{\240\177/\335\"H\241\"\305 \242\220RBH\262\022E$U\213\t\000R\020\204X,U\005\005\005Q\211\"\221H\261a\005T\212\n*\250\213!\010*\214\200\252H\243 \"\377\203@:\264 \016\215\006\2455e\342)\230\022j\301Q\314x^\033\242\032(\032:*h\201\242\t\242\033<5\377_\317\373\330\323\323\347\203\347>Ee\227\213\265\022\232Ww/\277\014\302\300\204\254X\260V\254[\370\222%!)\306F) \250\304#\020\014q\3479\305\316\034\370\006,\016u\347\035*\036\250\213# \256I\025FU\037\344\351\024\034\310\346@b\344\345\260rF\340\277!\317\352Hd0\320:\\\020LH*!\267i\251\005\325\264\307\023\026[#\373F\347R(d`c$\025G{S\226\213\324C\024t\342\246\202\004\220#\010\306\022\\*0Tk\007!1\333\244\277\0201\325\253{h\014\211\010\023\276KK\317|99\377\r\263\254H\250\"\322\30488\005\222\032\367\367\266\356\255\327.\3420\303R\232\215U\2515\tb\nQ\024\250\241*\220\214T$\014\342\340\001\245M\n\350\024t\002nNy\212\013\047D\234\033\363\047\016(\367u\224\353\016\242DVE\2042C\010\034L\234\026\3617\363f\n\213\253q\r\371\3273Y@$\262\033\310rs\274\r\034h6aw\312\266\332\010\\\333z/\303\374E\234#\216\3016\033\247\371\267(n7n\242:\224W;\250r\320\336\206\032D\317\250\261\030\206P$\013\366\2322\260a\274&\374M\00337\336J*1\326\246e\336\r\200\354M\316`\320\220Es\377\243CV(5CX\2319\002\345\222\205\347\361i\0217\214\340:/\320 \350t\"gu\243\254\340\\v\344\t\244\266\252\255\265F@9\n\216[2\313X\030\2469\006Hev\222\245\342\350C@\206\264P\322\213\2444\206\263\375Yh\335\226\242j\023P:\203!rA\322\032""\014\306sF\210\252:\001\320)\234U\273\025A\377\337\023\032\254A\332\3462Ca\243!\332\351\342\312:\\\254*9#\245\322i\322\273\027 \323\230D\331\272\024\010\032\035\206\221\025\321\240\3169\303\204\376\361\035\342m2\261\271\324*:\224r\322\\\032t\206\225\020\320*?\304\031\207^}\016\337Z w\252v\177\347\337\324JL\374\006\\F(\232\025\354\366\337,\211\316\205{\203\340\177\365C\360M\213\3658\202k\317\303\360\3748\245\333\020#\211\224\337P\177eX\021\013\001\027=?M\001\342P\215:\2039\347\345!q*\253\212o\240a\n\030~\244\014?\3548K\213R\203\360\252\334\315I\230\245\212\n\216\241\301\365}&\006\177\265\345\"\254\200[\203l\203\274\234}y\230:Ur]D\006\343\035\353\231<\252\014\365A\253\232P\361\243\257\355\031\004\252\027\310\241mR\223\257\353%\026\332/\31342\023}\025?|9 =\322\321\2633\376\251\344\324c?\300\357>0\243\240\270\3415\316s\002\251\024L\356\237\323vD\246\337\253\\}\224\033\376_\350\315cN\274\225\177\263\257v\373\031]\215\177\221\207v\327\274[,dl\032a\300\377\350\320W^\361JG\354\3524\245}\047\300\365\352\377#\377npT\214~\277\305\257@52\311\372r\204c\207\333\227\177\2521\342\367\006W\215\325,\237\232\236\263\003\223\216\023ly\036)b\2534a\304~4@j\007\255\352l:\245\225\315S\243m\363x&KI\032\305\217L\326\213T\036\245\312\327Qs\000\365\220\350\035\235\256\252\206\247s\037\225\333\302?\001\027\263\333\346\203\334?\214\010\343\304\027\351\363\207\231\244BI\004\346i\362yAz*\234$\364\3230\246h\"\270!\210\345\034\250\234\2649\256\201\241\221\304\310\0227\267P\303\035\014\327!\2210\262\223\215\371\270q\252n\010\233p\270dUq\264w\303g[lN$4h\331\003\214\3254\207\024\3018v\315\331S\033\260\310\005L\313\2456CH\002\230\000.\205\320\271\313\200T\375G?2\302h\002hw\373\341\343d8E\305\007\211\0244H\271\271\372\r\006\227H\216d\316c\264\212\355]\246\220M\251\270\275\374\371}\037\216\300\261\371~\253\2752W=\315\235\221K\021\367\251,\355\003\353\024\301*\305b\262\254@\037\303\336\022Kgh\032\205\001\"M\217\332\247\270\2674\024\371\341<\025\262\000\272\221\377\\\037\213U\272j\240\003\026\3341\301\301""\343*\013\200\tW\256\221Z\277\276\316Eq\370\225Y\025\202\270\364\225o\327 \203a\333;x\3161T\220$lDb%\2719-\337\321R_\017\232rrr%\262\202\262+\033\357\303\272\373\001`X\020Y\020`-\ty\327\246\241\262\341\326v]\003\254\235\337=\260\177\243\362\374\276\0371\363K\211\307\223\234M\207|~\337\265\337*d\036\315\265\266m\202\300^\013\373i\346\004\030\013\350W\304\213\341\220J\361\274\nM\n\352\032\202\014S\372\047N\026Oa\230\\\344\221tF\276\264\027\203%4\371\352\243\376*\233\352kG\326PT?\332\252>\372\241\246\365\324\327\333p\367\363\361\353\207\206O\033\204\212\344&\345\301$+\213nBD\216~\273\240\tHn\t\\$\027\361\022\361\017}\014\003X\032\230\357\327\361\265\337\236\262\210\267\354=\005\307z\225\346\265i\026r1i+\t!oYPX,\036\263\030_\333\335q\311G\315\255\376\335\311\023\027dPFH\363\341\263\034N_\030\317fa\314\247\237\2226\275\000\242|H\020&\206\002\360\317);\327\023\221\001)\262\227\257\005\243\240b\360.{\367\240/\027\214e\216+*\275\020\365P]3J\010\047:q\301?l\272\257\2142\313\361/\330\300\314\202\242>17\313a#\335*I$\222I$\234=\023\177\177\370\335\343\200>Qx\r\307-6\355\032\203\200\372DR\047\341\242\354}\211\t\027pa{\010p\047\241u\233F\325G\363p\374\020\000\352\001:\225\352\014\235\034\246\032\365-\322D\261A\232\024f\260\235\367\224\331\273\313\354j:\216\267;.d\342s\327\202g7\244e\010\3056\316\0348\036i\257L=\303\341?\277\365\252\252\252\252\257\345\367>\327\267\340lGh\212l\000\344?\214\077\077\362<\307l\016n7\213}\353\340\025\250\247\004\212\252\252\252\251\013\371\010R\037\256$\020<\376\367\260\001\047\261\346?\210\213\314!\005:E6-\241\006RC\367\322\337k\273\264@\242\250\241H)\026\361\270S\372\353\265\376N\317@\036\207\200\023,\262?\225\335\261\275o[\304\330\256\303b\237\300\354\372y=\342m6\3554\202\017\367N]\246\3206\240\005\356\320M\246\325\376\250m\177\227N\301M\216\300v\007\261\016\000v\233Gj\"\354SX>\237\353\207\236\323\371\177\205\332\246\263O\026\366\315\202\243p\033\025G\2106\212mC\372K\2201\rpf\245\340@\340W`p\037\367C`lM\233\003`;\003\227j\233\023\212\003\2663u&""\340v\251\265\003h\217\277\356\364\327\325\017\327\235\260\340^\007|Tw\315\347`\356\223j\033\\\317\377\337qH\253\243F\2014&\2014C\274\257\324\031)\316\360\001[rt\211\2404!\3614\367\237\273\235\3369\004\273 \271r\366I\253R\232\235K\246\006}Nt\313\277 \266\234\244\225\013\223\211\331g{T\034lM\t\330\260}\024\034\305E=\"\304\362j/\316\330N~\325_\325\353@\237\000,C\354\022\007\276\2369\303\234#\215\240C\302(\360\247\337\224P\320\367\000$\030\020\222D\240M\020\2601\221\244\321(\047h\376\370\361\335!%\275\220O\0359\032\277\032ja]\t\353\240\031s\t\020\375\367&8\321\322R%\262Q:\331\004\262]j2\337Ivj-\022\330\323\375\362\t\077\077\342\307Wo\024\313\322\311v\263\2375\253m\323\247\025\356\3618!\335?oG\353\220\375\300\206\3448bXJ\016\362g~q8Z7\211\302\242\021h\376P\017\013GF\022H\252\252\252.\260\220\357\0103m\035\210~Sn\357(\001\355\020\344&\210w\020\350C\010\047C\212R\322\226\224\264\245\245-)iKV\226\371v\207\233\367)\374\350C\332\363d6\332\233Hy\205U\222I$\223\313n\260H\216\225\330\0470\233\024\313\177Jj\343\245\253\252G\214\004\315\234M\304Z\341\255\000\225Kj\245\252\245\252\245\252\245\252\245\252\245\252\245\252\324\047>d\321\225\031\257R\t\230MA\225\351\217\024\333s\204\000\364\020\342\357\272\252\253\303\263\212\322\036B\036\331\346\301\"\031\260LuQh\226\333F\2059\004\310JQ7\363\350\213!kylU\001,a\024\240\021\030TR\241QJQR\262\026\004 \225\220\251Y\nH\003\030\tY\nP*\252\025\024\245\003\360\206\217\3406\177\363\222\202\r\342\361\017\335\244P\270\016\224.D@!\034\350A\304g_\017I0\363\010\363.\256\331\323\211\354Od\310qI\016\366\047>\033I!4\026h\314\334\343ma\373\271D\264\260\335\036y\314dW3!\\\013\265v\342\223fd8\334\337\223v\n\002\203\024\223D3Q\016v\206\306\346\215\207fo\271\277\341\343[N\256\367w\301o\003fm\334\346u\324\232\223\247A\340fjjB\274H)\215\350\3756%z\n\274E8\221\204\220\201 IB\034F\226\021\221\205/\346(k\363}\017\315\357\022!\342\177tO\207\234\222I$\222I$\222~7\047\273\343]\363\326\032\004\360\262a\242\217\247\365\to\200\231\357L<\350\342\021\373\201\023D1""\304M\0219\323y\3042@\350j\262[\247\263\177!G\355m>\250eD\262\344\336A\274o\010\311;9\327\337\260\351\243\302\2527D\215\343\"\006\006\031\204\240O*RF\022R\372\312I\211\207w(\223\305K)\307\324\237\026\364\321!\356\330k\212c\014\312c\014\365\323\030fS\030fS\030g\357i\2143jc\014\375\252c\014\374T\306\031\364\323\030f\324\306\031\351\2460\317\222\230\3038\2460\317\226\231\337a\255Y.\250\260\272\2460\317\216\230\3036\2460\314\2460\316\372c\014\336\230\3036\2460\317\322\246ma\256\373%\325\026\027\212e\260\316\373%\325\026\027\212c\014\336\230\303:\323\030gJua\236\024\331\206Z,/\342\2460\316\352c\014\356\2460\317\nc\014\375\032c\014\360\2460\316\324\306\031\224\306\031\335La\235\324\306\031\341La\236\024\306\031\224\306\031\3051\206v\2460\317\242\230\3038\2460\317%1\206xS\030f\364\306\031\326\230\303:S\030fS\030gZc\014\312y\244>y\330M\020LoLw\250\274\316+\000\034\363\330\246e?8\224\215\244\212\252\252\242\373T\334\205\201\235\336%\244<\273\300\206f\213\216aq\314.9\205\3070\270\346\027\034\302\343\230\\s\013\235\210lC\316C\303\276\036\037\245Lya\257E%\3259!l3\232c\014\325;k\307!\267\261M\225UW\035\234]\310z\t\047XC\274\207\363\373}\272[Kim-\245\264\266\226\322\332[tC\307\240N\371\276\223\240<`\206|\020)\220\\ \353h+Y\016\301\224\231\221L\225QL\225QNf\\fe\306fZ\342\\\277s\251\366\276\327X\020%>\017\264}\240\372~s\347<\277h\304\374\336a\353\020=\236\320$XFD\203B{J\t\t(}\245\231(\243\220\364r\364\365\tq\302^%\271\247`\227\002b\247\210\230)Hz\216\213\350\0236\026N\234(\274L\372D\224\016>WI$\222*\252\256\020\356\003\354\3100%6E\024QE\024\235w)\250Kf\0239\323\014\3612\373\250C\261L\340\212e\001@H2\001\003)\006@\347\351\355\323<\005\024QE\024\314\231\2232b\266\333m\266\333m\266\333m\266\333m\275\274jv\363q\244<\2047!\345\361!\2648\362Sm*\252\252\252\256\375\210097\021\030\210\210\210\210\210\210\210%\353\254^\375\266\010\220\374\373;\220\235UU^\317\351\270\273u\316\275W\257]v0\3438\3433\216\035\346\367\231\275\263\215pq\306g\034;\315\3573{w\233\336f\367\004-\014,\320\303\003\235""\013\341\205\232\030`\363lw\027(\352\367-3\324\033\246\204\264\030\364\001\327\220\366{=\233+I\244\366_\302\355A\217\271\312&[\022\342\003\330|\237k\355O/\355LO \373Q7*y\047\254\220a\031\031\nW\326\026$$!)|\202\301G\256\336\241<\0019z\304\210w\013\346$\004\372\004\260\224\r\342P\224+PA\356\022\tx\230\t\307a[\230\027\301X$\010\244\t\002@\212@f\006`f\006\352\247\010\230\302\343\007 \271-\211![\322Ij\330\337\233\304}\201^w\240!\026\022\020$\220\244z\022\303\t\nNt\256\217O\271\367\025UUUW\330\244\223\360B\027\351 \207\332\367\357\314\375\323\356n\236\221UUUQd:\022D\206\307\353\004>\253\016\275i\320\220D\201\301\016\201\016Ba\017\212\264\271\225\355\2749\357\2460\317l\2275/\300\\\356\315Gc\216j"")\034\324\264\236\354\324\367;\247owq\224\271\225\302\346W\013\231\\.ep\271\225\302\346U\301\314\257\307\375\315?\347\267|5\037\016\367\277\274;\205S\346{\376S\334v*v\207p@\221\222FR\207h\226\220\204\204\244\356lB\273\270\317\252r\277J\235aBs\376\273\365\316\300G\274L\347\347\004\305K\204\210`\047\216\221M\002AB\300\224\230\350<\204\315\342$k@\220MBf\270J\004\360\310MBR\0322\300J\364\351\360J\370Q\204?g\302\022\022\022\022\022*\242\305\362\220\206\231 \261b\305\213\026,U\027h\231\346\355x\202A6\t\344&a7\ty|$$$$3&d\314\231\2239\347\232\315E[m\266\333m\266\333m\266\333k[\0010\023K\0254\t\274%\203\364\211z\224K\345)\346&\004,7!\350\333H\242\212(\242\213\347!\320\363\355\340Ck\233\020\337\331\225\213\026,X\261b\305\216\336S\247\206\323w~|n\257/M\227\035S\240C\254\273pA\201\301EUUUC\261z\357r\261\275\341\031$\345\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\343e\307T\332\3368\230\353n.\256\357\033.:\247\313>\217\256,\361\311\363\375V\223/?\335\303q\360%\021\2336e\314#0\227!\300\"\366\204\226A%\300,\311\204\230\"P\276\346\210\310\022\024\007\270\250B\025\356\373\274E\003\324v\304>F\373\276o\037\317\241\000\324\353#\030\014\211#)]ci\"IA\256\231\355\004\374}I\317\365\321\004\362\017O\210\224\245\311}U\323\256%\3375\323\367y\220^HZ\252\252\252\277@C\367\344:\2044\020\372\212B.\304\030T\212E\"\221H\244R/\305\355\310\217\031\306\247\326v\177\214\354\353\345D9\2219\340\005\010s\210Ti9\322=o\250\023xH\t\302$\001:\304\241(O{]\205\342\\\tn:\004\372`%\342\301X!1\274O5?\001?P\233\020\347M\010Z\252\252\252\277`\207]\004\010\317\202\220\260\365f\354=]\366zXg\337\260\306\031\252\\\246\333sO\230\203\0032\333m\266\333m\266\333m\266\020\327IB\t\004\203\010\2044\211JP\203\215\311\233\256\215\242m\276\311\177\256\213\2011\023|O\240N\320Mb\\%\t\001/\341\210P\002M{\266_\277a0\022\310$\022\010C\353\010$;\020\347\235\371\345\324\326\263Z\326\265\255iUUUU""qZ\374\315z~\354\362g\307\237/>\273\370~D\367\365=\351\360\323\336\221\361{@|\023\306!\"\024\217\210\225\006\237\026x\234<\335)\327\335\\S\332a\257\303t\360\303[]>\361\370w\330u\r\355\335\370\277\022\252\252\252\252\357\220\337\341\247\334\337\322\252\252\252\252\277\047M\241\307\024\356;\273\261\353\316\333\367\027\251\005!\235y\207_]8<>lUUvq\304]\332\246fff\306\246\246\014\344\263\220\331\313\342\341\n DC\304\004(\201\021\017\020\020\242\004D<@B\210\026\210x\200\205\020-\020\361\0015\264(\231\r2\363!(b\020DC\304\004\365|\360\013\014\203\353\000\207\340\277\347\200@\307\325\266\320BsM\240o!\266Cof\230\303;S\216\362\036l\206\336z,-\274+\014\355qZ\3038\246\230g\205%\312y{\267\266\333m\266\333m\265UTUU\002q\351\327\252\302D3fL\372(\342\004\305C\035\3453\266\267\235\341\317\2157\333z\336\323.V\326\326\326\326\326\326\326\326\252UJ\251U+\353\362\027\261\356G\350_\240\357\376\337\177Z\247p\207y\031)\036\360*\r\017x\367\376&\367o\rzx\271nN\\(\273\tj\022\204\212q\215\030\240\023\320\t\025\220BA \224\"u\002^\tE\201\"A \032$)\004\203H0\022\0204A \220`\006*\252\252\252\252B\356\252\252\252\252\252\252\252\252\252\273\020\334\206\243\261\017\177\000\234*\252\252\252\252C\255!\320\237\203R\023}ZW\243\306\213\311\013!\324 \244\021\022\020y\207l\2477r\274\274\350\277\036\345\260\315\346\330!\014q`\2041\305\202\020\307\026\010C\034X!\014q`\346\0041\305\207\257;\262s\354|\337u\324\372\207=\376\273\305\342\347\305v\322\021\"\021q\310\013\202{$9\\\007S\311O\261\221g\272\237!\000\3677UUUU_\263\357@\014d\262\036\366\276\220\206b\252\252\252\257\006\3446!\366I\000M\303\347 \220:\220\353Ht\252\252\252\252\257O\207\323\363\220\353\010nC\343\372\210w\222N$8^mUUT|\220\206\210v!\370:a\016\304<\232\327\205\252\252\252\253\307O\047\220!\311\014\316y\220\352C\223m\225s333&g\036\036\037am\274Km\266\333m\266\333m\266\333m\266\265\256\023P\231\tB\034\031j\206\254\204\326&\221\2778\232L\342h\273P\233\307\274HX\013\304\3076 %!\234\023V\254a\252\325hZ\327\0232\342f\\L\313\211\231q3.&z~>\304\010\023""\357\007\313\271\272\3661/G\241\357\200#\306c1\374_\036\352A\211\030\330I\234\222\304$\367\013\030\303\347;\271A8F\204\355\023\260\273\363\225\273\177\024\362\315G,K|\364v\t\363\251\240\321\364\300.\022\365;\004\325\355\023\304L\257L\275\264Z%\273\250\355\315\361\220\366$4S2\333m\266\333m\266\333m\266\367\220\347\307xt\321\201\3533=\365!\277(\024\365/q.j^\t\327\235I\047\020\356\356\356\276-\303{\335f+Y\212\326b\265\230\255f+Y\212\336\223\333\236\254\2315\362\214\313\2515&\254Mq\363[\000.\000\027\231\302W\204\230W\205pD\261l\306\215\233\256 \007\214H#\367w|\247\337\010\024\211\371\230\204\013X\001\013\226\221\270\004K\200\037\020C\354S\354qA/\273\352\346\370\374\330hq\201&\230\026C\236\313L\266vv\326f\372\371\014\271 j]\221\336\264\253\004V-KZ,QV(\253!\234qcd\272$8\r\315M;\360\356ow\312\334[\264\337F3\003[_@@\366\200\344 \215\000r E\344\023\247\343\327\337]by\251\345\204\023\212\304T\360z# \264$\314\047\254L\345)s\010\021\004\363\022\302\r\352\266\270M\047\227*\203\354\022\360\300\022\tBP\227[\240\206\020\314UUU\027\200\207\305\335\017\213)\255\336\241\006\007\226\344\303M\031D\267\333F\202%\252\226\252\215\010\227\342&\310\002g.!\016\24431\372\377\223\363\350\207]uUU{?#\210\274\233\261C\344N.=\353\257a\002\032\313k\270\341\272\361\"$S\371[\242\347\022\2014\tEk\3115\353\242\321-\242\211\202\006\202)\257^\275ZX@\206\001taX\207\207#\006\001\210\013\014\"!\341\310\301\200b\002\303\010\210xr0`\030\200\260\302\"\036\034\214\030\006 ,0\210\207\207#\006\001\210\013\014!\342(\256F\014\003\020\026\030CDR(F\014\003\016\026\030E}\347\273W\315\257\321v\314^\260{\236\324;\270\217\355\2603\252\366\202\020^\324\010\235\253\305\313\313\311\355\023\325\2717\371\250\375\210\226\343\2436c\3553{\352\354\252\257T2\023\243\240L\355!\250Mbax$CK\361\277\270N\221 \226\266\241-UUU_\016\275\244:\020\332\303\307\323O/q\0161UU\331\323\213\243\224\350Z[Kim-\245\264\266\225\251pK\342a\205""\026\211m\225i\244K\324\320&\261=W\246l\364j\304H\206\344:\236\265\037\224\202U\035\322\250\305F*1Q\212\214Tb\243\025\037>\357\260y\276\256\225U]\331W\030g\261q:\020\017\254\202Hk\320\373\047\267\355\334\361\267n\355\366\366\000\206\333;\233qs{vV\233\331v\033\314\302oe\330o\247\026\343/\005\3407\231\204\336\313\260\337[\\7\336\346\366\354\305\246\333\\\332\335\260\367Y\326\037G\231;\341O\231\375\217\331\305\260y\332.\330\343\215\266aI$\2211\220\210 \3463\031\2707Q\201V>6YD\007\000\200\345p\226a&Fa7W%!T\314\342\231\356\333\220F\023\200Dq,$)\r}\236\220\355\365S\354\355UU]8\342\361\000\207B\035\272g\354{\374\375\311\024P\313\205>4E\047\010\244\365QI\360ow{5r\322\\\264\370\263\343\354\336\310\242\236\227]\335\354\325\313I\264R(\244\345\024\237\002)J):\"\221E\047TR(\244QI\346E\047\010\244\372\264R|(\244\362\242\223\204R}j)=4Rr\212OI\024\361ow{5r\322m\024\237\n)8E\"\212N\364RtE\047\010\244\362\242\234w\356\357f\256ZNQG\277w{5r\322r\212N\210\244\355E\047b)\333\341\273\275\232\271i=\364Rx\221I\342E\047\202)=\364Rx\"\223\271\024\212)d\343#{\372\235x\"\212OB)<\310\244\357E&\321H\242\221E\047\215\024\235\272\223\270\354\340\343\202x\"\223\347\"\234\347\257\333\305\343\203_L\212\\\267j\244\236tR|\264S\307\316\356\366O:)\337\216)\024Rx\321H\242\232\363\242\235\")\253\226\222\345\244\356E\047DRuE\047\010\247w;\273\330\304SW-5\312)=dR\\\264\212):\242\223\312\212x\363\235\233\331=dRq\256\351\346\316\0368\047\256\212N\250\244\356E\047\241\024\234\"\223h\244\361\"\223\324\354;88\340\236DS""\324\362\356\357g\245\351\356\357f\256Zj\345\244\357E\"\212OB):w\356\357g\311\307\024\363\373\033\273\331\253\226\223\275\024\235\250\244\352\212O:)\317\263\273\275\223\224SW-\047\312E\047\235\024\236\204Rw\374?7\177\211\352\316}\354\347}O/\217w{5r\322yQI\312)6\212Oe\024\236DRy\021I\312)=dS\331\340\36588\340\235QI\330\212OB);\221N\271\346\331\275\223h\244\354E\047DR(\2435=\231\251\350\360\347Z\236\327\031\047\273\305<\360\207\330!\304\207\022\010\035\344=~\252\020\355\321UUUUR\032\322\252\252\252\256\323\222\035\301\004\203\271\017Q\nC\210\337\322\047\006:p\0205\t\004\322$,&G\253f\374\r\333\250\352C\306\204;\344:\220\274!\306\324\352A\322\032\357\246\322\005\272B\356*2\022]\002\355\3524g\316&\335\031]\256\330`&\360\237J\251\235201\262\006\"\"q\246m\234\345s\342\001\010\025\020\031\024\n\321\353U\207GwW\251\020\210h\210X\202!Xh\210Xtwux\000\206\360\321\020\260no\014/\206`a\373\031\231\234\264\344\340\037e\3541H\322\317\324\002:\003\241%\320\035\202@\272Aw\220m/\333[\251\005Q\020\0344\320-(\023\tt\2111\322\233\247\020LD\375\343\245M\002X\037\021;\374\371< x{(\276\3641\270\t\004\201\363\207S\343!\305!\240\230B\375d<\010|\272UUUUUUUUU_!\264\220\366`\217\250\010\030d$$$$$$%\001\361\352\373\262A\007\254\001z\323\323\326u\257X{\272\277l\364p\034H\267\227A\365*\365\200\021\003\254B\007Z>\257v\037\234C\317\352C\325\337O\267\367=t!\357\342\364!j\252\252\252\272\326\244\3379\047>\321=\276~\237\266\333m\266\333m\266\333m\266\333m\271\231\231\354\244.\334\241\317\325L\324\016\244;\316\356\227D7\370P\351\226r\206sOL\201\016:t\245\264\266\226\322\332[Kim\311\240\001,\267\336\036n\361\306\020\302\214\002\005\201`B\312\217\002\037$#s\323\352+\003\340\335\n{\320\017\250\302\007h!\340(E<\021\201\340<\236\230\036\236\3722\023\351\023\352\023\250O\033\363@\315\323D\373\004\210h\022\327\300\277\344\247$:\327f\252\253\263\247\027\241\010|\004\010\200\220=)\364\367\365\035J\275@\231\365\362s\251\267\231+\230S\0009\020\016a\002#\314\214Nd\236\315<\204x\221<%\211\024\262\2378\220\272\353""\211)\026\020\364\020\003Ff\221\267\013q\033p\267\021\267\013q\033p\267\021\267\013q\033p\267\021\265n\031\230\215\246\221z\217r\000p\n<\000\367\n\367\001\334\035\232\177\017_(=\334\205\025Tr\"~\301\233\nx\200NQ?\010\213Hs!\036g\233A\233_0\224\207\330$Hb\373p?\230\302\006b\252\252\212\264\010fk\326P\026Ed\262\221e ,\244eH\275i\031l\2449Z\266\301\263U\304\005\264\221H\312\301d\005l\022`V\322\034\342\332kw\326<\214\031.8\310\t\352\007\324D\023\306-\037\207\177HzN1:\002\047\0475\034H\231\227\357\237D8U8\304b\274\200\034\236\337\272\033\373\342o\301\022\347\374\364\336C\022F\310b\3321#\022\257\210\014Kn\302\334v7!\341\213\025\267\226RZ\022%\235\205<\350=\0100\036\201c\320\317\016A: \010N~S\227\2249y+\240\256\027\305^\271\212\260\207\033A\n\302X\034V\025\200C\030EM3\004c\304#\312\243\021\345F$\345\016_\300?\252~!\320\213\321\001\177\331\005J:\304\024\347\036s\235\347\345\351^5\016NAHq7tr\321\310\270\204s\003\377\021\222$>0\345\0049\221\010\201\314\241\003\2318A8b\251\305\352\005\342\324\006\374\322&\3057\033.=\004\364`\206\2032\304\201\005=\212;\001\r\312\207\302\201\336V&\362OWh\000W;\2048\022tn\020$\005\003-v\250S\177\001\006\225\r>iq\356\342x\305\372I\351\355\224\364\177\025\260$r\202\312\232YZ\306\315\024\275}\323[\374\227\250\232\336\341\253\243b\353\024\0203\355\3178kS[\357\306\223\321\334\363\251\364\303\2168s(j}\346\347\2753\366\3277\233\014\260Z\265\021\211v\223|\266\321\312\323t8k_6\332\243z\267:M\037N\345\247\350\353\307\341k[\203\346\326mtg\336/\024Q\324l\001\003B#\000\310\214\002\000\310\200\272.};\254-\260(XE\331\023\231>\277\323\365\237\013\177N\330!\262.q\223\240\300&ge\353\241Ox\203\002M\222\0041\024 C&EA\235\373\330\001\354\252\021P\030\034\010c\344t_\2105\311\374\272\326s\340\241\213\305=?\036S\363\273\233\002Gr\013*iek\0334R\365\3535\277\246\365\023[\3345tl]b\202\006~<\363\206\2655\276\374i=\035\317:\237L8\343\2072\206\247\245\272\364L\372[7\233\014\260Z\265\021\211v\223|\266\321\312\323t8k_6\332\243z\267:M\037N\345\247\216\274zZ\326\340\371\265\233]""\031\367\213\305\024u\025sa\013\3205\311\366\232\315\260\241\213)\343\335\224\360\356l\t\035\350,\251\245\225\254l\321K\327\244\326\3767\250\232\336\341\253\243b\353\024\0203\323<\341\255Mo\277\032OGs\316\247\323\0168\341\314\241\251\342\336\035\023>-\233\315\206X-Z\210\304\273I\276[h\345i\272\0345\257\233mQ\275[\235&\217\247r\323\307^<[F\215\351\277\243E\3335\335~\354t\343\205\216r\340\241v\251\005\261\026\242\247\031\241\316\202W\2706I\370\275g\032(b\325<\272\345M\233\315\206X-Z\210\304\273I\276[h\345i\272\0345\257\233mQ\275[\235&\217\247r\323\313^<\232\326\340\371\265\233]\031\367\213\305\024~\347\241\010\252E@\277\220\336R\302\361\211\021.\210\r\240\340^e\242h2\267xmI\372^\266\327e\014[\247\243\303)\345\340\330\0229AeM,\255cf\212^\275\363[\372/Q5\275\303WF\305\326( g\256y\303Z\232\337~4\236\216\347\235O\246\034q\303\231CS\320\335\347\323>\206\315\346\303,\026Z\214J\273I\276[jr\264\335\016\032\327\315\266\250\336\255\316\223G\356Mi\350\327\217CZ\334\0377\273k\243>\361x\242\216\242\256l!z\006\271>\323Y\266\0241e<{\262\236\035\315\201#\275\005\2254\262\265\215\232)z\364\232\337\306\365\023[\3345tl]b\202\006zg\2345\251\255\367\343I\350\356y\324\372a\307\0349\2245<[\300\372g\305\263y\260\313\005\226\2421.\322o\226\3329Zn\207\rk\346\333ToV\347I\243\351\334\264\361\327\217\026\265\270>mf\327F}\342\361E\036F@\201\230\"\330\002\006\001\021\257\227\203\002\000\305\352n,\275ChO\316+9\325C\026\311\236\271O\036\255\201#\301\005\2254\262\265\215\232)z\365\232\337\312\365\023[\3345tl]b\202\006z\347\2345\251\255\367\343I\350\356y\324\372a\307\0349\2245<\233\251\364\317\223f\363a\226\013-Db]\244\337-\264r\264\335\016\032\327\315\266\250\336\255\316\223G\323\271i\345\257\036Mkp|\332\315\256\214\373\305\342\212@\200\353c;n\317K\365\343\027\204\023\223\321\362\016E\304/pm\t\371\322\270\333\n\030\260\236=r\236\034""\266\004\217\004\026T\322\312\3266h\245\353\326k\177\033\324Mop\325\321\261u\212\010\031\351\236p\326\246\267\337\215\047\243\271\347S\351\207\034p\346P\324\352\335O\246W\026\254\370\236\\4\2640S]\244\337-\264r\264\335\016\032\370\305\266\250\336\255\316\221G\356\325i\343\257\036-kp|\336\315\256\214\373\305\342\212\034\310\200\036D@\274\3757\034]\264u@\351\214\315\336C\365\306\220\240\216\006\227\021/\320=\333\273\262\231\265\260Nf\202\027\373\206)i\334\347\027L\305\307\262`~|\200}\363\370\273\354B\004c;\213)r\000A\020\271]P\275fi&\026\342\3203\353\0171\370\377\235_\310\307$\300\201\003~\253\3112\324\356l\030\266]!&\211kEnt\354\227\227\334?\224E\006\000\334\305[b\220\"j\005%\227A\371;\226\360\272\250\311\20620`\314u^\2255_\360\302\023x~&\234\261\377S\201&\342\363\003B?i\211\337\034\023\376\005\037\014?cv\201u\001vb:]\233,\206\334g\"j\253jK|*\022\033\221\376`8\206\356\276\004\233\247+y\265\357\033\373\353\323\324DHHD\210\302\355\321\000\023K$Pd\004 k\332Ly%\321!\021\"%\257\243d\255\243\232\374\265\215\214t\312x\310\204\344Q\007\352O\2737\332\025\234\264/p\037\201\256\023\213n|x\277\207n\276\312\324M\262\022i>F\371\317\303\273\226\276\340\366A\006$E\223\274\036}\036\264F{\355v8\231\036\374Z{>|\047>\274!\013s\230A\270\235\207m\371/\252\017\251\\\305ie\032\022_\277\0479\217\032\340\0145\367\373\007~\207\256\360\337O`\264S\016\353\036\241\366\203,8\240\020`:\006uOu\252\344\316?\022\375\034\034)V,[\030\0175b\354\241&A\030Mj,\221\261j\227\0371\355\357\357\356\367\373\373\377K\222\035\255t\230\034\004\274;\373\271\314\035\027Zh\270\355\270^d\036\301\030\257`\004\016\300\342\344\344\344\242\206\325EGaM\254\220\2075uL\030_\022\360\204\226(\230\021\265\242\0104E\020}\237\037}V8`~\341\210\032\037\247\220\276b @\025\006?\231\213\013\223\226V\353;\033\031\306)_\324\\\220\372J\301\037\354\365\031<\357r8\204]<\006\317n\334\346m:\311\274\326\367\333y\223\277\032C3\0325\220?\010\t\253,wi\314\315\246\333\033#\307\r\241/%i\002\215T\266)\302\030\226)\306\006\006\001Z1\205\025\204R\207\307\304\361G\305~\217!>\243\303\345\316\247\222x\227z\013\212\207\261\341\200\227\257\205X\226=\222\300\364\n\370\251&\003\030\206\014`\336\276\353xw^\333\307\026\363=@\330\206\247\004\016\207\253\025\021\317!\373\254\200\255\212\263X\022\312 _\265\2134`\343\010sq\001\203\340\0305dZ`g.\213`\242\230\233e3\267c\215\270\343\210Y\255q\306\326\333V\333m\266\322\333m\266\332\264\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\265im\266\333m\266\333m\266\333j\322\333j\322\333m\266\333mZ[m\266\333m\266\333m\266\333m\266\333m\266\332\000\000\000\000\000\000\000\000\000\000\000\000\026\325\245\266\333m\266\333m\266\333m\266\325\245\266\333m\240\007\271\306*\000\000\000\000\000\001\364m\240\000\001-\266\255\266\325\266\333m\266\333m-Z[""m\266\333m\266\325Z[Km\266\333m\266\333m\266\333m\266\333m\266\333m\266\335fe\252\264\266\226\333m\266\333m\265im\266\333m\266\255\266\226\333m\266\333j\322\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\357\005#\021\256\036[\010\214o@\357X4\020\010\312\327\222\311\3755\024\220`\300\376H2\000\002\005\370\277\232d\374\n[\010Q\310\032m\240\307\376\340\376\026$Q(1\2703\223\272\211\037\206\234Ons\213=g\227\205\327p\335\302^\233O\301\004\035\027\342n\325\266\351\370\227\247\035\331\364\374\343Y\223\211\260_\325\226\273f\253\327j\0101\304\343\\\\\270y\362\3042]\2601\247\351l\321QZ\350hdDD\010\014-\243W\251\367\251|?#-\t0\016\251\343p{\261lC\211f\334\306\333\224\225Z\021\200U\334UK&\304\246-@\022;\256\364\347\263-\263\314\227\007\005\315\016\005\225\303G\016K\233;\t\014\357\243F\253Q\007aE(\007\240\264\300)\361\312\n\275\027 !\255ZR*3\014F\227J\251w\315ETxn\333\n\314\000\246fd;\351\001\250\014\033\030\252\321:\022-Cu\025\364\233\260\327\271\355\035\361\323\366\017b+F\255\326\262\243\"\252\250\202\246q(\200\002`\304\272),\006(\000\311\213G\221\217\230cl\327P\245\235\020\272h\332&v\"v\215\t\0324\0329\340\004\013\277c\270\266\274\301\314\210\r0=\203GEV\010\026\027.\036\230vY#\231 4\002\006A\240C\032\026\360\036\2660\034xI\355\351\016\373\256\265\253*\222\200\370\023\277\300\321\330-\345\334\302 \370g\253\324\252/\253\351@\322`P\002\300\003(\240\rn\205\232\361\2565w+\201\354B/tC\201\024e&\302b1b;\022\014a\340\013x\003p\3450[ED\375\264\020\215\000\307\226\352{\254Sc\361\2172\047p\014\023\270\030w\023\364u { +\361s\337\232\214\024\0242\036 q\360\374\013\222\332\037\007\034|\036\261\206\010| u\216\010\363\242g\014\371\020\370\217\267\277\335\324\235\340>7\246\372\\ac\206>{\270p\210\302\357B\261\016mE>?\2112wN\242\355=Z\276\341\317]\271\370\371\335s\031\262\263\2223\036K\001\240\261\253\267n\033\023\0472\376\223idT\250\210\241a\266\344\252n\n\272\\\334P\367$\206\016!\345_\272\202\016\214\274~\037,3\023\004\320\033n\343\n3\341\272\\\234\023\037\236\256*\3346+hQV\226\334;\360\n\260\002\273\3438K5\004\307{5[\326\007\223\344|\024\362\003\311\367=\346\203\253x\345>~\243\214\261l\315\241\023\264S\275\026\017z\316\363hI [\t\225\206a\247\334\2703]b\nP\016.\334\216>8\343\363H\362\\\023\032]\314\316s\264\352\275\254\225\017e\3149\023\014\013Ie/\260oB?,\340\005\255\252c\345!\231\323oZ\315\004\311X\202T\254Ejtb\021\3506\347\313""\231\002F\024,\0300\006\002e\343\313]\302\2664\346\034d\247m\361\217e\201\350$=p\"\007\254\004\365\233\357\356\373\202\337V#}\275\235a3B\303M\270g\275\253\246\004\330\310\020%4\330BC\030B\351\022\204A\213\351\265]sF<\365\023\237\260\313e8\303\262\000W\312\306\035z\325\330\373h\025\250~\374\2453G\346A\006(\203X\335d\261\367\236k\343t\020\303\n\321\300H@\210\356V\222\235\215Q\362Y\300\t!\263$A\214\340\226\023h\226\347&\242\371f\0247\221\217A`\273\036K\312\r>\021\371\264\350\260j\r\373\216)\237\324w:\354\347\211 A\212\204\215&\262r\307\031\270M\320\2541\204/\314\203\000\265\240HJ\032\204\205\305Qp\037\237\305\266\316>Om\376[\332M&\234\206\333x\202\344\362\023\334\371yn\351:\001=\257\201\254<{k\033\371\353\305\240\353\001\361Q\212\370\253\017\027\237\360\355(\344#R\032\3715\325@\226\272\301\352\347\365`p\2740h\243\356\232\023\210\210p\207\302R\005\241\300~\322V\031\001\370\2336L\253\313V\360\322~\200\325\255\304\305\367\005\215\223l6\t\214\024\272*\350.\327\303\274\"\r\372\223/\264.t^\356\216\350\006\211\r%[\353\3074x4\006\263_l\344\357A\007G/\253\014\301\275\246\361\3035xh7\047xrhn\251\345-j\220\225\320\343\263ns\047\014lq\273#\033\300\313b[\035\235\234\243D#\350\205NR\331\207\323F\347\036\361>\243\005\261\361\2554o\270s\340\177\241\345\323\356PI\264}\370Z\213\365\270\200r\353\351\240\320\374\222Y\007\240\333\343:\334\340\301\236*\313\266\311\336@\257\350\340~0D\325\036\230\001\010w@\222\020\r\362\331\310\331$\300.\371\201\375uQ\367)\356>\255ga\241*\241k\rW8s\244\205\270\245\331\240yfH3\202\030Ft\206\317\310+\215bkj\352\257\316pW\276h6<3\260\253\214\0356>\224\020h\366\t\342\307\332\376\244\020dA\006(\203\331\216\213\026N<4\216\014\310\357\364Q\344e\233\037\350\376^\211U\2618vNi|\024\366FU*$\371\344\332\220K\252HW\226\347U\037)I\024\233Ht\251\314a\216\\\204\332Xv\372\323c\321\014\304\375\374\270\303\233]\260Y\014\311\247Mi\350\010\047\221=\215\314\236\317\241\202\010\254V\n,\001\025\213\026\014d\204a$\304^\000\271\304$\206\211\272\3649y\264Q\334\234\014\367\047\247e""\025uec\034s\027:\021;@`\235\242D\355O^\261v\357~\266\033/@\303\346>o\275\375\007\275*\013\000.\001\033\221\006\360/\025Z\300DBGR%J\224$\205\304\023*\325\361\256#\2115\2561\370]\315\031\034\003\335\334ww\370\352\004\232\236f>o6f[\273\260C1\244 \246>cf\373\212\306\212\205\374\027\324\304/EP\304\202\230\224\3442-\330\306\373\257s\326l3b\031\250\246\025u\364I\215\327L4\236xb\034J\235\002\221: \317\260\036\371\346UP~\002\226#\030\305k=\364\251\0273L\222\326e0XK\217T\037\255\210\225\017/\177\300\3461\0034\346=\310\2646\207\226F\202B2z\r>\351\356\231\234\320\025\007o\213i\013\267\367\237o\226d\302\331\275\331\263b\337y\205\367\005c*\336\352<\341\357\274\3337\000~}\000\350\270Y\021.\315 \032>\233\274vC\273\013KO\267\335\355t^\247\271\300`r\016\233~]\021\206\223Q13\340\253\363\267ID\204\221d\204\234g\316\326 ]\010Tl\357\3746]\205\340L3\312$nj\256S\275O\004\3572 \337\337\237\230\300\252\004\327X\206\n\250\376\017+8\343k\340\006T\222`2\200\306R\264\266\372}\\\033\204?\006\006u\r\267I\003\\\210\233\035G\301\006\374sb\230\047>\030\306\201\333,UE\235l\316l\035\031\\\007\250\352\032_\354\203\315\236\273.Lm\356j\2601\021\235\3052K\316\366p4\330\327;\031\031{r\347\006\273\343\352\335\352_j\312%=MXX\276\341\246\336\207\341\002}\251S\031\314\215^>\240_&\202IA\217\235P\221\014\375\010\214n\356l5\340\267\343>\032j\013\313Y\374\023~,uC\311\254\037;\231\212\367\353#F3\351\264\323z^\247\224\241\252\032\"\005\241\232\023\035\r6\212\350%\\\250\226X\000\356\201&\311I$t\321`\002\246\267X\253\313\016\352\320A\206\n,\240\031\232\021\200\022\256\323\317\350\217\257p\307\311\332m\364\220\004\302\230\027!\256\2344\002}\300\332\0227R\212mJ\357\022S\371E\220\3361\363\321\004Q\220|\321a\271\022y\001\210C\315\332\213\212q\341\317w@\257\202,\017\001\360\364t\355;)\344\206\315\225\253\240\254\327\226J\206#>\021\347\365\272m\007Z\313\253\324G\246\323\256M\330u\364J\253\r\262\234\020\365\363\311\256\307\010\275\334@5\r\255P\310\310t \344H\261-\215\213\rLr^\245\r\270\217\353GA\014\347}vvS\3276?\251\006""\nt\014\334\237(~>T\nsB\320\324\314CX\210\020\004\301x\276l\242\203BL\301Z\006\350\264\340\312\003Y\273\034\234\331\211\262\027\027=\262#\206\252t\244\224\217W\316\330!\000\272\340\r\301\356\364\371>\357\332\362\236\007@*b\346\tT\307A\204Y\002\047\021\222\221x\362\303}\215m\341\307H\215\241U\201\341\347\047?\263\316\375y\274\246\206J\335\363\016hIC\336Jqh\047\270\022\000F`\201\000F\034iv\243\325\001\214=KGz`>\016\201\302\022\031\206\253\341Qm\033\370\263\271\201\273zX\263\342\006\270\204\317#\271\325~X\265n\007\205jq\314\001K\306\205\214\316\013x[\311\032\010Ha\352(^\246\301]\047\006Z\302{\342!\240\232\304\020\022\350\000\252\347\374XA,\242\023\001\225\003e\241\300]cAfX\326\000\255\035\027\035\370j\304\375_\247\2068\031\263\307\210\246\231{\345\223\332v5\234%\223\333>\177\302F\002,E`EQH\204\361\016\275\362\372\014\273B\213\323\230\317\315\301\211\177\217\315\206\177=\227\341\353\224f\216\016\3543I\344\t\372#\001H\007,\211=C\t*\270\021\200\260\360\020\304\014\206C#y\010&\035\246%\272d\001h\313\2420\311<9\234j\200\007\356\330[x\302\376\027\323\035\326\227\335xX=(\276\261\010\247\254\036\\\207\325Q~P\307\227\253\246\264\244\332~\320\265\216\355>\025\226&h.%\314\270\307E\252z\024\013|*Kam#:\357\020CpK\323n\222\304\342\340\207\0258S\367 \262\007*=\204\014\331\352\320\321\371WH\201\324\241\020\352R}\033\027\226j\017\177M\336\236\354\021\242t\2052\206O\\R\314\017S\375H\251\354:\200\027\243\250\351\365;l\317qpqs\r\306P\020Y\0032%2\222\310\205m d\255\200\312\332\262x\035?U\022\036\014\227\033\202\2132Y\257\265%s\013\314s\002\2171\314\006d\222\0260-\244\030\302D\221(\265ebg\016\267o\014\020\333\254\310\035\245\352f\2072\241\320\211\020\350\022\035\006w7?)V\256\342\022O2\353\256\367[\325\232m\036\014\317\344~\362\250\216\327`\330\302\232\370q[\347\315|\277\250c\005\\P1!\2010\310\374\250\323:\320:\372\336\260z\336\276\265:\304z\3032\n\001r\305\047\216\251y\212\320\027C\2647\243\034U\222\352I\027\300\006\021|\030u\035k\323\316\247ps\257 q\361\202p/\021=\223\200\205o\034O\212Ba""\361\255\302\006\370\261\r\361!\276n\007i\351\364\212zC|\337]\377\017\340\347\243\202\271\352\324p\372l[|\307\322\261|}\266x\020\036%H\207\020\223\210\332A\300\305`I\033XRF\312[!6\237\362e%]\367\264\003\352\301\005X\224A\\\342\317m\345\003\200\022)\300\014\340\337\020\376n\256\020\350\016\007\252\370\233\266\315\223gU\027\230X\337\337\255\343\205\275\220\214\3177\000\233\340\221w\320\216\373\276\205J\202\257R\207\362\337\270\266Jp=\345]\252\243=S\2120d\230d\314\266\244\246\222\027\002\244^\000#\300\3776\373\313\350,\364\006\364\330Ci\266l7\2619ii\332}\277\307\377\037\311}\017\325\255@\301\017\302\377\241\305M\231\272\006\222(\261]\267\303m\255M\267\262c.\277\247\271\232 \016m\253\262p\361\306\333n\361\017\310\217\323\007\236O\346\257\341\205\260?\177f_\030_\003a\213\225\244\324x\302C\003\335\305n>k\354kM\371\245?FT\031`\223\257\001no\272X\251}\305\034Y\253\371\377\341\006\003\363\037\324E\373QS\353\210\010EH\t\025B.5\342\220\037\000@\204E!\026\010\241\327\"}\244QSWS\313>\313\324\005\202xF\317m\2532?\340\347R\376\302Z,`_\031\001a\030\353\334\324=\002\261\237W\372n\036\352\221DL\245T\306b\025\to\037\361l\333\357\3514\235\373\272`%\204\013\3427Lb\310\200\022T\t\345\207X\237\232[\331\212\037$>\317\323kb*>u\017\231\326\230\317l\375E\323)GY\227\363\022Be\005\372D7\020\2546t#?W\213\232M\2771\373_E\227\351\3750\375\326p\206&\371\255:5\230\030\3121Z\322w_fw\220^\n\373TI\001dQ?\264$\0364\376\252\037\375k@\311Af\036\244/\226\201>\347\227\004W\373\036~c\321\254P\322Q.\202\3724!x\250\307\211}\260\025\034/\223\273J\016H\rAO\240\342\367\225\034\000M;q\047\032\274\022\270\310\253k\341\200\223\221.\30659\tX\321f\"\246h\264e\274\267\323\306\322\354\365\224\300\360^\2007\302\302\222\211\336\302\373\027Q\335/\242\307\303\310\351B\271\274\334(\346\360\006\233\246\246S\030*?uL\231\202\246\365\224\320\025\036\375\204\313F\\L\242\2432\266\311\365<\276g\361\307\372\363\247hB\020\000K^\364\007\234\226[\354\034\361L\235\013\0236\026\3712d\000\\\267|^\247{[\241\320\3777t\332\303\243T]\324\300""\352p\201\302\354H\245b\313=H(\026\270TsXTs\023F\031D\347\375\306o\212\232\261RN\374*\310\177\205\253\005\324*5\237\r{\361\350\363\372\035/\253@\235#S\037\260D\324\230\345\257\243*\231=\213\214\232\300\357PXU\313\007@K_\367\006\247\337\253\3255/\327\2227\352\375v\275\311\257\263^\023y\222d\206\312\031\264.\271\314)M\n\214\324\326\3306>\364G\010\004\2221\204\222D\221bj\220Tu\313\304\224\343\210X\372\361Or\224\2538e\245\302\261R\376\237\335\253\255\261\374\323\352\205{\014\307\205w\322)\205n\n\216[\303.K\356\354\271}\313\\\021U.(M\325\2310\274\260\213N\336\247\024\3305\275\334\346\027\276\n.\317\266\244\020\313\014Kg\301\310\0311\316\233\331A-\240\320T\004\303F\300@hR\244`\212\303\233\257\271A\333+\371\256\302\353\341\376)\306U\\*7\325\316p\333\255\274\205\004B\364\025\242*3[\235\263\264m\330>0\23782\375\257\026\315\352\211*m\260\334\025\034h\270&\nf\025\034v\257/P\236\357\037Z\0046\203d\372\220\361\005F\266\353s\216&\345a;8V\206\201Y?\276k\213\202\366\250\"\276\371\361\350\271\341\360oPn\245\340z\244$\202\034\321L}S\r\315\374\3663\334C\177\tH\0169A( @\002\360\240M\014\211quK\340d\005\315\333\047k|Tm\3706o\331\206pK\214G\222\246{\333\303\003t\233\371e\301~\027\206P\312%7B)\257\233\340\372\352\337\016\335\227}7|N2\341\226\362\354\230\230\260\316\345\004\2667\024*8\340\357\212Z\355]\0006`l\252\244\206\220:\346\345\316ybm\233\265\273\236\263\230\030\211iF\350\236\367\207\253\3026\242V\341M\340l}\250cv\316\341\275\273\274%\300d4\n\306\345\311m}w\260vw|\"\217\030\220\332\345)\275\226\330c\212\356\027\031\252\222\244.\354\003l\252k\206\306\357\031\233\032\356\355{\266\303 \004\225ewb-\335\201J(\217\216\205\377\036\346\217r\250\352\202l\024\356\006\276 \234\204\332\266\306B\261L\304va~@/!r\231\234He\324\025\325Au\266\005F\346\203Xj\360\255C[\216\030\343\255vG\336c\357\n\r\320o\206`O\312\246l\2046\334tP\321;\0360\250\352\210\255\215Hl\244?\310k\000\277c\013&$\037{\002\341Q\3316\262\245\317\274k\037\205Q\243CW\271F\311\t\254(\206\300\250\305P\360G\275>\014\226\264\3042\021""\265\331\033\227\273\227p3\227\273{[\373\275\3258c\234 M\245\007\367\221\177-\335\3300%\261\337\243p2\020L\362\331\333\223SpM\236\356\307\207\275\266\002g\014B\342\006@\177\364\302\3438M\341/\320P\315\224\320\006\347@U\266xh\007\300$>XM\246\244\336\n6M\225-;\204\277z|&YF\020\365D0\216\366b\255Y\006f&a7s\212l\356\\\"\367\340\022I\010HB@\221ac\342\243o\037\340wL\227\341\017\213\000m\225\014\211Ns\325\3314\0056\310=\251\345\t6\241^\277\253}\2253\202y\245\330g\303\r\353\326\257\33736EI\242Cs`\220\330\321SqH\366v\305?Al\003\366\225\361d\251\273\360z\246\206m\360ne\342[\047\002\224!\243va4O[\203\337<57\224\221N\001Q\337\260^\205\010g\274G}B\327\212o\236\210:\3537\017z\203ql\324.\252a\331R\377%\332bU\316*\355R\234\001\270q\0005`=Pj\220\352K\001\325\205\014\354\326\336\0145\207\376IX)W\256\351a\375\235\021\"\232\340\366\3515\340\232\210k\323\331\307]\326\273)\210\323\017\317\257\205\367\345Ip\027\306R`\003\205\003\241\210\253u\320d{~\200\352\352)N\277y\324\265\302\023b\253\337\331\017|\312\233P0\3702\337a\013\314\271P\252\033:\023A\226\376\t\371\020\325\244\332\331\326hK&\276\275[\033\313\025Q\247\026\335\225/\270,\244R\366\216\344\366@\350\367\016\232u\004.{w\027\352`\245\375\252\n\240\215P\nQln\333n\2416i\247\010\231}\247UH=0\325R\216\217R\340\260^\024\300\255S\252\224\3347\t\001\327\262J\034a\257\177]\351u\036\360\226\245$uIE\024um\371\\\002\344\274R-\301\033\304\235\257\203\267\334\350(y\306\273:\275X\r\024B\325u6\3265Z\274.R-:\324L\005.\327\370z\177h\364N\240\225Ld\225\323\016\251\325\265\305\313\006\370\227\303UO\177\274\036A\320Ny\322Rz\204\272B\341\232\227\330{\032\206\241\216$o\006%\020:\271\027\034\357G\234F\251\047:E\267\273kj\032\206\005\220\200\\GT\301\036\321\351zaTs\223\371Z\323\270\242\372\204}\313\0278\251-b\251O$9\2478\"Q\3555U\320\367\003\324!{\317c\20107\024\345\277\223\323\374\307=\366+\322\275\276\233[\236\302\234RQ\013\360\\\r\266\232\217\221\351\363{\010\363{~\223\205\252\260\256q\210\224b\003\016pL\013\221\254\224\246\226\327\244r\271%\217\223P\323""\267n`\211\t\351\202eo\276\345\256u\016Y\227\221\344\232g+\300\367\265\375\215\027\333\022G\242\030G\244\336NKQ\340jlC1\255=-\262\021\343\304\335\272\366#\316\206\247\224r\241\355\360i\235\217_\000z\342s\313\313$\307\033\047\307\205i\234\343\255\246\203t\372\304\210O\022\000\031\356\017\320\337g\240\325\365\370\036\006\344\"!HzF2\022\311\315<\237HB<\265\261\246Y\235\252g\037?$\344\237\223\232o0pK\201\346\010N\211\202Wa\244\367.j\263\255\037\3321*PB\201\300\207w\374\216,m\244[^\264 \336p(\206\203B|\313\245\346\200\373h\367\374\303f\222p\215@\352\277\021\370\304?\336*x\3367<\n\252!\322\247\303\375|\260\326.\346q6\266\305\005\367\021)\234\334\177\315/\337\251\364\037D\236\007\351\014\247\347\315\345\354\374~\216\375\342/\314\226\330\037+/\225}\244)+\003\0177\354\364Os\307\340OpJ\235p\363bW[\343\2300\226\377\254x8;\204\365\304\3541H\3762_rKyV\254\036O\\\353u\374\361\0474CY{\211M\305_\013\302\304\253\020\370~-\231\3515:\342\236\302\236\360\330JK\024%\315\025W\373V=\017g\344\017\332\247HKs\022\346\301qH\267QU\177\313c\304\367\335:\250W\256\262\201\370@\210X\202\227E.*\326\226\243\370\363;\257\\\032\241=x\005\210)b=k\366-\356\363\211\321\207\033\214\205)\305~eJ\002EK\211\206\025P\332?\263\364y\332A\1770\047\323J\005\210\377\020\237\010\207\234A\242\001\347\347F\320\371\241=\325\",\"\271\300\023\375\223\025\036\314Q\017\225@.Q\017\264P:b\246\232\243\337\025>U@\373\004O0S\377\240_\342A;\224OP!\310\252q(\370\240\277\300D\374\010\277@\201\317U\323A\371\305_Y\004\322D=\005\003\344\021\366\305\363\020<\265<\240|\2058\342\036\202\034-\235\312+\237+j\333\264y2\362\376\214\021o\215\223\035\352\272\323\003&C\034.\224@\307\013\255\211\014\207FZ5(\364e\205\242$\031\322\224$\204\245\032\221\021\021\020g\021\014\314\030\324.76\343\023\2168\334!\226\357\255\270\327\330\340\341\307\200\243$&\344\316,\223S\237\047\233\343^2\000Rv\355""\337;\332\335vR\207\030f\227d\307m\234\305\335*e/\0270Q\277.\256h\266\343\023)P`\2623\244\326\344a\023\016l\201`\201\021\002\014&H\035\201\354\020\310l\006\333\376\223\223m\267\264\3569\233k1sw&f\215\347-M].\027\363ll\362r\322\252\363\225\272\337/;\373z\330\222\023\341\353\337\251\327ns\245\321\323LS\253&\321$7I\255PZ\233\245t\324(\312\213\036i\2565\227m\323\2166\341\337~8\314\324\233!\267\033\\\204\274T\313\306\333\215\340\324\354\037\360\236\217\3332C\005\366l\317\357k\001\236\325*\047\346\325\303d\254\312\331E\257\206\026)\205+\321\243\215N\353F/zgw~\036D\335\363\376?\301\307=\236A\374\264\363\203\330{\255\315\263<\207pw\205\360\231&\010\221*K2\342aJ\216&D\024\304\024\271\231\225\264\242%\264Adv\234\275\275!y\353ZY\333\234\033\340\360\340\315\234]\023Z\324\327\020\326\345\226J\027)B\230L\231\323\342e\336\355\266\335\357\306\3077\306B\340\031\000enfa\224\326\252\"\256\265\206d`\314\314/<^zm\255\353\307\006p\316\030\222B\047|\332\316\\sG\027~6\340\344\201]\363.\306;\312I\t\252I\t@\341\213\t,\322a\2651\"!i\002\002I#p\250\366X\346\022\310/\300S\357\3075f\317\3016\006\345r\207/S\372*\270\306\322\330\047\316\246\323\334\375\247Pc\336\346b\336\303\206l\370\034\244\230\t\301\312\340O\230\366\270\376\037\351\341\370\212[\306\t\031$j\251$#\n*\212\204m\005\013lb)\021\212\"\252\252\261U\213\"\3662H\036\350rP\376\336\3047}\1776s\316\331\231\207\252\246\265\230\212\356r\301\230\374C\244*\030\214\032 \337\347\242\234\235G\316b\346\014\316C=\203\234\024\275K\326\340nC2\231\034S\020\305\307\023\023\023\023\023\022V\010\376\302/\243\345qk\002\267\347\375\217\255\362Q\351\000\261\243\266\201\002\\8\275(+\002\004\017b\026\273%\032K\2263$2i9\261\267#!\205\367\323\210Pa\302NCo)\363\274\303\354\217h\366\217h\366\214cP@r\021\017cE\356\335\327Xt7R8\245\031\014\225\331x\343\204\341\3400\250\334\333\0166\326^\0360\315\363n1\265\332\\\321$\232\031\234f\324\213\275\233\316\2356#\207\033\351\263\347sx\232\351\016\221\350\341\234]k}n\357\375\rf\322\354t\343l\274\323&\250\000\260\377*\023\252I""\327&\243\276\2039V\346d\325w9\315D&\265\047\227\324\342t\351\374\235W\241\326\010\036\364\003\254\007\347C\344\037\004B\300\226JU\241\n\\\310C\002\031%\200\024\205&\030\0040\223\003\014\t1B\303k*Y[-\213\n\331\033%*R\205%\254+al\005\254\200Y[\005\"\024!If\3006F\315\254\251dl4\211H\024\322\205+Cb\300\005\205\260\320!@\024\264\253B\322P\201B\322Z\3106$\3032I2\001\201\230\0202C\002\300\013\ta\230\002Y\0134\003@\321k*YX\203\001\263k\010\331&B\204\013\000\241B\005\ta\231!0\223\n\004\242\020\006 U\000\320\0054\203J\320P\255\001A\231 \031\003\013\010R\024\314\222L\003\002\302\024\205\244\013\002\224\204\260/\267\201&BaI\nKI\n\005(\006\225\243\206\302\026\022\324\211BRil\td\263\362\262\255\200\261\314,\013`\362\206\205(\013\270\340\331\002\312i+J\024\205\336\202\026@\262\331\346(X\022\310X\346+e[\tc\230\211dl\205\216b\215\205,\205\277r\005\204,\245\271h\226P\262\331\375\205\002\300\226[<+\307\2759\233Q\323\013\240\324\203$1\207\271\252\013Y\356\246\311\211\262\"c\026c\272\244\276 ZU\256\260]/\"D\227B\216\034\346\3173\223\305\2672s&\237\313^\314O\031\202\253\014\314\314\323\240w\324\337S~\226\376\206\372\276_\250\371 >\026,\370\272\214\272\036\357\205\216\370\312\204\227_6k\r\367\311\351\235\246g\225\030\374Z\245,\224\2728\366/\335\264\376\026\311\261f\226J\220\305\377\342\356H\247\n\022\t\200\301\\ "; + PyObject *data = __Pyx_DecompressString(cstring, 20704, 2); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (24937 bytes) */ -static const char cstring[] = "x\332\335}\313_[\267\362\370\005\314\367\322&m\2236I\323\307\3555m^4\t\ri\232\276\037\006\233\340\006l\260\215!\257R\003\006\334\200\r\266IB\232\266w\311\322K/\275\364\322K/Y\262\230\n\215F\007/B\212\331R\271\230\231+\007s\371r\266\270\220\231\313\366\007\243\020*\t<\010\314\317g\347\203\345B\260\224[Y]\316-l\004\327K\271\374\"D\315\347\036\345\346\3273\313\022Wpa=?W\316\025\362\245\340\354Fp\265X\200HL\227\021\210\326\363\271\205\034\340\321\271\004\027\n\305`)[.C\232\317\346\n\371r\261\260\274,\361\256\256\227\203\363\231r\346\212\212\327\250\005\252\325L1\263\222\0054@<\024\244\230-\027s\331G\230\254\230-\255/\227KP\000\215#\010\250K\271R\271\024,,\0007~\375u>7W\376\365W\010\t\\\277\376\232__Y\335\000@\246X\314l\224\202\227\200*L\266\n\2503\245\3760\240\030\306\354\360\223\"\302\013\313\231\"\203\367]\t\026\362Y\201M\340\020\005\313f\346\2260\307\302j6\177%\270\224[\\\272\022\\.<\276\022\234[.\224\262\202\356G\205\345\365\025`\266\250\252\271L>8\233\305\362\006\037\347\312K\002[yI\000f\004Cf$}\227\372\202P\364\245\302|\177pj)\007y<\314n\000WE\344\245R\037x\262P=\010)IF\226\202\217\227\262\222os\031\311`\304\253\030\212mD1\037\276\2225\213\td\246y(a\t\353\022\032Ny\243\377u\323\266\346\2263\245Rp1[\306|r\345\\f9\367\024\020 \361\300?\336 \202\210F\224\271\260\212a\240c\003\202\324\300L\341\202\205\331\337\262se\321\376d\373\201\314\005\265@]\3411\222\266Z\314\255d\212\033V[\003n\013D\252\251P\251\375[\3067\262\004W\341?;\347\317R\241\253\n\343U\335\274\020\345\325B~\331\316\r\277\274*qx\353\306\016\364Y\211\324\347\020\265X\272t\317Nv\345A\360\236\310P\304\315\000\325\205\342\314\303\307\030x\320\047\211\r\027\346\240\235\344\313\031\301Jl\\->0\215(\233\227]\020:\033\325\247\3004\254+=_*g\362\320\007\021Y\261\260\010\350V\000\375\234\250\230G\271\014\265\200\205\302\025\326\016 3w\007""\244\246\221\313\226\372\rk\257\022\273\257B\005\254\027\363v\007\346\034\304l\n\353eQa\252\221\211q\n\007.\331\316\241\371b3\317\346K\353\200T\325\243h\347\231\345\307\330h\036A\323\233\047\204\305\365<\347\357\203\276\340\047\242\341\227<\325\245\232\010P\210\221\313\013\375D\n\341R\334\212\022\263\366Qq,OV\373\273g\252\377;\017\003Q\360R\366\311*t\007\350U\301Y\030sp8\201\236W.\0247\256\0043\345\340r6S*\007M\047[\310\344\226U\017\314\026\213P\265s\205\371l0\230\317fq\000\277\224\301/\304\210\014\330\200\365\031\034\344\203\261L\014\352\030\310\332\240\201\027`\371BY\345\324w\376\322|\256\264\272\234\331\020m\240\017\350:\177i\021f\220\325>h\342\347K\347K\375\231\371G\310\036\360AQf\212\231\374b\366\"b\231\317\256\026\263s\031\244\037\013\275\224A\304\301\354\302\002\224\351\233\340\245K\347K}\2270[\030g\221\243}}}\257_\t^\t.B\346\375\237\177\023\374\376\307P\020\032D\016\232\000\024|\000\375\320\366W\004\222\322J\241P^\202\242\204\302\323\t\205y\035\353iv9k}\225\303a\377q\376[\360\320\030R\242\246\235\207\356\r\037\367\007\2230\342^\004\337E\321)\200A\375!H7\047;[D\260\361R*4\023\032\035\215\017\315D\022\211\276\301\314|0.\306)\0211\030\n\317\304\007\177\216\014\245D\314\270\0369n\241\037\201\322\273\350\222\3239~\006\225\003\223\273\231o\020A46>\231\022\010\240\226 \024MEa\372\271\033\351\023\237\225\276\201\016\274\276\260\220\233\313A\231\203#\262]\323\207\311\311\341\341\350P4\022K\315\214D\223\251x\342\016|\204\325\003\2541\225\037\215\245\"\211Xh\024\353?\236\200\024b\310\t\216@%@\311d\2124d\031\236\031\t\305\302\243""\021\235b\0242\013\2466Vy\242Q\310i&ug\334\2443\255F\363\317\376@4!Q\013\251h<\346\363\325Hay>[\364\371f$>\032\216$Z\177\341\241\315\376\214\323h\246E\010\257K\361\355vf}a\005j94\237\201\211\375Q\326Um\243\271\331\"N\326Xq\356J\003\371@T\231U]c\221d\250\025\252\261\341(\310\252\356.\3768\2033B9W\024\202%H\035W!\313\340P\177\254\340\372\036O\244\"\341>\214\317\346\013\353\213Kj\034D\371\027e9\335\336[7 \232\010\023\331\271\002f\016\344~\003#1\210W0b\254\024`\336\232U\275\270\014x3\213\231\\\276\337\312\020fm\230\230a\256\020\223~\351\233\240\236\005 QV\216\333CB\246\227\203\354rn\026r)ga\346\006\312@\270\315\212\301=\037\034\217\214_\275\361\325\r\232qp\300\202\031g}V\010nY1\233\314\256\347\226A@\010\226\241\025\240\320\274\020\334(\254\213\371\002\213\273\212\002\236\365\001\014\234y!\240\342\010zQ\014Kb\224\234\201\317\201\325\027\203\363P\017s\242\356\340\353\341\314r)\333\037_\007\tj\341j\002\047\205`\004\010\211\302b\342\211\340]\034\372l|x&\021\212\335\212\314Dba`f82\335\307\276H\2263\305r\253o\222\251P\"e\276\332m\204\200\357Z\014\021\364!IN8\031B\263\006\311\007e\332,\217\314g\0273X:\016]-\224r^\350\323l\261@\020\261\010\233\023CE\tD\254\207\006\254\204\341\340\245<\014y\330P\372\254\310G\330\323\304\022\301\000W3\345\245\2530\257\342\222,_&x\tD\r\020\372\204\210MB\277\214)}\243\373;z\325\264S(,\367AK\035\032I$\243\007\236;\341[\232;\301g\346\316$.\021\335}7\t\035&\277\010R\211\246\341\336\325\353\327\256\365\367_\035\270v\355\001Ly4\023^\t\336CH\177\277\000\336\"y^G^\003 M\223\220\022\222\321\327:\241\2345!\016\"0\003\201Z\002\373R@\271\032[a \211?\316\007\303\331\205\014\310\222.bS\205Bp\005\305\222\326\3750U\314A\353\\\207\311\330\375m1\267\272\353\314K\tne\201\205\324<_8[O\346\037\346\241\036\344t\304\002\242iO\306n\307\342S1!\232\244q`\306\021\021\004\257\022Nv\031\\sBm-\347Vreo,L\317B# \242\247\262\260H\305\342\361\354\247r8Q\000\313\222B\346\362\304\337\205\226~u4\263\270K\t\356q\211""\374Af~~\006\006\017\250\327B\001\304f(\216\360\255\257\316f\027s\363O\202\371\331\354r\026\231>\013\225\267*\n0\013\211\205oN\212C\253\320\221\200k\347\241Z\364\200\274$\247\343\325\002\254z\260\037\300 \204\355UM\nPJ1\033]\021\003\342|!+\345\334\271b\241$\324$\305\302\\\026|\263(\227@2\220z\261Cd\363\370\273\000\222\366\303 \376\316/\316-e\304D\260\224\301U=8\300b\370\025\353z(\047t\250lpm=3\017c2\254X\244L-\365\002\330\327\036\027\013\300\230\371\034\024\257\204\313!;~Y\364\022\271\266\231\317\201\234\\DvZ\tp\234V\362\371\274h72ve\035\304\014\030u2A\241\314\240\324B\221!\005E\261\316\223\322c\022:x\266tE\3408_b\353!3\303\257\344J%\271j^[\027\223\253\320\244<\314n\240\366f\021%\215G\2621!\251\330g\261wB\036\340\353\313\225$\317\346\037\006\347\203\277\255d\346\346\203\370S\312-\342P\207^\234RW2+\031`\350\n\n\216\000|\002\016V=\370\300\201\001\211\246\335o\214.\202J\005\305\317\256\254\2267DI\373g\346`B\355_\201n\234#\335\213\\\004A\335\303H\004\323\273\235l\035\326\270K\236\024\253\313\353\245G9(r\036]hI\313A*%\260 +\326L\350)A5?\014\342\357|i%\007+\220\234,Q\t\325\022\242%\010\037\304\227\241g\317\366\323\214\217u,\001\202\022\351-\024\241Ke\347Q\023%\001\262\226\310/\352I\372K\033\344)/\025\345\332M\006a\231\211\253j\031\371\331\214R\341\365\257>\311\021h\256\260\262R\310[\000\\&ZA\331g\004@\rx\026\227K\356\371\340\242\030(f\261\347\254\344\346\241\233\t\257\030\\\320\027\032\n\r\r\r\202\354\233T\356LRd\340\n\366c\317\301\265\362\314BnyYG\212\221)4\024O\342\237\3762\336\352+\235\302?>\034\n\343?\225J\373\334\311\342\311!\361\243\023\032\277;i\002\376\351d\211\026\211\246q1\212\177:\345t\313\244&I\213\024:\201\177\374\350h(\036\212\253Dq\377D\343q\370\247\322\214\267H\224\210\307c\342\007\331A\256\372\206\007}>\264\023\356\222J\326o2\032\303?\365\215\361\272>I\205b\370\247\322\031\257;]\002\376\351T-X\235\276\025\216\244\345\257Jj\007<\251\307\023\321\241\210r\315\027v\320\365\315\362\362\220\230x\222R\014)\r\2126=h7\373\301\326}`\320\352\001\203\221T\010\377""\324W\306\353\372&>\016\377T*\355s%*\314o\204\013\277\345\320\035\2059\007\335\344\022\214w\350Ig\213\00284\024\205\177\364\275\361qLC\341\321\353C\211\370TR{\324\007\256\260\347\263\317\007GCC\267\325\267V\310 \360\002\275X`\225\025\rG\214\317\372\232\001\274_\216Fc\221d*\021\275\035\341!\013\203\007\350\305\002\253\007E\000y\255\3579\304\3731\256R\240\251\047!\335\210;l\241\361\001{qM\215DS\221$\254\315\243\221D\322\003\260\260\371\301=\350B\330\364\342\261Hx04x\307\0356\310\374\300^\\\341t(6\024\031\034\215Ce\362\240\205\311\013\365 \032\214\214\246P\373`y\r\002\027\304\373q\"\022\272\035\232\n\335\261\375\326\347.\220\347\373\241\3218\324\301\255\261Pbr0~w\322\0131\270\374#\274\030\343P\340\320(\262.9\005\243\266\017\310\302\351\037\343\203t\022\025R\241T*$\270\315\3026:/\330\203+\034J\334\206\262L\206\207\342\351H\302\0030\330|\341^t\361\237\243\344`\213\266\274\026&\016\361\305\301S\267L\231\010\335\212\307\206G\357\250l\355\260\205\302\007\354\301\025\211\335\232\034\035\206*\265\375\006\207\033\344\375>\035\211A\264Ur\027\304\302\345\033\321\n#\307\346\213i7,\267B\3438>\341\237\030\025|@\006_\213\030/\322D(\r\243&\216\n\222\363\034`!\364\203{\320\215\204\306\306D\343\223\036\3639\013\373|\026\273%\372`\214\005\354\317]0\037\024\211\320X\324x\022\361d\222\207lln`\013t\356OZ\246\216\336\032\231\002\376X^\353S\016\361\371\370\366\355\320\355\210\361\215\305\303,`\243r\301Z!\363|\3222}|\014\370:\036\275\025\211\307\\A\013\207\027\352A\004\r-\226\212\016\205F?WR\202\013b\320\371Gx1\306b\0211*J\217\365\275\035\366\371\014F\265T$\254\233\"\007\330h|\340\036t\267\243C\267\345XB\276\301;8\204\010\021\300\0051\250\375#Z\341\366|\327*=\314\273\341Hb0\236J\305\307\\A\203\303\007\352E\024\217\335\032\215\334\272\025\tS\257\347\000\013\231\037\334\037\035H_\226\327\205\302@<\037[s\264wr~\321\254<\026J\r\215\000\307F\343S\366\365nr\312X<\341\232+\\\020\013\223oD+\214\034\233/\246\335\260\304U\337\211\273\372N|\327\2763\016R\346\220l\355\312k>uA""<\037\303\302\352vr$4%Gq+dPx\201>X\222\221a\020\231>\037\213\000\347\303I\037\220\215\3177\306\2034\031\301\335\260TT\266\304\244\027bP\372Gx1\216\304\343)SOv\320\302\345\205\372!J\244\250\363h?C\301@\336\357\307a8\204KN\336\216\202\030d\373\355\2179\310\373\375Hb2\231\222}A\373\255\357] \357\367\t5\"\220\317\3726\261\353\0100\031\213NLF>OD\245\030o\007\r\016\037\250\027\221\020\001\241\214z\321\357\202X\350|#<\030\247)\225\3259\335 \203\263E\214\013i$:\212\177\3523\343u\245\033\033\206\177*\225\366\271\023\305\341\337$\376\351\224\361\311VIM\022\377\024\361\361q\\\003KG%f!\367\007\211DdT\376\352\344V\300\235:\t\377F\360O\047N\216\264Jj\222\370\247\230\034KN\216\311_\225\324\016\270R\247\243\360O\245K\267\350B\266*\014\215\013\3020\322N\216\246\302\221\261\020\376\321G\226\227\177\037\216&C\2030R\204\243i\370\247RG\375\325ua\020>G\242B;!\\\225\234\007\375\277\221\032\267\360x<\254\025\243\341\026*\322\360\264\326\322\266P\327jc\320p\241\034\031\216\302?Jf|\374\003(\276\341@+^D\022\221\004L\236\032W\213Q\013\341\2420\272K\267\350\333\221\351q\370\247\322L\373\217a\221\265\365\314\362\360h<\236\020?\224\306\366\363\364\303\320 \207\215\216x\270\225\272x8\021\032\202I\200\034\225\232\205|?\220E\033\316\024\325\346\255r\373gf\320\304nf\306\rX\360I\270\224\235{8SXU\366\177b\363\312\212_\314\226w\211ES\000\226\215L&\366\207gJb;M\332GZI\320\202l\331\n\343\246+\303Q*\363\360z>\207\326z\026L\233\r.,g\026\r\356E\227\025\243O\004\047\006\341\306`S\203\321\272S\007\226\013\205\207\263\231\271\207\032 \215\022]Y\023\220\243\047\363E\035.\256\033\316{\254\037Y\214o)J-JQb\245\030\t\215\250>3\342\337y\000,Z\316\310XhD\367\257\221\026=m$5\023\036\032\207\216\024\017[^\365\221\007\342\367\361H(\0311>\366\251\005\360|\211\221\361\204\366\230\357X\270\305gT\302\324L\022$=r\014\206d+\361O\305\251\257S\211H\014\327\265\021\333o\360\270A\036d""\"\301X<\034\261\375\256\357-\220\353\373\334\342\322h\341\261\260\312C3\344\350X4\2525&\321\026\272\023\333\240\217\354\371n\207\306B\370G\351-/\377\3646\314\315*\315P\213\024\2223\267\303?\303?\225V\373\\\211\001.R#\203B0m\337\322\236\231\020.\202]AB\342\017\345\250M\032a~8\024\031O\371\200<\010\3351\255\220&G\343\343\021W\320\203\314\206\266D\344\376\306/ulTM\307\243\376\363\362h\374\326\3005\361\243\322Y~W\322\\>;\006\365;\024\306\277\310t\212\034J\314C\374S\025\047\252\014\003\303\321ir\254\257M\310\3735\306\351\257\255oZ~\240R\313\377\365\027-\232\247\210\240/\022\267#\251\341\250r\365\227,\350\376:\231\214\212\037\235\332\370\335I\323\343\370\247\023\246\307[\244\003\006M\013#;\345\352OX\320\363\231I\326\"\205N\320*\036\345Gr\344$\235+gWff\014H\316\314c\260\260\304\355Y\345*\274<\350\302\016\2145\230\206\177\024m|\032m]\2572n\214\034\366\201\177m\300\302x\\\257\273\306[\254\300\306\323\321q\315\324\361\026\354\035O\307\341\237N\324\nS\n\376\351D\3765?!4L\362\227\022\260\000O\235\200!Y\217a\211\026\243Y\">\004\377\306\361O\2454^oR\374\033\270v\215\034\363\205\025\362~d%k\225\306$\361O\221\214&\364|\221h1s$\322\321\204\256\202D\272U\242\370(\376\351dq\377U\236h\3348\232\047\262\031a\262\222\014%\340\037\314\321\362\227>b\001\216!\251Ub\311\026\31214\253\210\306F\360O\2454^OR\223\304?\005L\251\272\216\223-j;9\026Mj\3215\331B\210E\270\030?\223\023\211\024\376\251\364\306\353\372 \025\016G\322\362W\245\265\003\356\324\361\241\021""\3613,\177\365\047V\300\347\223a\"\212\014\304\225k\177\335\252e\350H\203\301\376\254\3657\364\301\344 \374S_h\237+\275\255\240j\245\252JN\302\300&\326\035\306\247?q\001Z}I4\211\345}r)3_x\214\006S\322\047\354\250\244WYR\231\220\025Y\242iI\316\002\214.\002Y4Y\020N\017EX\264\020\204\321A0\233\006c\213\356\0010Z,\260E\217\013\312i\262\"-\272,(\243\315\202\333\364\221\255;\0171\312\024\314\"\313\006q\232T\214E""\220\0021j\024\320&\305\266\227\367\0011\242X\204E\231\007\316\311c\321\026\215\014\316\010e16\265\314\036\337\017\306\350\3451\026\301\336\010N1\217\267H\346\021\214f\036e\021\315\354\376}@6\311<\302P\354\2053\202y\264\241\227\303mry\214M\255u\266\300\013a\264\332p\213T7\230Sj\307Z\204\332`F\247\035a\221\251N0\360\220M\236\206\031\322\030\210\221\245c\014I\032d\223\243\2016)\3524\204+\310\210\321@\213\032\006\343\344\350(\213\036\rc\004i\250E\221\353L\205/\320\246\316\035eh\364\213a\224\272\023\030z\33516\325\3568\233v\327\331\r\177(\243\336\035g\221\357\027\305\351w\247\260\n\340\216b%pG\262\"X\347E|@\234x;\302\246\334\rw\221mG\3334\333pN\260\035cQ\313\317\243\370\301lz]1\206`\237\010F\261+\336\220\354\212\260ivE\331D\307\177\216\032\237\270\300\202\205\030\311\nf\021k\2038\231*\306\"P\201\030i\n\350\"\312\235\261+S\377\014]\231y2b\231\330gp|@\214\000\026aQ\342\201s\222X\264E\033\2033\"Y\214E\255>\355\343\n\332T\032\240\241\220\303\030u&\312Pf`6U\006jS\304\317\014\371\002\031u\256(\213F\237\030N\251+\201E\257+\206Q\355\212\363\322\356\241\273\005\315\376\364\356J\253?\235\255ht\323\347>\365\344\017\265)\365\304\031r}\243\030\315\236\024\206pO\224M\275\047\322.\002;g\345\007c\344\363\030\213xo\004\047\235\307[\204\363\010F6\217\262\210\226Ghl\277M$A\014q\026\200\021EpC\014\001l\"\010\3042Wg\303\334aN\204\206\332\2040\240\213\030\035g\023\244\201\234(\rf\204\341\2311\333/\216\234y\000\234L\003\266\351\344P\027\241&\322\246\324@9\251\006\356\241\325K\211\207\210V\371{\262\366\311\225eH\247\342x\210\021\240`\026\t6\210\023\241b,2\024\210\021\242\200\214\024qD\216\005\306\342aw\230\323\246\2416u\014\350\242O\307\331\024j \247Q\203\275T\372P\341%\241e\376\336\314\375rf\331Zg\377\274\020F\215\r\267Hr\2039]v\254E\234\rf\024\332\021\026\231\2563\205\276@\233Xw\224\241\327/\206\221\354N`\250v\307\330\204\273\343l\332\305\231,\333\317(\225\020\213@\003\340tI\270E\216\0040*$\210en\237\202\364\203qbX\214M\224\047\302E\034\213\267\211d\021\234X\026e\021M\347$Y@\035\266\364\005""\332epG\231B\370\305\260R\270\023\230b\270c\354r\270\343\274\005\361!\317KVKr\274d\370eogk\237\021\365Blj\030\334\220\344\0013\272X\254!\216\201m\nY\204M&;}\352\007c\244\362\030\213Xo\004\047\227\307[\004\363\010F2\217r\023\035\215Ex\310C(\302\\$*\220\2278\214q\221\205 \017A\332\030\\\302\270\376\305O\361\342\243qi\255j\361\321\261\370*W\374\264*\326)\\\017\200\023d\3006M\034\352\"\313D\332\224\031(\047\316\3009}F\233\247\016\375r\272\\\272<\033\342\246\307\245\311S\020\027\035n=\236\353\204\260/\220\321\344\212\262h\363\211\3414\272\022X\264\272b\030\315\2568/\355\036\272[\320\354O\357\256\264\372\323\331\212F7}qk\216\215{\346\330\270{\216\215\267\230c\343\35696\356\235c\343\2369V\235\234\346!\233\000\r3$0\020#B\307\03024\310&D\003-R\254\023\330\036\200M\220\r64\271\241\214,;\322PfCm\342l8\243\217\237\350\366\207rJ]q6\271>Q.\232])l\302]Q\234zW\244U\004\327\tr_\240]\000w\224\241\337/\206\221\357N`\250w\307\330\304\273\343l\332\255\023\353^\010\243\332\206[$\273\301\234^;\326\"\326\0063J\355\010N\246<\025\357\n\272\010$ \243\316\202\271I\243(F\027\301\\D\021\324\246\310\234\261\367\000\030U\026\330\242\313\005\345\224Y\221\026m\026\224Qg\301m\372\330\271}?\030\243\222\307X\204z#8\255<\336\"\227G0\212y\024#\332\272\037\300\007\304I\266#l\212\335p\027\301v\264M\257\r\347\344\3321\026\265\362>\002\333o\323G\020C\230\005`\024\021\334\220B\000\233\006\002\261\314\351>\003W\220\223\240\2006\0256\314E\210\212\262iQ0N\216\202\332\024\251\033\022\\AF\221\006Z\0241\030\247HGY\024i\030\243HCm\212\022\226\\\245.a\260\251I\270\345(\033\302)I\270\345&\005aT$ll\342\303\036\233\370\260\261\211\017\3336\361a\313&^\234R\260\216\022\230\223\004\236\203\004\346\034\201}\214\300:E\020\031\216\312_\215\r\375\204Ny\r>\204\020B\364j\214\030\320(E\233\260\233\204\325\"\274\r\302j\017\2549\330\255AH\006\021!JF,!2b\304\307\210Gp\214\030\2211b\013\213\021KL\264\344\013#Rx\244\010#8\330\262\202%\036D\246\307\345\257\3016\255EJ\345\265\360Mk\001\022\275\006\343\264\021\027\305\2554\312\325he\210\020\233\200A-a\204\\\0064z\031\324\031\310\303\024\303\366A\212a\353\020\305\260\367\000\305\260uxb\230\035\234\030\266\017M\320\3556\306g\360SXea\005\255\\\010\2522\242\240\311\313\2768b\365\301\021\323\007G<}p\304\364\301\021\273\017\216X}\320\272+\206\207L\026\026Le\345\002YYZ1*k\013dH\260\200\234\024\274{\206\005\\\204\010\020\243CC\334d\210\010F\205\200\270\210\0200\213\006yS\215\355\267) \210!\300\002\260\374\tn\262\047\200\235\273})\216\204$\245\256G]xce\234\2644$j[\206D-\233\020\371\366\237\032\332\314\273_\020\300;\200\310\321\371""\211\000e\250\375&G\001\242,\205_\347y;du\363\333C\342\307`\3253\302m\367|p[\317\006\267\255\271\340\266\231\tn\207\177\226\277\006\033\370\025:\362Z\370\000\242\020\202\327`T\027\021\211\247\365\350.\036\333/o\032\362Bt\266n8\221\340\0076\344\270c\21147X\223\351\216\360\220\354C\216\276\321\310\037\272\333\027\336B\360(\277\202\230\024\236\302\230(\237\002\231Ho\241\275\312}3\233\206\271\362\345Y\372\346\3063r\347a\243\027\027{Y^;/\t0\271\2310\313O\202M\2162l\347)!\256\\\307,\257;\3271W\256c\376\271\216\271r\035\363\344:f\347j\347be\340\305m\241e\030\r2a\0169f\231@\216\031\263\3071\217\251\343\2301o\034\263M\032\307,3F\274\225\216\034\203\024\003\n\253\362[h\021\244\360\242\337 \306\220\302\034\223WT\304\354;*b\326%\0251\357-\0251\353\232\212\030\273""\247\"f_T\021\023\272\363\230\245;\217\031\335y\314\243;\217\031\335y\314\326\235\307,\335y|0-\1775J\364\023J\3455(\021B(\321\253Qb@\243\224OA\253\025\243\271=\217\005t~\026\210\262uAL\356V\004\021aA4-\026L\221d\335\302\307Cn*\004\214\223\241A\036:D\014\047D\200\334\224\010\240&eT\r\001\352\226?M\302(\033\000\354\240\225\365(\353\376*h\262\034\345\235\237n\0064>Wvc<\2731\337\354\306xvc\356\354L\257\032\027\373\014\343\326>\303\270\331g\030\367\3543\214\233}\206q{\237a\334\332g\030\027\215~\334j\364\343\246\321\217{\032\375\270i\364\343v\243\037\267\032\375x:.\177-\224\206\312\264\207\312\264\2412mS\231\266\251L\311_\013e\312\240LyP\246\014\312\224\215\322\214#By;R\300\307\241\225\266\326\002\221\272V^\233\250=:w\n\022\001V\310\320@@\"\203B\232\022\n+b\022b\341\221\260\204\305\204\221\026\023\036q1a\344\305\204-0&,\2111\021\037\222\277\343\344\030\324\030P\270\225\337B\216 \205\035\375\006=\206,\374\tr\006\256]3>;\033\02169\351 \313L@M~\"hg)\000v\256,\007\033\275\017n\0331\307j\243\2641Z\010\275\370,t\014\233A&\026\\\tk\271\2250\213\255\204g\251\2250\013\255\204\275\314JX\213\254\204\350\241\t\253\207&L\017Mxzh\302\364\320\204\335C\023i\033e|\224\034\013i|\324`\215\217z\320\306G\r\336\370\250\2158n6j\022Y\274\315<+\237\321\240\007\352\325\303\262\370\032\254\260C\222\267aj\217&\201\202D\204\0252d\020\220\010\241\220&\205\302\212\230\244e\350\2244\026NI\217iS\322\3304%mc\246\244e\305$/\363\302\2337\3111\2501\240p+\277\205\034A\n;\372\rz\014Y\370m\214\026B/>\013\035\303f\220\211\361$i\215\047I3\236$=\343I\322\214\047I{,\023\277\034\030z\027n\203xrP\376\032\344\340W\250\311k!\006\210B\013^\203\024\002\006\345\230\374\265P\216\031\224c\036""\224c\006\345\230\215r\314B\251\356Te\001+\003\r\322\3710\210\235\235\216\320\271j\210\2259\277\304\025A\3312\177\245\233`\205\225\325L97\233[\316\2257$\210\355ZG\363\345\354b\266\350\023\203\367\025K\360d\276T\306\035\352\361l1W\230G\330\322zy\276\360\030\013\222\372\\\374\350\242\202\227\212H>S4\000P\221\300\247\213\002~U\004yg\241\274\363U8\006k\310\014\240\332oa\016\231\001T\370\r\366\2205\200\332\227!Zw!z\257B\264nBd\027!\332\367 \246\244\201K\312\266pIY&.)\257\215K\3122rI1+\227\224m\346\202\353\225[\021\3551\330eP\3417!+\007\tTy\310\220\311E\206M>QY\004t\255\\\242V!t\300\316#j\025C\004\254\034\242\254 B\331\217\216\215~\332\302>\355E>m\341\236f\250\215\"\047\225\034\226\277\006oR\017\242\312kaM\352\341\023\275\006gr\330B\031\225\277\026\312\250A\031\365\240\214\032\224Q\033\245\031\025Sw\306\225NQy\rr\005P9\330a+\033\005Vy\251\260\311PAT\256\223\243)i\324#=:G\nR~V\310\344F@\312\213B:\047\n\253|\322BRK[\022T\332HPi\217\004\2256\022T\332\226\240\322\226\004\225\0263d\332\232\036\323fnL{&\306\264\231\025\323\366\224\230\266\346\303t<\221\022zM\3511\210eP\3416!\013\275\004\252\034d\310d\"\303:\237)q\304\000\035\223\307\2249R\240\375\026\376)s\204@\370\r\356)\353\310@zJ\364Rt,\314\246\217j\277\215\331\364P\341\2670[\375sJ\334\372W\"\352p\272\343Qr\036t}\203\035H\366\"Jm\371]I\307B""\206\274V\204\212\306-[\270\214\266\375<\251~a\320\365^\242\r\367{/\321\212\367y/\321\212m\365<\242\225D<\217\350\016C?\315X0\374\306\025\024\217&\206\022\211\320\035\234\330#\311\0312\377\022\240$\207\021\357\361\t\315\344\014\275B\n\221\343\241X8\004\000\030\\\206\023\241\261\210\206P\312\231\361\370h(\301\023H\210N\260\361\004\376\360q\236\231X\366I9\221]\230\231!\023\333T4\036\233\211\301G\220lfF\274N\tN>_(\303\020\204\3769\202q\306\267\340\367\314\334r\246T2\357^\251\367#\354\207#\300\217\204\240[\230C\007\221\242\213U$^o\364\257-\033\253|Ek\227z\243\352\232Y\311\344\362\230p%[\316H\3320P\230__\026\205[)\026f\262\371\262\370p\206\352\017\335\354ctV\213\331\325LQ@V\201\203\217\304\232\tC\370\340\250J\253\236\277P\017f\316\314\340\273\217*VT\377\314\014\264\222G\331bIp\016B\320*\320\325\017h\212\362\316K\325YI\264z`Mi&W\002\366\025\013\353\260\372\313\316\340{\227\353\253\210I\262\276\264>7\227\205\362\000@0p\035\326t3\271yw\330\225\240\010<\004\212\021\270hL\244\255\240\260\\\246\2601e&\200\3276\232\"|\355\246U\234\327p\232b\240t\326ZV\001\327iq:\263*V\247\010\316i\033I\014\025\245\302\021Z$\256\216\025\337\220\355b\231\214I\260\n(\332\003v\347Y\362\317\263DKb\340\367r\241\224\315\314,\345\026\2272P\r\2173388e(m\t\t\312,\313\337k\322\031\200\352.,\257\257d3PG\313\331b\006\373\214\355\307\002\201\200\260\350\206\225\360!\026\033\350N\264\222y\342\003\362|&\001\253@\346|\246\270\210\317\230\3127K3\245\271\\.S*o\254f3\245\215\374\\\256\320\257[X)S.\312\"e\036-J\317\354lv17\377d6W\236\335\200F{\035Z\263\344j\251\234\233{8\267\214\355\022\372W\271\230\231\313\242\021\375\034\n=\202]s\205\345\345\254\030*Js\310\211<\364\004L \374%\034\010\346\347\263\330\370U\355\211>\256\272\300|\2664W\314\255\342\347\363\271\322\352rfCt(\354\024\360\007|\315\227E1\263+\253\345\r(#\320\010\277\245\307\271\362R6\017\321\300\004\3004\007\255d\001\n;\017\243\000\226X\372e\311\320\377\320\362/\347Vre\364\230\244\024\231+j/\214Mb|\222\203\024uH\034\314D\377B.\013\017>S+<\310\037\341)\314""\376\226\225\251\314\353\270:\204%S\201\222\373\251\\\327\013\271\374a\334E\354\237\342\247\264$\252e)\273\274\212\315tI>0\272\234\315/\211\255\255\\\016Y\224[Y\205V1\223-\026\013Ehl\371\371\354\023$\325\316\316dee\332j\220\315IM\023\214R\242\036pl.=\314n\300\277\322\303\307\310\215\345\354By6S\0047\277X^\022#\262z\265\027\272\021\374\313\026%\273\241\t\347V\326W\300\221\234^\311\256\024V [\031\310\225 \253Erf\020\275\034\300WJ\213+\320Zr\253\313\271l1\217$\211FR^_\205\014a\n\233\235\317>\022?\363\322\277\276\232\207\321\376\t\360\006\361\330\305\2066#\303\302\247\047\036\031\222\217\005\203wuC\326caa\001\306\214B\276\230\3051=\213\203\001\376\241\342M\014M\266\344R\300\201Q#tMi%\223SA\276\237\207\215\t2\204\177\231b\001\032?\214?\312\277\276\n\276\331l\246\270\212|\023~\354\233\350Y_^V\300y\370[\310\254d\204S\242 4up\2272\242g\n\0376\022\341\201J\020\256(\004\016\003\253K\031\221\206*\327\370fP\326\201\340o\360\207\350\226\263\231y\250\020L+jr\026\212\014\376\225\314\234rD+\224\336Rn1\017ya@\320\0065-\177e\t\244G\345\260\222\233\207\266\254\360\345\362\362\227R\n\217I\231_/=\312\201/?\013c\037\216\013X]\313\004\\\025\234\324\217B[oA\333\317BS\005\223\2035\223\303\214a\216\237\207qd\275\210\211qP\047\307.,\206\031\265\010X\207aW% \006\225\340\243yr\221w\245\225\234\374\325|\201\261+\277H\265\"\374\262b4\256U\370\313\224D\327\027?\202t3\022\010_\t\3520[\226\023\000|6\007\334\310-ge\047\242\271j\265\260\014\375q\265\260*z\263\370\271&~\007\354\356\355\351\352\324\\\005\034~\241\261\024\313\033E|\007\017{/\026ZL~b\352\003)h\031\246\003\350\t8\222\203\274QD\2355\266n\234{q0Z\\\022\243B\26107 \311\002\337u\355#\017\314\310%\020tV28\227\344\025\375\331\345\005I\226\347\231n\367\353\334\256G\271\371[\334\020RS\215\224\016\260\030\262.\344\200$\375\224\351\303\334\352\214\230\006D5\322d\"\375\224\002\253\325\202?\264\340bbA\217\211\246H\234\017\227a\010Y\006_\261,9\214\323\332\034\320\270\204\3610C>Ri\213\327\305\014\\\022\213\243\322\206\224V\312\320Tg\373QX\001\267\274""\004Q\363X\226\334J6Y\206v\202\036\371\275\361\r\030\357u\343\375\274\\\230\021\003\034\222\210\177Jz\\\027\232\010\371+\3465\321 \005\255\222`\222j\037\311\331V\n=0\366\347\361\017\245.(\266\314\342\177\035;\201\177\377o}shsm\247\347D\245\2732\261s\374\215\235\023g\2343\227\353\003\365\320\316\361`\355X}`\247\347-\210\017\034s\216}X\rU\047\344G\033\225\256\n\305\274\366v\345\023\370\262\347L%\363\377\253\377\271\000\004\216;\307?\251}]\037\252?i\000C^\337<\277\271V\351\330\351y\267\362\264v\362\177\035\317\003o9o}R\033\000Vm\016`\360\355\312\225*|u\2722Q)\324&$\244\277\326! \316\231\213\2655\001r\336\276P\313\324\326\010z\265>AP\210\257\277\321\270\267ul{\200\342\372\353\031\212\273\336\350m(\350\327M\314\373\223s\177_\370W\367\361\315o+\231\n\340zc3U9SY\253v\240\367A\265\267\372U\355\233z\252q\022\203\223\225\213\325\267\253_\326>\256\205v\002om>\256d\253?\326?\206\352\016\274\351\274\371\337\352Z\255\247\016\237\235\204\357\213\325S\325;\265\207\215S\215ts\240\031\335z\340$\222Nr\306\231\371\325\371\265\340\024\236\376\375\257\177\375\3361\330\t\316`\347\010:#\235Qt\242\235?w\312r\347\252k\212\035\237|\333\034\370\373\322\341h\034k\236\334\023\225\367\234{\367\235\373K\316R\316\311=\001\2026:\302HW\270\3636:\267;\047\320\231\350L\240\223\350L\276Zb\201\322\007\316\003\240\3647\347\267\r \350iG\004\351\212t\216\2423j\250\004\047\331\231\362\022{\356\374!\352\336\371\340r\375z}\302M\351\273\325\316\352\271j\256\366{\343\\c\241\031j\336\331Zq\222)\047\0055\237q2\253\316\352\357@\315\263\216!$j\310\324:8?\003\223%\211\277a[\047\022\277k\206\016\301OI\344\203f\357\236\310\177\341P}\355J}\260\236qS{\026\222\335\250n""\324\2175n4\0365\047\232\271\255?\240:\235I\350h\3208\326\234\265g@\315\037\252\021\353N&\032\311(\221\370\260vR\223\370\275\363=|\235\376\373\372!\t]i~\277\335\301\211=\345\234:_\233\250-a!`\036\202\331\2566\2023G\213B\310\241\002J\360\207\363\307\237@\357_\0351$;\246\370L-c\001\235\205\316Et\026;\213\350\024;\377@\347\217\316\237\273\260\270]\343\350\214wM\2403\321u\037\235\373]\213\350,v\025\321)v=A\347I\327\006:\033]O\273\030c\276qN\237\027s\360\371\037\232\231\277\257\034\2223\313\356\276\375\242\n}\246\246\315egy\305Y\221\025JSf\034\235x\347$:\223\235it\322\320Y\300\311t.\243\263\334YB\247\324\271\201\316F\347St\236v\376\316\253\376\233\n\026\357\302\305C\265\317\253\365D\3353\004\274W\375\270\032\256\275V\377\240\021n\376_3\323\334\330~\003\232\227\223\226#W\321)\376\001\364\374\251f-\3350E\277\032#\"\227k\275\252}^\370\301\371\001\276\236\302\361\352\315\315{\325\216\252 \047]\271Y=Y\355\265\tM\243\220s\340\361\352\202!\026(}\350<\004\336?q\236\310)\226f\254\024:)\350\350\340\334SL\237Eg\266s\316\333\373/^:\024w\373\353\263\rOcy\277z\275\232\252\275W\277\334H5\3174\327\266^\333\376\0170\307\231\222\303U\311)\311\2163\214D\r\033\266\2023\326\031#\022W\214\324)I<0__0@\335<0\211\326\000\005$~zx.\276\341\274\361Q5S}\202\242\263\355\3373G}\333\353\024:S\252\t,\241\263\324\231G\047\337Y@\247\320\271\312\231\376u%\204e\372\261\271v\250\231\014K\365FsbO\255\343\027\347\027\030Md\213\226r\030M\2774\272R\253\326#\212\267\221\374\350\374\010]\020F\242\374\3377\016M\364\335\255\247\316Db\047\360\256\363\356\245zG\375,\246?\353\234\355\253\237\254_j\364rx\213\022\301\310\010\322\004TM\031H^Ws3--H^\273\217\316}5$\322,A#\343\237\350\374\331\031\305\261?\332u\027\235\273]\277\242\363kW\006\235L\3272:\313]\217\321y\334u+\200\014\013\214\2413\026\210\241\023\013\304\0036\247\234c\0379\037\301J\013\370u\251\357P\375\376\263z\261\341Y\013|P\035\254\316\327\372\352\3376\346\233\027\266:\266\336\333\276\352LM;\323\320D\263N\266\354\224\2450H5\253{\223\250\3408Ui\0363\221U\n$\366""\267\227\304\326s\275\227\364\317\234;w\235\273\013\316\302\242\263\370\010\031\254\226\2054\316\322\0347\216\316\270\032ni\332\367\235\334\"XM\0215\355\337C\347\236\252\311Ytf\273\346\272\030\023\364\014\177\t\0327\364\366\351C\r2\310\217\017\233\017\266{_\\mW\2344\214,\373\227s\226|*\361\047\347\047XaC\317\226X\2148\372\325!\313\362\237\346\312\366\367\316\264lY\353\007\257hh\243\320@\241\244\254\230\017\320y\320\371\013:\277t\376\206\316o\235\017\321y\350\252\320QtF\273\022\350$\272\222\350$\273~A\347\227\256\034:\271\256G\350<\352z\206\316\263\256?\320\371\243k\004{\350H \211N2\360\013:\277\004\346\321\231\017d\321\311\006\026\002\376\355\241\357\323Cu\336k\215\316\206\247\025|XMT\313\265\257\353\267\033\345\346\315\255\223[}\310\334;\316\035\340/t\202u,\200\032\304H\312\323=\227:\202\326\013\251\272o\017\231\047+\037\355\231Jg]\nn/\246\360Le\241\372s\r\232G\317\346\277\235\267\200\017\250\364Z\253\376\037\252\267\210\372\220\023\202u7\340|\364\367\265C\026\343j\363\257\355\202\363\340\227\035T\250\005k\035\265\263\365\223\334\337\242hz\360!I\204\306N\2559\021\263\342\034:sjN\177\204\316\243\316g\350T\025\0164\336nx\226\262\377\251\316\326\002\265h\375^3\320\034\336\352\335\372z{l_c\355D\047\351\t/\324te]\036\332\0328\224\260r\275\361qcl\3133\245}T-\326N\325\356\324\0376O5\323[\003[\321\355\007\316]\240r\311Y\302QG\364\n\222\272\210:\022\267\370\3701\323iT\244\212\344+W\017\305\332\317\033\327\033\036\331\352\277\265\316\332\271Z\256\376{\363\\sa+\264ug{\345 \232#\347\314\245z\207E\347\247\207\247\363D\345M%\316Z\336\275QL\303\016\251\tt+\260E\250yt\346;W\320YQ\363o\031\235r\347:+\324\351J\272\3725\322g:\376\031(\331\243\352\304\356q\3076\277\253\240z\373\332\300\241\252\355\313F\321\243DuN\236\253\r\326\346\353}\215o\233\363[\027\266;\266\337s\022\373[\\O\2512^\251\353\251\367\306\027\207\242\364\333\346u\217\360\356\234\274T\357\254\237\253\347\032\277o\235\333Z\330\016m\337\021\242\302\301\264P\316\231k\r\335""\314\244\202\307\356\302\257o^\206\341(\243\310\275Y;\311)?\333|\177\353\363\255\314a\365\325\367\234q\020P\356\210!HJ=Z\344\341\013).\343\355\326\324lU6\226K\254J>ms\321\376\263\2259P\341\304\004\311\205o]-\242\200$\354\254\243\263\256\346\221A\234$\006\273\206\320\031\352\nwy\312\371\303\217\254\265\035\252\204{\326\340?t&RN\n\312\006\023\265\024\342\212N\361O\347O\271\320\240\236B\245#U\210\026U\305:8\347\325\210HM\316\245\366\226eO\252soi\016\337\022\355\202a3hw\301f\232\241}\027\014\026\305m-\330O!\326\364\216o\336\266\2079\337R}\261\335q\370\246\007\rE\356t\201\344\262\247\205>\tj9trfQ\341W\240O\333WM\244\001}\307y\347\\-T\233\306\302\301@\376q\255\267\366U}\300_\033z\314I\356\273p\276\232%\276T\212\243\023\357\232Dg\262+\215N\272k\252\213\351S\177\254\242z\342\247i\020\353\333\331V\221\t\177x\333\352\213\213\216\215\316Un\276\254 \021\217*u\025\235U%\204?F\347q\347\023\257\312\030\227\026r\267\231\266\224\376B\347\257N\022\306I\231\263\204\316R \027`:\255C\262B\250\270\234\357\343N\034\312\047u\307$SQ\025\352\245\303\213Uw\0378\251)g\nX\365\213\363\013\210\305\262\225\320\"\205\030\263\206\316Z\347-,\330\255\256\031tf\272J\350\224\272~\306\362\375\034\270\215\316\355\300\024:S\201it\246\003\213\350,\006\212\350\024\003\033\350l\004\376B\347\257\300O\3358\300w\207\272=z\300\301\241vNC{Ts]v&\241\275J\035&\010\256b\311\210\253\030\332K&\211\233D!bK\026\235\254R)\220\np\305\253@\221\005z\303\214iZ\r\216\245\370\262\306\324\340\223\215K\315O\267\206\267{\0178\270\235\247\315\235\337\235D{\013d\rnP \276Pc\005\362\255\241\233\333\207\335~l{\201,\345\277,\220\256!\327\364\343[C\221\003\027\350\0133L\035]\201\304\340{\245\275\335\350\003\034|\337\251\374P;Y\273T\007\226\010\303!\245\373xa\227\202\031H\312t4\022s\371\225\026\333T>\032p\364\330\213{\250\235$\270\336F\347\266\232zh\323\365\001:\017\272~\341\332W9\021\r\205\3339\236\354Q\363\366\255\223\006YM\256\000a\025\254M\022\250VI\341@\332\037\232?Hf\322\265*D\247\274W)\347*\320!\205\245=\356\377\3014\321\336\002Y#>""\024\250\277\3555\264\267\215\237\366\324\034\211J\264\336\"\311!\204m2\244\224\313\324B\347\320\231\353\232Gg\276\253\200N\241\353):O\325T:\216\316x`\002\235\211@\"`\327\277\265\3753\004\3028\256\226X/\177s\363\241\275\257\352\313\272/[\317-\322\214\340\312\326\336\206c\233MR\217F\322\025_\021p[!\022PhE@\302\345O\310\200\237\272\210c\203]\236\361,\034i\347\000\375\202&?i\0060\340\2614.\373\315\371\355\261\363X*\263\250\t\220>\227\2648\264\233BkS\335\326I\222\3664yX\306\371\016J\236\316|\272\226\361k\375K\333\2779\323\017\204>\3720\306\223.\345B\336\311\3030\275\341lH\271\226\232\225\321\030\310w\206I\0253\206\316\330^\206\006\022\257\365\230\2005\021x\200\316\003\265\302x\202\316\223\300\237\350\374i\244l\233\367\326\350q\367\336\221\266\277\203\252\177\nN\241\354\224\237:O\245\005\001\3654nl\312\r\370\370*\225F\020\335\362\304\226I\264\313#\301B\361?}\031\305\267W\354l\365~\364\254\240NH\323\0175\265it\246US\2436\266\216\316\272\332\342|\314\271%e\250\273El\267J\325CJ\220\371N\266\253v4LD{*\264<\344\3664\355\344%1\221\244\224\337\321\371]-\240u\013\022&\034\234{\2643LL\\Eg\265\353wt~\357\032\306\3567\254:*-\207\357\240s\047p7\300\030,Mu\356\312u7)$h\354 \205\002\214\2527\217\234\3173\315\370\366\217\316]\264\240\325\307*\246I\346\360\365\037\230\355|\313\223\006F\352\270\334\242RK\365b\047~\005\235\025eQI;\361\203\310\323\301\300\020:C\312d\206\030M\343\343\034:sj_\276\200N!\360\024\235\247j\264\014\2432\"\334\035A\047\322=\334\315*\350K\340\030\236f\270w\377\210\207\314\275/\204\047\235IiO\236u\262\253\316*,\035\177w~\227[L$\225\360\355em\354,\364\347\244\340\242\226Ns\021o\351?{E\260\373\017\216\270\370{4\363ti\367@\004\006\021\375\231\363L\356\212\220\342\212\033\233q\023JZ\\R\017\247U\245.\2670\354\275\335\345\321\366\335\227\213s\232\343iV7r\353\365#g\315_\315\302\366\214s\037\r\354v\263A8 \303h\023\222\006\036R\324\023o""\270]\014\251\377\310\216\215\213)\324\033\311.&\212N4\220B\047\025\230AgF\351\004W\320Y\t\344\321\311C\247d\374\226\206\013\017~9\3429\232\226\001\047\234\023\275J\245\301\265\352/T\226\026\235\"\254\n\364N\010m\357\362}]m\270k\017wd\323\261\2079\232F=\322\266\226\321)\303\214\315\026\024r[\373\201l\241fs\375\350\271\367f3\277\035\332\267\212\331\237k\304.2\003\340\362\262\231\010\261\273\321\036\004\031T\222\t\014\231\335/\241\263\004s\263g\305\365@.\343\215\000\325\177\344\354y\253\371\327vf\267\316z@V\221\201\n\rB\\\353\300wy\251\353\322D\232E\047\333\365\020\235\207.\333S\352\272\273\352 \210\233\262{\3762s\304\363\301\3014\367\260.{\342<\321\033\310\264\304\3246\026\202qF~\305\246\306\255ui\237\213\264\214\272gz\224\3723\277\036q\361\017\246h\004y\013\226\245L\321JF7Tv\322\306P\331\371xO\335\314wT\212uy\364\220\300\202\376\227\301\2026i\362\332\301\032\337\355On\313M\266\241$\221\206\321\t\007\342\350\304A\364\307!+\360\033:\277\005V\321Y\r\254\241\263\026(\266R\364e\204\236\341\312\221r\272\245\355\334.ft\367\234i\020B\345y0\220J@\250\220b>)\001i\033\203\224\200\244\375\343\306\306\334,\200\206\254\030:1\305b\262s\344g\253H\350\240CU\177\241\363W\327O\310\306\237\002\241\000\267\323\223\047\220\036?yaou\355a\235\256-\342\342\2625/A\364\206\365\r\356\332\274\014\025\010\315\3524\216\321~=i\232\270\311:q\223\253T\271\311:\355P\353\271R\254c\177\363jI@D\264\271v\354\305\355\357Lm\035\325\216n\256\335\330z\262\375\324\271\0032(\024P*\317\312\2735\305\320^\032\037`\223\207\275\226\235e\230$\245*\216o\363\223\276\202\270\346{\240\212\266\322\270\241?W`R7\247e(q-\217N\336\254\376=\326\241\177\007$\035/\237\2037\033\263MW\367uN~R\273^K\325\337k\\n\246\266\316l\255m\277\346L\0002\030\031\245\315.\036\236v~gg\220h%\311M\260HY\302\225\233\244x\"\241\226&R\275\224\022\023)\tk\324\362h\250\2443\222Z\266%\036^\256\017\030\036\212\215\320\227\317\303\257\232\235\315^7\017\317\327\022\265r\375\353\306\355f\0317\264\267\373\234$\310\035\320\010\245\251\253>tH\215\220\226V$""\264qS\033_S6Z\231ri\227O\3034\020\222\222\230\032\241^\025\220\036\317\\\333`\370(v\256^>\037\277n\276\335\034p\363\361Bm\266\036\250G\033\367\266\002h\351\260\375\265\223\202Y\032z\262<\277\255\017\303\371\336\342@\002<\215}\374L\034Y\360\320\342\201\017\201Z\216\021\323\013\227\210wS\204\212+.\014\037E\277x\371|\374\246\371q3\344\346\343\305Z\261~\252~\247\361p\353\324Vz{`;\352LB\207\006d\300D\230\221\365q-\337\013\021\270a\201\257]\033\315(z[N\254,\210\201$\t\321\240\270\200\316\202R\202j\006\212\225\305\023\305\307\317\352\326\330\370\324Z\211]z\351S\363Am\311\374\225\047\374R\004\276AF-\223\026i|uF<\244\311\231\024+\277\241\363[\327\032:k\206\207t\214\334\255\227\372\373\377\376\325\375\226\363&*\306\327\360\n\234\047\233\245J\357N\317k;\201\3276O\356\250+[\002\330\374\314u-->\0227\352\210\317N8\047\360\360\225n\366\257\377\253\373\214\370\332\351\377\t\026]\357nw\340\346\352\211J\007\332\331wo\246+\003\225\010\324P\017\2127\035\3253\300\320\356\332T=T\237P#\221s\365\007`\347\232\033\337g\316g\203[\2750\241\213\3361\341\302\366\346\346\"\224u\241\032\252N\326.\202\320\337\253\312 \251P\232\311\277\217\377\253\373\304\2468\225\320\0015\330+\355\3771 S\210\263\000\233k\316\tq\224\005\357\273\351\253\016TC\004\226ex\023Z\\\317\211\3121\021\321sl\363\306\346\323\352\311\352\305\332\311\235\343\247*\0009\276y\2532\340\234:W\033mt<\007R\357\310\306\372\357\377\255Q\\E\340{\r\2624io\325o6N\302B\205\330\362\037h\266\351\306\000\0107=\222\322\013\265\016\310\000r\373\242\362\232\330\265?~\242\322Y9_)U\317\003\007;@\342\301\351\346K\220\207n5\007\3049\033\240\376\315\315\234\354\026P\265W\352\341\306k\315\223\3167\243\333C\333k\254@\257c\205\242\356\372\223\312]X\026\r\354\034?\215\327\006IZ\243\260TZ\303bLUB\225T\365\264l\00728\241\320tU\256W&\201\233\300\277S\225p\265\273:!\017V\t\201\032y\376v\345\277\265\016\247\367\363\306\200s#\274\025\332\2320g4\236\007\272\261\220X\252s\360U\317IQ/7\3604\306\331\352k\265\223\265s\320\266z\336\257^\206F6/\026s=g*s*\365\373\325O ""\263yh\343=\357\0023\304\207\224\245s\362\323z\257s\371\373\346\204\363Cl;+n\177\231\244|a\265\364\\\356\247@\231D\325\337\020\305\030\250\334\222\206\020\377\376\337\343\3159\254\241\2676\313\225\257\240\252G\240\241\274v\262\362\016\32604~\242\272\003\211]\231\207\212}R{R\337\000\361L\0201P\031\302\3124\031\243\202#TM\241~Hg\014\323\270h\360NhB\030,\3431R\312\371\213\306D\213\234\177\256.`/8%2\0108\037\366\327\347\033\027@\246\271\010S\305\204]P]\033\047*\201J\210\325\332{\262K#%\047\376\325\335\363\277\365\315\301\315\214\272xks`3\204\r\266\2732S\033\306:\371\016[\350\316q,\326u\321D^\366\202\253\372c\275\267M\026\017\374\200\016\255\033Hr\333\373\276~\n\235\224\022}\365J\326m\r\361\nV\246W\274\266!\007\334g\"\251\326\367\310\034\027n\265\361\277\230\010\303\310\215\260\232\001w5\3463{PGn\2620\320\246\325:1\207o\326\223\250J\246A\304\016}m\n\355:\273\327\340G\\\344~\357\206\343\001u\322$\\\362\275\017\352+\264\341H\346\234|\231\370\227\3076\352\310\365\252\035m\324\252\222\206\201k\020\371\235A\244Z\340\253\272\220G\235\332\312H\325\323\373[\027\033\225\340m.\366.Z\225\303\232\367\275\270\350\007\263\376\334\1779\017xgX\213\002\274\234\005\341^\007+\327\020\336z\262\243-s~\220\220\353\302I?\301M6H?A\273\303w\320\271c\346\274]\307\263\227\303)\261\354d\352D\337M$W\303\367\031\342h\034\337m\231G\353g\276%G[J$\025L\2413\345\262m\231\361l0\275\002F\355\265\353\330F\261 \022\370l\267Q[\362\355=\\\305\300OY\221\336\225\314\177h#\\\263\210\354\016\376\001\235o@n9}\264\333\215\010\267\235)\327\366H\213)\204\246L\352x\334T\207\337Z\302\317C\220v\232D(\352x\334:#\323\345\271g\341\225h\364{_\272>\237\254\371\210U4\005\223\215\023\351[|/d\232\365Q\344\277|\216}\336p\351L}.Yx\350\334\0011G\236\334_qV\240\027\356\262\375F\362\t-a\270I\n?\236\3017B\310,\212:\344n\227\216\330\027N\274\002\216\335hx\264\243\275\265\267k7j\033\215c\315\033\315G[\023[\271\355\337\235""\273 \"\311\273\254\000\037\364G\271\226\341\047\256\350`\022\r\363\264\244\341&\003\334\274\237\313\360\264\357A\226\027\264\244\321\274\"\023obY_\375\344\253c\331\027\215\t7\313>\206\004\341\372k\215\017\232\341\255\377\333\312lm8\3430\206\301\264(/\347\301\353\225\235\247R\365\311\217\303\360\233\245hj\344\302\003?U\314\315li\223\210d\010_{\370\254\342\331\247\365\336W\307\263\233\215\314+\330X\243\365\023\277\017\210\344.R2\320$\251\231%\2665\026|v\324^>\317\276l\254\271y\346sY\n\214e0W\312{y\360vY\347\231\234+\371\255I\374\2566\337\033\314\210Y$\253\362\305&\211`d[@s\245f\226\330\302X\354\362\\\303\362J\266\037;^\321\346#\t\367zu.\026\255\264\347Cj\032\23215\303\310\360\316\273\353\370*\266\033O\276\242\315\306\335,\025I\344\337\315R\221\3552\276\212\355\305\336W\264\271\270\233\271\n-\000v3Wa\273\212/\237o\337z7\267}\256W\202\201\r&Py5*\273\206\317\367\366l~\264\224&Q\276\020\340\272T\276?K\262\032\255\007\370Y\025\332[|\330\345\271\274\351p\0175\354A\357>\261\265,\036j\200\001\013\244U\322\231:\277?\333U\033\276\377\233\327\367\240\024\311\340\305\327)q\365:\324.\351\264\235g\177\354\252\252\330\377\205\334{\320\260\257m\037\027\033IR\217L\033\313\316\037\177\356\252\367\336\377\355\331\023/\336\346\356\330\376P\334\236-\225D\244\373\200E\275g\273\371p7M\357A\331|\022\257.\235r\246\344f\273\255[\010\355\256)\336\377u\201\275/\276*pb{Yh\372\245\246\303o\265\020\351\334}\301\270\377\313\366\006^|%`f\373\231\320\351I\275\202\237@>\334\271\373\252l\277d\211\365\225\353\"9\357\002k\315\031\227\246\022r\t\357\047\365\336\352\334}\355s \302^\264\360\263\351\202\241g\037t\265\357\326\226\201}\337\331\202\307\352\325\245 |\273\315W\005\371\253w\363\250\215\267\264\354U\337l\357\024\035\354\212MW\001\332u\350\177\2575\360\217-\300\256SJ\213Ke\016\330\204\254\251\347p\367U\273\316\363\275\350\"\347\336\355\357\304u\343r\227\321\255/\335\3556|-[\362\353\226\205!\302\247\207\272\376\366$?\025f\337K\355\247\366\rm\337\027\266\005r\027\301o\244\341k1\"\234\257\364\327""\\\367\343~_E;\224\353/Y\274\225\202\235}<\316\366\263\223L\354\330\234\257\321\205k\323\034\252W?{A\023*\351\220|\257\033\345\3527\276\304\247\245\003\351\220|\215.h\251J6utXQ\037\030\300\306\025\030EgT]`F\207\025\365%\336\370\271:\250\361\014\235g\201a<,<\334=\212\316h\367\030:c\3351v\337\302\346w\225g\265o\353\231\377\t\013\262\320\316\361w\360\331\013\257\363%\332~i\347\253\352\200\027\370\005\324\254\371\340\333j\006\235o\252\023\326\007\020\207\031\t\0031|2\357\306M\350W\275\315/\266:\376\047\355\233\310\251\374\033\333\211\014\224\021\261\362\242ITH\006\326+\241JR\305\254W\006+\363\325^\031x\014\315\256\014\315i@\004\235\267\316\013\023\256\013\215\216\206\310\235\254\210\360\3059(r\014-\331v\216\177P\375\242v\274\036\202^\322\001\353\363\343o\t\343\272~\030\020N\234\252\214TC;\247\256\324o\241a\334\363\023\227\352\377\256\2575:4\271\032\335\r\347\342\340V\357\337\377\367\257\327\320\324\257\347\270s\374C\370\360\370\351\312d\365jm\rP\035\177\013\257\373}\\\313B\033<\245\356\t8\361^\365\014\300\026\353\023\320]A.x\267\336\r\3220\217\336\200\365\332Ea\247w\374\204d\rR>\206Vqh\374\027v\316\202\334\n\003\231\212E\032\336\251\234\003\241\030{J\217\030d\304\200)j\251\247\326]\233\220VPP;\302\010\353\304\273\3000\264+<\216\003\266\260\255\252>\252M<\007\204]\220\350N-#:\352\211\323\225i\370\3427\305\001y\335\201b\302H\3656\024\363\2304\037<\266y\263\362\256s\026\025\270\302<\361\rh&\316\373(\ta\3609\321\264\010\255\343\330\333\225^\021\215\255H\030>\356\2348\271s*\010T\336k\004\032!\354\237\212\331\237\206\234\020^\033\266\323\323[\373\217(r\317\177\000E\317\307\265+2\364~\365\n\320\372\004\275\037U\013\300\323\245Ff\247\347\303\352\255\332\027\316\245\357@\000\270\047\3263\360\205\3631\210\261\215\221f\010\231\365)\214\020\010\372\nk\277yi\253o\373\246\020\023\3568w`a\214[\027\366\255:\374\262\031>\277\322N\205\357\265\266dP\024\351B\366|U\371\034\206\304\3430\3578\301o\232}[\337mo8\3230\374@~\270a\262\323s\276\366K\343+\030\232D\177yX}\027&l\341\021\306\201O\240""\327^\307\273%\200)\227\257\034\204\035\365\267\032kh\343\307\031q\036\333\013\201B\215i\220\227\026\266\207\235\004\214\214\362\266l-j\360M/\2228|_m0w\340\272J\375E\343Ns\031u\204\260\274\004\354\3022\244\047\010k\276\263\322$\365(J\355\\\022U\354.\366\205\332\204\000A\373lL4\226@\312z\264\235\026\204\311\027\006\265\200\302w\256\250!\370^\375kf{W\261o6r\315g\250\342\203\265,`\307\r},\311\373\365\257d\3179\232b\177\r\355\272\327]\354\213hT\t \350\245\215L\343\t\310f\377\267\275 \010\203\312\260-N\370z\222\032>i\270\271\220c\256\233u\025\373\313\306\306\326q\324\320A\267\002\354\270;\217\264_\256Oc\346GU\354o`v\031p\027\373\022\214\253\010\272\t\205^k\366\300\212\376\314\366#A\230|\035H\337\242\305\327\2534\353\373\336\262\253\267t\335\305\376\252\371\332\326\207\250`\203a\013\260\343^;\316\025\337\341S\250\315\216\243*\366\267r\334\350uz\361\305\323\257\220\005\306\217,\350\253\313\256\377%R\321<\013r\355\005g<-\250\224\367\301k\311\207\013\206\244\370\343;\216\234\0074\364\221v\236\306<\332q4g\225]l\372\272\371\336\326\225\355\234\030q\201\000\334d\337\3519W\033\003qP\264[\1776\r\324F\033\235\260&\301\321\263\350L\240\305\354\341\231\306\333J{\030\3055\244\346N\314\266p\341\260\215\005\247\305\211}\317\210\332D\213\357~\221\245\210\357]\240\346v\305\177\300\374\347\\\372\036\226\323\031w\271/\327\345()\306\313\346W\260Z\032\026\032\017\240\014\252\003\326\"\332\216\226\357^\221\275\207\357\255\222\346\212=W\271\277m~\2755\352\214\003Oa\321\001\350q\333\177\247\347B\255\0003\257\240\355H\013\216\014nW\271iP\277\\c\010\343\013\213=;=\227\244&\343\022\262\374\202s\341K\261~\357\330\333\202\305\036>\371E\321$\257r#Y~\301\n\331\343\221\r#\277\245\214\356\277\243s\360\244\263\247\027r\351\341\315It&\225\316\236\256C.\241SR\217\216\374\216\316\357\201g\201v\254\216\376\250\205j\367\033oC\222oP\242L:I\220Z\244jC\362A\317\244T\211\342\254\360!\206\261\373\370\222\361~G2{N\347M\231_\206\306\315si2\247j\322\326\223m\036\330\200\0470\346\240!\331a\306\267\327\2044\177O\010\361_\211\001\355$o\304\006\276\267\321O\350\245\370Q\003~\217*?\311B,#\031\200_$J\273Q\274eS\223\246m(\272\366\206\356\013\363\2751\230\356\013\273\027h\257J\3473\034\005\244FN.\262\344\204\247\245\037\252\"<7vp\205\350\025a\360\265\327\021\346\205\332R\373i\224C\356\021\2205+Ye\222\3114\231\306\321\315Dt\203\t]-\306/E\244*J\006\332\241\205\205\345\002pt\266\321\323|\035*t\326\031\207\326(\347\241G\316#4}\302\272\010\343D\3662\245 1vp\005-\177\263\223/\276\370\363\027\346\305\254\366\016\032a\047\014_\241\332\374\340\232\231\345\355~g\032\r\363a\345\346|rC\310\000\023\266\177o\352\032\241\233\343\312\010n\270\317\215\251\371:""\224\026\240\324\374\270\235&5?\272\320\2116\252\365\243\323mQq\375Y\233\250-7>\206\266p\033\227\273\262\322\177A\006G\260\245\034\204\263?6\327\240\341{\204\255\253u\t\022\272\337\346\364\326\035\354\321R\377\"_\033\225\272\035.g\363\003\344\374\274\r?3o\3368s\261\345{\020\353`\354\221\252\004\271\364Z\244\261\007\246\202\255\027\312]W\016\314\010\354o\370\250\347>\373\233\034\334|\255Dh\214\343g\047\371\013u\372\214[{\373\333\325\3766i\274\017%X\036\\\003Hkr\032\372\371\305\235\334 \237\206~\272\375\213n\360\247i\371\317\256\227.1\"\343?\251}\217\026\025G\261\013\331st[,\007\335\206\274[G\373\203\2530\300\213\273m\016T\372\375H\312O\370\216\244\375\274\023_\361\362\273\r\370\001#~\233\205>\367\321\256NH<9\360P\204\255\341\362\226\253#\356o\207\332\317\030\201\277\332\306\257\304\241vA\223\036\r\326\264UI+=\022\275\310H\313<\037zD\222\324\035`a?\227\236\202\2657\2045\020\360r\272\266\257A\355\356\026D]\254\375)\032Q\006\347\331\274\221\031v\037\310\200\231\362F\036\350\360r-O\355\214\2469~\204\231\237.\345\"\254/\003\371\201,~s\034]\222\373\264\255\343\330\315\346\273[o\241bS\252Pq!\007\234\2766ph>\357\337\200\004&w\350\303k\316Z\311)\311=4\232)\370\023\020\374X=M\0214sR\337\245k\032\314\253Um\352\311\351\372\227\215\336\366\260\207,.\354\365\356y\347\374M\321{\327^h}\001\353\n\230Q\201O\320\020\345\212\217d.\256\020\340\247\303I\222\365}T\210\032#\035\323\242\331\324w\221[\356j\207\355\306\357\265^HPl\234iw\360\263\320\244-\365}\202D\337<\337\256\215\3746\266\277\003\354\352C\347\004I\037VmR\273\302\037\377\344F\276|\tE\363\007\315\257{4u9\360\246\177\373\231\2647\245\324Ka\236\357\006(\231F\223\372\303w\322\240;\354\3114\232tR\277\240\363K\340Wt~\rd\002m]\224\0167/n\375W\034\326\221\0275\000\003\330\240N\003\026?\2041\215R\363\265\341\255L[\246\237\375\352K^4\001q\235!\277\236\204FU\032\000\250q\323\341W\375\352N\333\347\241[(\310\034\212S\007\332^\311:Y\030,\241=\027\235\242\324\240\320>\253\357cvm`\324Aw_""\332\310(9e\177\267\265\266/3\311\027M\324|\206\346\027k\360\227\205\350\302\003\272XC?[\321.CJ\303)\347\226\024\322\333\321\254`\364\2308\212\226\305\345j~\321\r]\r\344{\363\224\271L\251\315\r\354\372\347\026\303>\256]\225\206\377G/0\037V\n\344\257l\232\047\343\3326P}\335\010\265\207=\0070;\3159\271\227(\260\034t{\\\361\350\363\033\026\217,\275\311>x\264\177\353\365Eg\361%\311\274\007\325(\245\353\3374&\210=\272\345XM\350\216(^;\331\363o6|\377\303\3313U\217\266\213={\354a\027\371\222\t\304%\267\356\223TJ\374\376I~\265\017\267~\347/u\231g\252\332\324\3034\217\242N\024\017\217[\375\014\277\026\003\374\276\373\331e<\n9\261\337\316\326z<\242\026E\2434\227\231\370m\201$\020\370^\270l.\241l[\367\373\266\201G\327>\237p&\344\303\266$\014\323\226\005\235\316\244\375-z\247\365\227\300\241\205-a\027\340\214@M\027PG\253\232\026Mi4\361\233kh\367;/\344\235s\233\\\333\232\346\221\262\323\326\362q\315\336?\200\265{0m\272\215\323\316m\365\320+\031T\246\002\355\340\376F\255\243\366a=Q\177\324\230l\366m\375\350$\244\004!\213\216g\235\333^\047\007Z\311,;\3130\\\240\331\273\375\256\005\311W4T\320&\022\355\206\373^\362\315/a\243\201\226\214{\370\376\234\271\370\257m\322\326\3214\361\375\237\357\365*\256H\021C\302=\265g\232\276\310b\317\367&p\376P\026\251e|_|6\367\001\266M\251u4\354\244\225\3229\347\334\027j\013\231o\336\355W\376$a\200?VC\322(\211\006\276\027\207\023SICA\302\000\337\016\330m\310\240g\335I\2305OD\267\321D\365B\263[\332p\035\371\220\321""\226\035?2J\342o\264\222\030K\302\231\357}\344\372\316\n\261\220%%-\255\311\370\305\215\372\311\356\366m\n\036M#o\333\016!)%\371\373B\264&\240]|\337\033\313\211\231\264\334%;\t\272Q\332\267q\257\264s\023\361H\231zt;\212G\301lj\271\364\264&\355/\222q\035\275\212Mc\007\335\271t\007\235;\2019t\346\002\313\350,\007\236\240\363$\360\047:\177\252\325q\250\273\315\233\216\347A*x\313\231\222\247\001%\213\244n\212\253\306\371\235i\356\353\363\261\332\307\23419\320\265u\025t|\353\366\366\332^\353\377\250WH\\\373\306_\354\240\271\204\344\035j\001\276v\225\267\260Bo)\223z\322\000Q\325\223~\244\200NA\265\2000V}\270\373gt~6\267n\265c\325\365\244\272V;^\037\254/4\"0g}\346LH\tW\362\252\204\302\266\342\022\215\360\374\275O~6vQ\264\203\230\023\203\317\305\r\252m^s\010\033G\361\276\025\273\201\344\345\256=\370\323\304\276w\255\221tF\225\377\047:\177\252~O\347)\310\256 \215NZ\035\337z\210\316C\245\025\243S\\\345#X\220|\275=*\006E\220/\344s\020\005\254\270\ta@\332\276*\3631\215w]\016\261\273\225<\210\323\362\252<\331[\371\253\036\374\252<\352\2554,\361w\026\264Q\233\330\345$I\203\306k\272^\233D\014z\223\233\036\234%\r-\257\267\024:)u8\351>:\367\241\013\267\305\014\337y\027\337\253=\336\030l,4# \001\177\352\244\244\360(\227\026x\372\003\252\351\253qg\034\255\276\332-\236\217m\377\307IO\035V/\274w\271\234\304A\032K\265ZN\324\016\177\366\210\216A\222$N\203(\331\347D\320\211\004\206\003\355\323\013+9\346\353\204\223\220\307\366\333\313\350\030\236\303\271\263\333!\234\243c:\2110\374\354)m\210\360\247m\3509k\262\206\242\213\"i\346\242U\020iL\250\023\314\2433\037\370\r\235\337\224\010\263r\004K\243\207\256I\312)\225Mm\265>-\334\026\225\300\017\333\0379S\220\257\2708t\227\032<2M\001\337\321\342\243\030U\031\211\233\372\344\224\350.\244\353\242\341\213\252l\026\235YUsyt\362\201\307\350<\016\374\205\316_\201\010\n\033\221\356[\350\334\352\036\351n\257)\353\272\274\037U\233\274\311\267M\2241tbj\324\245n9\025h\247\266VUEh\320\252\207\027\214\220\323\365\251\306\276\244\370\216\375\312\355\362\251U\331\r\370\323r|\375H\243:\177\277\220\016Q\321TG\352\026~\006H?(.\364\205\374U!\222\023i\376\243n@\353-\252\220x\240}\347f\323\365\233\215\323\320\227\326\216\262\022\206\3445Z\254\022\006\032RJ\024\025\264u\026\037\022\223\203(\210U\362!1\371\226\211\034J\371cX\374v=\352\010\374\3415\232\212\310\334\2004\037$w\320\304\304\037\334\324zZ\241Z\344\027\215\357\361\026\201\020\210\2720\027\310>\000e\220\267d\\q\256\204\240|\047\267_u-D\266&\266\334\367\033~\336\220*\307\020\266\222\255\257p@\225\013k\220l\245t\252\257\362\347\027\222\370\276\250K\032s\376,\031u\004\252\002\322?\320r\226$@>\037\320\202\211\004\006\352\010\203\310\364A\325\021\250\nhd\232\364\324\304\220\324\021H\265:\224\003f\345\225\235\236~\247?\2625\275=\261\235y\30551\274\225\301\251\201\325\304\215\206\334\260\033\204z\030\330\032\301\315DyF\nJ \267P\330\263\252\244N\340\017O\361\373\365H\375\313\037;\343O\232\323\326\047\237\244\371\213\227\\n\343\313W\337\313|\322\236\332\010oE\361\310\227T\356BY`\204\315\357\364|\346|vk\353\t>\3602\361\212\253\343\326\326\332\266{\216\370\242!\347\0101tA\243\201\351M\276r\013E\300\267\300\234u\366f+?\203\354\373.0\315\022\374\r5~\335!\315\022d\362C\302\322\036\346kR\362\354q\276\216\300\204\267\354\334\225*s(\013*\320vz\2569\327\242\333g\235\211\204\270\372e\017\365\361\274\347\370\346\317\225\225\332M\334r\303k\367O\341\021g\204\345\252k\265@M\260\361""\215\315x\365\353\332p]\334\377\377\206s\374\243\352\254xO\004\322\305\253\003\210\204\336\t8\266yC\256\365\312Dg\253\377\255w\324O\325q\021\373\306\311Jw%]\035\250Fj\247k\363\365^\370\372\304\273\316\273\270\014:\325\270\323\314\354\234\370O5U;Y\353\3359\361N\345Fe\3159{\251\336\205/\020\234\255v8\357]v.\313\273\010O\234\256\334\207T\375\320\260 \317\323\225\014^\374\030\250\207Z\347\200\322^\030D\242\223V\016\247+\367`\315\360\021\276E@H.\326\312\365\001I\265\010\367\325?\300G\000N\370\242\034h\234l\234C\256\357\234\370\250:\017\353\317\001D9Y\355\305w>\352?6\317\211+Z\351\031\002h\335:\227>d\006\275\022\360\374\200\227\261\355\367\"6\371|\n\273\210\206\204\047\376N=\315\336\017\332{\365\332\363\203\336\376\261\337\233?\344\273b\354\376\017\022\323\251\367\223RW\337q\324\326;>\236\037\364f\201\375\336$ \337)\223\027-\360\327o}\205\260\231\366^p\377\374\240\267\333\357\367n{\371\352\231\334Y\345\017\326\362\347\242\314kK\355\274\320\376\371A\257R\333\3675\221\362\271q\271C\312ej_I.\323\336K!\237\037\364Z\032\276\t\263\317\213h\344{\341\354\346\047Z\306\371\312K\374\241\316=\3360\320\266\253e\356\037\224K?p\253${\237yO\027v\313\327\256\245%\035\227*\371\233\340\264\314\242\253TH\234\364\275\\ \336\325\236\213\274\377\202B?k\\\207\251\346\001\251\332p\0209(\237~\364^f\376\302\333\256\344\253\326R%\303E<\032\375H\266\323\026\357m\276\327\352\371A/\361\336\367\345\345\370\026\265\272E\225+,\371\333\026\372\374\\\233o,?XIC\336k\332?\253\313yM\030\3404\237lm\210qP\222\005\334G=\275S\322\017\224\322\314Mc\275o\203_\364\024\365G\230,\217;)9w\003N\271\255\371\251\363\351\367\320\206\304R\373\250\212\312V*\007*\351n]\373(Kz\340{\031\332xu\005\261\200\037\010\335\203\316\"\324\366;+\236\267w3\350\245\035\021 \225\0027g\047\333T\232\003h+\234\314\250\265\302\263\355g\003\236\267w{\373\345\031\020\264\357\250\337\241m\005\236\267\327\340\361""\345\332\220\266\357N\200\303\033\217>?\212\275\244}\257\301\017d)HS\200\357Ep\244D\047\246\222\262\220T\267\2443\344\227\240\322\325Q\264\243G\233\274\317\332z\316\2126\216\236\037\315\356\335~\027\312\007:\214B\323-5`\3425\355[\320\314C\232@\332\300\323\227\356\211}<:vE\372\331=^\201y\230\203*\273\260\334\305\351W4Z\354\2669\307\257Z\341W\332S\213\246m!\232\262hwHoM\264u\264x\275\311g\377\366i\263\345ha\237T\261\375\266\311\017?\301\362\242\021\305_V\340\227:\021\377\371\303\277\244\357\246\365\"\r,\374N:ZUs#:~\303\253\357\210B\326s\244\366&[t2H&\233\324\034:9uD\373):O\225-\372 :\203\312 y\022\235\311\356\031tf\272\263\350d\273\027\321Y\354^j\263\261\2624[?n\031H\312\327\234\331\255\312\\x\340\313/.\255\362\361\231\037\030\2461\203\237\021\312v\035Q\353;\220\030\352?r\356a\262\362}\307\244=f\263\277\267QR\265vL\216\204\345\337y\014\223_x\n\252\365\030\272\233\344\272\333\235\361\334\324\204\026\0014S\221\374E\346\345\374d\032m\357\322F\326_m<%u\324l?\310\334\345sy\n\265\363\335N\240\355vw8\267\347\247\253T\210\3414\223\221}\tm\031\322=\201$!\320\301\300\237\002m\234\336\216\232\361?x^i\334]\271)\307\227\026\206\370\273\2550v{0\214v\316\365\3355B\343I\014\247S\025d\320C\002\032\215/\324\320\365\013\366\355{\353\360\350\031/T\247\377,K*Z)\363s,\374\374\032\311\014\324\322\311\024|\360hL\250\216\210\361?yL\330vW\344J\245\304S\347\251\234Q\371\366\344nGOh\371GS)5u\232QI\277C\034\047\361\202[\262\221\260F#\r\267\241\"\003\236\241@\3734\306G\317\370}k[\345\361b\367\273<4\251\372\356\177\357\341\235\014\262\247&\226\223R\203XNG6\371\325\315$\037S[\047c\235p\240}j\335\243\347\274x=\216q\376Z]\252A\304{\264[=\370\206\324\224x\t\022\210\3277m=s\236IE\034\337\304\365\335\222\337\303\363Y\264\355\307\317H\022\313I\235D\342\014I\221\334Z\215\354r\"\036\316\377\264\365\032>\344$W\340@<\332\023\354\364\\v.\377\010MJ\030#\275:\316\017m\r\374\343L5w;X\305\037\343z\321\301\252\266\330h\036\021\347\303\036#\331\027\274\376*\305\032\331\340I\214\347\033\334\276\306\013{x\014\203VO|""\331\304\355eI\254\241\367\216\270!\032Y-\337\n\264\357]\331\243\347\276x\257\343\037h\034K\032V\255\266\026j\021\222mH\353G\262\r5z\262\336\0379\032\253\330\347Gf\022\373\2175\210\335\355\324\n-c\367xj\245=\226\260\317\217\314\014\366\037k\004K\232\004n\232\314o\276\367=\344\371\363\321Y\277\036I\035\214x\014\221_\360\3725\312\267\335 \271\207\332?\277r\224$N\222{\250\375\223\254\317\017\016\221V\201\333#s\355\031\311=\324\376\351\330\304\355@;\337\326\366\257\203\203\335\237|\000e\245\377E\242\324\344\365\253\006b\334\337\203\224\363Wg\373\324\214\342\332\344\347\207\275\024xO,\341w\201\376SYB\327\000?o\3035\322\355\271D\272}O\223\035\362\366\350\347m\2703\266=7\306\276\372\327\332\350\252\330\277{\376\365\332I:\212\340\034\373\250\272\010\3059~\242\362z\265\267\372E\355-4\334\177\247\362E\365\r\350g\003\317\311;Y\357e\337\035\337\034\305C\004\307\0327\233xx\241\362au\242\372\260~\322\371\024\025\364\322\"_\\\\\224Gr\336p\336\370\250\312\363%\302\360(\305i<\005\361\326\346Z\345\215j\312\351\375R\232\020\013+~+=\236\025\300c\005\037\324C\250\r:\266y\263\362\016\300\217\237\252D\252\037\324B\265{\262b\335\237\235\251d\360\350\306\255\312\000fQ\006\026f\253\003;\047\316V\377\257\232\251\256\211\323\020\316\273\237A\353\350\206\231\347\324{\002U\252~\262~\271\221\026*\367S\037\327zwN\236\256$\253\335\325\tu>\342\\-\343\\\374\272yF\250(\351l\302\017\360\321\305\306\031$\3769P\007\331\275\207\247: O\347\235s\204\264\027\017IL \260T\351\255\334\254\276\215\244\234\252\014\001\243\356@;\\\007V\235\302\257N\275[)B\344\347\202\304\263A<^\002\025t\366\203\352\r\347\277_\322\213&\037\366\nV\334kv4?\300\340\247\365^\314\367\213J\227,\352\032\021\346|p\271~\243\256\217\216\000s^\377\327kom\316W.U/\325\316\243\2418\036FyZ=Y=\017\231\035\177\273r\016*nM1\022\322\236\000\256}\005\315\242\243v\322\r\370/r\215\003\273k\004pWsL\342\307j~\263\232\255}\007,?&75dN\307\351\223\347=@\350\005\350\214eTs\037\337\034\332\374\243\032\205v\224\305\0031\247*a\347l\277\350""\262\272\342\357\212\256\r\210\037U\322\316\007\327\033\237@\315\335\304\363(}\300\361K\020\234\3309\371n\345\221\363\237/\033\245\346\205\255\377\003\321\373\304\025\340\334t#\211U\365\216\363\316\047\265\001\334\017\376\260\032\252\252\343#\177\277i:\010\260g\035[\332\t\347DPv\251,\024\365Kh\027-XG]j\022\353\373}\323\245\220\340\377\3242\252\372\277\250va\365\277+,~K\365^\250\245G\215\211\347x\002\006)?_\377C\\\371\367\3515(\335\247\327\033\347`@z#X\373wm\275\036bh[`\033\360b\032h\234\202\014\240?\3038RyTMB\r\236\256\315\325\337mtX\005~\336\363A\365z\365~\375t\375\241|\231\021\370\365a\260\366f=\333\370\266\231Em\311\0470\216$\353\335\365\373\020\377\261\300|\356\022\004\047\033\302\364\032\033\302\000\362\355\335\212\220Tn8\027\205v\013\233f\240\022\256\276^\353\255\335\250\255\341\251\"\034r\272*_V\373\004\377\305\301$|\034\021\033\345\251\323\317O@?\000~;\275\270\277t\001:\332\273gwN\275\357\274\217\202;t\205\201jh\347\354\207\325\2108rt\352}\211\344\271\031\316\240_\375\014\375g\275\026\207\225\325\361\213\300\2661\030\250\004\007\327|#\337\333\352}~\034\017*\335\220\243\001\366\246\31773\233\177\002\243\272\004\205\330\002zE~\307\305!*d9P\361\306\211JG\345\243j\331\371\004\207>\321\237\327`x\231\253\235\022m3\000SD\n\307\310\267\235\267Q\303\n\345D\376\234\300\346p\262\332\213\355\246\017\361\3000e\237\030s\216C{\224\207\312F\253\257\325N\312C`\241\352\275z\2078<\325\363\306\346d\245\027\033/p\323\225n\227\261\370y\017\216\202\003P\341\327\255\026\376Me\242\222\307\022\002_\261V\376]);\037\334\204\026w\002\272\307\205\332\"\214\270\247\316\212\252\373\001\006\331Sx,\353b\375C\340\021ye\251\260\276\200\273\365\016\325(\177\250\275\203\025{\3329}\036k\004\\\350\330\330H\327\236\2378#\016\316u\354|v\2631\007\025\334\277\335\271\335\273\363\3657;\327n4\"\322\222\017;b\254\322\213-\3638\216\247\232\373\304\234\035Y\024\047\000c\2525\342\343\3513\250\257\235\236\267+\027\005\203\305\360\377u\365\347\332\002691 _\256\017\324o5\006\324Q\2653@\3641\\\200\313y\212\363""\366\377\0015\364\007\273"; - PyObject *data = __Pyx_DecompressString(cstring, 24937, 1); + #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (24964 bytes) */ +static const char cstring[] = "x\332\335}\313_[\267\362\370\005\314\367\322&m\2236I\323\307\3555m^4\t\ri\232\276\037\006\233\340\004l\260\215!\257R\003\006\334\200\r\266IB\232\266w\311\322K/\275\364\322K/Y\262\230\n\215F\007/B\212\331R\271\230\231+\007s\371r\266\270\220\231\313\366\007\243\020*\t<\010\314\317g\347\203\345B\260\224[Y]\316-l\004\327K\271\374\"D\315\347\036\347\346\3273\313\022Wpa=?W\316\025\362\245\340\354Fp\265X\200HL\227\021\210\326\363\271\205\034\340\321\271\004\027\n\305`)[.C\232\317\346\n\371r\261\260\274,\361\256\256\227\203\363\231r\346\212\212\327\250\005\252\325L1\263\222\0054@<\024\244\230-\027s\331\307\230\254\230-\255/\227KP\000\215#\010\250K\271R\271\024,,\0007~\371e>7W\376\345\027\010\t\\\277\374\222__Y\335\000@\246X\314l\224\202\227\200*L\266\n\2503\245\3760\240\030\306\354\360\223\"\302\013\313\231\"\203\367]\t\026\362Y\201M\340\020\005\313f\346\2260\307\302j6\177%\270\224[\\\272\022\\.<\271\022\234[.\224\262\202\356\307\205\345\365\025`\266\250\252\271L>8\233\305\362\006\237\344\312K\002[yI\000f\004Cf$}\227\372\202P\364\245\302|\177pj)\007y<\312n\000WE\344\245R\037x\262P=\010)IF\226\202O\226\262\222os\031\311`\304\253\030\212mD1\037\276\2225\213\td\246y(a\t\353\022\032Ny\243\377u\323\266\346\2263\245Rp1[\306|r\345\\f9\367\014\020 \361\300?\336 \202\210F\224\271\260\212a\240c\003\202\324\300L\341\202\205\331_\263se\321\376d\373\201\314\005\265@]\341\t\222\266Z\314\255d\212\033V[\003n\013D\252\251P\251\375[\3067\262\004W\341?;\347\317R\241\253\n\343U\335\274\020\345\325B~\331\316\r\277\274*qx\353\306\016\364Y\211\324\347\020\265X\272t\337Nv\345a\360\276\310P\304\315\000\325\205\342\314\243\047\030x\330\047\211\r\027\346\240\235\344\313\031\301Jl\\->0\215(\233\227]\020:\033\325\247\3004\254+=_*g\362\320\007\021Y\261\260\010\350V\000\375\234\250\230\307\271\014\265\200\205\302\025\326\016 3""w\007\244\246\221\313\226\372\rk\257\022\273\257B\005\254\027\363v\007\346\034\304l\n\353eQa\252\221\211q\n\007.\331\316\241\371b3\317\346K\353\200T\325\243h\347\231\345\047\330h\036C\323\233\047\204\305\365<\347\357\303\276\340\047\242\341\227<\325\245\232\010P\210\221\313\013\375D\n\341R\334\212\022\263\366Qq,OV\373\273g\252\377;\017\003Q\360R\366\351*t\007\350U\301Y\030sp8\201\236W.\0247\256\0043\345\340r6S*\007M\047[\310\344\226U\017\314\026\213P\265s\205\371l0\230\317fq\000\277\224\301/\304\210\014\330\200\365\031\034\344\203\261L\014\352\030\310\332\240\201\027`\371BY\345\324w\376\322|\256\264\272\234\331\020m\240\017\350:\177i\021f\220\325>h\342\347K\347K\375\231\371\307\310\036\360AQf\212\231\374b\366\"b\231\317\256\026\263s\031\244\037\013\275\224A\304\301\354\302\002\224\351\233\340\245K\347K}\2270[\030g\221\243}}}\257_\t^\t.B\346\375\237\177\023\374\376\307P\020\032D\016\232\000\024|\000\375\320\366W\004\222\322J\241P^\202\242\204\302\323\t\205y\035\353iv9k}\225\303a\377I\376[\360\320\030R\242\246\235\207\356\r\037\367\007\2230\342^\004\337E\321)\200A\375!H7\047;[D\260\361R*4\023\032\035\215\017\315D\022\211\276\301\314|0.\306)\0211\030\n\317\304\007oG\206R\"f\\\017\036*r<\224\010\215\365\r\256//\1776\230\005\306\217g\312\020\235\017^\302P\256\264\024\374.x\355J0\226]\207Yx9\370=\00601\306\374\020\274\3267\224\311cu\254\344\236\006\345\324#\230)g\247p\246\264\004\334\035\315\345\263\341B\271\254\275\353\310\205\310\323U\230\226\36282\007\307\nb\020\014=\316\0263\213\331\3261z\200\210A\226\303BL\300b\014O\306\206fb\361\324\314p|2\026\356\323\251\220\361\231 \210\017\331\314\212\3002\036\345qyw\245\334\302\226\343\302~+\021\237\034\267\320\217@\351]t\311\351\034?\203\312\201\311\335\3147\210 \032\033\237L\t\004PK\020\212\246\2420\375\334\213\364\211\317J\337@\007^_X\310\315\345\240\314\301\021\331\256\351\303\344\344\360pt(\032\211\245fF\242\311T\302\352\001\326\230\312\217\306R\221D,4\212\365\037O@\n1\344\004G\240\022\240d2E\032\262\014\317\214\204b""\341\321\210N1\n\231\005S\033\253<\321(\3444\223\272;n\322\231V\243\371g\177 \232\220\250\205T4\036\363\371j\244\260<\237-\372|3\022\037\rG\022\255\277\360\320f\177\306i4\323\"\204\327\245\370v\047\263\276\260\002\265\034\232\317\300\304\3768\353\252\266\321\334l\021\047k\2548w\245\201| \252\314\252\256\261H2\324\n\325\330p\024dUw\027\177\222\301\031\241\234+\n\301\022\244\216\253\220ep\250?Vp}\036\274\004\262\004\264\370\362F_\014\332>\022\224\\_]-\024\313D\016\222\222\234\034\037\217\047R\221p\037\306g\363\205\365\305%5\016\242\374\213\262\234n\357\255\033\020M\204\211\354\\\0013\007r\277\201\221\030\304+\0301V\n0o\315\252^\\\006\274\231\305L.\337oe\010\2636L\3140W\210I\277\364MP\317\002\220(+\307\355!!\323\313Av97\013\271\224\2630s\003e \334f\305\340\236\017\216G\306\257\336\370\352\006\31588`\301\214\263>+\004\267\254\230Mf\327s\313 \004\313\320\nPh^\010n\024\326\305|\201\305]E\001\317\372\000\006\316\274\020Pq\004\275(\206%1J\316\300\347\300\352\213\301y\250\2079Qw\360\365pf\271\224\355\217\257\203\004\265p5\201\223B0\002\204Da1\361T\360.\016}6><\223\010\305nEf\"\261003\034\231\356c_$\313\231b\271\3257\311T(\2212_\3556B\300w-\206\010\372\220$\047\234\014\241Y\203\344\2032m\226G\346\263\213\031,\035\207\256\026J9/\364Y\266X \210X\204\315\211\241\242\004\"\326#\003V\302p\360R\036\206\005\007\253\036|\340\300\200D\323\3567F\027A\245\202\342gWV\313\033\242\244\3753s0\241\366\257@7\316\221\356E.\202\240\356a$\202\351\335N\266\016k\334%O\212\325\345\365\322\343\034\0249\217.\024;+\326I\350)A\325>\n\342\357|i%\007\253\216\234,Ei\035W\252P;8\205\303o\tU\023\2425\010\037\244/C\357\236\355\247Y\037\353Y\002\0045\322[(B\267\312\316\2436J\002dM\221_\324\225\364\2276\310S^*\312\365\233\014\302R\023W\3262\362\263\031\245\306\353_}\232#\320\\ae\245\220\267\000\270T\264\202\262\337\010\200\032\364,N\227\334s\302E1X\314b\357Y\311\315CW\023^1\300\240/4\024\032\032\032\004\3717\251\334\231\244\310\300\025\354\307\336\203\353\345\231\205\334\362\262\216\024\243Sh(\236\304?\375e\274\325W:\205\177|8\024\306\177*\225\366\271\223\305\223C\342G\0474~w\322\004\374\323\311\022-\022M\343\202\024\377t\312\351\226IM\222\026)t\002\377\370\321\321P<\024W\211\342\376\211\306\343\360O\245\031o\221(\021\217\307\304\017\262\203\\\365\r\017\372|h\047\334%\225\254\337d4\206\177\352\033\343u}\222\n\305\360O\2453^w\272\004\374\323\251Z\260:}+\034I\313_""\225\324\016xR\217\047\242C\021\345\232/\354\240\353\233\345\345!1\371$\245(R\032\024mz\320n\366\203\255\373\300\240\325\003\006#\251\020\376\251\257\214\327\365M|\034\376\251T\332\347JT\230\337\010\027~\315\241;\n\363\016\272\311%\030\363\320\223\316\026\005ph(\n\377\350{\343\343\230\206\302\243\327\207\022\361\251\244\366\250\017\\a\317g\237\017\216\206\206\356\250o\255\220A\340\005z\261\300J+\032\216\030\237\3655\003x\277\034\215\306\"\311T\"z\047\302C\026\006\017\320\213\005V\020\212\000\362Z\337s\210\367c\\\251@SOB\272\021w\330B\343\003\366\342\232\032\211\246\"IX\237G#\211\244\007`a\363\203{\320\205\260\351\305c\221\360`h\360\256;l\220\371\201\275\270\302\351Pl(28\032\207\312\344A\013\223\027\352A4\030\031M\241\006\302\362\032\004.\210\367\343D$t\0474\025\272k\373\255\317] \317\367C\243q\250\203[c\241\304\344`\374\336\244\027bp\371Gx1\306\241\300\241Qd]r\nFm\037\220\205\323?\306\007\351$*\245B\251THp\233\205mt^\260\007W8\224\270\003e\231\014\017\305\323\221\204\007`\260\371\302\275\350\342\267\243\344`\213\266\274\026&\016\361\305\301S\267L\231\010\335\212\307\206G\357\252l\355\260\205\302\007\354\301\025\211\335\232\034\035\206*\265\375\006\207\033\344\375>\035\211A\264Ur\027\304\302\345\033\321\n#\307\346\213i7,\267B\3438>\341\237\030\025|@\006_\213\030/\322D(\r\243&\216\n\222\363\034`!\364\203{\320\215\204\306\306D\343\223\036\3639\013\373|\026\273%\372`\214\005\354\317]0\037\024\211\320X\324x\022\361d\222\207lln`\013t\356OZ\246\216\336\032\231\002\376X^\353S\016\361\371\370\316\235\320\235\210\361\215\305\303,`\243r\301Z!\363|\3222}|\014\370:\036\275\025\211\307\\A\013\207\027\352A\004\r-\226\212\016\205F?WR\202\013b\320\371Gx1\306b\0211*J\217\365\275\035\366\371\014F\265T$\254\233\"\007\330h|\340\036tw\242Cw\344XB\276\301\2738\204\010\021\300\0051\250\375#Z\341\366|\327*=\314\273\341Hb0\236J\305\307\\A\203\303\007\352E\024\217\335\032\215\334\272\025\tS\257\347\000\013\231\037\334\037\035H_\226\327\205\302@<\037[s\264wr~\331\254<\026J\r\215\000\307F\343S<""d\243p\003\375\260\220\244B>\366\365nr\312X<\341\232+\\\020\013\223oD+\214\034\233/\246\335\260\304U\337\211\273\372N|\327\2763\016R\346\220l\355\312k>uA<\037\303\302\352Nr$4%Gq+dPx\201>X\222\221a\020\231>\037\213\000\347\303I\037\220\215\3177\306\2034\031\301\035\261TT\266\304\244\027bP\372Gx1\216\304\343)SOv\320\302\345\205\372!J\244\250\363h?C\301@\336\357\307a8\204KN\336\211\202\030d\373\355\2179\310\373\375Hb2\231\222}A\373\255\357] \357\367\t5\"\220\317\3726\261\353\0100\031\213NLF>OD\245\030o\007\r\016\037\250\027\221\020\001\241\214z\321\357\202X\350|#<\030\247)\225\3259\335 \203\263E\214\013i$:\212\177\3523\343u\245\033\033\206\177*\225\366\271\023\305\341\337$\376\351\224\361\311VIM\022\377\024\361\361q\\\003KG%f!\367\007\211DdT\376\352\344V\300\235:\t\377F\360O\047N\216\264Jj\222\370\247\230\034KN\216\311_\225\324\016\270R\247\243\360O\245K\267\350B\266*\014\r\014\3020\322N\216\246\302\221\261\020\376\321G\226\227\177\037\216&C\2030R\204\243i\370\247RG\375\325ua\020>G\242B;!\\\225\234\007\375\277\221\032\267\360x<\254\025\243\341\026*\322\360\264\326\322\266P\327j\203\320p\241\034\031\216\302?Jf|\374\003(\276\341@+^D\022\221\004L\236\032W\213Q\013\341\2420\272K\267\350\333\221\351q\370\247\322L\373\217a\221\265\365\314\362\360h<\236\020?\224\306\366\363\364\303\320 \207\215\216x\270\225\272x8\021\032\202I\200\034\225\232\205|?\220E\033\316\024\325\006\256r\373gf\320\314nf\306\rX\360I\270\224\235{4SXU6\200b\003\313\212_\314\226w\211Es\000\226\215L&\366\210gJbKM\332HZI\320\212l\331\n\343\306+\303Q*\363\360z>\207\026{\026L\233\016.,g\026\r\356E\227%\243O\004\047\006\341\306hS\203\321\302S\007\226\013\205G\263\231\271G\032 \r\023]Y\023\220\243\047\023F\035.\256\033\316{, Y\214o)J-JQb\245\030\t\215\250>3\342\337y\000,Z\316\310XhD\367\257\221\026=m$5\023\036\032\207\216\024\017[^\365\221\007\342\367\361H(\0311>\366""\251\005\360|\211\221\361\204\366\230\357X\270\305gT\302\324L\022$=r\014\206d+\361O\305\251\257S\211H\014\327\265\021\333o\360\270A\036d\"\301X<\034\261\375\256\357-\220\353\373\334\342\322h\341\211\260\314CS\344\350X4\2525&\321\026\272\023\333\250\217l\372\356\204\306B\370G\351-/\377\364\016\314\315*\315P\213\024\2223w\302\267\341\237J\253}\256\304\000\027\251\221A!\230\266oi\317L\010\027\301\256 !\361\207r\324&\2150A\034\212\214\247|@\036\204\356\230VH\223\243\361\361\210+\350AfC[\"r\177\343\227:6\252\246\343Q\377yy4~k\340\232\370Q\351,\277+i.\237\035\203\372\035\n\343_d:E\016%\346!\376\251\212\023U\206\201\341\35049\326\327&\344\375\032\343\364\327\3267-?P\251\345\377\372\213\026\315SD\320\027\211;\221\324pT\271\372K\026t\177\235LF\305\217Nm\374\356\244\351q\374\323\t\323\343-\322\001\203\246\205\241\235r\365\047,\350\371\314$k\221B\047h\025\217\362#9r\222\316\225\263+33\006$g\3461XX\342\366\254r\025^\036ta\007\306\032\236\266bg\024DB\350O\312U\311y\320\373\215 &\312\211\211\356FL4\006\377$\217\311\325\237\305v\3411|\026\232\226\277\352cw\035y ~(d\274lu\002\300\276\336\345C\375\315dr&\034U\256\371\332\016z\276\307\3101\345\362o\306Z}c\222\371\247\210\217\215i\365\345X\013E\346\030,G\360O%3^\236.\026J%b\306\256 \326\312\304 \026\217Eb\351hL\257\210b-\326F\261l\246\030\037L\303?\2126>\2360.\315\203\302\27194\346\024\326\260\3438\246\307R\321\321\210\361\321\267\036\000GF\321\211P\354\216\345\345\337Z\020\327\307\243\242\n\311Q\037\215\266\256W\0317F\016\373\300\2776`a<\256\327]\343-V`\343\351\350\270f\352x\013\366\216\247\343\360O\047j\205)\005\377t\"\377\232\237\020\032&\371K\tX\200\247N\300\220\254\307\260D\213\321,\021\037\202\177\343\370\247R\032\2577)\376\r\\\273F\216\371\302\ny?\262\222\265Jc\222\370\247HF\023z\276H\264\2309\022\351hBWA\"\335*Q|\024\377t\262\270\377*O4n\034\315\023\331\2140YI\206\022\360\017\346h\371K\037\261\000\307\220\324*\261d\013\345\030\232UDc#\370\247R\032\257\047\251I\342\237\002\246T]\307\311\026\265\235\034\213&\265\350\232l!\304""\"\\\214\237\311\211D\n\377Tz\343u}\220\n\207#i\371\253\322\332\001w\352\370\320\210\370\031\226\277\372\023+\340\363\3110\021EF\342\312\265\277n\3252t\244\301`\177\326\372\033\372`r\020\376\251/\264\317\225\336VP\265RU%\047a`\023\353\016\343\323\237\270\000\255\276$\232\304\362>\271\224\231/\333\014\262\271f\320o\246\031d\363\314\240k\226\031\344s\014\032S\223c\362\300\200\312A\371-\374\010R\330\321opcHc\216\217\313_\203\027\374\n-y-\254\000QH\301kpB@\241\034\032\212\312_\215\022\375\204Ry\rJ\204\020J\364j\224\030\320(\225\255\266\3557\3505De\302\000VV\032\2562\324\000\223\255\006Y\231[v\336\036\200M\206\r6\264\270\241\214 ;\322PeCm\322l\270M\237\264$g\001F\027\201,\232,\010\247\207\",Z\010\302\350 \230M\203\261E""\367\000\030-\026\330\242\307\005\3454Y\221\026]\026\224\321f\301m\372\310\326\235\207\030e\nf\221e\2038M*\306\"H\201\0305\nh\223b\333\313\373\200\030Q,\302\242\314\003\347\344\261h\213F\006g\204\262\030\233Zf\217\357\007c\364\362\030\213`o\004\247\230\307[$\363\010F3\217\262\210fv\377> \233d\036a(\366\302\031\301<\332\320\313\3416\271<\306\246\326:[\340\2050Zm\270E\252\033\314)\265c-Bm0\243\323\216\260\310T\047\030x\310&O\303\014i\014\304\310\3221\206$\r\262\311\321@\233\024u\032\302\025d\304h\240E\r\203qrt\224E\217\2061\2024\324\242\310u\246\302\027hS\347\21624\372\3050J\335\t\014\275\356\030\233jw\234M\273\353\354\206?\224Q\357\216\263\310\367\213\342\364\273SX\005pG\261\022\270#Y\021\254\363\"> N\274\035aS\356\206\273\310\266\243m\232m8\047\330\216\261\250\345\347Q\374`6\275\256\030C\260O\004\243\330\025oHvE\3304\273\242l\242\343\267\243\306\047.\261`!F\262\202Y\304\332 N\246\212\261\010T F\232\002\272\210rg\354\312\324?CWf\236\214X&\366\031\034\037\020#\200EX\224x\340\234$\026m\321\306\340\214H\026cQ\253O\373\270\2026\225\006h(\3440F\235\2112\224\031\230M\225\201\332\024\3613C\276@F\235+\312\242\321\047\206S\352J`\321\353\212aT\273\342\274\264{\350nA\263?\275\273\322\352Og+\032\335\364\271O=\371CmJ=q\206\\\337(F\263\047\205!\334\023eS\357\211\264\213\300\316Y\371\301\030\371<\306\"\336\033\301I\347\361\026\341<\202\221\315\243,\242\345\021\032\333o\023I\020C\234\005`D\021\334\020C\000\233\010\002\261\314\325\3310w\230\023\241\2416!\014\350\"F\307\331\004i \047J\203\031axf\314\366\213#g\036\000\047\323\200m:9\324E\250\211\264)5PN\252\201{h\365R\342!\242U\376\236\254}re\031\322\2518\036b\004(\230E\202\r\342D\250\030\213\014\005b\204( #E\034\221c\201\261x\330\035\346\264i\250M\035\003\272\350\323q6\205\032\310i\324`/\225>TxIh\231\2777s\277\234Y\266\326\331?/\204Qc\303-\222\334`N\227\035k\021g\203\031\205v\204E\246\353L\241/\320&\326\035e\350\365\213a$\273\023\030\252\33516\341\3568\233vq&\313\3663J%\304\"\320\0008]\022n\221#\001\214\n\tb\231\333\247 \375`\234\030""\026c\023\345\211p\021\307\342m\"Y\004\047\226EYD\3239I\026P\207-}\201v\031\334Q\246\020~1\254\024\356\004\246\030\356\030\273\034\3568oA|\310\363\222\325\222\034/\031~\331\333\331\332gD\275\020\233\032\0067$y\300\214.\026k\210c`\233B\026a\223\311N\237\372\301\030\251<\306\"\326\033\301\311\345\361\026\301<\202\221\314\243\334DGc\021\036\362\020\2120\027\211\n\344%\016c\\d!\310C\2206\006\2270\256\177\361S\274\370h\\Z\253Z|t,\276\312\025?\255\212u\n\327\003\340\004\031\260M\023\207\272\3102\2216e\006\312\2113pN\237\321\346\251C\277\234.\227.\317\206\270\351qi\362\024\304E\207[\217\347:!\354\013d4\271\242,\332|b8\215\256\004\026\255\256\030F\263+\316K\273\207\356\0264\373\323\273+\255\376t\266\242\321M_\334\232c\343\23696\356\236c\343-\346\330\270{\216\215{\347\330\270g\216U\047\247y\310&@\303\014\t\014\304\210\3201\206\014\r\262\t\321@\213\024\353\004\266\007`\023d\203\rMn(#\313\2164\224\331P\2338\033\316\350\343\047\272\375\241\234RW\234M\256O\224\213fW\n\233pW\024\247\336\025i\025\301u\202\334\027h\027\300\035e\350\367\213a\344\273\023\030\352\33516\361\3568\233v\353\304\272\027\302\250\266\341\026\311n0\247\327\216\265\210\265\301\214R;\202\223)O\305\273\202.\002\t\310\250\263`n\322(\212\321E0\027Q\004\265)2g\354=\000F\225\005\266\350rA9eV\244E\233\005e\324Yp\233>vn\337\017\306\250\3441\026\241\336\010N+\217\267\310\345\021\214b\036\305\210\266\356\007\360\001q\222\355\010\233b7\334E\260\035m\323k\3039\271v\214E\255\274\217\300\366\333\364\021\304\020f\001\030E\0047\244\020\300\246\201@,s\272\317\300\025\344$(\240M\205\rs\021\242\242lZ\024\214\223\243\2406E\352\206\004W\220Q\244\201\026E\014\306)\322Q\026E\032\306(\322P\233\242\204%W\251K\030lj\022n9\312\206pJ\022n\271IA\030\025\t\217\234d\337\333\340\205\330\3240\270!\311\003ft\261XC\034\003\333\024\262\010\233L~\037\204/\220\021\353\212\262\350\365\211\341$\273\022XT\273b\030\341\2568\213v\367\275\023\376P\233zO\234!\3377\212\321\357Ia\n\340\211\262K\340\211\324E\210DG\3111Db@Q\245\374\026\031\010R\371\242\337d""\204!\215ylX\376\032\274\340Wh\311ka\005\210B\n^\203sl\330B\031\227\277\223\344X\250\343fY\251\3746\362\270YH\242\337B\037\237\264\361\333\030-\204^|\026:\206\315 \223\267w\030\237AMa\205\336\nZY\020TeCA\223\025\001Lvx\373\207\366X\231\211\240\316K\207\354\254\004P\347$BVF\"l\362I\312\337\021r\254\234\222f.T~;\227\244\231\363\320o\345\220\034\261\361\333\030-\204^|\026:\206\315 \023\307>\264\307 \226A\205\333\204,\364\022\250r\220!\223\211\014\353|\322Q\371krH\233\3517\355\231x\323f\312M\333\223m\332L\263x\327\t9\032\251\010\020V\3557h\005\210\360\n\277F,B\032s4-\177\r\336\2506\010V^\013kT\233\002\243\327\340\214\032#`u=\212\3455\310\025@\345`\207\255l\024X\345\245\302&Cv\007\013\002\204M|\330\262\211\017\033\233\370\260\307&>ll\342\303\266M|\330\262\211\027\247\024\254\243\004\346$\201\347 \2019G`\037#\260N\021D\206\243\362WcC?\241S^\203\017!\204\020\275\032#\0064J\321&\354&a\265\010o\203\260\332\003k\016vk\020\222AD\210\222\021K\210\214\030\3611\342\021\034#Fd\214\330\302b\304\022\023-\371\302\210\024\036)\302\010\016\266\254`\211\007\221\351q\371k\260Mk\221Ry-|\323Z\200D\257\3018m\304Eq+\215r5Z\031\"\304&`PK\030!\227\001\215^\006u\006\3620\305\260}\220b\330:D1\354=@1l\035\236\030f\007\047\206\355C\023t\273\215\361\031\374\024VYXA+\027\202\252\214(h\362\262/\317Q\217x\r\217\206pI,n\230I\341\345\376\342\2613\0330\\\314b\352[\3312\202\344\023W&\034\315/\024dH\274\255\245\337\2271\360Q\272FF\206\342\253-\023\3127j<\021\370@\030\243\314@\210\264\221\220\370\321\334\032\321\235f\304\335gFt\227\031\261z\314\210\3510#\242\017\216X}p\304\364\301\021O\037\0341}p\304\356\203#V\037\264\356\212\341!\223\205\005SY\271@V\226V\214\312\332\002\031\022, \047\005\357\236a\001\027!\002\304\350\320\0207\031\"\202Q! .\"\004\314\242A\336Tc\373m\n\010b\010\260\000,\177\202\233\354\t`\347n_\212#!I\251\353Q\027\336X\031\047-\r\217\035d\231&-\275\216\n\332\031&mm\216}S\216+hgl\200&w\016c$\230(C\207\201\331\304\030\250\233\"\274{\307\025\364P$\200.\2124\314K\221\210rQ$`\036\212\004TQ\024""\025v-Q\313b$jlE\242\036+\221\250\261\017\211\332\226!Q\313&D\276\377\247\2066\363\366\027\004\360\016 rt~\"@\031j\277\311Q\200(K\341\327y\336\tY\335\374\316\220\3701X\365\214p\307=\037\334\321\263\301\035k.\270cf\202;\341\333\362\327`\003\277BG^\013\037@\024B\360\032\214\352\"\"\361\274\036\335\305c\373\345MC^\210\316\326\r\047\022\374\300\206\034w,\221\346\006k2\335\021\036\222}\310\3217\032\371Cw\373\302[\010\036\345W\020\223\302S\030\023\345S \023\351-\224\207\214V\231{\262\02470y!>\205\226pON\006\354\227\237\214\365\317\325\257\2202\302[@\237\244:QL\374\030\212\365\002b\324\275t\030\325\213\206Qk\2710j\026\n\342R(\345\032\214\"\244\220\352\200\205W\300\024j\0210\330EPe F\014\274\266\211\234\310t\312\370t\206*LY\332A\223\251\202R\266*\2503fwQQx8:m|,;\014[\331\251 \317\016\241Vv\030d\331\351\313\253(\314r\260\321\373\340\266\021s\254\026Jb\2375\340\216Y\003\356\230w\300\035\263\006\33416\340\216\331\003\256\272\365\312\362Z9\020@\347b\205\355\234\010\254s\243\260\225#AL\256\311dT\271V~\030\322\231\251\200\235\023\302t6\030\260\362H&\355\014\322\343\344X\350\323\343\006{z\334\203<=np\247\307m\324\351q\013\263lH\362n\047\313k\345C\000\235\227\025\266\363#\260\316\223\302V\276\366\005R\022`\347be\340\305m\241e\030-d\026.\203\312\203\311 \262\361\0304t\031\230\3455x\025@a\267\303V\036\n\254rRa\223\237\202\350\\e\213\265\033\253\325N\275M\324j\235\254a\332m\222.\037\263\274\006\271\002\250\034\354\260\225\215\002\253\274T\330d\250 v\256\212}Q7\373\242.\366E\375\331\027u\261/\352a_\324\315>q\376_\335\201fy\255\274c\274\021\333a;\357\030o\304*l\345\035s5bq\301\231\366X\024x{\222\0053t\264\352OV\214\241\306\247W\271of\3230W\276\357%Z\261\255\236G\264\222\210\347\021\335a\350\247\031\013\206\337\270\202\342\321\304P\"\021\272\213\023{$9C\346_\002\224\3440\342=>\241\231\234\241WH!r<\024\013\207\000\000\203\313p\"4\026\321\020J93\036\037\r%x\002\t\321\t6\236\302\037>\3163\023\313>-\047\262\01333db\233\212\306c31\370\010\222\315\314\210\327)\301\311\347\013e\030\202\320?G0\316\370\026\374\236\231[\316\224J\346\335+\365~\204\375p\004\370\221\020t\013s\350 Rt\261\212\304\353\215\376\265ec\225\257h\355RoT]3+\231\\\036\023\256d\313\031I\033\006\n\363\353\313\242p+\305\302L6_\026\037\316P\375\241\233}\202\316j1\273\232)\n\310*p\360\261X3a\010\037\034Ui\325\363\027\352\301\314\231\031|\367Q\305\212\352\237\231\201V\3628[,\t\316A\010Z\005\272\372\001MQ\336y\251:+\211V\017\254)\315\344J\300\276ba\035V\177\331\031|\357r}\0251I\326\227\326\347\346\262P\036\000\010\006\256\303\232n&7\357\016\273\022\024\201\207@1\002\027\215\211\264\025\024\226\313\0246\246\314\004\360\332FS\204\257\335\264\212\363\032NS\014\224\316Z\313*\340:-NgV\305\352\024\3019m#\211\241\242T8B\213\304\325\261\342\033\262],\2231\tV\001E{\300\356\304b\003\335\211V2O}@\236\317$`\025\310\234\317\024\027\361\031S\371fi\2464\227\313eJ\345\215\325l\246\264\221\237\313\025\372u\013+e\312EY\244\314\343E\351\231\235\315.\346\346\237\316\346\312\263\033\320h\257Ck\226\\-\225ss\217\346\226\261]B\377*\0273sY4\242\237C\241G\260k\256\260\274\234\025CEi\0169\221\207\236\200\t\204\277\204\003\301\374|\026\033\277\252=\321\307U\027\230\317\226\346\212\271U\374|>WZ]\316l\210\016\205\235\002\376\200\257\371\262(fve\265\274\001e\004\032\341\267\364$W^\312\346!\032\230\000\230\346\240\225,@a\347a\024\300\022K\277,\031\372\037Y""\376\345\334J\256\214\036\223\224\"sE\355\205\261I\214Or\220\242\016\211\203\231\350_\310e\341\301gj\205\007\371#<\205\331_\2632\225y\035W\207\260d*Pr?\225\353z!\227?\214\273\210\375S\374\224\226D\265,e\227W\261\231.\311\007F\227\263\371%\261\265\225\313!\213r+\253\320*f\262\305b\241\010\215-?\237}\212\244\332\331\231\254\254L[\r\2629\251i\202QJ\324\003\216\315\245G\331\r\370Wz\364\004\271\261\234](\317f\212\340\346\027\313KbDV\257\366B7\202\177\331\242d74\341\334\312\372\n8\222\323+\331\225\302\nd+\003\271\022d\265H\316\014\242\227\003\370Jiq\005ZKnu9\227-\346\221$\321H\312\353\253\220!La\263\363\331\307\342g^\372\327W\3630\332?\005\336 \036\273\330\320fdX\370\364\304#C\362\261`\360\256n\310z,,,\300\230Q\310\027\2638\246gq0\300?T\274\211\241\311\226\\\n80j\204\256)\255dr*\310\367\363\2601A\206\360/S,@\343\207\361G\371\327W\3017\233\315\024W\221o\302\217}\023=\353\313\313\n8\017\177\013\231\225\214pJ\024\204\246\016\356RF\364L\341\303F\"\227_=\201\006JU$\374\262\226T\264\316`\025\3762%1\036\210\037Q\0363<\010_\t*6[\226\263\002|6\007,\312-ge\317\242\tl\265\260\014\235t\265\260*\272\270\370\271&~\007\354>\357\351\377\324\206\005\034~\013X\200\215\">\216\207]\0329!fD1\037\202h\264\014s\004t\017\034\336A\010)\242\"\033\233\260\323\363\026\304\007\2169\307>\254\206\252\023\362\243\215JW\205b^{\273\362\t|\331s\246\222\371\377\325\377B\000\002\307\235\343\237\324\276\256\017\325\2376\200!\257o\236\337\\\253t\354\364\274[yV;\371\277\216\027\201\267\234\267>\251\r\000\2536\0070\370v\345J\025\276:]\231\250\024j\023\022\322_\353\020\020\347\314\305\332\232\0009o_\250ejk\004\275Z\237 (\304\327\337h\334\337:\266=@q\375\365\014\305]o\3646\024\364\353&\346\375\311\271\277.\374\253\373\370\346\267\225L\005p\275\261\231\252\234\251\254U;\320\373\260\332[\375\252\366M=\3258\211\301\311\312\305\352\333\325/k\037\327B;\201\2676\237T\262\325\037\353\037Cu\007\336t\336\374ou\255\326S\207\317N\302\367\305\352\251\352\335\332\243\306\251F\2729\320\214n=t\022I\0479\343\314\374\342\374Rp\n\317\376\372\327\277~\353\030\354\004g\260s\004\235\221\316(:\321\316\333\235\262\334\271\352\232b\307\047\3376\007\376\272t8\032\307\232\047\367D\345}\347\376\003\347\301\222\263\224srO\201\240\215\2160\322\025\356\274\203\316\235\316\tt&:\023\350$:\223\177/\261@\351C\347!P\372\253\363\353\006\020\364\254#\202tE:G\321\0315T\202\223\354Ly\211=w\376\020u\357|p\271~\275>\341\246\364\335jg\365\\5W\373\255q\256\261\320\0145\357n\2558\311\224\223\202\232\3178\231Ug\3657\240\346y\307\020\0225dj\035\234\333\300dI\342\257\330\326\211\304\357\232\241C\360S\022\371\260\331\273\0472\017V\373\177\027\265\263\316\354\2343\007\335\t\230\372\047P\364\223\"\223\350\233Fg\272\363.:w;\357\371Q\353|\00753\371\327\247\207\246\370\352\326\332\236h\206V \333\353c\347\361\023\240\353i\307-$\357\226\242\231\210\235Ag\246\363\027t~\351\314\370\220\376}s\342\320""\214\376\2719\360r\242\363N\n\270<\357\314\003\227\327\200\234bG\010\251\n\251NF\275Ks\031\234{\235\367\275\024\237\277p\250\276v\245>X\317\270\251=\013\311nT7\352\307\0327\032\217\233\023\315\334\326\357P\235\316$t4h\034k\316\332s\240\346w\325\210u\047\023\215d\224H|T;\251I\374\336\371\036\276N\377u\375\220\204\2564\277\337\356\340\304\236rN\235\257M\324\226\260\0200\017\301lW\033\301\231\243E!\344P\001%\370\335\371\375\017\240\367\317\216\030\222\035S|\246\226\261\200\316B\347\":\213\235Et\212\235\277\243\363{\347\355.,n\3278:\343]\023\350Lt=@\347A\327\":\213]Et\212]O\321y\332\265\201\316F\327\263.\306\230o\234\323\347\305\034|\376\207f\346\257+\207\344\314\262\273o\277\254B\237\253is\331Y^qVd\205\322\224\031G\047\3369\211\316dg\032\2354t\026p2\235\313\350,w\226\320)un\240\263\321\371\014\235g\235\277\361\252\377\246\202\305\273p\361P\355\363j=Q\367\014\001\357U?\256\206k\257\325?h\204\233\377\327\31447\266\337\200\346\345\244\345\310Ut\212\277\003=\177\250YK7L\321\257\306\210\310\345Z\257j\237\027~p~\200\257\247p\274zs\363~\265\243*\310IWnVOV{mB\323(\344\034x\274\272`\210\005J\0379\217\200\367O\235\247r\212\245\031+\205N\n::8\367\025\323g\321\231\355\234\363\366\376\213\227\016\305\335\376\372l\303\323X\336\257^\257\246j\357\325/7R\3153\315\265\255\327\266\377\003\314q\246\344pUrJ\262\343\014#Q\303\206\255\340\214u\306\210\304\025#uJ\022\017\314\327\227\014P7\017L\2425@\001\211\237\036\236\213o8o|T\315T\237\242\350l\373\367\314Q\337\366:\205\316\224j\002K\350,u\346\321\311w\026\320)t\256r\246\177]\ta\231~l\256\035j&\303R\275\321\234\330S\353\370\331\371\031F\023\331\242\245\034F\323/\215\256\324\252\365\210\342m$?:?B\027\204\221(\377\327\215C\023}o\353\2313\221\330\t\274\353\274{\251\336Q?\213\351\317:g\373\352\047\353\227\032\275\034\336\242D02\2024\001US\006\222\327\325\334LK\013\222\327\036\240\363@\r\2114K\320\310\370\007:\177tFq\354\217v\335C\347^\327/\350\374\322\225A\047\323\265\214\316r\327\023t\236t\335\n \303\002c\350\214\005b\350\304\002\361\200\315)""\347\330G\316G\260\322\002~]\352;T\277\377\254^lx\326\002\037T\007\253\363\265\276\372\267\215\371\346\205\255\216\255\367\266\257:S\323\31644\321\254\223-;e)\014R\315\352\336$*8NU\232\307Ld\225\002\211\375\355%\261\365\\\357%\3753\347\356=\347\336\202\263\260\350,>F\006\253e!\215\2634\307\215\2433\256\206[\232\366}\047\267\010VSDM\373\367\321\271\257jr\026\235\331\256\271.\306\004=\303_\202\306\r\275}\372P\203\014\362\343\303\346\303\355\336\227W\333\025\047\r#\313\376\345\234%\237J\374\311\371\tV\330\320\263%\026#\216~u\310\262\374\247\271\262\375\2753-[\326\372\301+\032\332(4P()+\346Ct\036v\376\214\316\317\235\277\242\363k\347#t\036\271*t\024\235\321\256\004:\211\256$:\311\256\237\321\371\271+\207N\256\3531:\217\273\236\243\363\274\353wt~\357\032\301\036:\022H\242\223\014\374\214\316\317\201yt\346\003Yt\262\201\205\200\177{\350\373\364P\235\367Z\243\263\341i\005\037V\023\325r\355\353\372\235F\271ys\353\344V\0372\367\256s\027\370\013\235`\035\013\240\0061\222\362t\317\245\216\240\365B\252\356\333C\346\311\312G{\246\322Y\227\202\333\313)$\211\320\330\2515\047bV\234CgN\315\351\217\321y\334\371\034\235\347j\3151\202mnD\265\316]\007\037\252@(-0\341\323\313\207\252\302\201\306\333\r\317R\366?\325\331Z\240\026\255\337o\006\232\303[\275[_o\217\355k\254\235\350$=\341\205\232\256\254\313C[\003\207\022V\2567>n\214my\246\264\217\252\305\332\251\332\335\372\243\346\251fzk`+\272\375\320\271\007T.9K8\352\210^AR\027QG\342\026\037?f:\215\212T\221|\345\352\241X\373y\343z\303#[\375\267\326Y;W\313\325\177k\236k.l\205\266\356n\257\034Ds\344\234\271T\357\260\350\374\364\360t\236\250\274\251\304Y\313\2737\212i\330!5\201n\005\266\0105\217\316|\347\n:+j\376-\243S\356\\g\205:]IW\277F\372L\307?\003%{\\\235\330=\356\330\346w\025To_\0338T\265}\331(z\224\250\316\311s\265\301\332|\275\257\361ms~\353\302v\307""\366{Nb\177\213\353)U\306+u=\365\336\370\342P\224~\333\274\356\021\336\235\223\227\352\235\365s\365\\\343\267\255s[\013\333\241\355\273BT8\230\026\3129s\255\241\233\231T\360\330]\370\365\315\3130\034e\024\2717k\0479\345g\233\357o}\276\2259\254\276\372\2763\016\002\312]1\004I\251G\213<|!\305e\274\335\232\232\255\312\306r\211U\311\247m.\332\177\2662\007*\234\230 \271\360\255\253E\024\220\204\235ut\326\325<2\210\223\304`\327\020:C]\341.O9\177\370\221\265\266C\225p\317\032\374G\316D\312IA\331`\242\226B\\\321)\376\341\374!\027\032\324S\250t\244\n\321\242\252X\007\347\274\032\021\251\311\271\324\336\262\354Iu\356-\315\341[\242]0l\006\355.\330L3\264\357\202\301\242\270\255\005\373)\304\232\336\361\315;\3660\347[\252/\266;\016\337\364\240\241\310\235.\220\\\366\264\320\047A-\207N\316,*\374\n\364i\373\252\2114\240\3578\357\234\253\205j\323X8\030\310?\256\365\326\276\252\017\370kC\2179\311}\027\316W\263\304\227Jqt\342]\223\350Lv\245\321IwMu1}\352\217UTO\3744\rb};\333*2\341wo[}y\321\261\321\271\312\315\227\025$\342Q\245\256\242\263\252\204\360\047\350<\351|\352U\031\343\322B\3566\323\226\322\237\350\374\331I\3028)s\226\320Y\n\344\002L\247uHV\010\025\227\363}\334\211C\371\244\356\230d*\252B\275tx\271\352\356\003\0475\345L\001\253~v~\006\261X\266\022Z\244\020c\326\320Y\353\274\205\005\273\3255\203\316LW\t\235R\327m,\337\355\300\035t\356\004\246\320\231\nL\2433\035XDg1PD\247\030\330@g#\360\047:\177\006~\352\306\001\276;\324\355\321\003\016\016\265s\032\332\243\232\353\2623\t\355U\3520Ap\025KF\\\305\320^2I\334$\n\021[\262\350d\225J\201T\200+^\005\212,\320\033fL\323jp,\305\2275\246\006\237l\\j~\2725\274\335{\300\301\355\354\366c\333\013d)\377e\201t\r\271\246\037\337\032\212\034\270@_\230a\352\350\n$\006\337+\355\355F\037\340\340\373N\345\207\332\311\332\245:\260D\030\016)\335\307K\273\024\314@R\246\243\221\230\313\257\264\330\246\362\321\200\243\307^\334C\355$\301\365\016:w\324\324C\233\256\017\321y\330\3653\327\276\312""\211h(\334\316\361d\217\232\267o\2354\310jr\005\010\253`m\222@\265J\n\007\322\376\320\374A2\223\256U!:\345\275J9W\201\016),\355q\377\017\246\211\366\026\310\032\361\241@\375m\257\241\275m\374\264\247\346HT\242\365\026I\016!l\223!\245\\\246\026:\207\316\\\327<:\363]\005t\n]\317\320y\246\246\322qt\306\003\023\350L\004\022\001\273\376\255\355\237!\020\306q\265\304z\371\233\233\217\354}U_\326}\331zn\221f\004W\266\3666\034\333l\222z4\222\256\370\212\200\333\n\221\200B+\002\022.\177B\006\374\324E\034\033\354\362\214g\341H;\007\350\2274\371I3\200\001\217\245q\331\257\316\257O\234\047R\231EM\200\364\271\244\305\241\335\024Z\233\352\266N\222\264\247\311\3032\316wP\362t\346\323\265\214_\353_\332\376\325\231~(\364\321\2071\236t)\027\362N\036\206\351\rgC\312\265\324\344\271\202Q\353CE\313\247\022\322>\031\325\3430:\303]$/\216x5\rw\245\236\311X\350]?j^\2145?\334\232\330\353\240p8>\361\251\214\306@\2763L\252\2301t\306\36624\220x\255\307\004\254\211\300Ct\036\252\025\306St\236\006\376@\347\017#e\333\274\267F\217{\367\217\264\375\035T\375Sp\ne\247\374\314y&-\010\250\247qcSn\300\307W\2514\202\350\226\047\266L\242]\036\t\026\212\377\351\253(\276\275bg\253\367\243g\005uB\232~\250\251M\2433\255\232\032\265\261ut\326\325\026\347\023\316-)C\335+b\273U\252\036R\202\314w\262]\265\243a\"\332S\241\345!\267\247i\047/\211\211$\245\374\206\316oj\001\255[\2200\341\340\334\243\235ab\342*:\253]\277\241\363[\3270v\277a\325Qi9|\027\235\273\201{\001\306`i\252sO\256\273I!Ac\007)\024`T\275y\344|\236i\306\267\177t\356\241\005\255>V1M2\207\257\377\300l\347[\23640R\307\345\026\225Z\252\027;\361+\350\254(\213J\332\211\037D\236\016\006\206\320\031R&3\304h\032\037\347\320\231S\373\362\005t\n\201g\350`x(6B_=\017\277jv6""{\335<<_K\324\312\365\257\033w\232e\334\320\336\356s\222 w@#\224\246\256\372\320!5BZZ\221\320\306Mm|M\331he\312\245]>\r\323@HJbj\204zU@z\014\347{\213\003\t\3604\366\3613qd\301C\213\007>\004j9FL/\\\"\336M\021*\256\2700|\024\375\342\325\363\361\233\346\307\315\220\233\217\027k\305\372\251\372\335\306\243\255S[\351\355\201\355\2503\t\035\032\220\001\023aF\326\307\265|/D\340\206\005\276vm4\243\350m9\261\262 \006\222$D\203\342\002:\013J\t\252\031(V\026O\025\037?\253[c\3433k%v\351\225O\315\007\265%\363W\236\360K\021\370\006\031\265LZ\244\361\325\031\361\220&gR\254\374\212\316\257]k\350\254\031\036\3221r\267^\352\257\377\373W\367[\316\233\250\030_\303+p\236n\226*\275;=\257\355\004^\333<\271\243\256l\t`\3633\327\265\264\370H\334\250#>;\341\234\300\303W\272\331\277\376\257\3563\342k\247\377\047Xt\275\273\335\201\233\253\047*\035hg\337\275\231\256\014T\"PC=(\336tT\317\000C\273kS\365P}B\215D\316\325\037\200\235kn|\2379\237\rn\365\302\204.z\307\204\013\333\233\233\213P\326\205j\250:Y\273\010B\177\257*\203\244Bi&\377:\376\257\356\023\233\342TB\007\324`\257\264\377\307\200L!\316\002l\2569\047\304Q\026\274\357\246\257:P\r\021X\226\341Mhq=\047*\307DD\317\261\315\033\233\317\252\047\253\027k\047w\216\237\252\000\344\370\346\255\312\200s\352\\m\264\321\361\002H\275+\033\353\277\377\267Fq\025\201\3575\310\322\244\275U\277\3318\t\013\025b\313\177\240\331\246\033\003 \334\364HJ/\324: \003\310\355\213\312kb\327\376\370\211Jg\345|\245T=\017\034\354\000\211\007\247\233/A\036\272\325\034\020\347l\200\37277s\262[@\325^\251\207\033\2575O:\337\214n\017m\257\261\002\275\216\025\212\272\353O*\367`Y4\260s\3744^\033$i\215\302Ri\r\2131U\tUR\325\323\262\035\310\340\204B\323U\271^\231\004n\002\377NU\302\325\356\352\204\354\257\3177.\200Ls\021\246\212\t\273\240\2726NT\002\225\020\253\265\367d\227FJN\374\253\273\347\177\353\233\203\233\031u\361\326\346\300f\010\033lwe\2466\214u\362\035\266\320\235\343X\254\353\242\211\274\352\005W\365\307zo\233,\036\370\001\035Z7\220\344\266\367}\375\024:)%\372\352\225\254\333\032\342oX\231^\361\332\206\034p\237\211\244Z\337#s\\\270\325\306\377b\"\014#7\302j\006\334\325\230\317\354A\035\271\311\302@\233V\353\304\034\276YO\242*\231\006\021;\364\265)\264\353\354^\203\037q\221\373\275\033\216\007\324I\223p\311\367>\250\257\320\206#\231s\362e\342\237\036\333\250#\327\253v\264Q\253J\032\006\256A\344w\006\221j\201\257\352B\036uj+#UO\357o]lT\202\267\271\330\273hU\016k\336\367\362\242\037\314\372s\377\345<\340\235a-\n\360j\026\204{\035\254\\Cx\353\311\216\266\314\371AB\256\013\047\375\0047\331 \375\004\355\016\337E\347\256\231\363v\035\317^\r\247\304\262\223\251\023}7\221\\\r\337g\210\243q|\267e\036\255\237\371\226\034m)\221T0\205\316\224\313\266e\306\263\301\36470j\257]\3076\212\005\221\300g\273\215\332\222o\357\341*\006~\312\212\364\256d\376C\033\341\232Edw\360\017\350|\003r\313\351\243\335nD\270\343L\271\266GZL!4eR\307\343\246:\374\326\022~\036\202\264\323$BQ\307\343\326\031\231.\317=\013\177\213F\277\367\225\353\363\311\232\217XES0\3318\221\276\305\367B\246Y\037E\376\253\347\330\347\r\227\316\324\347\222\205G\316]\020s\344\311\375\025g\005z\341.\333o$\237\320""\022\206\233\244\360\343\031|#\204\314\242\250C\356v\351\210}\341\304\337\300\261\033\r\217v\264\267\366v\355Fm\243q\254y\243\371xkb+\267\375\233s\017D$y\227\025\340\203\376(\3272\374\304\025\035L\242a\236\2264\334d\200\233\367s\031\236\366=\310\362\202\2264\232Wd\342M,\353\253\237\374\373X\366Ec\302\315\262\217!A\270\376Z\343\203fx\353\377\2662[\033\3168\214a0-\312\313y\360ze\347\231T}\362\3430\374f)\232\032\271\360\300O\025s3[\332$\"\031\302\327\036>\253x\366i\275\367\357\343\331\315F\346o\330X\243\365\023\277\017\210\344.R2\320$\251\231%\2665\026|v\324^=\317\276l\254\271y\346sY\n\214e0W\312{y\360vY\347\271\234+\371\255I\374\2566\337\033\314\210Y$\253\362\305&\211`d[@s\245f\226\330\302X\354\362\\\303\362\267l?v\374M\233\217$\334\353\325\271X\264\322\236\017\251ih\306\324\014#\303;\357\256\343\337\261\335x\362o\332l\334\315R\221D\376\335,\025\331.\343\337\261\275\330\3737m.\356f\256B\013\200\335\314U\330\256\342\253\347\333\267\336\315m\237\353\225``\203\tT^\215\312\256\341\363\275=\233\037-\245I\224/\004\270.\225\357\317\222\254F\353\001~V\205\366\026\037uy.o:\334C\r{\320\273Ol-\213\207\032`\300\002i\225t\246\316o\317w\325\206\357\377\346\365=(E2x\361uJ\\\275\016\265K:m\347\371\357\273\252*\366\177!\367\0364\354k\333\307\305F\222\324#\323\306\262\363\373\037\273\352\275\367\177{\366\304\313\267\271;\266?\024\267gK%\021\351>`Q\357\331n>\334M\323{P6\237\304\253K\247\234)\271\331n\353\026B\273k\212\367\177]`\357\313\257\n\234\330^\026\232~\251\351\360[-D:w_0\356\377\262\275\201\227_\t\230\331~.tzR\257\340\047\220\017w\356\276*\333/Yb}\345\272H\316\273\300Zs\306\245\251\204\\\302\373I\275\267:w_\373\034\210\260\227-\374l\272`\350\331\007]\355\273\265e`\337w\266\340\261zu)\010\337n\363UA\376\342\335\370\266\232A\347\233\352\204\365\001\304aF\302@\014\237\314\273q\023\372Uo\363\213\255\216\377I\373&r*\377\306v\"\003eD\254\274h\022\025\222\201\365J\250\222T1\353\225\301\312|\265W\006\236@\263+Cs\032\020A\347\255\363\302\204\353B\243\243!r\047+\"|q\016\212\034CK\266\235\343\037T\277\250\035\257\207\240\227t\300\372\374\370[\302\270\256\037\006\204\023\247*#\325\320\316\251+\365[h\030\367\342\304\245\372\277\353k\215\016M\256Fw\303\2718\270\325\373\327\377\375\35354\365\3539\356\034\377\020><~\2722Y\275Z[\003T\307\337\302\353~\237\324\262\320\006O\251{\002N\274W=\003\260\305\372\004tW\220\013\336\255w\2034\314\2437`\275vQ\330\351\035?!Y\203\224\217\241U\034\032\377\205\235\263 \267\302@\246b\221\206w*\347@(\306\236\322#\006\0311`\212Z\352\251u\327&\244\025\024\324\2160\302:\361.0\014\355\n\217\343\200-l\253\252\217k\023/\000a\027$\272[\313\210\216z\342te\032\276\370Uq@^w\240\2300R\275\003\305<&\315\007\217m\336\254\274\353\234E\005\2560O|\003\232\211\363>JB\030|A4-B\3538\366v\245WDc+\022\206\217;\047N\356\234\n\002\225\367\033\201F\010\373\247b\366\247!\047\204\327\206\355\364\364\326\376#\212\334\363\037@\321\363q\355\212\014\275_\275\002\264>E\357G\325\002\360t\251\221\331\351\371\260z\253\366\205s\351;\020\000\356\213\365\014|\341|\014blc\244\031Bf}\n#\004\202\276\302\332o^\332\352\333\276)\304\204\273\316]X\030\343\326\205}\253\016\277l\206\317\257\264S\341{\255-\031\024E\272\220=_U>\207!\3618\314;N\360\233f\337\326w\333\033\3164\014?\220\037n\230\354\364\234\257\375\334\370\n\206&\321_\036U\337\205\t[x\204q\340S\350\265\327\361n\t`\312\345+\007a""G\375\255\306\032\332\370qF\234\307\366B\240Pc\032\344\245\205\355a\047\001#\243\274-[\213\032|\323\213$\016\337W\033\314\035\270\256R\177\321\270\333\\F\035!,/\001\273\260\014\351\t\302\232\357\2544I=\212R;\227D\025\273\213}\2416!@\320>\033\023\215%\220\262\036o\247\005a\362\205A-\240\360\235+j\010\276W\377\232\331\336U\354\233\215\\\3639\252\370`-\013\330qC\037K\362~\375+\331s\216\246\330_C\273\356u\027\373\"\032U\002\010zi#\323x\n\262\331\377m/\010\302\2402l\213\023\276\236\244\206O\032n.\344\230\353f]\305\376\262\261\261u\0345t\320\255\000;\356\316#\355\227\353\323\230\371Q\025\373\033\230]\006\334\305\276\004\343*\202nB\241\327\232=\260\242?\263\375X\020&_\007\322\267h\361\365*\315\372\276\267\354\352-]w\261\277j\276\266\365!*\330`\330\002\354\270\327\216s\305w\370\024j\263\343\250\212\375\255\0347z\235^|\361\364+d\201\361#\013\372\352\262\353\177\211T4\317\202\\{\301\031O\013*\345}\360Z\362\341\202!)\376\370\216#\347\001\r}\244\235\2471\217v\034\315Ye\027\233\276n\276\267ue;\047F\\ \0007\331wz\316\325\306@\034\024\355\326\237M\003\265\321F\047\254Ip\364,:\023h1{x\246\361\266\322\036Fq\r\251\271\023\263-\\8lc\301iqb\3373\2426\321\342\273_d)\342{\027\250\271]\361\0370\3779\227\276\207\345t\306]\356\313u9J\212\361\262\371\025\254\226\206\205\306\003(\203\352\200\265\210\266\243\345\273Wd\357\341{\253\244\271b\317U\356o\233_o\215:\343\300SXt\000z\334\366\337\351\271P+\300\314+h;\322\202#\203\333Un\032\024\017Q\356\027\320\320\207\353\2376\304:$R9\r2\3743\224X?\000\271t\030\317Y\0349[\344\361\037W{\270R\227\323\207\230H\232#[Q\224\013$\341\362\365Ymm\316w\345H\003\340{\345\242y\017\317\305\227\357`\035\372\300\231\000\236\203<\004\350\321\244a\247\347\242s\361K\230\234\327\266\216l\272\220G\225\\%\357\257\313AA\014\017\315\245\255\034\316\221Pli\275o?\033\300\367\206H\010$\261\200\353\016\364\006\256\273\344?\310\267>\245\030\010\350Q\261\265\323\323\347\364}\013m\021\317^\035m\311\317\325bj\236\324\3366\360\200\033^Rw \315\000\267;&#&\332\214\245\375\261D\327^""\330\364\002\304\211\233\365\367Pbf\035\347}\322\240\276,\372%L\226\027X|\330H@\023|\216\272/9\003\314\036\202\351\362$\226\253\271]o\310\026(jd\353\022\256\013\244\271+d\346\276\274\225kc\310H\205\3374\300_u\320\306\256n\206\016\302\304\006e\222\223-d#\256\256\352\271\352\\\035\332\372j{`\373\310\332\335\2108\236\350b\301\315\206\344\212\340\317\326\022\n\002\322|\016j\032g\\!f\360\351\226\037\337\340\026\231\374\206jm4\347f\3010\264\352\347B\347\265\340,@6\370\242\366N\317\2003pg\373+:\274\3662&\374\200\203\362\001\227\240\307\267B\007X\204\352\343\255|O\2374\306\304\007\337~\267\326\356u\350O8.\037t%\372\241\267#\354a-\332\316\322\037r9z\340\322\243\264=\272\335q\020y\333O\343N\026\221\374L\000\311\235\324\021\2645G\233\305\356\301\255\336W\334\372\3339\363\036\262\365\017:\203@\031\014\233\262R\264J\374\340K\221\007\270\317/\327\030\302\370\302b\317N\317%\251\311\270\204,\277\340\\\370R\254\337;\366\266`\261\207O~Q4\311\253\334H\226_\260B\366xd\303\310o)\243\373\357\350\034<\351\354\351\205\\zxs\022\235I\245\263\247\353\220K\350\224\324\243#\277\241\363[\340y\240\035\253\243\337k\241\332\203\306\333\220\344\033\224(\223N\022\244\026\251\332\220|\3203)U\2428+|\210a\354\001\276d\274\337\221\314\236\323yS\346\227\241q\363\\\232\314\251\232\264\365d\233\0076\340\t\2149hHv\230\361\3555!\315\337\027B\374Wb@;\311\033\261\201\357m\364\023z)~\324\200\337\243\312O\262\020\313H\006\340\027\211\322n\024o\331\324\244i\033\212\256\275\241\373\302|o\014\246\373\302\356\007\332\253\322\371\014G\001\251\221\223\213,9\341i\351\207\252\010\317\215\035\\!zE\030|\355u\204y\251\266\324~\032\345\220{\004d\315JV\231d2M\246qt3\021\335`BW\213\361K\021\251\212\222\201vhaa\271\000\034\235m\3644_\207\n\235u\306\2415\312y\350\261\363\030M\237\260.\3028\221\275J)H\214\035\\A\313\337\354\344\213/\376\374\205y1\253\275\203F\330\t\303W\2506?\270ffy\273\337\231F\303|X\2719\237\334\0202\300\204\355\337\233\272F\350\346\2702\202\033\356scj\276\016\245\005(5?n\247I\315\217.t\242\215j\375\350t[T""\\\177\324&j\313\215\217\241-\334\301\345\256\254\364\237\221\301\021l)\007\341\354\217\3155h\370\036a\353j]\202\204\356\2679\275u\027{\264\324\277\310\327F\245n\207\313\331\374\0009?o\303\317\314\2337\316\\l\371\036\304:\030{\244*A.\275\026i\354\201\251`\353\245r\327\225\0033\002\373\033>\352\271\317\376&\0077_+\021\032\343\370\331I\376B\235>\343\326\336\376v\265\277M\032\357C\t\226\007\327\000\322\232\234\206~~q\0477\310\247\241\237n\377\242\033\374iZ\376\243\353\225K\214\310\370Oj\337\243E\305Q\354B\366\034\335\026\313A\267!\357\325\321\376\340*\014\360\342n\233\003\225~?\222\362S\276#i?\357\304W\274\374n\003~\300\210\337f\241\317}\264\253\023\022O\016<\024ak\270\274\345\352\210\373\333\241\3663F\340\257\266\361+q\250]\320\244G\2035mU\322J\217D/2\3222\317\207\036\221$u\027X\330\317\245\247`\355\ra\r\004\274\234\256\355kP\273\267\005Q\027k\177\210F\224\301y6od\206\335\0072`\246\274\221\007:\274\\\313S;\243i\216\037a\346\247K\271\010\353\313@~ \213\337\034G\227\344>k\3538v\263\371\356\326[\250\330\224*T\\\310\001\247\257\r\034\232\317\3737 \201\311\035\372\360\232\263VrJr\017\215f\n\376\004\004?VOS\004\315\234\324w\351\232\006\363jU\233zr\272\376e\243\267=\354!\213\013{\275{\3369\177S\364\336\265\227Z_\300\272\002fT\340\0234D\271\342#\231\213+\004\370\351p\222d}\037\025\242\306H\307\264h6\365]\344\226\273\332a\273\361[\255\027\022\024\033g\032O\232\005\264\263\225\027,\240\235s{\370{\200\335\372\226]\233\317\035\374,4iK}\237 \3217\317\267k#\277\215\355\357\000\273\372\3209A\322\207U\233\324\256\360\307?\271\221/_B\321\374A\363\353\036M]\016\274\351\337~&\355M)\365J\230\347\273\001J\246\321\244\376\360\2354\350\016{2\215&\235\324\317\350\374\034\370\005\235_\002\231@[\027\245\303\315\213[\377\025\207u\344E\r\300\0006\250\323\200\305\017aL\243\324|mx+\323\226\351g\277\372\222\227M@\\g\310\257\047\241Q\225\006\000j\334t\370U\277\272\323\366y\350\026\n2\207\342\324\201\266W\262N\026\006Kh\317E\247(5(\264\317\352\373\230]\033\030u\320\335\22762JN\331\337m\255\355\313L""\362e\0235\237\241\371\305\032\374e!\272\360\200.\326\320\317V\264\313\220\322p\312\271%\205\364v4+\030=&\216\242eq\271\232_tCW\003\371\336\256\331\373\007\260v\017\246Mwp\332\271\243\036z%\203\312T\240\035\334\337\250u\324>\254\047\352\217\033\223\315\276\255\037\235\204\224 d\321\361\254s\333\353\344@+\231eg\031\206\0134{\267\337\265 \371\212\206\n\332D\242\335p\337K\276\371%l4\320\222q\017\337\2373\027\377\265M\332:\232&\276\377\363\275^\305\025)bH\270\247\366L\323\027Y\354\371\336\004\316\037\312\"\265\214\357\213\317\346>\300\266)\265\216\206\235\264R:\347\234\373Bm!\363\315\273\375\312\237$\014\360\307jH\032%\321\300\367\342pb*i(H\030\340\333\001\273\r\031\364\254;\t\263\346\211\3506\232\250^hvK\033\256#\0372\332\262\343GFI\374\215V\022cI8\363\275""\217\\\337Y!\026\262\244\244\2455\031\277\270Q?\331\335\276M\301\243i\344m\333!$\245$\177_\210\326\004\264\213\357{c91\223\226\273d\047A7J\3736\356\225vn\"\036)S\217nG\361(\230M-\227\236\326\244\375E2\256\243W\261i\354\240;\227\356\242s70\207\316\\`\031\235\345\300St\236\006\376@\347\017\265:\016u\267y\323\361V\373\2303&\007\272\266\256\202\216o\335\331^\333k\375\037\365\n\211k\337\370\213\0354\227\220\274C-\300\327\256\362\026V\350-eRO\032 \252z\322\217\024\320)\250\026\020\306\252\017w\337F\347\266\271u\253\035\253\256\247\325\265\332\361\372`}\241\021\2019\3533gBJ\270\222W%\024\266\025\227h\204\347\357}\362\263\261\213\242\035\304\234\030|.nPm\363\232C\3308\212\367\255\330\r$\257v\355\301\237&\366\275k\215\2443\252\374?\320\371C\365{:OAv\005it\322\352\370\326#t\036)\255\030\235\342*\037\301\202\344\353\355Q1(\202|!\237\203(`\305M\010\003\322\366U\2316\215\267;\354\047\265\037\2405^j\366\276\334J\036\304iyU\236\354\255\374U\017~U\036\365V\032\226\370;\013\332\250M\354r\222\244A\3435]\257M\"\006\2754K\025F\347\355\370\001\230=\032\202\034\310\014\337y\027\337\253=\336\030l,4#[\3579\267\201\023\360!,,\344U\205x:\027\352\351\253qg\034\315\276\332-\237\217m\377\307IO\035V1\274w\301\234\344A\032L\265^NT\017\177\367\210\316A\222(N\243(\031\350D\320\211\004\206\003\355S\014+A\346\353\204\223\220\347\366\333\313\350\030\036\304\271\273\333)\234\243c:\3110\374\360)\355\210\360\267m\350=k2\207\242\233\"i\352\242e\020\251L\036\240\363 0\217\316|\340Wt~U2\314\312\021\254\215\036\271f)\247T6\265\325\372\270p[t\002?l\177\344LA\276\342\346\320]j\360\310T\005|K\213\017cTe$o\352\243S\242\273\220\262+\205NJU\331,:\263\252\346\362\350\344\003O\320y\022\370\023\235?\003\021\2246\"\335\267\320\271\325=\322\335^[\326uyA\252\266y\223\217y\224Tub\023Rr\272\336\034m\267T\361\321\326\037\316$\210\277 \025\024wz\376\353\374\367Z\243\003\033c+\377\221\n\031\244\t\342\372\t\222)\363\350\344\325\252\2026\020I\264\244\036I\3473I\254\240Z\246\311""\212\016\207\223t\261\216\316\272:\034\376;:\277\007\250\226i\353-\205N\252\373\036:\367\272\037\240\363\240\373aw\373\305\221/\361\336{yu\263|\002\r\030\047\3731\177\230\204\024\223\332X\007\232\311\217?\355\332\034\230U\210\330\325\376\207m\031\320\336\236\357\2552\334\202u\357c5\t.t\252z\004\235\021\030\262\333\271\253\360\357\306\263-\234\"\177L\013\221\341Hj\240=\326\203{\030Yi\215\347{\222\2276\303h\177\225v\301\370\353\\\324\037\251\016Hx\244\2112\206NL\215\272\324-\247\002\355T\327\252\252\010\rZ\365\360\222\021r\272>\325\330\227\030\337\341\272\325\355\245\202\273|kUv\003\376\266\034_@\322\250\316\0370\244ST4\325\221\276\205\037\002\322/\212\013\205!\177V\210\344D\232\377\250\033\320\202\213*$\036h\337\301\331t\375f\3434\364\245\265\243\254\204!y\217\026\253\204\201\206\224\022E\005m\235\305\227\304\344 \nb\225|IL>f\"\207R\376\032\026\277^\217:\002\177y\215\246\"\2627 \325\007\311\03541\361\0277\265\242V\350\026\371M\343{\274F \004\242.\314\005\262\017@\031\3445\031W\234+!(\337\311\355\277\273\026\"[\023[\356\013\016?oH\235c\010[\311\326W8\240\312\2255H\266R:\325w\371\363\033I|\237\324%\2259\177\227\214:\002U\001) h=K\022 \237\017h\301D\002\003u\204Ad\372\240\352\010T\00542MzjbH*\t\244^\035\312\001\263\362\312NO\277\323\037\331\232\336\236\330\316\374\31551\274\225\301\251\201\325\304\215\206\334\261\033\204z\030\330\032\301\335DyH\nJ \367P\330\273\252\244O\340/O\361\013\366H\377\313_;\343o\232\323\336\047\237\244\371\223\227\\n\343\313W\337\333|\322\236\332\010oE\361\314\227\324\356BY`\204\315\357\364|\346|vk\353)\276\3602\3617W\307\255\255\265m\367\034\361EC\316\021b\350\202F\003\323\233|\346\026\212\200\217\2019\353\354\321V~\010\331\367a`\232%\370#j\374\276C\232%\310\346\207\204\245=\314\327\244\235\333\343|\035\201\to\331\271\047u\346P\026\324\240\355\364\\s\256E\267\317:\023\tq\367\313\036\352\343E\317\361\315\333\225\225\332M\334s\303{\367O\341\031g\204\345\252k\265@M\260\361\215\315x\365\353\332p](\314\336p\216\177T\235\025\017\212@\272xu\000\221""\320C\001\3076o\210\027\n\236\340\345\375\342\272}p\360E \\\261\274\361v\345\277\265c\365\001\214\371\250\372[\275\027=\037\340\305\372\"\321\307\265^\231\350l\365\277\365\216\372\251:.b\3378Y\351\256\244\253\003\325H\355tm\276\336\013_\237x\327y\027\227A\247\032w\233\231\235\023\377\251\246j\047k\275;\047\336\251\334\250\2549g/\325\273\360\t\202\263\325\016\347\275\313\316ey\031\341\211\323\225\007\220\252\037\032\026\344y\272\222\301\233\037\003\365P\353\034P\332\013\203Ht\322\312\341t\345>\254\031>\302\307\010\010\311\305Z\271> \251\026\341\276\372\007\370\n\300\t_\224\003\215\223\215s\310\365\235\023\037U\347a\3759\200(\047\253\275\370\320G\375\307\3469qG+\275C\000\255[\347\322\207\314\240g\002^\034\3606\266\375\336\304&\337Oa7\321\220\360\304\037\252\247\331\373a{\357^{q\320\353?\366{\365\207|X\214]\000Bb:\365~\322\352\352K\216\332z\311\307\213\203^-\260\337\253\004\344Ce\362\246\005\376\374\255\257\0206\323\336\033\356_\034\364z\373\375^n/\237=\223[\253\374\305Z\376^\224yn\251\2357\332\2778\350]j\373\276\047R\2767.\267H\271L\355+\311e\332{+\344\213\203\336K\303/\303\330\347M4\362\301pv\365\023-\343|\345%\376R\347\036\257\030h\333\3352\017\016\312\245\037\270Y\222\275o\265\247\033\273\345s\327\322\224\216K\225\374QpZf\321]*$N\372\336.\020\357j\317M\336\177B\241\2377\256\303T\363\220Tm8\210\034\224O?zo3\177\351uW\362Yk\251\222\341\"\036\215~$\333i\223\3676_l\365\342\240\267x\357\373\366r|\214Z]\243\312\025\226\374q\013}\200\256\315W\226\037\254\244!\357=\355\237\325\345\274&,p\232O\2676\3048(\311\002\356\243\236\336)\351\027Ji\346\246\261\336\267\301/z\212\372#L\226\307\235\224\234\273\345Vgn\247\347S\347\323\357\241\r\211\245\366Q\025\225\255T\016T\322\335\272\366Q\226\364\300\0273\264\361\356\nb\001?\021\272\007\235E\250\355\227V\274h\357f\320+;#@*\005n\317N\306\2514\007\320V8\331Qk\205g\333\017\007\274h\357\366\366\2533 h\337Y\277C\333\n\274h\257\305\343\2535\"m\337\245\000\207\267\036}q\024{I\373^\203\037\310T\220\246\000\337\233\340H\211NL%e!\251nIg\310oA""\245\273\243hG\2176y\237\267\365\240\025m\034\2758\232\335\273\375.\224\017t\032\205\246[j\300\304k\332\267\240\231\2074\201\264\201\247o\335\023\373xt\356\212\364\263{\274\003\3630\047Uva\271\213\323\177\323h\261\333\346\034\277k\205\337iO-\232\266\205h\312\242\335!\2755\321\326\321\342\365&\237\375\333\247\315\226\243\205}T\305\366\333&?\374\010\313\313F\024\177Y\201\337\352D\374\347/\377\222\276\233\326\2134\260\360K\351hU\315\215\350\370\025\257\276#\nY\317\221\332\233\214\321\311\"\231\214Rs\350\344\324\031\355g\350d\262o\273\331\":Ee>\253\r\223\332\047\251Z;&G\302r\241\037cK\302\227\036\203j=\206\356&\271\356vi<75\241E\000\315T$\177\221}9?\232F\333\273\264\221\365g\033\217I\0355\333\0172w\371\334\236B\355|\267#h\273]\036\316\r\372\351.\025b8\315dd_B[\206tQ I\010t2\360\247@\033\247\267\243f\374\017\236g\032wWn\312\361\245\205%\376n+\214\335^\014\243\235s}y\215\320x\022\303\351X\005\031\364\220\200\346k\236\037\n\264\357\261\303\243g\274P\235\376\263,\251h\245\314\017\262\360\003l$3PK\047S\360\301\2431\241:\"\306\377\3441a\333]\221+\225\022\317\234grF\345\333\223\273\235=\241\345\037M\245\324\324iF%\375\016q\234\304\013n\311F\302\032\2154\334\206\212\014x\206\002\355\323\030\037=\343\367\255m\225\347\213\335\017\363\320\244\352\273\377\275\207\2072\310\236\232XNJ\rb9\235\331\344w7\223|Lm\235\214u\302\201\366\251u\217\236\363\342\3718\306\371ku\251\006\021\017\322n\365\340#RS\342)H ^_\265\365\334y.\025q|\023\327wK~\017\357g\321\266\037?$I,\047u\022\2113$Erk5\262\313\211x8\377\323\326k\370\222\223\\\201\003\361hO\260\323s\331\271\374#4)a\214\364\367q~hk\340\037g\252\271\333\301*\376\032\327\313\016V\265\305F\363\2108\037\366\030\311\276\344\371W)\326\310\006Ob<\337\340\3665^\330\303k\030\264z\342\313&n/Kb\r=x\304\r\321\310j\371V\240}\017\313\036=""\367\305\203\035\377@\343X\322\260j\265\265P\213\220lCZ?\222m\250\321\223\365\376\310\321X\305\27682\223\330\177\254A\354n\247Vh\031\273\307S+\355\261\204}qdf\260\377X#X\322$p\323d~\365\275\357!\317\333Gg\375z$u0\3421D~\311\363\327(\363\010!\237\332?\311\372\334v\203\344\036j\377\374\316Q\2228I\356\241\366O\262>?8DZ\005n\217\314\265g$\367P\373\247c\023w\002\355|\\\333\277\016\016v\201\362\001\224\225\3767\211R\223\327\317\032\210q\177\017R\316\237\235\355S3\212{\223_\034\366V\340=\261\204_\006\372Oe\t\335\003\374\242\r\367H\267\347\026\351\366\275Mv\310\353\243_\264\341\322\330\366\\\031\373\367?\327Fw\305\376\325\363\257\327N\322Q\004\347\330G\325E(\316\361\023\225\327\253\275\325/jo\241\341\376;\225/\252o@?\033xA\336\311z/\373\356\370\346(\036\"8\326\270\331\304\303\013\225\017\253\023\325G\365\223\316\247\250\240\227\026\371\342\346\242<\222\363\206\363\306GU\236/\021\206G)N\343)\210\2676\327*oTSN\357\227\322\204XX\361[\351\361\254\000\036+\370\240\036Bm\320\261\315\233\225w\000~\374T%R\375\240\026\252\335\227\025\353\376\354L%\203G7nU\0060\2132\2600[\035\3309q\266\372\177\325LuM\234\206p\336\375\014ZG7\314<\247\336\023\250R\365\223\365\313\215\264P\271\237\372\270\326\273s\362t%Y\355\256N\250\363\021\347j\031\347\342\327\3153BEIg\023~\200\217.6\316 \361/\200:\310\356=<\325\001y:\357\234#\244\275xHb\002\201\245Jo\345f\365m$\345Te\010\030u\027\332\341:\260\352\024~u\352\335J\021\"?\027$\236\r\342\361\022\250\240\263\037To8\377\375\222\2364\371\260W\260\342~\263\243\371\001\006?\255\367b\276_T\272dQ\327\2100\347\203\313\365\033u}t\004\230\363\372\277^{ks\276r\251z\251v\036\r\305\3610\312\263\352\311\352y\310\354\370\333\225sPqk\212\221\220\366\004p\355+h\026\035\265\223n\300\177\221k\034\330]#\200\273\232c\022?V\363\233\325l\355;`\3711\271\251!s:N\237\274\350\001B/@g,\243\232\373\370\346\320\346\357\325(\264\243,\036\2109U\t;g\373E\227\325\025\177Otm@\374\270\222v>\270\336\370\004j\356&\236G\351\003\216_\202\340\304\316\311w+\217\235\377|\331(5/l\375\037\210\336""\047\256\000\347\246\033I\254\252w\234w>\251\r\340~\360\207\325PU\035\037\371\353M\323A\200=\353\330\322N8\047\202\262Ke\241\250_B\273h\301:\352R\223X\337\357\233.\205\004\377\247\226Q\325\377E\265\013\253\377]a\361[\252\367B-=nL\274\300\0230H\371\371\372\357\342\316\277O\257A\351>\275\3368\007\003\322\033\301\332\277k\353\365\020C\333\002\333\200\027\323@\343\024d\000\375\031\306\221\312\343j\022j\360tm\256\376n\243\303*\360\213\236\017\252\327\253\017\352\247\353\217\344\323\214\300\257\017\203\2657\353\331\306\267\315,jK>\201q$Y\357\256?\200\370\217\005\346s\227 8\331\020\246\327\330\020\006\220o\357V\204\244r\303\271(\264[\3304\003\225p\365\365Zo\355Fm\rO\025\341\220\323U\371\262\332\047\370/\016&\341\353\210\330(O\235~q\002\372\001\360\333\351\305\375\245\013\320\321\336=\273s\352}\347}\024\334\241+\014TC;g?\254F\304\221\243S\357K$/\314p\006\375\3526\364\237\365Z\034VV\307/\002\333\306`\240\022\034\\\363\215|o\253\367\305q<\250tC\216\006\330\233>\337\314l\376\001\214\352\022\024b\013\350\025\371\035\027\207\250\220\345@\305\033\047*\035\225\217\252e\347\023\034\372D\177^\203\341e\256vJ\264\315\000L\021)\034#\337v\336F\r+\224\023\371s\002\233\303\311j/\266\233>\304\003\303\224}b\3149\016\355Q\036*\033\255\276V;)\017\201\205\252\367\353\035\342\360T\317\033\233\223\225^l\274\300MW\272]\306\342\027=8\n\016@\205_\267Z\3707\225\211J\036K\010|\305Z\371w\245\354|p\023Z\334\t\350\036\027j\2130\342\236:+\252\356\007\030dO\341\261\254\213\365\017\201G\344\225\245\302\372\002\356\326;T\243\374\241\366\016V\354i\347\364y\254\021p\241cc#]{q\342\21488\327\261\363\331\315\306\034Tp\377v\347v\357\316\327\337\354\\\273\321\210HK>\354\210\261J/\266\314\3438\236j\356\023svdQ\234\000\214\251\326\210\217\247\317\240\276vz\336\256\\\024\014\026\303\377\327\325\333\265\005lrb@\276\\\037\250\337j\014\250\243jg\200\350c\270\000\227\363\024\347\355\377\003\325\367\022\227"; + PyObject *data = __Pyx_DecompressString(cstring, 24964, 1); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35983 bytes) */ -static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notearoo\363nd\330\001\005\002upbe\377gidx nbe\377lementbu\377llpower \257bear\005\002c\211\221\003p\377ickle %s\365:\207\212\007h\211\216\003poin\206\220\234\002to\267\233\002\215\213\005\202 \211\214\002,\356\370\235\002doe\213\224\001t c\367ros\352\227\001proc\337ess b\231\241\001aroydis\216\206\001en\224\206\001\277fastk \002\001dogcha\204\213\002ha\322\236\001\377 halow h\375a\323\236\002inphas\377e quadra/ture\267\236\002 \222\237\003""\376\224\001\377wrong diR\334\000s\247\241\001\024\tl\241\205\002s\277\236\002?differ\273\222\001\305\240\002\310\323\237\003\244\212\001\230\226\005d\263bY\003mu\033st\272\237\001a \310\240\002h\004\304\240\002\370\301\240\003\343\232\002\264\240\002 Serioes, \340\226\001%s\317\237\t\335 \357\234\007mis\336\242\002re\363qu\330\215\002\212\242\001 key\302\240\243\001g\346\217\001\377\216\002\245\003\302\206\001, \3750\310\233\001100)is\376\256#dk d jm\357acd \001\001sig\347nal\006\002\301\230\001mam\371a\316 \004\000in ma\217xmin\367A\007\000\377@n\315o\367\227\005: \203\240\006\276$is\277 empty\262\242\002.\377_core.mu\347lti\365\241\004\377\230\003to \363im\333\216\001\033\tumat\367h f\023\014plus\277vi min\004\001r\357eal \337\004sin\371e\257\231\002\005\001slowk} \002\001dsmi \001\000\342\314\003s\223\240\001\205b\005\002low?talib.\353\216\004\213\245\001\270\013\003\343\243\002\026\003ord\331@d\300\206\244\001\047\003\347\243\003\005\004\334\243\002?\003sy}sH\003threa\270\232\001fW\003wa\321\235\002\027\003/_\273\246\005\257.pxiy\002/\225 m\007mon\006\010\231\246\001\025\010\257\226\003,\002T\351\210\005\240\204\010s\274\231\r\047\244\207\002b\263\244\001\277middle\006\002l\374\230\206\001\021\001ACACCB\257ANDS\000\005_\361\212\001a\345m\000\014.\213\245\001\341\240\001_fisll#\006\263\210\002ACO;\000\003OS1\006\002\006&\rS\006^\004G\014\327DAD\000\000Dz\005DD>\020\024OSCAD\002\000 \006\274\002\007B\rRADRG\006R\"`\024X\211\234\001\215\234\001q\006X\022\026\031\007\370\255\024\265\006\316\023LLAOA\365O\335%O\363\023POAP\372\033\006P\016\024ROONA\000\001\001\213!\001\004\265E\001\013\256L5\001\035\tx\3673!\002\332CSINA\001\000x\222e\001\007\207lTANA\001\000\270\272e\001\007\030\rRAT\215FT~\3774VGDEVA\001\002\370\213\204\005\001\t\202\204\014VGPRI\207CEA\001\004(\007\022\002\331slklC\203\233\002S\305\254\003sB\203\205\002\300\000\003\377\204\004\000\n\366\204\013!\004\265\216\002BE\303TA\000\001.\005\014\000\315\204\022BO\331P\000\000T\005OP\017\023od\277yDojiB""\005\000L\367ong\004\001Shor\275t\r\001Very\021\001C\303CI\000\000\245\206\004\000\007\231\206\013CD\177L2CROWS\000\006\360)\005\021\005\363\205\0224\0003BLA\203CK4\005\003\0107\007\003\017l\0163?INSIDEL\001\004\003\3703\010\004\n(\017LINES\017TRIK9\002\004\007u\010\004\016\016n\017OUTy\005\004\004\265\010\004\013\374\253\017\242\230\001SINSOU\203TH\217!\004\t\374\010\004\020\367\017W\377HITESOLD\027IER\212A3\004\n\312(\004\021\372\304NA\255\212\001ONEDB\007ABY\342@\003\n\331G\003\021:\017\377DVANCEBL\035O\355@DLA\004\010?\010\004\017\036\331nBELT\261\240\001\362`\003\005\370\344g\003\014+\017REAKA\013WA\312\001B\004\0054\010\004\014\326\204\016\377CLOSINGM\377ARUBOZUCCDL\003\014\357\204\007\003\023@\017O\223 \373AL\336!SWALL\240O\001\004\014I\010\004\023B\020U\215\244\001A\023TT\332\205\001\242\000O\005\010C\t\005\017\336\311\206\016DARK\364\000UD\377COVERCDLp\003\013\340\206\007\003\022=\017OJIA\001@\004\000\233\236\001\000\010?\010\026\004\236\207\025DA\000\374 \013\021\026RAGONF\007LYDp\004\004\t\260\010\004\020\322\210\016\277ENGULF\373@C\303DL\003\006\337\210\007\003\r.\017VE\025N\271`D\360\007E\004\013A\010\004\022\200:\025\301$G\004\361\240\0019\016\n\010\252\212\016G\343AP\272\211\001\276\211\001\272\207\002CDL\360\003\r\305\212\007\003\024C\017RAVE\023ST\271\207\001\353CG\004\nF\010\004\021\036\316\213\016HAMM\370b\003\003\325\213\007\354\003\n$\020NG\252\206\002NCD\207LHA\005\0053\t\005\014g\020R\353AM\256\204\001H\242\256\001ICR\003OS\343\214\001\003\010\201\t\047\002\037\001\331\214\025x@\003#\r\025\026IGHW\306 \340\272\001\004\004\360\010\004\013\242/IKKuA\323\214\002H\004\003MODD\002\200\022\002\n\000?\t\005\0145\025\"\016\317\026O\377MINGPIGE\301O\367\"\004\010\262H\004\017\310\217\016ID\377ENTICAL3\340\332\217\005\003\014\341\217\007\003\023@\017NNE\302\377\213\002I\004\0025\010\004\t$\020VE\014\367\252\001\202\204\006IN\005\t;\t\005\020\240\221\016\317KICK\306\207\003\003\004BY\000\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016""\356\221\025\377LADDERBO\177TTOMCDL\003\t\370\277\222\007\003\020\365\222\016LONGL\037EGGED\351\211\004\003\013B\010\010\034\n\177\026K\001I\253@\221\000\004\0044\014\007INE\303\223\025\231\216\010\247\216\005\214\224\007\003\014~\276\224\016MATCHI\312\000\037OWCDL\003\0107\t\032\006\200i\027\242\220\005M\000\345\261\0011\n\006\010n\017O\005R\235\213\014M\004\013\300\010\004\022:\025\355\215\004PG\004\236\213\013\003\017\326\226\016O\264\205\005O\255\205\014}O\237\205\032PIERC\264\215\003\360\003\005\230\227\007\003\014\312\227\016RICK?SHAWMA\302\212\001\003\010\370\333\227\007\003\0173\020SEFAL\377L3METHOD\206\247\230\001RI\005\013D\t\005\022\345\230\016S\345E\270\272\001T\245a\304\227\001CDLp\003\014\376\230\007\003\023@\017HOOL\001\302\225\221\004S\004\010A\010\004\0175\021RT\201L\267\205\003C\000\006\0036\n\006\n\311\017P;IN\253\220\001TOP\323\001\004\007\370\310\010\004\016\217/TALLE\017DPAT\234\271\001\234!\004\n\224(\370\004\021<\020\210aANDWI\rC\250\231\001ST\005\010A\t\005\017\241\234\016\037TAKUR\207\224\001\003\003\250\234\007\374\003\n$\020SUKIGA\206\222!TA\005\0041\t\005\013e\017H\373RU\264\000NGCDLaT\004\005r\010\004\014\245\017RI\261\225\004\341T\004\003\256\010\004\n\222\236\016UNI?QUE3RI\301\226\003\003\tp\245\236\007\003\0207\017\253\223\002GAP\354\236\006\241U\004\013D\010\004\022\255\237\016X\273\236\001G\203AP\222\206\010\003\r\310\237\007\003\024\204\240\014E\207ILC\001\000\262\240\005\001\007\254\240\014M\217FCMF\330\240\005\001\006\025\rO\317CMOU\000\001!\006OU\346\276\240\023MO\031\007\340\240\023OPP\340\200\235\001\001\003\322\241\005\001\n\317\241\014ORR\207ELC\001\002&\006\017\001H\024S\317COSH\000\001S\006SH\370\023\025\031\007\214\242\023UMSUM\341C\001\002\374\242\005\001\t\370\242\014VIC\203VI\244\243\005\001\006\235\243\014\377\244\t\365\300\001D\377EFAULTDE\303MA\000\001\220\253\004\000\010\205\253\013DI\377SABLEDDI\331V\000\000&\005IV\325\252\022DO?NCHIAN\000\005U\005\364\020\004\027\032_\247\265\002DPODz\232\251\006D\214\251\024DXD""X\260\005\371Xs\023\235\323\005DotEF\001I\000\000\370\254\004\000\007\354\254\013\213 \216 \035\005\373MA\264\254\022ERERI\254\000\000D\005RI\020\024I\307\003E:\233\254\005E\214\254\023EXP\000\000\222\005\375X\241\247\023EqualF\017LOOR\000\002\300\256\004\000\t\266\256\013_FOSCF\273\255\007F\254\255\025\177FRACTAL\000\004\340O\005\017\003\262\256\022\"\005\317\270\002Far\334\264\320\005\274\320\005.__\314\324\001__\370\001\r\376\327\005\035\theck_\307opt\304\325\004\274\304\002>\010ge\301t\003\030\333\324\001Z\n\212\326\003\243\302\002_s\244\312\265\002\227\315\002s\220\010\276\313\001l\240\010r\267epr\236\nst\002\013u\343ni\252\316\001\304\010\254\323\006fla\001gR\007\250\001\205\327\t\207&\017\007\260\326\002\013\n\360\250\331\007\266&\332\322\001\303&lookOback\324&\217\322\003_m\013p\016\004Q\013\270\322\004\216Frun\232F\001s\325 \357\324\n\r\n\261\022/\001\360\327\010>\n.\356\332\007HAH\254\205\005H\247\205\023\035\000^\211\275\002HMAH\327\205\006H\323\205\024\377HT_DCPER\007IOD\000\010\274\264\004\000\017\270\264\0137\003\017HASE\000\007.\n\027\001\225\264\022\032t\000P5\000OR\000\006i\007\023\003x\031\033\276\210\003\272\000SINE\000\004\342\253\007S\246\231\025\"\005\232#T_T\037RENDL=\003\003\006\363\0078\003\r\355\016;\002MOD\374\001\003\006\3701\014\033\001\356\023ighLo9w\221\316\002\203\330\001IMI\000\000\267\267\004\360\000\007\253\267\013\305\316\t\311\316\004KAMA\360\000\001\361\267\004\000\010\346\267\013KCKC\342\034\005C\253\267\022\035\000\303\301\002KDJ\014\000\000H\005DJ\027\023\025\000\361\301\002\346\257\001\337ARREG\000\006_A\200\252\235\001\000\014\220\271\004\000\023\220\271\013?\007\372\317\002C\007EPT\000\020@\016$\006\210\271\022\224\007\037SLOPE\000\014\215\016 \002\340)\035\372\322\002N\010\212\323\002\275\014NLN\372\363\005N\203\023OG10L\360\001\001\233%\001\010\212,ineM\376\354@CDMACDE\003XT\000\004\354\273\004\000\013\344\273\013\"\005\244\305\002\016:\001FIX\000\0043\010\022\000\305\273\022\000\"\0055\006g\010\030\026\343\217\003\254""\001\260\001\233\006\370\335\216\024\037\002\227\004RKETF\207IMA\002\003\325\006\002\n\317\rS\301S.\000\002\000\203&\002\007\372\rVP\207MAV\264\267\005\000\010\242-\236 X\006\226\316\002MA\002\003\337&\002\n&\016\035\007p\2664\247F\010\025\265\325\001MA_\274\325\001\377.__getit\317em__\t\007\224\216\003ME\201D\261\272\002\000\005\200e\020\004\265S\326 F\366\305\224\005MF\304\221\023MIDP\017OINT\000\005\331e\020\004\216s\301I\206\004\001\004)\010\326\273\001\035\024NM\203IN\336#\001\004b\006\021\003\036\026A\017XMIN\221E\000\0106\007\247L\200\201\205\0143\007\241\204\004I\0021\na\030+\006U\177S_DIMIN\003\002P\262\007\003\th\0160\001M-\004M&\013\361M\2175\215\047\213\206\023OMMO\372C\006O0\024ULTMU\343LT\247\207\005\001\007\220\304\013NAT\343RN\330\277\007\000\010\031\014ONE\257NVIN\223\231\006N\205\231\024N?earOBV\000\000\226\305\004\364\000\007\212\305\013O\231\307\003Dict\367Out\267\325\002PERC\006\246\255\001LE\000\007\334\305\004\000\016\327\305\0133\004\017RANK\000\010.\013\031\001\267\305\022#PL\325B\000\004i\005L\276W+\0031M\000\004$\n\277SPP\255\235\001\303\005^\216\304\024PVIP\362\233\006P\344\233\024\247PVO\000\000\215%V\376\304\023PSVT\000\000\034\006T\255\307\022Q\364\243\002\360\000\003\301\310\004\000\n\270\310\013RMAR\272\271\232\006R\265\232\024ROC\000\000P\300\000\001\223\311\004\000\010A\014(\000+\00110y0\000\004(\007R100\340\310\022\340\\\001\034\010\014\025r\0070\023SIRqS\333\236\005\000\007\341\014VIR\377\236\006=R\361\236\024RVOL\000\001\345\005\360\014\000\242\023\252\347\001\235\341\001Real\376\236\304\002ARSAREX\001T\000\003\300\313\004\000\n\267\313\013+\000\033\007\374\312\022\036\372\301\001INHS\001\000G\005\001\007\346>\014IN\031\0077\023MAS:\247\236\006S\243\236\024SMI\000\000\264\005\361M\242\236\023\036\001\254\326\002SQRT\360\000\001\344\005\014\000\262\023TDDE\003VS\001\002\220%\001\t\211,\336\332\001\342\332\002yF\000\003*\006OCHFJ\024\000\026\002\217\003\232\333\004\241\333\0052\t\202u#\0068\0078i\tZ\027\207\242\003SUB\000\000\352E""\263UB\267S\242\244\tSU\224\213\023S\017UPER\322\230\002\000\007O\006\023\005\360H\024\026\006\226C\251\325\002Shad\003ow\302\311\001\004\003\303\311\002\017\003\302\311\005\004\007\342\022\010s\377\320\003\205\321\003\255\240\001opy\375_\255\320\005__deep\375c\005\013reduce?__T3T3\274\321\004\000\006\376\257\321\013TANTANH\200\000\001!\005\014\000\375\320\022\303\315\007\264\315\025\335\354\001C\370\000\002\300\322\003\000\010_Clon\275e\005\tOpen\000\rA\277ndFill,\tP\367eek<\tUpda1t<\n\252\334\002v\002OS\000\004c\010\307OS_a\006\005\004Z\tOS\335_Y\006OS_S\010OS\001_P\007\264\010E\007T\002\247\tA\007=\t\252=\007D\376\356\001D\000\003D\210\047D\261D\232\006\004\004\375\010DD\230\006DmD\225\010DDM\010OS\362\"\000\202\324\002\340&\220\324\002\336%\004\006O\t\262\324\001\330%\260\276\324\002\323\047\315\324\002\321&DR\265\002Rj\251\010R\252\007R\371\rDR\252\007UR\250\tR\201(X\210\"XT\003UXO\tXQ\010XK\017XS\010\245XR\nXS\n\326(X\327\047X*\234\016X\327\047X\325)X\256H\242H\240\242G\346\016\240G\235I\275gO\376\362\001O\252\201\205\007O\222\204\006O\274mO\216\204\006O\252\212\204\010O\211\204\007PH\002PC\010P\252E\007P?\016PG\007PF\tP\000H\010\300\326\001\240\364\001\300\326\004\000\010\264\206\007\323\326\005\266\206\005\000\004\t\263\206\010\372\326\005\266\206\005\212\327\005\264\206\007\234\327\005\265\206\006\200\204\327\002\235\207\006\222\327\002Y\t\335\205\r\263\327\002S\t_\034N\013\263\206\007SIN\366\365\001\260\327\001\374\207\006\000\275\327\001\371\207\005\004\005\362\207\010\334\327\001\361\207\005\350\327\001\353\207\007\010\366\327\001\350\207\006\270\211\002_\341\327\002\326\210\006\357\327\001\323\210\005\000\004\005\314\210\010\216\330\001\313\210\005\232\330\001\305\210\007\250\330\001P\007\252\354\205\002T\346\205\010T\347\205\007T\340\205\016T\n\347\205\007T\345\205\tT\346\205\010\276\330\002\377\367\001\300\330\003\000\207\212\006\317\330\003\206\212\005\004\007\201\212\010\362\330\003\202\212\005\200\331\003\000\376\211\007\220\331\003\375\211\006""\366\330\004d\003\353\330\003a\010\374\330\003\000d\007\006\007c\n\243\331\003h\007\263\331\003h\t\305\331\003\034\364\212\005\250\331\003TA_\252\331\004\346\213\005\271\331\004\000\345\213\004\003\010\340\213\007\334\331\004\341\213\004\352\331\004\335\213\006\315\331\t\016[\001ETA\000\004\311\214\006\347\331\002Z\005\000\351\331\001\326\214\001U\010\374\331\001V\005\210\332\001R\007\226\332\001\266\271\006OP\273\001OPN\007OeP\263\214\005B\004\004\253\010OP\261\214\005\354\301\332\001\246\007OP\256\214\006CCI\007TA_\226\332\001\365\215\005\242\332\001\361\215\004\003\005\000\351\215\007\277\332\001\347\215\004\312\332\001\340\215\006\327\332\001\334\215\005\274\332\006\000U\001\257\332\006V\006\301\332\006]\005\004\n`\010\352\332\006\000i\005\373\332\006m\007\216\333\006r\010\200\333\010|\003\202\333\t\000|\010\231\333\t\202\007\006\r\204\n\314\333\t\214\007\342\333\t\000\217\t\372\333\t\224\t\337\333\003\225\004\341\333\004\214\t\364\333\004\000\211\010\007\010\202\013\237\334\004\201\010\261\334\004{\n\305\334\004\000\230)\245\334\007\235$\247\334\010\230)\276\334\010\231(\007\014\000\226+\361\334\010\231(\207\335\010\227*\237\335\010\270I\202\335\004\000\272D\204\335\005\262I\230\335\005\260H\007\t\252K\305\335\005\000\252H\330\335\005\245J\355\335\005\303i\313\335\t\312d\315\335\n\000\307i\346\335\n\312h\007\016\311k\235\336\n\316h\265\336\n\000\316j\317\336\n\361\204\t\254\336\n\371\204\004\256\336\013\367\204\t\310\336\013\000\373\204\010\007\017\373\204\013\201\337\013\201\205\010\232\337\013\202\205\n\265\337\013\000\244\207\010\222\337\n\260\207\003\224\337\013\262\207\010\255\337\013\272\207\007\006\017\000\276\207\n\344\337\013\310\207\007\374\337\013\315\207\t\226\340\013\242\t\366\337\010\000\246\004\370\337\t\240\t\220\340\t\240\010\007\r\234\013\305\340\t\000\236\010\334\340\t\233\n\365\340\t\371\211\010\327\340\005\200\212\003\331\340\006\000\375\211\010\355\340\006\200\212\007\006\n\377\211\n\232\341\006\204\212\007\255\341\006\000\204\212\t\302""\341\006\177\t\245\341\005\205\004\247\341\006\201\t\274\341\006\000\203\010\007\n\201\013\353\341\006\205\010\377\341\006\204\n\225\342\006\000\226\214\010\360\341\014\244\214\003\362\341\r\250\214\010\215\342\r\262\214\007\006\021\000\270\214\n\310\342\r\304\214\007\342\342\r\313\214\t\376\342\r\260\t\332\342\014\000\266\004\334\342\r\262\t\370\342\r\264\010\007\021\262\013\265\343\r\000\266\010\320\343\r\265\n\355\343\r\266\n\314\343\010\270\005\316\343\t\000\260\n\347\343\t\256\t\010\r\250\014\236\344\t\250\t\266\344\t\000\243\013\320\344\t\303\220\010\253\344\013\320\220\003\255\344\014\323\220\010\307\344\014\000\334\220\007\006\020\341\220\n\200\345\014\354\220\007\231\345\014\362\220\t\264\345\014\216\251\tOJI\244\004\233\345\004\000\013_\000\247\t\237\345\005\242\010\007\t\231\013\314\345\005\226\010\337\345\005\020\216\n\364\345\005\206\014i\r_g\013\242\241\014\333\346\004\025__\013_Y\r_\243I\237\346\t\247D\000\241\346\n\241I\272\346\n\241H\007\016\235K\361\346\n\237H\000\211\347\n\234J\243\347\n\240\225\010\204\347\006\250\225\003\206\347\007\246\225\010\000\233\347\007\252\225\007\006\013\252\225\n\312\347\007\260\225\007\336\347\007\261\225\t\000\364\347\007\206\t\321\347\013\221\004\323\347\014\222\t\356\347\014\231\010\000\007\020\234\013\251\350\014\245\010\303\350\014\251\n\337\350\014\252\017\000\206\361\001\253\n\307\350\002\242\017\336\350\002\237\016\r\006\230\021\000\221\351\002\227\016\247\351\002\221\020\277\351\002\216\231\010\223\351\r\235\231\003\000\225\351\016\242\231\010\261\351\016\255\231\007\006\022\264\231\n\356\351\016\301\231\007\000\211\352\016\311\231\t\246\352\016\267\t\204\352\n\272\004\206\352\013\263\t\000\240\352\013\262\010\007\017\255\013\331\352\013\256\010\362\352\013\252\n\000\215\353\013\206\234\010\361\352\003\213\234\003\363\352\004\206\234\010\205\353\004\207\234\007\000\006\010\204\234\n\256\353\004\207\234\007\277\353\004\205\234\t\322\353\004p\n\000\265\353\005y\005\267\353\006x\n\315\353\006}\t\010\n~\014\000""\376\353\006\205\t\223\354\006\207\013\252\354\006\211*\217\354\001\216%\000\352\353\006\000\016\240\213\t\244\354\t\245)\247\354\007\315\240\013\253\355\002\200\304\354\007\257)\332\354\007\262+\362\354\007\233\016x\017_*u\r_i\024_k\r_d\017\273\213\t\001H\254\355\004\256d\256\355\005\253i\302\355\005\256h\007\t\000\255k\357\355\005\262h\202\356\005\262j\227\356\005\262\204\t\373\355\003\000\202\005\357\355\005\000\r\232J\241\356\006\225)\007\013\221\014\000\305\356\006\226\t\332\356\006\226\013\361\356\006\224\017s\020q\017\024\222P\337\357\003_l\016_g\020\233J\226\357\010\000\332\206\004\230\357\t\333\206\t\260\357\t\342\206\010\007\r\345\206\013\345\357\t\000\356\206\010\374\357\t\362\206\n\225\360\t\210\245\010\360\357\014\226\245\003\362\357\r\000\232\245\010\215\360\r\244\245\007\006\021\252\245\n\310\360\r\266\245\007\342\360\r\000\275\245\t\376\360\r\260\t\344\360\002\254\004\346\360\003\236\t\370\360\003\000\226\010\007\007\212\013\241\361\003\204\010\262\361\003y\n\305\361\003\000p\n\243\361\t}\005\245\361\n\200\n\277\361\n\211\t\010\016\000\216\014\370\361\n\231\t\221\362\n\237\013\254\362\n\366\250\010\216\362\004\000\374\250\003\211\362\014\000\022\203\226\t\246\362\r\237\251\007\006\021\245\251\n\200\341\362\r\261\251\007\373\362\r\270\251\t\227\363\r\267\017\214\020_(\206\016\251\226\017\225\364\004_v\016_l\020\270\226\t\000\275\363\t\301\253\003\277\363\n\302\253\010\327\363\n\311\253\007\006\016\314\253\n\000\214\364\n\325\253\007\243\364\n\331\253\t\274\364\n\335\254\010\231\364\013\242\004\000\204\364\013\237\t\236\364\013\242\010\007\017\241\013\327\364\013\246\010p\360\364\013\246\n\213\365\013\245\rINE\244\010\000\372\364\001\231\r\216\365\001\224\014\013\005\213\017\273\365\001\210\014\000\316\365\001\200\016\343\365\001\235\257\010\323\365\005\244\257\003\325\365\006\241\257\010\000\351\365\006\244\257\007\006\n\243\257\n\226\366\006\250\257\007\251\366\006\250\257\t\000\276\366\006~\n\240\366\006\206\005\215\366\007\204\n\244\366\007\210""\t\000\010\013\210\014\327\366\007\216\t\355\366\007\217\013\205\367\007\222\013\000\365\366\001\223\006\201\367\002\212\013\224\367\002\207\n\t\006\200\r\000\277\367\002\177\n\321\367\002y\014\345\367\002\243I\277\367\013\257D\000\301\367\014\261I\334\367\014\271H\007\020\275K\227\370\014\307H\000\261\370\014\314J\315\370\014\252\017\220\233\007\256\370\t\242\017\213\233\014\200\333\370\t\317\224\016\370\370\t\227\016\211\233\016\246\371\t\250\265\010O\252\331\215\010O\323\215\016O\324\215\rO\315\215\024O\n\324\215\rO\322\215\017O\323\215\016\317\371\005\254\266\003\321\371\006\000\251\266\010\345\371\006\254\266\007\006\n\253\266\n\222\372\006\260\266\007\245\372\006\000\260\266\t\272\372\006\260\267\010\232\372\010\272\267\003\234\372\t\272\267\010\263\372\t\000\300\267\007\006\r\302\267\n\346\372\t\312\267\007\374\372\t\315\267\t\224\373\t\000\223\n\361\372\013\235\005\363\372\014\235\n\217\373\014\243\t\010\020\000\245\014\314\373\014\255\t\347\373\014\260\013\204\374\014\223\272\010\336\373\014\000\241\272\003\340\373\r\245\272\010\373\373\r\257\272\007\006\021\265\272\n\266\374\r\000\301\272\007\320\374\r\310\272\t\354\374\r\260\t\314\374\010\262\004\316\374\t\000\252\t\346\374\t\250\010\007\r\242\013\233\375\t\242\010\262\375\t\000\235\n\313\375\t\231\013\257\375\003\233\006\261\375\004\223\013\306\375\004\000\221\n\t\010\213\r\365\375\004\213\n\211\376\004\206\014\237\376\004\000\351I\375\375\007\352D\377\375\010\341I\226\376\010\336H\007\014\000\327K\311\376\010\326H\337\376\010\320J\367\376\010\211\204\t\324\376\n\000\215\204\004\326\376\013\207\204\t\360\376\013\207\204\010\007\017\203\204\013\251\377\013\000\205\204\010\302\377\013\202\204\n\335\377\013\250\n\274\377\010\254\005\276\377\t\000\246\n\327\377\t\246\t\010\r\242\014\367\377\t\244\t\\\t\370\241\013v\t\213\302\010TAKUR\000\216\257\004\006\003\371\256\t\013\004\214\302\007\006\010\211\302\n4\004\340\214\302\007E\004\212\302\tX\004p\nSUKoIGAP\220\303\003TA\010\004\000u\013\r\005z\t\010\tz\014<""\005\200\tP\005\370\201\013f\005\203)HRUST\007ING\213\004\007\005\210*\014\006\215(\000\007\n\215+;\006\223(O\006\224*e\006\225I\013RI\260\254\007T\007\003\226J\014\004\231H\000\007\010\227K7\004\233HI\004\232J]\004\260\306\010\377UNIQUE3R}I\362\235\001A_CDL\006\t\000\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007W\n\370\323\306\tp\n\233\tPSIDE\377GAP2CROW\005S\345\307\003U\007\013\240\n\014\014\245\010\007\020\200\245\013G\014\253\010a\014\254\n}\014\223\311\010X\376\264\0043METHOD\000\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\nH\016\340\306\311\007c\016\316\311\t\200\016\330\312\006EIL\000\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010(\001`\261\313\0054\001\260\313\007B\001\262\313\006MF\212\314\001\003MF\224\270\007\t\000\206\314\005\004\004\203\314\010&\000\300\206\314\0051\000\204\314\007>\000I\007\316\325\001CM\033OUU\002OUP\010\n\000S\006\000\005\004Q\t)\000U\0065\000T\010C\000U\010DF\t\305\270\006M\237\326\r\200\000\275\270\006M\246\326\010\030\024\001\262\315\006\236\350\001CK\216\316\001\004\003\234\272\007\000\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\234\316\007\\N\004e\007RRE\306BO\005\001\000b\010\n\002c\006\005\006_\t-\002a\006;\002p^\010K\002\315\007\234\206\002OSH\325\002\003SH\314\010\n\000\313\006\005\004\305\t)\000\000\305\0065\000\300\010C\000U\010F\t\311\273\006\273\336\016UC\301\336\007C\276\336\tC\276\336\010C\362\342\002\000\221\321\001\372\342\003\217\321\006\211\343\003\223\321\005\004\007\223\321\010\254\343\003\240\231\321\005\272\343\003\232\321\007\312\343\003\236\321\006V\365\321\002V\215I\200\276\007VI\204\275\006\004\004\357\321\010VmI\374\274\006VI\366\274\010VI\373\337\006\007DEM\366\323\001\003\001\303\341\006\010\002\301\341\004\000\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002\260\341\005?DIVTA_\003\000N\007\013IV\255\341\005D\004\004K\010\032\000M\005\360%\000J\0072\000J\006ONCH\rI\327\343\001_D\004\004\253\007\t\005\261\005\000\004\t""\262\0100\005\271\005@\005\273\007R\005\300\006\252\217\335\002D\211\335\010D\212\335\007D\203\335\016D\252\212\335\007D\210\335\tD\211\335\010D\242\340\001D\251X\350\047\301\337\006D\271\337\rD\277\337\006D\032\274\337\010D\274\337\007EF\213\326\001\003\000\203\345\006\000\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\357\344\006`=\001\353\344\005\216c\227`I\007MA\350\344\005\031E\004\004H\010MA\346\344\0050\001I\007+MA\343\344\006E\347\342\001E\306\223\002\003\000J\241\007R\267\204\006E\004\004\240\010R\267\204\006T0\001\241\007R\266\204\007E\263\343\007E\263\343\006UE\253\343\rE\261\343\006E\256\343\010E\256\343\007\243EX\243\331\001\003\000\273\047X\236\331\006ED\004\004\272(X\236\331\0060\001\273\047X\235\331\007\017FLOO\334\344\001\003\002\237\350\006\010\003\000\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006E\003\002\221\350\005F\231\346\003\003\001U\007\370\345\001V\005\004\005\300R\010\220\346\0103\002Q\007\261\346\001Q\006RA\027CTA\255\216\001F\004\003\265\007\t\004\000\271\005\004\010\270\010.\004\275\005=\004\275\007N\004\376\300\006UNC_FLA\375G\344\351\001FuncTa\377bleAllocwTA_\010\006Fre\346\352\001\367Get \001Hand\375l\005\010InfoTA\375_\033\000InputP\377arameter\376\016\007Lookbac\335k \003Opt\021\025Ou\275t.\021roup\215\nG\264\t\006\224\004H\301\336\001HA\214\354\006H\210\254\205\006\003\004\377\353\007H\252\205\006-\000\364\353\006HB\247\205\007H\223\212\002\003\000D\007\372\205\007H\363\205\016\341H\372\205\0070\001H\007\371\205\010HT_\177DCPERIO\256\353\001\020\003\010\247\007\030\007\327\354\005H\004\014\270\010\"\010\300\310\355\004H\t\313\007J\010\315\355\005\205\003HA\001S\325\340\001\003\007z\014\034\001z\013\t\006w\r@&\002y\n8\002v\014L\002y\010P\177\000\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\031\007\373\341\013@1\007\373\007E\004\367\tX\004\366\010S\313\261\003\"\223@S\301\261\t\010\005m\007S\263\261\017-\005B\356\047S\260\261\nM\005\345(\355\363\002Lk\006\000\006\006\361I\013\007\353\007""\006\013\362J:\007\366GpN\007\365Id\007\202\rMOD\375D\000\216\365\002\013\001\201\016\020\002\203\014\013\006\200\017?\002`\203\014S\002\201\016i\002\341\362\005IM\324\344\001\000\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007%\001\277\363\004\3600\001\270\363\006=\001J\006NPUT\376\322\210\006Initial\033iz\255\364\001KA\364\221\002\003\001\274\364\006\000\010\002\272\364\004\003\006\263\364\007\047\002\262\364\0043\002\254\364\006\264A\002\251\364\005K\250\365\001KCL\007CF\243\364\005KC\315\363\014#\000H\005C\233\364\007\3749\000C\006DJTA_K\003DJ\232\007\t\000\233\005\004\004\227\010&\000\300\231\0051\000\226\007>\000\310\365\005\303\343\001AR\363RE\300\241\001\003\006_ANG\001L\341\350\001\003\014\327\366\006\010\r\340\366\004\003\021\344\366\007\200=\r\356\366\004T\r\363\366\006m\r\242\016|\020I\377NTERCEPTGTA_\305\007\r\006\026\031_\264\016\000-\007\337\352\013E\021\274\016j\007\276\020\207\007\303\017x\273.e\025\257.SLOP\250K\000\r\002\243P\022\003\245N\r\007\242QG\003`\023\201_\243Pw\003\244O\316P\205\204\006\301\362\001L\025N\336gN\215FN\372\371\014#\000\271e\365Ns\010N\307\372\006LOG1\0010\203a\004\001\260\204\007\t\002\250\204\005\004\006\233\204\010\200*\002\224\204\0057\002\210\204\007F\002\203\374\005\246\232\002M3AC\355\372\001\003\001EX\362a\003\004\000\202\375\006\010\005\203\375\004\003\t\377\374\007-\005\201\375\004<\005x\376\374\006M\005q\007CDFI\331\371\001\000|\001\007\000b\n\014\001d\010\007\005a\0131\001@d\010@\001b\nQ\001c\t\304\n_\303\010\224\222\375\014\215!_\275\010_\270\n\345\375\006M\000\353\211\003\003\001\240(\316\230\007\024\002\326\361\013\047\002\231&\363MAN\t\321\230\010MARK\003ET\202\232\002\003\005\202H\026\003\266\007\005\010\200\203I \004\207F0\004\206HB\004\203gS\rS\205\362\001MA\005\000\362H\n\001\362F\000\005\005\355I+\001\356F8\001\352HG\001\344g\035V\270\363\001MAV\263\363\007\010\002\320f\213VP\372.V\267\363\0063\002\305hV\366\270\363\007MA\303cXINDAE\000\010\207\235\007\037\000\027\002\355GX\006\007\000\272""\204\t\020\004\276\204\006 \004\275\204\0102\004\272\205\007Y\n@V\010\306n\271\376\006\255\000\311i\270\376\007M\342\226\007`\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\315\370\002\017TA_M\004\004\304\206\007\t\005\307\206\005\000\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\005\305\207\006\032\254\204\003F\304\243\007MF\305\243\006\003\005\247\207\010\321F\305\243\006$\001\240\207\007F\304\243\007MI\037DPOIN\221\210\002\004\004\215\210\007\000\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\221\210\007\304R\005\216\211\006I\265\047\004\004i\nRI\007CE_k\010\007\006h\013\"\002k\010\3402\002i\nD\002l\007\374\376\001MINh\274\204\006\004\004\347\010N\267\204\013IN\260\204\022\2000\005\351\0060\004\347\010B\004q\010\275\205\004I\001N\243\205\005\271a\004\007y\t\274\205\016\034\010\342\210\014\0006\010\204\007\204\206\006\205\t\231\206\006\206\013i\014\355\047*\244\001_Z\021_\\\n_U\014\265\212\007?INUS_D\355\210\002\004\004\000\335)\027\002c\010\006\007\317i=\003g\0101\003\020\335)C\003\332Hr\001M\327#\006\002f\r\005Mg\014M\324\0172\003\325GB\003f\r\001M\340\t\271i\272(\260/\264(\257*\356\214\007\255O\271\002OM\227\217\007O\252\007O\240\236\016&\000\215\217\0051\000\207\217\007O\225\010U\001L\364\217\002\004\000\354\217\007\t\001\353\217\005\004\005\345\217\010\300(\001\345\217\0054\001\340\217\007B\001\201\377\005NA\001T\245\247\001\003\001\345\353\006\010\002\330\377\004\003\006\326\377\007\200\047\002\332\377\0043\002\331\377\006A\002Q\006\267\255\002N\252\261\255\010N\262\255\007N\253\255\016N\262\255\007N\032\260\255\tN\261\255\010OB\336\254\001\003\000\220\355\006\000\010\001\221\377\004\003\005\203\377\007%\001\373\376\0040\001\356\376\006\\=\001\344\376\005OUT\246\233\tP\327\227\001\007NTI\226\231\002\003\007\200\356\006\010\010\364\376\004\000\003\014\361\376\0073\010\364\376\004E\010\372\377\006Y\010\367\377\005\016}\004RAN\341\263\001\003\010v\r\036\001\001_y\013\n\006w\016(\002{\013;\002z\r\224P\002\202\006L\373\206\005P\004\003""\377\007LF\364\206\nPL\354\206\021-\005\370\005L\357\206\014\020M\005a\013\370\206\001i\003M`\014\361\206\006\027\005\010\271\344\013-\005b\nM\376\357\007M\005\340&\343\257\002UP\335\257\010P\336\257\007P\327\257\016P\336\257\007UP\334\257\tP\335\257\010P\254\263\002P\246\263\010UP\247\263\007P\240\263\016P\247\263\007P\245\263\t\215P\246\263\010PV\231\271\001\003\000\373gVEO\356FV\263\270\r%\001\350eV\270\270\010t=\001\331fV\271\235\001PVTH\010ETI\007T\321\362\014%\001J\006T\305(\370>\000\254\204\006\373\252\001Holde\345r\300\253\005P\t\007\303\253\004QST\001I\265\271\002\003\003\326\364\006\010\004\242\377\004\003\010\225\377\007@+\004\216\377\0049\004\202\377\006I\004\371\376\005R\336\265\002UR\242\223\010R\305\261\007R\276\261\016R\305\261\0075R\350\227\tR\304\261\010RO\341\242\001\003\000\000\230\305\001\003\001\223\366\006\010\002\262\377\004\003\006\244\377\007\047\002`\234\377\0043\002\217\377\006A\002\252\006OC\255\262\001\016d\000R10\320\234\001\003\004[\t\026\001\001_`\007\006\006`\n \002f\007/\002g\t@@\002j\tU\nS\t\327\366\014\227\001_N\010\005_I\n_\276\010\217)\245\010>\017D\010\030A\nC\007\354\231\002RS\366\271\007\010\001\345%\213SI\223\rS\367\271\0060\001\340\047S\252\366\271\007R\316\272\002R\310\272\010R\311\272\007R\252\302\272\016R\311\272\007R\307\272\tR\310\272\010R\003VO\350\301\001\003\001\214g\021\000\243F\004\005\200\213h\033\001\216e\047\001\214g5\001\300\204\006e\277storeC\366\261\002D\377efaultSe\377ttingsTA\007_SA\341\266\001\003\000\222\240\003\003\003\254\373\006\000\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004\230\377\006\020I\004\214\377\005k\000P\t_O\007\201\373\014%\001\262I\007_D\t\373\372\006SI\204\243\001S\003IN\353\277\001\003\001\255\007\021\000S\006\004\005\200\250\010\033\001\251\005\047\001\245\0075\001\244\006I\201NF\tF\010\235\r&\000E\007\242\010I\252\336\243\007S\256\276\002S\362\233\010S\225\272\007S\252\216\272\016S\225\272\007S\270\240\tS\224\272\010Sh\367\254\002\003\000\245GM\321\277\006SM\312\204""\r\304%\001\236EM\317\277\010=\001\227FQR\002\220\251\001S\004\000\372G\t\001\372E\004\005\365H\300(\001\366E4\001\362GB\001\361FTD\013DE\331\277\001S\004\002\330g\t\003\332e\000\004\007\327h,\003\332e:\003\330gJ\003^\007KOC\213bT\005\000\342\307\001S\004\002\010e\010\024\001\360fT\005\006d\t\036\002g\006\020,\002e\010<\002c\nR\320\242\002e\002\335\207\t\010\010\006\325\006\231\000R\342\207\016/\006f\t\360\207\n@Q\006\331\n\306\013\306\n\276\205\r\211!_\305\t\331_\302\013\312\205\007UB\221\207\001UB\000\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\362\206\0051\000h\355\206\007>\000\353\206\006U\206\232\001SU\302\230\007\000\010\001J\006\353\231\r%\001J\006\357\221\010=\001I\007\007PER\227\265\002\250\002\005\005\251\010\n\006\000\262\006\005\n\266\t5\006\300\006G\006\305\010[\006\306\302\210\006et\316\211\003\301\211\t\021\000om\377patibili\333ty\334\211\001et\251\274\nIn\337teger\007\020Re{al+\003Unst\312\275\001\277Period\241\212\001h\377utdownTAg_T3\000\002\242\372\006T3\222\371\005\000\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006.\000\336\376\005\301T\221\306\002\003\000\254\312\001\003\001L\007AN\001HO\006\004\005O\010\033\001T\005\047\001T\007@5\001U\010F\tF\010\256\372\014\206\000_E\007\251_B\t\242\372\006T\357\310\003T\326\304\tT\005E\331\304\007T\322\304\017\047\002\373\005\331\304\nA\002^\376\006RANG\243\355\001T\004\002\010\321\047\t\003\250\377\004T\004\007\330(,\003\337%\320:\003\341\047J\003^\007I\263\312\002TR\021I\371\247\010\010\003\\\006I\231\306\016)\003Z\006\341I\307\254\tE\003V\010\240\310\001TRI\000\234\310\007\010\002T\007\232\310\r\047\002R\007\243\310\010A\002\032\241fS\255\322\001TS\247\322\007\010\001\222%\000\024\000\377\376\013%\001\363e1\000\362g>\000I\007Z\237\334\001T\215\222\010TS\217\315\006T\207\222\016\341T\216\222\0070\001H\010\216\315\007TYP\000\213\252\005\003\005\236\205\007\025\004\245\205\006\004\t\251\205\010\037\005\340\262\205\005/\005\266\205\007A\005\261\376\005ULT\000\317\306\003\003\003\225\376""\006\010\004\256\377\004\003\010\246\377\007+\004 \244\377\0049\004\235\377\006I\004\231\377\005V\245\222\002\003\000\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\375\377\0040\001h\363\377\006=\001J\006H\204\326\001VH\376\325\007\000\010\001K\005\024\000\366\354\013%\001K\0051\000I\007\\>\000\235\006ORT\232\257\002V\004\002\000\242\007\t\003\247\005\004\007\247\010,\003\255\005:\003(\256\007J\003\205&W\336\337\002V\004\000\206\047\000\t\001\211%\004\005\207((\001\213%4\001\212\047\030B\001P\007\331\321\002VW\236\257\010\010\002Q\006\300\274\315\016\047\002Q\006\350\263\tA\002\227\377\005WA\000\300\306\001\003\000\375\372\006\010\001\353\376\004\003\005\331\376\007%\001`\315\376\0040\001\365\377\006=\001J\006CL\376\257\005\001W\004\004S\007\t\005Z\005\004\t\\\0100\005\340d\005@\005g\007R\005\300\006ILL\002\230\317\001W\004\001\303\007\t\002\307\005\004\006\306\010\000*\002\313\0057\002\313\007F\002\241&\334\324\002\366)UW\303\320\007W\274\320\016W\303\320\007W\346\266\t\rW\302\320\010ZL\260\325\003\003\002\376\375\006\010\003\000\270\377\004\003\007\251\377\007)\003\240\377\0046\003\222\377\006E\003\370\211\377\003\217\326\001\371\321\001Strea\373mT\001\007.open\377_and_fil\001l\335\213\003\342\213\004%\004\360\213\0033\003\036\r\256\213\001\220\252\213\002$\005\267\213\001\024\024X\364\212\002 \006X\315_>\022SF\303\212\001\240\004SF\022\016\024I\225\212\001\035\005I4\023\346\211\005\322\211\005\000\364\004\001\013\361\013\246\211\003\242\211\004\245#\000\n\237+\207VAR\353\210\001\315#\000\007\026\014H\tF\275\210\001\036\004H\273\023\207\210\003\214\210\004I\004\004\232\210\003\3431V\340\207\010\335\207\001\340\207\002\177\004\354\207\001\316\037\022WMA\256\207\002 \005MA\016\3532WAD\375\206\001\241c\000\007\230k\000\303\206\005\312\206\006(\004\332\206\005\230q\207\206\002\213\206\003V\004\\\230\206\002\026\022MAW\226\006W\222\024\300\253\205\002\247\205\003\316\204\003\000\t\307\204\013\352\322\002ti\377on__call__func\n\002F\001\005\377_check_o\357p""t_i\346\322\001_vawlue-\010get\003\030\376.\003price_s\377eries_naYm\003\000W\007lox\000_\001\014\217data\222\0100\001\000\014s\377tr__ARRA\377Y_TYPES_\223_I\372\312\002\016\002S\006\013\352\272\002_\357SERI%\000DEF\357AULT.\000PAN\377DAS_DATA\177FRAME__\013\004~#\004_POLAR\023\013\374\014\003\030\006yx_PyD\377ict_Next\337Ref__\301\325\001UN\177CTION_NS\000\326\227\000__\331!_\004\000nn\237otate\010\000\353#_\374\351-\3314_class\275_\352 item:\002o\373pyC\001deepc8\004\005\205\001d\000doc^\001\312A\374f\001\237Aflags_y_\232QJ\tinit\231\001z\237V_\251C_mai\262`?__meta\226\003\334\000\337modul\330\002mr\037o_ent\354B\365\000\273B\366\004\001ew\367\001prep+ar\201\"p\277 v\257\231\002\220!\357qual$\005red\243uc\245\"+\000\351@_\276`t\331_B\005\372B__\243`ve\263rs\275\204\002\013\000es\271\002u\237nicod\342!\232\204\001d\362\265\245\003s\306\212\002\230 s_is\377_corouti{ne\316\000okupF\001>\345\204\003succe\351 \376`v\274\"unR\000id_\001\014=s\003\013reti\257\000\215\001\001g\255\331\003\237\331\001\004\010\341\331\002\030\004\301\330\007)\004\000\263\331\017B\004\243\331\022\024\005\247\331\017x\004\333\000\301\234\010\232\r\005u\226\234\004_p\231\234\002\270!i\264\233\321\006\306!r\353\247\003_c\350\332\002_p\261$\363!\357\247\002\351!set\027\005\211s\204\250\004\016\006oe\014(\001a\020s\376\214\235\004a_close\177a_higha\325`\327wa_\356\215\001a\231\004sa__real\000\0030\007\003\3771a_volum{ea\241@lera\270\210\001\274\000\t\274\204\001long\004\rs\317hort)\t\025\rma\361x\000\020&\016B\003ppen\357darg\000\000sar\377raysasci\377iastypea\177syncio.\331f\357satr\355#avg\376\366#bbegidx\377bitbytes\3572str\357#sti\357ckcl\224\204\001in_\237trace\301\335\001\247 n}e\252\"colle\237\212\002\375s\010\000umn_st\351a0\000\222!n\020\000pyd\303de\371\204\001\266E\253\212\002\373\204\005de\337scrip\356\212\001di\237splay\212\212\002\221\205\001d\333oc\325 nt\316\"em\307pty\341\000\241\000\347\000sw\237ithen\364 \356 e\177factorf\352\000\017d_ma\356\001\006\003\320c\024\001\373k_\002""\007limitx)\001!\007\"\004irst-\004glag\233\210\002\237\210\003lo\214\206\002\217dict\275\210\002\342!\306\210\002i\307nfo\317\210\002\234!\330\210\002ob\003je \003\300\214\002?\003\274\214\005\345\213\001\311\214\005\201s\243\214\001\273\214\003\253C\006\007\213\214\002\302\214\001pf\275\340\005sg\371\337\001\000\002sh\364\340\002ohelp\243\204\001hi\217\256\001\337ylenh\351\264\002ii\335d\304@imp\333`_e\377rrorinin\007dex\247\001c\t\266\215\003\367\214\001\000\007us\205\215\025i\344\243\003is_\203B\336\356\212\001skey\000\000sk\375w\360aleftba\273rs\205\000gth\274\215\002ln\350\341\004low\000\000er\224C\377maximumm\373ax\356\206\003memom\333in\006\004is\200\000gm\362\001\003_[\001\273\212\003msgm\377ultiplie\363rn\254\216\001\260\216\001dtup\376\366\000annbdev\372\000\002d\006\003upno_\212\361\000s\227\260\001_\332)\261`\261\217\003s`\006\001\274\217\006\010\003\363\342\002\025\001py\302C\377offseton\013re\320\212\001e\373\225\001\377\225\001\365\245\001\226\210\002\242\203\226\to\315\343\001\215\220\006\220\220\014s`\007o\277rdered\311ao\377utoutaro\363on\217\246\001\004\005upou\377tbearpowqe\221\213\001\226\206\003\021\001ull\r\005\377doutfama\366\002\002st\t\003stko\017utha\304\210\002\005\002\310\210\001\016\002\360\205@\026\002\300\002\345\213\001phas\321e\356\213\002\302\247\002\000\007_\350\220\001ou\357tjouJ\002lea\261d\230`(\001\305Bba\254\000u\017tmac\200\001\003\001\201\204\002\014\003\177signalo\033\001\356\227\002max\010\002xid\372\000\006xZ\005middlmeH\005in3\001in#\004\374\004\002 \007nusvio\377utnbelem[en\267!pl\016\004p\305\"/put_\322\217\002o\275\346\002\324\222\002R\000\010s\021\003\000\004s\265\223\001i\302!\377quadratuYr\212!\336\212\001ou\366\231\001l\341\t\370\365\212\001\241\n\206\213\001upper<\207$\232$slow\226A\004\001\306\207Asm\260\001\003\000\217&sw\207ing\217D\007\002\223CC\006p\037andas\366\206\002\373\206\002\232\224\002\374\200\207\007\217\207\002spenet\376\347\213\003percent\347ile\300\215\003\306\215\003spo\227lar\003\000p\346""\224\002\353\224\0020\"\361\224\0021\360\224\t\367\224\016\310\225\003s\233\225\002\003\000\377opertyraGnge\306\213\001\373\214\001\377\214\0010\204\215\001\3771replace\377resultsr\330\216\000\260\254\001\332\204\001t_\352\220\001ri{gh\221\207\002roc1\335\216\003\362\007\0002\001\006\014\004unss\377chemasecwond\271\004elf\231\226\003\000\335\216\001\375\226\006\334\214\001\356\216\001\255\211\t\006\007\304\226\002\215\217\001\016\257\211\007set\346\221\005\243\270\003\215\215\001\236\204\003\370\245\213\003\252\204\003\256$kip_f\340\203\213\001\302B\306\213\004\006\003\320$low\201k\r\010\321\213\005\363A\324\213\002\374AR\004l\363ow\205D\214\215\001leve\277lstart\253\230\002s\376\323\214\001cmethod\277stddev$\005r\2652\375\215\002s\370\236\002sy\271\256\003t\237alib.\331\223\001\005\000t\377hreading\377timeStamQp\005\001\276\221\003\000\0071\013\0072\026\007\3773to_nump\351y\225\217\001\231\217\001_\307\223\004upd\027ate\000\003_\324\214\001\330\204\002\327\231\002\344\253\003\317\224\004v\350\215\003\357\220\003war\271n\000\001\375\272\001wma\301\222\003\200\377\001\330\004\007\200u\210C\377\210q\330\010\020\220\005\220\377Q\330\014\r\330\020\026\320\377\026+\2501\250A\330\014\377 \240\013\2501\330\010\017\376\035\000\004\013\320\013\034\230A{\230Q/\003y\220\003\220\023\004\357\t\022\220#7\000\010\026\220\203a\330\000\t\000\025\000-\000]\235\200 \340\376\330\002\004\014\320\014#\2409\377\250C\250x\260q\330\004\377\n\210%\210q\220\001\330\377\010\027\220z\240\021\200\001\377\340\004\017\320\017#\2401\337\330\004\013\2101\013\001\022\220\377,\230a\330\004\025\220Q\357\220o\240Q\014\003.\240\001\276\r\002\320\026\047\240q \002\320\277\022&\240a\240q\017\004-\355\250#\003\320\022\035\000\250\r\260\337[\300\013\3101+\004.\250\275a+\0042\260!\260\016\0059\375\270x\001#$\360&\000\005\277\014\210;\220a\220\231\000\r\177\210T\220\026\220q\230\336@\377\r\210]\230!\2308\240\377:\250T\260\021\330\004\r\377\210U\220\047\230\022\2307\377\240\"\240A\330\004\017\210\177w\220e\230?""\250\"\354@\377\004\016\320\016\037\230q\240\353\010\250\225`\021=\000r\230\024\377\230Y\240k\260\024\260V\377\2701\270I\300]\320R\377S\320S_\320_`\320\377`o\320oz\360\000\000\357{\001B\002\004\000B\002H\356\003\001H\002I\n\001I\002J\335\002\362\003i\230q\207%#;o\2701\360(f;M\270\277\000\376\203\200 [\320[\\\320\\h\277\320hi\320ix\243\000y\273\001D\242\001D\002K\251\001K\273\002Q\260\001Q\002R\267\001Rs\002S/{\247\000]\320]\247\000\357j\320jy\320 z\001E.\317!E\002L\326!L\234\007\354 \267S\002T\310/$%\301\2028\320\177\033+\2502\250Q\330\356L\377\027\230\002\230$\230i\240\377{\260$\260f\270A\270\377Y\300m\320ST\320T\376\367@a\320ap\320p{.\372@|\001C\371AC\354G\217`\311J\342 \357\204\003j\350\204\001\206\205\003$^\2701\234\204\037n\320\375T\343 d\320dp\320p\177q\360\000\000r\001A\264\210\001\325A\335\205\005S\302\210\001S\334\047\360\000o\000Z\002[\333/%&\257\205:\337,\250B\250a\334\205\r\030\230\377\022\2304\230y\250\013\260\3774\260v\270Q\270i\300\377}\320TU\320Ua\320\375a\232`q\320q|\360\000\333\000}\273\210\005J\002\336\205\004\360\000\357\000K\002L\342\211\004k\240\021\336\360\213\005%=\320=;\000V\360\3712\325\2028\245\001m\270=\310\001\376\213\207\013\024\320\024%\240Q\240\375h\301\001\022\320\022#\2401\033\240H\266\213\001\021\220\260\022\245\207\003\277\000\377}\320}~\360\000\000\177K\001N\252\213\001N\306\204\005\223df\277\213\001wf\002g\306\213\001g\002r\315\213\001\367r\002}\324\213\001}\002J\003v\320\207\001\003P\003\001P\003Q\n\001wQ\003\\\021\001\\\003g\030\001wg\003r\037\001r\003x&\001\367x\003y-\001y\003z\003\274\364\215\003\222$:\320\025%\377\215\002%_>\270a\360,\333\200\320>;\000\375W\254\210\001\016\210[\230\001\230\376\222\220\002V\2206\230\021\230!D\236\220\001\251\220\005V\341\220\001\235\220\021\213\210\"&\243\007\277b\320bk\320k\371 x\323\320x\335\215\003\241\220\004T\271\220\001T\002\325[\300\220\001[\355%b\316\220\001b\002\355c\331\211\017\047(\255\215:.\250b\375\260\302\205\014\021\220\032\2302\230\377T\240\031\250+\260T\270\377\026\270q\300\t\310\035\320\357VW\320W\251\210\003s\320s\252\263\205\003F\343\221\001F\214\217\005M\361\221\001M\013\002N\340\221\004m\354\223\007\235\003\237\2016\202\210\034\3016j6\226\210\010\303 \357\2139\277$\r\320?\r\036\230a\230x\267\225\001\000\th\251\201&\337\221\004\242\204\013W\312\224\001W\002\374D\335h\330\224\001h\002n\337\224\001n\002\335o\346\224\001o\002p\347+9\220\377A\200\001\340\047?\270q\314\244\220:\230a\r\270\367\221\016\211r^\320\017^_\320_\314\204\003\202\222\003\370\215\004\327\211\004\360\317\204\004\311\207\006\376\227\003\231i?\320?V\377\320Vm\320mn\3604\374\373\2168\257\003Z\300z\320QR\377\330\004\027\320\027(\250\001\373\250\030\343\227\001\030\320\030)\250\237\021\250(\260!\n\013\331\204\024`\377\320`j\320js\320s\037t\360\000\000u\224\216\005\324\227\004\247\226\004E\\\345\227\001\\\213\211\005\237\213\004\223\211\004~\201\230\001w~\002I\251\213\001I\003Z\260\213\001wZ\003`\267\213\001`\003a\276\213\001wa\003l\305\213\001l\003w\314\213\001\377w\003G\004\360\000\000G\273\004M\003\001M\004N\n\001N\367\004O\004\236)\320\013\036\320\377\0362\260!\200\001\340(\275)\245\225:/\250r\260\250""\230\016\033\377\230B\230d\240)\250;\377\260d\270&\300\001\300\031\377\310-\320WX\320Xd\377\320de\320et\320t\370\207\223\003\322\221\004\350\206\006\360\000\000N\002EO\330\231\004n\277\232\001\350\233\003\240\000.\305\2228\370\220\020\322\216\027\251\017/\320YZ\320\377Zf\320fg\320gv\217\360\000\000w\217\233\005\211\233\004\335\214\004P\242\250\233\001P\347\211\005\360\216\004\310\214\022E\363\216\001E\252\357\216\005[\201\217\001[\302Eb\217\217\001b\343\003c\333\216\004\376\004\331\216\006(?\320\343?W\310 \323\224:\257A\034\270]\371\310\341\227\016\245O,\320Vc\320\255c\324\223\001\320q\274\220)h\262P@\377\320@S\320Sk\320k\354\250\221\003\354\226\006\3608\235\202<\035\270m/\310=\320X\324cu\255\222%\217\204\022\277d\320dq\320q\302\222\n]\356\200\237\001]\002^\207\237\001^\002j.\216\237\001j\002k\225\237\001k\246\220\005\312D\335L\313\222\001L\003R\322\222\001R\003\335S\331\222\001S\003^\340\222\001^\003\335i\347\222\001i\003v\356\222\001v\003\335|\365\222\001|\003}\374\222\001}\003\335H\254\206\001H\004S\263\206\001S\004\335^\272\206\001^\004d\301\206\001d\004\235e\310\206\001e\004f\267\206\004\200m)\275*\342\234:0\260\002\260\347\233\016\034\377\230R\230t\2409\250K\377\260t\2706\300\021\300)\376\331!Y\320Ye\320ef\177\320fu\360\000\000v\331\227\005\300\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005aC\021\220\231\036\270\242\007\207\034\320u\263\222\003\200\037\026\377\220f\230J\240a\330\004\377\010\210\007\320\017\037\230q\316\361\244\001q\230\006\333\244\001\347\244\003)A\377\320A[\320[u\320u\347v\3600\315\2338\352!-\270\177\277\310o\320]^\330\315\245\001 \277\240\001\240\030\250\021\000\t\330\007\004\021\220\3542\364\207\006\246\221\004\216\234\004\325\232\004\252\345\222\004c\254\244\001c\314\216\005v\272\244\001v\253\002|\301\244\001|\354\227\005H\360\227\001H\334\226\204\005\340\207\032o\240Q\354\246\001;\220\366\227\246\001*+\314\241:1\260\022\260\376\272\234\016\035\230b\240\004\240I\377\250[\270\004\270F\300!\257\3009\310M\277\211*Q\204\246\003""\320s\026&\274A\224\250\003+C\300\317\2459\377\320\0332\260\"\260M\300\376\373\245\016\036\230r\240\024\240Y\377\250k\270\024\270V\3001\377\300I\310]\320Zg\320\177gh\320ht\320t\220\205\0030\325\244\004\203\213\004\350\221\004\262\207\013_\002\231\251\007\305\251\005{,-\247\244:3\2602\260\323\244\016\377\037\240\002\240$\240i\250\377{\270$\270f\300A\300wY\310m\204\2471\320\026(\255\251\001p\357\252\003\245\000\313\2419\241\004\020\220\016\323\224\005\006\000\010\021\220\216\200!\321\240\004\240\237\004\353\215\004\265\221\013]d\257\252\001d\002m\266\252\001m\325\233\005\235t\304\252\001t\002u\250e\320\002\025\317\220V\2309\244\253\001\357\206\007\026\220\237a\220v\230Q\324\254\001\002\027\013\267\210<\220\333\254\00101\336\247:7\373\260r\341\252\016\320\021$\240B\377\240d\250)\260;\270d\377\300&\310\001\310\031\320R\224\216\254\003\265\235%W\214\205\005,\362\254\001\250\256\0034\3355\210\251:;\2702\254\226\016\320\021\377(\250\002\250$\250i\260\377{\300$\300f\310A\3109Y\246\217\002\320\2433\320\0260\271\233\001\326\257\003\374\333\242\003\302\255\t\n\210+\220Q\220\345a\267\235\0056\214\243\001\357\256\t\030\270\032\317\3003\300a\346\256\030\270\255\"[\320\037PS\320SY\352\222\002\360\220\003\322\242\006\020\353\236\013\314\235\004\324\242\004\317y\220\232\257\010\265\244\001\221\230\002l\300\250\t\227\200A\035\300\346\245\016\026\220\320\260\r\330\312\020\325\240\002\357\225\013Z\002\226\247\004\360\000\253\000[\345\220\005u\202\261\001u\300\213\005B\356\261\244\001B\003C\270\244\001C\003D\215\003\374\260\016>?\242\262\n\200\202:\231\256&k\377\320QT\320TZ\320Z\367[\320[\277\222\003r\320r~\003\320~\360\253\003\200\244\004\327\004\371\243\004\214\246\004\201\235\004\001i\353\253\017\304\242\003\300\203F\276\256(\274\017\310\203?\247\260\010u>\340\204\001\360\212\200L_\270A\307\261\037n\230Ls\320s\214\200J@A\235\267\n\047\014\210K\234\267\t\243\207\0225\203\253\001\356\245\027\335Q\257\200\"V\320V\344\264\003f\320)f\304\236\"\242\222\004i\334\267\001i\313\227\007\313""\263\016\354\316\000\345\206F\320\033\373\250\004\023\320\023\337$\240A\240X\226\265\001\021\320\377\021\"\240!\2408\2501\034\366\223\001\374\250\017\013\320S\254\200.\305\243\022\322\252\004\272\365\234\004O\366\254\001O\003U\375\254\001U;\003V\204\255\001V\003W\320\254\004\311\251\004\373?\230\233\240\001@X\320XY\344\340\203I\203\253\001}\232\204\017\331\037\360\000\000\241t\257\242\014\353\230\013\234\233\004\316Dp\270\273\001pu\002\376\225\004w\306\273\001w\002x\241\253\017h\327\227\001\350\273\003\314\263\004\177\361\273\001\177\002\203\237\004z\306\242\004h\320\242\001h\004i\004\307\244\n\374\235\211<\223\246\002\320=O\320Of\003\320f\231\272\003\277\240\004\226\247\004\262\227\006\263\271\r\307\252\017\377\033\320TW\320W]\320\177]^\320^g\320g\346\244\003t\263\265\004\265\235\004q\312\275\001q\002G\362\260\001wG\003_\371\260\001_\003s\200\261\001ws\003J\260\244\001J\004K\267\244\001wK\004W\276\244\001W\004X\305\244\001wX\004g\314\244\001g\004r\323\244\001wr\004y\332\244\001y\004\177\341\244\001\357\177\004@\005\323\267\001\005A\005\346\367\246\016BC\273\213I\300\244$+\320UwX\320X\276\250\003h\320h\256\233\002\240\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004e\341\277\001e$\313\237\005\217\261\004m\364\244\017\313\003\r\312\210\007\326\257\006\366\201\301\0017\240\322\257\nU\260(\270\247*\300F\340\242\001\250\2102%\247\266\004{\003\320R\203\200K\256\275\010\237@\246\301\013\304\n\321\222\022\0336\310\320\302\024\320\033\330\267$\200\200N\223\270\010P\313\003\231F\360\213\014\215RE\230\20065\251\264\004\007\013\320S\245\203K\305\t\370\211\002\306\267\t\217\222<\372\252\253\001\033\245\217\001\023\220>\240\021\377\240(\250!\330\004\022\220\315.\200\241\005\021\220\250\253\017\304\205\014s\320\001s\304\277\003\335\274\004\257\253\013\246\246\004\314\205\004\352\207\004\363\211\006*\312\276\001\002\262\224\004K\370\271\001K\363\213\005\356\271\004\235]\215\272\001]\003^\360\251\013\203\214\003C\371D\213\224I\323\245$;\320VY\320\035Y\220\310\003i\320i""\212\300\006\354\306\004\306\305\004\360\343\266\004\214\300\004\353\273\004\300\207\006\360\000\000m\207\002n\002\204\246\016\302\014\356\220<\331\266$\033\003\320T\203\200K\224\267\010\237@\233\257\t\272\227<\225\251\004@\323\262#\242\251\017\206\2021\376\265\004\351\231\004\270\246\004A\241\277\001\323A\003\326\253\004\233\204\004c\266\277\001c\003\335d\275\277\001d\003o\304\277\001o\003\325z\313\277\001z\303\215\005P\202\263\001P\004=Q\211\263\001Q\004R\004\211\252\t\364\262\010\377CZ\320Zq\320qrN\253\277\n\016\210k\244\274\t\334\235\0227\302\213\027\336\206\303\001l\270,\300\353\302 {\320\001R\325\204\t\330\253\003\360\315\004\340\275\013\236\307\013\267\270\004\266\277\004Z\257\277\004@\314\301\001@\003\253$B\230\301\013F\263\320\001DE\242\316\001\331\211E\324\274\034U\364\264\004\277+\320UZ\320Z\327\313\003j\037\320jw\320w\261\316\003\203\315\004\366\274\004\300\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\334\270\016YZ\334\326\235\023\351\230\016\025\240a\362\277\tT\260>\256\241\003h\310j\320X\261\222\001\377\320;\376\253\241\014n\320ns\320sy\003\320y\300\321\003\231\320\004\213\320\013\311\261\004\300\311\004\377\273\004\264\376\302\004\301DF\233\305\001F\003\251\223\004H\202\330\237\017Y\350\310\003\217\322\006\211\307\n\254\243\006\300\200IM\017\270\034\300Q\346\272%\344\241\036\213:\275\214\013h\300\307\004\214\273\013\204\242\004M\303\307\001M\003\370\206 \374\330\225\004\213\207\006\360\000\000R\004]\326\253\273\001]\004\333\227\004x\271\273\001x\004\305~\300\273\001~\334\225\007\347\324\t\262\273\010Z[\374\243\203Z\307\2425o\320ot\320t\007z\320z\304\322\003\355\323\004\212\325\006\350\323\002\263\316\013\360\371\300\004\370\307\004\355\211\004\361f\360\000\000H\007\003I\003\352\322\016\374\000\270\246\022\270\205D\267\324\006\004\246\236\t\261\236\n\220\272\324\017\373\244\014\313\200=\376\205\004\325\270\004\232\344dX\265\314\001X\003\377\213\004\370\213\004u\312\312\314\001u\333\270\005w\240+\307\236\003Zr\237\360\000\000s\001\243""\330\004\247\264\004da\002\311\265\n\350\205M\366\322\007\366\317\001\330\004\320\305\t(\200\201I\212\323\004\317\314\004{\266\333\001{\364\265\005\356\265\004\320\274\302\004\260+\223\273\004\275\216\004p\217\317\001p\003\335{\226\317\001{\003F\306\302\001F\004\325R\315\302\001R\207\235\005Y\333\302\001Y\004\023Z\004\375\327\n\245\306\003Z\336\303\003\360\315\004\323\233\004\236\312\237\004@\003\3606\274\335\010\222\201S_\277\270O\310?\320Z\356\332\001\330B\317\341\005X\303\267\002\335\341\003\000\t\023\002\021\213\2045\340\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\360\000\000\227^\003m\361\321\001m\312\321\005\203\276\004B.\257\305\001B\004C\266\305\001C\253\305\005\342$\252\231\211\004c\322\305\001c\220\276\005o\340\305\001o\253\004z\347\305\001z\246\211\005D\211\240\001D{\005E\220\240\001E\005F\005\236\333\no7\220\047\230\306\341\001[\\\324\210\\\356\337\234\047U\320U\310\337\003e\320e\377p\320pu\320u{\320\341{\213\326\003\214\316\004\321\273\013\344\330\006\360\000\000Ca\002\332\244\004\343\204\004\220\257\004\334\204\013J\361\221\017\343\\]\323\212\\\300\322$\312\250\014q\320q?v\320v|\320|\352\322\003\354\332\004\000\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004\210\261\004\236\312\004\322\326\004\tK\303\250\013\265\345\001\\\274\307\003\236\342\004\226\327\004\256\224\007\3712\304\205Z\376\324\001\177\270o\310_\003\320\\\257\323\001\350\277\031\351\252\036\2333\333\326\004\314\244\004\000\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\264\230\013\207\206\004\221\305\004\335I\313\314\001I\004T\322\314\001T\004\325_\331\314\001_\214\247\005m\347\314\001m\004\035n\356\314\001n\004o\335\314\004\212\326\004\263\300\003\347]^\360\306\215[\363\324\004\020\320\020\361!\313\240\005\310\255\013\214\251\036r\320rw\303\320w\277\333\006\350\347\004\247\331\013\260\326\006\360\000C\000c\271\333\014\201\216 \357\210\004\347\251\004t\365\333\001Ot\003u\003\261\321\n\321\274\003]\336\314\003|\323\275\007\334\200_\016\270n\310A\262""\253.\340\2403\335\333\004\200\277\004\274\321\013\377\214\007\000\000@\241\003\375\257\004\312\321\004\303\321\004\360\335\004h\226\336\001h\227\003i\003\316\323\016]\216\343\003\302\223\007.|\367\214Z\323\331\001\017\270\177\310a\225\307\031\200\252\2034\211\327\004\233\340\004\350\237\013\330\272\013\314\314\004\230\245\004e.\263\340\001e\003k\272\340\001k\355\323\014\302\215\0040\310\256\004\356\237\023\313\332\004\322\307\003^_\343\226\\\204\2563?s\320sx\320x\270\273\006\364\356\004x\272\340\004\302\331\004\266\224\007\000\000d\002\240\326\013`\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010_`\342\230\\~\263\2473t\320ty\320y\334\251\n\200\225\346\004\276\333\004\263\352\004\347\305\004\342\212\013\272\264\004\245\227\022N\001\003\214\317\016\200 \346\204[\374\245K\327\200A\352\270\022\276\332\013t\225\323\004\213\224\004D\317\332\001D\004O\326\332\001wO\004Z\335\332\001Z\004j\344\332\001wj\004p\353\332\001p\004q\362\332\001Wq\004r\321\246\025a\213\242\002,\245\226Z\370\243\315\026\360\365\006\265\315\017[\320X[\320\375[\212\353\003k\320kv\320v\000\371\361\003\365\365\004\377\361\004\251\363\004\243\357\004\307\351\013\273\347\004\340\217\013\005N\330\351\001N\332\273\005\336\331\004\316\351\013\260\251\004\316\351\004\335\177\211\352\001\177\003@\271\335\001@\0043A\004\232\316\013\374\347\003wx\316\245\036\265\264\014\307\025\240g\375\363\001\234\310\017\362\245\005e\320\017eo\320o\330\323\001\252\370\023\265\240K\236\334\004\000\202\352\004\357\337\004\333\330\004\245\334\013\254\315\004\305\251\013\243\354\004\254\334\004\374\245\334\004\243\215\006\360\000\000i\003j\226\224\241\017|}\263\372\n\013\301\372\005\210\246\027\026\363\240u\260\372\001\324\312\r4\300x\310\377z\320Y\\\320\\d\320%d\337\247\003t\2365\303\322\001A\312\325\001\251\327\010\356\350r\\\320\\\241\364\003l\320l\007w\320w\363\372\003\272\361\004\373\253\013\270\354\004\274\351\022@\212\333\004\270\354\013\263\250\013\337\300\004\212\333\004\333\217\004n\377\356\001\355n\272\256""\005p\003\215\323\016\360\004\000\357A\002B\002\317\200p6\260b\373\270\001\264+\320\021#\2402\377\240T\250\031\260+\270T\377\300\026\300q\310\t\320Q?\\\320\\`\320`\232\341\003\271\371\001\003\320{\211\361\003\322\254\013\365\311\013\267\365\004\364\274\004\235\361\004\000\375\347\004\226\361\004\360\344\004\302\231\006\217\363\001\366\344\005\237\341\004\360\344\004\210\235\361\004\323\224\006\376\377\004+\320\304\001\236\372\002\301 C;\002D\320\200q8\270\002\325\372\001\256\334\t\377\320\021%\240R\240t\250\3779\260K\270t\3006\310\377\021\310)\320S^\320^\007b\320b\317\376\003\354\357\006\277\366\004\370\367\004\376\377\004\000\243\347\013\266\314\022\341\301\004\340\224\013\263\246\013\336\363\004\271\263\004\376d,\215\227\006\244\350\001\003v\204\204\005-\276\375\001\300%wD\002E\230\203q9\270\022\206\371\001\376\272+&\240b\250\004\250I\357\260[\300\004\346\300\001\3109\320\177T_\320_c\320c\352\377\003\000\326\357\006\344\351\004\214\364\004\227\361\004\373\373\004\327\342\004\206\355\013\220\312\004\300\246\366\004\310\263\013\346\255\004\330\213\004\204\225\013\355\250\031\320\026\271.\232\371\001\210\204\005E\002F\340\205q:\367\270\"\270\207\211\014\320\021\047\240\377r\250\024\250Y\260k\300\377\024\300V\3101\310I\320\377U`\320`d\320dj\037\320jk\320k\246\352\006\276\304\004\345\261\007\017\000\000J\002\276\304\013\303\314\022\333\366\004\216\266\006\037\360\000\000B\003\231\216\004\202\313\004\237\345\004\215f\215\371\001f\003\376\250\004\246\345\004\317\354\004x\262\224\211\005/\302\366\001\320\206\005z\001\314\256\007(\000\277\250\034\311\215O\224\3135\330\243\023\231\260\004\342\270\004\223\265\013\247\362\004\240\204\326\004\366\325\013\306\315\004\300\373\004\321\311\004j\330\373\001j\013\003q\337\373\001q\222\357\005\276\373\006\272\373\003\257\370\007\177\360\006\000\005\017\320\016\361\363\001\377q\330\004\007\200x\210s\377\220!\330\010\t\330\004\t\377\210\021\330\004\022\320\022\047\357\240q\250\004\213\375\001\025\220Qv\307\204\002\200\001\036\024\017""\210q0\004\327\020\320\020\316\375\001a\267\376\004\360\n\367\000\005\0269\002\320.@\300\337\001\300\027\310\001\313\306\001\020\220\375\001\371\345\001\005\210V\2201\220\337E\230\021\330\010\220\253\001\001\230\377\026\230q\240\005\240W\250\371A\244\320\001q\002-\320->\270\367a\270q@\r/\320/B\277\300!\3001\300A\336\371\001Q\376?\014\016\210g\220Q\220f\377\230A\230U\240\047\250\021\362\357\303\001\025{\010\324\377\005\360\014\000\005y\020\267\001\215\000\220\031\230!\226\337\003x\t\001\370\377\003\234\347\002\210q\320\020\306\344\002\377\340\004\022\220)\2301\230\371A\020\004\276\003\016\220a\330\010\367\020\220\013\024\002\010\013\2104\377\210z\230\021\230\047\240\021\377\330\014\024\220A\330\010\014\377\210G\2201\320\024$\240\377L\260\001\340\004\r\210YW\220a\220\353\"q\025\004\220K\002\367\t\220\021!\010G\2506\260\367\021\260!\217%\035\240g\250\317V\2601\260L\000\244\003&\240\373\001\240\262 \013\2105\220\t\376\341\373\002\014\020\220\002\220%\220\377s\230%\230q\240\001\240\375\024\352\213\0027\260\"\260G\270\3751\343\345\0021\340\004\016\210i\374\225\325\003\330@,\250D\260\t\270\377\021\320:L\310C\310q\372\304\n\n\202a\013\2107\220#\377\220Z\230t\2401\330\014|\374@\244\005I\230R\230q\303\001\377W\220A\220T\230\025\230\247a\230q\337\374\001\013\001Q\220%\003\357\2202\220U\313 1\330\004\177\024\220D\230\005\230Q\323\351\003\374\316\376\002\360!\022\220\037\240\001\320\377!3\2601\3204D\300YA\333\271\001\336b(\250\240 \005\313!V\322\001$\230\327 \021\223B4\237\352\001\377\030\230\t\240\021\240$\240\376\355 \032\230+\240Q\240d\376\213\366\002\010\026\220c\230\021\230\356)\002\032\230#j\000d\240!\262\315\352\001s\316@6\000\200\001n\002\320\377\021*\250!\320+=\270\377Q\320>N\310e\320S\357T\320TU\222\346\0042\260!\237\340\004\013\2109\317\002\230b4\377\210q\220\003\2201\220G}\230\365\337\002\007\200w\210c\236A\337\017\210t\2208\201`H\240\277A\330\t\021\220\023\336A\017\371\210\217 \261\002\001\330\010\030\230\377\013\2401\240D\250\010\260\375\001p\006+\2501\320,>\177""\270a\320?O\310us\000\307\320UV\213\347\004\377\000b\024H\230sF\240\222\000s\003\025\220d\326@?x\240x\250y\270a\000\201\00171\220C\344\330\001\340\004q\005\304\311\001\347A\230T\331\353\001\351\006-\250Q~\362\205\002\320AQ\320QV\202\376\002\335X\205\350\0045\260Q\334\024J\230\365f\203\366\001\024\\\002\004\320\034.\377\250d\260&\270\002\270\047\317\300\024\300Qf\007\203H\020\220\255\004\346\204\001\020\220\255F\031\315\206\003\021\377\200\001\360\020\000\005\010\200\177u\210B\210a\330\010\242\207\002\377\013\2101\210A\330\014\020\277\220\005\220_\240F\220A<\366\206\353\001\330\014\330!2\220Q\200\035\001\200\231n\230?\250\210\365\016\223\2764\223\367\004\240\245\374\004\257\343\004\344\372\004\355\224\013\274\276\031T\365\372\001T\340\361\372\005\301\234\006\350\341\r\247\233p\336\347\002\016\320\016\375\037\215\362\007\030\230\022\2304\230\037y\250\013\2604\270\323\007\306\263\037\200\375\004\260\236\355\022\232\342\013\302\352\006\311\375\001\002D\221\375\001D \303\252\005\301\333\004\267\316\023\236\322\007\322\277^1\330\340.\233\300\023\000\344\362\004\252\300\013\370\263\004\332\354\004\323\354\004\327\335\004\355\273\006\271\337\r\000\307\301\\\326\224\002\373K\276\2604\315\375\004\356\260\013\233\331\004\313\335\004L\304\335\004\231\233\013\177\002\361\332\r\367\250^\001\337\344\r\000\344\316\036\274\251\027\331\353\004\317\251\013\232\350\004\355\306\004\225\311\004\266\260\013\001A\276\251\016\344\351\025\207\244\016\366\312\027\273\334\001\365\243\025\243\356\002@\345\206\013\323\200!\273\241\030\323\246\004\246\3166\237\370\0041\223\213\025\354\243\357\003\206\357+\320\033\264\2001j\320j \230\326\006\230\372\004\354\307\004\260\250\004\345\307\013a\202\326\016\264\244p\000\240\241\002\265\212\013\276\307\022\234\277\014\314\316\020\367\376\004\203\374\004\273\357\013\320\231\257\013\201\343\004\245\302\013\331\324\004S\233\374\001S\003\005Y\242\374\001Y\352\214\007\263\210\032\353\246c\362\233\002\366\377\n\034\227\334\022\243\332\tt\320t\305\272\020\254""\376\004\313\232\031\320\221\353\004\373\326\013\264\351\004\347\316\004W\304\376\001W\003\206\316\304\013_\003\321\263\r\207\251p\373\206%\211\325\tu\003\320u\334\265\020\321\334\004\251\205\022\255\355\013\330\351\013\262\323\004\rQ\246\364\001Q\003\246\314\004\361\251\004\357\277\006\200\335\r\356\261\253p1\260\021\223\254\014\035\230b\377\240\004\240I\250[\270\004>\245\232\0029\310K\320W\220\261\014\202\266\024(\272\327\004\273\366\004\235\306\013j\221\375\001j\333\347\005\202\341\013\320\210\352\004\213\356\004\362\205\004\220\302\013a\217\254\005&\240\222\303\236\006&\300\313\010\352\255e!\337\255n\207\352\004x\006\321\377\001x\002\230\330\004\307\316\004\336\313\004\271\277\004\302\304\004r\300\277\004b\266\256\020\300\200o3\2601\363\260\014\377\037\240\002\240$\240i\250\377{\270$\270f\300A\300\377Y\310k\320Y]\320]\377c\320cd\320dm\320\017mx\320x\344\265\030\253\277\004\261\263\004\205\304\013\300\342\343\013\373\260\013\362\320\004\212\206\004\206\266\004\242&\360\000\357\000b\003c\363\260\005(\250\001\354\250\243\005\362\202o4\260\215\251\016!\240\022\377\2404\240y\260\013\2704\377\270v\300Q\300i\310{\377\320Z^\320^d\320d\377e\320en\320ny\320\001y\256\315\003\327\356\013\322\375\004\260\340\004\222\350\004\245\277\013\321\336\013\200\266\226\013\274\313\004\256\311\004\231\350\004\215\363\004\365\342\006\235\270\004)\273\250\021\271\200w5\260Q\225\263\r\"\377\240\"\240D\250\t\260\033\377\270D\300\006\300a\300y\377\320P[\320[_\320_\377e\320ef\320fo\320\017oz\320z\343\315\003\273\350\013\311\365\004\337\272\004\370\311\365\004\326\277\013\203\341\006\360\000\000o\002P\331\325\013\315\352\004\275\217\004\226\345\022e\332\265\005*\367\353\001\034\230\263\003\331\207o6\260a\346\264p\213\370\004\314\366\006\037\360\000\000}\002\321\347\004\336\237\004\226\270\004\314\321\347\004\342\306\004f\003\300\265\017\215\212o7\260\375q\375\267\r$\240B\240d\250\377)\260;\270d\300&\310\377\001\310\031\320R]\320]\377a\320ag\320gh\320\177hq\320q|\320|\250\357\003\000\337\345""\004\212\370\004\337\370\004\303\272\004\355\345\004\307\277\013\270\372\004\255\370\004\340\206\270\013\352\341\004\267\374\004\302\370\004\244&\360\000\000Gf\003g\302\272\005\237\241\002\360\202u8\257\272\017\000\226\267d\242\344\004\276\272\004\314\374\004\215\302\004\350\376\004\364\322\004\355\262\004\260\360\315\006\361\301\004\353\267\010\371\216o9\270\212\222\014\320\001\021\206\267d\312\354\004\225\320\022\354\226\004\216\320\031\331\267\n\261\221o\301:\333\274\017\366\266d\223\304\031\247\344\004\223\304\031\320\026\364\313\267\010\351\223o;\313\274\017(\250\002\250\377$\250i\260{\300$\300\377f\310A\310Y\320Va\337\320ae\320e\266\332\001\320l\000\243\361\003\375\370\004\320\377\004\233\316\004\260\361\004\207\367\013\211\325\004\373\226\013\200\276\251\013\222\272\013\266\231\004\202\236\004\351\363\004\245\344\004\325\267\004k\370\246\304\005\220\243\002\272\215\017\r\210T\220\026\344\340\263\003\364\310\t\021\323\357\026\325\255 Q\300l\377\320RS\320Sb\320bwm\320m\336\352\004\320{|\361\254\032\270[+\361\353\001\237\252 a\300|\263\263\002c\337\320cn\320n\265\341\004\320|q}\336\251\032Z-\275\255\"q\310\014\304\263\002\277d\320do\320o\300\340\004\320\003}~\354\372\003\341\254\024\344\200-\201\303\002\336\256\013\222\337\017\377\001\310\034\320UV\320V\034\312\343\003\315\334\004\320~\177\336\273\016\262\233\t\356\201-\356\310\253\"\021\310,\336\264\002f\320f\227q\320q\277\326\tA\214\253\033\374\202-2\371\260\235\263\016\322\320\017Q\310l\320Z\377[\320[j\320ju\320\ru\232\227\021E\002\350\312\017\351\2009\366\232\002\215\262\013~\352\232\017a\310|\320[\\\210\343\002\027v\320v\375\225\021F\217\005\377\231\024\252\205-\354\333\231\002\245\263\n\320\021\317\231\017q\320P?\\\320\\]\320]\215\316\003\273\313\021\303G\002\336\230\033d2\231\312\013z\033t\320\331tm(\352\373\006\r\210\224\323\n7\240}!\213\372\tU\260(\270*\310\310\001t\362\322\027\301\263\030%\350\265\007X\320X\302\256\001\363\320_\315\313\003\333\323\001\360\000\000w1\001\346\373\004\204\372\004\325\303""\022`\002\254\263\016\315\305\t\334\262\014\206\377\0226\310\021\214\2002$\260\377f\270A\270Y\300k\320oQW\320W\223\374\001\320^\305\226\003\207t\320t\225\377\003\256\375\004\227\344\004\233\267\022_\300\254\022\255\376E\224\255\032\367((\226\230\272\0325\270\377\006\270a\270y\310\013\320\201S\200\203@\350\271\010\233\371\t\337\215-\354\312\002\333\273\t\022\177\320\022#\2401\240H\240\327\001\376\347\300\001B\230d\240)\250;\377\260d\270&\300\001\300\031\377\310!\310<\320WX\320\177Xg\320gr\320r\271\340\r\030\304\333\004\367\344\004\345\316\022j\002\234\342\n\246\304\003\207\2009\376\344\252\003\320\021\"\240!\2408\256\224\324\001\024\320\024\227\311\001h\220\317\001\021\375\220\345\252\017A\310\\\320YZ\000\304\365\002\323\207\024\373\322\013\254\320\004\300\374\004\264\234\006\276\334\004\261\252\004\013=\230\204\304\0012\313\251l\313\301\003\223\355\t\237\355\t\277\017\320\017 \240\001\246\304\001\330y\004\251\355\013\340\301\022T\320TZ\306\215\002\376\347\220\003r\320rx\320xy\037\360\000\000z\001\243\337\004\275\243\004\263\364\004\000\252\337\004\210\264\004\244\346\013\325\236\013\376\361\004\253\346\004\340\301\022\230\320\004\352\315\315\004z\201\375\001z\247\337\007\360\000\000wA\004L\256\372\001L\004W\265\372\001uW\245\360\005e\303\372\001e\004f\312\372\001uf\241\342\005|\330\372\001|\004F\260\367\001wF\005L\267\367\001L\005M\276\367\001\357M\005N\005\321\302\n<\220|\337\240;\250a\200\275\313\002A\330?\014\023\2206\230\021\000\004\003\010\3477\230!\030\001\000\0048\2301\334\003\010\025\0045\230\0014\010;\230\035aI\001:\230QP\001*\004X\000\374e\001\234\313\002\330\014\r\33046\377\260d\270!\2705\300\001n|\001\017\210q\000\004\220\007\275\313\001F\016\003t\220V\000\003\005\217\311\001A&\003\277u\220A\220S\2302\004u\277\220B\220d\230!@\003w\377\220a\220t\2308\2401\366P\002\320\017\244\317\001d\250&\260\347\001\260\021\343\001\277\307\004#\2401\372\261\315\001N\306\314\001\330\014\033\2305\377\240\014\250A\250[\270\001\363\270\021\237\307\001\331\315\001.\250\001""\330\377\020\024\220H\230A\330\024\367,\250G\225\315\001\340\020(\250\257\007\250q\260\231\311\002qB\n4\377\320\047B\300!\360\006\000\375\t\347\316\001\010\014\320\014\034\230\375A\321\314\001U\230-\240q\250\376\232 \017\320\017\037\230w\240\337e\2501\330\024\213\321\001x\240\277q\330\020\031\230\026\021\000g\377\250Q\250a\330\021!\240\337\027\250\005\250Q\020\014y\2507\002\250\047\243\316\002\014\020\225#\353\316\001\371M\222\315\001\371\316\001D\320\030.\250\317a\250q\330\026\005\200\001\023\220\377$\220l\240\"\240A\330\177\010\013\210:\220Q\220\240\304\001\376\333@5\230\010\240\005\240Q\230\200\311\003\233@\200\312\002\020\027\256 \355\317\001\014\367\021\220\030\336\314\003\230v\240Q\377\340\014\020\220\003\220:\230\367Y\240a\260\341\002\020\025\220X\357\230Q\230j\372\005\r\320\r\367\036\230a\314%H\230K\240\367q\250\013\271\317\003\013\2106\220\347\027\320\030\275\252\001\232\320\002\r\023\220\2477\320\032\377\254\001\252\320\001\340\215\004g>\233`\013\022\220!\330\033\001\336a\376\364\320\002\330\020\021\330\024 \240\377\005\240[\260\004\260A\260\367V\2701\315\312\002\200A\330*\377A\320AX\320XY\330o\010!\240\035\356\002\010\035\336`\357\010\"\240,\010\003\032\230,\376\251\000x\250q\330\010\036\230\375o\321 h\260a\330\010\034\377\230G\2405\320(<\270\367A\270[\313\230\002\330\010\"\320\377\"3\2601\260H\270A\256\255A*\250\021\016\0028\372A\270\337(\300)\3106\242\217\002Y\320\357Ya\320a\267\260\001\360\000\000\003y\001\357\337\004\332\371\004\330\332\013\314\325\004\316\262\004\352\360\004\330\272\372\004\271\374\004\312\307\004E\003\217A8\220\3773\220a\330\014\037\230q\377\320 :\270)\300<\310\377y\320XZ\320Za\320\375a\255\261\001\330\010%\240^\260\3778\2701\270A\330\010\016\277\210k\230\027\240\001\003\003\021\376\333\314\001x\220|\2402\240X\177\250Q\200A\330+,\333\2001O\250\017\260q\340\316\001\373\013%\254a\376\225$A\260X\270Y\300f\377\310F\320RT\320T\\\037\320\\h\320h\243\221\006\267\344\013\312\366\004\330\273\351\004\346\250\013\327\327\004i\002\346\r5\260""\367Y\270l\235\340\001U\320U\\\373\320\\\225\303\002\010 \240\t\250\231\030\215\324\003\242\200Q\320(\336B\360M&\353\240Q\216b4\354`Q\260h\377\270i\300v\310V\320S\377U\320U]\320]i\320\001i\333\224\006\253\353\013\343\375\004\211\300\004\242\341\013\273\273\006\335M\3376\260i\270|\314\337\001V\320\377V]\320]_\320_`\316\313\204\001\032\2508\363\325\003\241\200S9\270\327\021\270!\347\204\r\047\337\324\001\"\320\377\"5\260Q\260a\260x\377\270y\310\006\310f\320T?V\320V^\320^\346\303\t\360\263\013\340\231\370\004\245\350\004\321\340\013\205\273\006\324\204\r7\260y\373\300\014\373\336\001W\320W^\320\377^`\320`a\330\010\"\317\240+\250Xy\001\216\204S\320(\347:\270!\272\207\001\340\206\013(\240q\372\374\206\0026\362\000q\270\010\300\t\377\310\026\310v\320UW\320\377W_\320_k\320kw\007\320wx\353\206\002\263\263\013\207\340\004\322\354\004\200\340\013\372\234\352\004l\324\204\0168\270\t\300\034~\335\245\001X\320X_\320_\207\360\001\177\330\010#\240<\250x\371\205\003\372\217\204S;\262\207\003!\320!2\260\315!\302\207\001\330\010\002\007\236\214\001)\250\365\001\377\210\0027\201\207\001\270\030\300\031\377\310&\320PV\320VX\377\320X`\320`l\320l\000\361\220\006\334\351\013\373\305\004\344\267\013\314\344\004\240\354\004\345\372\004\334\351\004\270\276\321\004\343\351\004\242\370\007\010\013\210\366\210\t9\377\270\031\300,\310i\320W\277Y\320Y`\320`\261\355\001\330?\010$\240M\260\030\262\204\003\354\210\023\1771\240L\260\002\260(\271\211\002\177r\320QY\320YZ\327\2106\203\320(\256$\214\213\013\343\200C\224\251\013\305\274\006\330\310\301\200B\312\212;\221\215\003Q\341\214.\355\366\002\000\000\003{\001\360\264\013\211\330\004\332\343\004\265\372\004\272\360\004\212\274\006\376\374\213\201\320(=\270Q\270a\346\372\216\r+\250\240\211\003\253\211\002\2708\300\3659\373\214\001X\225\216\002b\320bn\037\320nz\320z\276\367\003\255\355\013\267\376\004\340\365\357\004\275\367\004\333\302\004\316\273\006\350\216\r;\2709\377\300L\320PY\320Y[\337\320[b\320b\363\276\001\330\010\037&\240o\260X\226\003\255""\214S\362\004\340\335\217\001\371\220\006\271\200<\347\366\004\275\2008\340\010$\357\240F\250*\367\343\001\014\210E\277\220\025\220a\220z\330\344\001\033\303\2301\236\340\001\264\200`\371\346\003\213\223\014,\250y1\250\223\002\304\213\002\270H\300I\224\217\001\376\253Cc\320co\320o{\003\320{\234\302\003\365\356\013\347\333\004\244\311\004\340\333\004\321\331\004\374\300\235\006\370\222\r<\270I\300\\\320\377QZ\320Z\\\320\\c\373\320c\317\300\001\330\010\047\320\047\1777\260x\270q\300\001\316\214U\232\255\351\001\021\204\225\r.\250\216\221\003\262\225\001Q\357\270h\300i\240\215\001[\320[\377]\320]e\320eq\320\017q}\320}\207\366\003\216\263\013\300\375\004\357\360\0048\256\237\013\225\322\006\362\224\r>\270i\357\260\001\201\223\003\367e\320e\341\275\001\330\010)\320\317);\2708\367\351\002\257\224R\320(\016\363\004$\240N\240\215\005\002\006\305\232\001\305\200<\000\203\370\004\331\355\004\327\303\004\343\333\004\317\335\004\375\374\004\276\310\004\253\360\004\366\326\317\004R\003\203\201!\340\010#\240\3476\250\031\301\352\001\254\205\n\032\230!\370\317\347\002\000\034\305=\320\027(\250\001\377\250\034\260R\260x\270|\304\370\244\001\216\231\003b\256\2158\204\352\003\364\231\0142\260\314\375\231\003\207\204\002\300(\265\370\001\351\324\003a\320}a\376\225\001\360\000\000v\001\361\225\013\200\313\306\004\367\372\004\334\377\013\274\340\004\230\363\004\344\324\006\352\231\rBs\300)\314\246\001\355\217\003i\320i\375\270\001\377\330\010-\320-C\3008w\3101\310\245\231T\320(H\232\360\002f\367\233\0146\260\200\230\003\245\354\002\300h\213\221\001~\271\315\003e\320em\320m\204\244\003\000\337\303\013\261\342\013\253\372\004\213\322\004\244\372\004\314\340\004\265\377\006\355\233\r\367F\300i\247\262\001d\320df\377\320fm\320mo\320o\377p\330\0101\3201K\310\2118\266\354\004\341\233\035>\304\215\001\340\235/\376\233\002\014s\300A\376\235\r\342\233 |\320|\336\312\003P\243\367\013\330\364\004\263\374\004\343\205\022q\270\233M@\224\212\001\034\333\2371\351\237\001\034\300Q\331\2330\262\200I""\320\233<\034\305\2006\237\230\001L\310\001\372\241\r\365\227!\360\311\003\000\231\300\004\334\342\004\213\321\004\201\355\004\215\337\004\217\232\004\215\337\004\244\373\004;t\002\250\225LB\300!\310\2416\310\2043\374\256\215I\307\241\363\310\002\377\320HY\320Yo\360\000\303\000p\313\320\005\347\373\004\244\333\004\267\214\004B\003\376\361\310+i\320in\320nt\373\320t\225\272\001\360\000\000\177\001\200\234\277\004\305\374\004\204\352\004\224\342\004\276\226\004\305\304\004\273\266\004O\326\340\363\001O\004\301\363\022r\374\363\001r\004\335@\322\363\001@\005I\331\363\001I\005\335P\340\363\001P\005V\347\363\001V\005=X\356\363\001X\005Y\005\223\340E\222\244\005\20345\252\347\001\370\217\004\360\257\010\373\210(\323\352$w\270\371\350\007\333\212g\335\3525W\250J\301\204\0025\027J\310!\225\250B\036\366\226\017\200\355\032\303\250\026L\203\341\013\321\232\20778\356\252\021\315\224\nW\220\273\002\000\260\363 \221\3610\320\233\017\336\353\004\306\306\004\363\375\004\333\373\004\334\355\004|\270\337\004\270\320\006\360\000\000t\002\306\262\006\037\360\000\000@\003\243\303\013\240\314\004\261\303\004z\324\373\004g\322\226H5\260\t\270\311\371\001\000\202\201I""\350\3611\311\255\017\235\366\004\220\323\004\235\366\004\260\354\004\264\356\004\200\213\364\004\367\262\004\244\366\004\234\376\004\261\227\004\202\336\004\260\253\004_\326\212\376\001_\003\357\316\004g\230\376\001g\003\001h\263\255H\362\200Z\377\255\t\341\313\013\253\206,\207\201Q\270\310 ]K\315\321\001K\004Q\324\321\001Q\311\321\005\373T\004\224\365Ay\240\001\240\034\377\250R\250v\260U\270)\217\300?\320R\224\364\003\253\262\003\350\370\001\200\363A\330\225\204K\225\2302l\320lr\037\320rt\320t\344\347\003\353\355\004\354\330\004@\220\364\004\362\355\004\223\362\004\367\367\004\357\340\006\272\341\001\002\315\217\006\037\360\000\000B\003\275\246\004\326\306\004\222\266\013\035h\325\324\001h\003i\243\221H\334\206S\256\366/\000\320\263\017\302\356\004\307\343\004\333\364\004\311\356\004\317\376\004\317\370\004\307\304\004\200\313\341\004\317\376\004\316\321\004\255\346\004\260\223\004\342\263\004\244\207\004i\216\244\327\001i\003j\212\244H\253\211S\261\367\004$\007\320$5\273\273\005\257\266\013\232\367\033\356\223\017\216\355\004\000\234\346\004\226\363\004\225\355\004\245\361\004\264\371\004\375\226\013\243\324\004\267\367\004h\341\253\004\201\257\013\362\320\031I\200\332\001I\004\306\224\004:\263\207\004R\326\323J&\270\005\276\312\003\322\206^\000\255\266B\241\345\004\234\321\004\247\364\004\250\345\004\236\360\004\220\370\004\243\312\006\322\377\374\001\002\271\372\004\362\273\004S\355\334\001S\003\232\215\232\004c\373\334\001c\003\327\204\004\206\335\004l\000\312\266H\220\217S\331\266F\361\360\004\344\326\004\353\362\004\370\360\004\204\352\004\240\354\370\004\273\252\013\277\276\004\332\337\004\342\303\004]\310\337\001]m\003\326\326\022m\003\361\366FV\250\370\200Zh\370\266W\231\201Q\221\212\004o\303\342\001o\003\355\334\004\252\326\315\004D\303\342\001D\356\217\005W\321\342\001W\273\004Y\330\342\001Y\004c\337\342\001c\273\004l\346\342\001l\004x\355\342\001xk\004~\364\342\001~\226\235\005A\005\246\267L\177%\270y\310\017\320W\220\367\003\000\254\274\003\213\357""\003\223\301\013\373\354\004\371\375\004\356\241\004\350\377\006\313\220\001\177M\320Mb\320bc\267\230L\037\014\300K\310q\277\340%\304\356\032\337\230@\370\312\312\004\332\205\013\314\365\006\360\000\000R\003(\211\310\004\223\216\004\303\321\022G\305\346\001G\313\335\005\373\242\004T\364D\231\241\004o\350\346\001o\372ED\225\241\001wD\005J\234\241\001J\005L\243\241\001\357L\005M\005\317\261Ax\230q\377\240\014\250B\250f\260E\377\270\031\300/\320Q]\320/]_\320_\252\270\003s\214\233\001\226\317\005\320\376\334\004\222\363\004\212\361\004\216\365\013g\211\274\0017N\037\320Ne\320e\274\336\001\307\234G\275\232\003\375\034\301\374\001]\320]^\330\010\017!\320!2\322\371\005\216\227k\322\371\004\200\307\004\370\307\246\004\312\277\004\210\235\006\360\000\000g\003\232\316\325\004~\311\352\001~\003\361\206\004\311\341\004L\256\311\352\001L\004V\320\352\001V\267\352\005k\256\336\352\001k\004q\345\352\001q\276\352\005t\376\276\227P9\310L\320XZ\320\377Z`\320`e\320en\027\320no\214\230\001Q\346\351\002\265\277\017\216\2403\373\320(\210\335\020\330\010%\240^?\2601\260H\270A\203\375\001\210\335\033\377m\320mr\320rx\320\001x\254\275\003\372\344\004\221\362\004\226\350\004\216\377\004\230\362\004\205\253\004x\215\342\004\302\352\004\314\314\006\360\000\000H\207\273\005Z\377\321\004b\345\355\001b\003\351\355\004r\363\355\001\227r\003x\372\355\001x\372\337\005\252KT\352\201\356\001T\225\350\005\\\217\356\001\\\004]\375\004\302\335B\320\027\047\240q\250\377\014\260B\260f\270E\300\037\031\310*\320T\272\373\003\267\314\003\372\342\001\177\200A\3308P\320P\362\312\001\374\221\205I\260\365\001M\310\035\320VW\200\330\252=\356\225\047\264\336\004\363\317\004\351\302\006\250\276\002\214\256\006\360\207\000\000_\377\360\005\221\350\004\255\353\004\231\306\004E\236\221\361\001E\004F\004\316\252G\373\243\0059GR\320R\261\376\003\311\204G\231\370\001N\204\346\001\001Y\351\345\031\263\230W\246\376\004\356\363\013\204\330\004\275\320\004\214\205\004\325p\377\363\001p\273\325\005A\370\363\001A\004\320\263""\214\004\377\230\004\374\363\004\376\204\004d\233\364\001d\004Uj\242\364\001j\273\220\005m\310\230Pk\226\214\014?\320st\200A\330\247D\224\367\027\370\364\330\006\227\2105\375\323\001>\310\036\320W\017e\320esr\000\253\351\031\335\323,\200\237\047\340\352\344\004\325\226\013\245K\334\361\004\261\351\006\360\000\000\243}\003\345\244\004\270\210\004\261\210\004b\316\367\001bu\004\263Dn\334\367\001n\004w\343\367\001ww\004\177\352\367\001\177\004E\220\262\001wE\005G\227\262\001G\005H\356\261\016\276\215\324;u\270I\300[\350\314\010i?\320ir\320rs\307E\244\313\001\361\001\210\376\004\223\271\006\205\217M\036\300~\320\377Uc\320cq\320qr\377\330\010\037\320\0370\260\001\017\260\030\270\021\000\t\014\t\220\373\001\207\250Vh\320\350\004\221\240\013\334\334\004n\221\373\001n\003\316\227\004\000\231\355\004\253\346\004\221\240\004\273\365\004\317\217\004\227\214\004\256\320\004\225\373\004\252\326\217\004u\311\373\001u\224\373\005}\327\373\001}\351\004\337D\363\265\004T\213\266\001T\005Z\356\222\266\001Z\005\\\231\266\001\\\005]\375\005\315\250O7\310,\320VX\377\320X^\320^c\320c?l\320ls\320s\360\376\003\306\373\004\370\317\334\004\371\341\004\272\372\006\200A\330?@\360\330\261\032\210\303\n\364\276\002\351\266\001,\250a\250\377q\330\010\032\230,\240a\373\240x\007\001\036\230o\250Q\377\250h\260a\330\010\034\230\007G\2405\311\256f\372\373\004\335\356\004\224\331\004\201\374\004\370\372\373\004\316\371\004\267\314\006\360\000\000V\003\350\220\212\031\241\377\004\316\371\004H\262\377\001H\004I\375\004\211\336G5\260\007\260z\300\006\242\262\001?V\256\217\002\230\223\030\310\2017\354\336\001\373\316?\000\341\251 \324\350\004\264\366\022\324\350\004\313\374\004\257\371\004\230\244\004\266\371\004\320\336\236\004\251\215\004\346\226\004\334\232\004N\325\374\001N\004\204\256\223\004\346\226\004W\301\374\016\334\3361\375\317\003\201GA\371B\304\377\010\245\226\034X\250W\260A\364\342\204%\335\364\001\001\210\226-s\320sy\003\320y\216\344\003\305\371\004\267\351\004\262\233\013\353\304\004\366""\346\004\000\232\327\004\276\351\004\325\362\004\367\341\004\305\360\004\271\374\004\272\332\004\275\302\004\036\260\265\006\360\000\000h\270\374\005\263\367\004\325\377\004\354\351\231\004\212DO\004\356\364GV\2506\237\260\025\260i\270\303\356\001\254\201VCs\3001\204\375\001\260\231\n1\260\001\335\377\002~\234B\300\030\310\031\320R\277\211\003\277`\320`h\320h\341\307\003}\003\320}\357\351\003\223\347\004\270\377\004\365\351\004\275\354\004\206\260\004\000\271\372\004\313\374\004\333\365\004\343\367\004\304\354\004\375\344\004\231\332\004\270\270\004\300\374\351\004\237\252\006\333\332\001\270\372\005\206\210\004\237\377$A\300\235\031\210\213\001_\320_\325\344\003\331\351\001\330_\010,\320,A\335\000\021\206\300\001\234\246\370\025\241\201bE\300Q\335\370\001\266\234\n3\336\210\311\001\"\320\"A\332\371\001\3008\357\3109\320T\323\235\003b\320b\007j\320j\203\205\003\301\214\n\362\347\004\363\332\004\312\245\013\000\345\370\004\311\305\004\303\375\004\336\370\004\307\357\004\312\375\004\256\326\004\307\357\004\232\256\226\013m\277\375\001m\003\252\217\004\274\375\004B\242\315\340\001B\311\340\005\243\217\004\310\234\004U\271\340\016C\375\300\237\237\002a\320ac\320c\377j\320jl\320lm\330\377\010.\320.E\300X\310\337Q\310a\330\010\215\201zF\300\271a\216\360\001\300\237\n4\2601\370\373\002B\377\300!\3001\300H\310I\373\320U\236\351\003c\320ck\320\017kt\320t\364\335\003\200\346\004\310\237\004\302\310\004\000\253\355\004\347\364\004\261\340\004\224\360\004\363\373\004\325\362\004\325\371\004\356\364\004@\210\327\004\227\216\013\317\237\004\300\260\004\252\222\013\261\234\013M\342\343\001uM\364\273\005U\360\343\001U\004V\307\343\016wD\300I\357\352\001b\320b\222\343\003\377m\320mn\330\010/\320?/G\300x\310q\256\333\002\234\204z\257G\300q\310\224\213\r5\336\213\002\320\371\"\266\210\002\262`Y\320V\\\320\375\\\275\003l\320lu\320u\000\255\360\003\326\365\004\366\367\013\263\360\004\212\321\004\373\376\004\234\363\004\255\271\004\000\301\353\004\226\356\004\337\301\004\353\374\004\307""\343\004\335\365\004\215\216 \216\256\004\376\211\216$E\300Y\310l\320Z\356\255\255\003l\320l\275\245\001\330\0100\377\3200I\310\030\320QR\367\320RS\372\204\"\340\010\014\210\377J\220m\2406\250\021\330\276\010\000M\230\024\230Q\005\001J\177\220i\230q\240\004\240\236\245\002\377\r\210O\2309\240F\250\375!\346\365\001\r\320\014\036\230b\357\240\010\250\001-\001O\2301\377\200A\340\010\020\220\004\220\375A\246\376\0014\210w\220a\220\377w\230a\330\014\021\220\030\373\230\021\004\000\320\021!\240\021\377\360\006\000\r\022\220\037\240\367\013\2501\026\001\036\230{\250}!\037\001\033\230K\240q \002\367\"\240!\037\003\030\230\037\250\357\001\250\024\250\324\366\001\r\021\220\377\005\220V\2301\230E\240\337\025\240d\250!;\000\020\027\373\320\027\233\231\001\024\260Y\270a\377\330\020\035\230T\240\021\240\377!\330\020\023\2204\220q\337\320\030(\250\003`\000\024\030\377\230\001\320\031+\320+H\377\310\001\310\021\330\020\025\220\335\\#\000.\260\001\223\001\025\220\177a\320\027(\250\004\250\374\246\001\376K\0243\2601\260D\270\t\373\300\021W\010\025\220[\240\001\357\240\036\250q<\006\047\240t\363\2501\325\003P\002)\250\033\260\357A\330\014\020\240\0221\260\021\373\260$\241\216\001\330\020\036\230d\357\240!\2401\224\001U\230!\373\230?\326\000?\270$\270a;\270q\247\001X\230Q\210\227\001\242\006})\211!\330\010\017\210q\347!\212\332\351\006\035\246A\"\243\312$\243\342*\315\362\001\320\ti\237\303\001\327\301\001\001\257\221\013\321\366\004\241\327\004\373\373\004;]\002\324\341EX\250Q\260\2003\335\311\002\374\323\375\r\302\316\032i\320ij\320j\377u\320uv\360\000\000w\301\001\326\311\004\324\375\004\261\370\004\201\331\004\363\303\004^\002\364\227\377E\254\20089\224\237\001\"\320\"3\230\272\254\007\244\330\032\232\373\001\320k\266\252\001\205\330\001\001\230\332\305\004\257\300\004\360\221\022_\002\301\327E\223\2028:\363\270!\210\352*\243\251\001\320lw\320\001w\343\364\003\325\354\004\234\360\013\272\307\004\212\357\006\323\373\r\315\2305\316\372\2038;\2701\332\330+\202\221\001\320m\307x\320x""\270\336\003\306\225\013\265\222\022a\002\334\314\335E\342\2058<\270A\315\372\t\330\010\377&\320&7\260q\270\010\353\300\001\265\375\001*\374\213\001\"\320\"~\374\377\002\270(\300)\3106\247\340\010>\350\217\001\320ny\320y\262\360\003\351\302\004\340\371\320\004\233\221\022\341\362\004\276\370\004\273\377$:\270)O\300<\310y\222\264\002\360\223\003d\247\263\003\3478\2701\273\001\345\226\021}\240A\377\240\\\260\022\2608\270:\376\226\267\001S\320S[\320[\\n\213\2105>\270a\307\377\t\330\010\260\370\007\346\333\377\001,\250\331\223\003\225\313\002\270H\300\377I\310V\320SY\320Y\377[\320[c\320co\320\177op\320p{\320{\304\315\003\260\310\223\013\346\312\004\201\375\004\335\372\004p\002\243\336\001\002t\204\356\004\310\377\022O\251\377\016<\270I\200\271\001\277Z\320Z\\\320\\\255\276\003f\376\230\275\0027\260x\270q\300\001\376\201\226\023\177\240a\240|\2602\217\260X\270]\344\245\004\255\360\001\263\2125?\371\270\301\362\016\252\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\273\325\004\321\317\004\264\325\004\320\362\004\242\377\006\326\235Gn\232\2148@\300\001\254\364\r.\250\231\362\003\336\267\311\002\270h\300i\367\350\001[\320\177[]\320]e\320e\300\253\001?\320r}\320}~\240\341\002\243\250\013\360\273\321\004\251\344\004\350\376\006\264\373\r>\270i\300\377|\320S\\\320\\^\320\377^e\320eg\320gh\377\330\010)\320);\2708\270\200\237\003\354\234\025\204\2168A\300\021\226\366\r/\363\250a\264\366\002\321\310\002\270x\300y\367\320PV\276\226\002^\320^f\233\320f\244\256\001\320s\342\276\001\243\333\001\002\350\273\350\004\347\343\004\334\204\022g\227\220\016?\270y\357\310\014\320T\355\277\003f\320f~\321\270\003*\320*=\270X\345\235\003\300\223\200U\371\273\n\265\2002\316\346\004yn\247\3763=\270\306\305\367\016+\250\336\216\003\376\360\002\330`9\310\375F\274\243\002Z\320Zb\320b\016\203\307\003v\320v\314\216\003\376\261\004\223\327\004\250\354\004\350\213\314\004\257\354\004\221\240 A\243\313I7\260!\034\206\226\n\237\266>8\270\001\226\224*\347\3369\300\331\004\000\234\337\013\352\326\004""\323\303\004\214\321\004\300\331\004\350\250\006\373\255I\346\341\002\003\340\010\222\274J\327\276g\320\323\004\250\356@\317\3677\250\344\004\340\370\200I\344\205D\232\323\047\224\357\004\321\376@;\2709\317\300L\320P\217\221\003\247\244\003e\330\377\010&\240o\260X\270Q\001\270\227\247\032\245\201!\226\2665\312\351\001\327\235*\227\3512\327\222\004\000\346\330\004\275\260\004\204\347\004\276\255\004\255\252\004\256\377\004\231\326\004\322\266\004\272\355\330\004l\222\364\001l\003s\231\364\001s\004\366\301\005\263\323\004|\233\351J\275\266\004\342\206\032\206\2717\371\234-\007g\320g\333\343/\233\371\004\325\364\004\360\351\004\340\365\004\000\205\364\004\203\247\004\242\371\004\364\366\004\301\266\004\232\364\004\321\275\004\226\322\022\001~\334\343J\3308\233\274\014\365\265&\340\206K\201\266\031\273\367\004\000\325\315\004\217\266\004\334\315\004\235\274\004\310\341\004\363\346\004\326\354\004\316\307\006\006\236\333J\n\270\360\216\013\250\270G\250\207\003\236\344\t\252\344\t?#\320#4\260A\314\210\001\240\233\t\374\310\320\001\334\327\035k\320kq\320q\007s\320s\220\271\003\310\357\004\344\336\004\317\325\013\201\377\004\000\323\374\004\235\347\004\251\233\004\226\271\004\217\271\004\323\374\004\334\320\004\267\315\013\200\244\347\004\310\344\004\275\207\022\267\315\004\240\274\004\205\334\004\214\374\004_n\226\374\001_\004i\235\374\001i\004\234\372\004Uz\253\374\001z\242\372\005B\255\372\001B\211\330\005\335U\273\372\001U\005_\302\372\001_\005\335e\311\372\001e\005g\320\372\001g\005\235h\336\327LF\270%\266\227\003\230\321\006n\037\320ns\320s\302\354\003\215\344\004\210\347\013\200\361\231\013\324\265\013\222\212\013\267\257\004\300\374\004\250\377\004\226\347\013e\001\003\202\253\n\244\275I\324\2230\261\356\023\335\366\031\204\240\004\234\351\004\010\341\267\004\200\367\004\361\324C{\373\363H\330\275\006\241\224\010\227\300I\370\233\245\002\214\330\n\365\244\033j\320jp\320\001p\215\231\r\257\346\004\367\353\031\232\367\004\310\303 \330\333\004\353\303\004@\250\367\004""\351\371\004\235\217\004\211\325\004\341\316\004\337\333\004\177\333\350H\000\227\201]\341\2331\320\300\003\233\344\003\227\313\004\332\374\004\346\353\031\257\364\004\320\354\245\004\347\361\004\211\354\004\302\336\013M\216\372\001M\003\320\231\372\004\275\364\004\222\372\004\214\325\004w\261\372\001w\003z\201\330\004\177\277\372\001\177\003@\004\377\350H\000\220\204]\344\250\003\375\335\t\277\250\033\241\367\003\362\335\024\212\354\031\330\364\004\000\301\300\004\330\364\004\255\354\004\212\375\004\352$\340\377\004\256\367\004\346\364\004 \247\367\004\362\320\004\220\336\004\310\341\004\337\314\004A\236\372\016\355\2503\240\311\311\003\211\207]\266\251\002\324\340+\352\310]O\377\377\001Oi\003\272\344\013\262\354\013y\261\372\001y\003\343\204\004\202\204\333\004B\355\310S\213\212T\305\252\002\356\343\n\253\252\033n\033\320n\254\303\001\320z\223\375\003\221\270\013\337\343\031\000\345\364\004\303\322\004\230\362\004\202\344\004\312\372\004\353$\240\375\004\274\314\013`\365\367\004\366\335\004\335\326\004\312\322\004\272\306\004C\004\350\252Gp\261\314\010\204\215T\324\253\002\302\251)o\320o\227\303\001\003\320{\247\257\003\244\271\013\353\274\022\320\261\004\213\365\004\357\263\004\000\257\317\004\267\314\004\350\372\004\313\222\004\313\375\004\346\367\004\231\365\004\337\367\004\210\236\362\013\360\340\004\345\343\004D\327\372\016\207\2547\230\201_B[\300!\337\351\0140\250\263\262\003>\351\300\001\317\300\010\310\t\341\266\002\353\356\003g\320\035g\315\220\003|\320|\267\260\003\267\272\013\376\275\022\000\267\330\004\272\243\004\260\330\004\357\351\004\267\330\004\331\372\004\226\361\013\214\370\004\240\337\346\004\354\240\004\366\351\004\240\314\013\246\365\004E\321\375\016@\277\300\t\310\034\320U\236\375\003g\373\320g\314\277\001\330\010+\320+\307?\270x\207\310\003\207\317 \370\222TC\300\0011\331\354\014\251\321\177\332\375\004\304\351\022\346\243\004\262\351$\337\321B\332\362\225TD\224\325\0162\260\323\264\003@\300\177\001\300\021\300(\310)\257\272\002\034\333""\323\003\350\343\003x\320x\250\266\003\342\343\004\323\274\013\000\366\375\004\257\300\013\253\333\004\273\272\004\372\253\004\250\336\004\253\333\004\356\357\004\320\276\256\004\204\376\004\242\325\013\311\342\004t\234\376\001t\003\364\230\363\013\266\336\004G\353\362\016B\300)\310w<\320W\222\357\003i\320i\233\354\003\377-\320-C\3008\3101\343\310A\322\313$\334\362\006\336\332IE\300Q\000\321\362\014\227\324\203\264\341\004\223\372\004\340\354\004\225\376\004\232\372\004\277\226\004$\307\357\004\232\372\004H\300\324S\356\233TF\212\330\016\207\324\207 \306\357\031\320\362\004\217\344$\304\324C\361\236TG\203\330\016\373\323\207 \265\344\004\215\330\013\244\357\004\313\234\004\320\362\022J\356\373\016\265\324F\332\260\207RH\370\327\0166\260\255\302\003D\300\377A\300Q\300h\310i\320\357W]\320]\267\326\003m\320m\007v\320v\256\306\003\331\373\004\204\320\004\337\353\013\331\373\004\000\212\333\004\340\373\004\332\310\013\347\373\004\212\333\004\305\272\004\253\347\013\300\242\004\240\262\347\013\347\373\013\237\336\004\257\352\004\246\377\004K\362\376\016F\377\300i\310|\320[d\320\177df\320fm\320m\373\307\001\377\330\0101\3201K\3108?\320ST\320TU\331\212-\236\355\nqQ\374\354(\204\275-\325\231\003v\320v\236\305\003\240\371\335\004\317\376\004\271\303\004\216\341\004\356\343 \177\315\322FV\307\250:\260\372\324\002\227\367\006\236\367\010Y\240\375a\306\200Jw\310f\320TV\377\320V^\320^g\320g\240{\225\255\361\002\337\333\001\324\200<\221\325\"\007\306\311\001W\377\320W_\320_h\320h\016\201\233\003w\320w\313\372\003\255\313\004\373\362\004\255\345\004\004\246\342\004\353\221 @\376\265F\201/\331\363\010\310\202[\263\200]\3376\260i\270|\274\350\001V\320\365V\215\312\003`\350\371\001\032\2508\260\3731\260\276\223\030W\250J\260a\177\200A\360\010\000\t\021\204\340\004\177\320\013\036\230g\240Q\212\336\001\177\n\230!\2305\240\017\265\336\001\377\023\2205\230\r\240V\250w1\340\014\005\003U\250!+\n\367\014\210L\301\337\001\013\2606\270\376\271\340\001\220\034\230Q\230k\250\367\021\320*\275""\324\001\014\021\220\025\377\220a\220~\240Q\240n>\272\360\001\r\320\r\036\230j\013\231\353\001\372\304\341\004\025\202\341\001\017\210q\220\r/\230T\320!\351\324\001\001\277\336\004\235\010\334\250\337\001\323\337\001\033\250A\323\316\001\013\210\3776\220\023\220A\330\014\024\377\220E\230\033\240A\240[\343\260\001\273\227\001\370\336\002\324\010\026\220a\376\267\342\001G\2201\330\014\017\210\377t\2203\220e\2301\330\377\020\030\230\006\230a\230q\376\211\341\002\320\027/\250q\260\005\337\260Q\330\024\031F\002T\250\337\021\250+\260V\307\324\002\024\"\377\240!\330\021\025\220S\230\367\005\230Q\230\341\005$\240a\320\357\0479\270\026\301\322\002\020\025\220\372\230\340\001>2\000\047\260\026\260q\377\270\001\340\010\013\2101\330\363\014\031\322\342\001q\000\320\023$\240\313A\240Q\001!\203\342\001\347 \017\210\177s\220!\2206\230\022\207\001\367\024\220C\246 Y\250a\250\367u\260A\177\001\021\330\024\027k\220r\032\0003\236\002\030 \333\343\001~\236@\030\033\2304\320\037\210\327\001\177\014\300A\330\034!\240\207!\337[\270\001\270\033\013\001*\250]!t\0015\220\003\345\003q\256\341\004?\320\033+\2504\250\262\343\006\371@\377\n\000\t\017\210d\220(\277\230(\240%\240q\207\344\003z\357\230\021\230%\215 \014\022\220\237$\220a\220q\370%)\000\020:\263 8\224`\001\240\0217\003\007\0079\037\262!\007\013\005\240Q]\003\330d\362\336FNZ\003\343A\016\230e\240\245<\360 \013\250\327\003\255C\014\213\204\004\340\177\010\021\320\021&\240a\256\343\001\276\346\345\001C\210}\230I\305`e~\215\345\001\024\220D\320\030.\216\373\002\352\360FZ\272@\001\331Av\220V_\320\0332\260#\267@6\214\344\001\365)\304@(\014\000Q\330\021\027\377\220v\320\0357\260s\270\377&\300\006\300a\330\020,\356\302`X\260S\247A\023\320\023_#\2401\240A\312\373\001A\320\346\001z\274c\016\227\205\007\2104\210u\346a\337\020\320\020 \240\261\326\002e\220_8\2307\240!\2435\013\315\205\003?U\250!\330\020\032\311\205\007\246\204\001\347\035\240a\204\204\001\373A5\230\003v\206\204\001\027\220\356\326\001s\250!\243@\317v\260Q\340\263\346\001\266""\001%\250\377}\270A\270Q\330*0\377\260\001\330*2\260$\260\377a\330\r \240\007\240u\243\250AJ\n\307c=\01618\0171\373\260\024^\000\014\023\2203\220\377a\220v\230S\240\001\240\377\025\240c\250\027\260\001\200\373A\360\351\005\340\010\033\2302\377\230\\\250\025\250k\270\021\373\270+\301\361\002\034 \240\016\250\337e\260;\270e\252\241\001#\240\1772\240S\250\005\250\\\035\000m\"\237\002$(\014\000U\260\362\350\002\352\253a1\340\350\001\027\302a#\2404\373\320\047\331\244\002\013\2105\220\004\377\220D\230\n\240!\2404\363\240q\322\347\001\375\346\001\003\2207\230\271)\373\"\224\350\002z\240\021\220\204\002\024\277\025\340\020\021\330\024\355 \320\375!\361\320\001&\300\001\330\027\030\337\330\024\032\320\032\265\226\001\030\033\377\2301\230A\330\030\034\230mE\320\350\002\024\032?\003\340\010\365$\377Q\330\020\024\220J\230a\377\230u\240O\2601\330\014]\047\264 M\270\021\274#q\010\022/\031\300!\340%\000t\252\205\001\212\207\001\276\302\206\0013\210a\210~\246 \003*\235b\014\377@!\300\351\002\014\300\351\002\275A\376\203\000\r\020\220\001\220\036\230\347t\320#\270\336\001u\000C\220q\177\230\006\230c\240\024\240\230\204\001\337\004\260A\260T\240\211\001\022\320\235\022\267\326\001\020\023\220\234!\235\000E\377\230\021\230!\330\014\022\220\335)\312\001\340\010\014\246\353\t\320\014{\034\230\316\353\004L\230\t\240\337\211\002\177\033\230A\230[\250\001\270\351\002?\010\r\210U\220!\271\204\001\313 \262\353\353\002\210\037\006\361\211\030\340\010\202\211\0011\357\200A\3602\327\204\010:\220Q?\220n\240A\330\014\325 \223\352\001\277\007\220t\320\0336\357`\020\377\023\320\023&\240g\250Q\367\330\024\030\266B>\260\021\330\375\024\223\352\001\047\250\034\260Q\340\252\004\004\021\323\353\0011\254A\007\330@\001\376\333\204\005>\240\023\240A\330\020\337\025\320\025%\240\271\211\001\320\025\337&\240a\330\020\227`\340\020\375\026\264\355\002\001\330/6\260c\376\346`.\310\002\310!\3309\277:\33004\260E\366`!.\302\352\003N\220!\226\204\001\014\314\211\001\365&\364\245!\232 \330\305\003\320\004\035\230""\361Q\306\214\010\372\353\001\255@\330\010\022\220\375\047\334\"\010\014\210G\2209\277\230J\240f\250A\200\213\002\320\177\023+\2501\250G\260\323\353\002>\247\354\001\026\240q\250\013\216\364\001\242\214\003\001\330\317*"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35983, 111563); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (36018 bytes) */ +static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notearoo\363nd\330\001\005\002upbe\377gidx nbe\377lementbu\377llpower \257bear\005\002c\211\221\003p\377ickle %s\365:\207\212\007h\211\216\003poin\206\220\234\002to\267\233\002\215\213\005\202 \211\214\002,\356\370\235\002doe\213\224\001t c\367ros\352\227\001proc\337ess b\231\241\001aroydis\216\206\001en\224\206\001\277fastk \002\001dogcha\204\213\002ha\322\236\001\377 halow h\375a\323\236\002inphas\377e quadra/ture\267\236\002 \222\237\003""\376\224\001\377wrong diR\334\000s\247\241\001\024\tl\241\205\002s\277\236\002?differ\273\222\001\305\240\002\310\323\237\003\244\212\001\230\226\005d\263bY\003mu\033st\272\237\001a \310\240\002h\004\304\240\002\370\301\240\003\343\232\002\264\240\002 Serioes, \340\226\001%s\317\237\t\335 \357\234\007mis\336\242\002re\363qu\330\215\002\212\242\001 key\302\240\243\001g\346\217\001\377\216\002\245\003\302\206\001, \3750\310\233\001100)is\376\256#dk d jm\357acd \001\001sig\347nal\006\002\301\230\001mam\371a\316 \004\000in ma\217xmin\367A\007\000\377@n\315o\367\227\005: \203\240\006\276$is\277 empty\262\242\002.\377_core.mu\347lti\365\241\004\377\230\003to \363im\333\216\001\033\tumat\367h f\023\014plus\277vi min\004\001s\347ine\243\231\002\005\001slo\367wk \002\001dsmi\331 \001\000\300\003su\213\241\001re7nd \327\210\001ds\227\240\001\211b\376\005\002lowtali\203b.\357\216\004\217\245\001\013\003\347\243\002\026\003o\013rd\335@d\212\244\001\047\003\353\243\003\005\004\334\340\243\002?\003sysH\003thgrea\274\232\001W\003wa\325\235\002\366\027\003/_\277\246\005.pxizy\002/\231 mmon\006\010@\235\246\001\025\010\263\226\003,\002\355\210\005\244\204\010s\300\231\r\365\047\250\207\002b\267\244\001midd\313le\006\002l\234\206\001\021\001AC\377ACCBANDSZ\000\005_\365\212\001am\000\014.\217\245\001>\345\240\001_fill#\006\267\210\0027ACO;\000OS1\006\002\006p&\rS\006^\004G\014DAD\000\000\355Dz\005DD\020\024OSC\303AD\002\000 \006\002\007B\rRA+DRG\006R`\024X\215\234\001\221\234\001\202q\006X\022\026\031\007\255\024\265\006\316\023L_LAOAO\335%O\363\023\257POAP\033\006P\016\024R\017OONA\001\001\213!\001\004\265E\200\001\013\256L5\001\035\t\3673!\002\332CS\207INA\001\000\222e\001\007\207lT\207ANA\001\000\272e\001\007\030\rR\353AT\215FT\3774VGD\207EVA\001\002\213\204\005\001\t\202\204\014V\177GPRICEA\001\004\270(\007\022\002\331sllC\207\233\002S\006\311\254\003sB\203\205\002\000\003\377\204\004\000\n\366\204\013\246\256\001ICROS\343\214\001\003\010\200\201\t\047\002\037\001\331\214\025@\003#\r\025\026I\007GHW\306 \272\001\004\004\360\010\004\013^\242/IKKA\323\214\002H\004\003\007MODD\002\022\002\n\000?\t\005\014\3705\025\"\016\317\026OMING\037PIGEO\367\"\004\010\262H\374\004\017\310\217\016IDENTI\017CAL3\332\217\005\003\014\341\217\007\003\023.@\017NNE\377\213\002I\004\0025\010\314\004\t$\020VE\373\252\001\202\204\006IN\360\005\t;\t\005\020\240\221\016KICK\014\306\207\003\003\004BY\322\207\001\376\216\002\003\014\303\221\007\360\003\023D\025\047\016""\356\221\025LADD\377ERBOTTOM\207CDL\003\t\277\222\007\003\020\365\222\016L\377ONGLEGGE\201D\351\211\004\003\013B\010\034\n\177\026K\001Ip\253@\221\000\004\0044\014INE\303\223\025\340\231\216\010\247\216\005\214\224\007\003\014\276\224\016MAT\367CHI\312\000OWCD\001L\003\0107\t\032\006i\027\242\220\005M\000\351\261\001X1\n\006\010n\017OR\235\213\014M\004\013\000\300\010\004\022:\025\355\215\004G\004\236\213\013\003\017\326\226\016\325O\264\205\005O\255\205\014O\237\205\032PI\007ERC\264\215\003\003\005\230\227\007\003\014\312\227\016\377RICKSHAW\203MA\302\212\001\003\010\333\227\007\003\0173\020S\377EFALL3MEoTHOD\247\230\001RI\005\013XD\t\005\022\345\230\016SE\274\272\001T\245a\016\304\227\001CDL\003\014\376\230\007\003\023@\017\047HOOL\001\225\221\004S\004\010A\010\034\004\0175\021RTL\267\205\003C\000\006\003\2706\n\006\n\311\017PIN\253\220\001T\203OP\323\001\004\007\310\010\004\016\217/T\377ALLEDPAT\200\240\271\001\234!\004\n\224(\004\021<\020\210aA\337NDWIC\250\231\001ST\360\005\010A\t\005\017\241\234\016TAKU\301R\207\224\001\003\003\250\234\007\003\n$\020SUoKIGA\222!TA\005\004\2701\t\005\013e\017HRU\264\000N\037GCDLT\004\005r\010\004\014\026\245\017RI\261\225\004T\004\003\256\010\004\n\376\222\236\016UNIQUE3\003RI\301\226\003\003\t\245\236\007\003\0207\017\253\223\002\027GAP\354\236\006U\004\013D\010\004\022:\255\237\016X\273\236\001GAP\222\206\010\003\rx\310\237\007\003\024\204\240\014EILC\001\000\370\262\240\005\001\007\254\240\014MFCMF\370\330\240\005\001\006\025\rOCMOUl\000\001!\006OU\276\240\023MO\031\007\016\340\240\023OPP\200\235\001\001\003\322\241\005\001\n~\317\241\014ORRELC\001\002\370&\006\017\001H\024SCOSH\214\000\001S\006SH\023\025\031\007\214\242\023U\037MSUMC\001\002\374\242\005\001\t>\370\242\014VICVI\244\243\005\001\006\370\235\243\014\377\244\t\371\300\001DEFAU?LTDEMA\000\001\220\253\004\374\000\010\205\253\013DISABL\237EDDIV\000\000&\005I\375V\325\252\022DONCHICAN\000\005U\005\020\004\027\032_\253\265\002\257DPOD\232\251\006D\214\251\024D\227XDX""\260\005Xs\023\241\323\005D\037otEFI\000\000\370\254\004\000\007\260\354\254\013\213 \216 \035\005MA\264\254\022E\317RERI\000\000D\005RI\252\020\024I\307\003E\233\254\005E\214\254\023E\323XP\000\000\222\005X\241\247\023Eq\377ualFLOOR\360\000\002\300\256\004\000\t\266\256\013FOSC\365F\273\255\007F\254\255\025FRAC\007TAL\000\004O\005\017\003\262\256\022\"\005\316\323\270\002Far\270\320\005\300\320\005._\215_\320\324\001__\001\r\202\330\005\035\th\177eck_opt\310\325\004\034\300\304\002>\010get\003\030\337\324\001Z\nL\216\326\003\247\302\002_s\316\265\002\233\315\002s\220\010z\302\313\001l\240\010repr\236\n;st\002\013uni\256\316\001\304\010\036\260\323\006flagR\007\250\001\211\327\t\000\207&\017\007\264\326\002\013\n\254\331\007\266&\336\322\001\303&\377lookback\004\324&\223\322\003_m\013\016\004Q\013\274\322\004\216F\027run\232Fs\325 \363\324\n\r\n\340\261\022/\001\364\327\010>\n\362\332\007HAH\342\254\205\005H\247\205\023\035\000\215\275\002HMA\365H\327\205\006H\323\205\024HT_D\177CPERIOD\000\010\360\274\264\004\000\017\270\264\0137\003HASE\240\000\007.\n\027\001\225\264\022t\000P5\000O\201R\000\006i\007\023\003\031\033\276\210\003\272\000S\047INE\000\004\253\007S\246\231\025\"\005\376\232#T_TREND\201L=\003\003\006\363\007\003\r\355\016;\002M\203OD\374\001\003\0061\014\033\001\356\023i\237ghLow\225\316\002\207\330\001I\003MI\000\000\267\267\004\000\007\253\267\013\311\316\t\315\316\004\017KAMA\000\001\361\267\004\000\010\346\267\013/KCKC\034\005C\253\267\022\035\000\316\307\301\002KDJ\000\000H\005DJ\360\027\023\025\000\365\301\002\346\257\001ARRE\rG\000\006_A\252\235\001\000\014\220\271\004\000\023x\220\271\013?\007\376\317\002CEPT\000\020\360@\016$\006\210\271\022\224\007SLOP\001E\000\014\215\016 \002)\035\376\322\002N\010\216\323\002\256\275\014NLN\363\005N\203\023O\017G10L\001\001\233%\001\010\212,\357ineM\354@CDM?ACDEXT\000\004\354\273\004\340\000\013\344\273\013\"\005\250\305\002:\001FIX\000\000\0043\010\022\000\305\273\022\"\0055\006g\010\030\026\200\343\217""\003\254\001\260\001\233\006\335\216\024\037\002\227\004R\177KETFIMA\002\003\030\325\006\002\n\317\rSS.\000\002\000\203&|\002\007\372\rVPMAV\264\267\005h\000\010\242-\236 X\232\316\002MA\002\003\000\337&\002\n&\016\035\007\2664\247F\010\025\271\325\001\367MA_\300\325\001.__g\377etitem__\034\t\007\224\216\003MED\261\272\002\000\005\200eh\020\004\265S\326 F\305\224\005MF\304\221\023\377MIDPOINT\020\000\005\331e\020\004\216sI\206\004\001\004)\010<\326\273\001\035\024NMIN\336#\001\004\370b\006\021\003\036\026AXMIN\000\221E\000\0106\007\247L\201\205\0143\007\241\204\004I\002\3701\na\030+\006US_DI\007MIN\003\002\262\007\003\th\0160\001\025M-\004M&\013M\2175\215\047\213\206\023\257OMMOC\006O0\024U?LTMULT\247\207\005\001\007>\220\304\013NATRN\330\277\007\000\010\376\031\014ONENVIN\372\223\231\006N\205\231\024NearOCBV\000\000\226\305\004\000\007\212\305\013O\231\307\003\177DictOut\273\325\002oPERC\246\255\001LE\000\007\360\334\305\004\000\016\327\305\0133\004RANK0\000\010.\013\031\001\267\305\022PL\325B\000\004\022i\005L\276W+\003M\000\004$\n\277S\343PP\255\235\001\303\005\216\304\024PVIuP\362\233\006P\344\233\024PVO\000\000:\215%V\376\304\023PVT\000\000\034\006\005T\255\307\022Q\364\243\002\000\003\301\310\004\000\n\270\310\013\257RMAR\271\232\006R\265\232\024R\013OC\000\000P\000\001\223\311\004\000\010A\014\234(\000+\001100\000\004(\007R\007100\340\310\022\\\001\034\010\014\025r\007\0360\023SIRS\333\236\005\000\007\341\014\327VIR\377\236\006R\361\236\024RV\003OL\000\001\345\005\014\000\242\023\256\347\001\241\341\001\357Real\236\304\002ARS\037AREXT\000\003\300\313\004\000\n\340\267\313\013+\000\033\007\374\312\022\372\301\001INHaS\001\000G\005\001\007>\014IN\031\007\2567\023MAS\247\236\006S\243\236\024S\023MI\000\000\264\005M\242\236\023\036\001\260\326\002\017SQRT\000\001\344\005\014\000\262\023?TDDEVS\001\002\220%\220\001\t\211,\342\332\001\346\332\002F\000\003*\006O\007CHFJ\024\026\002\217\003\236\333\004\245\333\005\2002\t\202u#\0068\007i\tZ\027\207\242\003S3UB\000""\000\352EUB\267S\242\244\t\373SU\224\213\023SUPER\000\322\230\002\000\007O\006\023\005H\024\026\006\226C\255\325\002?Shadow\302\311\001\004\003 \303\311\002\017\003\302\311\005\004\007\022\010s\377\320\003\205\321\003\336\255\240\001opy_\255\320\005__\337deepc\005\013re\377duce__T3\343T3\274\321\004\000\006\257\321\013TAN\017TANH\000\001!\005\014\000\375\320\022\210\303\315\007\264\315\025\341\354\001C\000\002\300\322\003\000\010_\337Clone\005\tOp\373en\000\rAndFi{ll,\tPeek<\t\037Updat<\n\256\334\002v\002sOS\000\004c\010OS_a\006\334\005\004Z\tOS_Y\006OS\035_S\010OS_P\007\264\010E\007\240T\002\247\tA\007=\t=\007D\202\357\001D\032\000\003D\210\047DD\232\006\004\004\375\010\333DD\230\006DD\225\010DD\006M\010OS\362\"\202\324\002\340&\220\324\002\336%\000\004\006O\t\262\324\001\330%\276\324\002\323\047\315\324\002\321&\253DR\265\002R\251\010R\252\007RV\371\rDR\252\007R\250\tR\201(UX\210\"XT\003XO\tXQ\010UXK\017XS\010XR\nXS\n\252\326(X\327\047X\234\016X\327\047X\002\325)X\256H\242H\242G\346\016\240G\235I\252\275gO\202\363\001O\201\205\007O\222\204\006O\252\274mO\216\204\006O\212\204\010O\211\204\007P\252H\002PC\010PE\007P?\016P\nG\007PF\tPH\010\300\326\001\244\364\001\300\326\004\000\000\010\264\206\007\323\326\005\266\206\005\004\t\263\206\010\372\326\005\266\206\005\000\212\327\005\264\206\007\234\327\005\265\206\006\204\327\002\235\207\006\222\327\002Y\t\310\335\205\r\263\327\002S\t_N\013\263\206\007SI\001N\372\365\001\260\327\001\374\207\006\275\327\001\371\207\005\004\005\362\207\010\200\334\327\001\361\207\005\350\327\001\353\207\007\366\327\001\350\207\006\270\211\002_\000\341\327\002\326\210\006\357\327\001\323\210\005\004\005\314\210\010\216\330\001\313\210\005\240\232\330\001\305\210\007\250\330\001P\007\354\205\002T\346\205\010T\252\347\205\007T\340\205\016T\347\205\007T\345\205\tT\000\346\205\010\276\330\002\203\370\001\300\330\003\207\212\006\317\330\003\206\212\005\004\007\000\201\212\010\362\330\003\202\212\005\200\331\003\376\211\007\220\331\003\375\211""\006\366\330\004\000d\003\353\330\003a\010\374\330\003d\007\006\007c\n\243\331\003\300h\007\263\331\003h\t\305\331\003\364\212\005\250\331\003TA\001_\252\331\004\346\213\005\271\331\004\345\213\004\003\010\340\213\007\334\331\004\340\341\213\004\352\331\004\335\213\006\315\331\t[\001ETA\000\000\004\311\214\006\347\331\002Z\005\351\331\001\326\214\001U\010\374\331\001`V\005\210\332\001R\007\226\332\001\271\006OP\273\001[OPN\007OP\263\214\005B\004\004\306\253\010OP\261\214\005\301\332\001\246\007OP~\256\214\006CCITA_\226\332\001\000\365\215\005\242\332\001\361\215\004\003\005\351\215\007\277\332\001\347\215\004\312\332\001\000\340\215\006\327\332\001\334\215\005\274\332\006U\001\257\332\006V\006\301\332\006\000]\005\004\n`\010\352\332\006i\005\373\332\006m\007\216\333\006\000r\010\200\333\010|\003\202\333\t|\010\231\333\t\202\007\006\r\000\204\n\314\333\t\214\007\342\333\t\217\t\372\333\t\224\t\337\333\003\000\225\004\341\333\004\214\t\364\333\004\211\010\007\010\202\013\237\334\004\000\201\010\261\334\004{\n\305\334\004\230)\245\334\007\235$\247\334\010\000\230)\276\334\010\231(\007\014\226+\361\334\010\231(\207\335\010\000\227*\237\335\010\270I\202\335\004\272D\204\335\005\262I\230\335\005\000\260H\007\t\252K\305\335\005\252H\330\335\005\245J\355\335\005\000\303i\313\335\t\312d\315\335\n\307i\346\335\n\312h\007\016\000\311k\235\336\n\316h\265\336\n\316j\317\336\n\361\204\t\254\336\n\000\371\204\004\256\336\013\367\204\t\310\336\013\373\204\010\007\017\373\204\013\201\337\013\000\201\205\010\232\337\013\202\205\n\265\337\013\244\207\010\222\337\n\260\207\003\224\337\013\000\262\207\010\255\337\013\272\207\007\006\017\276\207\n\344\337\013\310\207\007\374\337\013\000\315\207\t\226\340\013\242\t\366\337\010\246\004\370\337\t\240\t\220\340\t\000\240\010\007\r\234\013\305\340\t\236\010\334\340\t\233\n\365\340\t\000\371\211\010\327\340\005\200\212\003\331\340\006\375\211\010\355\340\006\200\212\007\006\n\000\377\211\n\232\341\006\204\212\007\255\341\006\204\212\t\302\341""\006\177\t\245\341\005\000\205\004\247\341\006\201\t\274\341\006\203\010\007\n\201\013\353\341\006\000\205\010\377\341\006\204\n\225\342\006\226\214\010\360\341\014\244\214\003\362\341\r\000\250\214\010\215\342\r\262\214\007\006\021\270\214\n\310\342\r\304\214\007\342\342\r\000\313\214\t\376\342\r\260\t\332\342\014\266\004\334\342\r\262\t\370\342\r\000\264\010\007\021\262\013\265\343\r\266\010\320\343\r\265\n\355\343\r\000\266\n\314\343\010\270\005\316\343\t\260\n\347\343\t\256\t\010\r\000\250\014\236\344\t\250\t\266\344\t\243\013\320\344\t\303\220\010\253\344\013\000\320\220\003\255\344\014\323\220\010\307\344\014\334\220\007\006\020\341\220\n\200\345\014\340\354\220\007\231\345\014\362\220\t\264\345\014\251\tOJI\010\244\004\233\345\004\000\013_\247\t\237\345\005\242\010\007\t\000\231\013\314\345\005\226\010\337\345\005\216\n\364\345\005\206\014i\rQ_g\013\242\241\014\333\346\004__\013_Y\r\001_\243I\237\346\t\247D\241\346\n\241I\272\346\n\241H\000\007\016\235K\361\346\n\237H\211\347\n\234J\243\347\n\240\225\010\000\204\347\006\250\225\003\206\347\007\246\225\010\233\347\007\252\225\007\006\013\252\225\n\000\312\347\007\260\225\007\336\347\007\261\225\t\364\347\007\206\t\321\347\013\221\004\000\323\347\014\222\t\356\347\014\231\010\007\020\234\013\251\350\014\245\010\000\303\350\014\251\n\337\350\014\252\017\206\361\001\253\n\307\350\002\242\017\000\336\350\002\237\016\r\006\230\021\221\351\002\227\016\247\351\002\221\020\000\277\351\002\216\231\010\223\351\r\235\231\003\225\351\016\242\231\010\261\351\016\255\231\007\000\006\022\264\231\n\356\351\016\301\231\007\211\352\016\311\231\t\246\352\016\267\t\000\204\352\n\272\004\206\352\013\263\t\240\352\013\262\010\007\017\255\013\000\331\352\013\256\010\362\352\013\252\n\215\353\013\206\234\010\361\352\003\213\234\003\000\363\352\004\206\234\010\205\353\004\207\234\007\006\010\204\234\n\256\353\004\207\234\007\000\277\353\004\205\234\t\322\353\004p\n\265\353\005y\005\267\353\006x\n\000\315\353\006}\t\010\n~\014\376\353""\006\205\t\223\354\006\207\013\000\252\354\006\211*\217\354\001\216%\352\353\006\000\016\240\213\t\244\354\t\000\245)\247\354\007\315\240\013\253\355\002\304\354\007\257)\332\354\007\262+\250\362\354\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\254\355\004\256d\256\355\005\000\253i\302\355\005\256h\007\t\255k\357\355\005\262h\202\356\005\000\262j\227\356\005\262\204\t\373\355\003\202\005\357\355\005\000\r\232J\000\241\356\006\225)\007\013\221\014\305\356\006\226\t\332\356\006\226\013@\361\356\006\224\017s\020q\017\222P\337\357\003_l\016\001_g\020\233J\226\357\010\332\206\004\230\357\t\333\206\t\260\357\t\000\342\206\010\007\r\345\206\013\345\357\t\356\206\010\374\357\t\362\206\n\225\360\t\000\210\245\010\360\357\014\226\245\003\362\357\r\232\245\010\215\360\r\244\245\007\006\021\000\252\245\n\310\360\r\266\245\007\342\360\r\275\245\t\376\360\r\260\t\344\360\002\000\254\004\346\360\003\236\t\370\360\003\226\010\007\007\212\013\241\361\003\000\204\010\262\361\003y\n\305\361\003p\n\243\361\t}\005\245\361\n\000\200\n\277\361\n\211\t\010\016\216\014\370\361\n\231\t\221\362\n\000\237\013\254\362\n\366\250\010\216\362\004\374\250\003\211\362\014\000\022\203\226\t\000\246\362\r\237\251\007\006\021\245\251\n\341\362\r\261\251\007\373\362\r\270\251\t\210\227\363\r\267\017\214\020_\206\016\251\226\017\225\364\004_\002v\016_l\020\270\226\t\275\363\t\301\253\003\277\363\n\302\253\010\000\327\363\n\311\253\007\006\016\314\253\n\214\364\n\325\253\007\243\364\n\331\253\t\000\274\364\n\335\254\010\231\364\013\242\004\204\364\013\237\t\236\364\013\242\010\000\007\017\241\013\327\364\013\246\010\360\364\013\246\n\213\365\013\245\r\007INE\244\010\372\364\001\231\r\216\365\001\224\014\000\013\005\213\017\273\365\001\210\014\316\365\001\200\016\343\365\001\235\257\010\000\323\365\005\244\257\003\325\365\006\241\257\010\351\365\006\244\257\007\006\n\243\257\n\000\226\366\006\250\257\007\251\366\006\250\257\t\276\366\006~\n\240\366\006\206\005\000\215\366\007\204\n\244\366\007\210""\t\010\013\210\014\327\366\007\216\t\000\355\366\007\217\013\205\367\007\222\013\365\366\001\223\006\201\367\002\212\013\000\224\367\002\207\n\t\006\200\r\277\367\002\177\n\321\367\002y\014\000\345\367\002\243I\277\367\013\257D\301\367\014\261I\334\367\014\271H\000\007\020\275K\227\370\014\307H\261\370\014\314J\315\370\014\252\017\000\220\233\007\256\370\t\242\017\213\233\014\333\370\t\317\224\016\370\370\t\227\016\250\211\233\016\246\371\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\317\371\005\254\266\003\321\371\006\251\266\010\345\371\006\254\266\007\006\n\000\253\266\n\222\372\006\260\266\007\245\372\006\260\266\t\272\372\006\260\267\010\232\372\010\000\272\267\003\234\372\t\272\267\010\263\372\t\300\267\007\006\r\302\267\n\346\372\t\000\312\267\007\374\372\t\315\267\t\224\373\t\223\n\361\372\013\235\005\363\372\014\000\235\n\217\373\014\243\t\010\020\245\014\314\373\014\255\t\347\373\014\000\260\013\204\374\014\223\272\010\336\373\014\241\272\003\340\373\r\245\272\010\373\373\r\000\257\272\007\006\021\265\272\n\266\374\r\301\272\007\320\374\r\310\272\t\354\374\r\000\260\t\314\374\010\262\004\316\374\t\252\t\346\374\t\250\010\007\r\000\242\013\233\375\t\242\010\262\375\t\235\n\313\375\t\231\013\257\375\003\000\233\006\261\375\004\223\013\306\375\004\221\n\t\010\213\r\365\375\004\000\213\n\211\376\004\206\014\237\376\004\351I\375\375\007\352D\377\375\010\000\341I\226\376\010\336H\007\014\327K\311\376\010\326H\337\376\010\000\320J\367\376\010\211\204\t\324\376\n\215\204\004\326\376\013\207\204\t\360\376\013\000\207\204\010\007\017\203\204\013\251\377\013\205\204\010\302\377\013\202\204\n\335\377\013\000\250\n\274\377\010\254\005\276\377\t\246\n\327\377\t\246\t\010\r\200\242\014\367\377\t\244\t\\\t\241\013v\t\213\302\010T\017AKUR\216\257\004\006\003\371\256\t\013\004\000\214\302\007\006\010\211\302\n4\004\214\302\007E\004\212\302\tX\004\376p\nSUKIGAP\006\220\303\003TA\010\004u\013\r\005z\t\010\t\200z""\014<\005\200\tP\005\201\013f\005\203)H\177RUSTING\213\004\000\007\005\210*\014\006\215(\007\n\215+;\006\223(\260O\006\224*e\006\225IRI\260\254\007T\000\007\003\226J\014\004\231H\007\010\227K7\004\233H\360I\004\232J]\004\260\306\010UNIQ\337UE3RI\362\235\001A_\007CDL\006\t\252\263\t\013\n\303\306\007\006\016\200\306\306\n@\n\317\306\007W\n\323\306\tp\n\233\tP\377SIDEGAP2_CROWS\345\307\003U\007\013\000\240\n\014\014\245\010\007\020\245\013G\014\253\010a\014\350\254\n}\014\223\311\010X\264\0043ME\017THOD\266\004\006\r\225\266\t\013\016\000\262\311\007\006\022\271\311\nH\016\306\311\007c\016\316\311\t\200\016\016\330\312\006EIL\261\313\001\004\000\274\267\007\t\001\000\257\313\005\004\005\255\313\010(\001\261\313\0054\001\260\313\007B\0016\262\313\006MF\212\314\001MF\224\270\007\t\000\000\206\314\005\004\004\203\314\010&\000\206\314\0051\000\204\314\007>\000\274I\007\316\325\001CMOUU\002O\001UP\010\n\000S\006\005\004Q\t)\000U\006@5\000T\010C\000U\010F\t\305\270\006M\237\326\r\204\200\000\275\270\006M\246\326\010\024\001\262\315\006\236\350\001C\001K\216\316\001\004\003\234\272\007\t\004\222\316\005\004\010\223\316\010\300.\004\232\316\005=\004\234\316\007N\004e\007RR\005E\306BO\005\001b\010\n\002c\006\005\006\000_\t-\002a\006;\002^\010K\002\315\007\234\206\0027OSH\325\002SH\314\010\n\000\000\313\006\005\004\305\t)\000\305\0065\000\300\010C\000PU\010F\t\311\273\006\273\336\016C\301\336\007C\276\336\t\005C\276\336\010C\362\342\002\221\321\001\372\342\003\217\321\006\211\343\003\000\223\321\005\004\007\223\321\010\254\343\003\231\321\005\272\343\003\232\321\007\312\343\003\332\236\321\006V\365\321\002VI\200\276\007VI\330\204\275\006\004\004\357\321\010VI\374\274\006VIv\366\274\010VI\373\337\006DEM\366\323\001\000\003\001\303\341\006\010\002\301\341\004\003\006\272\341\007\047\002\271\341\004\3603\002\263\341\006A\002\260\341\005DIVT\263A_\003\000N\007IV\255\341\005D\000\004\004K\010\032\000M\005%\000J\0072\000J\006\337ONCHI\327\343\001_D\000\004\004\253\007\t\005\261\005""\004\t\262\0100\005\271\005\240@\005\273\007R\005\300\006\217\335\002D\211\335\010D\252\212\335\007D\203\335\016D\212\335\007D\210\335\tD\232\211\335\010D\242\340\001DX\350\047\301\337\006D\252\271\337\rD\277\337\006D\274\337\010D\274\337\007E\001F\213\326\001\003\000\203\345\006\010\001\200\345\004\003\005\370\344\007\000%\001\366\344\0040\001\357\344\006=\001\353\344\005\216c\227`\226I\007MA\350\344\005E\004\004H\010M\261A\346\344\0050\001I\007MA\343\344\006E\242\347\342\001E\306\223\002\003\000\241\007R\267\204\006ED\004\004\240\010R\267\204\0060\001\241\007R\266\204\007UE\263\343\007E\263\343\006E\253\343\rE\261\343\0065E\256\343\010E\256\343\007EX\243\331\001\003\000J\273\047X\236\331\006E\004\004\272(X\236\331\006\3640\001\273\047X\235\331\007FLOO\000\334\344\001\003\002\237\350\006\010\003\236\350\004\003\007\230\350\007)\003 \230\350\0046\003\223\350\006E\003\221\350\005F\231\346\003\003\001\000U\007\370\345\001V\005\004\005R\010\220\346\0103\002Q\007|\261\346\001Q\006RACTA\255\216\001\001F\004\003\265\007\t\004\271\005\004\010\270\010.\004\340\275\005=\004\275\007N\004\300\006UNC\337_FLAG\344\351\001Fu\377ncTableA\177llocTA_\010\006wFre\346\352\001Get \001\337Handl\005\010In\337foTA_\033\000In\377putParam\357eter\016\007Loo\337kback \003Op\335t\021\025Out.\021roKup\215\nG\t\006\224\004H\301\336\001\213HA\214\354\006H\254\205\006\003\004\377\353\007H(\252\205\006-\000\364\353\006H\247\205\007H\223\212\002\003\000\024D\007\372\205\007H\363\205\016H\372\205\0070\001H\007\376\371\205\010HT_DCPE\007RIO\256\353\001\003\010\247\007\030\007\327\354\005\001H\004\014\270\010\"\010\310\355\004H\t\313\007J\010\034\315\355\005\205\003HAS\325\340\001\003\007z\014\000\034\001z\013\t\006w\r&\002y\n8\002v\014\004L\002y\010P\177\000\240\206\002\230 \006\003\377\t\000\013\004\313\357\004\031\007\373\341\0131\007\373\007E\004\367\t$X\004\366\010S\313\261\003\223@S\301\261\t\010\005\"m\007S\263\261\017-\005\356\047S\260\261\nM\005\004\345(\355\363\002Lk\006\006\006\361I\013""\007\353\007\000\006\013\362J:\007\366GN\007\365Id\007\202\r\007MOD\375D\216\365\002\013\001\201\016\020\002\000\203\014\013\006\200\017?\002\203\014S\002\201\016i\002\006\341\362\005IM\324\344\001\003\000\314\363\006\010\001\311\363\004\000\003\005\301\363\007%\001\277\363\0040\001\270\363\006=\001J\006\357NPUT\322\210\006Ini\277tializ\255\364\001K\001A\364\221\002\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007@\047\002\262\364\0043\002\254\364\006A\002\251\364\005K\250\365\001kKCL\007C\243\364\005KC\315\363\014\304#\000H\005C\233\364\0079\000C\006DJ?TA_KDJ\232\007\t\000\000\233\005\004\004\227\010&\000\231\0051\000\226\007>\000<\310\365\005\303\343\001ARRE\300\241\001\003\006\037_ANGL\341\350\001\003\014\327\366\006\000\010\r\340\366\004\003\021\344\366\007=\r\356\366\004T\r\363\366\006\370m\r\242\016|\020INTER\177CEPTTA_\305\007\004\r\006\026\031_\264\016-\007\337\352\013E\021\274\016\200j\007\276\020\207\007\303\017\273.e\025\257.S\007LOP\250K\r\002\243P\022\003\245N\020\r\007\242QG\003`\023_\243Pw\003\244OX\316P\205\204\006\301\362\001LN\336gN\215FQN\372\371\014#\000\271eNs\010N\307\372\006\037LOG10\203a\004\001\260\204\007\000\t\002\250\204\005\004\006\233\204\010*\002\224\204\0057\002\210\204\0078F\002\203\374\005\246\232\002MAC\355\372\001\003\001\003EX\362a\003\004\202\375\006\010\005\203\375\004\003\t\200\377\374\007-\005\201\375\004<\005\376\374\006M\005q\007C\007DFI\331\371\001|\001\007\000b\n\014\001\000d\010\007\005a\0131\001d\010@\001b\nQ\001Dc\t\304\n_\303\010\222\375\014\215!_\275\010\t_\270\n\345\375\006M\353\211\003\003\001\240(\316\230\0070\024\002\326\361\013\047\002\231&MAN\t\321\230\010?MARKET\202\232\002\003\005\000\202H\026\003\266\007\005\010\203I \004\207F0\004\330\206HB\004\203gSS\205\362\001MA\000\005\000\362H\n\001\362F\005\005\355I+\001\356F\3208\001\352HG\001\344gV\270\363\001MA\261V\263\363\007\010\002\320fVP\372.Vh\267\363\0063\002\305hV\270\363\007MA\303c\037XINDE\000\010\207\235\007\037\000\004\027\002\355GX\006\007""\272\204\t\020\004\276\204\006 \004\000\275\204\0102\004\272\205\007Y\nV\010\306n\271\376\006\255\000\004\311i\270\376\007M\342\226\007\275i\220\204\016\225\204\007\221\204\t\366\221\204\007ED\315\370\002TA_M\000\004\004\304\206\007\t\005\307\206\005\004\t\305\206\0100\005\311\206\005\240@\005\310\206\007R\005\305\207\006\254\204\003F\304\243\007M\021F\305\243\006\003\005\247\207\010F\305\243\006$\001\240\207\007\375F\304\243\007MIDPOI\001N\221\210\002\004\004\215\210\007\t\005\220\210\005\004\t\216\210\010@0\005\222\210\005@\005\221\210\007R\005\216\211\006I\265\047|\004\004i\nRICE_k\010\000\007\006h\013\"\002k\0102\002i\nD\002l\007\216\374\376\001MIN\274\204\006\004\004\347\010N\006\267\204\013IN\260\204\0220\005\351\0060\004\347\010\030B\004q\010\275\205\004IN\243\205\005\271a\004\007\000y\t\274\205\016\034\010\342\210\0146\010\204\007\204\206\006\205\t\240\231\206\006\206\013i\014\355\047\244\001_Z\021_\362\\\n_U\014\265\212\007INUS\003_D\355\210\002\004\004\335)\027\002c\010\006\007\000\317i=\003g\0101\003\335)C\003\332Hr\001QM\327#\006\002f\rMg\014M\324\017\0202\003\325GB\003f\rM\340\t\271i\272(\320\260/\264(\257*\356\214\007O\271\002OM\n\227\217\007O\252\007O\236\016&\000\215\217\0051\000\032\207\217\007O\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\201\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004""\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\201M`\014\361\206\006\027\005\271\344\013-\005b\nMP\376\357\007M\005\340&\343\257\002P\335\257\010P\336\257\007UP\327\257\016P\336\257\007P\334\257\tP\335\257\010UP\254\263\002P\246\263\010P\247\263\007P\240\263\016\325P\247\263\007P\245\263\tP\246\263\010PVX\231\271\001\003\000\373gVO\356FV\263\270\rD%\001\350eV\270\270\010=\001\331fV\271\235\001WPVTH\010TI\007T\321\362\014\204%\001J\006T\305(>\000\254\204\006\373\252\001H_older\300\253\005P\t\007\036\303\253\004QSTI\265\271\002\003\003\326\364\006\000\010\004\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006TI\004\371\376\005R\336\265\002R\242\223\010R\305\261\007UR\276\261\016R\305\261\007R\350\227\tR\304\261\010\003RO\341\242\001\003\000\230\305\001\003\001\223\366\006\010\002\000\262\377\004\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\346\252\006OC\255\262\001d\000R10\020\320\234\001\003\004[\t\026\001_`\007\006\006`\n\000 \002f\007/\002g\t@\002j\tU\nS\tT\327\366\014\227\001_N\010_I\n_\276\010\200\217)\245\010>\017D\010A\nC\007\354\231\002R\261S\366\271\007\010\001\345%SI\223\rS\250\367\271\0060\001\340\047S\366\271\007R\316\272\002R\252\310\272\010R\311\272\007R\302\272\016R\311\272\007R:\307\272\tR\310\272\010RVO\350\301\001\003\001\000\214g\021\000\243F\004\005\213h\033\001\216e\047\001\370\214g5\001\300\204\006estor\373eC\366\261\002Defau\377ltSettin\177gsTA_SA\341\266\001\000\003\000\222\240\003\003\003\254\373\006\010\004\301\377\004\003\010\261\377\007\000+\004\247\377\0049\004\230\377\006I\004\214\377\005k\000P\t!_O\007\201\373\014%\001I\007_D\t\373\372\006;SI\204\243\001SIN\353\277\001\003\001\000\255\007\021\000S\006\004\005\250\010\033\001\251\005\047\001\030\245\0075\001\244\006INF\tF\010\235\r\250&\000E\007\242\010I\336\243\007S\256\276\002S\252\362\233\010S\225\272\007S\216\272\016S\225\272\007S\212\270\240\tS\224\272\010S\367\254\002\003\000\245GMF\321\277\006SM\312""\204\r%\001\236EM\317\277\010,=\001\227FQR\220\251\001S\004\000\372G\000\t\001\372E\004\005\365H(\001\366E4\001\362G\274B\001\361FTDDE\331\277\001S\000\004\002\330g\t\003\332e\004\007\327h,\003\332e\260:\003\330gJ\003^\007OC\213bT\204\005\000\342\307\001S\004\002e\010\024\001\360fT\000\005\006d\t\036\002g\006,\002e\010<\002c\n\201R\320\242\002e\002\335\207\t\010\006\325\006\231\000R\000\342\207\016/\006f\t\360\207\nQ\006\331\n\306\013\306\n\224\276\205\r\211!_\305\t_\302\013\312\205\007U\rB\221\207\001UB\371\206\007\t\000\370\206\005\004\004\200\362\206\010&\000\362\206\0051\000\355\206\007>\000\353\206\006U\006\206\232\001SU\302\230\007\010\001J\006\353\231\r%\001pJ\006\357\221\010=\001I\007PER\227\265\002\000\250\002\005\005\251\010\n\006\262\006\005\n\266\t5\006`\300\006G\006\305\010[\006\302\210\006et\316\211\003\374\301\211\t\021\000ompati\277bility\334\211\001e\375t\251\274\nIntege\275r\007\020Real+\003U\367nst\312\275\001Peri\373od\241\212\001hutdo\177wnTA_T3\000\002\006\242\372\006T3\222\371\005\003\004\217\377\007\030\000\201\377\004\020\"\000\356\376\006.\000\336\376\005T\221\306\002\003\000\254\312\001\034\003\001L\007ANHO\006\004\005O\010\000\033\001T\005\047\001T\0075\001U\010F\tF\010\224\256\372\014\206\000_E\007_B\t\242\372\006TZ\357\310\003T\326\304\tTE\331\304\007T\322\304\017\340\047\002\373\005\331\304\nA\002\376\006RAN\205G\243\355\001T\004\002\321\047\t\003\250\377\004T\000\004\007\330(,\003\337%:\003\341\047J\003^\007\035I\263\312\002TRI\371\247\010\010\003\\\006\021I\231\306\016)\003Z\006I\307\254\tE\003V\010\016\240\310\001TRI\234\310\007\010\002T\007\232\310\r\240\047\002R\007\243\310\010A\002\241fS\255\322\001T\001S\247\322\007\010\001\222%\024\000\377\376\013%\001\363e\2401\000\362g>\000I\007\237\334\001T\215\222\010T\025S\217\315\006T\207\222\016T\216\222\0070\001H\010\016\216\315\007TYP\213\252\005\003\005\236\205\007\025\004\000\245\205\006\004\t\251\205\010\037\005\262\205\005/\005\266\205\007A\005\016\261\376\005ULT\317\306\003\003""\003\225\376\006\010\004\000\256\377\004\003\010\246\377\007+\004\244\377\0049\004\235\377\006I\004\002\231\377\005V\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\200\342\376\007%\001\375\377\0040\001\363\377\006=\001J\006H\006\204\326\001VH\376\325\007\010\001K\005\024\000\366\354\013\300%\001K\0051\000I\007>\000\235\006OR\005T\232\257\002V\004\002\242\007\t\003\247\005\004\007\200\247\010,\003\255\005:\003\256\007J\003\205&W\002\336\337\002V\004\000\206\047\t\001\211%\004\005\207(\200(\001\213%4\001\212\047B\001P\007\331\321\002V\001W\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\t\014A\002\227\377\005WA\300\306\001\003\000\375\372\006\010\001\000\353\376\004\003\005\331\376\007%\001\315\376\0040\001\365\377\006=\001\026J\006CL\376\257\005W\004\004S\007\t\005\000Z\005\004\t\\\0100\005d\005@\005g\007R\005.\300\006ILL\230\317\001W\004\001\303\007\000\t\002\307\005\004\006\306\010*\002\313\0057\002\313\007PF\002\241&\334\324\002\366)W\303\320\007W\274\320\016\325W\303\320\007W\346\266\tW\302\320\010ZL\000\260\325\003\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\200\240\377\0046\003\222\377\006E\003\211\377\003\217\326\001\371\321\001S\277treamT\001\007.\377open_and\037_fill\335\213\003\342\213\004%\004\000\360\213\0033\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024\331X\364\212\002 \006X_>\022SF,\303\212\001\240\004SF\016\024I\225\212\001\035\005\001I4\023\346\211\005\322\211\005\364\004\001\013\361\013\246\211\003p\242\211\004\245#\000\n\237+VAR\353\210\001\230\315#\000\007\026\014HF\275\210\001\036\004H@\273\023\207\210\003\214\210\004I\004\232\210\003\3431V\340\207\010\340\335\207\001\340\207\002\177\004\354\207\001\037\022WMA\354\256\207\002 \005MA\3532WAD\000\375\206\001\241c\000\007\230k\303\206\005\312\206\006(\004\332\206\005\300\230q\207\206\002\213\206\003V\004\230\206\002\026\022MA\005W\226\006W\222\024\253\205\002\247\205\003\316\204\003\000\t\374\307\204\013\352\322\002tion__\377call_fun\365c\n""\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str__\377ARRAY_TY?PES__I\372\312\002\016\002\371S\006\013\352\272\002_SERI\376%\000DEFAULT\376.\000PANDAS_\377DATAFRAM\347E__\013\004#\004_PO\307LAR\023\013\014\003\030\006yx\377_PyDict_\377NextRef_\375_\301\325\001UNCTIOgN_NS\000\227\000__\331!\375_\004\000nnotat\311e\010\000\353#_\351-\3314_c\337lass_\352 it\273em:\002opyC\001d\217eepc\004\005\205\001d\000d\303oc^\001\312Af\001\237Afl\237ags__\232QJ\ti\247nit\231\001\237V_\251C_\367mai\262`__me\363ta\226\003\334\000modu\375l\330\002mro_enat\354B\365\000\273B\004\001ew\367\001\277prepar\201\"p\362\277 v\257\231\002\220!qual>$\005reduc\245\"+\000\232\351@_\276`t_B\005\372B_=_\243`vers\275\204\002\013\000\373es\271\002unico)d\342!\232\204\001d\265\245\003s\306\212\002\230 \377s_is_cor\277outine\316\000o\347kupF\001\345\204\003succce\351 \376`\274\"unR\000\327id_\001\014s\003\013re\023ti\257\000\215\001g\255\331\003\237\331\001\004\010\000\341\331\002\030\004\301\330\007)\004\263\331\017B\004\243\331\022\024\005\240\247\331\017x\004\333\000\301\234\010\r\005u\226\234\004_Ip\231\234\002\270!i\233\321\006\306!r\353\247\003\013_c\350\332\002_\261$\363!\357\247\002\351!\227set\027\005s\204\250\004\016\006o\350e\014(\001a\020s\214\235\004a_c\377losea_hiwgha\325`wa_\356\215\001\375a\231\004sa_rea\365l\000\0030\007\0031a_v\277olumea\241@l\307era\270\210\001\000\t\274\204\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016B\003\377ppendarg\376\000\000sarrays\377asciiast\377ypeasync\367io.\331fsatr\356\355#avg\366#bbe\377gidxbitb\377ytes2str\376\357#stickcl\376\224\204\001in_trac\331e\301\335\001\247 ne\252\"co\327lle\237\212\002s\010\000um\237n_sta0\000\222!n>\020\000pydde\371\204\001\266E\374\253\212\002\373\204\005descri\375p\356\212\001displa\271y\212\212\002\221\205\001doc\325 n}t\316\"empty\341\000\374\241\000\347\000swithe\371n\364 \356 efact\367orf\352\000d_ma""\260\356\001\006\003\320c\024\001k_\002\007l\217imit)\001!\007\"\004iwrst-\004lag\233\210\002\366\237\210\003lo\214\206\002dictx\275\210\002\342!\306\210\002info\317\210\002<\234!\330\210\002obje \003\300\214\002\020?\003\274\214\005\345\213\001\311\214\005s\243\214\001\273\214\003\253Ch\006\007\213\214\002\302\214\001p\275\340\005sg\371\337\001\366\000\002sh\364\340\002help\366\243\204\001hi\217\256\001ylen\335h\351\264\002iid\304@im\375p\333`_error\177inindex\247\001Pc\t\266\215\003\367\214\001\000\007s\205\215\025i\344\243\003\347is_\203B\356\212\001ske\335y\000\000skw\360ale\277ftbars\205\000g\353th\274\215\002l\350\341\004low\366\000\000er\224Cmaxi\277mummax\356\206\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\273\212\003\377msgmulti?pliern\254\216\001\260\216\001\357dtup\366\000ann\257bdev\000\002d\006\003u\257pno_\361\000s\227\260\001_\010\332)\261`\261\217\003s\006\001\274\217\006\010\003\363\342\002\366\025\001py\302Coffs\277etonre\320\212\001e \373\225\001\377\225\001\365\245\001\226\210\002\203\226\to\315\343\001\215\220\006\372\220\220\014s`\007order\373ed\311aoutou?taroon\217\246\001\004\005\377upoutbea\037rpowe\221\213\001\226\206\003\021\001\367ull\r\005doutofama\002\002st\t\003\377stkoutha\000\304\210\002\005\002\310\210\001\016\002\205@\026\002\300\002\345\213\001\037phase\356\213\002\302\247\002\000\007\375_\350\220\001outjou\036J\002lead\230`(\001\305B\373ba\254\000utmac\360\200\001\003\001\201\204\002\014\003sign\347alo\033\001\227\002max\256\010\002xid\000\006xZ\005m\337iddleH\005in\3063\001in#\004\004\002 \007nu\377svioutnb\277elemen\267!p\365l\016\004p\305\"put_\"\322\217\002o\275\346\002\324\222\002\000\010s\021\003\000\004\365s\265\223\001i\302!quad\237ratur\212!\336\212\001o\205u\366\231\001l\341\t\365\212\001\241\n\206\213\001u\317pper\207$\232$slcow\226A\004\001\207Asm\260\001\374\003\000\217&supert\373re\277\"swing\340\234D\007\002\240C\027\005X\006pan\007das\213\207\002\220\207\002\257\224\002\225\207\007\244\207\002\277spenet\374""\213\003p\377ercentil\371e\325\215\003\333\215\003spola\245r\003\000p\373\224\002\200\225\0020\206\225\0021H\205\225\t\214\225\016\335\225\003s\260\225\002\003\000o\275\001?yrange\333\213\001\220\215\001\372\224\215\0010\231\215\0011repl\377aceresul\307tsr\216\000\305\254\001\357\204\001t_\336\377\220\001righ\246\207\002ro\223c1\362\216\003\007\0002\001\006\014\004u\377nsschema\277second\271\004e\003lf\256\226\003\362\216\001\222\227\006\361\214\001\203\217\001\302\211\tp\006\007\331\226\002\242\217\001\304\211\007set\373\221\005\300\270\270\003\242\215\001\263\204\003\272\213\003\277\204\003\256$ki\007p_f\230\213\001\327B\333\213\004\006\003\320$\017lowk\r\010\346\213\005\210a\351\213\002\234\221aR\004low\205D\241\215\001l\377evelstar\365t\300\230\002s\350\214\001cmet\377hodstdde\255v$\005r2\222\216\002s\215\237\002s\375y\316\256\003talib.\374\356\223\001\005\000thread\377ingtimeS\217tamp\005\001\323\221\003\000\0071\372\013\0072\026\0073to_nOumpy\252\217\001\256\217\001_\334\223\004\277update\000\003_ \351\214\001\355\204\002\354\231\002\253\003\344\224\004v\375\215\003\204\221\003\317warn\000\001\222\273\001wm\375a\326\222\003\200\001\330\004\007\200\377u\210C\210q\330\010\020\377\220\005\220Q\330\014\r\330\377\020\026\320\026+\2501\250\377A\330\014 \240\013\2501\367\330\010\017\035\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\377\021\200\001\340\004\017\320\017\377#\2401\330\004\013\2101\376\013\001\022\220,\230a\330\004\177\025\220Q\220o\240Q\014\003\367.\240\001\r\002\320\026\047\240\375q \002\320\022&\240a\240mq\017\004-\250#\003\320\022\035\000\377\250\r\260[\300\013\3101\356+\004.\250a+\0042\260!\355\260\016\0059\270x\001#$\360\377&\000\005\014\210;\220a\375\220\231\000\r\210T\220\026\220\373q\230\336@\r\210]\230!\377\2308\240:\250T\260\021\377\330\004\r""\210U\220\047\230\377\022\2307\240\"\240A\330\377\004\017\210w\220e\230?\373\250\"\354@\004\016\320\016\037_\230q\240\010\250\225`\021=\000\377r\230\024\230Y\240k\260\377\024\260V\2701\270I\300\377]\320RS\320S_\320\377_`\320`o\320oz\177\360\000\000{\001B\002\004\000wB\002H\003\001H\002I\n\001\357I\002J\002\362\003i\230q~\207%#;\2701\360(f;\363M\270\277\000\203\200 [\320[\\\377\320\\h\320hi\320i\335x\243\000y\001D\242\001D\002\335K\251\001K\002Q\260\001Q\002\235R\267\001R\002S/{\247\000]{\320]\247\000j\320jy\320 wz\001E\317!E\002L\326!\271L\234\007\354 S\002T\310/$\375%\301\2028\320\033+\2502\250\373Q\330\356L\027\230\002\230$\377\230i\240{\260$\260f\377\270A\270Y\300m\320S\367T\320T\367@a\320apw\320p{\372@|\001C\371AIC\354G\217`J\342 \357\204\003j\350\204\001\236\206\205\003$<\270A\302\2028\237\003]\343\270!\202\200\"\310\20236ub\320b\277c\320co\320o\322 \177O\360\000\000@\235\204\005\227\204\004X\334\205\001\367X\002Y\343\205\001Y\002Z\002v\3110\320<\227@U\360*\310\2066\356\330%-\300q\344\202\"`\320`\376\252\204\003v\320vw\360\000\000\227x\001G\202\207\001G\312\205\005\246\004_\356\227\207\001_\002`\236\207\001`\002a\356\250\020=\270Q\326\202>^\2701\356\234\204\037n\320T\343 d\320d\377p\320pq\360\000\000r\253\001A\264\210\001A\335\205\005S\302\210\001S~\334\047\360\000\000Z\002[\333/\373%&\257\205:,\250B\250a\376\334\205\r\030\230\022\2304\230y\377\250\013\2604\260v\270Q\377\270i\300}\320TU\320\357Ua\320a\232`q\320q\337|\360\000\000}\273\210\005J\002~\336\205\004\360\000\000K\002L\342\211\004\367k\240\021\360\213\005%=\320=\316;\000V\3602\325\2028\245\001m\270\367=\310\001\213\207\013\024\320\024%\357\240Q\240h\301\001\022\320\022\337#\2401\240H\266\213\001\021\220\370\260\022\245\207\003\277\000}\320}~\360_\000\000\177\001N\252\213\001N\306\204\005\272\223df\277\213\001f\002g\306\213\001g\273\002r\315\213\001r\002}\324\213\001}\267\002J\003\320\207\001\003P\003\001P\273\003Q\n\001Q\003\\\021\001\\\273\003g\030\001g\003r\037\001r\273\003x&\001x\003y-\001y\347\003z""\003\364\215\003\222$:\320\025\375%\377\215\002%>\270a\360,\242\333\200\353\320>;\000W\254\210\001\016\210[\367\230\001\230\222\220\002V\2206\230\047\021\230!\236\220\001\251\220\005V\341\220\001\235\220\021\372\213\210\"&\243\007b\320bk\320\235k\371 x\320x\335\215\003\241\220\004T\256\271\220\001T\002[\300\220\001[\355%bn\316\220\001b\002c\331\211\017\047(\255\215:\357.\250b\260\302\205\014\021\220\032\377\2302\230T\240\031\250+\377\260T\270\026\270q\300\t\177\310\035\320VW\320W\251\210\003Ws\320s\263\205\003F\343\221\001F\214\217\005]M\361\221\001M\002N\340\221\004m\354\223\007\010\235\003\237\2016\202\210\0346j6\226\210\010\303 \357\2139\376\277$\r\320\r\036\230a\230Ax\267\225\001\000\t\251\201&\337\221\004\242\204\013W\312\224\001\353W\002\374Dh\330\224\001h\002n\356\337\224\001n\002o\346\224\001o\002p\376\347+9\220A\200\001\340\047g?\270q\244\220:\230a\r\270\367\221\016~\211r^\320^_\320_\314\204\003\200\202\222\003\370\215\004\327\211\004\317\204\004\311\207\006\376\227\003\231i?\377\320?V\320Vm\320m\347n\3604\373\2168\257\003Z\300z\377\320QR\330\004\027\320\027\337(\250\001\250\030\343\227\001\030\320\377\030)\250\021\250(\260!\374\n\013\331\204\024`\320`j\320j\377s\320st\360\000\000u(\224\216\005\324\227\004\247\226\004\\\345\227\001\\\213\211\005\237\213\004\272\223\211\004~\201\230\001~\002I\251\213\001I\273\003Z\260\213\001Z\003`\267\213\001`\273\003a\276\213\001a\003l\305\213\001l\373\003w\314\213\001w\003G\004\360\337\000\000G\004M\003\001M\004\275N\n\001N\004O\004\236)""\320\377\013\036\320\0362\260!\200\357\001\340()\245\225:/\250r\375\260\250\230\016\033\230B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310-\320WX\377\320Xd\320de\320e\307t\320t\207\223\003\322\221\004\350\206\006\360\000/\000N\002O\330\231\004n\277\232\001\350\233\003\302\240\000.\305\2228\220\020\322\216\027\251\017/\320\377YZ\320Zf\320fg\177\320gv\360\000\000w\217\233\005\024\211\233\004\335\214\004P\250\233\001P\347\211\005\360\216\004\310\214\022UE\363\216\001E\357\216\005[\201\217\001[\302E\035b\217\217\001b\003c\333\216\004\376\004\331\216\006\037(?\320?W\310 \323\224:\257A\317\034\270]\310\341\227\016\245O,\320oVc\320c\324\223\001\320q\274\220)\375h\262P@\320@S\320Sgk\320k\250\221\003\354\226\006\3608\235\202<\177\035\270m\310=\320X\324c\371u\255\222%\217\204\022d\320dq\320uq\302\222\n]\200\237\001]\002^\207\237\001w^\002j\216\237\001j\002k\225\237\001\351k\246\220\005\312DL\313\222\001L\003R\356\322\222\001R\003S\331\222\001S\003^\356\340\222\001^\003i\347\222\001i\003v\356\356\222\001v\003|\365\222\001|\003}\356\374\222\001}\003H\254\206\001H\004S\356\263\206\001S\004^\272\206\001^\004d\356\301\206\001d\004e\310\206\001e\004f\354\267\206\004\200m)*\342\234:0\260\002\375\260\347\233\016\034\230R\230t\240\3779\250K\260t\2706\300\367\021\300)\331!Y\320Ye\377\320ef\320fu\360\000\003\000v\331\227\005\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005\316aC\021\220\036\270\242\007\207\034\320u\374\263\222\003\200\037\026\220f\230J\240\377a\330\004\010\210\007\320\017w\037\230q\361\244\001q\230\006\333\244\001\376\347\244\003)A\320A[\320[?u\320uv\3600\315\2338\352!\377-\270\177\310o\320]^\375\330\315\245\001 \240\001\240\030\250=\021\000\t\330\004\021\220\3542\364\207\006P\246\221\004\216\234\004\325\232\004\345\222\004c\254\244\001c\314\216\005]v\272\244\001v\002|\301\244\001|\354\227\005\345H\360\227\001H\226\204\005\340\207\032o\240Q\266\354\246\001;\220\227\246\001*+\314\241:1\367\260\022\260\272\234\016\035\230b\240\377\004\240I\250[\270\004""\270\177F\300!\3009\310M\277\211*\235Q\204\246\003\320\026&\274A\224\250\003+\373C\300\317\2459\320\0332\260\"\367\260M\300\373\245\016\036\230r\240\377\024\240Y\250k\270\024\270\377V\3001\300I\310]\320\377Zg\320gh\320ht\203\320t\220\205\003\325\244\004\203\213\004\350\221\004\262\207\013_\331\002\231\251\007\305\251\005,-\247\244:3\260\3732\260\323\244\016\037\240\002\240$\377\240i\250{\270$\270f\277\300A\300Y\310m\204\2471\320\203\026(\255\251\001\357\252\003\245\000\313\2419\241\004\0203\220\016\323\224\005\000\010\021\220\216\200!\321\240\004\350\240\237\004\353\215\004\265\221\013d\257\252\001d\002m\352\266\252\001m\325\233\005t\304\252\001t\002u|\250e\320\002\025\220V\2309\244\253\001\376\357\206\007\026\220a\220v\230Q\274\324\254\001\002\027\013\210<\220\333\254\0010\3351\336\247:7\260r\341\252\016\320\021\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\247\031\320R\216\254\003\265\235%W\214\205\005,\354\362\254\001\250\256\00345\210\251:;\2702\376\254\226\016\320\021(\250\002\250$\377\250i\260{\300$\300f\317\310A\310Y\246\217\002\320\2433\320\026\3410\271\233\001\326\257\003\333\242\003\302\255\t\n\210+/\220Q\220a\267\235\0056\214\243\001\357\256\t\177\030\270\032\3003\300a\346\256\030\376\270\255\"[\320PS\320SY\200\352\222\002\360\220\003\322\242\006\353\236\013\314\235\004\324\242\004\317y\220`\232\257\010\265\244\001\221\230\002\300\250\t\227\200A\035\300\346\245\016\303\026\220\320\260\r\312\020\325\240\002\357\225\013Z\002^\226\247\004\360\000\000[\345\220\005u\202\261\001uu\300\213\005B\261\244\001B\003C\270\244\001oC\003D\003\374\260\016>?\242\262\n\374\200\202:\231\256&k\320QT\320T\277Z\320Z[\320[\277\222\003r\037\320r~\320~\360\253\003\200\244\004\327\004\010\371\243\004\214\246\004\201\235\004i\353\253\017\304\242\003\300\203F\276\256(\250\274\017\310\203?\247\260\010>\340\204\001\360\212\200L_s\270A\307\261\037\230Ls\320s\214\200J;@A\235\267\n\014\210K\234\267\t\243\207\022\3515\203\253\001\356\245\027Q\257\200\"V\320VN\344\264\003f\320f\304""\236\"\242\222\004i\334\267\001ai\313\227\007\313\263\016\316\000\345\206F\320\033\373\250\004\377\023\320\023$\240A\240X\376\226\265\001\021\320\021\"\240!\240\3478\2501\366\223\001\374\250\017\013\320S\320\254\200.\305\243\022\322\252\004\365\234\004O\366\254\001O\003\335U\375\254\001U\003V\204\255\001V\003\331W\320\254\004\311\251\004?\230\233\240\001@X\047\320XY\340\203I\203\253\001}\232\204\017\331\037\017\360\000\000t\257\242\014\353\230\013\234\233\004\316D\255p\270\273\001p\002\376\225\004w\306\273\001wC\002x\241\253\017\327\227\001\350\273\003\314\263\004\177\361\273\001\323\177\002\203\237\004\306\242\004h\320\242\001h\004\343i\004\307\244\n\235\211<\223\246\002\320=O\037\320Of\320f\231\272\003\277\240\004\226\247\004\370\262\227\006\263\271\r\307\252\017\033\320TW\320\377W]\320]^\320^g\243\320g\346\244\003\263\265\004\265\235\004q\312\275\001q\273\002G\362\260\001G\003_\371\260\001_\273\003s\200\261\001s\003J\260\244\001J\273\004K\267\244\001K\004W\276\244\001W\273\004X\305\244\001X\004g\314\244\001g\273\004r\323\244\001r\004y\332\244\001y{\004\177\341\244\001\177\004@\005\323\267\0017\005A\005\367\246\016BC\273\213I\300\244$\277+\320UX\320X\276\250\003h\003\320h\256\233\002\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004%e\341\277\001e\313\237\005\217\261\004m\364\244\017\313\003\261\r\312\210\007\326\257\006\201\301\0017\240\322\257\nU?\260(\270*\300F\340\242\001\250\2102\035%\247\266\004{\320R\203\200K\256\275\010\237@\330\246\301\013\304\n\321\222\0226\310\320\302\024\320\033\200\330\267$\200\200N\223\270\010\313\003\231F\360\213\014\215RE:\230\20065\251\264\004\013\320S\245\203K\305\t\320\370\211\002\306\267\t\217\222<\252\253\001\033\245\217\001\023\220\377>\240\021\240(\250!\330o\004\022\220.\200\241\005\021\220\250\253\017\016\304\205\014s\320s\304\277\003\335\274\004\257\253\013\246\246\004P\314\205\004\352\207\004\363\211\006\312\276\001\002\262\224\004K\370\271\001\351K\363\213\005\356\271\004]\215\272\001]\003^\314\360\251\013\203""\214\003CD\213\224I\323\245$;\320\357VY\320Y\220\310\003i\320i\200\212\300\006\354\306\004\306\305\004\343\266\004\214\300\004\353\273\004\300\207\006\360?\000\000m\002n\002\204\246\016\302\014\034\356\220<\331\266$\033\320T\203\200K\224\267\010\237@\000\233\257\t\272\227<\225\251\004\323\262#\242\251\017\206\2021\376\265\004\351\231\004\232\270\246\004A\241\277\001A\003\326\253\004\233\204\004c\356\266\277\001c\003d\275\277\001d\003o\256\304\277\001o\003z\313\277\001z\303\215\005P\356\202\263\001P\004Q\211\263\001Q\004R\371\004\211\252\t\364\262\010CZ\320Zqw\320qr\253\277\n\016\210k\244\274\t\362\334\235\0227\302\213\027\206\303\001l\270,\300\016\353\302 {\320R\325\204\t\330\253\003\360\315\004\340\275\013\320\236\307\013\267\270\004\266\277\004\257\277\004@\314\301\001@\0032\253$B\230\301\013\263\320\001DE\242\316\001\331\211E\372\324\274\034U\364\264\004+\320UZ\320\375Z\327\313\003j\320jw\320w\000\261\316\003\203\315\004\366\274\004\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\346\334\270\016YZ\326\235\023\351\230\016\025\240a\366\362\277\tT\260\256\241\003h\310j\320\361X\261\222\001\377\320;\253\241\014n\320ns\037\320sy\320y\300\321\003\231\320\004\213\320\013\240\311\261\004\300\311\004\377\273\004\376\302\004\301DF\233\305\001F\025\003\251\223\004H\330\237\017Y\350\310\003\217\322\006\211\307\n|\254\243\006\300\200IM\270\034\300Q\346\272%@\344\241\036\213:\275\214\013\300\307\004\214\273\013\204\242\004M\303\307\001\343M\003\370\206 \330\225\004\213\207\006\360\000\000\267R\004]\253\273\001]\004\333\227\004x.\271\273\001x\004~\300\273\001~\334\225\007\347\324\t\346\262\273\010Z[\243\203Z\307\2425o\320o?t\320tz\320z\304\322\003\355\323\004\200\212\325\006\350\323\002\263\316\013\371\300\004\370\307\004\355\211\004\361f\360?\000\000H\003I\003\352\322\016\374\000 \270\246\022\270\205D\267\324\006\246\236\t\261\236\n\220\272\324\017\373\244\014\320\313\200=\376\205\004\325\270\004\344dX\265\314\001X\003T\377\213\004\370\213\004u\312\314\001u\333""\270\005w\240+\376\307\236\003Zr\360\000\000s\001\014\243\330\004\247\264\004d\002\311\265\n\350\205M\366\322\007\366\317\001C\330\004\320\305\t\200\201I\212\323\004\317\314\004{\266\333\001\201{\364\265\005\356\265\004\274\302\004\260+\223\273\004\275\216\004p\356\217\317\001p\003{\226\317\001{\003F\256\306\302\001F\004R\315\302\001R\207\235\005Y\236\333\302\001Y\004Z\004\375\327\n\245\306\003Z\360\336\303\003\360\315\004\323\233\004\312\237\004@\003\3606\374\274\335\010\222\201S_\270O\310?\320\025Z\356\332\001\330\317\341\005X\303\267\002\335\341\003\000\t\002\023\002\021\213\2045\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\277\360\000\000^\003m\361\321\001mt\312\321\005\203\276\004B\257\305\001B\004C\266\305\001QC\253\305\005\342$\231\211\004c\322\305\001c\220\276\005]o\340\305\001o\004z\347\305\001z\246\211\005\335D\211\240\001D\005E\220\240\001E\005{F\005\236\333\n7\220\047\230\306\341\001s[\\\324\210\\\337\234\047U\320U\310\337\003\377e\320ep\320pu\320\017u{\320{\213\326\003\214\316\004\321\273\013\344\330\006\037\360\000\000a\002\332\244\004\343\204\004\220\257\004\032\334\204\013J\361\221\017\\]\323\212\\\300\322$\312\250\014\377q\320qv\320v|\320\001|\352\322\003\354\332\004\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004H\210\261\004\236\312\004\322\326\004K\303\250\013\265\345\001\\\274\307\003\310\236\342\004\226\327\004\256\224\0072\304\205Z\376\324\001\177\270\037o\310_\320\\\257\323\001\350\277\031\351\252\036\000\2333\333\326\004\314\244\004\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\350\264\230\013\207\206\004\221\305\004I\313\314\001I\004T\256\322\314\001T\004_\331\314\001_\214\247\005m\356\347\314\001m\004n\356\314\001n\004o8\335\314\004\212\326\004\263\300\003]^\360\306\215[\363\324\004\217\020\320\020!\313\240\005\310\255\013\214\251\036r\037\320rw\320w\277\333\006\350\347\004\247\331\013\036\260\326\006\360\000\000c\271\333\014\201\216 \357\210\004z\347\251\004t\365\333\001t\003u\003\261\321\n\342""\321\274\003]\336\314\003\323\275\007\334\200_\016\270n\003\310A\262\253.\2403\335\333\004\200\277\004\274\321\013\377\214\007\017\000\000@\003\375\257\004\312\321\004\303\321\004\360\335\004\275h\226\336\001h\003i\003\316\323\016]\344\216\343\003\302\223\007.\367\214Z\323\331\001\017\270\177\003\310a\225\307\031\252\2034\211\327\004\233\340\004\350\237\013\330\272\013t\314\314\004\230\245\004e\263\340\001e\003k\272\340\001\201k\355\323\014\302\215\004\310\256\004\356\237\023\313\332\004\322\307\003^\371_\343\226\\\204\2563s\320sx\320\301x\270\273\006\364\356\004\272\340\004\302\331\004\266\224\007\000\000\003d\002\240\326\013\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010\363_`\342\230\\\263\2473t\320ty\003\320y\334\251\n\225\346\004\276\333\004\263\352\004\347\305\004\342\212\013\014\272\264\004\245\227\022N\003\214\317\016\200 \346\204[\374\245K\240\327\200A\352\270\022\276\332\013\225\323\004\213\224\004D\317\332\001D\273\004O\326\332\001O\004Z\335\332\001Z\273\004j\344\332\001j\004p\353\332\001p\273\004q\362\332\001q\004r\321\246\025a\302\213\242\002,\245\226Z\243\315\026\360\365\006\265\315\017[\320\357X[\320[\212\353\003k\320k\007v\320v\371\361\003\365\365\004\377\361\004\251\363\004\243\357\004(\307\351\013\273\347\004\340\217\013N\330\351\001N\332\273\005\336\331\004\350\316\351\013\260\251\004\316\351\004\177\211\352\001\177\003@\236\271\335\001@\004A\004\232\316\013\374\347\003w9x\316\245\036\265\264\014\025\240g\375\363\001\234\310\017~\362\245\005e\320eo\320o\330\323\001\000\252\370\023\265\240K\236\334\004\202\352\004\357\337\004\333\330\004\245\334\013\254\315\004\340\305\251\013\243\354\004\254\334\004\245\334\004\243\215\006\360\000\000\267i\003j\224\241\017|}\263\372\n\013\234\301\372\005\210\246\027\026\240u\260\372\001\324\312\r4\377\300x\310z\320Y\\\320/\\d\320d\337\247\003t\2365\303\322\001qA\312\325\001\251\327\010\350r\\\320\\\241\364\003?l\320lw\320w\363\372\003\272\361\004\000\373\253\013\270\354\004\274\351\022\212\333\004""\270\354\013\263\250\013\337\300\004\212\333\004j\333\217\004n\377\356\001n\272\256\005p\003\215\323\016\177\360\004\000A\002B\002\317\200p\3376\260b\270\001\264+\320\021\377#\2402\240T\250\031\260\377+\270T\300\026\300q\310\377\t\320Q\\\320\\`\320\031`\232\341\003\271\371\001\320{\211\361\003\322\254\013\365\311\013\000\267\365\004\364\274\004\235\361\004\375\347\004\226\361\004\360\344\004\302\231\006\217\363\001@\366\344\005\237\341\004\360\344\004\235\361\004\323\224\006\376\377\004+\320\304\001\334\236\372\002\301 C\002D\320\200q8\270\371\002\325\372\001\256\334\t\320\021%\240R\377\240t\2509\260K\270t\377\3006\310\021\310)\320S?^\320^b\320b\317\376\003\354\357\006\000\277\366\004\370\367\004\376\377\004\243\347\013\266\314\022\341\301\004\340\224\013\263\246\013`\336\363\004\271\263\004\376d\215\227\006\244\350\001\003v\204\204\005\271-\276\375\001\300%D\002E\230\203q9\363\270\022\206\371\001\272+&\240b\250\177\004\250I\260[\300\004\346\300\001\377\3109\320T_\320_c\003\320c\352\377\003\326\357\006\344\351\004\214\364\004\227\361\004\373\373\004\000\327\342\004\206\355\013\220\312\004\246\366\004\310\263\013\346\255\004\330\213\004\204\225\013\316\355\250\031\320\026.\232\371\001\210\204\005E\002\275F\340\205q:\270\"\270\207\211\014\320\377\021\047\240r\250\024\250Y\377\260k\300\024\300V\3101\377\310I\320U`\320`d\377\320dj\320jk\320kx\246\352\006\276\304\004\345\261\007\000\000J\002\276\304\013\370\303\314\022\333\366\004\216\266\006\360\000\000B\003h\231\216\004\202\313\004\237\345\004f\215\371\001f\003\376\250\004\224\246\345\004\317\354\004x\224\211\005/\302\366\001\320\206\005z\005\001\314\256\007(\277\250\034\311\215O\224\3135\330\243\023\231\260\004\000\342\270\004\223\265\013\247\362\004\204\326\004\366\325\013\306\315\004\300\373\004\321\311\004]j\330\373\001j\003q\337\373\001q\222\357\005\370\276\373\006\272\373\003\257\370\007\360\006\000\005\017\373\320\016\361\363\001q\330\004\007\200\377x\210s\220!\330\010\t\377\330\004\t\210\021\330\004\022\177""\320\022\047\240q\250\004\213\375\001\267\025\220Q\307\204\002\200\001\036\024\017\273\210q0\004\020\320\020\316\375\001a\276\267\376\004\360\n\000\005\0269\002\320\377.@\300\001\300\027\310\001\356\313\306\001\020\220\001\371\345\001\005\210V\377\2201\220E\230\021\330\010\376\220\253\001\001\230\026\230q\240\005\317\240W\250A\244\320\001q\002-\320\277->\270a\270q@\r/\377\320/B\300!\3001\300\365A\336\371\001Q?\014\016\210g\220\377Q\220f\230A\230U\240\227\047\250\021\357\303\001\025{\010\324\377\005\360\317\014\000\005\020\267\001\215\000\220\031\303\230!\226\337\003\t\001\370\377\003\234\347\002\210q\373\320\020\306\344\002\340\004\022\220)\317\2301\230A\020\004\276\003\016\220\277a\330\010\020\220\013\024\002\010\377\013\2104\210z\230\021\230\377\047\240\021\330\014\024\220A\377\330\010\014\210G\2201\320\377\024$\240L\260\001\340\004\277\r\210Y\220a\220\353\"q\272\025\004\220K\002\t\220\021!\010G\277\2506\260\021\260!\217%\035\177\240g\250V\2601\260L\000\336\244\003&\240\001\240\262 \013\210\3675\220\t\341\373\002\014\020\220\002\377\220%\220s\230%\230q\357\240\001\240\024\352\213\0027\260\"\357\260G\2701\343\345\0021\340\004\347\016\210i\225\325\003\330@,\250D\377\260\t\270\021\320:L\310\327C\310q\304\n\n\202a\013\210\3777\220#\220Z\230t\240\3471\330\014\374@\244\005I\230R\373\230q\303\001W\220A\220T?\230\025\230a\230q\337\374\001\013\001}Q\220%\003\2202\220U\313 \3771\330\004\024\220D\230\005\343\230Q\323\351\003\316\376\002\360!\022\220\037\377\240\001\320!3\2601\320\3174D\300A\333\271\001\336b(\250\262\240 \005\313!\322\001$\230\327 \021\372\223B4\237\352\001\030\230\t\240\021\367\240$\240\355 \032\230+\240\367Q\240d\213\366\002\010\026\220cw\230\021\230)\002\032\230#j\000\227d\240!\315\352\001s\316@6\000\200\375\001n\002\320\021*\250!\320\377+=\270Q\320>N\310\177e\320ST\320TU\222\346\004\3772\260!\340\004\013\2109\374\317\002\230b4\210q\220\003\220\3571\220G\230\365\337\002\007\200w\373\210c\236A\017\210t\2208\376\201`H\240A\330\t\021\220\315\023\336A\017\210""\217 \261\002\001\330\377\010\030\230\013\2401\240D\357\250\010\260\001p\006+\2501\377\320,>\270a\320?O;\310us\000\320UV\213\347\004\377\000\236b\024H\230F\240\222\000s\003\025\373\220d\326@x\240x\250y\271\270a\000\201\0011\220C\344\330\001\3409\004q\005\304\311\001A\230T\331\353\001\351\006\367-\250Q\362\205\002\320AQ\320\353QV\202\376\002X\205\350\0045\260Q\256\334\024J\230f\203\366\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007n\203H\020\220\004\346\204\001\020\220\255F\375\031\315\206\003\021\200\001\360\020\000\377\005\010\200u\210B\210a\373\330\010\242\207\002\013\2101\210A\377\330\014\020\220\005\220_\240\265F\220A<\206\353\001\330\014\330!2\357\220Q\200\001\200\231n\230?\250\000\210\365\016\223\2764\223\367\004\245\374\004\257\343\004\344\372\004\355\224\013\274\276\031\005T\365\372\001T\361\372\005\301\234\006\350\341\r\247\233p\336\347\002\357\016\320\016\037\215\362\007\030\230\022\377\2304\230y\250\013\2604\200\270\323\007\306\263\037\200\375\004\236\355\022\232\342\013\302\352\006\311\375\001\002\005D\221\375\001D\303\252\005\301\333\004\267\316\023\236\322\007\322\277^\0011\330\340.\233\300\023\344\362\004\252\300\013\370\263\004\332\354\004\323\354\004\000\327\335\004\355\273\006\271\337\r\307\301\\\326\224\002\373K\276\2604\315\375\004`\356\260\013\233\331\004\313\335\004\304\335\004\231\233\013\177\002\361\332\r\002\367\250^\001\337\344\r\344\316\036\274\251\027\331\353\004\317\251\013\232\350\004\010\355\306\004\225\311\004\266\260\013A\276\251\016\344\351\025\207\244\016\366\312\027\000\273\334\001\365\243\025\243\356\002\345\206\013\323\200!\273\241\030\323\246\004\246\3166b\237\370\0041\223\213\025\243\357\003\206\357+\320\033\264\2001\007j\320j\230\326\006\230\372\004\354\307\004\260\250\004\345\307\013\001a\202\326\016\264\244p\240\241\002\265\212\013\276\307\022\234\277\014\314\316\020\200\367\376\004\203\374\004\273\357\013\231\257\013\201\343\004\245\302\013\331\324\004S.\233\374\001S\003Y\242\374\001Y\352""\214\007\263\210\032\340\353\246c\362\233\002\366\377\n\227\334\022\243\332\tt\320t\200\305\272\020\254\376\004\313\232\031\221\353\004\373\326\013\264\351\004\347\316\004W6\304\376\001W\003\316\304\013_\003\321\263\r\207\251p\034\373\206%\211\325\tu\320u\334\265\020\321\334\004\251\205\022h\255\355\013\330\351\013\262\323\004Q\246\364\001Q\003\246\314\004p\361\251\004\357\277\006\200\335\r\261\253p1\260\021\223\254\014\377\035\230b\240\004\240I\250\367[\270\004\245\232\0029\310K\320AW\220\261\014\202\266\024\272\327\004\273\366\004\235\306\013j\221\375\001\201j\333\347\005\202\341\013\210\352\004\213\356\004\362\205\004\220\302\013a\226\217\254\005&\240\303\236\006&\300\313\010\352\255e!4\337\255n\207\352\004x\321\377\001x\002\230\330\004\307\316\004\220\336\313\004\271\277\004\302\304\004\300\277\004b\266\256\020\300\200o3\373\2601\363\260\014\037\240\002\240$\377\240i\250{\270$\270f\377\300A\300Y\310k\320Y\377]\320]c\320cd\320\177dm\320mx\320x\344\265\030\000\253\277\004\261\263\004\205\304\013\342\343\013\373\260\013\362\320\004\212\206\004\206\266\004~\242&\360\000\000b\003c\363\260\005g(\250\001\250\243\005\362\202o4\260\215\251\016\377!\240\022\2404\240y\260\377\013\2704\270v\300Q\300\377i\310{\320Z^\320^\377d\320de\320en\320\017ny\320y\256\315\003\327\356\013\322\375\004\260\340\004\000\222\350\004\245\277\013\321\336\013\266\226\013\274\313\004\256\311\004\231\350\004\215\363\004\334\365\342\006\235\270\004)\250\021\271\200w5\260\375Q\225\263\r\"\240\"\240D\250\377\t\260\033\270D\300\006\300\377a\300y\320P[\320[\377_\320_e\320ef\320\177fo\320oz\320z\343\315\003\300\273\350\013\311\365\004\337\272\004\311\365\004\326\277\013\203\341\006\360\000\207\000o\002\331\325\013\315\352\004\275\217\004\226\345\022e\342\332\265\005*\367\353\001\230\263\003\331\207o6\260a\370\346\264p\213\370\004\314\366\006\360\000\000}\002`\321\347\004\336\237\004\226\270\004\321\347\004\342\306\004f\003\300\265\017\356\215\212o7\260q\375\267\r$\240B\377\240d\250)\260;\270d\377\300&""\310\001\310\031\320R\377]\320]a\320ag\320\377gh\320hq\320q|\003\320|\250\357\003\337\345\004\212\370\004\337\370\004\303\272\004\355\345\004\000\307\277\013\270\372\004\255\370\004\206\270\013\352\341\004\267\374\004\302\370\004\244&?\360\000\000f\003g\302\272\005\237\241\002\002\360\202u8\257\272\017\226\267d\242\344\004\276\272\004\314\374\004\215\302\004\200\350\376\004\364\322\004\355\262\004\360\315\006\361\301\004\353\267\010\371\216o9\r\270\212\222\014\320\021\206\267d\312\354\004\225\320\022\354\226\004\010\216\320\031\331\267\n\261\221o:\333\274\017\366\266d\223\304\031\247\344\004\246\223\304\031\320\026\313\267\010\351\223o;\313\274\017(\377\250\002\250$\250i\260{\377\300$\300f\310A\310Y\377\320Va\320ae\320e\006\266\332\001\320l\243\361\003\375\370\004\320\377\004\233\316\004\260\361\004\000\207\367\013\211\325\004\373\226\013\276\251\013\222\272\013\266\231\004\202\236\004\351\363\004\304\245\344\004\325\267\004k\246\304\005\220\243\002\272\215\017\r\210\047T\220\026\340\263\003\364\310\t\021\323\357\026\325\255 \377Q\300l\320RS\320S\277b\320bm\320m\336\352\004\320\303{|\361\254\032[+\361\353\001\237\252 a\300\375|\263\263\002c\320cn\320n\216\265\341\004\320|}\336\251\032Z-\275\255\"q\373\310\014\304\263\002d\320do\320\035o\300\340\004\320}~\354\372\003\341\254\024\344\200-\370\201\303\002\336\256\013\222\337\017\001\310\034\320U\347V\320V\312\343\003\315\334\004\320~\177p\336\273\016\262\233\t\356\201-\310\253\"\021\310,\336\264\002\277f\320fq\320q\277\326\tA\314\214\253\033\374\202-2\260\235\263\016\322\320\017Q\310\377l\320Z[\320[j\320oju\320u\232\227\021E\002\350\312\017\360\351\2009\366\232\002\215\262\013\352\232\017a\310|\320\273[\\\210\343\002v\320v\375\225\021F`\217\005\377\231\024\252\205-\333\231\002\245\263\n\320\021\317\231\017\377q\320P\\\320\\]\320\031]\215\316\003\273\313\021G\002\336\230\033d2\231\312\013\316z\033t\320tm(\352\373\006\r\210\356\224\323\n7\240!\213\372\tU\260(\243\270*\310\310\001\362\322\027\301\263\030%\350\265\007X""\233\320X\302\256\001\320_\315\313\003\333\323\001\360\217\000\000w\001\346\373\004\204\372\004\325\303\022`\341\002\254\263\016\315\305\t\262\014\206\377\0226\310\021\376\214\2002$\260f\270A\270Y\177\300k\320QW\320W\223\374\001;\320^\305\226\003t\320t\225\377\003\256\375\004\004\227\344\004\233\267\022_\254\022\255\376E\224\255\032\367((\226\376\230\272\0325\270\006\270a\270y\017\310\013\320S\200\203@\350\271\010\233\371\t\337\215-\374\354\312\002\333\273\t\022\320\022#\2401\363\240H\240\327\001\347\300\001B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310!\310<\320\377WX\320Xg\320gr\303\320r\271\340\r\304\333\004\367\344\004\345\316\022j\002\360\234\342\n\246\304\003\207\2009\344\252\003\320\021\"\240w!\2408\224\324\001\024\320\024\227\311\001\355h\220\317\001\021\220\345\252\017A\310\\\007\320YZ\304\365\002\323\207\024\373\322\013\254\320\004\300\374\004X\264\234\006\276\334\004\261\252\004=\230\204\304\0012\313\251l\370\313\301\003\223\355\t\237\355\t\017\320\017 \240\315\001\246\304\001\330\004\251\355\013\340\301\022T\320\363TZ\306\215\002\347\220\003r\320rx\377\320xy\360\000\000z\001\000\243\337\004\275\243\004\263\364\004\252\337\004\210\264\004\244\346\013\325\236\013\376\361\004P\253\346\004\340\301\022\230\320\004\315\315\004z\201\375\001z\247\337\007\277\360\000\000A\004L\256\372\001L\253\004W\265\372\001W\245\360\005e\303\372\001e\253\004f\312\372\001f\241\342\005|\330\372\001|\273\004F\260\367\001F\005L\267\367\001L{\005M\276\367\001M\005N\005\321\302\n\377<\220|\240;\250a\200\376\275\313\002A\330\014\023\2206\2309\021\000\004\003\0107\230!\030\001\000\004\3478\2301\003\010\025\0045\230\001\3564\010;\230aI\001:\230Q\340P\001*\004X\000e\001\234\313\002\330\014\r\377\33046\260d\270!\270w5\300\001|\001\017\210q\000\0043\220\007\275\313\001\016\003t\220V\000\003\005\372\217\311\001A&\003u\220A\220S\375\2302\004u\220B\220d\230\375!@\003w\220a\220t\230\2678\2401P\002\320\017\244\317\001d?\250&\260\001\260\021\343\001\277\307\004\327#\2401\261\315\001N""\306\314\001\330\014\377\033\2305\240\014\250A\250\237[\270\001\270\021\237\307\001\331\315\001.\377\250\001\330\020\024\220H\230\277A\330\024,\250G\225\315\001\340\177\020(\250\007\250q\260\231\311\002\375qB\n4\320\047B\300!\357\360\006\000\t\347\316\001\010\014\320\357\014\034\230A\321\314\001U\230-\367\240q\250\232 \017\320\017\037\377\230w\240e\2501\330\024\376\213\321\001x\240q\330\020\031\230\375\026\021\000g\250Q\250a\330\377\021!\240\027\250\005\250Q\276\020\014y\250\002\250\047\243\316\002\014\311\020\225#\353\316\001M\222\315\001\371\316\001D\320\177\030.\250a\250q\330\026\005\376\200\001\023\220$\220l\240\"\377\240A\330\010\013\210:\220\363Q\220\240\304\001\333@5\230\010\240\307\005\240Q\200\311\003\233@\200\312\002\020\027\274\256 \355\317\001\014\021\220\030\336\314\003\230\377v\240Q\340\014\020\220\003\277\220:\230Y\240a\260\341\002\020\177\025\220X\230Q\230j\372\005\277\r\320\r\036\230a\314%H\277\230K\240q\250\013\271\317\003\013?\2106\220\027\320\030\275\252\001\232\320\002?\r\023\2207\320\032\377\254\001\252\320\001\365\340\215\004g\233`\013\022\220!\361\330\033\001\336a\364\320\002\330\020\021\330\377\024 \240\005\240[\260\004\277\260A\260V\2701\315\312\002\200\377A\330*A\320AX\320\177XY\330\010!\240\035\356\002{\010\035\336`\010\"\240,\010\003\367\032\230,\251\000x\250q\330\357\010\036\230o\321 h\260a\377\330\010\034\230G\2405\320\277(<\270A\270[\313\230\002\330\377\010\"\320\"3\2601\260wH\270A\255A*\250\021\016\002\3758\372A\270(\300)\3106~\242\217\002Y\320Ya\320a\267\260\001\037\360\000\000y\001\357\337\004\332\371\004\330\332\013\300\314\325\004\316\262\004\352\360\004\272\372\004\271\374\004\312\307\004E\003\376\217A8\2203\220a\330\014\377\037\230q\320 :\270)\377\300<\310y\320XZ\320\357Za\320a\255\261\001\330\010%\377\240^\2608\2701\270A\377\330\010\016\210k\230\027\240\365\001\003\003\021\333\314\001x\220|\240\3772\240X\250Q\200A\330{+,\333\2001\250\017\260q\340\316\001\362\373\013%\254a\225$A\260X\270\377Y\300f\310F\320RT\377\320T\\\320""\\h\320h\300\243\221\006\267\344\013\312\366\004\273\351\004\346\250\013\327\327\004i\002\276\346\r5\260Y\270l\235\340\001U\337\320U\\\320\\\225\303\002\010 \317\240\t\250\030\215\324\003\242\200Q\320(\\\336B\360M&\240Q\216b4\354`\377Q\260h\270i\300v\310\377V\320SU\320U]\320\017]i\320i\333\224\006\253\353\013\343\375\004\211\300\004\370\242\341\013\273\273\006\335M6\260i\270|\376\314\337\001V\320V]\320]_w\320_`\313\204\001\032\2508\363\325\003\276\241\200S9\270\021\270!\347\204\r\047\376\337\324\001\"\320\"5\260Q\260\377a\260x\270y\310\006\310\377f\320TV\320V^\320\001^\346\303\t\360\263\013\231\370\004\245\350\004\321\340\013\205\273\006\324\204\r\3377\260y\300\014\373\336\001W\320\377W^\320^`\320`a\177\330\010\"\240+\250Xy\001>\216\204S\320(:\270!\272\207\001\340\206\013\327(\240q\374\206\0026\362\000q\270\377\010\300\t\310\026\310v\320\377UW\320W_\320_k?\320kw\320wx\353\206\002\263\263\013\320\207\340\004\322\354\004\200\340\013\234\352\004l\324\204\0168\270\367\t\300\034\335\245\001X\320X_\373\320_\207\360\001\330\010#\240<\323\250x\371\205\003\217\204S;\262\207\003!\320o!2\260!\302\207\001\330\010\002\007\256\236\214\001)\250\001\377\210\0027\201\207\001\270\377\030\300\031\310&\320PV\377\320VX\320X`\320`\007l\320l\361\220\006\334\351\013\373\305\004\344\267\013\314\344\004\300\240\354\004\345\372\004\334\351\004\276\321\004\343\351\004\242\370\007\010\013\375\210\366\210\t9\270\031\300,\310\377i\320WY\320Y`\320\375`\261\355\001\330\010$\240M\260\371\030\262\204\003\354\210\0231\240L\260\002\373\260(\271\211\002r\320QY\320\033YZ\327\2106\320(\256$\214\213\013\343\200CD\224\251\013\305\274\006\330\301\200B\312\212;\221\215\003Q\341\214.\036\355\366\002\000\000{\001\360\264\013\211\330\004\332\343\004\360\265\372\004\272\360\004\212\274\006\374\213\201\320(=\2707Q\270a\372\216\r+\250\240\211\003\253\211\002\257\2708\3009\373\214\001X\225\216\002b\377\320bn\320nz\320z\000\276\367\003\255\355\013\267\376\004\365\357\004\275\367\004\333\302\004\316\273\006\350\216""\r\377;\2709\300L\320PY\377\320Y[\320[b\320b\376\363\276\001\330\010&\240o\260X\000\226\003\255\214S\362\004\335\217\001\371\220\006\271\200<\347\366\004\275\2008\177\340\010$\240F\250*\367\343\001\377\014\210E\220\025\220a\220\035z\330\344\001\033\2301\236\340\001\264\200`\371\346\003\316\213\223\014,\2501\250\223\002\304\213\002\270H\363\300I\224\217\001\253Cc\320co\037\320o{\320{\234\302\003\365\356\013\347\333\004\340\244\311\004\340\333\004\321\331\004\300\235\006\370\222\r<\270I\377\300\\\320QZ\320Z\\\337\320\\c\320c\317\300\001\330\010\377\047\320\0477\260x\270q\323\300\001\316\214U\255\351\001\021\204\225\r.\250|\216\221\003\262\225\001Q\270h\300i\240\215\001\377[\320[]\320]e\320\177eq\320q}\320}\207\366\003\300\216\263\013\300\375\004\357\360\004\256\237\013\225\322\006\362\224\r>\270\271i\357\260\001\201\223\003e\320e\341\275\001\330\177\010)\320);\2708\367\351\002v\257\224R\320(\363\004$\240N\240\215\005\000\002\006\305\232\001\305\200<\203\370\004\331\355\004\327\303\004\343\333\004\317\335\004\260\375\374\004\276\310\004\253\360\004\326\317\004R\003\203\201!\340?\010#\2406\250\031\301\352\001\254\205\n\307\032\230!\317\347\002\000\034\305=\320\027\377(\250\001\250\034\260R\260\047x\270|\370\244\001\216\231\003b\256\2158\204\352\003f\364\231\0142\260\375\231\003\207\204\002\300(\265\370\001\356\351\324\003a\320a\376\225\001\360\000\000\003v\001\361\225\013\313\306\004\367\372\004\334\377\013\274\340\004\230\363\004\234\344\324\006\352\231\rB\300)\314\246\001\355\217\003i\373\320i\375\270\001\330\010-\320-\277C\3008\3101\310\245\231T\3203(H\232\360\002\367\233\0146\260\200\230\003\245\354\002\363\300h\213\221\001\271\315\003e\320em\003\320m\204\244\003\337\303\013\261\342\013\253\372\004\213\322\004\244\372\004\270\314\340\004\265\377\006\355\233\rF\300i\247\262\001d\377\320df\320fm\320m\377o\320op\330\0101\320O1K\3108\266\354\004\341\233\035>\304\215\001\234\340\235/\376\233\002\014\300A\376\235\r\342\233 |\203\320|\336\312\003\243\367\013\330\364\004""\263\374\004\343\205\022q\342\270\233M@\224\212\001\333\2371\351\237\001\034\300Q\340\331\2330\262\200I\320\233<\305\2006\237\230\001L\310\001\000\372\241\r\365\227!\360\311\003\231\300\004\334\342\004\213\321\004\201\355\004\215\337\004\330\217\232\004\215\337\004\244\373\004t\002\250\225LB\300\341!\310\2416\310\2043\256\215I\307\241\373\207J6\270\027\300\017\200\334\001\374\367\003>\305\232\001\200A\33001\260\307\010\262\2013\376\217\303/f\320fk\320kq\037\320qs\320s\373\370\003\245\263\004\375\377\004\240\327\375\004\311\375\013\347\321\004\227\373\004\336\354\004E\362\377\001E\355\003\320\375\004H\003\224\303EV\2507\343\260!\331\200C\353\301\004\316\234\007\330\010%;\320%\347\301\001x\270q\231\315\001\341\301\032\277h\320hm\320m\245 u\003\320u\277\366\003\362\347\004\203\237\013\220\373\013\301\361\004\335\370\004@\261\242\004\365\363\004\220\357\004\240\352\004\273\375\004\320\234\022t\206\312\016\376\210\3021{\240!\240<\250r\277\260\026\260w\270o\344\325\001[\037\320[a\320a\247\335\001\271\203C\212\266\002\200\222\314+\302\206\026\256\213\013\376\370\013\246\357\004\312\366\004\245\237\022L\370\200\314F\265\203H\243\2760k\320kp\320\017pv\320v\360\306\003\362\354\004\335\375\004\327\326\013\000\312\300\004\310\366\004\222\357\004\272\366\004\304\304$\274\2766\323\200O\231\206\t\240\316\251\t\207\244\013\365\300\033\366\200D\354\270\022[\202\331\001[)\003\253\373\004\240\213\022C\220\331\001C\223\331\005\215\244\004\335^\245\331\001^\004`\254\331\001`\004\373a\004\310\233JF\270\047\300\037\376\300\347\002^\320^d\320dkc\320k\310\212\n\243\361\004\270\343\013X\002\371\213\001\001F\364\231\001\261\324\006\305\2137\206\263-\341\213\035\257\304\004\245\374\004>\303\314\006\360\000\000l\002\241\274\004\264\247\004\272\301\312\004P\233\334\001P\003R\242\334\001R\213\003S\266\213OG\305\220\001\355\200:\250\2672e\377\320ej\320jp\320p\017r\320rz\275\241\002\316\376\004\353\336\004\330\200Np\314\3245\250\216\006\347\200?\237\321\003<\300q\205\331\r\370\354\215:\224\216\013\371\310\006\360\000\000o\002\324\254\256\004\332\261\004M\347\340\001M\302`\360\000\027\000S\003\341\261\004V\310\215B\240\331\001\240\047\363\320G\357\323\003\223\203AL\320PQ`\212""\274*\263\203$\312\225\013\253\276\006\200\344\001\002H\220\343\001\303H\003\266\371\004\362\373\004\212\264\004\330\225\004a\003\354\235\331E\212\223\00523\341\335\010\"\240-\200\365\340\003\354\227*\374\2242\306\222=\352\373\004\267\266\004\330\305\004J\306\346\224H9\260\204\344\001\334\200@\304\3230i\320yi\306\217h\346\32532\240V\250\236#\30334\244\342\010\253\243\010\261\234(\214\334/g\320\361g\271\234\023\243\224N\241\3345V\250:\260\020\273\342\001\233!\320\205\006\327\205\010Y\230\336\002\264\344\"\266\336$\335\007\334\334\007h\320h\200\200\234W\250\351I\327\200E\262\332$\047\350\346\010j\320j?q\320qw\320w\241\275\n\370\356\004\000\352\356\004\371\340\004\345\326\004\334\322\004\360\334\013\251\236\004\361\356\004\343\214\004sN\003\260\332E\233&I\320I\321\374\001D\214\351\010\270\335\001\021\220\317\001\227\243*\214\246\003[\312\214\020\016\216\343\032g\320g\247\231\027\202\373\004\230\361\004\317\223\013D\377\265\006\334\250\001\002\353\301\004\376\320\004\363\245\004\\\206\361\001\333\\\003\362\301\004_\003\220\343EV\250\373;\260\362\360\0013Q\320Qt\237\360\000\000u\001\325\340\004\254\260\004Z\352\376\361\001Z\330\264\005]\367\361\001]\004^\371\004\376\242>\363\310\002\320HY\320Y\037o\360\000\000p\313\320\005\347\373\004\244\333\004\366\267\214\004B\003\361\310+i\320in\337\320nt\320t\225\272\001\360\000\007\000\177\001\234\277\004\305\374\004\204\352\004\224\342\004\276\226\004\264\305\304\004\273\266\004O\340\363\001O\004\301\363\022r\356\374\363\001r\004@\322\363\001@\005I\356\331\363\001I\005P\340\363\001P\005V\356\347\363\001V\005X\356\363\001X\005Y\031\005\223\340E\222\244\00545\252\347\001\370\217\004\360\257\010\304\373\210(\323\352$w\371\350\007\333\212g\335\3525W\250\275J\301\204\0025J\310!\225\250B\036`\366\226\017\200\355\032\303\250\026\203\341\013\321\232\20778\356\252\021\002\315\224\nW\220\273\002\260\363 \221\3610\320\233\017\336\353\004\306\306\004\340\363\375\004\333\373\004\334\355\004\270\337\004\270\320\006\360\000\000\373t\002\306\262""\006\360\000\000@\003\320\243\303\013\240\314\004\261\303\004\324\373\004g\322\226H5\260\003\t\270\311\371\001\202\201I\350\3611\311\255\017\235\366\004\220\323\004\000\235\366\004\260\354\004\264\356\004\213\364\004\367\262\004\244\366\004\234\376\004\261\227\004\264\202\336\004\260\253\004_\212\376\001_\003\357\316\004g\016\230\376\001g\003h\263\255H\362\200Z\377\255\t\341\313\013\350\253\206,\207\201Q\270\310 K\315\321\001K\004Q\332\324\321\001Q\311\321\005T\004\224\365Ay\240\377\001\240\034\250R\250v\260\177U\270)\300?\320R\224\364\003\234\253\262\003\350\370\001\200A\330\225\204K\225\2302l\377\320lr\320rt\320t\000\344\347\003\353\355\004\354\330\004\220\364\004\362\355\004\223\362\004\367\367\004\357\340\006\372\272\341\001\002\315\217\006\360\000\000B\003\350\275\246\004\326\306\004\222\266\013h\325\324\001h\003i\000\243\221H\334\206S\256\366/\320\263\017\302\356\004\307\343\004\333\364\004\311\356\004\000\317\376\004\317\370\004\307\304\004\313\341\004\317\376\004\316\321\004\255\346\004\260\223\004t\342\263\004\244\207\004i\244\327\001i\003j\212\244H<\253\211S\261\367\004$\320$5\273\273\005\257\266\013\000\232\367\033\356\223\017\216\355\004\234\346\004\226\363\004\225\355\004\245\361\004\264\371\004@\375\226\013\243\324\004\267\367\004\341\253\004\201\257\013\362\320\031I\200\332\001\323I\004\306\224\004\263\207\004R\326\323J&\270\001\005\276\312\003\322\206^\255\266B\241\345\004\234\321\004\247\364\004\250\345\004\220\236\360\004\220\370\004\243\312\006\377\374\001\002\271\372\004\362\273\004S\326\355\334\001S\003\215\232\004c\373\334\001c\003\004\327\204\004\206\335\004l\312\266H\220\217S\331\266F\361\360\004\344\326\004\000\353\362\004\370\360\004\204\352\004\354\370\004\273\252\013\277\276\004\332\337\004\342\303\004m]\310\337\001]\003\326\326\022m\003\361\366FCV\250\370\200Z\370\266W\231\201Q\221\212\004o\303\342\001So\003\355\334\004\326\315\004D\303\342\001D\356\217\005\335W\321\342\001W\004Y\330\342\001Y\004\335c\337\342\001c\004l\346\342\001l\004]x""\355\342\001x\004~\364\342\001~\226\235\005\373A\005\246\267L%\270y\310\017\003\320W\220\367\003\254\274\003\213\357\003\223\301\013\373\354\004\371\375\004\370\356\241\004\350\377\006\313\220\001M\320Mb\320\373bc\267\230L\014\300K\310q\300\277\340%\304\356\032\337\230@\312\312\004\332\205\013\314\365\006\360\000G\000R\003\211\310\004\223\216\004\303\321\022G\305\346\001\241G\313\335\005\373\242\004\364D\231\241\004o\350\346\001o\272\372ED\225\241\001D\005J\234\241\001J{\005L\243\241\001L\005M\005\317\261A\377x\230q\240\014\250B\250\377f\260E\270\031\300/\320\177Q]\320]_\320_\252\270\003\201s\214\233\001\226\317\005\376\334\004\222\363\004\212\361\004\216\365\013g\376\211\274\0017N\320Ne\320e\350\274\336\001\307\234G\275\232\003\034\301\374\001]\320]\177^\330\010!\320!2\322\371\005\300\216\227k\322\371\004\200\307\004\307\246\004\312\277\004\210\235\006\360\000\327\000g\003\316\325\004~\311\352\001~\003t\361\206\004\311\341\004L\311\352\001L\004V\320\352\001uV\267\352\005k\336\352\001k\004q\345\352\001\365q\276\352\005t\276\227P9\310L\320\377XZ\320Z`\320`e\277\320en\320no\214\230\001Q\230\346\351\002\265\277\017\216\2403\320(\222\335\006\321\355\t#\377\240>\260\021\260(\270!\374\203\375\001\210\335\033m\320mr\320r\007x\320x\254\275\003\372\344\004\221\362\004\226\350\004\216\377\004\340\230\362\004\205\253\004\215\342\004\302\352\004\314\314\006\360\000\000iH\207\273\005\377\321\004b\345\355\001b\003\351\355\004\rx\363\355\001x\003\252D\351\355\004\363\344\013\342\302$\376\322\3352\320\027\047\240q\250\014\377\260B\260f\270E\300\031\377\320JZ\320Zf\320f\377h\320hn\320ns\320\375s\230\370\001\200A\3308P\320\361P\363\312\001\222\205I\261\365\001M\310\035\320\003VW\331\252=\357\225\047\265\336\004\364\317\004\352\302\006\251\276\002\036\215\256\006\360\000\000_\200\361\005\222\350\004\256\353\004z\232\306\004E\222\361\001E\004F\004\317\252G\036\374\243\0059R\320R\262\376\003\312\204G\232\370\001\005N\205\346\001Y\352\345\031\264\230W\247\376\004\357\363\013\205\330\004T""\276\320\004\215\205\004p\200\364\001p\274\325\005A\371\363\001\243A\004\264\214\004\200\231\004\375\363\004\\\225\364\001\\\273\004d\234\364\001d\004j\243\364\001j\352\274\220\005m\311\230Pk\227\214\014\320st\007\200A\330\247D\225\367\027\365\330\006\230\2105\376\323\001\377>\310\036\320We\320e\001sr\000\254\351\031\336\323,\201\237\047\353\344\004\326\226\013\245K|\335\361\004\262\351\006\360\000\000}\003\346\244\004\255T\301\367\001T\004\254Db\317\367\001b\272\262En\335\367\001n\004w\344\367\001w\273\004\177\353\367\001\177\004E\221\262\001E;\005G\230\262\001G\005H\357\261\016\216\324;\337u\270I\300[\351\314\010i\320\237ir\320rs\307E\245\313\001\001\370\211\376\004\224\271\006\206\217M\036\300~\320U\377c\320cq\320qr\330\377\010\037\320\0370\260\001\260\007\030\270\021\000\t\014\t\221\373\001\210\250V\321\350\0044\222\240\013\335\334\004n\222\373\001n\003\317\227\004\232\355\004\000\254\346\004\222\240\004\274\365\004\320\217\004\222\206\004\257\320\004\226\373\004\327\217\004\325u\312\373\001u\225\373\005}\330\373\001}\004t\337D\364\265\004T\214\266\001T\005Z\223\266\001\367Z\005\\\232\266\001\\\005]\005\376\316\250O7\310,\320VX\320\377X^\320^c\320cl\037\320ls\320s\361\376\003\307\373\004\320\334\004|\372\341\004\273\372\006\200A\330?@\331\261\032\370\211\303\n\365\276\002\352\266\001,\250a\250q\377\330\010\032\230,\240a\240\375x\007\001\036\230o\250Q\250\377h\260a\330\010\034\230G\003\2405\312\256f\373\373\004\336\356\004\225\331\004\202\374\004\373\373\004|\317\371\004\270\314\006\360\000\000V\003\220\212\031\364\242\377\004\317\371\004H\263\377\001H\004I\004~\212\336G5\260\007\260z\300\243\262\001\003?V\256\217\002\231\223\030\310\2017\355\336\001\374\316?\342\251 \000\325\350\004\265\366\022\325\350\004\314\374\004\260\371\004\231\244\004\267\371\004\337\236\004h\251\215\004\347\226\004\335\232\004N\326\374\001N\004\357\211\004\302\347\226\004W\302\374\016\335\3361\376\317\003\201GAB|\305\377\010\246\226\034X\250W\260A\342\204%\376\336\364\001\001\330\010%""\240^\260\3371\260H\270A\224\226\"s\320\017sy\320y\217\344\003\306\371\004\270\351\004\263\233\013\000\354\304\004\367\346\004\233\327\004\277\351\004\326\362\004\370\341\004\306\360\004\272\374\004x\273\332\004\276\302\004\261\265\006\360\000\000h\271\374\005\260\264\367\004\326\377\004\352\231\004\212DO\004\357\364GV\177\2506\260\025\260i\270\304\356\001\316\254\201VC\3001\205\375\001\370*1\260\371\001\336\377\002\234B\300\030\310\031\320\375R\277\211\003`\320`h\320h\016\342\307\003}\320}\360\351\003\224\347\004\271\377\004\366\351\004\000\276\354\004\207\260\004\272\372\004\314\374\004\334\365\004\344\367\004\305\354\004\376\344\004\000\232\332\004\271\270\004\375\351\004\240\252\006\334\332\001\271\372\005\261\231\022\240\214\004\356\265\377\017A\300\031\210\213\001_\320_\374\326\344\003\332\351\001\330\010,\320,A\342\335\000\021\207\300\001\247\370\025\241\201bE\300Q\364\336\370\001\376\204\n3\211\311\001\"\320\"A~\333\371\001\3008\3109\320T\324\235\003?b\320bj\320j\203\205\003\301\214\n\000\363\347\004\364\332\004\313\245\013\346\370\004\312\305\004\304\375\004\337\370\004\310\357\004\320\313\375\004\257\326\004\310\357\004\256\226\013m\300\375\001m\003\024\252\217\004\275\375\004B\316\340\001B\312\340\005\243\217\004\211\223\004\355U\272\340\016C\300\240\237\002a\320a\377c\320cj\320jl\320\377lm\330\010.\320.E\377\300X\310Q\310a\330\010\316\215\201zF\300a\217\360\001\210\210\n4\260\3751\371\373\002B\300!\3001\300\337H\310I\320U\237\351\003c\320\177ck\320kt\320t\365\335\003\000\201\346\004\311\237\004\303\310\004\254\355\004\350\364\004\262\340\004\225\360\004\364\373\004\000\326\362\004\326\371\004\357\364\004\211\327\004\227\216\013\320\237\004\301\260\004\252\222\013\252\261\234\013M\343\343\001M\365\273\005U\361\343\001U\273\004V\310\343\016D\300I\360\352\001b\373\320b\223\343\003m\320mn\330\377\010/\320/G\300x\310yq\257\333\002\234\204zG\300q\310\224\213\r\3155\336\213\002\320\"\266\210\002\262`Y\320\357V\\\320\\\275\003l\320l\007u\320u\256\360\003\327""\365\004\367\367\013\264\360\004\213\321\004\000\374\376\004\235\363\004\256\271\004\302\353\004\227\356\004\340\301\004\354\374\004\310\343\004\360\336\365\004\215\216 \217\256\004\211\216$E\300Y\310wl\320Z\256\255\003l\320l\276\245\001\377\330\0100\3200I\310\030\277\320QR\320RS\372\204\"\340\377\010\014\210J\220m\2406\367\250\021\330\010\000M\230\024\230\375Q\005\001J\220i\230q\240\373\004\240\346\215\002\r\210O\2309\367\240F\250\254\245\002\r\320\014\036\277\230b\240\010\250\001-\001O\377\2301\200A\340\010\020\220\367\004\220A\247\376\0014\210w\220\377a\220w\230a\330\014\021\357\220\030\230\021\004\000\320\021!\377\240\021\360\006\000\r\022\220\337\037\240\013\2501\026\001\036\230\367{\250!\037\001\033\230K\240\335q \002\"\240!\037\003\030\230\277\037\250\001\250\024\250\325\366\001\r\377\021\220\005\220V\2301\230\177E\240\025\240d\250!;\000\357\020\027\320\027\233\231\001\024\260Y\377\270a\330\020\035\230T\240\377\021\240!\330\020\023\2204\177\220q\320\030(\250\003`\000\377\024\030\230\001\320\031+\320\377+H\310\001\310\021\330\020w\025\220\\#\000.\260\001\223\001\377\025\220a\320\027(\250\004\371\250\304\217\001K\0243\2601\260D\357\270\t\300\021W\010\025\220[\277\240\001\240\036\250q<\006\047\317\240t\2501\325\003P\002)\250\277\033\260A\330\014\020\240\0221\357\260\021\260$\241\216\001\330\020\036\277\230d\240!\2401\224\001U\357\230!\230?\326\000?\270$\357\270a\270q\247\001X\230Q\364\210\227\001\242\006)\211!\330\010\017\210)q\347!\333\351\006\035\246A\"\244\312$\244\342*&\316\362\001\320i\240\303\001\330\301\001\001\257\221\013\322\366\004\354\242\327\004\374\373\004]\002\325\341EX\250Q\360\260\2003\336\311\002\324\375\r\303\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\327\311\004\325\375\004\262\370\004\202\331\004\364\303\004\323^\002\230\377E\254\20089\224\237\001\"\320\343\"3\202\225\007\245\330\032\233\373\001\320kv\027\320vw\206\330\001\001\333\305\004\260\300\004\360\221\022s_\002\302\327E\223\2028:\270!\211\352*>\243\251\001\320lw\320w\344\364""\003\326\354\004\300\235\360\013\273\307\004\213\357\006\324\373\r\315\2305\372\2038;\270\3711\333\330+\202\221\001\320mx\320x\230\271\336\003\306\225\013\265\222\022a\002\315\335E\342\2058<\373\270A\316\372\t\330\010&\320&\1777\260q\270\010\300\001\266\375\001\335*\374\213\001\"\320\"\375\377\002\270(\317\300)\3106\250\340\010\350\217\001\320n\007y\320y\263\360\003\352\302\004\372\320\004\233\221\022\342\362\004\374\277\370\004\274\377$:\270)\300<\310\351y\223\264\002\360\223\003d\357\233\0038\2701\374\273\001\345\226\021}\240A\240\\\260\337\022\2608\270:\227\267\001S\320\337S[\320[\\\213\2105>\270\315a\310\377\t\330\010\261\370\007\334\377\001,\250\374\331\223\003\226\313\002\270H\300I\310V\377\320SY\320Y[\320[\377c\320co\320op\320\017p{\320{\305\315\003\310\223\013\347\312\004\202\375\004\226\336\372\004p\002\244\336\001\002\205\356\004\311\377\022O\356\252\377\016<\270I\201\271\001Z\320Z\327\\\320\\\256\276\003f\231\275\0027\260\337x\270q\300\001\201\226\023\177\240\377a\240|\2602\260X\2701]\344\245\004\256\360\001\263\2125?\270\302\362\016\253\266\033\277p\320pq\320q\273\264\001\360\017\000\000~\001\274\325\004\322\317\004\265\325\004\321\362\004\270\243\377\006\326\235G\232\2148@\300\001\255\364\r.y\250\232\362\003\270\311\002\270h\300i\370\350\001\377[\320[]\320]e\320\375e\300\253\001\320r}\320}~\300\241\341\002\243\250\013\274\321\004\252\344\004\351\376\006\265\373\r>\270\377i\300|\320S\\\320\\\377^\320^e\320eg\320\377gh\330\010)\320);\343\2708\200\237\003\354\234\025\204\2168A\300\021\316\227\366\r/\250a\265\366\002\322\310\002\270x\337\300y\320PV\276\226\002^\320o^f\320f\244\256\001\320s\343\276\001\242\244\333\001\002\274\350\004\350\343\004\334\204\022g\227\220\016\077\077\270y\310\014\320T\356\277\003\345\270\003\377i\330\010*\320*=\270\001X\345\235\003\223\200U\301\244\n\265\2002\317\346\004yn\250\3763\033=\270\306\367\016+\250\336\216\003\377\360\002\330`\3679\310F\274\243\002Z\320Zb;\320b\204\307\003v\320v\314\216\003\376\261\004\240\224\327\004""\251\354\004\214\314\004\260\354\004\221\240 A\244\313I7s\260!\206\226\n\237\266>8\270\001\226\224*\000\350\3369\301\331\004\235\337\013\353\326\004\324\303\004\215\321\004\301\331\004\350\250\006\014\373\255I\347\341\002\340\010\222\274J\327\276g\321\323\004\251\356@\200\320\3677\251\344\004\370\200I\344\205D\233\323\047\225\357\004\322\376@;?\2709\300L\320P\217\221\003\247\244\003\377e\330\010&\240o\260X\007\270Q\270\227\247\032\245\201!\226\2665\313\351\001\327\235*\000\230\3512\327\222\004\347\330\004\275\260\004\205\347\004\276\255\004\255\252\004\257\377\004\350\232\326\004\322\266\004\356\330\004l\223\364\001l\003s\022\232\364\001s\366\301\005\264\323\004|\234\351J\275\266\004\342\206\032\034\206\2717\371\234-g\320g\334\343/\234\371\004\326\364\004\000\361\351\004\341\365\004\206\364\004\203\247\004\243\371\004\365\366\004\301\266\004\233\364\004\004\321\275\004\227\322\022~\335\343J\3308\233\274\014\365\265&\340\206K\000\201\266\031\274\367\004\326\315\004\217\266\004\335\315\004\235\274\004\311\341\004\364\346\004\030\327\354\004\316\307\006\237\333J\n\270\360\216\013\250\270G\250\207\003\374\237\344\t\253\344\t#\320#4\260A\360\314\210\001\240\233\t\311\320\001\335\327\035k\320kq\037\320qs\320s\220\271\003\311\357\004\345\336\004\000\320\325\013\202\377\004\324\374\004\236\347\004\251\233\004\226\271\004\217\271\004\324\374\004\000\335\320\004\267\315\013\245\347\004\311\344\004\275\207\022\267\315\004\240\274\004\206\334\004\272\215\374\004_\227\374\001_\004i\236\374\001iU\004\235\372\004z\254\374\001z\243\372\005B\256\372\001uB\212\330\005U\274\372\001U\005_\303\372\001w_\005e\312\372\001e\005g\321\372\001wg\005h\337\327LF\270%\266\227\003?`\320`b\320b\232\321\007\351\310\001\001\001\216\344\004\211\347\013\361\231\013\324\265\013\222\212\013\267\257\004\301\374\004\014\251\377\004\227\347\013e\003\202\253\n\244\275I\324\2230\262\356\023@\336\366\031\204\240\004\235\351\004\341\267\004\201\367\004\207\325.r\303\364\001\003r\003\270\325\004\220\310\006""\247\303G\330\275\006\241\224\010\227\300I\370\233\245\002\324\300\n\365\244\033j\320jp\320\001p\215\231\r\260\346\004\370\353\031\233\367\004\310\303 \331\333\004\353\303\004@\251\367\004\352\371\004\235\217\004\211\325\004\341\316\004\340\333\004\177\334\350H\000\227\201]\341\2331\320\300\003\234\344\003\227\313\004\333\374\004\347\353\031\260\364\004\320\354\245\004\350\361\004\212\354\004\303\336\013M\217\372\001M\003\320\232\372\004\276\364\004\223\372\004\214\325\004w\262\372\001w\003z\201\330\004\177\300\372\001\177\003@\004\200\351H\000\220\204]\344\250\003\305\306\t\277\250\033\242\367\003\363\335\024\213\354\031\331\364\004\000\301\300\004\331\364\004\256\354\004\213\375\004\352$\341\377\004\257\367\004\347\364\004\010\250\367\004\362\320\004\212\336\022A\237\372\016\355\2503\311\311\003\211\207]4\266\251\002\274\310\213O\362\377\001O\003\273\344\013\263\354\013My\262\372\001y\003\343\204\004\204\333\004B\355\310Sp\213\212T\305\252\002\266\314\n\253\252\033n\320n\254\303\001\003\320z\224\375\003\221\270\013\340\343\031\346\364\004\303\322\004\231\362\004\000\203\344\004\313\372\004\353$\241\375\004\274\314\013\366\367\004\366\335\004\335\326\004\014\203\344\004\272\306\004C\004\350\252G\261\314\010\204\215T\324\253\002\356\302\251)o\320o\227\303\001\320{}\000\250\257\002\244\271\013\353\274\022\320\261\004\214\365\004\357\263\004\257\317\004\267\314\004\000\351\372\004\313\222\004\314\375\004\347\367\004\232\365\004\340\367\004\237\362\013\360\340\004\342\345\343\004D\330\372\016\207\2547\230\201_B\300!\326\247\322\0140\250\263\262\003>\351\300\001\300\010s\310\t\341\266\002\354\356\003g\320g\315\220\003\007|\320|\267\260\003\267\272\013\376\275\022\267\330\004\272\243\004\000\260\330\004\360\351\004\267\330\004\332\372\004\227\361\013\215\370\004\337\346\004\354\240\004\350\277\223\004\240\314\013\247\365\004E\322\375\016@\300\t\357\310\034\320U\237\375\003g\320g\376\314\277\001\330\010+\320+?\270qx\207\310\003\207\317 \370\222TC\3001\241\325\014\200\251""\321\177\333\375\004\304\351\022\346\243\004\262\351$\337\321B\362\225TD\366\224\325\0162\260\323\264\003@\300\001\300\037\021\300(\310)\257\272\002\333\323\003\350\343\003\007x\320x\250\266\003\342\343\004\323\274\013\367\375\004\257\300\013\000\253\333\004\273\272\004\372\253\004\250\336\004\253\333\004\357\357\004\276\256\004\205\376\0044\242\325\013\311\342\004t\235\376\001t\003\231\363\013\266\336\004\375G\354\362\016B\300)\310<\320\335W\361\234\003i\320i\233\354\003-\320\377-C\3008\3101\310A8\322\313$\335\362\006\336\332IE\300Q\231\333\014\227\324\203\000\264\341\004\224\372\004\340\354\004\226\376\004\233\372\004\277\226\004\307\357\004\233\372\004\tH\300\324S\356\233TF\212\330\016\207\324\207\306\357\031\320\362\004\010\217\344$\304\324C\361\236TG\203\330\016\373\323\207\265\344\004\215\330\013\210\244\357\004\313\234\004\320\362\022J\357\373\016\265\324F\260\207RH\366\370\327\0166\260\255\302\003D\300A\300\377Q\300h\310i\320W]\373\320]\267\326\003m\320mv\320\001v\256\306\003\332\373\004\204\320\004\337\353\013\332\373\004\212\333\004\341\373\004\000\332\310\013\350\373\004\212\333\004\305\272\004\253\347\013\300\242\004\262\347\013\260\245\013\350\237\336\004\257\352\004\247\377\004K\363\376\016F\300i\377\310|\320[d\320df\337\320fm\320m\373\307\001\330\010\3771\3201K\3108\320SOT\320TU\331\212-\236\355\nQ\374\354(\034\204\275-\325\231\003v\320v\236\305\003\371\335\004\320\376\004\350\271\303\004\216\341\004\356\343 \177\315\322FV\250:q\260\372\324\002\227\367\006\236\367\010Y\240a\306\200J\377w\310f\320TV\320V?^\320^g\320g{\225\255\361\002\350\337\333\001\324\200<\221\325\"\007\306\311\001W\320W\277_\320_h\320h\201\233\003w\003\320w\313\372\003\255\313\004\373\362\004\255\345\004\246\342\004\353\221 \301@\376\265F\201/\331\363\010\310\202[\263\200]6\260wi\270|\274\350\001V\320V\215\312\003\375`\350\371\001\032\2508\2601\260\376\276\223\030W\250J\260a\200A\337\360\010\000\t\021\204\340\004\320\013\337\036\230g\240Q\212\336\001\n\230\337!\2305\240\017\265\336""\001\023\220\3775\230\r\240V\2501\340\335\014\005\003U\250!+\n\014\210\275L\301\337\001\013\2606\270\271\340\001\220\377\034\230Q\230k\250\021\320\375*\275\324\001\014\021\220\025\220a\277\220~\240Q\240n\272\360\001\r\217\320\r\036\230j\013\231\353\001\304\341\004\025\376\202\341\001\017\210q\220\r\230T\013\320!\351\324\001\001\277\336\004\235\010\250\337\001\323\337\001\367\033\250A\323\316\001\013\2106\220\377\023\220A\330\014\024\220E\377\230\033\240A\240[\260\001\270\273\227\001\370\336\002\324\010\026\220a\267\342\001G\377\2201\330\014\017\210t\220\3773\220e\2301\330\020\030\277\230\006\230a\230q\211\341\002\320\377\027/\250q\260\005\260Q\367\330\024\031F\002T\250\021\250\367+\260V\307\324\002\024\"\240!\377\330\021\025\220S\230\005\230\375Q\230\341\005$\240a\320\0479\273\270\026\301\322\002\020\025\220\230\340\001>\3762\000\047\260\026\260q\270\001\377\340\010\013\2101\330\014\031\374\322\342\001q\000\320\023$\240A\240\362Q\001!\203\342\001\347 \017\210s\220\337!\2206\230\022\207\001\024\220\375C\246 Y\250a\250u\260\375A\177\001\021\330\024\027\220r\232\032\0003\236\002\030 \333\343\001\236@\030\337\033\2304\320\037\210\327\001\014\300\337A\330\034!\240\207![\270w\001\270\033\013\001*\250!t\001\3275\220\003\345\003q\256\341\004\320\033\317+\2504\250\262\343\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\207\344\003z\230\021\373\230%\215 \014\022\220$\220\247a\220q\370%)\000\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN|Z\003\343A\016\230e\240<\360 \351\013\250\327\003\255C\014\213\204\004\340\010\021\237\320\021&\240a\256\343\001\346\345\001C\257\210}\230I\305`e\215\345\001\024\237\220D\320\030.\216\373\002\360FZ\372\272@\001\331Av\220V\320\033W2\260#\267@6\214\344\001)\304@\375(\014\000Q\330\021\027\220v\377\320\0357\260s\270&\300\277\006\300a\330\020,\302`X\373\260S\247A\023\320\023#\240\2271\240A\312\373\001A\320\346\001\274c\016\336\227\205\007\2104\210u\346a\020\320\367\020 \240\261\326\002e\2208\230\3277""\240!\2435\013\315\205\003U\250\317!\330\020\032\311\205\007\246\204\001\035\240\271a\204\204\001\373A5\230\003\206\204\001\027\335\220\356\326\001s\250!\243@v\260\363Q\340\263\346\001\266\001%\250}\270\377A\270Q\330*0\260\001\377\330*2\260$\260a\330\377\r \240\007\240u\250A\350J\n\307c=\01618\0171\260\024\376^\000\014\023\2203\220a\220\377v\230S\240\001\240\025\240\377c\250\027\260\001\200A\360\376\351\005\340\010\033\2302\230\\\377\250\025\250k\270\021\270+\376\301\361\002\034 \240\016\250e\260\367;\270e\252\241\001#\2402\240_S\250\005\250\\\035\000\"\237\002\233$(\014\000U\260\362\350\002\253a1\372\340\350\001\027\302a#\2404\320\047\376\331\244\002\013\2105\220\004\220D\377\230\n\240!\2404\240q|\322\347\001\375\346\001\003\2207\230)\373\"\356\224\350\002z\240\021\220\204\002\024\025\340o\020\021\330\024\355 \320!\361\320\001\377&\300\001\330\027\030\330\024\367\032\320\032\265\226\001\030\033\2301\177\230A\330\030\034\230E\320\350\002\333\024\032?\003\340\010\365$Q\330\377\020\024\220J\230a\230u\177\240O\2601\330\014\047\264 \327M\270\021\274#q\010\022\031\300\213!\340%\000t\252\205\001\212\207\001\302\206\0013\257\210a\210~\246 \003\235b\014\212\377@!\300\351\002\014\300\351\002\275A\203\000\r\377\020\220\001\220\036\230t\320\371#\270\336\001u\000C\220q\230\006\337\230c\240\024\240\230\204\001\004\260wA\260T\240\211\001\022\320\022\267\326\001\347\020\023\220\234!\235\000E\230\021\177\230!\330\014\022\220)\312\001\367\340\010\014\246\353\t\320\014\034\230\336\316\353\004L\230\t\240\337\211\002\033\230\337A\230[\250\001\270\351\002\010\r\217\210U\220!\271\204\001\313 \344\372\001\r\331\210\037\006\361\211\030\340\010\202\211\0011\200\367A\3602\327\204\010:\220Q\220\237n\240A\330\014\325 \223\352\001\007\337\220t\320\0336\357`\020\023\377\320\023&\240g\250Q\330\373\024\030\266B>\260\021\330\024~\223\352\001\047\250\034\260Q\340\004\004U\021\323\353\0011\254A\007\330@\001\333\204\005\377>\240\023\240A\330\020\025\357\320\025%\240\271\211\001\320\025&\357\240a\330""\020\227`\340\020\026~\264\355\002\001\330/6\260c\346`\377.\310\002\310!\3309:_\33004\260E\366`!\302\352\003\027N\220!\226\204\001\014\314\211\001\365&\245!\372\232 \330\305\003\320\004\035\230Q\370\306\214\010\372\353\001\255@\330\010\022\220\047\376\334\"\010\014\210G\2209\230\337J\240f\250A\200\213\002\320\023?+\2501\250G\260\323\353\002\247\354\001\237\026\240q\250\013\216\364\001\242\214\003\330\000\317*"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 36018, 111589); #define __Pyx_DecompressString_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (111563 bytes) */ + #else /* compression: none (111589 bytes) */ #ifdef _MSC_VER -static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','a','r','o','o','n','d','o','w','n',' ','a','r','o','o','n','u','p','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','b','u','l','l','p','o','w','e','r',' ','b','e','a','r','p','o','w','e','r','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','f','a','s','t','k',' ','f','a','s','t','d','g','c','h','a','o','p','e','n',' ','h','a','h','i','g','h',' ','h','a','l','o','w',' ','h','a','c','l','o','s','e','i','n','p','h','a','s','e',' ','q','u','a','d','r','a','t','u','r','e','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','k',' ','d',' ','j','m','a','c','d',' ','m','a','c','d','s','i','g','n','a','l',' ','m','a','c','d','h','i','s','t','m','a','m','a',' ','f','a','m','a','m','i','n',' ','m','a','x','m','i','n','i','d','x',' ','m','a','x','i','d','x','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','p','l','u','s','v','i',' ','m','i','n','u','s','v','i','r','e','a','l',' ','i','n','t','e','g','e','r','s','i','n','e',' ','l','e','a','d','s','i','n','e','s','l','o','w','k',' ','s','l','o','w','d','s','m','i',' ','s','m','i','s','i','g','n','a','l','s','w','i','n','g','h','i','g','h',' ','s','w','i','n','g','l','o','w','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','u','p','p','e','r','b','a','n','d',' ','m','i','d','d','l','e','b','a','n','d',' ','l','o','w','e','r','b','a','n','d','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','C','B','A','N','D','S','_','V','a','l','u','e','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','V','a','l','u','e','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','B','A','N','D','S','_','V','a','l','u','e','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','_','V','a','l','u','e','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','I','_','V','a','l','u','e','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','_','V','a','l','u','e','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','A','_','V','a','l','u','e','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','_','V','a','l','u','e','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','_','V','a','l','u','e','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','_','V','a','l','u','e','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','E','X','T','_','V','a','l','u','e','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','_','V','a','l','u','e','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','V','a','l','u','e','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','_','V','a','l','u','e','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','V','a','l','u','e','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','_','V','a','l','u','e','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','F','_','V','a','l','u','e','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','_','V','a','l','u','e','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','V','a','l','u','e','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','_','V','a','l','u','e','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','_','A','R','R','A','Y','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\320','\017','\037','\230','w','\240','e','\250','1','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021','!','\240','\027','\250','\005','\250','Q','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270',')','\300','<','\310','r','\320','Q','Y','\320','Y','Z','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','(','\250','\001','\250','\034','\260','R','\260','x','\270','|','\310','<','\320','W','Y','\320','Y','a','\320','a','b','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270','/','\310','\034','\320','U','W','\320','W','_','\320','_','o','\320','o','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','G','\002','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','h','\320','h','t','\320','t','v','\320','v','~','\320','~','\177','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','H','\270','K','\300','|','\320','S','U','\320','U',']','\320',']','^','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','Y','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','6','\270','\027','\300','\017','\310','|','\320','[',']','\320',']','c','\320','c','j','\320','j','k','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','w','\270','o','\310','\\','\320','Y','[','\320','[','a','\320','a','h','\320','h','i','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','\047','\300','\037','\320','P','\\','\320','\\','^','\320','^','d','\320','d','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002','X','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','?','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','l','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','%','\270','y','\310','\017','\320','W','c','\320','c','e','\320','e','k','\320','k','p','\320','p','y','\360','\000','\000','z','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','E','\270','\031','\300','/','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\360','\000','\000','t','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','g','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','9','\310','L','\320','X','Z','\320','Z','`','\320','`','e','\320','e','n','\320','n','o','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','T','\004','\360','\000','\000','T','\004','Z','\004','\360','\000','\000','Z','\004','\\','\004','\360','\000','\000','\\','\004',']','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','\047','\240','q','\250','\014','\260','B','\260','f','\270','E','\300','\031','\310','*','\320','T','`','\320','`','b','\320','b','h','\320','h','m','\320','m','v','\320','v','w','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','k','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\320','s','t','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','u','\270','I','\300','[','\320','P','\\','\320','\\','^','\320','^','d','\320','d','i','\320','i','r','\320','r','s','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','7','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','s','\320','s','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','W','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','H','\310','\001','\310','\021','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','\\','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','\177','\240','a','\240','|','\260','2','\260','X','\270',']','\310',',','\320','V','X','\320','X','`','\320','`','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','F','\270','%','\270','y','\310','\014','\320','T','`','\320','`','b','\320','b','h','\320','h','n','\320','n','s','\320','s','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','e','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\036','\230','g','\240','U','\250','!','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','4','\250','v','\260','Q','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','0','\260','\001','\330','*','2','\260','$','\260','a','\330','\r',' ','\240','\007','\240','u','\250','A','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','1','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','1','\260','\024','\260','Q','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r',' ','\240','\007','\240','q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','&','\240','g','\250','Q','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; +static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','a','r','o','o','n','d','o','w','n',' ','a','r','o','o','n','u','p','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','b','u','l','l','p','o','w','e','r',' ','b','e','a','r','p','o','w','e','r','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','f','a','s','t','k',' ','f','a','s','t','d','g','c','h','a','o','p','e','n',' ','h','a','h','i','g','h',' ','h','a','l','o','w',' ','h','a','c','l','o','s','e','i','n','p','h','a','s','e',' ','q','u','a','d','r','a','t','u','r','e','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','k',' ','d',' ','j','m','a','c','d',' ','m','a','c','d','s','i','g','n','a','l',' ','m','a','c','d','h','i','s','t','m','a','m','a',' ','f','a','m','a','m','i','n',' ','m','a','x','m','i','n','i','d','x',' ','m','a','x','i','d','x','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','p','l','u','s','v','i',' ','m','i','n','u','s','v','i','s','i','n','e',' ','l','e','a','d','s','i','n','e','s','l','o','w','k',' ','s','l','o','w','d','s','m','i',' ','s','m','i','s','i','g','n','a','l','s','u','p','e','r','t','r','e','n','d',' ','t','r','e','n','d','s','w','i','n','g','h','i','g','h',' ','s','w','i','n','g','l','o','w','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','u','p','p','e','r','b','a','n','d',' ','m','i','d','d','l','e','b','a','n','d',' ','l','o','w','e','r','b','a','n','d','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','C','B','A','N','D','S','_','V','a','l','u','e','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','V','a','l','u','e','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','B','A','N','D','S','_','V','a','l','u','e','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','_','V','a','l','u','e','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','I','_','V','a','l','u','e','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','_','V','a','l','u','e','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','A','_','V','a','l','u','e','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','_','V','a','l','u','e','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','_','V','a','l','u','e','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','_','V','a','l','u','e','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','E','X','T','_','V','a','l','u','e','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','_','V','a','l','u','e','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','V','a','l','u','e','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','_','V','a','l','u','e','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','V','a','l','u','e','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','_','V','a','l','u','e','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','F','_','V','a','l','u','e','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','_','V','a','l','u','e','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','V','a','l','u','e','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','_','V','a','l','u','e','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','_','A','R','R','A','Y','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\320','\017','\037','\230','w','\240','e','\250','1','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021','!','\240','\027','\250','\005','\250','Q','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270',')','\300','<','\310','r','\320','Q','Y','\320','Y','Z','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','(','\250','\001','\250','\034','\260','R','\260','x','\270','|','\310','<','\320','W','Y','\320','Y','a','\320','a','b','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270','/','\310','\034','\320','U','W','\320','W','_','\320','_','o','\320','o','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','G','\002','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','h','\320','h','t','\320','t','v','\320','v','~','\320','~','\177','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','H','\270','K','\300','|','\320','S','U','\320','U',']','\320',']','^','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','Y','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','6','\270','\027','\300','\017','\310','|','\320','[',']','\320',']','c','\320','c','j','\320','j','k','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','w','\270','o','\310','\\','\320','Y','[','\320','[','a','\320','a','h','\320','h','i','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','\047','\300','\037','\320','P','\\','\320','\\','^','\320','^','d','\320','d','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002','X','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','?','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','l','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','%','\270','y','\310','\017','\320','W','c','\320','c','e','\320','e','k','\320','k','p','\320','p','y','\360','\000','\000','z','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','E','\270','\031','\300','/','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\360','\000','\000','t','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','g','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','9','\310','L','\320','X','Z','\320','Z','`','\320','`','e','\320','e','n','\320','n','o','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','\047','\240','q','\250','\014','\260','B','\260','f','\270','E','\300','\031','\320','J','Z','\320','Z','f','\320','f','h','\320','h','n','\320','n','s','\320','s','|','\320','|','}','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','k','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\320','s','t','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','u','\270','I','\300','[','\320','P','\\','\320','\\','^','\320','^','d','\320','d','i','\320','i','r','\320','r','s','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','7','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','s','\320','s','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','W','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','H','\310','\001','\310','\021','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','\\','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','\177','\240','a','\240','|','\260','2','\260','X','\270',']','\310',',','\320','V','X','\320','X','`','\320','`','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','F','\270','%','\270','y','\310','\014','\320','T','`','\320','`','b','\320','b','h','\320','h','n','\320','n','s','\320','s','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','e','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\036','\230','g','\240','U','\250','!','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','4','\250','v','\260','Q','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','0','\260','\001','\330','*','2','\260','$','\260','a','\330','\r',' ','\240','\007','\240','u','\250','A','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','1','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','1','\260','\024','\260','Q','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r',' ','\240','\007','\240','q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','&','\240','g','\250','Q','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; #else -static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notearoondown aroonupbegidx nbelementbullpower bearpowercannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablefastk fastdgchaopen hahigh halow hacloseinphase quadratureinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledk d jmacd macdsignal macdhistmama famamin maxminidx maxidxno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importplusvi minusvireal integersine leadsineslowk slowdsmi smisignalswinghigh swinglowtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047upperband middleband lowerbandACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACCBANDS_ValueACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillAROON_ValueASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream"".open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBBANDS_ValueBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CROWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGIN""GMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.open_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTI""CKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDLUNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDONCHIAN_ValueDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillERI_ValueER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFRACTAL_ValueFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsF""unction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHA_ValueHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_PHASOR_ValueHT_SINEHT_SINE_StreamHT_SINE_Stream.open_and_fillHT_SINE_ValueHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKC_ValueKDJKDJ_StreamKDJ_Stream.open_and_fillKDJ_ValueLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDEXT_ValueMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACDFIX_ValueMACD_StreamMACD_Stream.open_and_fillMACD_ValueMAMAMAMA_StreamMAMA_Stream.open_and_fillMAMA_ValueMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAXINDEX_ValueMINMAX_StreamMINMAX_Stream.open_and_fillMINMAX_V""alueMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Stream.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSMI_ValueSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHF_ValueSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCHRSI_ValueSTOCH_StreamSTOCH_Stream.open_and_fillSTOCH_ValueSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSUPERTREND_ValueSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_A""CCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI""_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LINESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFi""llTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenAndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHAN""GINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMOD_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA""_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenT""A_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAndFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CM""O_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_UpdateTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_""HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN""_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MAMA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_M""INUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_Upd""ateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_OpenAndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TA""NH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_PeekTA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_Strea""mTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVORTEX_ValueVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.open_and_fill_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr__ARRAY_TYPES__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTS__PANDAS_DATAFRAME__PANDAS_SERIES__POLARS_DATAFRAME__POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackclone""closecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallookbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutswinghighoutswinglowoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupda""teupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330""\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000""\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016""\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307""\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q""\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!""\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600""\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"""\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i""\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@""\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i""\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000""\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308""\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330""\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000""\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D""\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S""\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000""\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a""\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n""\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001""\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001""\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B""\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000""\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^""\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B""\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208""\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200""\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T""\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002""\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001""\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A""\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh""\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S""\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i""\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047""\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310""\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002""\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000""\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250""\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3""\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010""\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260(\270)\300<\310r\320QY\320YZ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e""\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,""\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330""\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027(\250\001\250\034\260R\260x\270|\310<\320WY\320Ya\320ab\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3""\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402""\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[""\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401""\240L\260\002\260(\270/\310\034\320UW\320W_\320_o\320o{\320{}\360\000\000~\001F\002\360\000\000F\002G\002\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320Xh\320ht\320tv\320v~\320~\177\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x""\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260H\270K\300|\320SU\320U]\320]^\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601""\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002""\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330""\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320XY\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2606\270\027\300\017\310|\320[]\320]c\320cj\320jk\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035""\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260w\270o\310\\\320Y[\320[a\320ah\320hi\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330""\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270\047\300\037\320P\\\320\\^\320^d\320dk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002W\002\360\000\000W\002X\002\200A\3300F\300a\330\010!\240\035\250a""\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310""\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003""\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330""\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320T""V\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330""\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[""\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T""\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\300?\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW""\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300l\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o""\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G""\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270%\270y\310\017\320Wc\320ce\320ek\320kp\320py\360\000\000z\001J\002\360\000\000J\002V\002\360\000\000V\002X\002\360\000\000X\002^\002\360\000\000^\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360""\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260E\270\031\300/\320Q]\320]_\320_e\320ej\320js\360\000\000t\001D\002\360\000\000D\002P\002\360\000\000P\002R\002\360\000\000R\002X\002\360\000\000X\002]\002\360\000\000]\002f\002\360\000\000f\002g\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k""\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3009\310L\320XZ\320Z`\320`e\320en\320no\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003D\004\360\000\000D\004J\004\360\000\000J\004T\004\360\000\000T\004Z\004\360\000\000Z\004\\\004\360\000\000\\\004]\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027\047\240q\250\014\260B\260f\270E\300\031\310*\320T`\320`b\320bh\320hm\320mv\320vw\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^""\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300k\320Q]\320]_\320_e\320ej\320js\320st\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q""\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260u\270I\300[\320P\\\320\\^\320^d\320di\320ir\320rs\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004""\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3007\310,\320VX\320X^\320^c\320cl\320ls\320s\177\360\000\000@\002B\002\360\000\000B\002H\002\360\000\000H\002M\002\360\000\000M\002V\002\360\000\000V\002W\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240""\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m""\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B""\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U""\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330""\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000""\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[\\\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220\177\240a\240|\2602\260X\270]\310,\320VX\320X`\320`a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330""\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G""\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360""\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002""\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009""\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240""\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260F\270%\270y\310\014\320T`\320`b\320bh\320hn\320ns\320s|\360\000\000}\001I\002\360\000\000I\002U\002\360\000\000U\002W\002\360\000\000W\002]\002\360\000\000]\002c\002\360\000\000c\002h\002\360\000\000h\002q\002\360\000\000q\002|\002\360\000\000|\002H\003\360\000\000H\003J\003\360\000\000J\003P\003\360\000\000P\003V\003\360\000\000V\003[\003\360\000\000[\003d\003\360\000\000d\003e\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320p""v\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,""\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402""\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D""\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~""\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y""\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X""\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101""\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330""\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014""\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104""\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404""\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; +static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notearoondown aroonupbegidx nbelementbullpower bearpowercannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablefastk fastdgchaopen hahigh halow hacloseinphase quadratureinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledk d jmacd macdsignal macdhistmama famamin maxminidx maxidxno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importplusvi minusvisine leadsineslowk slowdsmi smisignalsupertrend trendswinghigh swinglowtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047upperband middleband lowerbandACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACCBANDS_ValueACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillAROON_ValueASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_St""ream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBBANDS_ValueBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CROWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHA""NGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.open_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCD""LSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDLUNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDONCHIAN_ValueDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillERI_ValueER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFRACTAL_ValueFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_a""rgsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHA_ValueHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_PHASOR_ValueHT_SINEHT_SINE_StreamHT_SINE_Stream.open_and_fillHT_SINE_ValueHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKC_ValueKDJKDJ_StreamKDJ_Stream.open_and_fillKDJ_ValueLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDEXT_ValueMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACDFIX_ValueMACD_StreamMACD_Stream.open_and_fillMACD_ValueMAMAMAMA_StreamMAMA_Stream.open_and_fillMAMA_ValueMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAXINDEX_ValueMINMAX_StreamMINMAX_Stream.open_and_fillMINM""AX_ValueMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Stream.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSMI_ValueSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHF_ValueSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCHRSI_ValueSTOCH_StreamSTOCH_Stream.open_and_fillSTOCH_ValueSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSUPERTREND_ValueSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_AC""TA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA""_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LINESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenA""ndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenAndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CD""LHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMOD_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_Pe""ekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_O""penTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAndFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenT""A_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_UpdateTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_Clon""eTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillT""A_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MAMA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_Peek""TA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR""_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_OpenAndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateT""A_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_PeekTA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_S""treamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVORTEX_ValueVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.open_and_fill_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr__ARRAY_TYPES__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTS__PANDAS_DATAFRAME__PANDAS_SERIES__POLARS_DATAFRAME__POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackc""loneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallookbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_""numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330""\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360""\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R""\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r""\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&""\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q""\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)""A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220""\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320""\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~""\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c""\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000""\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330""\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005""\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000""\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320y""z\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S""\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p""\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002""\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004""\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004""\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y""\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A""\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000""\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S""\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005""\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021""\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q""\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302""\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:""\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002""\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a""\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!""\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307""\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)""\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002""\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220""\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021""\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260""\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360""\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q""\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004""\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270""\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330""\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260(\270)\300<\310r\320QY\320YZ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^""\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H""\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025""\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027(\250\001\250\034\260R\260x\270|\310<\320WY\320Ya\320ab\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014""\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330""\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608""\270:\300\\\320QS\320S[\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330""\010\017\210x\220|\2401\240L\260\002\260(\270/\310\034\320UW\320W_\320_o\320o{\320{}\360\000\000~\001F\002\360\000\000F\002G\002\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320Xh\320ht\320tv\320v~\320~\177\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k""\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260H\270K\300|\320SU\320U]\320]^\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a""\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002""\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k""\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320XY\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2606\270\027\300\017\310|\320[]\320]c\320cj\320jk\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A""\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260w\270o\310\\\320Y[\320[a\320ah\320hi\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270\047\300\037\320P\\\320\\^\320^d\320dk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002W\002\360\000\000W\002X\002\200A\3300F\300a""\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q""\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360""\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-""\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y""\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o""\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S""\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R""\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\300?\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010""\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300l\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x""\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h""\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270%\270y\310\017\320Wc\320ce\320ek\320kp\320py\360\000\000z\001J\002\360\000\000J\002V\002\360\000\000V\002X\002\360\000\000X\002^\002\360\000\000^\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360""\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260E\270\031\300/\320Q]\320]_\320_e\320ej\320js\360\000\000t\001D\002\360\000\000D\002P\002\360\000\000P\002R\002\360\000\000R\002X\002\360\000\000X\002]\002\360\000\000]\002f\002\360\000\000f\002g\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027""\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3009\310L\320XZ\320Z`\320`e\320en\320no\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027\047\240q\250\014\260B\260f\270E\300\031\320JZ\320Zf\320fh\320hn\320ns\320s|\320|}\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R""\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300k\320Q]\320]_\320_e\320ej\320js\320st\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st""\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260u\270I\300[\320P\\\320\\^\320^d\320di\320ir\320rs\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004""\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3007\310,\320VX\320X^\320^c\320cl\320ls\320s\177\360\000\000@\002B\002\360\000\000B\002H\002\360\000\000H\002M\002\360\000\000M\002V\002\360\000\000V\002W\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,""\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!""\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a""\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000""\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d""\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I""\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360""\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[\\\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220\177\240a\240|\2602\260X\270]\310,\320VX\320X`\320`a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034""\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002""\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S""\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320""\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U""\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260F\270%\270y\310\014\320T`\320`b\320bh\320hn\320ns\320s|\360\000\000}\001I\002\360\000\000I\002U\002\360\000\000U\002W\002\360\000\000W\002]\002\360\000\000]\002c\002\360\000\000c\002h\002\360\000\000h\002q\002\360\000\000q\002|\002\360\000\000|\002H\003\360\000\000H\003J\003\360\000\000J\003P\003\360\000\000P\003V\003\360\000\000V\003[\003\360\000\000[\003d\003\360\000\000d\003e\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW""\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"""\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k""\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000""\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002""\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ""\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-""\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d""\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H""\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330""\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016""\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033""\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED @@ -351460,7 +351462,7 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 2601; i++) { + for (int i = 0; i < 2603; i++) { Py_ssize_t bytes_length = str_length_index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); if (likely(string) && i >= 144) PyUnicode_InternInPlace(&string); @@ -351471,8 +351473,8 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 stringtab[i] = string; pos += bytes_length; } - for (int i = 2601; i < 2870; i++) { - Py_ssize_t bytes_length = bytes_length_index[i-2601].length; + for (int i = 2603; i < 2872; i++) { + Py_ssize_t bytes_length = bytes_length_index[i-2603].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; pos += bytes_length; @@ -351482,14 +351484,14 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 2870; i++) { + for (Py_ssize_t i = 0; i < 2872; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 2601; + PyObject **table = stringtab + 2603; for (Py_ssize_t i=0; i<269; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); @@ -353743,7 +353745,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { } { const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20432}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsupertrend, __pyx_mstate->__pyx_n_u_outtrend, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad; } { diff --git a/talib/stream.pyi b/talib/stream.pyi index f87ec8729..3c24ecafc 100644 --- a/talib/stream.pyi +++ b/talib/stream.pyi @@ -1900,8 +1900,8 @@ class SUM(Stream): def copy(self) -> "SUM": ... class SUPERTREND_Value(NamedTuple): - real: float - integer: int + supertrend: float + trend: int class SUPERTREND(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, multiplier: float = 3.0) -> None: ... From 5829492124ff6cf1acc2ed0f35501cd1c5b77a84 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Wed, 9 Sep 2026 18:13:34 -0400 Subject: [PATCH 04/12] perf(stream): multi-output handles answer with a plain tuple update() on a multi-output handle spent ~125 ns/bar in namedtuple.__new__ against a 6 ns C call. MACD update() goes from 182 to 57 ns/bar with every candidate measured in one binary, and from 170 to 37 ns/bar end to end; BBANDS, STOCH, AROON and MINMAXINDEX all land in the -73% to -75% band. The Function API already returns a plain tuple, so the two tiers now agree. tuple -> NamedTuple stays available later as a non-breaking upgrade, since every tuple idiom keeps working; the reverse would not be. Single-output handles are untouched: 178 of 178 single-output classes are byte-identical before and after. test_open_and_fill_matches_batch loses its _fields check and gains a type and arity check that reaches all 23 multi-output and 178 single-output functions; order stays pinned by the element-wise comparison above it. Claude-Session: https://claude.ai/code/session_01RQsaLFjtMXaVE4UHQKVaeu --- CHANGELOG | 7 +- README.md | 7 +- talib/_stream.pxi | 230 +- talib/_ta_lib.c | 52320 ++++++++++++++++++------------------- talib/stream.py | 12 +- talib/stream.pyi | 240 +- tests/test_stream.py | 27 +- tools/generate_stream.py | 16 +- 8 files changed, 25090 insertions(+), 27769 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 83c47cbb5..b33aa3876 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,9 +9,10 @@ that bar's value, ``handle.peek(bar)`` evaluates a forming bar without committing it, and ``handle.copy()`` forks it. ``stream.SMA.open_and_fill()`` returns the handle and the Function API's series in one pass. A multi-output - function answers with a named tuple. The old last-value functions -- - ``talib.stream.SMA``, ``talib.stream_SMA``, and their ``_ta_lib.pyi`` stubs -- - are gone; ``talib/stream.pyi`` types the handles instead. + function answers with the same tuple the Function API returns. The old + last-value functions -- ``talib.stream.SMA``, ``talib.stream_SMA``, and their + ``_ta_lib.pyi`` stubs -- are gone; ``talib/stream.pyi`` types the handles + instead. Migrating is ``stream.X(...)`` -> ``stream.X(...).value``, and the compiler cannot find the sites for you: ``if stream.CDLDOJI(o, h, l, c):`` used to test diff --git a/README.md b/README.md index cdf29dee6..31f735424 100644 --- a/README.md +++ b/README.md @@ -559,13 +559,14 @@ fork = s.copy() # an independent handle at the same bar `stream.SMA` takes exactly the arguments `talib.SMA` takes. A single-output function answers with a `float` (an `int` where the Function API returns an -integer array); a multi-output one with a named tuple that still unpacks like -the Function API's tuple: +integer array); a multi-output one with the same tuple the Function API returns: ```python m = stream.MACD(close) macd, macdsignal, macdhist = m.update(price) -m.value.macdhist +m.value[2] # the histogram, last bar + +abstract.Function('MACD').output_names # ['macd', 'macdsignal', 'macdhist'] ``` Opening needs at least `lookback + 1` bars, which `abstract` knows, and a little diff --git a/talib/_stream.pxi b/talib/_stream.pxi index a0de4b5b2..6ebf6bce8 100644 --- a/talib/_stream.pxi +++ b/talib/_stream.pxi @@ -2641,8 +2641,6 @@ cdef class AC_Stream(Stream): return stream -ACCBANDS_Value = namedtuple("ACCBANDS_Value", "upperband middleband lowerband", module=__name__) - cdef class ACCBANDS_Stream(Stream): """ ACCBANDS(high, low, close[, timeperiod=?]) @@ -2705,7 +2703,7 @@ cdef class ACCBANDS_Stream(Stream): cdef ACCBANDS_Stream stream = ACCBANDS_Stream.__new__(ACCBANDS_Stream) stream._handle = handle stream._begidx = begidx - return stream, ACCBANDS_Value(_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) + return stream, (_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) @cython.binding(False) def update(self, double high, double low, double close): @@ -2715,7 +2713,7 @@ cdef class ACCBANDS_Stream(Stream): cdef TA_RetCode retCode = TA_ACCBANDS_Update(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_ACCBANDS_Update", retCode) - return ACCBANDS_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @cython.binding(False) def peek(self, double high, double low, double close): @@ -2725,7 +2723,7 @@ cdef class ACCBANDS_Stream(Stream): cdef TA_RetCode retCode = TA_ACCBANDS_Peek(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_ACCBANDS_Peek", retCode) - return ACCBANDS_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @property def value(self): @@ -2735,7 +2733,7 @@ cdef class ACCBANDS_Stream(Stream): cdef TA_RetCode retCode = TA_ACCBANDS_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_ACCBANDS_Value", retCode) - return ACCBANDS_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_ACCBANDS_OutRange(self._handle, outbegidx, outnbelement) @@ -3644,8 +3642,6 @@ cdef class APO_Stream(Stream): return stream -AROON_Value = namedtuple("AROON_Value", "aroondown aroonup", module=__name__) - cdef class AROON_Stream(Stream): """ AROON(high, low[, timeperiod=?]) @@ -3703,7 +3699,7 @@ cdef class AROON_Stream(Stream): cdef AROON_Stream stream = AROON_Stream.__new__(AROON_Stream) stream._handle = handle stream._begidx = begidx - return stream, AROON_Value(_stream_like((high, low,), outaroondown), _stream_like((high, low,), outaroonup)) + return stream, (_stream_like((high, low,), outaroondown), _stream_like((high, low,), outaroonup)) @cython.binding(False) def update(self, double high, double low): @@ -3712,7 +3708,7 @@ cdef class AROON_Stream(Stream): cdef TA_RetCode retCode = TA_AROON_Update(self._handle, high, low, &outaroondown, &outaroonup) if retCode != 0: _ta_check_success("TA_AROON_Update", retCode) - return AROON_Value(outaroondown, outaroonup) + return (outaroondown, outaroonup) @cython.binding(False) def peek(self, double high, double low): @@ -3721,7 +3717,7 @@ cdef class AROON_Stream(Stream): cdef TA_RetCode retCode = TA_AROON_Peek(self._handle, high, low, &outaroondown, &outaroonup) if retCode != 0: _ta_check_success("TA_AROON_Peek", retCode) - return AROON_Value(outaroondown, outaroonup) + return (outaroondown, outaroonup) @property def value(self): @@ -3730,7 +3726,7 @@ cdef class AROON_Stream(Stream): cdef TA_RetCode retCode = TA_AROON_Value(self._handle, &outaroondown, &outaroonup) if retCode != 0: _ta_check_success("TA_AROON_Value", retCode) - return AROON_Value(outaroondown, outaroonup) + return (outaroondown, outaroonup) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_AROON_OutRange(self._handle, outbegidx, outnbelement) @@ -4332,8 +4328,6 @@ cdef class AVGPRICE_Stream(Stream): return stream -BBANDS_Value = namedtuple("BBANDS_Value", "upperband middleband lowerband", module=__name__) - cdef class BBANDS_Stream(Stream): """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) @@ -4395,7 +4389,7 @@ cdef class BBANDS_Stream(Stream): cdef BBANDS_Stream stream = BBANDS_Stream.__new__(BBANDS_Stream) stream._handle = handle stream._begidx = begidx - return stream, BBANDS_Value(_stream_like((real,), outupperband), _stream_like((real,), outmiddleband), _stream_like((real,), outlowerband)) + return stream, (_stream_like((real,), outupperband), _stream_like((real,), outmiddleband), _stream_like((real,), outlowerband)) @cython.binding(False) def update(self, double real): @@ -4405,7 +4399,7 @@ cdef class BBANDS_Stream(Stream): cdef TA_RetCode retCode = TA_BBANDS_Update(self._handle, real, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_BBANDS_Update", retCode) - return BBANDS_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @cython.binding(False) def peek(self, double real): @@ -4415,7 +4409,7 @@ cdef class BBANDS_Stream(Stream): cdef TA_RetCode retCode = TA_BBANDS_Peek(self._handle, real, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_BBANDS_Peek", retCode) - return BBANDS_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @property def value(self): @@ -4425,7 +4419,7 @@ cdef class BBANDS_Stream(Stream): cdef TA_RetCode retCode = TA_BBANDS_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_BBANDS_Value", retCode) - return BBANDS_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_BBANDS_OutRange(self._handle, outbegidx, outnbelement) @@ -12017,8 +12011,6 @@ cdef class DIV_Stream(Stream): return stream -DONCHIAN_Value = namedtuple("DONCHIAN_Value", "upperband middleband lowerband", module=__name__) - cdef class DONCHIAN_Stream(Stream): """ DONCHIAN(high, low[, timeperiod=?]) @@ -12079,7 +12071,7 @@ cdef class DONCHIAN_Stream(Stream): cdef DONCHIAN_Stream stream = DONCHIAN_Stream.__new__(DONCHIAN_Stream) stream._handle = handle stream._begidx = begidx - return stream, DONCHIAN_Value(_stream_like((high, low,), outupperband), _stream_like((high, low,), outmiddleband), _stream_like((high, low,), outlowerband)) + return stream, (_stream_like((high, low,), outupperband), _stream_like((high, low,), outmiddleband), _stream_like((high, low,), outlowerband)) @cython.binding(False) def update(self, double high, double low): @@ -12089,7 +12081,7 @@ cdef class DONCHIAN_Stream(Stream): cdef TA_RetCode retCode = TA_DONCHIAN_Update(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_DONCHIAN_Update", retCode) - return DONCHIAN_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @cython.binding(False) def peek(self, double high, double low): @@ -12099,7 +12091,7 @@ cdef class DONCHIAN_Stream(Stream): cdef TA_RetCode retCode = TA_DONCHIAN_Peek(self._handle, high, low, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_DONCHIAN_Peek", retCode) - return DONCHIAN_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @property def value(self): @@ -12109,7 +12101,7 @@ cdef class DONCHIAN_Stream(Stream): cdef TA_RetCode retCode = TA_DONCHIAN_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_DONCHIAN_Value", retCode) - return DONCHIAN_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_DONCHIAN_OutRange(self._handle, outbegidx, outnbelement) @@ -12615,8 +12607,6 @@ cdef class ER_Stream(Stream): return stream -ERI_Value = namedtuple("ERI_Value", "bullpower bearpower", module=__name__) - cdef class ERI_Stream(Stream): """ ERI(high, low, close[, timeperiod=?]) @@ -12676,7 +12666,7 @@ cdef class ERI_Stream(Stream): cdef ERI_Stream stream = ERI_Stream.__new__(ERI_Stream) stream._handle = handle stream._begidx = begidx - return stream, ERI_Value(_stream_like((high, low, close,), outbullpower), _stream_like((high, low, close,), outbearpower)) + return stream, (_stream_like((high, low, close,), outbullpower), _stream_like((high, low, close,), outbearpower)) @cython.binding(False) def update(self, double high, double low, double close): @@ -12685,7 +12675,7 @@ cdef class ERI_Stream(Stream): cdef TA_RetCode retCode = TA_ERI_Update(self._handle, high, low, close, &outbullpower, &outbearpower) if retCode != 0: _ta_check_success("TA_ERI_Update", retCode) - return ERI_Value(outbullpower, outbearpower) + return (outbullpower, outbearpower) @cython.binding(False) def peek(self, double high, double low, double close): @@ -12694,7 +12684,7 @@ cdef class ERI_Stream(Stream): cdef TA_RetCode retCode = TA_ERI_Peek(self._handle, high, low, close, &outbullpower, &outbearpower) if retCode != 0: _ta_check_success("TA_ERI_Peek", retCode) - return ERI_Value(outbullpower, outbearpower) + return (outbullpower, outbearpower) @property def value(self): @@ -12703,7 +12693,7 @@ cdef class ERI_Stream(Stream): cdef TA_RetCode retCode = TA_ERI_Value(self._handle, &outbullpower, &outbearpower) if retCode != 0: _ta_check_success("TA_ERI_Value", retCode) - return ERI_Value(outbullpower, outbearpower) + return (outbullpower, outbearpower) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_ERI_OutRange(self._handle, outbegidx, outnbelement) @@ -13007,8 +12997,6 @@ cdef class FOSC_Stream(Stream): return stream -FRACTAL_Value = namedtuple("FRACTAL_Value", "swinghigh swinglow", module=__name__) - cdef class FRACTAL_Stream(Stream): """ FRACTAL(high, low[, leftbars=?, rightbars=?]) @@ -13067,7 +13055,7 @@ cdef class FRACTAL_Stream(Stream): cdef FRACTAL_Stream stream = FRACTAL_Stream.__new__(FRACTAL_Stream) stream._handle = handle stream._begidx = begidx - return stream, FRACTAL_Value(_stream_like((high, low,), outswinghigh), _stream_like((high, low,), outswinglow)) + return stream, (_stream_like((high, low,), outswinghigh), _stream_like((high, low,), outswinglow)) @cython.binding(False) def update(self, double high, double low): @@ -13076,7 +13064,7 @@ cdef class FRACTAL_Stream(Stream): cdef TA_RetCode retCode = TA_FRACTAL_Update(self._handle, high, low, &outswinghigh, &outswinglow) if retCode != 0: _ta_check_success("TA_FRACTAL_Update", retCode) - return FRACTAL_Value(outswinghigh, outswinglow) + return (outswinghigh, outswinglow) @cython.binding(False) def peek(self, double high, double low): @@ -13085,7 +13073,7 @@ cdef class FRACTAL_Stream(Stream): cdef TA_RetCode retCode = TA_FRACTAL_Peek(self._handle, high, low, &outswinghigh, &outswinglow) if retCode != 0: _ta_check_success("TA_FRACTAL_Peek", retCode) - return FRACTAL_Value(outswinghigh, outswinglow) + return (outswinghigh, outswinglow) @property def value(self): @@ -13094,7 +13082,7 @@ cdef class FRACTAL_Stream(Stream): cdef TA_RetCode retCode = TA_FRACTAL_Value(self._handle, &outswinghigh, &outswinglow) if retCode != 0: _ta_check_success("TA_FRACTAL_Value", retCode) - return FRACTAL_Value(outswinghigh, outswinglow) + return (outswinghigh, outswinglow) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_FRACTAL_OutRange(self._handle, outbegidx, outnbelement) @@ -13114,8 +13102,6 @@ cdef class FRACTAL_Stream(Stream): return stream -HA_Value = namedtuple("HA_Value", "haopen hahigh halow haclose", module=__name__) - cdef class HA_Stream(Stream): """ HA(open, high, low, close) @@ -13181,7 +13167,7 @@ cdef class HA_Stream(Stream): cdef HA_Stream stream = HA_Stream.__new__(HA_Stream) stream._handle = handle stream._begidx = begidx - return stream, HA_Value(_stream_like((open, high, low, close,), outhaopen), _stream_like((open, high, low, close,), outhahigh), _stream_like((open, high, low, close,), outhalow), _stream_like((open, high, low, close,), outhaclose)) + return stream, (_stream_like((open, high, low, close,), outhaopen), _stream_like((open, high, low, close,), outhahigh), _stream_like((open, high, low, close,), outhalow), _stream_like((open, high, low, close,), outhaclose)) @cython.binding(False) def update(self, double open, double high, double low, double close): @@ -13192,7 +13178,7 @@ cdef class HA_Stream(Stream): cdef TA_RetCode retCode = TA_HA_Update(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) if retCode != 0: _ta_check_success("TA_HA_Update", retCode) - return HA_Value(outhaopen, outhahigh, outhalow, outhaclose) + return (outhaopen, outhahigh, outhalow, outhaclose) @cython.binding(False) def peek(self, double open, double high, double low, double close): @@ -13203,7 +13189,7 @@ cdef class HA_Stream(Stream): cdef TA_RetCode retCode = TA_HA_Peek(self._handle, open, high, low, close, &outhaopen, &outhahigh, &outhalow, &outhaclose) if retCode != 0: _ta_check_success("TA_HA_Peek", retCode) - return HA_Value(outhaopen, outhahigh, outhalow, outhaclose) + return (outhaopen, outhahigh, outhalow, outhaclose) @property def value(self): @@ -13214,7 +13200,7 @@ cdef class HA_Stream(Stream): cdef TA_RetCode retCode = TA_HA_Value(self._handle, &outhaopen, &outhahigh, &outhalow, &outhaclose) if retCode != 0: _ta_check_success("TA_HA_Value", retCode) - return HA_Value(outhaopen, outhahigh, outhalow, outhaclose) + return (outhaopen, outhahigh, outhalow, outhaclose) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_HA_OutRange(self._handle, outbegidx, outnbelement) @@ -13518,8 +13504,6 @@ cdef class HT_DCPHASE_Stream(Stream): return stream -HT_PHASOR_Value = namedtuple("HT_PHASOR_Value", "inphase quadrature", module=__name__) - cdef class HT_PHASOR_Stream(Stream): """ HT_PHASOR(real) @@ -13573,7 +13557,7 @@ cdef class HT_PHASOR_Stream(Stream): cdef HT_PHASOR_Stream stream = HT_PHASOR_Stream.__new__(HT_PHASOR_Stream) stream._handle = handle stream._begidx = begidx - return stream, HT_PHASOR_Value(_stream_like((real,), outinphase), _stream_like((real,), outquadrature)) + return stream, (_stream_like((real,), outinphase), _stream_like((real,), outquadrature)) @cython.binding(False) def update(self, double real): @@ -13582,7 +13566,7 @@ cdef class HT_PHASOR_Stream(Stream): cdef TA_RetCode retCode = TA_HT_PHASOR_Update(self._handle, real, &outinphase, &outquadrature) if retCode != 0: _ta_check_success("TA_HT_PHASOR_Update", retCode) - return HT_PHASOR_Value(outinphase, outquadrature) + return (outinphase, outquadrature) @cython.binding(False) def peek(self, double real): @@ -13591,7 +13575,7 @@ cdef class HT_PHASOR_Stream(Stream): cdef TA_RetCode retCode = TA_HT_PHASOR_Peek(self._handle, real, &outinphase, &outquadrature) if retCode != 0: _ta_check_success("TA_HT_PHASOR_Peek", retCode) - return HT_PHASOR_Value(outinphase, outquadrature) + return (outinphase, outquadrature) @property def value(self): @@ -13600,7 +13584,7 @@ cdef class HT_PHASOR_Stream(Stream): cdef TA_RetCode retCode = TA_HT_PHASOR_Value(self._handle, &outinphase, &outquadrature) if retCode != 0: _ta_check_success("TA_HT_PHASOR_Value", retCode) - return HT_PHASOR_Value(outinphase, outquadrature) + return (outinphase, outquadrature) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_HT_PHASOR_OutRange(self._handle, outbegidx, outnbelement) @@ -13620,8 +13604,6 @@ cdef class HT_PHASOR_Stream(Stream): return stream -HT_SINE_Value = namedtuple("HT_SINE_Value", "sine leadsine", module=__name__) - cdef class HT_SINE_Stream(Stream): """ HT_SINE(real) @@ -13675,7 +13657,7 @@ cdef class HT_SINE_Stream(Stream): cdef HT_SINE_Stream stream = HT_SINE_Stream.__new__(HT_SINE_Stream) stream._handle = handle stream._begidx = begidx - return stream, HT_SINE_Value(_stream_like((real,), outsine), _stream_like((real,), outleadsine)) + return stream, (_stream_like((real,), outsine), _stream_like((real,), outleadsine)) @cython.binding(False) def update(self, double real): @@ -13684,7 +13666,7 @@ cdef class HT_SINE_Stream(Stream): cdef TA_RetCode retCode = TA_HT_SINE_Update(self._handle, real, &outsine, &outleadsine) if retCode != 0: _ta_check_success("TA_HT_SINE_Update", retCode) - return HT_SINE_Value(outsine, outleadsine) + return (outsine, outleadsine) @cython.binding(False) def peek(self, double real): @@ -13693,7 +13675,7 @@ cdef class HT_SINE_Stream(Stream): cdef TA_RetCode retCode = TA_HT_SINE_Peek(self._handle, real, &outsine, &outleadsine) if retCode != 0: _ta_check_success("TA_HT_SINE_Peek", retCode) - return HT_SINE_Value(outsine, outleadsine) + return (outsine, outleadsine) @property def value(self): @@ -13702,7 +13684,7 @@ cdef class HT_SINE_Stream(Stream): cdef TA_RetCode retCode = TA_HT_SINE_Value(self._handle, &outsine, &outleadsine) if retCode != 0: _ta_check_success("TA_HT_SINE_Value", retCode) - return HT_SINE_Value(outsine, outleadsine) + return (outsine, outleadsine) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_HT_SINE_OutRange(self._handle, outbegidx, outnbelement) @@ -14104,8 +14086,6 @@ cdef class KAMA_Stream(Stream): return stream -KC_Value = namedtuple("KC_Value", "upperband middleband lowerband", module=__name__) - cdef class KC_Stream(Stream): """ KC(high, low, close[, timeperiod=?, atrperiod=?, nbdev=?]) @@ -14170,7 +14150,7 @@ cdef class KC_Stream(Stream): cdef KC_Stream stream = KC_Stream.__new__(KC_Stream) stream._handle = handle stream._begidx = begidx - return stream, KC_Value(_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) + return stream, (_stream_like((high, low, close,), outupperband), _stream_like((high, low, close,), outmiddleband), _stream_like((high, low, close,), outlowerband)) @cython.binding(False) def update(self, double high, double low, double close): @@ -14180,7 +14160,7 @@ cdef class KC_Stream(Stream): cdef TA_RetCode retCode = TA_KC_Update(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_KC_Update", retCode) - return KC_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @cython.binding(False) def peek(self, double high, double low, double close): @@ -14190,7 +14170,7 @@ cdef class KC_Stream(Stream): cdef TA_RetCode retCode = TA_KC_Peek(self._handle, high, low, close, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_KC_Peek", retCode) - return KC_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) @property def value(self): @@ -14200,7 +14180,7 @@ cdef class KC_Stream(Stream): cdef TA_RetCode retCode = TA_KC_Value(self._handle, &outupperband, &outmiddleband, &outlowerband) if retCode != 0: _ta_check_success("TA_KC_Value", retCode) - return KC_Value(outupperband, outmiddleband, outlowerband) + return (outupperband, outmiddleband, outlowerband) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_KC_OutRange(self._handle, outbegidx, outnbelement) @@ -14220,8 +14200,6 @@ cdef class KC_Stream(Stream): return stream -KDJ_Value = namedtuple("KDJ_Value", "k d j", module=__name__) - cdef class KDJ_Stream(Stream): """ KDJ(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) @@ -14288,7 +14266,7 @@ cdef class KDJ_Stream(Stream): cdef KDJ_Stream stream = KDJ_Stream.__new__(KDJ_Stream) stream._handle = handle stream._begidx = begidx - return stream, KDJ_Value(_stream_like((high, low, close,), outk), _stream_like((high, low, close,), outd), _stream_like((high, low, close,), outj)) + return stream, (_stream_like((high, low, close,), outk), _stream_like((high, low, close,), outd), _stream_like((high, low, close,), outj)) @cython.binding(False) def update(self, double high, double low, double close): @@ -14298,7 +14276,7 @@ cdef class KDJ_Stream(Stream): cdef TA_RetCode retCode = TA_KDJ_Update(self._handle, high, low, close, &outk, &outd, &outj) if retCode != 0: _ta_check_success("TA_KDJ_Update", retCode) - return KDJ_Value(outk, outd, outj) + return (outk, outd, outj) @cython.binding(False) def peek(self, double high, double low, double close): @@ -14308,7 +14286,7 @@ cdef class KDJ_Stream(Stream): cdef TA_RetCode retCode = TA_KDJ_Peek(self._handle, high, low, close, &outk, &outd, &outj) if retCode != 0: _ta_check_success("TA_KDJ_Peek", retCode) - return KDJ_Value(outk, outd, outj) + return (outk, outd, outj) @property def value(self): @@ -14318,7 +14296,7 @@ cdef class KDJ_Stream(Stream): cdef TA_RetCode retCode = TA_KDJ_Value(self._handle, &outk, &outd, &outj) if retCode != 0: _ta_check_success("TA_KDJ_Value", retCode) - return KDJ_Value(outk, outd, outj) + return (outk, outd, outj) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_KDJ_OutRange(self._handle, outbegidx, outnbelement) @@ -15007,8 +14985,6 @@ cdef class MA_Stream(Stream): return stream -MACD_Value = namedtuple("MACD_Value", "macd macdsignal macdhist", module=__name__) - cdef class MACD_Stream(Stream): """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) @@ -15069,7 +15045,7 @@ cdef class MACD_Stream(Stream): cdef MACD_Stream stream = MACD_Stream.__new__(MACD_Stream) stream._handle = handle stream._begidx = begidx - return stream, MACD_Value(_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) @cython.binding(False) def update(self, double real): @@ -15079,7 +15055,7 @@ cdef class MACD_Stream(Stream): cdef TA_RetCode retCode = TA_MACD_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACD_Update", retCode) - return MACD_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) @cython.binding(False) def peek(self, double real): @@ -15089,7 +15065,7 @@ cdef class MACD_Stream(Stream): cdef TA_RetCode retCode = TA_MACD_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACD_Peek", retCode) - return MACD_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) @property def value(self): @@ -15099,7 +15075,7 @@ cdef class MACD_Stream(Stream): cdef TA_RetCode retCode = TA_MACD_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACD_Value", retCode) - return MACD_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_MACD_OutRange(self._handle, outbegidx, outnbelement) @@ -15119,8 +15095,6 @@ cdef class MACD_Stream(Stream): return stream -MACDEXT_Value = namedtuple("MACDEXT_Value", "macd macdsignal macdhist", module=__name__) - cdef class MACDEXT_Stream(Stream): """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) @@ -15184,7 +15158,7 @@ cdef class MACDEXT_Stream(Stream): cdef MACDEXT_Stream stream = MACDEXT_Stream.__new__(MACDEXT_Stream) stream._handle = handle stream._begidx = begidx - return stream, MACDEXT_Value(_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) @cython.binding(False) def update(self, double real): @@ -15194,7 +15168,7 @@ cdef class MACDEXT_Stream(Stream): cdef TA_RetCode retCode = TA_MACDEXT_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACDEXT_Update", retCode) - return MACDEXT_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) @cython.binding(False) def peek(self, double real): @@ -15204,7 +15178,7 @@ cdef class MACDEXT_Stream(Stream): cdef TA_RetCode retCode = TA_MACDEXT_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACDEXT_Peek", retCode) - return MACDEXT_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) @property def value(self): @@ -15214,7 +15188,7 @@ cdef class MACDEXT_Stream(Stream): cdef TA_RetCode retCode = TA_MACDEXT_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACDEXT_Value", retCode) - return MACDEXT_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_MACDEXT_OutRange(self._handle, outbegidx, outnbelement) @@ -15234,8 +15208,6 @@ cdef class MACDEXT_Stream(Stream): return stream -MACDFIX_Value = namedtuple("MACDFIX_Value", "macd macdsignal macdhist", module=__name__) - cdef class MACDFIX_Stream(Stream): """ MACDFIX(real[, signalperiod=?]) @@ -15294,7 +15266,7 @@ cdef class MACDFIX_Stream(Stream): cdef MACDFIX_Stream stream = MACDFIX_Stream.__new__(MACDFIX_Stream) stream._handle = handle stream._begidx = begidx - return stream, MACDFIX_Value(_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) + return stream, (_stream_like((real,), outmacd), _stream_like((real,), outmacdsignal), _stream_like((real,), outmacdhist)) @cython.binding(False) def update(self, double real): @@ -15304,7 +15276,7 @@ cdef class MACDFIX_Stream(Stream): cdef TA_RetCode retCode = TA_MACDFIX_Update(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACDFIX_Update", retCode) - return MACDFIX_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) @cython.binding(False) def peek(self, double real): @@ -15314,7 +15286,7 @@ cdef class MACDFIX_Stream(Stream): cdef TA_RetCode retCode = TA_MACDFIX_Peek(self._handle, real, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACDFIX_Peek", retCode) - return MACDFIX_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) @property def value(self): @@ -15324,7 +15296,7 @@ cdef class MACDFIX_Stream(Stream): cdef TA_RetCode retCode = TA_MACDFIX_Value(self._handle, &outmacd, &outmacdsignal, &outmacdhist) if retCode != 0: _ta_check_success("TA_MACDFIX_Value", retCode) - return MACDFIX_Value(outmacd, outmacdsignal, outmacdhist) + return (outmacd, outmacdsignal, outmacdhist) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_MACDFIX_OutRange(self._handle, outbegidx, outnbelement) @@ -15344,8 +15316,6 @@ cdef class MACDFIX_Stream(Stream): return stream -MAMA_Value = namedtuple("MAMA_Value", "mama fama", module=__name__) - cdef class MAMA_Stream(Stream): """ MAMA(real[, fastlimit=?, slowlimit=?]) @@ -15402,7 +15372,7 @@ cdef class MAMA_Stream(Stream): cdef MAMA_Stream stream = MAMA_Stream.__new__(MAMA_Stream) stream._handle = handle stream._begidx = begidx - return stream, MAMA_Value(_stream_like((real,), outmama), _stream_like((real,), outfama)) + return stream, (_stream_like((real,), outmama), _stream_like((real,), outfama)) @cython.binding(False) def update(self, double real): @@ -15411,7 +15381,7 @@ cdef class MAMA_Stream(Stream): cdef TA_RetCode retCode = TA_MAMA_Update(self._handle, real, &outmama, &outfama) if retCode != 0: _ta_check_success("TA_MAMA_Update", retCode) - return MAMA_Value(outmama, outfama) + return (outmama, outfama) @cython.binding(False) def peek(self, double real): @@ -15420,7 +15390,7 @@ cdef class MAMA_Stream(Stream): cdef TA_RetCode retCode = TA_MAMA_Peek(self._handle, real, &outmama, &outfama) if retCode != 0: _ta_check_success("TA_MAMA_Peek", retCode) - return MAMA_Value(outmama, outfama) + return (outmama, outfama) @property def value(self): @@ -15429,7 +15399,7 @@ cdef class MAMA_Stream(Stream): cdef TA_RetCode retCode = TA_MAMA_Value(self._handle, &outmama, &outfama) if retCode != 0: _ta_check_success("TA_MAMA_Value", retCode) - return MAMA_Value(outmama, outfama) + return (outmama, outfama) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_MAMA_OutRange(self._handle, outbegidx, outnbelement) @@ -16531,8 +16501,6 @@ cdef class MININDEX_Stream(Stream): return stream -MINMAX_Value = namedtuple("MINMAX_Value", "min max", module=__name__) - cdef class MINMAX_Stream(Stream): """ MINMAX(real[, timeperiod=?]) @@ -16588,7 +16556,7 @@ cdef class MINMAX_Stream(Stream): cdef MINMAX_Stream stream = MINMAX_Stream.__new__(MINMAX_Stream) stream._handle = handle stream._begidx = begidx - return stream, MINMAX_Value(_stream_like((real,), outmin), _stream_like((real,), outmax)) + return stream, (_stream_like((real,), outmin), _stream_like((real,), outmax)) @cython.binding(False) def update(self, double real): @@ -16597,7 +16565,7 @@ cdef class MINMAX_Stream(Stream): cdef TA_RetCode retCode = TA_MINMAX_Update(self._handle, real, &outmin, &outmax) if retCode != 0: _ta_check_success("TA_MINMAX_Update", retCode) - return MINMAX_Value(outmin, outmax) + return (outmin, outmax) @cython.binding(False) def peek(self, double real): @@ -16606,7 +16574,7 @@ cdef class MINMAX_Stream(Stream): cdef TA_RetCode retCode = TA_MINMAX_Peek(self._handle, real, &outmin, &outmax) if retCode != 0: _ta_check_success("TA_MINMAX_Peek", retCode) - return MINMAX_Value(outmin, outmax) + return (outmin, outmax) @property def value(self): @@ -16615,7 +16583,7 @@ cdef class MINMAX_Stream(Stream): cdef TA_RetCode retCode = TA_MINMAX_Value(self._handle, &outmin, &outmax) if retCode != 0: _ta_check_success("TA_MINMAX_Value", retCode) - return MINMAX_Value(outmin, outmax) + return (outmin, outmax) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_MINMAX_OutRange(self._handle, outbegidx, outnbelement) @@ -16635,8 +16603,6 @@ cdef class MINMAX_Stream(Stream): return stream -MINMAXINDEX_Value = namedtuple("MINMAXINDEX_Value", "minidx maxidx", module=__name__) - cdef class MINMAXINDEX_Stream(Stream): """ MINMAXINDEX(real[, timeperiod=?]) @@ -16699,7 +16665,7 @@ cdef class MINMAXINDEX_Stream(Stream): cdef MINMAXINDEX_Stream stream = MINMAXINDEX_Stream.__new__(MINMAXINDEX_Stream) stream._handle = handle stream._begidx = begidx - return stream, MINMAXINDEX_Value(_stream_like((real,), outminidx), _stream_like((real,), outmaxidx)) + return stream, (_stream_like((real,), outminidx), _stream_like((real,), outmaxidx)) @cython.binding(False) def update(self, double real): @@ -16708,7 +16674,7 @@ cdef class MINMAXINDEX_Stream(Stream): cdef TA_RetCode retCode = TA_MINMAXINDEX_Update(self._handle, real, &outminidx, &outmaxidx) if retCode != 0: _ta_check_success("TA_MINMAXINDEX_Update", retCode) - return MINMAXINDEX_Value(outminidx + self._begidx, outmaxidx + self._begidx) + return (outminidx + self._begidx, outmaxidx + self._begidx) @cython.binding(False) def peek(self, double real): @@ -16717,7 +16683,7 @@ cdef class MINMAXINDEX_Stream(Stream): cdef TA_RetCode retCode = TA_MINMAXINDEX_Peek(self._handle, real, &outminidx, &outmaxidx) if retCode != 0: _ta_check_success("TA_MINMAXINDEX_Peek", retCode) - return MINMAXINDEX_Value(outminidx + self._begidx, outmaxidx + self._begidx) + return (outminidx + self._begidx, outmaxidx + self._begidx) @property def value(self): @@ -16726,7 +16692,7 @@ cdef class MINMAXINDEX_Stream(Stream): cdef TA_RetCode retCode = TA_MINMAXINDEX_Value(self._handle, &outminidx, &outmaxidx) if retCode != 0: _ta_check_success("TA_MINMAXINDEX_Value", retCode) - return MINMAXINDEX_Value(outminidx + self._begidx, outmaxidx + self._begidx) + return (outminidx + self._begidx, outmaxidx + self._begidx) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_MINMAXINDEX_OutRange(self._handle, outbegidx, outnbelement) @@ -19564,8 +19530,6 @@ cdef class SMA_Stream(Stream): return stream -SMI_Value = namedtuple("SMI_Value", "smi smisignal", module=__name__) - cdef class SMI_Stream(Stream): """ SMI(high, low, close[, timeperiod=?, fastperiod=?, slowperiod=?, signalperiod=?]) @@ -19628,7 +19592,7 @@ cdef class SMI_Stream(Stream): cdef SMI_Stream stream = SMI_Stream.__new__(SMI_Stream) stream._handle = handle stream._begidx = begidx - return stream, SMI_Value(_stream_like((high, low, close,), outsmi), _stream_like((high, low, close,), outsmisignal)) + return stream, (_stream_like((high, low, close,), outsmi), _stream_like((high, low, close,), outsmisignal)) @cython.binding(False) def update(self, double high, double low, double close): @@ -19637,7 +19601,7 @@ cdef class SMI_Stream(Stream): cdef TA_RetCode retCode = TA_SMI_Update(self._handle, high, low, close, &outsmi, &outsmisignal) if retCode != 0: _ta_check_success("TA_SMI_Update", retCode) - return SMI_Value(outsmi, outsmisignal) + return (outsmi, outsmisignal) @cython.binding(False) def peek(self, double high, double low, double close): @@ -19646,7 +19610,7 @@ cdef class SMI_Stream(Stream): cdef TA_RetCode retCode = TA_SMI_Peek(self._handle, high, low, close, &outsmi, &outsmisignal) if retCode != 0: _ta_check_success("TA_SMI_Peek", retCode) - return SMI_Value(outsmi, outsmisignal) + return (outsmi, outsmisignal) @property def value(self): @@ -19655,7 +19619,7 @@ cdef class SMI_Stream(Stream): cdef TA_RetCode retCode = TA_SMI_Value(self._handle, &outsmi, &outsmisignal) if retCode != 0: _ta_check_success("TA_SMI_Value", retCode) - return SMI_Value(outsmi, outsmisignal) + return (outsmi, outsmisignal) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_SMI_OutRange(self._handle, outbegidx, outnbelement) @@ -19866,8 +19830,6 @@ cdef class STDDEV_Stream(Stream): return stream -STOCH_Value = namedtuple("STOCH_Value", "slowk slowd", module=__name__) - cdef class STOCH_Stream(Stream): """ STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?]) @@ -19931,7 +19893,7 @@ cdef class STOCH_Stream(Stream): cdef STOCH_Stream stream = STOCH_Stream.__new__(STOCH_Stream) stream._handle = handle stream._begidx = begidx - return stream, STOCH_Value(_stream_like((high, low, close,), outslowk), _stream_like((high, low, close,), outslowd)) + return stream, (_stream_like((high, low, close,), outslowk), _stream_like((high, low, close,), outslowd)) @cython.binding(False) def update(self, double high, double low, double close): @@ -19940,7 +19902,7 @@ cdef class STOCH_Stream(Stream): cdef TA_RetCode retCode = TA_STOCH_Update(self._handle, high, low, close, &outslowk, &outslowd) if retCode != 0: _ta_check_success("TA_STOCH_Update", retCode) - return STOCH_Value(outslowk, outslowd) + return (outslowk, outslowd) @cython.binding(False) def peek(self, double high, double low, double close): @@ -19949,7 +19911,7 @@ cdef class STOCH_Stream(Stream): cdef TA_RetCode retCode = TA_STOCH_Peek(self._handle, high, low, close, &outslowk, &outslowd) if retCode != 0: _ta_check_success("TA_STOCH_Peek", retCode) - return STOCH_Value(outslowk, outslowd) + return (outslowk, outslowd) @property def value(self): @@ -19958,7 +19920,7 @@ cdef class STOCH_Stream(Stream): cdef TA_RetCode retCode = TA_STOCH_Value(self._handle, &outslowk, &outslowd) if retCode != 0: _ta_check_success("TA_STOCH_Value", retCode) - return STOCH_Value(outslowk, outslowd) + return (outslowk, outslowd) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_STOCH_OutRange(self._handle, outbegidx, outnbelement) @@ -19978,8 +19940,6 @@ cdef class STOCH_Stream(Stream): return stream -STOCHF_Value = namedtuple("STOCHF_Value", "fastk fastd", module=__name__) - cdef class STOCHF_Stream(Stream): """ STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?]) @@ -20041,7 +20001,7 @@ cdef class STOCHF_Stream(Stream): cdef STOCHF_Stream stream = STOCHF_Stream.__new__(STOCHF_Stream) stream._handle = handle stream._begidx = begidx - return stream, STOCHF_Value(_stream_like((high, low, close,), outfastk), _stream_like((high, low, close,), outfastd)) + return stream, (_stream_like((high, low, close,), outfastk), _stream_like((high, low, close,), outfastd)) @cython.binding(False) def update(self, double high, double low, double close): @@ -20050,7 +20010,7 @@ cdef class STOCHF_Stream(Stream): cdef TA_RetCode retCode = TA_STOCHF_Update(self._handle, high, low, close, &outfastk, &outfastd) if retCode != 0: _ta_check_success("TA_STOCHF_Update", retCode) - return STOCHF_Value(outfastk, outfastd) + return (outfastk, outfastd) @cython.binding(False) def peek(self, double high, double low, double close): @@ -20059,7 +20019,7 @@ cdef class STOCHF_Stream(Stream): cdef TA_RetCode retCode = TA_STOCHF_Peek(self._handle, high, low, close, &outfastk, &outfastd) if retCode != 0: _ta_check_success("TA_STOCHF_Peek", retCode) - return STOCHF_Value(outfastk, outfastd) + return (outfastk, outfastd) @property def value(self): @@ -20068,7 +20028,7 @@ cdef class STOCHF_Stream(Stream): cdef TA_RetCode retCode = TA_STOCHF_Value(self._handle, &outfastk, &outfastd) if retCode != 0: _ta_check_success("TA_STOCHF_Value", retCode) - return STOCHF_Value(outfastk, outfastd) + return (outfastk, outfastd) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_STOCHF_OutRange(self._handle, outbegidx, outnbelement) @@ -20088,8 +20048,6 @@ cdef class STOCHF_Stream(Stream): return stream -STOCHRSI_Value = namedtuple("STOCHRSI_Value", "fastk fastd", module=__name__) - cdef class STOCHRSI_Stream(Stream): """ STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?]) @@ -20148,7 +20106,7 @@ cdef class STOCHRSI_Stream(Stream): cdef STOCHRSI_Stream stream = STOCHRSI_Stream.__new__(STOCHRSI_Stream) stream._handle = handle stream._begidx = begidx - return stream, STOCHRSI_Value(_stream_like((real,), outfastk), _stream_like((real,), outfastd)) + return stream, (_stream_like((real,), outfastk), _stream_like((real,), outfastd)) @cython.binding(False) def update(self, double real): @@ -20157,7 +20115,7 @@ cdef class STOCHRSI_Stream(Stream): cdef TA_RetCode retCode = TA_STOCHRSI_Update(self._handle, real, &outfastk, &outfastd) if retCode != 0: _ta_check_success("TA_STOCHRSI_Update", retCode) - return STOCHRSI_Value(outfastk, outfastd) + return (outfastk, outfastd) @cython.binding(False) def peek(self, double real): @@ -20166,7 +20124,7 @@ cdef class STOCHRSI_Stream(Stream): cdef TA_RetCode retCode = TA_STOCHRSI_Peek(self._handle, real, &outfastk, &outfastd) if retCode != 0: _ta_check_success("TA_STOCHRSI_Peek", retCode) - return STOCHRSI_Value(outfastk, outfastd) + return (outfastk, outfastd) @property def value(self): @@ -20175,7 +20133,7 @@ cdef class STOCHRSI_Stream(Stream): cdef TA_RetCode retCode = TA_STOCHRSI_Value(self._handle, &outfastk, &outfastd) if retCode != 0: _ta_check_success("TA_STOCHRSI_Value", retCode) - return STOCHRSI_Value(outfastk, outfastd) + return (outfastk, outfastd) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_STOCHRSI_OutRange(self._handle, outbegidx, outnbelement) @@ -20388,8 +20346,6 @@ cdef class SUM_Stream(Stream): return stream -SUPERTREND_Value = namedtuple("SUPERTREND_Value", "supertrend trend", module=__name__) - cdef class SUPERTREND_Stream(Stream): """ SUPERTREND(high, low, close[, timeperiod=?, multiplier=?]) @@ -20450,7 +20406,7 @@ cdef class SUPERTREND_Stream(Stream): cdef SUPERTREND_Stream stream = SUPERTREND_Stream.__new__(SUPERTREND_Stream) stream._handle = handle stream._begidx = begidx - return stream, SUPERTREND_Value(_stream_like((high, low, close,), outsupertrend), _stream_like((high, low, close,), outtrend)) + return stream, (_stream_like((high, low, close,), outsupertrend), _stream_like((high, low, close,), outtrend)) @cython.binding(False) def update(self, double high, double low, double close): @@ -20459,7 +20415,7 @@ cdef class SUPERTREND_Stream(Stream): cdef TA_RetCode retCode = TA_SUPERTREND_Update(self._handle, high, low, close, &outsupertrend, &outtrend) if retCode != 0: _ta_check_success("TA_SUPERTREND_Update", retCode) - return SUPERTREND_Value(outsupertrend, outtrend) + return (outsupertrend, outtrend) @cython.binding(False) def peek(self, double high, double low, double close): @@ -20468,7 +20424,7 @@ cdef class SUPERTREND_Stream(Stream): cdef TA_RetCode retCode = TA_SUPERTREND_Peek(self._handle, high, low, close, &outsupertrend, &outtrend) if retCode != 0: _ta_check_success("TA_SUPERTREND_Peek", retCode) - return SUPERTREND_Value(outsupertrend, outtrend) + return (outsupertrend, outtrend) @property def value(self): @@ -20477,7 +20433,7 @@ cdef class SUPERTREND_Stream(Stream): cdef TA_RetCode retCode = TA_SUPERTREND_Value(self._handle, &outsupertrend, &outtrend) if retCode != 0: _ta_check_success("TA_SUPERTREND_Value", retCode) - return SUPERTREND_Value(outsupertrend, outtrend) + return (outsupertrend, outtrend) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_SUPERTREND_OutRange(self._handle, outbegidx, outnbelement) @@ -21754,8 +21710,6 @@ cdef class VHF_Stream(Stream): return stream -VORTEX_Value = namedtuple("VORTEX_Value", "plusvi minusvi", module=__name__) - cdef class VORTEX_Stream(Stream): """ VORTEX(high, low, close[, timeperiod=?]) @@ -21815,7 +21769,7 @@ cdef class VORTEX_Stream(Stream): cdef VORTEX_Stream stream = VORTEX_Stream.__new__(VORTEX_Stream) stream._handle = handle stream._begidx = begidx - return stream, VORTEX_Value(_stream_like((high, low, close,), outplusvi), _stream_like((high, low, close,), outminusvi)) + return stream, (_stream_like((high, low, close,), outplusvi), _stream_like((high, low, close,), outminusvi)) @cython.binding(False) def update(self, double high, double low, double close): @@ -21824,7 +21778,7 @@ cdef class VORTEX_Stream(Stream): cdef TA_RetCode retCode = TA_VORTEX_Update(self._handle, high, low, close, &outplusvi, &outminusvi) if retCode != 0: _ta_check_success("TA_VORTEX_Update", retCode) - return VORTEX_Value(outplusvi, outminusvi) + return (outplusvi, outminusvi) @cython.binding(False) def peek(self, double high, double low, double close): @@ -21833,7 +21787,7 @@ cdef class VORTEX_Stream(Stream): cdef TA_RetCode retCode = TA_VORTEX_Peek(self._handle, high, low, close, &outplusvi, &outminusvi) if retCode != 0: _ta_check_success("TA_VORTEX_Peek", retCode) - return VORTEX_Value(outplusvi, outminusvi) + return (outplusvi, outminusvi) @property def value(self): @@ -21842,7 +21796,7 @@ cdef class VORTEX_Stream(Stream): cdef TA_RetCode retCode = TA_VORTEX_Value(self._handle, &outplusvi, &outminusvi) if retCode != 0: _ta_check_success("TA_VORTEX_Value", retCode) - return VORTEX_Value(outplusvi, outminusvi) + return (outplusvi, outminusvi) cdef TA_RetCode _out_range(self, int* outbegidx, int* outnbelement): return TA_VORTEX_OutRange(self._handle, outbegidx, outnbelement) diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index 2426f16de..5b8a34185 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -14314,9 +14314,9 @@ namespace { __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; - PyObject *__pyx_tuple[59]; + PyObject *__pyx_tuple[36]; PyObject *__pyx_codeobj_tab[453]; - PyObject *__pyx_string_tab[2872]; + PyObject *__pyx_string_tab[2832]; PyObject *__pyx_number_tab[35]; /* #### Code section: module_state_contents ### */ /* PyFrozenDict.module_state_decls */ @@ -14464,2780 +14464,2740 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_u_input_arrays_2 __pyx_string_tab[95] #define __pyx_kp_u__11 __pyx_string_tab[96] #define __pyx_kp_u_add_note __pyx_string_tab[97] -#define __pyx_kp_u_aroondown_aroonup __pyx_string_tab[98] -#define __pyx_kp_u_begidx_nbelement __pyx_string_tab[99] -#define __pyx_kp_u_bullpower_bearpower __pyx_string_tab[100] -#define __pyx_kp_u_cannot_pickle_s_a_stream_handle __pyx_string_tab[101] -#define __pyx_kp_u_disable __pyx_string_tab[102] -#define __pyx_kp_u_enable __pyx_string_tab[103] -#define __pyx_kp_u_fastk_fastd __pyx_string_tab[104] -#define __pyx_kp_u_gc __pyx_string_tab[105] -#define __pyx_kp_u_haopen_hahigh_halow_haclose __pyx_string_tab[106] -#define __pyx_kp_u_inphase_quadrature __pyx_string_tab[107] -#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[108] -#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[109] -#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[110] -#define __pyx_kp_u_input_must_be_a_numpy_array_or_a __pyx_string_tab[111] -#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[112] -#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[113] -#define __pyx_kp_u_isenabled __pyx_string_tab[114] -#define __pyx_kp_u_k_d_j __pyx_string_tab[115] -#define __pyx_kp_u_macd_macdsignal_macdhist __pyx_string_tab[116] -#define __pyx_kp_u_mama_fama __pyx_string_tab[117] -#define __pyx_kp_u_min_max __pyx_string_tab[118] -#define __pyx_kp_u_minidx_maxidx __pyx_string_tab[119] -#define __pyx_kp_u_no_history_the_input_array_is_em __pyx_string_tab[120] -#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[121] -#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[122] -#define __pyx_kp_u_plusvi_minusvi __pyx_string_tab[123] -#define __pyx_kp_u_sine_leadsine __pyx_string_tab[124] -#define __pyx_kp_u_slowk_slowd __pyx_string_tab[125] -#define __pyx_kp_u_smi_smisignal __pyx_string_tab[126] -#define __pyx_kp_u_supertrend_trend __pyx_string_tab[127] -#define __pyx_kp_u_swinghigh_swinglow __pyx_string_tab[128] -#define __pyx_kp_u_talib_collections __pyx_string_tab[129] -#define __pyx_kp_u_talib_numpy __pyx_string_tab[130] -#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[131] -#define __pyx_kp_u_talib_pandas __pyx_string_tab[132] -#define __pyx_kp_u_talib_polars __pyx_string_tab[133] -#define __pyx_kp_u_talib_sys __pyx_string_tab[134] -#define __pyx_kp_u_talib_threading __pyx_string_tab[135] -#define __pyx_kp_u_talib_warnings __pyx_string_tab[136] -#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[137] -#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[138] -#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[139] -#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[140] -#define __pyx_kp_u_too_many_input_arrays __pyx_string_tab[141] -#define __pyx_kp_u_unstable_period __pyx_string_tab[142] -#define __pyx_kp_u_upperband_middleband_lowerband __pyx_string_tab[143] -#define __pyx_n_u_AC __pyx_string_tab[144] -#define __pyx_n_u_ACCBANDS __pyx_string_tab[145] -#define __pyx_n_u_ACCBANDS_Stream __pyx_string_tab[146] -#define __pyx_n_u_ACCBANDS_Stream_open_and_fill __pyx_string_tab[147] -#define __pyx_n_u_ACCBANDS_Value __pyx_string_tab[148] -#define __pyx_n_u_ACOS __pyx_string_tab[149] -#define __pyx_n_u_ACOS_Stream __pyx_string_tab[150] -#define __pyx_n_u_ACOS_Stream_open_and_fill __pyx_string_tab[151] -#define __pyx_n_u_AC_Stream __pyx_string_tab[152] -#define __pyx_n_u_AC_Stream_open_and_fill __pyx_string_tab[153] -#define __pyx_n_u_AD __pyx_string_tab[154] -#define __pyx_n_u_ADD __pyx_string_tab[155] -#define __pyx_n_u_ADD_Stream __pyx_string_tab[156] -#define __pyx_n_u_ADD_Stream_open_and_fill __pyx_string_tab[157] -#define __pyx_n_u_ADOSC __pyx_string_tab[158] -#define __pyx_n_u_ADOSC_Stream __pyx_string_tab[159] -#define __pyx_n_u_ADOSC_Stream_open_and_fill __pyx_string_tab[160] -#define __pyx_n_u_ADR __pyx_string_tab[161] -#define __pyx_n_u_ADR_Stream __pyx_string_tab[162] -#define __pyx_n_u_ADR_Stream_open_and_fill __pyx_string_tab[163] -#define __pyx_n_u_ADX __pyx_string_tab[164] -#define __pyx_n_u_ADXR __pyx_string_tab[165] -#define __pyx_n_u_ADXR_Stream __pyx_string_tab[166] -#define __pyx_n_u_ADXR_Stream_open_and_fill __pyx_string_tab[167] -#define __pyx_n_u_ADX_Stream __pyx_string_tab[168] -#define __pyx_n_u_ADX_Stream_open_and_fill __pyx_string_tab[169] -#define __pyx_n_u_AD_Stream __pyx_string_tab[170] -#define __pyx_n_u_AD_Stream_open_and_fill __pyx_string_tab[171] -#define __pyx_n_u_ALL __pyx_string_tab[172] -#define __pyx_n_u_AO __pyx_string_tab[173] -#define __pyx_n_u_AO_Stream __pyx_string_tab[174] -#define __pyx_n_u_AO_Stream_open_and_fill __pyx_string_tab[175] -#define __pyx_n_u_APO __pyx_string_tab[176] -#define __pyx_n_u_APO_Stream __pyx_string_tab[177] -#define __pyx_n_u_APO_Stream_open_and_fill __pyx_string_tab[178] -#define __pyx_n_u_AROON __pyx_string_tab[179] -#define __pyx_n_u_AROONOSC __pyx_string_tab[180] -#define __pyx_n_u_AROONOSC_Stream __pyx_string_tab[181] -#define __pyx_n_u_AROONOSC_Stream_open_and_fill __pyx_string_tab[182] -#define __pyx_n_u_AROON_Stream __pyx_string_tab[183] -#define __pyx_n_u_AROON_Stream_open_and_fill __pyx_string_tab[184] -#define __pyx_n_u_AROON_Value __pyx_string_tab[185] -#define __pyx_n_u_ASIN __pyx_string_tab[186] -#define __pyx_n_u_ASIN_Stream __pyx_string_tab[187] -#define __pyx_n_u_ASIN_Stream_open_and_fill __pyx_string_tab[188] -#define __pyx_n_u_ATAN __pyx_string_tab[189] -#define __pyx_n_u_ATAN_Stream __pyx_string_tab[190] -#define __pyx_n_u_ATAN_Stream_open_and_fill __pyx_string_tab[191] -#define __pyx_n_u_ATR __pyx_string_tab[192] -#define __pyx_n_u_ATR_Stream __pyx_string_tab[193] -#define __pyx_n_u_ATR_Stream_open_and_fill __pyx_string_tab[194] -#define __pyx_n_u_AVGDEV __pyx_string_tab[195] -#define __pyx_n_u_AVGDEV_Stream __pyx_string_tab[196] -#define __pyx_n_u_AVGDEV_Stream_open_and_fill __pyx_string_tab[197] -#define __pyx_n_u_AVGPRICE __pyx_string_tab[198] -#define __pyx_n_u_AVGPRICE_Stream __pyx_string_tab[199] -#define __pyx_n_u_AVGPRICE_Stream_open_and_fill __pyx_string_tab[200] -#define __pyx_n_u_AllCandleSettings __pyx_string_tab[201] -#define __pyx_n_u_BBANDS __pyx_string_tab[202] -#define __pyx_n_u_BBANDS_Stream __pyx_string_tab[203] -#define __pyx_n_u_BBANDS_Stream_open_and_fill __pyx_string_tab[204] -#define __pyx_n_u_BBANDS_Value __pyx_string_tab[205] -#define __pyx_n_u_BETA __pyx_string_tab[206] -#define __pyx_n_u_BETA_Stream __pyx_string_tab[207] -#define __pyx_n_u_BETA_Stream_open_and_fill __pyx_string_tab[208] -#define __pyx_n_u_BOP __pyx_string_tab[209] -#define __pyx_n_u_BOP_Stream __pyx_string_tab[210] -#define __pyx_n_u_BOP_Stream_open_and_fill __pyx_string_tab[211] -#define __pyx_n_u_BodyDoji __pyx_string_tab[212] -#define __pyx_n_u_BodyLong __pyx_string_tab[213] -#define __pyx_n_u_BodyShort __pyx_string_tab[214] -#define __pyx_n_u_BodyVeryLong __pyx_string_tab[215] -#define __pyx_n_u_CCI __pyx_string_tab[216] -#define __pyx_n_u_CCI_Stream __pyx_string_tab[217] -#define __pyx_n_u_CCI_Stream_open_and_fill __pyx_string_tab[218] -#define __pyx_n_u_CDL2CROWS __pyx_string_tab[219] -#define __pyx_n_u_CDL2CROWS_Stream __pyx_string_tab[220] -#define __pyx_n_u_CDL2CROWS_Stream_open_and_fill __pyx_string_tab[221] -#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[222] -#define __pyx_n_u_CDL3BLACKCROWS_Stream __pyx_string_tab[223] -#define __pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f __pyx_string_tab[224] -#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[225] -#define __pyx_n_u_CDL3INSIDE_Stream __pyx_string_tab[226] -#define __pyx_n_u_CDL3INSIDE_Stream_open_and_fill __pyx_string_tab[227] -#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[228] -#define __pyx_n_u_CDL3LINESTRIKE_Stream __pyx_string_tab[229] -#define __pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f __pyx_string_tab[230] -#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[231] -#define __pyx_n_u_CDL3OUTSIDE_Stream __pyx_string_tab[232] -#define __pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill __pyx_string_tab[233] -#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[234] -#define __pyx_n_u_CDL3STARSINSOUTH_Stream __pyx_string_tab[235] -#define __pyx_n_u_CDL3STARSINSOUTH_Stream_open_and __pyx_string_tab[236] -#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[237] -#define __pyx_n_u_CDL3WHITESOLDIERS_Stream __pyx_string_tab[238] -#define __pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an __pyx_string_tab[239] -#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[240] -#define __pyx_n_u_CDLABANDONEDBABY_Stream __pyx_string_tab[241] -#define __pyx_n_u_CDLABANDONEDBABY_Stream_open_and __pyx_string_tab[242] -#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[243] -#define __pyx_n_u_CDLADVANCEBLOCK_Stream __pyx_string_tab[244] -#define __pyx_n_u_CDLADVANCEBLOCK_Stream_open_and __pyx_string_tab[245] -#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[246] -#define __pyx_n_u_CDLBELTHOLD_Stream __pyx_string_tab[247] -#define __pyx_n_u_CDLBELTHOLD_Stream_open_and_fill __pyx_string_tab[248] -#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[249] -#define __pyx_n_u_CDLBREAKAWAY_Stream __pyx_string_tab[250] -#define __pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil __pyx_string_tab[251] -#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[252] -#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream __pyx_string_tab[253] -#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a __pyx_string_tab[254] -#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[255] -#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream __pyx_string_tab[256] -#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream_open __pyx_string_tab[257] -#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[258] -#define __pyx_n_u_CDLCOUNTERATTACK_Stream __pyx_string_tab[259] -#define __pyx_n_u_CDLCOUNTERATTACK_Stream_open_and __pyx_string_tab[260] -#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[261] -#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream __pyx_string_tab[262] -#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an __pyx_string_tab[263] -#define __pyx_n_u_CDLDOJI __pyx_string_tab[264] -#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[265] -#define __pyx_n_u_CDLDOJISTAR_Stream __pyx_string_tab[266] -#define __pyx_n_u_CDLDOJISTAR_Stream_open_and_fill __pyx_string_tab[267] -#define __pyx_n_u_CDLDOJI_Stream __pyx_string_tab[268] -#define __pyx_n_u_CDLDOJI_Stream_open_and_fill __pyx_string_tab[269] -#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[270] -#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream __pyx_string_tab[271] -#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and __pyx_string_tab[272] -#define __pyx_n_u_CDLENGULFING __pyx_string_tab[273] -#define __pyx_n_u_CDLENGULFING_Stream __pyx_string_tab[274] -#define __pyx_n_u_CDLENGULFING_Stream_open_and_fil __pyx_string_tab[275] -#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[276] -#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream __pyx_string_tab[277] -#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a __pyx_string_tab[278] -#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[279] -#define __pyx_n_u_CDLEVENINGSTAR_Stream __pyx_string_tab[280] -#define __pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f __pyx_string_tab[281] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[282] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream __pyx_string_tab[283] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open __pyx_string_tab[284] -#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[285] -#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream __pyx_string_tab[286] -#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an __pyx_string_tab[287] -#define __pyx_n_u_CDLHAMMER __pyx_string_tab[288] -#define __pyx_n_u_CDLHAMMER_Stream __pyx_string_tab[289] -#define __pyx_n_u_CDLHAMMER_Stream_open_and_fill __pyx_string_tab[290] -#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[291] -#define __pyx_n_u_CDLHANGINGMAN_Stream __pyx_string_tab[292] -#define __pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi __pyx_string_tab[293] -#define __pyx_n_u_CDLHARAMI __pyx_string_tab[294] -#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[295] -#define __pyx_n_u_CDLHARAMICROSS_Stream __pyx_string_tab[296] -#define __pyx_n_u_CDLHARAMICROSS_Stream_open_and_f __pyx_string_tab[297] -#define __pyx_n_u_CDLHARAMI_Stream __pyx_string_tab[298] -#define __pyx_n_u_CDLHARAMI_Stream_open_and_fill __pyx_string_tab[299] -#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[300] -#define __pyx_n_u_CDLHIGHWAVE_Stream __pyx_string_tab[301] -#define __pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill __pyx_string_tab[302] -#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[303] -#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[304] -#define __pyx_n_u_CDLHIKKAKEMOD_Stream __pyx_string_tab[305] -#define __pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi __pyx_string_tab[306] -#define __pyx_n_u_CDLHIKKAKE_Stream __pyx_string_tab[307] -#define __pyx_n_u_CDLHIKKAKE_Stream_open_and_fill __pyx_string_tab[308] -#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[309] -#define __pyx_n_u_CDLHOMINGPIGEON_Stream __pyx_string_tab[310] -#define __pyx_n_u_CDLHOMINGPIGEON_Stream_open_and __pyx_string_tab[311] -#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[312] -#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream __pyx_string_tab[313] -#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a __pyx_string_tab[314] -#define __pyx_n_u_CDLINNECK __pyx_string_tab[315] -#define __pyx_n_u_CDLINNECK_Stream __pyx_string_tab[316] -#define __pyx_n_u_CDLINNECK_Stream_open_and_fill __pyx_string_tab[317] -#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[318] -#define __pyx_n_u_CDLINVERTEDHAMMER_Stream __pyx_string_tab[319] -#define __pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an __pyx_string_tab[320] -#define __pyx_n_u_CDLKICKING __pyx_string_tab[321] -#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[322] -#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream __pyx_string_tab[323] -#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a __pyx_string_tab[324] -#define __pyx_n_u_CDLKICKING_Stream __pyx_string_tab[325] -#define __pyx_n_u_CDLKICKING_Stream_open_and_fill __pyx_string_tab[326] -#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[327] -#define __pyx_n_u_CDLLADDERBOTTOM_Stream __pyx_string_tab[328] -#define __pyx_n_u_CDLLADDERBOTTOM_Stream_open_and __pyx_string_tab[329] -#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[330] -#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream __pyx_string_tab[331] -#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an __pyx_string_tab[332] -#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[333] -#define __pyx_n_u_CDLLONGLINE_Stream __pyx_string_tab[334] -#define __pyx_n_u_CDLLONGLINE_Stream_open_and_fill __pyx_string_tab[335] -#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[336] -#define __pyx_n_u_CDLMARUBOZU_Stream __pyx_string_tab[337] -#define __pyx_n_u_CDLMARUBOZU_Stream_open_and_fill __pyx_string_tab[338] -#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[339] -#define __pyx_n_u_CDLMATCHINGLOW_Stream __pyx_string_tab[340] -#define __pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f __pyx_string_tab[341] -#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[342] -#define __pyx_n_u_CDLMATHOLD_Stream __pyx_string_tab[343] -#define __pyx_n_u_CDLMATHOLD_Stream_open_and_fill __pyx_string_tab[344] -#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[345] -#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream __pyx_string_tab[346] -#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a __pyx_string_tab[347] -#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[348] -#define __pyx_n_u_CDLMORNINGSTAR_Stream __pyx_string_tab[349] -#define __pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f __pyx_string_tab[350] -#define __pyx_n_u_CDLONNECK __pyx_string_tab[351] -#define __pyx_n_u_CDLONNECK_Stream __pyx_string_tab[352] -#define __pyx_n_u_CDLONNECK_Stream_open_and_fill __pyx_string_tab[353] -#define __pyx_n_u_CDLPIERCING __pyx_string_tab[354] -#define __pyx_n_u_CDLPIERCING_Stream __pyx_string_tab[355] -#define __pyx_n_u_CDLPIERCING_Stream_open_and_fill __pyx_string_tab[356] -#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[357] -#define __pyx_n_u_CDLRICKSHAWMAN_Stream __pyx_string_tab[358] -#define __pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f __pyx_string_tab[359] -#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[360] -#define __pyx_n_u_CDLRISEFALL3METHODS_Stream __pyx_string_tab[361] -#define __pyx_n_u_CDLRISEFALL3METHODS_Stream_open __pyx_string_tab[362] -#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[363] -#define __pyx_n_u_CDLSEPARATINGLINES_Stream __pyx_string_tab[364] -#define __pyx_n_u_CDLSEPARATINGLINES_Stream_open_a __pyx_string_tab[365] -#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[366] -#define __pyx_n_u_CDLSHOOTINGSTAR_Stream __pyx_string_tab[367] -#define __pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and __pyx_string_tab[368] -#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[369] -#define __pyx_n_u_CDLSHORTLINE_Stream __pyx_string_tab[370] -#define __pyx_n_u_CDLSHORTLINE_Stream_open_and_fil __pyx_string_tab[371] -#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[372] -#define __pyx_n_u_CDLSPINNINGTOP_Stream __pyx_string_tab[373] -#define __pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f __pyx_string_tab[374] -#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[375] -#define __pyx_n_u_CDLSTALLEDPATTERN_Stream __pyx_string_tab[376] -#define __pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an __pyx_string_tab[377] -#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[378] -#define __pyx_n_u_CDLSTICKSANDWICH_Stream __pyx_string_tab[379] -#define __pyx_n_u_CDLSTICKSANDWICH_Stream_open_and __pyx_string_tab[380] -#define __pyx_n_u_CDLTAKURI __pyx_string_tab[381] -#define __pyx_n_u_CDLTAKURI_Stream __pyx_string_tab[382] -#define __pyx_n_u_CDLTAKURI_Stream_open_and_fill __pyx_string_tab[383] -#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[384] -#define __pyx_n_u_CDLTASUKIGAP_Stream __pyx_string_tab[385] -#define __pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil __pyx_string_tab[386] -#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[387] -#define __pyx_n_u_CDLTHRUSTING_Stream __pyx_string_tab[388] -#define __pyx_n_u_CDLTHRUSTING_Stream_open_and_fil __pyx_string_tab[389] -#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[390] -#define __pyx_n_u_CDLTRISTAR_Stream __pyx_string_tab[391] -#define __pyx_n_u_CDLTRISTAR_Stream_open_and_fill __pyx_string_tab[392] -#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[393] -#define __pyx_n_u_CDLUNIQUE3RIVER_Stream __pyx_string_tab[394] -#define __pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and __pyx_string_tab[395] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[396] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream __pyx_string_tab[397] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a __pyx_string_tab[398] -#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[399] -#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream __pyx_string_tab[400] -#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open __pyx_string_tab[401] -#define __pyx_n_u_CEIL __pyx_string_tab[402] -#define __pyx_n_u_CEIL_Stream __pyx_string_tab[403] -#define __pyx_n_u_CEIL_Stream_open_and_fill __pyx_string_tab[404] -#define __pyx_n_u_CMF __pyx_string_tab[405] -#define __pyx_n_u_CMF_Stream __pyx_string_tab[406] -#define __pyx_n_u_CMF_Stream_open_and_fill __pyx_string_tab[407] -#define __pyx_n_u_CMO __pyx_string_tab[408] -#define __pyx_n_u_CMOU __pyx_string_tab[409] -#define __pyx_n_u_CMOU_Stream __pyx_string_tab[410] -#define __pyx_n_u_CMOU_Stream_open_and_fill __pyx_string_tab[411] -#define __pyx_n_u_CMO_Stream __pyx_string_tab[412] -#define __pyx_n_u_CMO_Stream_open_and_fill __pyx_string_tab[413] -#define __pyx_n_u_COPPOCK __pyx_string_tab[414] -#define __pyx_n_u_COPPOCK_Stream __pyx_string_tab[415] -#define __pyx_n_u_COPPOCK_Stream_open_and_fill __pyx_string_tab[416] -#define __pyx_n_u_CORREL __pyx_string_tab[417] -#define __pyx_n_u_CORREL_Stream __pyx_string_tab[418] -#define __pyx_n_u_CORREL_Stream_open_and_fill __pyx_string_tab[419] -#define __pyx_n_u_COS __pyx_string_tab[420] -#define __pyx_n_u_COSH __pyx_string_tab[421] -#define __pyx_n_u_COSH_Stream __pyx_string_tab[422] -#define __pyx_n_u_COSH_Stream_open_and_fill __pyx_string_tab[423] -#define __pyx_n_u_COS_Stream __pyx_string_tab[424] -#define __pyx_n_u_COS_Stream_open_and_fill __pyx_string_tab[425] -#define __pyx_n_u_CUMSUM __pyx_string_tab[426] -#define __pyx_n_u_CUMSUM_Stream __pyx_string_tab[427] -#define __pyx_n_u_CUMSUM_Stream_open_and_fill __pyx_string_tab[428] -#define __pyx_n_u_CVI __pyx_string_tab[429] -#define __pyx_n_u_CVI_Stream __pyx_string_tab[430] -#define __pyx_n_u_CVI_Stream_open_and_fill __pyx_string_tab[431] -#define __pyx_n_u_CandleSettingType __pyx_string_tab[432] -#define __pyx_n_u_DEFAULT __pyx_string_tab[433] -#define __pyx_n_u_DEMA __pyx_string_tab[434] -#define __pyx_n_u_DEMA_Stream __pyx_string_tab[435] -#define __pyx_n_u_DEMA_Stream_open_and_fill __pyx_string_tab[436] -#define __pyx_n_u_DISABLED __pyx_string_tab[437] -#define __pyx_n_u_DIV __pyx_string_tab[438] -#define __pyx_n_u_DIV_Stream __pyx_string_tab[439] -#define __pyx_n_u_DIV_Stream_open_and_fill __pyx_string_tab[440] -#define __pyx_n_u_DONCHIAN __pyx_string_tab[441] -#define __pyx_n_u_DONCHIAN_Stream __pyx_string_tab[442] -#define __pyx_n_u_DONCHIAN_Stream_open_and_fill __pyx_string_tab[443] -#define __pyx_n_u_DONCHIAN_Value __pyx_string_tab[444] -#define __pyx_n_u_DPO __pyx_string_tab[445] -#define __pyx_n_u_DPO_Stream __pyx_string_tab[446] -#define __pyx_n_u_DPO_Stream_open_and_fill __pyx_string_tab[447] -#define __pyx_n_u_DX __pyx_string_tab[448] -#define __pyx_n_u_DX_Stream __pyx_string_tab[449] -#define __pyx_n_u_DX_Stream_open_and_fill __pyx_string_tab[450] -#define __pyx_n_u_DataFrame __pyx_string_tab[451] -#define __pyx_n_u_Dot __pyx_string_tab[452] -#define __pyx_n_u_EFI __pyx_string_tab[453] -#define __pyx_n_u_EFI_Stream __pyx_string_tab[454] -#define __pyx_n_u_EFI_Stream_open_and_fill __pyx_string_tab[455] -#define __pyx_n_u_EMA __pyx_string_tab[456] -#define __pyx_n_u_EMA_Stream __pyx_string_tab[457] -#define __pyx_n_u_EMA_Stream_open_and_fill __pyx_string_tab[458] -#define __pyx_n_u_ER __pyx_string_tab[459] -#define __pyx_n_u_ERI __pyx_string_tab[460] -#define __pyx_n_u_ERI_Stream __pyx_string_tab[461] -#define __pyx_n_u_ERI_Stream_open_and_fill __pyx_string_tab[462] -#define __pyx_n_u_ERI_Value __pyx_string_tab[463] -#define __pyx_n_u_ER_Stream __pyx_string_tab[464] -#define __pyx_n_u_ER_Stream_open_and_fill __pyx_string_tab[465] -#define __pyx_n_u_EXP __pyx_string_tab[466] -#define __pyx_n_u_EXP_Stream __pyx_string_tab[467] -#define __pyx_n_u_EXP_Stream_open_and_fill __pyx_string_tab[468] -#define __pyx_n_u_Equal __pyx_string_tab[469] -#define __pyx_n_u_FLOOR __pyx_string_tab[470] -#define __pyx_n_u_FLOOR_Stream __pyx_string_tab[471] -#define __pyx_n_u_FLOOR_Stream_open_and_fill __pyx_string_tab[472] -#define __pyx_n_u_FOSC __pyx_string_tab[473] -#define __pyx_n_u_FOSC_Stream __pyx_string_tab[474] -#define __pyx_n_u_FOSC_Stream_open_and_fill __pyx_string_tab[475] -#define __pyx_n_u_FRACTAL __pyx_string_tab[476] -#define __pyx_n_u_FRACTAL_Stream __pyx_string_tab[477] -#define __pyx_n_u_FRACTAL_Stream_open_and_fill __pyx_string_tab[478] -#define __pyx_n_u_FRACTAL_Value __pyx_string_tab[479] -#define __pyx_n_u_Far __pyx_string_tab[480] -#define __pyx_n_u_Function __pyx_string_tab[481] -#define __pyx_n_u_Function___call __pyx_string_tab[482] -#define __pyx_n_u_Function___call_function __pyx_string_tab[483] -#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[484] -#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[485] -#define __pyx_n_u_Function___init __pyx_string_tab[486] -#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[487] -#define __pyx_n_u_Function___local __pyx_string_tab[488] -#define __pyx_n_u_Function___repr __pyx_string_tab[489] -#define __pyx_n_u_Function___str __pyx_string_tab[490] -#define __pyx_n_u_Function___unicode __pyx_string_tab[491] -#define __pyx_n_u_Function_function_flags __pyx_string_tab[492] -#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[493] -#define __pyx_n_u_Function_get_input_names __pyx_string_tab[494] -#define __pyx_n_u_Function_get_parameters __pyx_string_tab[495] -#define __pyx_n_u_Function_info __pyx_string_tab[496] -#define __pyx_n_u_Function_lookback __pyx_string_tab[497] -#define __pyx_n_u_Function_output_flags __pyx_string_tab[498] -#define __pyx_n_u_Function_output_names __pyx_string_tab[499] -#define __pyx_n_u_Function_outputs __pyx_string_tab[500] -#define __pyx_n_u_Function_run __pyx_string_tab[501] -#define __pyx_n_u_Function_set_function_args __pyx_string_tab[502] -#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[503] -#define __pyx_n_u_Function_set_input_names __pyx_string_tab[504] -#define __pyx_n_u_Function_set_parameters __pyx_string_tab[505] -#define __pyx_n_u_HA __pyx_string_tab[506] -#define __pyx_n_u_HA_Stream __pyx_string_tab[507] -#define __pyx_n_u_HA_Stream_open_and_fill __pyx_string_tab[508] -#define __pyx_n_u_HA_Value __pyx_string_tab[509] -#define __pyx_n_u_HMA __pyx_string_tab[510] -#define __pyx_n_u_HMA_Stream __pyx_string_tab[511] -#define __pyx_n_u_HMA_Stream_open_and_fill __pyx_string_tab[512] -#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[513] -#define __pyx_n_u_HT_DCPERIOD_Stream __pyx_string_tab[514] -#define __pyx_n_u_HT_DCPERIOD_Stream_open_and_fill __pyx_string_tab[515] -#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[516] -#define __pyx_n_u_HT_DCPHASE_Stream __pyx_string_tab[517] -#define __pyx_n_u_HT_DCPHASE_Stream_open_and_fill __pyx_string_tab[518] -#define __pyx_n_u_HT_PHASOR __pyx_string_tab[519] -#define __pyx_n_u_HT_PHASOR_Stream __pyx_string_tab[520] -#define __pyx_n_u_HT_PHASOR_Stream_open_and_fill __pyx_string_tab[521] -#define __pyx_n_u_HT_PHASOR_Value __pyx_string_tab[522] -#define __pyx_n_u_HT_SINE __pyx_string_tab[523] -#define __pyx_n_u_HT_SINE_Stream __pyx_string_tab[524] -#define __pyx_n_u_HT_SINE_Stream_open_and_fill __pyx_string_tab[525] -#define __pyx_n_u_HT_SINE_Value __pyx_string_tab[526] -#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[527] -#define __pyx_n_u_HT_TRENDLINE_Stream __pyx_string_tab[528] -#define __pyx_n_u_HT_TRENDLINE_Stream_open_and_fil __pyx_string_tab[529] -#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[530] -#define __pyx_n_u_HT_TRENDMODE_Stream __pyx_string_tab[531] -#define __pyx_n_u_HT_TRENDMODE_Stream_open_and_fil __pyx_string_tab[532] -#define __pyx_n_u_HighLow __pyx_string_tab[533] -#define __pyx_n_u_Histogram __pyx_string_tab[534] -#define __pyx_n_u_IMI __pyx_string_tab[535] -#define __pyx_n_u_IMI_Stream __pyx_string_tab[536] -#define __pyx_n_u_IMI_Stream_open_and_fill __pyx_string_tab[537] -#define __pyx_n_u_InsufficientHistory __pyx_string_tab[538] -#define __pyx_n_u_KAMA __pyx_string_tab[539] -#define __pyx_n_u_KAMA_Stream __pyx_string_tab[540] -#define __pyx_n_u_KAMA_Stream_open_and_fill __pyx_string_tab[541] -#define __pyx_n_u_KC __pyx_string_tab[542] -#define __pyx_n_u_KC_Stream __pyx_string_tab[543] -#define __pyx_n_u_KC_Stream_open_and_fill __pyx_string_tab[544] -#define __pyx_n_u_KC_Value __pyx_string_tab[545] -#define __pyx_n_u_KDJ __pyx_string_tab[546] -#define __pyx_n_u_KDJ_Stream __pyx_string_tab[547] -#define __pyx_n_u_KDJ_Stream_open_and_fill __pyx_string_tab[548] -#define __pyx_n_u_KDJ_Value __pyx_string_tab[549] -#define __pyx_n_u_LINEARREG __pyx_string_tab[550] -#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[551] -#define __pyx_n_u_LINEARREG_ANGLE_Stream __pyx_string_tab[552] -#define __pyx_n_u_LINEARREG_ANGLE_Stream_open_and __pyx_string_tab[553] -#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[554] -#define __pyx_n_u_LINEARREG_INTERCEPT_Stream __pyx_string_tab[555] -#define __pyx_n_u_LINEARREG_INTERCEPT_Stream_open __pyx_string_tab[556] -#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[557] -#define __pyx_n_u_LINEARREG_SLOPE_Stream __pyx_string_tab[558] -#define __pyx_n_u_LINEARREG_SLOPE_Stream_open_and __pyx_string_tab[559] -#define __pyx_n_u_LINEARREG_Stream __pyx_string_tab[560] -#define __pyx_n_u_LINEARREG_Stream_open_and_fill __pyx_string_tab[561] -#define __pyx_n_u_LN __pyx_string_tab[562] -#define __pyx_n_u_LN_Stream __pyx_string_tab[563] -#define __pyx_n_u_LN_Stream_open_and_fill __pyx_string_tab[564] -#define __pyx_n_u_LOG10 __pyx_string_tab[565] -#define __pyx_n_u_LOG10_Stream __pyx_string_tab[566] -#define __pyx_n_u_LOG10_Stream_open_and_fill __pyx_string_tab[567] -#define __pyx_n_u_Line __pyx_string_tab[568] -#define __pyx_n_u_MA __pyx_string_tab[569] -#define __pyx_n_u_MACD __pyx_string_tab[570] -#define __pyx_n_u_MACDEXT __pyx_string_tab[571] -#define __pyx_n_u_MACDEXT_Stream __pyx_string_tab[572] -#define __pyx_n_u_MACDEXT_Stream_open_and_fill __pyx_string_tab[573] -#define __pyx_n_u_MACDEXT_Value __pyx_string_tab[574] -#define __pyx_n_u_MACDFIX __pyx_string_tab[575] -#define __pyx_n_u_MACDFIX_Stream __pyx_string_tab[576] -#define __pyx_n_u_MACDFIX_Stream_open_and_fill __pyx_string_tab[577] -#define __pyx_n_u_MACDFIX_Value __pyx_string_tab[578] -#define __pyx_n_u_MACD_Stream __pyx_string_tab[579] -#define __pyx_n_u_MACD_Stream_open_and_fill __pyx_string_tab[580] -#define __pyx_n_u_MACD_Value __pyx_string_tab[581] -#define __pyx_n_u_MAMA __pyx_string_tab[582] -#define __pyx_n_u_MAMA_Stream __pyx_string_tab[583] -#define __pyx_n_u_MAMA_Stream_open_and_fill __pyx_string_tab[584] -#define __pyx_n_u_MAMA_Value __pyx_string_tab[585] -#define __pyx_n_u_MARKETFI __pyx_string_tab[586] -#define __pyx_n_u_MARKETFI_Stream __pyx_string_tab[587] -#define __pyx_n_u_MARKETFI_Stream_open_and_fill __pyx_string_tab[588] -#define __pyx_n_u_MASSI __pyx_string_tab[589] -#define __pyx_n_u_MASSI_Stream __pyx_string_tab[590] -#define __pyx_n_u_MASSI_Stream_open_and_fill __pyx_string_tab[591] -#define __pyx_n_u_MAVP __pyx_string_tab[592] -#define __pyx_n_u_MAVP_Stream __pyx_string_tab[593] -#define __pyx_n_u_MAVP_Stream_open_and_fill __pyx_string_tab[594] -#define __pyx_n_u_MAX __pyx_string_tab[595] -#define __pyx_n_u_MAXINDEX __pyx_string_tab[596] -#define __pyx_n_u_MAXINDEX_Stream __pyx_string_tab[597] -#define __pyx_n_u_MAXINDEX_Stream_open_and_fill __pyx_string_tab[598] -#define __pyx_n_u_MAX_Stream __pyx_string_tab[599] -#define __pyx_n_u_MAX_Stream_open_and_fill __pyx_string_tab[600] -#define __pyx_n_u_MA_Stream __pyx_string_tab[601] -#define __pyx_n_u_MA_Stream_open_and_fill __pyx_string_tab[602] -#define __pyx_n_u_MA_Type __pyx_string_tab[603] -#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[604] -#define __pyx_n_u_MA_Type___init __pyx_string_tab[605] -#define __pyx_n_u_MEDPRICE __pyx_string_tab[606] -#define __pyx_n_u_MEDPRICE_Stream __pyx_string_tab[607] -#define __pyx_n_u_MEDPRICE_Stream_open_and_fill __pyx_string_tab[608] -#define __pyx_n_u_MFI __pyx_string_tab[609] -#define __pyx_n_u_MFI_Stream __pyx_string_tab[610] -#define __pyx_n_u_MFI_Stream_open_and_fill __pyx_string_tab[611] -#define __pyx_n_u_MIDPOINT __pyx_string_tab[612] -#define __pyx_n_u_MIDPOINT_Stream __pyx_string_tab[613] -#define __pyx_n_u_MIDPOINT_Stream_open_and_fill __pyx_string_tab[614] -#define __pyx_n_u_MIDPRICE __pyx_string_tab[615] -#define __pyx_n_u_MIDPRICE_Stream __pyx_string_tab[616] -#define __pyx_n_u_MIDPRICE_Stream_open_and_fill __pyx_string_tab[617] -#define __pyx_n_u_MIN __pyx_string_tab[618] -#define __pyx_n_u_MININDEX __pyx_string_tab[619] -#define __pyx_n_u_MININDEX_Stream __pyx_string_tab[620] -#define __pyx_n_u_MININDEX_Stream_open_and_fill __pyx_string_tab[621] -#define __pyx_n_u_MINMAX __pyx_string_tab[622] -#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[623] -#define __pyx_n_u_MINMAXINDEX_Stream __pyx_string_tab[624] -#define __pyx_n_u_MINMAXINDEX_Stream_open_and_fill __pyx_string_tab[625] -#define __pyx_n_u_MINMAXINDEX_Value __pyx_string_tab[626] -#define __pyx_n_u_MINMAX_Stream __pyx_string_tab[627] -#define __pyx_n_u_MINMAX_Stream_open_and_fill __pyx_string_tab[628] -#define __pyx_n_u_MINMAX_Value __pyx_string_tab[629] -#define __pyx_n_u_MINUS_DI __pyx_string_tab[630] -#define __pyx_n_u_MINUS_DI_Stream __pyx_string_tab[631] -#define __pyx_n_u_MINUS_DI_Stream_open_and_fill __pyx_string_tab[632] -#define __pyx_n_u_MINUS_DM __pyx_string_tab[633] -#define __pyx_n_u_MINUS_DM_Stream __pyx_string_tab[634] -#define __pyx_n_u_MINUS_DM_Stream_open_and_fill __pyx_string_tab[635] -#define __pyx_n_u_MIN_Stream __pyx_string_tab[636] -#define __pyx_n_u_MIN_Stream_open_and_fill __pyx_string_tab[637] -#define __pyx_n_u_MOM __pyx_string_tab[638] -#define __pyx_n_u_MOM_Stream __pyx_string_tab[639] -#define __pyx_n_u_MOM_Stream_open_and_fill __pyx_string_tab[640] -#define __pyx_n_u_MULT __pyx_string_tab[641] -#define __pyx_n_u_MULT_Stream __pyx_string_tab[642] -#define __pyx_n_u_MULT_Stream_open_and_fill __pyx_string_tab[643] -#define __pyx_n_u_NATR __pyx_string_tab[644] -#define __pyx_n_u_NATR_Stream __pyx_string_tab[645] -#define __pyx_n_u_NATR_Stream_open_and_fill __pyx_string_tab[646] -#define __pyx_n_u_NONE __pyx_string_tab[647] -#define __pyx_n_u_NVI __pyx_string_tab[648] -#define __pyx_n_u_NVI_Stream __pyx_string_tab[649] -#define __pyx_n_u_NVI_Stream_open_and_fill __pyx_string_tab[650] -#define __pyx_n_u_Near __pyx_string_tab[651] -#define __pyx_n_u_OBV __pyx_string_tab[652] -#define __pyx_n_u_OBV_Stream __pyx_string_tab[653] -#define __pyx_n_u_OBV_Stream_open_and_fill __pyx_string_tab[654] -#define __pyx_n_u_OrderedDict __pyx_string_tab[655] -#define __pyx_n_u_OutRange __pyx_string_tab[656] -#define __pyx_n_u_PERCENTILE __pyx_string_tab[657] -#define __pyx_n_u_PERCENTILE_Stream __pyx_string_tab[658] -#define __pyx_n_u_PERCENTILE_Stream_open_and_fill __pyx_string_tab[659] -#define __pyx_n_u_PERCENTRANK __pyx_string_tab[660] -#define __pyx_n_u_PERCENTRANK_Stream __pyx_string_tab[661] -#define __pyx_n_u_PERCENTRANK_Stream_open_and_fill __pyx_string_tab[662] -#define __pyx_n_u_PLUS_DI __pyx_string_tab[663] -#define __pyx_n_u_PLUS_DI_Stream __pyx_string_tab[664] -#define __pyx_n_u_PLUS_DI_Stream_open_and_fill __pyx_string_tab[665] -#define __pyx_n_u_PLUS_DM __pyx_string_tab[666] -#define __pyx_n_u_PLUS_DM_Stream __pyx_string_tab[667] -#define __pyx_n_u_PLUS_DM_Stream_open_and_fill __pyx_string_tab[668] -#define __pyx_n_u_PPO __pyx_string_tab[669] -#define __pyx_n_u_PPO_Stream __pyx_string_tab[670] -#define __pyx_n_u_PPO_Stream_open_and_fill __pyx_string_tab[671] -#define __pyx_n_u_PVI __pyx_string_tab[672] -#define __pyx_n_u_PVI_Stream __pyx_string_tab[673] -#define __pyx_n_u_PVI_Stream_open_and_fill __pyx_string_tab[674] -#define __pyx_n_u_PVO __pyx_string_tab[675] -#define __pyx_n_u_PVO_Stream __pyx_string_tab[676] -#define __pyx_n_u_PVO_Stream_open_and_fill __pyx_string_tab[677] -#define __pyx_n_u_PVT __pyx_string_tab[678] -#define __pyx_n_u_PVT_Stream __pyx_string_tab[679] -#define __pyx_n_u_PVT_Stream_open_and_fill __pyx_string_tab[680] -#define __pyx_n_u_QSTICK __pyx_string_tab[681] -#define __pyx_n_u_QSTICK_Stream __pyx_string_tab[682] -#define __pyx_n_u_QSTICK_Stream_open_and_fill __pyx_string_tab[683] -#define __pyx_n_u_RMA __pyx_string_tab[684] -#define __pyx_n_u_RMA_Stream __pyx_string_tab[685] -#define __pyx_n_u_RMA_Stream_open_and_fill __pyx_string_tab[686] -#define __pyx_n_u_ROC __pyx_string_tab[687] -#define __pyx_n_u_ROCP __pyx_string_tab[688] -#define __pyx_n_u_ROCP_Stream __pyx_string_tab[689] -#define __pyx_n_u_ROCP_Stream_open_and_fill __pyx_string_tab[690] -#define __pyx_n_u_ROCR __pyx_string_tab[691] -#define __pyx_n_u_ROCR100 __pyx_string_tab[692] -#define __pyx_n_u_ROCR100_Stream __pyx_string_tab[693] -#define __pyx_n_u_ROCR100_Stream_open_and_fill __pyx_string_tab[694] -#define __pyx_n_u_ROCR_Stream __pyx_string_tab[695] -#define __pyx_n_u_ROCR_Stream_open_and_fill __pyx_string_tab[696] -#define __pyx_n_u_ROC_Stream __pyx_string_tab[697] -#define __pyx_n_u_ROC_Stream_open_and_fill __pyx_string_tab[698] -#define __pyx_n_u_RSI __pyx_string_tab[699] -#define __pyx_n_u_RSI_Stream __pyx_string_tab[700] -#define __pyx_n_u_RSI_Stream_open_and_fill __pyx_string_tab[701] -#define __pyx_n_u_RVI __pyx_string_tab[702] -#define __pyx_n_u_RVI_Stream __pyx_string_tab[703] -#define __pyx_n_u_RVI_Stream_open_and_fill __pyx_string_tab[704] -#define __pyx_n_u_RVOL __pyx_string_tab[705] -#define __pyx_n_u_RVOL_Stream __pyx_string_tab[706] -#define __pyx_n_u_RVOL_Stream_open_and_fill __pyx_string_tab[707] -#define __pyx_n_u_RangeType __pyx_string_tab[708] -#define __pyx_n_u_RealBody __pyx_string_tab[709] -#define __pyx_n_u_SAR __pyx_string_tab[710] -#define __pyx_n_u_SAREXT __pyx_string_tab[711] -#define __pyx_n_u_SAREXT_Stream __pyx_string_tab[712] -#define __pyx_n_u_SAREXT_Stream_open_and_fill __pyx_string_tab[713] -#define __pyx_n_u_SAR_Stream __pyx_string_tab[714] -#define __pyx_n_u_SAR_Stream_open_and_fill __pyx_string_tab[715] -#define __pyx_n_u_SIN __pyx_string_tab[716] -#define __pyx_n_u_SINH __pyx_string_tab[717] -#define __pyx_n_u_SINH_Stream __pyx_string_tab[718] -#define __pyx_n_u_SINH_Stream_open_and_fill __pyx_string_tab[719] -#define __pyx_n_u_SIN_Stream __pyx_string_tab[720] -#define __pyx_n_u_SIN_Stream_open_and_fill __pyx_string_tab[721] -#define __pyx_n_u_SMA __pyx_string_tab[722] -#define __pyx_n_u_SMA_Stream __pyx_string_tab[723] -#define __pyx_n_u_SMA_Stream_open_and_fill __pyx_string_tab[724] -#define __pyx_n_u_SMI __pyx_string_tab[725] -#define __pyx_n_u_SMI_Stream __pyx_string_tab[726] -#define __pyx_n_u_SMI_Stream_open_and_fill __pyx_string_tab[727] -#define __pyx_n_u_SMI_Value __pyx_string_tab[728] -#define __pyx_n_u_SQRT __pyx_string_tab[729] -#define __pyx_n_u_SQRT_Stream __pyx_string_tab[730] -#define __pyx_n_u_SQRT_Stream_open_and_fill __pyx_string_tab[731] -#define __pyx_n_u_STDDEV __pyx_string_tab[732] -#define __pyx_n_u_STDDEV_Stream __pyx_string_tab[733] -#define __pyx_n_u_STDDEV_Stream_open_and_fill __pyx_string_tab[734] -#define __pyx_n_u_STOCH __pyx_string_tab[735] -#define __pyx_n_u_STOCHF __pyx_string_tab[736] -#define __pyx_n_u_STOCHF_Stream __pyx_string_tab[737] -#define __pyx_n_u_STOCHF_Stream_open_and_fill __pyx_string_tab[738] -#define __pyx_n_u_STOCHF_Value __pyx_string_tab[739] -#define __pyx_n_u_STOCHRSI __pyx_string_tab[740] -#define __pyx_n_u_STOCHRSI_Stream __pyx_string_tab[741] -#define __pyx_n_u_STOCHRSI_Stream_open_and_fill __pyx_string_tab[742] -#define __pyx_n_u_STOCHRSI_Value __pyx_string_tab[743] -#define __pyx_n_u_STOCH_Stream __pyx_string_tab[744] -#define __pyx_n_u_STOCH_Stream_open_and_fill __pyx_string_tab[745] -#define __pyx_n_u_STOCH_Value __pyx_string_tab[746] -#define __pyx_n_u_SUB __pyx_string_tab[747] -#define __pyx_n_u_SUB_Stream __pyx_string_tab[748] -#define __pyx_n_u_SUB_Stream_open_and_fill __pyx_string_tab[749] -#define __pyx_n_u_SUM __pyx_string_tab[750] -#define __pyx_n_u_SUM_Stream __pyx_string_tab[751] -#define __pyx_n_u_SUM_Stream_open_and_fill __pyx_string_tab[752] -#define __pyx_n_u_SUPERTREND __pyx_string_tab[753] -#define __pyx_n_u_SUPERTREND_Stream __pyx_string_tab[754] -#define __pyx_n_u_SUPERTREND_Stream_open_and_fill __pyx_string_tab[755] -#define __pyx_n_u_SUPERTREND_Value __pyx_string_tab[756] -#define __pyx_n_u_Series __pyx_string_tab[757] -#define __pyx_n_u_ShadowLong __pyx_string_tab[758] -#define __pyx_n_u_ShadowShort __pyx_string_tab[759] -#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[760] -#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[761] -#define __pyx_n_u_Shadows __pyx_string_tab[762] -#define __pyx_n_u_Stream __pyx_string_tab[763] -#define __pyx_n_u_Stream___copy __pyx_string_tab[764] -#define __pyx_n_u_Stream___deepcopy __pyx_string_tab[765] -#define __pyx_n_u_Stream___reduce __pyx_string_tab[766] -#define __pyx_n_u_T3 __pyx_string_tab[767] -#define __pyx_n_u_T3_Stream __pyx_string_tab[768] -#define __pyx_n_u_T3_Stream_open_and_fill __pyx_string_tab[769] -#define __pyx_n_u_TAN __pyx_string_tab[770] -#define __pyx_n_u_TANH __pyx_string_tab[771] -#define __pyx_n_u_TANH_Stream __pyx_string_tab[772] -#define __pyx_n_u_TANH_Stream_open_and_fill __pyx_string_tab[773] -#define __pyx_n_u_TAN_Stream __pyx_string_tab[774] -#define __pyx_n_u_TAN_Stream_open_and_fill __pyx_string_tab[775] -#define __pyx_n_u_TA_AC __pyx_string_tab[776] -#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[777] -#define __pyx_n_u_TA_ACCBANDS_Clone __pyx_string_tab[778] -#define __pyx_n_u_TA_ACCBANDS_Open __pyx_string_tab[779] -#define __pyx_n_u_TA_ACCBANDS_OpenAndFill __pyx_string_tab[780] -#define __pyx_n_u_TA_ACCBANDS_Peek __pyx_string_tab[781] -#define __pyx_n_u_TA_ACCBANDS_Update __pyx_string_tab[782] -#define __pyx_n_u_TA_ACCBANDS_Value __pyx_string_tab[783] -#define __pyx_n_u_TA_ACOS __pyx_string_tab[784] -#define __pyx_n_u_TA_ACOS_Clone __pyx_string_tab[785] -#define __pyx_n_u_TA_ACOS_Open __pyx_string_tab[786] -#define __pyx_n_u_TA_ACOS_OpenAndFill __pyx_string_tab[787] -#define __pyx_n_u_TA_ACOS_Peek __pyx_string_tab[788] -#define __pyx_n_u_TA_ACOS_Update __pyx_string_tab[789] -#define __pyx_n_u_TA_ACOS_Value __pyx_string_tab[790] -#define __pyx_n_u_TA_AC_Clone __pyx_string_tab[791] -#define __pyx_n_u_TA_AC_Open __pyx_string_tab[792] -#define __pyx_n_u_TA_AC_OpenAndFill __pyx_string_tab[793] -#define __pyx_n_u_TA_AC_Peek __pyx_string_tab[794] -#define __pyx_n_u_TA_AC_Update __pyx_string_tab[795] -#define __pyx_n_u_TA_AC_Value __pyx_string_tab[796] -#define __pyx_n_u_TA_AD __pyx_string_tab[797] -#define __pyx_n_u_TA_ADD __pyx_string_tab[798] -#define __pyx_n_u_TA_ADD_Clone __pyx_string_tab[799] -#define __pyx_n_u_TA_ADD_Open __pyx_string_tab[800] -#define __pyx_n_u_TA_ADD_OpenAndFill __pyx_string_tab[801] -#define __pyx_n_u_TA_ADD_Peek __pyx_string_tab[802] -#define __pyx_n_u_TA_ADD_Update __pyx_string_tab[803] -#define __pyx_n_u_TA_ADD_Value __pyx_string_tab[804] -#define __pyx_n_u_TA_ADOSC __pyx_string_tab[805] -#define __pyx_n_u_TA_ADOSC_Clone __pyx_string_tab[806] -#define __pyx_n_u_TA_ADOSC_Open __pyx_string_tab[807] -#define __pyx_n_u_TA_ADOSC_OpenAndFill __pyx_string_tab[808] -#define __pyx_n_u_TA_ADOSC_Peek __pyx_string_tab[809] -#define __pyx_n_u_TA_ADOSC_Update __pyx_string_tab[810] -#define __pyx_n_u_TA_ADOSC_Value __pyx_string_tab[811] -#define __pyx_n_u_TA_ADR __pyx_string_tab[812] -#define __pyx_n_u_TA_ADR_Clone __pyx_string_tab[813] -#define __pyx_n_u_TA_ADR_Open __pyx_string_tab[814] -#define __pyx_n_u_TA_ADR_OpenAndFill __pyx_string_tab[815] -#define __pyx_n_u_TA_ADR_Peek __pyx_string_tab[816] -#define __pyx_n_u_TA_ADR_Update __pyx_string_tab[817] -#define __pyx_n_u_TA_ADR_Value __pyx_string_tab[818] -#define __pyx_n_u_TA_ADX __pyx_string_tab[819] -#define __pyx_n_u_TA_ADXR __pyx_string_tab[820] -#define __pyx_n_u_TA_ADXR_Clone __pyx_string_tab[821] -#define __pyx_n_u_TA_ADXR_Open __pyx_string_tab[822] -#define __pyx_n_u_TA_ADXR_OpenAndFill __pyx_string_tab[823] -#define __pyx_n_u_TA_ADXR_Peek __pyx_string_tab[824] -#define __pyx_n_u_TA_ADXR_Update __pyx_string_tab[825] -#define __pyx_n_u_TA_ADXR_Value __pyx_string_tab[826] -#define __pyx_n_u_TA_ADX_Clone __pyx_string_tab[827] -#define __pyx_n_u_TA_ADX_Open __pyx_string_tab[828] -#define __pyx_n_u_TA_ADX_OpenAndFill __pyx_string_tab[829] -#define __pyx_n_u_TA_ADX_Peek __pyx_string_tab[830] -#define __pyx_n_u_TA_ADX_Update __pyx_string_tab[831] -#define __pyx_n_u_TA_ADX_Value __pyx_string_tab[832] -#define __pyx_n_u_TA_AD_Clone __pyx_string_tab[833] -#define __pyx_n_u_TA_AD_Open __pyx_string_tab[834] -#define __pyx_n_u_TA_AD_OpenAndFill __pyx_string_tab[835] -#define __pyx_n_u_TA_AD_Peek __pyx_string_tab[836] -#define __pyx_n_u_TA_AD_Update __pyx_string_tab[837] -#define __pyx_n_u_TA_AD_Value __pyx_string_tab[838] -#define __pyx_n_u_TA_AO __pyx_string_tab[839] -#define __pyx_n_u_TA_AO_Clone __pyx_string_tab[840] -#define __pyx_n_u_TA_AO_Open __pyx_string_tab[841] -#define __pyx_n_u_TA_AO_OpenAndFill __pyx_string_tab[842] -#define __pyx_n_u_TA_AO_Peek __pyx_string_tab[843] -#define __pyx_n_u_TA_AO_Update __pyx_string_tab[844] -#define __pyx_n_u_TA_AO_Value __pyx_string_tab[845] -#define __pyx_n_u_TA_APO __pyx_string_tab[846] -#define __pyx_n_u_TA_APO_Clone __pyx_string_tab[847] -#define __pyx_n_u_TA_APO_Open __pyx_string_tab[848] -#define __pyx_n_u_TA_APO_OpenAndFill __pyx_string_tab[849] -#define __pyx_n_u_TA_APO_Peek __pyx_string_tab[850] -#define __pyx_n_u_TA_APO_Update __pyx_string_tab[851] -#define __pyx_n_u_TA_APO_Value __pyx_string_tab[852] -#define __pyx_n_u_TA_AROON __pyx_string_tab[853] -#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[854] -#define __pyx_n_u_TA_AROONOSC_Clone __pyx_string_tab[855] -#define __pyx_n_u_TA_AROONOSC_Open __pyx_string_tab[856] -#define __pyx_n_u_TA_AROONOSC_OpenAndFill __pyx_string_tab[857] -#define __pyx_n_u_TA_AROONOSC_Peek __pyx_string_tab[858] -#define __pyx_n_u_TA_AROONOSC_Update __pyx_string_tab[859] -#define __pyx_n_u_TA_AROONOSC_Value __pyx_string_tab[860] -#define __pyx_n_u_TA_AROON_Clone __pyx_string_tab[861] -#define __pyx_n_u_TA_AROON_Open __pyx_string_tab[862] -#define __pyx_n_u_TA_AROON_OpenAndFill __pyx_string_tab[863] -#define __pyx_n_u_TA_AROON_Peek __pyx_string_tab[864] -#define __pyx_n_u_TA_AROON_Update __pyx_string_tab[865] -#define __pyx_n_u_TA_AROON_Value __pyx_string_tab[866] -#define __pyx_n_u_TA_ASIN __pyx_string_tab[867] -#define __pyx_n_u_TA_ASIN_Clone __pyx_string_tab[868] -#define __pyx_n_u_TA_ASIN_Open __pyx_string_tab[869] -#define __pyx_n_u_TA_ASIN_OpenAndFill __pyx_string_tab[870] -#define __pyx_n_u_TA_ASIN_Peek __pyx_string_tab[871] -#define __pyx_n_u_TA_ASIN_Update __pyx_string_tab[872] -#define __pyx_n_u_TA_ASIN_Value __pyx_string_tab[873] -#define __pyx_n_u_TA_ATAN __pyx_string_tab[874] -#define __pyx_n_u_TA_ATAN_Clone __pyx_string_tab[875] -#define __pyx_n_u_TA_ATAN_Open __pyx_string_tab[876] -#define __pyx_n_u_TA_ATAN_OpenAndFill __pyx_string_tab[877] -#define __pyx_n_u_TA_ATAN_Peek __pyx_string_tab[878] -#define __pyx_n_u_TA_ATAN_Update __pyx_string_tab[879] -#define __pyx_n_u_TA_ATAN_Value __pyx_string_tab[880] -#define __pyx_n_u_TA_ATR __pyx_string_tab[881] -#define __pyx_n_u_TA_ATR_Clone __pyx_string_tab[882] -#define __pyx_n_u_TA_ATR_Open __pyx_string_tab[883] -#define __pyx_n_u_TA_ATR_OpenAndFill __pyx_string_tab[884] -#define __pyx_n_u_TA_ATR_Peek __pyx_string_tab[885] -#define __pyx_n_u_TA_ATR_Update __pyx_string_tab[886] -#define __pyx_n_u_TA_ATR_Value __pyx_string_tab[887] -#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[888] -#define __pyx_n_u_TA_AVGDEV_Clone __pyx_string_tab[889] -#define __pyx_n_u_TA_AVGDEV_Open __pyx_string_tab[890] -#define __pyx_n_u_TA_AVGDEV_OpenAndFill __pyx_string_tab[891] -#define __pyx_n_u_TA_AVGDEV_Peek __pyx_string_tab[892] -#define __pyx_n_u_TA_AVGDEV_Update __pyx_string_tab[893] -#define __pyx_n_u_TA_AVGDEV_Value __pyx_string_tab[894] -#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[895] -#define __pyx_n_u_TA_AVGPRICE_Clone __pyx_string_tab[896] -#define __pyx_n_u_TA_AVGPRICE_Open __pyx_string_tab[897] -#define __pyx_n_u_TA_AVGPRICE_OpenAndFill __pyx_string_tab[898] -#define __pyx_n_u_TA_AVGPRICE_Peek __pyx_string_tab[899] -#define __pyx_n_u_TA_AVGPRICE_Update __pyx_string_tab[900] -#define __pyx_n_u_TA_AVGPRICE_Value __pyx_string_tab[901] -#define __pyx_n_u_TA_BBANDS __pyx_string_tab[902] -#define __pyx_n_u_TA_BBANDS_Clone __pyx_string_tab[903] -#define __pyx_n_u_TA_BBANDS_Open __pyx_string_tab[904] -#define __pyx_n_u_TA_BBANDS_OpenAndFill __pyx_string_tab[905] -#define __pyx_n_u_TA_BBANDS_Peek __pyx_string_tab[906] -#define __pyx_n_u_TA_BBANDS_Update __pyx_string_tab[907] -#define __pyx_n_u_TA_BBANDS_Value __pyx_string_tab[908] -#define __pyx_n_u_TA_BETA __pyx_string_tab[909] -#define __pyx_n_u_TA_BETA_Clone __pyx_string_tab[910] -#define __pyx_n_u_TA_BETA_Open __pyx_string_tab[911] -#define __pyx_n_u_TA_BETA_OpenAndFill __pyx_string_tab[912] -#define __pyx_n_u_TA_BETA_Peek __pyx_string_tab[913] -#define __pyx_n_u_TA_BETA_Update __pyx_string_tab[914] -#define __pyx_n_u_TA_BETA_Value __pyx_string_tab[915] -#define __pyx_n_u_TA_BOP __pyx_string_tab[916] -#define __pyx_n_u_TA_BOP_Clone __pyx_string_tab[917] -#define __pyx_n_u_TA_BOP_Open __pyx_string_tab[918] -#define __pyx_n_u_TA_BOP_OpenAndFill __pyx_string_tab[919] -#define __pyx_n_u_TA_BOP_Peek __pyx_string_tab[920] -#define __pyx_n_u_TA_BOP_Update __pyx_string_tab[921] -#define __pyx_n_u_TA_BOP_Value __pyx_string_tab[922] -#define __pyx_n_u_TA_CCI __pyx_string_tab[923] -#define __pyx_n_u_TA_CCI_Clone __pyx_string_tab[924] -#define __pyx_n_u_TA_CCI_Open __pyx_string_tab[925] -#define __pyx_n_u_TA_CCI_OpenAndFill __pyx_string_tab[926] -#define __pyx_n_u_TA_CCI_Peek __pyx_string_tab[927] -#define __pyx_n_u_TA_CCI_Update __pyx_string_tab[928] -#define __pyx_n_u_TA_CCI_Value __pyx_string_tab[929] -#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[930] -#define __pyx_n_u_TA_CDL2CROWS_Clone __pyx_string_tab[931] -#define __pyx_n_u_TA_CDL2CROWS_Open __pyx_string_tab[932] -#define __pyx_n_u_TA_CDL2CROWS_OpenAndFill __pyx_string_tab[933] -#define __pyx_n_u_TA_CDL2CROWS_Peek __pyx_string_tab[934] -#define __pyx_n_u_TA_CDL2CROWS_Update __pyx_string_tab[935] -#define __pyx_n_u_TA_CDL2CROWS_Value __pyx_string_tab[936] -#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[937] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Clone __pyx_string_tab[938] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Open __pyx_string_tab[939] -#define __pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill __pyx_string_tab[940] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Peek __pyx_string_tab[941] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Update __pyx_string_tab[942] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Value __pyx_string_tab[943] -#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[944] -#define __pyx_n_u_TA_CDL3INSIDE_Clone __pyx_string_tab[945] -#define __pyx_n_u_TA_CDL3INSIDE_Open __pyx_string_tab[946] -#define __pyx_n_u_TA_CDL3INSIDE_OpenAndFill __pyx_string_tab[947] -#define __pyx_n_u_TA_CDL3INSIDE_Peek __pyx_string_tab[948] -#define __pyx_n_u_TA_CDL3INSIDE_Update __pyx_string_tab[949] -#define __pyx_n_u_TA_CDL3INSIDE_Value __pyx_string_tab[950] -#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[951] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Clone __pyx_string_tab[952] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Open __pyx_string_tab[953] -#define __pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill __pyx_string_tab[954] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Peek __pyx_string_tab[955] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Update __pyx_string_tab[956] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Value __pyx_string_tab[957] -#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[958] -#define __pyx_n_u_TA_CDL3OUTSIDE_Clone __pyx_string_tab[959] -#define __pyx_n_u_TA_CDL3OUTSIDE_Open __pyx_string_tab[960] -#define __pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill __pyx_string_tab[961] -#define __pyx_n_u_TA_CDL3OUTSIDE_Peek __pyx_string_tab[962] -#define __pyx_n_u_TA_CDL3OUTSIDE_Update __pyx_string_tab[963] -#define __pyx_n_u_TA_CDL3OUTSIDE_Value __pyx_string_tab[964] -#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[965] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Clone __pyx_string_tab[966] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Open __pyx_string_tab[967] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill __pyx_string_tab[968] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Peek __pyx_string_tab[969] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Update __pyx_string_tab[970] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Value __pyx_string_tab[971] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[972] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Clone __pyx_string_tab[973] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Open __pyx_string_tab[974] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill __pyx_string_tab[975] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Peek __pyx_string_tab[976] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Update __pyx_string_tab[977] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Value __pyx_string_tab[978] -#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[979] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Clone __pyx_string_tab[980] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Open __pyx_string_tab[981] -#define __pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill __pyx_string_tab[982] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Peek __pyx_string_tab[983] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Update __pyx_string_tab[984] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Value __pyx_string_tab[985] -#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[986] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Clone __pyx_string_tab[987] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Open __pyx_string_tab[988] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill __pyx_string_tab[989] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Peek __pyx_string_tab[990] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Update __pyx_string_tab[991] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Value __pyx_string_tab[992] -#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[993] -#define __pyx_n_u_TA_CDLBELTHOLD_Clone __pyx_string_tab[994] -#define __pyx_n_u_TA_CDLBELTHOLD_Open __pyx_string_tab[995] -#define __pyx_n_u_TA_CDLBELTHOLD_OpenAndFill __pyx_string_tab[996] -#define __pyx_n_u_TA_CDLBELTHOLD_Peek __pyx_string_tab[997] -#define __pyx_n_u_TA_CDLBELTHOLD_Update __pyx_string_tab[998] -#define __pyx_n_u_TA_CDLBELTHOLD_Value __pyx_string_tab[999] -#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[1000] -#define __pyx_n_u_TA_CDLBREAKAWAY_Clone __pyx_string_tab[1001] -#define __pyx_n_u_TA_CDLBREAKAWAY_Open __pyx_string_tab[1002] -#define __pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill __pyx_string_tab[1003] -#define __pyx_n_u_TA_CDLBREAKAWAY_Peek __pyx_string_tab[1004] -#define __pyx_n_u_TA_CDLBREAKAWAY_Update __pyx_string_tab[1005] -#define __pyx_n_u_TA_CDLBREAKAWAY_Value __pyx_string_tab[1006] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[1007] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone __pyx_string_tab[1008] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open __pyx_string_tab[1009] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil __pyx_string_tab[1010] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek __pyx_string_tab[1011] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update __pyx_string_tab[1012] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value __pyx_string_tab[1013] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[1014] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone __pyx_string_tab[1015] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Open __pyx_string_tab[1016] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi __pyx_string_tab[1017] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek __pyx_string_tab[1018] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Update __pyx_string_tab[1019] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Value __pyx_string_tab[1020] -#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[1021] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Clone __pyx_string_tab[1022] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Open __pyx_string_tab[1023] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill __pyx_string_tab[1024] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Peek __pyx_string_tab[1025] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Update __pyx_string_tab[1026] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Value __pyx_string_tab[1027] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[1028] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone __pyx_string_tab[1029] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Open __pyx_string_tab[1030] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill __pyx_string_tab[1031] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek __pyx_string_tab[1032] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Update __pyx_string_tab[1033] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Value __pyx_string_tab[1034] -#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[1035] -#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[1036] -#define __pyx_n_u_TA_CDLDOJISTAR_Clone __pyx_string_tab[1037] -#define __pyx_n_u_TA_CDLDOJISTAR_Open __pyx_string_tab[1038] -#define __pyx_n_u_TA_CDLDOJISTAR_OpenAndFill __pyx_string_tab[1039] -#define __pyx_n_u_TA_CDLDOJISTAR_Peek __pyx_string_tab[1040] -#define __pyx_n_u_TA_CDLDOJISTAR_Update __pyx_string_tab[1041] -#define __pyx_n_u_TA_CDLDOJISTAR_Value __pyx_string_tab[1042] -#define __pyx_n_u_TA_CDLDOJI_Clone __pyx_string_tab[1043] -#define __pyx_n_u_TA_CDLDOJI_Open __pyx_string_tab[1044] -#define __pyx_n_u_TA_CDLDOJI_OpenAndFill __pyx_string_tab[1045] -#define __pyx_n_u_TA_CDLDOJI_Peek __pyx_string_tab[1046] -#define __pyx_n_u_TA_CDLDOJI_Update __pyx_string_tab[1047] -#define __pyx_n_u_TA_CDLDOJI_Value __pyx_string_tab[1048] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[1049] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone __pyx_string_tab[1050] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Open __pyx_string_tab[1051] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill __pyx_string_tab[1052] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek __pyx_string_tab[1053] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Update __pyx_string_tab[1054] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Value __pyx_string_tab[1055] -#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[1056] -#define __pyx_n_u_TA_CDLENGULFING_Clone __pyx_string_tab[1057] -#define __pyx_n_u_TA_CDLENGULFING_Open __pyx_string_tab[1058] -#define __pyx_n_u_TA_CDLENGULFING_OpenAndFill __pyx_string_tab[1059] -#define __pyx_n_u_TA_CDLENGULFING_Peek __pyx_string_tab[1060] -#define __pyx_n_u_TA_CDLENGULFING_Update __pyx_string_tab[1061] -#define __pyx_n_u_TA_CDLENGULFING_Value __pyx_string_tab[1062] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[1063] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone __pyx_string_tab[1064] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Open __pyx_string_tab[1065] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil __pyx_string_tab[1066] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek __pyx_string_tab[1067] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Update __pyx_string_tab[1068] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Value __pyx_string_tab[1069] -#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[1070] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Clone __pyx_string_tab[1071] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Open __pyx_string_tab[1072] -#define __pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill __pyx_string_tab[1073] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Peek __pyx_string_tab[1074] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Update __pyx_string_tab[1075] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Value __pyx_string_tab[1076] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[1077] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone __pyx_string_tab[1078] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open __pyx_string_tab[1079] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi __pyx_string_tab[1080] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek __pyx_string_tab[1081] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update __pyx_string_tab[1082] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value __pyx_string_tab[1083] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[1084] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone __pyx_string_tab[1085] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Open __pyx_string_tab[1086] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill __pyx_string_tab[1087] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek __pyx_string_tab[1088] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Update __pyx_string_tab[1089] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Value __pyx_string_tab[1090] -#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[1091] -#define __pyx_n_u_TA_CDLHAMMER_Clone __pyx_string_tab[1092] -#define __pyx_n_u_TA_CDLHAMMER_Open __pyx_string_tab[1093] -#define __pyx_n_u_TA_CDLHAMMER_OpenAndFill __pyx_string_tab[1094] -#define __pyx_n_u_TA_CDLHAMMER_Peek __pyx_string_tab[1095] -#define __pyx_n_u_TA_CDLHAMMER_Update __pyx_string_tab[1096] -#define __pyx_n_u_TA_CDLHAMMER_Value __pyx_string_tab[1097] -#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[1098] -#define __pyx_n_u_TA_CDLHANGINGMAN_Clone __pyx_string_tab[1099] -#define __pyx_n_u_TA_CDLHANGINGMAN_Open __pyx_string_tab[1100] -#define __pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill __pyx_string_tab[1101] -#define __pyx_n_u_TA_CDLHANGINGMAN_Peek __pyx_string_tab[1102] -#define __pyx_n_u_TA_CDLHANGINGMAN_Update __pyx_string_tab[1103] -#define __pyx_n_u_TA_CDLHANGINGMAN_Value __pyx_string_tab[1104] -#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[1105] -#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[1106] -#define __pyx_n_u_TA_CDLHARAMICROSS_Clone __pyx_string_tab[1107] -#define __pyx_n_u_TA_CDLHARAMICROSS_Open __pyx_string_tab[1108] -#define __pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill __pyx_string_tab[1109] -#define __pyx_n_u_TA_CDLHARAMICROSS_Peek __pyx_string_tab[1110] -#define __pyx_n_u_TA_CDLHARAMICROSS_Update __pyx_string_tab[1111] -#define __pyx_n_u_TA_CDLHARAMICROSS_Value __pyx_string_tab[1112] -#define __pyx_n_u_TA_CDLHARAMI_Clone __pyx_string_tab[1113] -#define __pyx_n_u_TA_CDLHARAMI_Open __pyx_string_tab[1114] -#define __pyx_n_u_TA_CDLHARAMI_OpenAndFill __pyx_string_tab[1115] -#define __pyx_n_u_TA_CDLHARAMI_Peek __pyx_string_tab[1116] -#define __pyx_n_u_TA_CDLHARAMI_Update __pyx_string_tab[1117] -#define __pyx_n_u_TA_CDLHARAMI_Value __pyx_string_tab[1118] -#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[1119] -#define __pyx_n_u_TA_CDLHIGHWAVE_Clone __pyx_string_tab[1120] -#define __pyx_n_u_TA_CDLHIGHWAVE_Open __pyx_string_tab[1121] -#define __pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill __pyx_string_tab[1122] -#define __pyx_n_u_TA_CDLHIGHWAVE_Peek __pyx_string_tab[1123] -#define __pyx_n_u_TA_CDLHIGHWAVE_Update __pyx_string_tab[1124] -#define __pyx_n_u_TA_CDLHIGHWAVE_Value __pyx_string_tab[1125] -#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[1126] -#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[1127] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Clone __pyx_string_tab[1128] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Open __pyx_string_tab[1129] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill __pyx_string_tab[1130] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Peek __pyx_string_tab[1131] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Update __pyx_string_tab[1132] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Value __pyx_string_tab[1133] -#define __pyx_n_u_TA_CDLHIKKAKE_Clone __pyx_string_tab[1134] -#define __pyx_n_u_TA_CDLHIKKAKE_Open __pyx_string_tab[1135] -#define __pyx_n_u_TA_CDLHIKKAKE_OpenAndFill __pyx_string_tab[1136] -#define __pyx_n_u_TA_CDLHIKKAKE_Peek __pyx_string_tab[1137] -#define __pyx_n_u_TA_CDLHIKKAKE_Update __pyx_string_tab[1138] -#define __pyx_n_u_TA_CDLHIKKAKE_Value __pyx_string_tab[1139] -#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[1140] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Clone __pyx_string_tab[1141] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Open __pyx_string_tab[1142] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill __pyx_string_tab[1143] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Peek __pyx_string_tab[1144] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Update __pyx_string_tab[1145] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Value __pyx_string_tab[1146] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[1147] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone __pyx_string_tab[1148] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Open __pyx_string_tab[1149] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil __pyx_string_tab[1150] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek __pyx_string_tab[1151] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Update __pyx_string_tab[1152] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Value __pyx_string_tab[1153] -#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[1154] -#define __pyx_n_u_TA_CDLINNECK_Clone __pyx_string_tab[1155] -#define __pyx_n_u_TA_CDLINNECK_Open __pyx_string_tab[1156] -#define __pyx_n_u_TA_CDLINNECK_OpenAndFill __pyx_string_tab[1157] -#define __pyx_n_u_TA_CDLINNECK_Peek __pyx_string_tab[1158] -#define __pyx_n_u_TA_CDLINNECK_Update __pyx_string_tab[1159] -#define __pyx_n_u_TA_CDLINNECK_Value __pyx_string_tab[1160] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[1161] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Clone __pyx_string_tab[1162] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Open __pyx_string_tab[1163] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill __pyx_string_tab[1164] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Peek __pyx_string_tab[1165] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Update __pyx_string_tab[1166] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Value __pyx_string_tab[1167] -#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[1168] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[1169] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone __pyx_string_tab[1170] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Open __pyx_string_tab[1171] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil __pyx_string_tab[1172] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek __pyx_string_tab[1173] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Update __pyx_string_tab[1174] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Value __pyx_string_tab[1175] -#define __pyx_n_u_TA_CDLKICKING_Clone __pyx_string_tab[1176] -#define __pyx_n_u_TA_CDLKICKING_Open __pyx_string_tab[1177] -#define __pyx_n_u_TA_CDLKICKING_OpenAndFill __pyx_string_tab[1178] -#define __pyx_n_u_TA_CDLKICKING_Peek __pyx_string_tab[1179] -#define __pyx_n_u_TA_CDLKICKING_Update __pyx_string_tab[1180] -#define __pyx_n_u_TA_CDLKICKING_Value __pyx_string_tab[1181] -#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[1182] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Clone __pyx_string_tab[1183] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Open __pyx_string_tab[1184] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill __pyx_string_tab[1185] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Peek __pyx_string_tab[1186] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Update __pyx_string_tab[1187] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Value __pyx_string_tab[1188] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[1189] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone __pyx_string_tab[1190] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open __pyx_string_tab[1191] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill __pyx_string_tab[1192] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek __pyx_string_tab[1193] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update __pyx_string_tab[1194] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value __pyx_string_tab[1195] -#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[1196] -#define __pyx_n_u_TA_CDLLONGLINE_Clone __pyx_string_tab[1197] -#define __pyx_n_u_TA_CDLLONGLINE_Open __pyx_string_tab[1198] -#define __pyx_n_u_TA_CDLLONGLINE_OpenAndFill __pyx_string_tab[1199] -#define __pyx_n_u_TA_CDLLONGLINE_Peek __pyx_string_tab[1200] -#define __pyx_n_u_TA_CDLLONGLINE_Update __pyx_string_tab[1201] -#define __pyx_n_u_TA_CDLLONGLINE_Value __pyx_string_tab[1202] -#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[1203] -#define __pyx_n_u_TA_CDLMARUBOZU_Clone __pyx_string_tab[1204] -#define __pyx_n_u_TA_CDLMARUBOZU_Open __pyx_string_tab[1205] -#define __pyx_n_u_TA_CDLMARUBOZU_OpenAndFill __pyx_string_tab[1206] -#define __pyx_n_u_TA_CDLMARUBOZU_Peek __pyx_string_tab[1207] -#define __pyx_n_u_TA_CDLMARUBOZU_Update __pyx_string_tab[1208] -#define __pyx_n_u_TA_CDLMARUBOZU_Value __pyx_string_tab[1209] -#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[1210] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Clone __pyx_string_tab[1211] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Open __pyx_string_tab[1212] -#define __pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill __pyx_string_tab[1213] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Peek __pyx_string_tab[1214] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Update __pyx_string_tab[1215] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Value __pyx_string_tab[1216] -#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[1217] -#define __pyx_n_u_TA_CDLMATHOLD_Clone __pyx_string_tab[1218] -#define __pyx_n_u_TA_CDLMATHOLD_Open __pyx_string_tab[1219] -#define __pyx_n_u_TA_CDLMATHOLD_OpenAndFill __pyx_string_tab[1220] -#define __pyx_n_u_TA_CDLMATHOLD_Peek __pyx_string_tab[1221] -#define __pyx_n_u_TA_CDLMATHOLD_Update __pyx_string_tab[1222] -#define __pyx_n_u_TA_CDLMATHOLD_Value __pyx_string_tab[1223] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[1224] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone __pyx_string_tab[1225] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Open __pyx_string_tab[1226] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil __pyx_string_tab[1227] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek __pyx_string_tab[1228] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Update __pyx_string_tab[1229] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Value __pyx_string_tab[1230] -#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[1231] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Clone __pyx_string_tab[1232] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Open __pyx_string_tab[1233] -#define __pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill __pyx_string_tab[1234] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Peek __pyx_string_tab[1235] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Update __pyx_string_tab[1236] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Value __pyx_string_tab[1237] -#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[1238] -#define __pyx_n_u_TA_CDLONNECK_Clone __pyx_string_tab[1239] -#define __pyx_n_u_TA_CDLONNECK_Open __pyx_string_tab[1240] -#define __pyx_n_u_TA_CDLONNECK_OpenAndFill __pyx_string_tab[1241] -#define __pyx_n_u_TA_CDLONNECK_Peek __pyx_string_tab[1242] -#define __pyx_n_u_TA_CDLONNECK_Update __pyx_string_tab[1243] -#define __pyx_n_u_TA_CDLONNECK_Value __pyx_string_tab[1244] -#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[1245] -#define __pyx_n_u_TA_CDLPIERCING_Clone __pyx_string_tab[1246] -#define __pyx_n_u_TA_CDLPIERCING_Open __pyx_string_tab[1247] -#define __pyx_n_u_TA_CDLPIERCING_OpenAndFill __pyx_string_tab[1248] -#define __pyx_n_u_TA_CDLPIERCING_Peek __pyx_string_tab[1249] -#define __pyx_n_u_TA_CDLPIERCING_Update __pyx_string_tab[1250] -#define __pyx_n_u_TA_CDLPIERCING_Value __pyx_string_tab[1251] -#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[1252] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Clone __pyx_string_tab[1253] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Open __pyx_string_tab[1254] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill __pyx_string_tab[1255] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Peek __pyx_string_tab[1256] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Update __pyx_string_tab[1257] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Value __pyx_string_tab[1258] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[1259] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Clone __pyx_string_tab[1260] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Open __pyx_string_tab[1261] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi __pyx_string_tab[1262] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Peek __pyx_string_tab[1263] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Update __pyx_string_tab[1264] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Value __pyx_string_tab[1265] -#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[1266] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Clone __pyx_string_tab[1267] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Open __pyx_string_tab[1268] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil __pyx_string_tab[1269] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Peek __pyx_string_tab[1270] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Update __pyx_string_tab[1271] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Value __pyx_string_tab[1272] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[1273] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Clone __pyx_string_tab[1274] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Open __pyx_string_tab[1275] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill __pyx_string_tab[1276] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Peek __pyx_string_tab[1277] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Update __pyx_string_tab[1278] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Value __pyx_string_tab[1279] -#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[1280] -#define __pyx_n_u_TA_CDLSHORTLINE_Clone __pyx_string_tab[1281] -#define __pyx_n_u_TA_CDLSHORTLINE_Open __pyx_string_tab[1282] -#define __pyx_n_u_TA_CDLSHORTLINE_OpenAndFill __pyx_string_tab[1283] -#define __pyx_n_u_TA_CDLSHORTLINE_Peek __pyx_string_tab[1284] -#define __pyx_n_u_TA_CDLSHORTLINE_Update __pyx_string_tab[1285] -#define __pyx_n_u_TA_CDLSHORTLINE_Value __pyx_string_tab[1286] -#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[1287] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Clone __pyx_string_tab[1288] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Open __pyx_string_tab[1289] -#define __pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill __pyx_string_tab[1290] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Peek __pyx_string_tab[1291] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Update __pyx_string_tab[1292] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Value __pyx_string_tab[1293] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[1294] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Clone __pyx_string_tab[1295] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Open __pyx_string_tab[1296] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill __pyx_string_tab[1297] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Peek __pyx_string_tab[1298] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Update __pyx_string_tab[1299] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Value __pyx_string_tab[1300] -#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[1301] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Clone __pyx_string_tab[1302] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Open __pyx_string_tab[1303] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill __pyx_string_tab[1304] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Peek __pyx_string_tab[1305] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Update __pyx_string_tab[1306] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Value __pyx_string_tab[1307] -#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[1308] -#define __pyx_n_u_TA_CDLTAKURI_Clone __pyx_string_tab[1309] -#define __pyx_n_u_TA_CDLTAKURI_Open __pyx_string_tab[1310] -#define __pyx_n_u_TA_CDLTAKURI_OpenAndFill __pyx_string_tab[1311] -#define __pyx_n_u_TA_CDLTAKURI_Peek __pyx_string_tab[1312] -#define __pyx_n_u_TA_CDLTAKURI_Update __pyx_string_tab[1313] -#define __pyx_n_u_TA_CDLTAKURI_Value __pyx_string_tab[1314] -#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[1315] -#define __pyx_n_u_TA_CDLTASUKIGAP_Clone __pyx_string_tab[1316] -#define __pyx_n_u_TA_CDLTASUKIGAP_Open __pyx_string_tab[1317] -#define __pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill __pyx_string_tab[1318] -#define __pyx_n_u_TA_CDLTASUKIGAP_Peek __pyx_string_tab[1319] -#define __pyx_n_u_TA_CDLTASUKIGAP_Update __pyx_string_tab[1320] -#define __pyx_n_u_TA_CDLTASUKIGAP_Value __pyx_string_tab[1321] -#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[1322] -#define __pyx_n_u_TA_CDLTHRUSTING_Clone __pyx_string_tab[1323] -#define __pyx_n_u_TA_CDLTHRUSTING_Open __pyx_string_tab[1324] -#define __pyx_n_u_TA_CDLTHRUSTING_OpenAndFill __pyx_string_tab[1325] -#define __pyx_n_u_TA_CDLTHRUSTING_Peek __pyx_string_tab[1326] -#define __pyx_n_u_TA_CDLTHRUSTING_Update __pyx_string_tab[1327] -#define __pyx_n_u_TA_CDLTHRUSTING_Value __pyx_string_tab[1328] -#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[1329] -#define __pyx_n_u_TA_CDLTRISTAR_Clone __pyx_string_tab[1330] -#define __pyx_n_u_TA_CDLTRISTAR_Open __pyx_string_tab[1331] -#define __pyx_n_u_TA_CDLTRISTAR_OpenAndFill __pyx_string_tab[1332] -#define __pyx_n_u_TA_CDLTRISTAR_Peek __pyx_string_tab[1333] -#define __pyx_n_u_TA_CDLTRISTAR_Update __pyx_string_tab[1334] -#define __pyx_n_u_TA_CDLTRISTAR_Value __pyx_string_tab[1335] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[1336] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Clone __pyx_string_tab[1337] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Open __pyx_string_tab[1338] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill __pyx_string_tab[1339] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Peek __pyx_string_tab[1340] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Update __pyx_string_tab[1341] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Value __pyx_string_tab[1342] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[1343] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone __pyx_string_tab[1344] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open __pyx_string_tab[1345] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil __pyx_string_tab[1346] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek __pyx_string_tab[1347] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update __pyx_string_tab[1348] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value __pyx_string_tab[1349] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[1350] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone __pyx_string_tab[1351] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open __pyx_string_tab[1352] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi __pyx_string_tab[1353] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek __pyx_string_tab[1354] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update __pyx_string_tab[1355] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value __pyx_string_tab[1356] -#define __pyx_n_u_TA_CEIL __pyx_string_tab[1357] -#define __pyx_n_u_TA_CEIL_Clone __pyx_string_tab[1358] -#define __pyx_n_u_TA_CEIL_Open __pyx_string_tab[1359] -#define __pyx_n_u_TA_CEIL_OpenAndFill __pyx_string_tab[1360] -#define __pyx_n_u_TA_CEIL_Peek __pyx_string_tab[1361] -#define __pyx_n_u_TA_CEIL_Update __pyx_string_tab[1362] -#define __pyx_n_u_TA_CEIL_Value __pyx_string_tab[1363] -#define __pyx_n_u_TA_CMF __pyx_string_tab[1364] -#define __pyx_n_u_TA_CMF_Clone __pyx_string_tab[1365] -#define __pyx_n_u_TA_CMF_Open __pyx_string_tab[1366] -#define __pyx_n_u_TA_CMF_OpenAndFill __pyx_string_tab[1367] -#define __pyx_n_u_TA_CMF_Peek __pyx_string_tab[1368] -#define __pyx_n_u_TA_CMF_Update __pyx_string_tab[1369] -#define __pyx_n_u_TA_CMF_Value __pyx_string_tab[1370] -#define __pyx_n_u_TA_CMO __pyx_string_tab[1371] -#define __pyx_n_u_TA_CMOU __pyx_string_tab[1372] -#define __pyx_n_u_TA_CMOU_Clone __pyx_string_tab[1373] -#define __pyx_n_u_TA_CMOU_Open __pyx_string_tab[1374] -#define __pyx_n_u_TA_CMOU_OpenAndFill __pyx_string_tab[1375] -#define __pyx_n_u_TA_CMOU_Peek __pyx_string_tab[1376] -#define __pyx_n_u_TA_CMOU_Update __pyx_string_tab[1377] -#define __pyx_n_u_TA_CMOU_Value __pyx_string_tab[1378] -#define __pyx_n_u_TA_CMO_Clone __pyx_string_tab[1379] -#define __pyx_n_u_TA_CMO_Open __pyx_string_tab[1380] -#define __pyx_n_u_TA_CMO_OpenAndFill __pyx_string_tab[1381] -#define __pyx_n_u_TA_CMO_Peek __pyx_string_tab[1382] -#define __pyx_n_u_TA_CMO_Update __pyx_string_tab[1383] -#define __pyx_n_u_TA_CMO_Value __pyx_string_tab[1384] -#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[1385] -#define __pyx_n_u_TA_COPPOCK_Clone __pyx_string_tab[1386] -#define __pyx_n_u_TA_COPPOCK_Open __pyx_string_tab[1387] -#define __pyx_n_u_TA_COPPOCK_OpenAndFill __pyx_string_tab[1388] -#define __pyx_n_u_TA_COPPOCK_Peek __pyx_string_tab[1389] -#define __pyx_n_u_TA_COPPOCK_Update __pyx_string_tab[1390] -#define __pyx_n_u_TA_COPPOCK_Value __pyx_string_tab[1391] -#define __pyx_n_u_TA_CORREL __pyx_string_tab[1392] -#define __pyx_n_u_TA_CORREL_Clone __pyx_string_tab[1393] -#define __pyx_n_u_TA_CORREL_Open __pyx_string_tab[1394] -#define __pyx_n_u_TA_CORREL_OpenAndFill __pyx_string_tab[1395] -#define __pyx_n_u_TA_CORREL_Peek __pyx_string_tab[1396] -#define __pyx_n_u_TA_CORREL_Update __pyx_string_tab[1397] -#define __pyx_n_u_TA_CORREL_Value __pyx_string_tab[1398] -#define __pyx_n_u_TA_COS __pyx_string_tab[1399] -#define __pyx_n_u_TA_COSH __pyx_string_tab[1400] -#define __pyx_n_u_TA_COSH_Clone __pyx_string_tab[1401] -#define __pyx_n_u_TA_COSH_Open __pyx_string_tab[1402] -#define __pyx_n_u_TA_COSH_OpenAndFill __pyx_string_tab[1403] -#define __pyx_n_u_TA_COSH_Peek __pyx_string_tab[1404] -#define __pyx_n_u_TA_COSH_Update __pyx_string_tab[1405] -#define __pyx_n_u_TA_COSH_Value __pyx_string_tab[1406] -#define __pyx_n_u_TA_COS_Clone __pyx_string_tab[1407] -#define __pyx_n_u_TA_COS_Open __pyx_string_tab[1408] -#define __pyx_n_u_TA_COS_OpenAndFill __pyx_string_tab[1409] -#define __pyx_n_u_TA_COS_Peek __pyx_string_tab[1410] -#define __pyx_n_u_TA_COS_Update __pyx_string_tab[1411] -#define __pyx_n_u_TA_COS_Value __pyx_string_tab[1412] -#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[1413] -#define __pyx_n_u_TA_CUMSUM_Clone __pyx_string_tab[1414] -#define __pyx_n_u_TA_CUMSUM_Open __pyx_string_tab[1415] -#define __pyx_n_u_TA_CUMSUM_OpenAndFill __pyx_string_tab[1416] -#define __pyx_n_u_TA_CUMSUM_Peek __pyx_string_tab[1417] -#define __pyx_n_u_TA_CUMSUM_Update __pyx_string_tab[1418] -#define __pyx_n_u_TA_CUMSUM_Value __pyx_string_tab[1419] -#define __pyx_n_u_TA_CVI __pyx_string_tab[1420] -#define __pyx_n_u_TA_CVI_Clone __pyx_string_tab[1421] -#define __pyx_n_u_TA_CVI_Open __pyx_string_tab[1422] -#define __pyx_n_u_TA_CVI_OpenAndFill __pyx_string_tab[1423] -#define __pyx_n_u_TA_CVI_Peek __pyx_string_tab[1424] -#define __pyx_n_u_TA_CVI_Update __pyx_string_tab[1425] -#define __pyx_n_u_TA_CVI_Value __pyx_string_tab[1426] -#define __pyx_n_u_TA_DEMA __pyx_string_tab[1427] -#define __pyx_n_u_TA_DEMA_Clone __pyx_string_tab[1428] -#define __pyx_n_u_TA_DEMA_Open __pyx_string_tab[1429] -#define __pyx_n_u_TA_DEMA_OpenAndFill __pyx_string_tab[1430] -#define __pyx_n_u_TA_DEMA_Peek __pyx_string_tab[1431] -#define __pyx_n_u_TA_DEMA_Update __pyx_string_tab[1432] -#define __pyx_n_u_TA_DEMA_Value __pyx_string_tab[1433] -#define __pyx_n_u_TA_DIV __pyx_string_tab[1434] -#define __pyx_n_u_TA_DIV_Clone __pyx_string_tab[1435] -#define __pyx_n_u_TA_DIV_Open __pyx_string_tab[1436] -#define __pyx_n_u_TA_DIV_OpenAndFill __pyx_string_tab[1437] -#define __pyx_n_u_TA_DIV_Peek __pyx_string_tab[1438] -#define __pyx_n_u_TA_DIV_Update __pyx_string_tab[1439] -#define __pyx_n_u_TA_DIV_Value __pyx_string_tab[1440] -#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[1441] -#define __pyx_n_u_TA_DONCHIAN_Clone __pyx_string_tab[1442] -#define __pyx_n_u_TA_DONCHIAN_Open __pyx_string_tab[1443] -#define __pyx_n_u_TA_DONCHIAN_OpenAndFill __pyx_string_tab[1444] -#define __pyx_n_u_TA_DONCHIAN_Peek __pyx_string_tab[1445] -#define __pyx_n_u_TA_DONCHIAN_Update __pyx_string_tab[1446] -#define __pyx_n_u_TA_DONCHIAN_Value __pyx_string_tab[1447] -#define __pyx_n_u_TA_DPO __pyx_string_tab[1448] -#define __pyx_n_u_TA_DPO_Clone __pyx_string_tab[1449] -#define __pyx_n_u_TA_DPO_Open __pyx_string_tab[1450] -#define __pyx_n_u_TA_DPO_OpenAndFill __pyx_string_tab[1451] -#define __pyx_n_u_TA_DPO_Peek __pyx_string_tab[1452] -#define __pyx_n_u_TA_DPO_Update __pyx_string_tab[1453] -#define __pyx_n_u_TA_DPO_Value __pyx_string_tab[1454] -#define __pyx_n_u_TA_DX __pyx_string_tab[1455] -#define __pyx_n_u_TA_DX_Clone __pyx_string_tab[1456] -#define __pyx_n_u_TA_DX_Open __pyx_string_tab[1457] -#define __pyx_n_u_TA_DX_OpenAndFill __pyx_string_tab[1458] -#define __pyx_n_u_TA_DX_Peek __pyx_string_tab[1459] -#define __pyx_n_u_TA_DX_Update __pyx_string_tab[1460] -#define __pyx_n_u_TA_DX_Value __pyx_string_tab[1461] -#define __pyx_n_u_TA_EFI __pyx_string_tab[1462] -#define __pyx_n_u_TA_EFI_Clone __pyx_string_tab[1463] -#define __pyx_n_u_TA_EFI_Open __pyx_string_tab[1464] -#define __pyx_n_u_TA_EFI_OpenAndFill __pyx_string_tab[1465] -#define __pyx_n_u_TA_EFI_Peek __pyx_string_tab[1466] -#define __pyx_n_u_TA_EFI_Update __pyx_string_tab[1467] -#define __pyx_n_u_TA_EFI_Value __pyx_string_tab[1468] -#define __pyx_n_u_TA_EMA __pyx_string_tab[1469] -#define __pyx_n_u_TA_EMA_Clone __pyx_string_tab[1470] -#define __pyx_n_u_TA_EMA_Open __pyx_string_tab[1471] -#define __pyx_n_u_TA_EMA_OpenAndFill __pyx_string_tab[1472] -#define __pyx_n_u_TA_EMA_Peek __pyx_string_tab[1473] -#define __pyx_n_u_TA_EMA_Update __pyx_string_tab[1474] -#define __pyx_n_u_TA_EMA_Value __pyx_string_tab[1475] -#define __pyx_n_u_TA_ER __pyx_string_tab[1476] -#define __pyx_n_u_TA_ERI __pyx_string_tab[1477] -#define __pyx_n_u_TA_ERI_Clone __pyx_string_tab[1478] -#define __pyx_n_u_TA_ERI_Open __pyx_string_tab[1479] -#define __pyx_n_u_TA_ERI_OpenAndFill __pyx_string_tab[1480] -#define __pyx_n_u_TA_ERI_Peek __pyx_string_tab[1481] -#define __pyx_n_u_TA_ERI_Update __pyx_string_tab[1482] -#define __pyx_n_u_TA_ERI_Value __pyx_string_tab[1483] -#define __pyx_n_u_TA_ER_Clone __pyx_string_tab[1484] -#define __pyx_n_u_TA_ER_Open __pyx_string_tab[1485] -#define __pyx_n_u_TA_ER_OpenAndFill __pyx_string_tab[1486] -#define __pyx_n_u_TA_ER_Peek __pyx_string_tab[1487] -#define __pyx_n_u_TA_ER_Update __pyx_string_tab[1488] -#define __pyx_n_u_TA_ER_Value __pyx_string_tab[1489] -#define __pyx_n_u_TA_EXP __pyx_string_tab[1490] -#define __pyx_n_u_TA_EXP_Clone __pyx_string_tab[1491] -#define __pyx_n_u_TA_EXP_Open __pyx_string_tab[1492] -#define __pyx_n_u_TA_EXP_OpenAndFill __pyx_string_tab[1493] -#define __pyx_n_u_TA_EXP_Peek __pyx_string_tab[1494] -#define __pyx_n_u_TA_EXP_Update __pyx_string_tab[1495] -#define __pyx_n_u_TA_EXP_Value __pyx_string_tab[1496] -#define __pyx_n_u_TA_FLOOR __pyx_string_tab[1497] -#define __pyx_n_u_TA_FLOOR_Clone __pyx_string_tab[1498] -#define __pyx_n_u_TA_FLOOR_Open __pyx_string_tab[1499] -#define __pyx_n_u_TA_FLOOR_OpenAndFill __pyx_string_tab[1500] -#define __pyx_n_u_TA_FLOOR_Peek __pyx_string_tab[1501] -#define __pyx_n_u_TA_FLOOR_Update __pyx_string_tab[1502] -#define __pyx_n_u_TA_FLOOR_Value __pyx_string_tab[1503] -#define __pyx_n_u_TA_FOSC __pyx_string_tab[1504] -#define __pyx_n_u_TA_FOSC_Clone __pyx_string_tab[1505] -#define __pyx_n_u_TA_FOSC_Open __pyx_string_tab[1506] -#define __pyx_n_u_TA_FOSC_OpenAndFill __pyx_string_tab[1507] -#define __pyx_n_u_TA_FOSC_Peek __pyx_string_tab[1508] -#define __pyx_n_u_TA_FOSC_Update __pyx_string_tab[1509] -#define __pyx_n_u_TA_FOSC_Value __pyx_string_tab[1510] -#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[1511] -#define __pyx_n_u_TA_FRACTAL_Clone __pyx_string_tab[1512] -#define __pyx_n_u_TA_FRACTAL_Open __pyx_string_tab[1513] -#define __pyx_n_u_TA_FRACTAL_OpenAndFill __pyx_string_tab[1514] -#define __pyx_n_u_TA_FRACTAL_Peek __pyx_string_tab[1515] -#define __pyx_n_u_TA_FRACTAL_Update __pyx_string_tab[1516] -#define __pyx_n_u_TA_FRACTAL_Value __pyx_string_tab[1517] -#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[1518] -#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[1519] -#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[1520] -#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[1521] -#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[1522] -#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[1523] -#define __pyx_n_u_TA_GetLookback __pyx_string_tab[1524] -#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[1525] -#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[1526] -#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[1527] -#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[1528] -#define __pyx_n_u_TA_HA __pyx_string_tab[1529] -#define __pyx_n_u_TA_HA_Clone __pyx_string_tab[1530] -#define __pyx_n_u_TA_HA_Open __pyx_string_tab[1531] -#define __pyx_n_u_TA_HA_OpenAndFill __pyx_string_tab[1532] -#define __pyx_n_u_TA_HA_Peek __pyx_string_tab[1533] -#define __pyx_n_u_TA_HA_Update __pyx_string_tab[1534] -#define __pyx_n_u_TA_HA_Value __pyx_string_tab[1535] -#define __pyx_n_u_TA_HMA __pyx_string_tab[1536] -#define __pyx_n_u_TA_HMA_Clone __pyx_string_tab[1537] -#define __pyx_n_u_TA_HMA_Open __pyx_string_tab[1538] -#define __pyx_n_u_TA_HMA_OpenAndFill __pyx_string_tab[1539] -#define __pyx_n_u_TA_HMA_Peek __pyx_string_tab[1540] -#define __pyx_n_u_TA_HMA_Update __pyx_string_tab[1541] -#define __pyx_n_u_TA_HMA_Value __pyx_string_tab[1542] -#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[1543] -#define __pyx_n_u_TA_HT_DCPERIOD_Clone __pyx_string_tab[1544] -#define __pyx_n_u_TA_HT_DCPERIOD_Open __pyx_string_tab[1545] -#define __pyx_n_u_TA_HT_DCPERIOD_OpenAndFill __pyx_string_tab[1546] -#define __pyx_n_u_TA_HT_DCPERIOD_Peek __pyx_string_tab[1547] -#define __pyx_n_u_TA_HT_DCPERIOD_Update __pyx_string_tab[1548] -#define __pyx_n_u_TA_HT_DCPERIOD_Value __pyx_string_tab[1549] -#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[1550] -#define __pyx_n_u_TA_HT_DCPHASE_Clone __pyx_string_tab[1551] -#define __pyx_n_u_TA_HT_DCPHASE_Open __pyx_string_tab[1552] -#define __pyx_n_u_TA_HT_DCPHASE_OpenAndFill __pyx_string_tab[1553] -#define __pyx_n_u_TA_HT_DCPHASE_Peek __pyx_string_tab[1554] -#define __pyx_n_u_TA_HT_DCPHASE_Update __pyx_string_tab[1555] -#define __pyx_n_u_TA_HT_DCPHASE_Value __pyx_string_tab[1556] -#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[1557] -#define __pyx_n_u_TA_HT_PHASOR_Clone __pyx_string_tab[1558] -#define __pyx_n_u_TA_HT_PHASOR_Open __pyx_string_tab[1559] -#define __pyx_n_u_TA_HT_PHASOR_OpenAndFill __pyx_string_tab[1560] -#define __pyx_n_u_TA_HT_PHASOR_Peek __pyx_string_tab[1561] -#define __pyx_n_u_TA_HT_PHASOR_Update __pyx_string_tab[1562] -#define __pyx_n_u_TA_HT_PHASOR_Value __pyx_string_tab[1563] -#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[1564] -#define __pyx_n_u_TA_HT_SINE_Clone __pyx_string_tab[1565] -#define __pyx_n_u_TA_HT_SINE_Open __pyx_string_tab[1566] -#define __pyx_n_u_TA_HT_SINE_OpenAndFill __pyx_string_tab[1567] -#define __pyx_n_u_TA_HT_SINE_Peek __pyx_string_tab[1568] -#define __pyx_n_u_TA_HT_SINE_Update __pyx_string_tab[1569] -#define __pyx_n_u_TA_HT_SINE_Value __pyx_string_tab[1570] -#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[1571] -#define __pyx_n_u_TA_HT_TRENDLINE_Clone __pyx_string_tab[1572] -#define __pyx_n_u_TA_HT_TRENDLINE_Open __pyx_string_tab[1573] -#define __pyx_n_u_TA_HT_TRENDLINE_OpenAndFill __pyx_string_tab[1574] -#define __pyx_n_u_TA_HT_TRENDLINE_Peek __pyx_string_tab[1575] -#define __pyx_n_u_TA_HT_TRENDLINE_Update __pyx_string_tab[1576] -#define __pyx_n_u_TA_HT_TRENDLINE_Value __pyx_string_tab[1577] -#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[1578] -#define __pyx_n_u_TA_HT_TRENDMODE_Clone __pyx_string_tab[1579] -#define __pyx_n_u_TA_HT_TRENDMODE_Open __pyx_string_tab[1580] -#define __pyx_n_u_TA_HT_TRENDMODE_OpenAndFill __pyx_string_tab[1581] -#define __pyx_n_u_TA_HT_TRENDMODE_Peek __pyx_string_tab[1582] -#define __pyx_n_u_TA_HT_TRENDMODE_Update __pyx_string_tab[1583] -#define __pyx_n_u_TA_HT_TRENDMODE_Value __pyx_string_tab[1584] -#define __pyx_n_u_TA_IMI __pyx_string_tab[1585] -#define __pyx_n_u_TA_IMI_Clone __pyx_string_tab[1586] -#define __pyx_n_u_TA_IMI_Open __pyx_string_tab[1587] -#define __pyx_n_u_TA_IMI_OpenAndFill __pyx_string_tab[1588] -#define __pyx_n_u_TA_IMI_Peek __pyx_string_tab[1589] -#define __pyx_n_u_TA_IMI_Update __pyx_string_tab[1590] -#define __pyx_n_u_TA_IMI_Value __pyx_string_tab[1591] -#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[1592] -#define __pyx_n_u_TA_Initialize __pyx_string_tab[1593] -#define __pyx_n_u_TA_KAMA __pyx_string_tab[1594] -#define __pyx_n_u_TA_KAMA_Clone __pyx_string_tab[1595] -#define __pyx_n_u_TA_KAMA_Open __pyx_string_tab[1596] -#define __pyx_n_u_TA_KAMA_OpenAndFill __pyx_string_tab[1597] -#define __pyx_n_u_TA_KAMA_Peek __pyx_string_tab[1598] -#define __pyx_n_u_TA_KAMA_Update __pyx_string_tab[1599] -#define __pyx_n_u_TA_KAMA_Value __pyx_string_tab[1600] -#define __pyx_n_u_TA_KC __pyx_string_tab[1601] -#define __pyx_n_u_TA_KC_Clone __pyx_string_tab[1602] -#define __pyx_n_u_TA_KC_Open __pyx_string_tab[1603] -#define __pyx_n_u_TA_KC_OpenAndFill __pyx_string_tab[1604] -#define __pyx_n_u_TA_KC_Peek __pyx_string_tab[1605] -#define __pyx_n_u_TA_KC_Update __pyx_string_tab[1606] -#define __pyx_n_u_TA_KC_Value __pyx_string_tab[1607] -#define __pyx_n_u_TA_KDJ __pyx_string_tab[1608] -#define __pyx_n_u_TA_KDJ_Clone __pyx_string_tab[1609] -#define __pyx_n_u_TA_KDJ_Open __pyx_string_tab[1610] -#define __pyx_n_u_TA_KDJ_OpenAndFill __pyx_string_tab[1611] -#define __pyx_n_u_TA_KDJ_Peek __pyx_string_tab[1612] -#define __pyx_n_u_TA_KDJ_Update __pyx_string_tab[1613] -#define __pyx_n_u_TA_KDJ_Value __pyx_string_tab[1614] -#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[1615] -#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[1616] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Clone __pyx_string_tab[1617] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Open __pyx_string_tab[1618] -#define __pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill __pyx_string_tab[1619] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Peek __pyx_string_tab[1620] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Update __pyx_string_tab[1621] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Value __pyx_string_tab[1622] -#define __pyx_n_u_TA_LINEARREG_Clone __pyx_string_tab[1623] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[1624] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Clone __pyx_string_tab[1625] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Open __pyx_string_tab[1626] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi __pyx_string_tab[1627] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Peek __pyx_string_tab[1628] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Update __pyx_string_tab[1629] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Value __pyx_string_tab[1630] -#define __pyx_n_u_TA_LINEARREG_Open __pyx_string_tab[1631] -#define __pyx_n_u_TA_LINEARREG_OpenAndFill __pyx_string_tab[1632] -#define __pyx_n_u_TA_LINEARREG_Peek __pyx_string_tab[1633] -#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[1634] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Clone __pyx_string_tab[1635] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Open __pyx_string_tab[1636] -#define __pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill __pyx_string_tab[1637] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Peek __pyx_string_tab[1638] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Update __pyx_string_tab[1639] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Value __pyx_string_tab[1640] -#define __pyx_n_u_TA_LINEARREG_Update __pyx_string_tab[1641] -#define __pyx_n_u_TA_LINEARREG_Value __pyx_string_tab[1642] -#define __pyx_n_u_TA_LN __pyx_string_tab[1643] -#define __pyx_n_u_TA_LN_Clone __pyx_string_tab[1644] -#define __pyx_n_u_TA_LN_Open __pyx_string_tab[1645] -#define __pyx_n_u_TA_LN_OpenAndFill __pyx_string_tab[1646] -#define __pyx_n_u_TA_LN_Peek __pyx_string_tab[1647] -#define __pyx_n_u_TA_LN_Update __pyx_string_tab[1648] -#define __pyx_n_u_TA_LN_Value __pyx_string_tab[1649] -#define __pyx_n_u_TA_LOG10 __pyx_string_tab[1650] -#define __pyx_n_u_TA_LOG10_Clone __pyx_string_tab[1651] -#define __pyx_n_u_TA_LOG10_Open __pyx_string_tab[1652] -#define __pyx_n_u_TA_LOG10_OpenAndFill __pyx_string_tab[1653] -#define __pyx_n_u_TA_LOG10_Peek __pyx_string_tab[1654] -#define __pyx_n_u_TA_LOG10_Update __pyx_string_tab[1655] -#define __pyx_n_u_TA_LOG10_Value __pyx_string_tab[1656] -#define __pyx_n_u_TA_MA __pyx_string_tab[1657] -#define __pyx_n_u_TA_MACD __pyx_string_tab[1658] -#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[1659] -#define __pyx_n_u_TA_MACDEXT_Clone __pyx_string_tab[1660] -#define __pyx_n_u_TA_MACDEXT_Open __pyx_string_tab[1661] -#define __pyx_n_u_TA_MACDEXT_OpenAndFill __pyx_string_tab[1662] -#define __pyx_n_u_TA_MACDEXT_Peek __pyx_string_tab[1663] -#define __pyx_n_u_TA_MACDEXT_Update __pyx_string_tab[1664] -#define __pyx_n_u_TA_MACDEXT_Value __pyx_string_tab[1665] -#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[1666] -#define __pyx_n_u_TA_MACDFIX_Clone __pyx_string_tab[1667] -#define __pyx_n_u_TA_MACDFIX_Open __pyx_string_tab[1668] -#define __pyx_n_u_TA_MACDFIX_OpenAndFill __pyx_string_tab[1669] -#define __pyx_n_u_TA_MACDFIX_Peek __pyx_string_tab[1670] -#define __pyx_n_u_TA_MACDFIX_Update __pyx_string_tab[1671] -#define __pyx_n_u_TA_MACDFIX_Value __pyx_string_tab[1672] -#define __pyx_n_u_TA_MACD_Clone __pyx_string_tab[1673] -#define __pyx_n_u_TA_MACD_Open __pyx_string_tab[1674] -#define __pyx_n_u_TA_MACD_OpenAndFill __pyx_string_tab[1675] -#define __pyx_n_u_TA_MACD_Peek __pyx_string_tab[1676] -#define __pyx_n_u_TA_MACD_Update __pyx_string_tab[1677] -#define __pyx_n_u_TA_MACD_Value __pyx_string_tab[1678] -#define __pyx_n_u_TA_MAMA __pyx_string_tab[1679] -#define __pyx_n_u_TA_MAMA_Clone __pyx_string_tab[1680] -#define __pyx_n_u_TA_MAMA_Open __pyx_string_tab[1681] -#define __pyx_n_u_TA_MAMA_OpenAndFill __pyx_string_tab[1682] -#define __pyx_n_u_TA_MAMA_Peek __pyx_string_tab[1683] -#define __pyx_n_u_TA_MAMA_Update __pyx_string_tab[1684] -#define __pyx_n_u_TA_MAMA_Value __pyx_string_tab[1685] -#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[1686] -#define __pyx_n_u_TA_MARKETFI_Clone __pyx_string_tab[1687] -#define __pyx_n_u_TA_MARKETFI_Open __pyx_string_tab[1688] -#define __pyx_n_u_TA_MARKETFI_OpenAndFill __pyx_string_tab[1689] -#define __pyx_n_u_TA_MARKETFI_Peek __pyx_string_tab[1690] -#define __pyx_n_u_TA_MARKETFI_Update __pyx_string_tab[1691] -#define __pyx_n_u_TA_MARKETFI_Value __pyx_string_tab[1692] -#define __pyx_n_u_TA_MASSI __pyx_string_tab[1693] -#define __pyx_n_u_TA_MASSI_Clone __pyx_string_tab[1694] -#define __pyx_n_u_TA_MASSI_Open __pyx_string_tab[1695] -#define __pyx_n_u_TA_MASSI_OpenAndFill __pyx_string_tab[1696] -#define __pyx_n_u_TA_MASSI_Peek __pyx_string_tab[1697] -#define __pyx_n_u_TA_MASSI_Update __pyx_string_tab[1698] -#define __pyx_n_u_TA_MASSI_Value __pyx_string_tab[1699] -#define __pyx_n_u_TA_MAVP __pyx_string_tab[1700] -#define __pyx_n_u_TA_MAVP_Clone __pyx_string_tab[1701] -#define __pyx_n_u_TA_MAVP_Open __pyx_string_tab[1702] -#define __pyx_n_u_TA_MAVP_OpenAndFill __pyx_string_tab[1703] -#define __pyx_n_u_TA_MAVP_Peek __pyx_string_tab[1704] -#define __pyx_n_u_TA_MAVP_Update __pyx_string_tab[1705] -#define __pyx_n_u_TA_MAVP_Value __pyx_string_tab[1706] -#define __pyx_n_u_TA_MAX __pyx_string_tab[1707] -#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[1708] -#define __pyx_n_u_TA_MAXINDEX_Clone __pyx_string_tab[1709] -#define __pyx_n_u_TA_MAXINDEX_Open __pyx_string_tab[1710] -#define __pyx_n_u_TA_MAXINDEX_OpenAndFill __pyx_string_tab[1711] -#define __pyx_n_u_TA_MAXINDEX_Peek __pyx_string_tab[1712] -#define __pyx_n_u_TA_MAXINDEX_Update __pyx_string_tab[1713] -#define __pyx_n_u_TA_MAXINDEX_Value __pyx_string_tab[1714] -#define __pyx_n_u_TA_MAX_Clone __pyx_string_tab[1715] -#define __pyx_n_u_TA_MAX_Open __pyx_string_tab[1716] -#define __pyx_n_u_TA_MAX_OpenAndFill __pyx_string_tab[1717] -#define __pyx_n_u_TA_MAX_Peek __pyx_string_tab[1718] -#define __pyx_n_u_TA_MAX_Update __pyx_string_tab[1719] -#define __pyx_n_u_TA_MAX_Value __pyx_string_tab[1720] -#define __pyx_n_u_TA_MA_Clone __pyx_string_tab[1721] -#define __pyx_n_u_TA_MA_Open __pyx_string_tab[1722] -#define __pyx_n_u_TA_MA_OpenAndFill __pyx_string_tab[1723] -#define __pyx_n_u_TA_MA_Peek __pyx_string_tab[1724] -#define __pyx_n_u_TA_MA_Update __pyx_string_tab[1725] -#define __pyx_n_u_TA_MA_Value __pyx_string_tab[1726] -#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[1727] -#define __pyx_n_u_TA_MEDPRICE_Clone __pyx_string_tab[1728] -#define __pyx_n_u_TA_MEDPRICE_Open __pyx_string_tab[1729] -#define __pyx_n_u_TA_MEDPRICE_OpenAndFill __pyx_string_tab[1730] -#define __pyx_n_u_TA_MEDPRICE_Peek __pyx_string_tab[1731] -#define __pyx_n_u_TA_MEDPRICE_Update __pyx_string_tab[1732] -#define __pyx_n_u_TA_MEDPRICE_Value __pyx_string_tab[1733] -#define __pyx_n_u_TA_MFI __pyx_string_tab[1734] -#define __pyx_n_u_TA_MFI_Clone __pyx_string_tab[1735] -#define __pyx_n_u_TA_MFI_Open __pyx_string_tab[1736] -#define __pyx_n_u_TA_MFI_OpenAndFill __pyx_string_tab[1737] -#define __pyx_n_u_TA_MFI_Peek __pyx_string_tab[1738] -#define __pyx_n_u_TA_MFI_Update __pyx_string_tab[1739] -#define __pyx_n_u_TA_MFI_Value __pyx_string_tab[1740] -#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[1741] -#define __pyx_n_u_TA_MIDPOINT_Clone __pyx_string_tab[1742] -#define __pyx_n_u_TA_MIDPOINT_Open __pyx_string_tab[1743] -#define __pyx_n_u_TA_MIDPOINT_OpenAndFill __pyx_string_tab[1744] -#define __pyx_n_u_TA_MIDPOINT_Peek __pyx_string_tab[1745] -#define __pyx_n_u_TA_MIDPOINT_Update __pyx_string_tab[1746] -#define __pyx_n_u_TA_MIDPOINT_Value __pyx_string_tab[1747] -#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[1748] -#define __pyx_n_u_TA_MIDPRICE_Clone __pyx_string_tab[1749] -#define __pyx_n_u_TA_MIDPRICE_Open __pyx_string_tab[1750] -#define __pyx_n_u_TA_MIDPRICE_OpenAndFill __pyx_string_tab[1751] -#define __pyx_n_u_TA_MIDPRICE_Peek __pyx_string_tab[1752] -#define __pyx_n_u_TA_MIDPRICE_Update __pyx_string_tab[1753] -#define __pyx_n_u_TA_MIDPRICE_Value __pyx_string_tab[1754] -#define __pyx_n_u_TA_MIN __pyx_string_tab[1755] -#define __pyx_n_u_TA_MININDEX __pyx_string_tab[1756] -#define __pyx_n_u_TA_MININDEX_Clone __pyx_string_tab[1757] -#define __pyx_n_u_TA_MININDEX_Open __pyx_string_tab[1758] -#define __pyx_n_u_TA_MININDEX_OpenAndFill __pyx_string_tab[1759] -#define __pyx_n_u_TA_MININDEX_Peek __pyx_string_tab[1760] -#define __pyx_n_u_TA_MININDEX_Update __pyx_string_tab[1761] -#define __pyx_n_u_TA_MININDEX_Value __pyx_string_tab[1762] -#define __pyx_n_u_TA_MINMAX __pyx_string_tab[1763] -#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[1764] -#define __pyx_n_u_TA_MINMAXINDEX_Clone __pyx_string_tab[1765] -#define __pyx_n_u_TA_MINMAXINDEX_Open __pyx_string_tab[1766] -#define __pyx_n_u_TA_MINMAXINDEX_OpenAndFill __pyx_string_tab[1767] -#define __pyx_n_u_TA_MINMAXINDEX_Peek __pyx_string_tab[1768] -#define __pyx_n_u_TA_MINMAXINDEX_Update __pyx_string_tab[1769] -#define __pyx_n_u_TA_MINMAXINDEX_Value __pyx_string_tab[1770] -#define __pyx_n_u_TA_MINMAX_Clone __pyx_string_tab[1771] -#define __pyx_n_u_TA_MINMAX_Open __pyx_string_tab[1772] -#define __pyx_n_u_TA_MINMAX_OpenAndFill __pyx_string_tab[1773] -#define __pyx_n_u_TA_MINMAX_Peek __pyx_string_tab[1774] -#define __pyx_n_u_TA_MINMAX_Update __pyx_string_tab[1775] -#define __pyx_n_u_TA_MINMAX_Value __pyx_string_tab[1776] -#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[1777] -#define __pyx_n_u_TA_MINUS_DI_Clone __pyx_string_tab[1778] -#define __pyx_n_u_TA_MINUS_DI_Open __pyx_string_tab[1779] -#define __pyx_n_u_TA_MINUS_DI_OpenAndFill __pyx_string_tab[1780] -#define __pyx_n_u_TA_MINUS_DI_Peek __pyx_string_tab[1781] -#define __pyx_n_u_TA_MINUS_DI_Update __pyx_string_tab[1782] -#define __pyx_n_u_TA_MINUS_DI_Value __pyx_string_tab[1783] -#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[1784] -#define __pyx_n_u_TA_MINUS_DM_Clone __pyx_string_tab[1785] -#define __pyx_n_u_TA_MINUS_DM_Open __pyx_string_tab[1786] -#define __pyx_n_u_TA_MINUS_DM_OpenAndFill __pyx_string_tab[1787] -#define __pyx_n_u_TA_MINUS_DM_Peek __pyx_string_tab[1788] -#define __pyx_n_u_TA_MINUS_DM_Update __pyx_string_tab[1789] -#define __pyx_n_u_TA_MINUS_DM_Value __pyx_string_tab[1790] -#define __pyx_n_u_TA_MIN_Clone __pyx_string_tab[1791] -#define __pyx_n_u_TA_MIN_Open __pyx_string_tab[1792] -#define __pyx_n_u_TA_MIN_OpenAndFill __pyx_string_tab[1793] -#define __pyx_n_u_TA_MIN_Peek __pyx_string_tab[1794] -#define __pyx_n_u_TA_MIN_Update __pyx_string_tab[1795] -#define __pyx_n_u_TA_MIN_Value __pyx_string_tab[1796] -#define __pyx_n_u_TA_MOM __pyx_string_tab[1797] -#define __pyx_n_u_TA_MOM_Clone __pyx_string_tab[1798] -#define __pyx_n_u_TA_MOM_Open __pyx_string_tab[1799] -#define __pyx_n_u_TA_MOM_OpenAndFill __pyx_string_tab[1800] -#define __pyx_n_u_TA_MOM_Peek __pyx_string_tab[1801] -#define __pyx_n_u_TA_MOM_Update __pyx_string_tab[1802] -#define __pyx_n_u_TA_MOM_Value __pyx_string_tab[1803] -#define __pyx_n_u_TA_MULT __pyx_string_tab[1804] -#define __pyx_n_u_TA_MULT_Clone __pyx_string_tab[1805] -#define __pyx_n_u_TA_MULT_Open __pyx_string_tab[1806] -#define __pyx_n_u_TA_MULT_OpenAndFill __pyx_string_tab[1807] -#define __pyx_n_u_TA_MULT_Peek __pyx_string_tab[1808] -#define __pyx_n_u_TA_MULT_Update __pyx_string_tab[1809] -#define __pyx_n_u_TA_MULT_Value __pyx_string_tab[1810] -#define __pyx_n_u_TA_NATR __pyx_string_tab[1811] -#define __pyx_n_u_TA_NATR_Clone __pyx_string_tab[1812] -#define __pyx_n_u_TA_NATR_Open __pyx_string_tab[1813] -#define __pyx_n_u_TA_NATR_OpenAndFill __pyx_string_tab[1814] -#define __pyx_n_u_TA_NATR_Peek __pyx_string_tab[1815] -#define __pyx_n_u_TA_NATR_Update __pyx_string_tab[1816] -#define __pyx_n_u_TA_NATR_Value __pyx_string_tab[1817] -#define __pyx_n_u_TA_NVI __pyx_string_tab[1818] -#define __pyx_n_u_TA_NVI_Clone __pyx_string_tab[1819] -#define __pyx_n_u_TA_NVI_Open __pyx_string_tab[1820] -#define __pyx_n_u_TA_NVI_OpenAndFill __pyx_string_tab[1821] -#define __pyx_n_u_TA_NVI_Peek __pyx_string_tab[1822] -#define __pyx_n_u_TA_NVI_Update __pyx_string_tab[1823] -#define __pyx_n_u_TA_NVI_Value __pyx_string_tab[1824] -#define __pyx_n_u_TA_OBV __pyx_string_tab[1825] -#define __pyx_n_u_TA_OBV_Clone __pyx_string_tab[1826] -#define __pyx_n_u_TA_OBV_Open __pyx_string_tab[1827] -#define __pyx_n_u_TA_OBV_OpenAndFill __pyx_string_tab[1828] -#define __pyx_n_u_TA_OBV_Peek __pyx_string_tab[1829] -#define __pyx_n_u_TA_OBV_Update __pyx_string_tab[1830] -#define __pyx_n_u_TA_OBV_Value __pyx_string_tab[1831] -#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[1832] -#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[1833] -#define __pyx_n_u_TA_PERCENTILE_Clone __pyx_string_tab[1834] -#define __pyx_n_u_TA_PERCENTILE_Open __pyx_string_tab[1835] -#define __pyx_n_u_TA_PERCENTILE_OpenAndFill __pyx_string_tab[1836] -#define __pyx_n_u_TA_PERCENTILE_Peek __pyx_string_tab[1837] -#define __pyx_n_u_TA_PERCENTILE_Update __pyx_string_tab[1838] -#define __pyx_n_u_TA_PERCENTILE_Value __pyx_string_tab[1839] -#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[1840] -#define __pyx_n_u_TA_PERCENTRANK_Clone __pyx_string_tab[1841] -#define __pyx_n_u_TA_PERCENTRANK_Open __pyx_string_tab[1842] -#define __pyx_n_u_TA_PERCENTRANK_OpenAndFill __pyx_string_tab[1843] -#define __pyx_n_u_TA_PERCENTRANK_Peek __pyx_string_tab[1844] -#define __pyx_n_u_TA_PERCENTRANK_Update __pyx_string_tab[1845] -#define __pyx_n_u_TA_PERCENTRANK_Value __pyx_string_tab[1846] -#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[1847] -#define __pyx_n_u_TA_PLUS_DI_Clone __pyx_string_tab[1848] -#define __pyx_n_u_TA_PLUS_DI_Open __pyx_string_tab[1849] -#define __pyx_n_u_TA_PLUS_DI_OpenAndFill __pyx_string_tab[1850] -#define __pyx_n_u_TA_PLUS_DI_Peek __pyx_string_tab[1851] -#define __pyx_n_u_TA_PLUS_DI_Update __pyx_string_tab[1852] -#define __pyx_n_u_TA_PLUS_DI_Value __pyx_string_tab[1853] -#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[1854] -#define __pyx_n_u_TA_PLUS_DM_Clone __pyx_string_tab[1855] -#define __pyx_n_u_TA_PLUS_DM_Open __pyx_string_tab[1856] -#define __pyx_n_u_TA_PLUS_DM_OpenAndFill __pyx_string_tab[1857] -#define __pyx_n_u_TA_PLUS_DM_Peek __pyx_string_tab[1858] -#define __pyx_n_u_TA_PLUS_DM_Update __pyx_string_tab[1859] -#define __pyx_n_u_TA_PLUS_DM_Value __pyx_string_tab[1860] -#define __pyx_n_u_TA_PPO __pyx_string_tab[1861] -#define __pyx_n_u_TA_PPO_Clone __pyx_string_tab[1862] -#define __pyx_n_u_TA_PPO_Open __pyx_string_tab[1863] -#define __pyx_n_u_TA_PPO_OpenAndFill __pyx_string_tab[1864] -#define __pyx_n_u_TA_PPO_Peek __pyx_string_tab[1865] -#define __pyx_n_u_TA_PPO_Update __pyx_string_tab[1866] -#define __pyx_n_u_TA_PPO_Value __pyx_string_tab[1867] -#define __pyx_n_u_TA_PVI __pyx_string_tab[1868] -#define __pyx_n_u_TA_PVI_Clone __pyx_string_tab[1869] -#define __pyx_n_u_TA_PVI_Open __pyx_string_tab[1870] -#define __pyx_n_u_TA_PVI_OpenAndFill __pyx_string_tab[1871] -#define __pyx_n_u_TA_PVI_Peek __pyx_string_tab[1872] -#define __pyx_n_u_TA_PVI_Update __pyx_string_tab[1873] -#define __pyx_n_u_TA_PVI_Value __pyx_string_tab[1874] -#define __pyx_n_u_TA_PVO __pyx_string_tab[1875] -#define __pyx_n_u_TA_PVO_Clone __pyx_string_tab[1876] -#define __pyx_n_u_TA_PVO_Open __pyx_string_tab[1877] -#define __pyx_n_u_TA_PVO_OpenAndFill __pyx_string_tab[1878] -#define __pyx_n_u_TA_PVO_Peek __pyx_string_tab[1879] -#define __pyx_n_u_TA_PVO_Update __pyx_string_tab[1880] -#define __pyx_n_u_TA_PVO_Value __pyx_string_tab[1881] -#define __pyx_n_u_TA_PVT __pyx_string_tab[1882] -#define __pyx_n_u_TA_PVT_Clone __pyx_string_tab[1883] -#define __pyx_n_u_TA_PVT_Open __pyx_string_tab[1884] -#define __pyx_n_u_TA_PVT_OpenAndFill __pyx_string_tab[1885] -#define __pyx_n_u_TA_PVT_Peek __pyx_string_tab[1886] -#define __pyx_n_u_TA_PVT_Update __pyx_string_tab[1887] -#define __pyx_n_u_TA_PVT_Value __pyx_string_tab[1888] -#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[1889] -#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[1890] -#define __pyx_n_u_TA_QSTICK __pyx_string_tab[1891] -#define __pyx_n_u_TA_QSTICK_Clone __pyx_string_tab[1892] -#define __pyx_n_u_TA_QSTICK_Open __pyx_string_tab[1893] -#define __pyx_n_u_TA_QSTICK_OpenAndFill __pyx_string_tab[1894] -#define __pyx_n_u_TA_QSTICK_Peek __pyx_string_tab[1895] -#define __pyx_n_u_TA_QSTICK_Update __pyx_string_tab[1896] -#define __pyx_n_u_TA_QSTICK_Value __pyx_string_tab[1897] -#define __pyx_n_u_TA_RMA __pyx_string_tab[1898] -#define __pyx_n_u_TA_RMA_Clone __pyx_string_tab[1899] -#define __pyx_n_u_TA_RMA_Open __pyx_string_tab[1900] -#define __pyx_n_u_TA_RMA_OpenAndFill __pyx_string_tab[1901] -#define __pyx_n_u_TA_RMA_Peek __pyx_string_tab[1902] -#define __pyx_n_u_TA_RMA_Update __pyx_string_tab[1903] -#define __pyx_n_u_TA_RMA_Value __pyx_string_tab[1904] -#define __pyx_n_u_TA_ROC __pyx_string_tab[1905] -#define __pyx_n_u_TA_ROCP __pyx_string_tab[1906] -#define __pyx_n_u_TA_ROCP_Clone __pyx_string_tab[1907] -#define __pyx_n_u_TA_ROCP_Open __pyx_string_tab[1908] -#define __pyx_n_u_TA_ROCP_OpenAndFill __pyx_string_tab[1909] -#define __pyx_n_u_TA_ROCP_Peek __pyx_string_tab[1910] -#define __pyx_n_u_TA_ROCP_Update __pyx_string_tab[1911] -#define __pyx_n_u_TA_ROCP_Value __pyx_string_tab[1912] -#define __pyx_n_u_TA_ROCR __pyx_string_tab[1913] -#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[1914] -#define __pyx_n_u_TA_ROCR100_Clone __pyx_string_tab[1915] -#define __pyx_n_u_TA_ROCR100_Open __pyx_string_tab[1916] -#define __pyx_n_u_TA_ROCR100_OpenAndFill __pyx_string_tab[1917] -#define __pyx_n_u_TA_ROCR100_Peek __pyx_string_tab[1918] -#define __pyx_n_u_TA_ROCR100_Update __pyx_string_tab[1919] -#define __pyx_n_u_TA_ROCR100_Value __pyx_string_tab[1920] -#define __pyx_n_u_TA_ROCR_Clone __pyx_string_tab[1921] -#define __pyx_n_u_TA_ROCR_Open __pyx_string_tab[1922] -#define __pyx_n_u_TA_ROCR_OpenAndFill __pyx_string_tab[1923] -#define __pyx_n_u_TA_ROCR_Peek __pyx_string_tab[1924] -#define __pyx_n_u_TA_ROCR_Update __pyx_string_tab[1925] -#define __pyx_n_u_TA_ROCR_Value __pyx_string_tab[1926] -#define __pyx_n_u_TA_ROC_Clone __pyx_string_tab[1927] -#define __pyx_n_u_TA_ROC_Open __pyx_string_tab[1928] -#define __pyx_n_u_TA_ROC_OpenAndFill __pyx_string_tab[1929] -#define __pyx_n_u_TA_ROC_Peek __pyx_string_tab[1930] -#define __pyx_n_u_TA_ROC_Update __pyx_string_tab[1931] -#define __pyx_n_u_TA_ROC_Value __pyx_string_tab[1932] -#define __pyx_n_u_TA_RSI __pyx_string_tab[1933] -#define __pyx_n_u_TA_RSI_Clone __pyx_string_tab[1934] -#define __pyx_n_u_TA_RSI_Open __pyx_string_tab[1935] -#define __pyx_n_u_TA_RSI_OpenAndFill __pyx_string_tab[1936] -#define __pyx_n_u_TA_RSI_Peek __pyx_string_tab[1937] -#define __pyx_n_u_TA_RSI_Update __pyx_string_tab[1938] -#define __pyx_n_u_TA_RSI_Value __pyx_string_tab[1939] -#define __pyx_n_u_TA_RVI __pyx_string_tab[1940] -#define __pyx_n_u_TA_RVI_Clone __pyx_string_tab[1941] -#define __pyx_n_u_TA_RVI_Open __pyx_string_tab[1942] -#define __pyx_n_u_TA_RVI_OpenAndFill __pyx_string_tab[1943] -#define __pyx_n_u_TA_RVI_Peek __pyx_string_tab[1944] -#define __pyx_n_u_TA_RVI_Update __pyx_string_tab[1945] -#define __pyx_n_u_TA_RVI_Value __pyx_string_tab[1946] -#define __pyx_n_u_TA_RVOL __pyx_string_tab[1947] -#define __pyx_n_u_TA_RVOL_Clone __pyx_string_tab[1948] -#define __pyx_n_u_TA_RVOL_Open __pyx_string_tab[1949] -#define __pyx_n_u_TA_RVOL_OpenAndFill __pyx_string_tab[1950] -#define __pyx_n_u_TA_RVOL_Peek __pyx_string_tab[1951] -#define __pyx_n_u_TA_RVOL_Update __pyx_string_tab[1952] -#define __pyx_n_u_TA_RVOL_Value __pyx_string_tab[1953] -#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[1954] -#define __pyx_n_u_TA_SAR __pyx_string_tab[1955] -#define __pyx_n_u_TA_SAREXT __pyx_string_tab[1956] -#define __pyx_n_u_TA_SAREXT_Clone __pyx_string_tab[1957] -#define __pyx_n_u_TA_SAREXT_Open __pyx_string_tab[1958] -#define __pyx_n_u_TA_SAREXT_OpenAndFill __pyx_string_tab[1959] -#define __pyx_n_u_TA_SAREXT_Peek __pyx_string_tab[1960] -#define __pyx_n_u_TA_SAREXT_Update __pyx_string_tab[1961] -#define __pyx_n_u_TA_SAREXT_Value __pyx_string_tab[1962] -#define __pyx_n_u_TA_SAR_Clone __pyx_string_tab[1963] -#define __pyx_n_u_TA_SAR_Open __pyx_string_tab[1964] -#define __pyx_n_u_TA_SAR_OpenAndFill __pyx_string_tab[1965] -#define __pyx_n_u_TA_SAR_Peek __pyx_string_tab[1966] -#define __pyx_n_u_TA_SAR_Update __pyx_string_tab[1967] -#define __pyx_n_u_TA_SAR_Value __pyx_string_tab[1968] -#define __pyx_n_u_TA_SIN __pyx_string_tab[1969] -#define __pyx_n_u_TA_SINH __pyx_string_tab[1970] -#define __pyx_n_u_TA_SINH_Clone __pyx_string_tab[1971] -#define __pyx_n_u_TA_SINH_Open __pyx_string_tab[1972] -#define __pyx_n_u_TA_SINH_OpenAndFill __pyx_string_tab[1973] -#define __pyx_n_u_TA_SINH_Peek __pyx_string_tab[1974] -#define __pyx_n_u_TA_SINH_Update __pyx_string_tab[1975] -#define __pyx_n_u_TA_SINH_Value __pyx_string_tab[1976] -#define __pyx_n_u_TA_SIN_Clone __pyx_string_tab[1977] -#define __pyx_n_u_TA_SIN_Open __pyx_string_tab[1978] -#define __pyx_n_u_TA_SIN_OpenAndFill __pyx_string_tab[1979] -#define __pyx_n_u_TA_SIN_Peek __pyx_string_tab[1980] -#define __pyx_n_u_TA_SIN_Update __pyx_string_tab[1981] -#define __pyx_n_u_TA_SIN_Value __pyx_string_tab[1982] -#define __pyx_n_u_TA_SMA __pyx_string_tab[1983] -#define __pyx_n_u_TA_SMA_Clone __pyx_string_tab[1984] -#define __pyx_n_u_TA_SMA_Open __pyx_string_tab[1985] -#define __pyx_n_u_TA_SMA_OpenAndFill __pyx_string_tab[1986] -#define __pyx_n_u_TA_SMA_Peek __pyx_string_tab[1987] -#define __pyx_n_u_TA_SMA_Update __pyx_string_tab[1988] -#define __pyx_n_u_TA_SMA_Value __pyx_string_tab[1989] -#define __pyx_n_u_TA_SMI __pyx_string_tab[1990] -#define __pyx_n_u_TA_SMI_Clone __pyx_string_tab[1991] -#define __pyx_n_u_TA_SMI_Open __pyx_string_tab[1992] -#define __pyx_n_u_TA_SMI_OpenAndFill __pyx_string_tab[1993] -#define __pyx_n_u_TA_SMI_Peek __pyx_string_tab[1994] -#define __pyx_n_u_TA_SMI_Update __pyx_string_tab[1995] -#define __pyx_n_u_TA_SMI_Value __pyx_string_tab[1996] -#define __pyx_n_u_TA_SQRT __pyx_string_tab[1997] -#define __pyx_n_u_TA_SQRT_Clone __pyx_string_tab[1998] -#define __pyx_n_u_TA_SQRT_Open __pyx_string_tab[1999] -#define __pyx_n_u_TA_SQRT_OpenAndFill __pyx_string_tab[2000] -#define __pyx_n_u_TA_SQRT_Peek __pyx_string_tab[2001] -#define __pyx_n_u_TA_SQRT_Update __pyx_string_tab[2002] -#define __pyx_n_u_TA_SQRT_Value __pyx_string_tab[2003] -#define __pyx_n_u_TA_STDDEV __pyx_string_tab[2004] -#define __pyx_n_u_TA_STDDEV_Clone __pyx_string_tab[2005] -#define __pyx_n_u_TA_STDDEV_Open __pyx_string_tab[2006] -#define __pyx_n_u_TA_STDDEV_OpenAndFill __pyx_string_tab[2007] -#define __pyx_n_u_TA_STDDEV_Peek __pyx_string_tab[2008] -#define __pyx_n_u_TA_STDDEV_Update __pyx_string_tab[2009] -#define __pyx_n_u_TA_STDDEV_Value __pyx_string_tab[2010] -#define __pyx_n_u_TA_STOCH __pyx_string_tab[2011] -#define __pyx_n_u_TA_STOCHF __pyx_string_tab[2012] -#define __pyx_n_u_TA_STOCHF_Clone __pyx_string_tab[2013] -#define __pyx_n_u_TA_STOCHF_Open __pyx_string_tab[2014] -#define __pyx_n_u_TA_STOCHF_OpenAndFill __pyx_string_tab[2015] -#define __pyx_n_u_TA_STOCHF_Peek __pyx_string_tab[2016] -#define __pyx_n_u_TA_STOCHF_Update __pyx_string_tab[2017] -#define __pyx_n_u_TA_STOCHF_Value __pyx_string_tab[2018] -#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[2019] -#define __pyx_n_u_TA_STOCHRSI_Clone __pyx_string_tab[2020] -#define __pyx_n_u_TA_STOCHRSI_Open __pyx_string_tab[2021] -#define __pyx_n_u_TA_STOCHRSI_OpenAndFill __pyx_string_tab[2022] -#define __pyx_n_u_TA_STOCHRSI_Peek __pyx_string_tab[2023] -#define __pyx_n_u_TA_STOCHRSI_Update __pyx_string_tab[2024] -#define __pyx_n_u_TA_STOCHRSI_Value __pyx_string_tab[2025] -#define __pyx_n_u_TA_STOCH_Clone __pyx_string_tab[2026] -#define __pyx_n_u_TA_STOCH_Open __pyx_string_tab[2027] -#define __pyx_n_u_TA_STOCH_OpenAndFill __pyx_string_tab[2028] -#define __pyx_n_u_TA_STOCH_Peek __pyx_string_tab[2029] -#define __pyx_n_u_TA_STOCH_Update __pyx_string_tab[2030] -#define __pyx_n_u_TA_STOCH_Value __pyx_string_tab[2031] -#define __pyx_n_u_TA_SUB __pyx_string_tab[2032] -#define __pyx_n_u_TA_SUB_Clone __pyx_string_tab[2033] -#define __pyx_n_u_TA_SUB_Open __pyx_string_tab[2034] -#define __pyx_n_u_TA_SUB_OpenAndFill __pyx_string_tab[2035] -#define __pyx_n_u_TA_SUB_Peek __pyx_string_tab[2036] -#define __pyx_n_u_TA_SUB_Update __pyx_string_tab[2037] -#define __pyx_n_u_TA_SUB_Value __pyx_string_tab[2038] -#define __pyx_n_u_TA_SUM __pyx_string_tab[2039] -#define __pyx_n_u_TA_SUM_Clone __pyx_string_tab[2040] -#define __pyx_n_u_TA_SUM_Open __pyx_string_tab[2041] -#define __pyx_n_u_TA_SUM_OpenAndFill __pyx_string_tab[2042] -#define __pyx_n_u_TA_SUM_Peek __pyx_string_tab[2043] -#define __pyx_n_u_TA_SUM_Update __pyx_string_tab[2044] -#define __pyx_n_u_TA_SUM_Value __pyx_string_tab[2045] -#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[2046] -#define __pyx_n_u_TA_SUPERTREND_Clone __pyx_string_tab[2047] -#define __pyx_n_u_TA_SUPERTREND_Open __pyx_string_tab[2048] -#define __pyx_n_u_TA_SUPERTREND_OpenAndFill __pyx_string_tab[2049] -#define __pyx_n_u_TA_SUPERTREND_Peek __pyx_string_tab[2050] -#define __pyx_n_u_TA_SUPERTREND_Update __pyx_string_tab[2051] -#define __pyx_n_u_TA_SUPERTREND_Value __pyx_string_tab[2052] -#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[2053] -#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[2054] -#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[2055] -#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[2056] -#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[2057] -#define __pyx_n_u_TA_Shutdown __pyx_string_tab[2058] -#define __pyx_n_u_TA_T3 __pyx_string_tab[2059] -#define __pyx_n_u_TA_T3_Clone __pyx_string_tab[2060] -#define __pyx_n_u_TA_T3_Open __pyx_string_tab[2061] -#define __pyx_n_u_TA_T3_OpenAndFill __pyx_string_tab[2062] -#define __pyx_n_u_TA_T3_Peek __pyx_string_tab[2063] -#define __pyx_n_u_TA_T3_Update __pyx_string_tab[2064] -#define __pyx_n_u_TA_T3_Value __pyx_string_tab[2065] -#define __pyx_n_u_TA_TAN __pyx_string_tab[2066] -#define __pyx_n_u_TA_TANH __pyx_string_tab[2067] -#define __pyx_n_u_TA_TANH_Clone __pyx_string_tab[2068] -#define __pyx_n_u_TA_TANH_Open __pyx_string_tab[2069] -#define __pyx_n_u_TA_TANH_OpenAndFill __pyx_string_tab[2070] -#define __pyx_n_u_TA_TANH_Peek __pyx_string_tab[2071] -#define __pyx_n_u_TA_TANH_Update __pyx_string_tab[2072] -#define __pyx_n_u_TA_TANH_Value __pyx_string_tab[2073] -#define __pyx_n_u_TA_TAN_Clone __pyx_string_tab[2074] -#define __pyx_n_u_TA_TAN_Open __pyx_string_tab[2075] -#define __pyx_n_u_TA_TAN_OpenAndFill __pyx_string_tab[2076] -#define __pyx_n_u_TA_TAN_Peek __pyx_string_tab[2077] -#define __pyx_n_u_TA_TAN_Update __pyx_string_tab[2078] -#define __pyx_n_u_TA_TAN_Value __pyx_string_tab[2079] -#define __pyx_n_u_TA_TEMA __pyx_string_tab[2080] -#define __pyx_n_u_TA_TEMA_Clone __pyx_string_tab[2081] -#define __pyx_n_u_TA_TEMA_Open __pyx_string_tab[2082] -#define __pyx_n_u_TA_TEMA_OpenAndFill __pyx_string_tab[2083] -#define __pyx_n_u_TA_TEMA_Peek __pyx_string_tab[2084] -#define __pyx_n_u_TA_TEMA_Update __pyx_string_tab[2085] -#define __pyx_n_u_TA_TEMA_Value __pyx_string_tab[2086] -#define __pyx_n_u_TA_TRANGE __pyx_string_tab[2087] -#define __pyx_n_u_TA_TRANGE_Clone __pyx_string_tab[2088] -#define __pyx_n_u_TA_TRANGE_Open __pyx_string_tab[2089] -#define __pyx_n_u_TA_TRANGE_OpenAndFill __pyx_string_tab[2090] -#define __pyx_n_u_TA_TRANGE_Peek __pyx_string_tab[2091] -#define __pyx_n_u_TA_TRANGE_Update __pyx_string_tab[2092] -#define __pyx_n_u_TA_TRANGE_Value __pyx_string_tab[2093] -#define __pyx_n_u_TA_TRIMA __pyx_string_tab[2094] -#define __pyx_n_u_TA_TRIMA_Clone __pyx_string_tab[2095] -#define __pyx_n_u_TA_TRIMA_Open __pyx_string_tab[2096] -#define __pyx_n_u_TA_TRIMA_OpenAndFill __pyx_string_tab[2097] -#define __pyx_n_u_TA_TRIMA_Peek __pyx_string_tab[2098] -#define __pyx_n_u_TA_TRIMA_Update __pyx_string_tab[2099] -#define __pyx_n_u_TA_TRIMA_Value __pyx_string_tab[2100] -#define __pyx_n_u_TA_TRIX __pyx_string_tab[2101] -#define __pyx_n_u_TA_TRIX_Clone __pyx_string_tab[2102] -#define __pyx_n_u_TA_TRIX_Open __pyx_string_tab[2103] -#define __pyx_n_u_TA_TRIX_OpenAndFill __pyx_string_tab[2104] -#define __pyx_n_u_TA_TRIX_Peek __pyx_string_tab[2105] -#define __pyx_n_u_TA_TRIX_Update __pyx_string_tab[2106] -#define __pyx_n_u_TA_TRIX_Value __pyx_string_tab[2107] -#define __pyx_n_u_TA_TSF __pyx_string_tab[2108] -#define __pyx_n_u_TA_TSF_Clone __pyx_string_tab[2109] -#define __pyx_n_u_TA_TSF_Open __pyx_string_tab[2110] -#define __pyx_n_u_TA_TSF_OpenAndFill __pyx_string_tab[2111] -#define __pyx_n_u_TA_TSF_Peek __pyx_string_tab[2112] -#define __pyx_n_u_TA_TSF_Update __pyx_string_tab[2113] -#define __pyx_n_u_TA_TSF_Value __pyx_string_tab[2114] -#define __pyx_n_u_TA_TSI __pyx_string_tab[2115] -#define __pyx_n_u_TA_TSI_Clone __pyx_string_tab[2116] -#define __pyx_n_u_TA_TSI_Open __pyx_string_tab[2117] -#define __pyx_n_u_TA_TSI_OpenAndFill __pyx_string_tab[2118] -#define __pyx_n_u_TA_TSI_Peek __pyx_string_tab[2119] -#define __pyx_n_u_TA_TSI_Update __pyx_string_tab[2120] -#define __pyx_n_u_TA_TSI_Value __pyx_string_tab[2121] -#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[2122] -#define __pyx_n_u_TA_TYPPRICE_Clone __pyx_string_tab[2123] -#define __pyx_n_u_TA_TYPPRICE_Open __pyx_string_tab[2124] -#define __pyx_n_u_TA_TYPPRICE_OpenAndFill __pyx_string_tab[2125] -#define __pyx_n_u_TA_TYPPRICE_Peek __pyx_string_tab[2126] -#define __pyx_n_u_TA_TYPPRICE_Update __pyx_string_tab[2127] -#define __pyx_n_u_TA_TYPPRICE_Value __pyx_string_tab[2128] -#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[2129] -#define __pyx_n_u_TA_ULTOSC_Clone __pyx_string_tab[2130] -#define __pyx_n_u_TA_ULTOSC_Open __pyx_string_tab[2131] -#define __pyx_n_u_TA_ULTOSC_OpenAndFill __pyx_string_tab[2132] -#define __pyx_n_u_TA_ULTOSC_Peek __pyx_string_tab[2133] -#define __pyx_n_u_TA_ULTOSC_Update __pyx_string_tab[2134] -#define __pyx_n_u_TA_ULTOSC_Value __pyx_string_tab[2135] -#define __pyx_n_u_TA_VAR __pyx_string_tab[2136] -#define __pyx_n_u_TA_VAR_Clone __pyx_string_tab[2137] -#define __pyx_n_u_TA_VAR_Open __pyx_string_tab[2138] -#define __pyx_n_u_TA_VAR_OpenAndFill __pyx_string_tab[2139] -#define __pyx_n_u_TA_VAR_Peek __pyx_string_tab[2140] -#define __pyx_n_u_TA_VAR_Update __pyx_string_tab[2141] -#define __pyx_n_u_TA_VAR_Value __pyx_string_tab[2142] -#define __pyx_n_u_TA_VHF __pyx_string_tab[2143] -#define __pyx_n_u_TA_VHF_Clone __pyx_string_tab[2144] -#define __pyx_n_u_TA_VHF_Open __pyx_string_tab[2145] -#define __pyx_n_u_TA_VHF_OpenAndFill __pyx_string_tab[2146] -#define __pyx_n_u_TA_VHF_Peek __pyx_string_tab[2147] -#define __pyx_n_u_TA_VHF_Update __pyx_string_tab[2148] -#define __pyx_n_u_TA_VHF_Value __pyx_string_tab[2149] -#define __pyx_n_u_TA_VORTEX __pyx_string_tab[2150] -#define __pyx_n_u_TA_VORTEX_Clone __pyx_string_tab[2151] -#define __pyx_n_u_TA_VORTEX_Open __pyx_string_tab[2152] -#define __pyx_n_u_TA_VORTEX_OpenAndFill __pyx_string_tab[2153] -#define __pyx_n_u_TA_VORTEX_Peek __pyx_string_tab[2154] -#define __pyx_n_u_TA_VORTEX_Update __pyx_string_tab[2155] -#define __pyx_n_u_TA_VORTEX_Value __pyx_string_tab[2156] -#define __pyx_n_u_TA_VWAP __pyx_string_tab[2157] -#define __pyx_n_u_TA_VWAP_Clone __pyx_string_tab[2158] -#define __pyx_n_u_TA_VWAP_Open __pyx_string_tab[2159] -#define __pyx_n_u_TA_VWAP_OpenAndFill __pyx_string_tab[2160] -#define __pyx_n_u_TA_VWAP_Peek __pyx_string_tab[2161] -#define __pyx_n_u_TA_VWAP_Update __pyx_string_tab[2162] -#define __pyx_n_u_TA_VWAP_Value __pyx_string_tab[2163] -#define __pyx_n_u_TA_VWMA __pyx_string_tab[2164] -#define __pyx_n_u_TA_VWMA_Clone __pyx_string_tab[2165] -#define __pyx_n_u_TA_VWMA_Open __pyx_string_tab[2166] -#define __pyx_n_u_TA_VWMA_OpenAndFill __pyx_string_tab[2167] -#define __pyx_n_u_TA_VWMA_Peek __pyx_string_tab[2168] -#define __pyx_n_u_TA_VWMA_Update __pyx_string_tab[2169] -#define __pyx_n_u_TA_VWMA_Value __pyx_string_tab[2170] -#define __pyx_n_u_TA_WAD __pyx_string_tab[2171] -#define __pyx_n_u_TA_WAD_Clone __pyx_string_tab[2172] -#define __pyx_n_u_TA_WAD_Open __pyx_string_tab[2173] -#define __pyx_n_u_TA_WAD_OpenAndFill __pyx_string_tab[2174] -#define __pyx_n_u_TA_WAD_Peek __pyx_string_tab[2175] -#define __pyx_n_u_TA_WAD_Update __pyx_string_tab[2176] -#define __pyx_n_u_TA_WAD_Value __pyx_string_tab[2177] -#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[2178] -#define __pyx_n_u_TA_WCLPRICE_Clone __pyx_string_tab[2179] -#define __pyx_n_u_TA_WCLPRICE_Open __pyx_string_tab[2180] -#define __pyx_n_u_TA_WCLPRICE_OpenAndFill __pyx_string_tab[2181] -#define __pyx_n_u_TA_WCLPRICE_Peek __pyx_string_tab[2182] -#define __pyx_n_u_TA_WCLPRICE_Update __pyx_string_tab[2183] -#define __pyx_n_u_TA_WCLPRICE_Value __pyx_string_tab[2184] -#define __pyx_n_u_TA_WILLR __pyx_string_tab[2185] -#define __pyx_n_u_TA_WILLR_Clone __pyx_string_tab[2186] -#define __pyx_n_u_TA_WILLR_Open __pyx_string_tab[2187] -#define __pyx_n_u_TA_WILLR_OpenAndFill __pyx_string_tab[2188] -#define __pyx_n_u_TA_WILLR_Peek __pyx_string_tab[2189] -#define __pyx_n_u_TA_WILLR_Update __pyx_string_tab[2190] -#define __pyx_n_u_TA_WILLR_Value __pyx_string_tab[2191] -#define __pyx_n_u_TA_WMA __pyx_string_tab[2192] -#define __pyx_n_u_TA_WMA_Clone __pyx_string_tab[2193] -#define __pyx_n_u_TA_WMA_Open __pyx_string_tab[2194] -#define __pyx_n_u_TA_WMA_OpenAndFill __pyx_string_tab[2195] -#define __pyx_n_u_TA_WMA_Peek __pyx_string_tab[2196] -#define __pyx_n_u_TA_WMA_Update __pyx_string_tab[2197] -#define __pyx_n_u_TA_WMA_Value __pyx_string_tab[2198] -#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[2199] -#define __pyx_n_u_TA_ZLEMA_Clone __pyx_string_tab[2200] -#define __pyx_n_u_TA_ZLEMA_Open __pyx_string_tab[2201] -#define __pyx_n_u_TA_ZLEMA_OpenAndFill __pyx_string_tab[2202] -#define __pyx_n_u_TA_ZLEMA_Peek __pyx_string_tab[2203] -#define __pyx_n_u_TA_ZLEMA_Update __pyx_string_tab[2204] -#define __pyx_n_u_TA_ZLEMA_Value __pyx_string_tab[2205] -#define __pyx_n_u_TEMA __pyx_string_tab[2206] -#define __pyx_n_u_TEMA_Stream __pyx_string_tab[2207] -#define __pyx_n_u_TEMA_Stream_open_and_fill __pyx_string_tab[2208] -#define __pyx_n_u_TRANGE __pyx_string_tab[2209] -#define __pyx_n_u_TRANGE_Stream __pyx_string_tab[2210] -#define __pyx_n_u_TRANGE_Stream_open_and_fill __pyx_string_tab[2211] -#define __pyx_n_u_TRIMA __pyx_string_tab[2212] -#define __pyx_n_u_TRIMA_Stream __pyx_string_tab[2213] -#define __pyx_n_u_TRIMA_Stream_open_and_fill __pyx_string_tab[2214] -#define __pyx_n_u_TRIX __pyx_string_tab[2215] -#define __pyx_n_u_TRIX_Stream __pyx_string_tab[2216] -#define __pyx_n_u_TRIX_Stream_open_and_fill __pyx_string_tab[2217] -#define __pyx_n_u_TSF __pyx_string_tab[2218] -#define __pyx_n_u_TSF_Stream __pyx_string_tab[2219] -#define __pyx_n_u_TSF_Stream_open_and_fill __pyx_string_tab[2220] -#define __pyx_n_u_TSI __pyx_string_tab[2221] -#define __pyx_n_u_TSI_Stream __pyx_string_tab[2222] -#define __pyx_n_u_TSI_Stream_open_and_fill __pyx_string_tab[2223] -#define __pyx_n_u_TYPPRICE __pyx_string_tab[2224] -#define __pyx_n_u_TYPPRICE_Stream __pyx_string_tab[2225] -#define __pyx_n_u_TYPPRICE_Stream_open_and_fill __pyx_string_tab[2226] -#define __pyx_n_u_ULTOSC __pyx_string_tab[2227] -#define __pyx_n_u_ULTOSC_Stream __pyx_string_tab[2228] -#define __pyx_n_u_ULTOSC_Stream_open_and_fill __pyx_string_tab[2229] -#define __pyx_n_u_VAR __pyx_string_tab[2230] -#define __pyx_n_u_VAR_Stream __pyx_string_tab[2231] -#define __pyx_n_u_VAR_Stream_open_and_fill __pyx_string_tab[2232] -#define __pyx_n_u_VHF __pyx_string_tab[2233] -#define __pyx_n_u_VHF_Stream __pyx_string_tab[2234] -#define __pyx_n_u_VHF_Stream_open_and_fill __pyx_string_tab[2235] -#define __pyx_n_u_VORTEX __pyx_string_tab[2236] -#define __pyx_n_u_VORTEX_Stream __pyx_string_tab[2237] -#define __pyx_n_u_VORTEX_Stream_open_and_fill __pyx_string_tab[2238] -#define __pyx_n_u_VORTEX_Value __pyx_string_tab[2239] -#define __pyx_n_u_VWAP __pyx_string_tab[2240] -#define __pyx_n_u_VWAP_Stream __pyx_string_tab[2241] -#define __pyx_n_u_VWAP_Stream_open_and_fill __pyx_string_tab[2242] -#define __pyx_n_u_VWMA __pyx_string_tab[2243] -#define __pyx_n_u_VWMA_Stream __pyx_string_tab[2244] -#define __pyx_n_u_VWMA_Stream_open_and_fill __pyx_string_tab[2245] -#define __pyx_n_u_WAD __pyx_string_tab[2246] -#define __pyx_n_u_WAD_Stream __pyx_string_tab[2247] -#define __pyx_n_u_WAD_Stream_open_and_fill __pyx_string_tab[2248] -#define __pyx_n_u_WCLPRICE __pyx_string_tab[2249] -#define __pyx_n_u_WCLPRICE_Stream __pyx_string_tab[2250] -#define __pyx_n_u_WCLPRICE_Stream_open_and_fill __pyx_string_tab[2251] -#define __pyx_n_u_WILLR __pyx_string_tab[2252] -#define __pyx_n_u_WILLR_Stream __pyx_string_tab[2253] -#define __pyx_n_u_WILLR_Stream_open_and_fill __pyx_string_tab[2254] -#define __pyx_n_u_WMA __pyx_string_tab[2255] -#define __pyx_n_u_WMA_Stream __pyx_string_tab[2256] -#define __pyx_n_u_WMA_Stream_open_and_fill __pyx_string_tab[2257] -#define __pyx_n_u_ZLEMA __pyx_string_tab[2258] -#define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2259] -#define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2260] -#define __pyx_n_u_Function__call_function __pyx_string_tab[2261] -#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2262] -#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2263] -#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2264] -#define __pyx_n_u_Function__local __pyx_string_tab[2265] -#define __pyx_n_u_Function__localdata __pyx_string_tab[2266] -#define __pyx_n_u_Function__name __pyx_string_tab[2267] -#define __pyx_n_u_Function__namestr __pyx_string_tab[2268] -#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2269] -#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2270] -#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2271] -#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2272] -#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[2273] -#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[2274] -#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[2275] -#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[2276] -#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[2277] -#define __pyx_n_u_all __pyx_string_tab[2278] -#define __pyx_n_u_annotate __pyx_string_tab[2279] -#define __pyx_n_u_call __pyx_string_tab[2280] -#define __pyx_n_u_call_function __pyx_string_tab[2281] -#define __pyx_n_u_check_opt_input_value __pyx_string_tab[2282] -#define __pyx_n_u_class_getitem __pyx_string_tab[2283] -#define __pyx_n_u_copy_2 __pyx_string_tab[2284] -#define __pyx_n_u_deepcopy __pyx_string_tab[2285] -#define __pyx_n_u_dict __pyx_string_tab[2286] -#define __pyx_n_u_doc __pyx_string_tab[2287] -#define __pyx_n_u_func __pyx_string_tab[2288] -#define __pyx_n_u_get_flags __pyx_string_tab[2289] -#define __pyx_n_u_get_opt_input_value __pyx_string_tab[2290] -#define __pyx_n_u_getitem __pyx_string_tab[2291] -#define __pyx_n_u_init __pyx_string_tab[2292] -#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[2293] -#define __pyx_n_u_local_2 __pyx_string_tab[2294] -#define __pyx_n_u_main __pyx_string_tab[2295] -#define __pyx_n_u_metaclass __pyx_string_tab[2296] -#define __pyx_n_u_module __pyx_string_tab[2297] -#define __pyx_n_u_mro_entries __pyx_string_tab[2298] -#define __pyx_n_u_name_2 __pyx_string_tab[2299] -#define __pyx_n_u_new __pyx_string_tab[2300] -#define __pyx_n_u_prepare __pyx_string_tab[2301] -#define __pyx_n_u_pyx_vtable __pyx_string_tab[2302] -#define __pyx_n_u_qualname __pyx_string_tab[2303] -#define __pyx_n_u_reduce __pyx_string_tab[2304] -#define __pyx_n_u_repr __pyx_string_tab[2305] -#define __pyx_n_u_set_name __pyx_string_tab[2306] -#define __pyx_n_u_str __pyx_string_tab[2307] -#define __pyx_n_u_ta_version __pyx_string_tab[2308] -#define __pyx_n_u_test __pyx_string_tab[2309] -#define __pyx_n_u_unicode __pyx_string_tab[2310] -#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[2311] -#define __pyx_n_u_is_coroutine __pyx_string_tab[2312] -#define __pyx_n_u_lookup __pyx_string_tab[2313] -#define __pyx_n_u_ta_check_success __pyx_string_tab[2314] -#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[2315] -#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[2316] -#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[2317] -#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[2318] -#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[2319] -#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[2320] -#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[2321] -#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[2322] -#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[2323] -#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[2324] -#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[2325] -#define __pyx_n_u_ta_initialize __pyx_string_tab[2326] -#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[2327] -#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[2328] -#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[2329] -#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[2330] -#define __pyx_n_u_ta_shutdown __pyx_string_tab[2331] -#define __pyx_n_u_a_close __pyx_string_tab[2332] -#define __pyx_n_u_a_high __pyx_string_tab[2333] -#define __pyx_n_u_a_low __pyx_string_tab[2334] -#define __pyx_n_u_a_open __pyx_string_tab[2335] -#define __pyx_n_u_a_periods __pyx_string_tab[2336] -#define __pyx_n_u_a_real __pyx_string_tab[2337] -#define __pyx_n_u_a_real0 __pyx_string_tab[2338] -#define __pyx_n_u_a_real1 __pyx_string_tab[2339] -#define __pyx_n_u_a_volume __pyx_string_tab[2340] -#define __pyx_n_u_acceleration __pyx_string_tab[2341] -#define __pyx_n_u_accelerationinitlong __pyx_string_tab[2342] -#define __pyx_n_u_accelerationinitshort __pyx_string_tab[2343] -#define __pyx_n_u_accelerationlong __pyx_string_tab[2344] -#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[2345] -#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[2346] -#define __pyx_n_u_accelerationshort __pyx_string_tab[2347] -#define __pyx_n_u_append __pyx_string_tab[2348] -#define __pyx_n_u_arg __pyx_string_tab[2349] -#define __pyx_n_u_args __pyx_string_tab[2350] -#define __pyx_n_u_arrays __pyx_string_tab[2351] -#define __pyx_n_u_ascii __pyx_string_tab[2352] -#define __pyx_n_u_astype __pyx_string_tab[2353] -#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[2354] -#define __pyx_n_u_atrperiod __pyx_string_tab[2355] -#define __pyx_n_u_avgperiod __pyx_string_tab[2356] -#define __pyx_n_u_b __pyx_string_tab[2357] -#define __pyx_n_u_begidx __pyx_string_tab[2358] -#define __pyx_n_u_bit __pyx_string_tab[2359] -#define __pyx_n_u_bytes2str __pyx_string_tab[2360] -#define __pyx_n_u_candlestick __pyx_string_tab[2361] -#define __pyx_n_u_cline_in_traceback __pyx_string_tab[2362] -#define __pyx_n_u_clone __pyx_string_tab[2363] -#define __pyx_n_u_close __pyx_string_tab[2364] -#define __pyx_n_u_collections __pyx_string_tab[2365] -#define __pyx_n_u_column_stack __pyx_string_tab[2366] -#define __pyx_n_u_columns __pyx_string_tab[2367] -#define __pyx_n_u_copy __pyx_string_tab[2368] -#define __pyx_n_u_d __pyx_string_tab[2369] -#define __pyx_n_u_decode __pyx_string_tab[2370] -#define __pyx_n_u_default_value __pyx_string_tab[2371] -#define __pyx_n_u_defaults __pyx_string_tab[2372] -#define __pyx_n_u_description __pyx_string_tab[2373] -#define __pyx_n_u_display_name __pyx_string_tab[2374] -#define __pyx_n_u_docs __pyx_string_tab[2375] -#define __pyx_n_u_documentation __pyx_string_tab[2376] -#define __pyx_n_u_empty __pyx_string_tab[2377] -#define __pyx_n_u_endidx __pyx_string_tab[2378] -#define __pyx_n_u_endswith __pyx_string_tab[2379] -#define __pyx_n_u_enumerate __pyx_string_tab[2380] -#define __pyx_n_u_factor __pyx_string_tab[2381] -#define __pyx_n_u_fastd_matype __pyx_string_tab[2382] -#define __pyx_n_u_fastd_period __pyx_string_tab[2383] -#define __pyx_n_u_fastk_period __pyx_string_tab[2384] -#define __pyx_n_u_fastlimit __pyx_string_tab[2385] -#define __pyx_n_u_fastmatype __pyx_string_tab[2386] -#define __pyx_n_u_fastperiod __pyx_string_tab[2387] -#define __pyx_n_u_firstperiod __pyx_string_tab[2388] -#define __pyx_n_u_flag __pyx_string_tab[2389] -#define __pyx_n_u_flags __pyx_string_tab[2390] -#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[2391] -#define __pyx_n_u_func_args __pyx_string_tab[2392] -#define __pyx_n_u_func_info __pyx_string_tab[2393] -#define __pyx_n_u_func_line __pyx_string_tab[2394] -#define __pyx_n_u_func_object __pyx_string_tab[2395] -#define __pyx_n_u_function_flags __pyx_string_tab[2396] -#define __pyx_n_u_function_name __pyx_string_tab[2397] -#define __pyx_n_u_functions __pyx_string_tab[2398] -#define __pyx_n_u_get_input_arrays __pyx_string_tab[2399] -#define __pyx_n_u_get_input_names __pyx_string_tab[2400] -#define __pyx_n_u_get_parameters __pyx_string_tab[2401] -#define __pyx_n_u_group __pyx_string_tab[2402] -#define __pyx_n_u_groups __pyx_string_tab[2403] -#define __pyx_n_u_handle __pyx_string_tab[2404] -#define __pyx_n_u_help __pyx_string_tab[2405] -#define __pyx_n_u_high __pyx_string_tab[2406] -#define __pyx_n_u_historylen __pyx_string_tab[2407] -#define __pyx_n_u_holder __pyx_string_tab[2408] -#define __pyx_n_u_i __pyx_string_tab[2409] -#define __pyx_n_u_id __pyx_string_tab[2410] -#define __pyx_n_u_idx __pyx_string_tab[2411] -#define __pyx_n_u_import_error __pyx_string_tab[2412] -#define __pyx_n_u_in __pyx_string_tab[2413] -#define __pyx_n_u_index __pyx_string_tab[2414] -#define __pyx_n_u_info __pyx_string_tab[2415] -#define __pyx_n_u_input_arrays __pyx_string_tab[2416] -#define __pyx_n_u_input_name __pyx_string_tab[2417] -#define __pyx_n_u_input_names __pyx_string_tab[2418] -#define __pyx_n_u_input_price_series_names __pyx_string_tab[2419] -#define __pyx_n_u_integer __pyx_string_tab[2420] -#define __pyx_n_u_is_empty __pyx_string_tab[2421] -#define __pyx_n_u_items __pyx_string_tab[2422] -#define __pyx_n_u_key __pyx_string_tab[2423] -#define __pyx_n_u_keys __pyx_string_tab[2424] -#define __pyx_n_u_kwargs __pyx_string_tab[2425] -#define __pyx_n_u_leftbars __pyx_string_tab[2426] -#define __pyx_n_u_length __pyx_string_tab[2427] -#define __pyx_n_u_local __pyx_string_tab[2428] -#define __pyx_n_u_lookback __pyx_string_tab[2429] -#define __pyx_n_u_low __pyx_string_tab[2430] -#define __pyx_n_u_lower __pyx_string_tab[2431] -#define __pyx_n_u_matype __pyx_string_tab[2432] -#define __pyx_n_u_maximum __pyx_string_tab[2433] -#define __pyx_n_u_maxperiod __pyx_string_tab[2434] -#define __pyx_n_u_memo __pyx_string_tab[2435] -#define __pyx_n_u_minperiod __pyx_string_tab[2436] -#define __pyx_n_u_missing __pyx_string_tab[2437] -#define __pyx_n_u_missing_keys __pyx_string_tab[2438] -#define __pyx_n_u_module_2 __pyx_string_tab[2439] -#define __pyx_n_u_msg __pyx_string_tab[2440] -#define __pyx_n_u_multiplier __pyx_string_tab[2441] -#define __pyx_n_u_n __pyx_string_tab[2442] -#define __pyx_n_u_name __pyx_string_tab[2443] -#define __pyx_n_u_namedtuple __pyx_string_tab[2444] -#define __pyx_n_u_nan __pyx_string_tab[2445] -#define __pyx_n_u_nbdev __pyx_string_tab[2446] -#define __pyx_n_u_nbdevdn __pyx_string_tab[2447] -#define __pyx_n_u_nbdevup __pyx_string_tab[2448] -#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[2449] -#define __pyx_n_u_num_inputs __pyx_string_tab[2450] -#define __pyx_n_u_num_opt_inputs __pyx_string_tab[2451] -#define __pyx_n_u_num_outputs __pyx_string_tab[2452] -#define __pyx_n_u_numpy __pyx_string_tab[2453] -#define __pyx_n_u_object __pyx_string_tab[2454] -#define __pyx_n_u_offsetonreverse __pyx_string_tab[2455] -#define __pyx_n_u_open __pyx_string_tab[2456] -#define __pyx_n_u_openInterest __pyx_string_tab[2457] -#define __pyx_n_u_open_and_fill __pyx_string_tab[2458] -#define __pyx_n_u_optIn __pyx_string_tab[2459] -#define __pyx_n_u_opt_input __pyx_string_tab[2460] -#define __pyx_n_u_opt_input_values __pyx_string_tab[2461] -#define __pyx_n_u_opt_inputs __pyx_string_tab[2462] -#define __pyx_n_u_ordereddict __pyx_string_tab[2463] -#define __pyx_n_u_out __pyx_string_tab[2464] -#define __pyx_n_u_outaroondown __pyx_string_tab[2465] -#define __pyx_n_u_outaroonup __pyx_string_tab[2466] -#define __pyx_n_u_outbearpower __pyx_string_tab[2467] -#define __pyx_n_u_outbegidx __pyx_string_tab[2468] -#define __pyx_n_u_outbullpower __pyx_string_tab[2469] -#define __pyx_n_u_outd __pyx_string_tab[2470] -#define __pyx_n_u_outfama __pyx_string_tab[2471] -#define __pyx_n_u_outfastd __pyx_string_tab[2472] -#define __pyx_n_u_outfastk __pyx_string_tab[2473] -#define __pyx_n_u_outhaclose __pyx_string_tab[2474] -#define __pyx_n_u_outhahigh __pyx_string_tab[2475] -#define __pyx_n_u_outhalow __pyx_string_tab[2476] -#define __pyx_n_u_outhaopen __pyx_string_tab[2477] -#define __pyx_n_u_outinphase __pyx_string_tab[2478] -#define __pyx_n_u_outinteger __pyx_string_tab[2479] -#define __pyx_n_u_outinteger_data __pyx_string_tab[2480] -#define __pyx_n_u_outj __pyx_string_tab[2481] -#define __pyx_n_u_outk __pyx_string_tab[2482] -#define __pyx_n_u_outleadsine __pyx_string_tab[2483] -#define __pyx_n_u_outlowerband __pyx_string_tab[2484] -#define __pyx_n_u_outmacd __pyx_string_tab[2485] -#define __pyx_n_u_outmacdhist __pyx_string_tab[2486] -#define __pyx_n_u_outmacdsignal __pyx_string_tab[2487] -#define __pyx_n_u_outmama __pyx_string_tab[2488] -#define __pyx_n_u_outmax __pyx_string_tab[2489] -#define __pyx_n_u_outmaxidx __pyx_string_tab[2490] -#define __pyx_n_u_outmaxidx_data __pyx_string_tab[2491] -#define __pyx_n_u_outmiddleband __pyx_string_tab[2492] -#define __pyx_n_u_outmin __pyx_string_tab[2493] -#define __pyx_n_u_outminidx __pyx_string_tab[2494] -#define __pyx_n_u_outminidx_data __pyx_string_tab[2495] -#define __pyx_n_u_outminusvi __pyx_string_tab[2496] -#define __pyx_n_u_outnbelement __pyx_string_tab[2497] -#define __pyx_n_u_outplusvi __pyx_string_tab[2498] -#define __pyx_n_u_output __pyx_string_tab[2499] -#define __pyx_n_u_output_flags __pyx_string_tab[2500] -#define __pyx_n_u_output_name __pyx_string_tab[2501] -#define __pyx_n_u_output_names __pyx_string_tab[2502] -#define __pyx_n_u_outputs __pyx_string_tab[2503] -#define __pyx_n_u_outputs_valid __pyx_string_tab[2504] -#define __pyx_n_u_outquadrature __pyx_string_tab[2505] -#define __pyx_n_u_outreal __pyx_string_tab[2506] -#define __pyx_n_u_outreallowerband __pyx_string_tab[2507] -#define __pyx_n_u_outrealmiddleband __pyx_string_tab[2508] -#define __pyx_n_u_outrealupperband __pyx_string_tab[2509] -#define __pyx_n_u_outsine __pyx_string_tab[2510] -#define __pyx_n_u_outslowd __pyx_string_tab[2511] -#define __pyx_n_u_outslowk __pyx_string_tab[2512] -#define __pyx_n_u_outsmi __pyx_string_tab[2513] -#define __pyx_n_u_outsmisignal __pyx_string_tab[2514] -#define __pyx_n_u_outsupertrend __pyx_string_tab[2515] -#define __pyx_n_u_outswinghigh __pyx_string_tab[2516] -#define __pyx_n_u_outswinglow __pyx_string_tab[2517] -#define __pyx_n_u_outtrend __pyx_string_tab[2518] -#define __pyx_n_u_outupperband __pyx_string_tab[2519] -#define __pyx_n_u_pandas __pyx_string_tab[2520] -#define __pyx_n_u_param __pyx_string_tab[2521] -#define __pyx_n_u_param_name __pyx_string_tab[2522] -#define __pyx_n_u_parameters __pyx_string_tab[2523] -#define __pyx_n_u_params __pyx_string_tab[2524] -#define __pyx_n_u_penetration __pyx_string_tab[2525] -#define __pyx_n_u_percentile __pyx_string_tab[2526] -#define __pyx_n_u_period __pyx_string_tab[2527] -#define __pyx_n_u_periods __pyx_string_tab[2528] -#define __pyx_n_u_polars __pyx_string_tab[2529] -#define __pyx_n_u_pop __pyx_string_tab[2530] -#define __pyx_n_u_price __pyx_string_tab[2531] -#define __pyx_n_u_price0 __pyx_string_tab[2532] -#define __pyx_n_u_price1 __pyx_string_tab[2533] -#define __pyx_n_u_price_series __pyx_string_tab[2534] -#define __pyx_n_u_price_series_name_values __pyx_string_tab[2535] -#define __pyx_n_u_prices __pyx_string_tab[2536] -#define __pyx_n_u_property __pyx_string_tab[2537] -#define __pyx_n_u_rangetype __pyx_string_tab[2538] -#define __pyx_n_u_real __pyx_string_tab[2539] -#define __pyx_n_u_real0 __pyx_string_tab[2540] -#define __pyx_n_u_real1 __pyx_string_tab[2541] -#define __pyx_n_u_replace __pyx_string_tab[2542] -#define __pyx_n_u_results __pyx_string_tab[2543] -#define __pyx_n_u_ret __pyx_string_tab[2544] -#define __pyx_n_u_retCode __pyx_string_tab[2545] -#define __pyx_n_u_ret_code __pyx_string_tab[2546] -#define __pyx_n_u_rightbars __pyx_string_tab[2547] -#define __pyx_n_u_roc1period __pyx_string_tab[2548] -#define __pyx_n_u_roc2period __pyx_string_tab[2549] -#define __pyx_n_u_rocperiod __pyx_string_tab[2550] -#define __pyx_n_u_run __pyx_string_tab[2551] -#define __pyx_n_u_s __pyx_string_tab[2552] -#define __pyx_n_u_schema __pyx_string_tab[2553] -#define __pyx_n_u_secondperiod __pyx_string_tab[2554] -#define __pyx_n_u_self __pyx_string_tab[2555] -#define __pyx_n_u_series __pyx_string_tab[2556] -#define __pyx_n_u_set_function_args __pyx_string_tab[2557] -#define __pyx_n_u_set_input_arrays __pyx_string_tab[2558] -#define __pyx_n_u_set_input_names __pyx_string_tab[2559] -#define __pyx_n_u_set_parameters __pyx_string_tab[2560] -#define __pyx_n_u_setdefault __pyx_string_tab[2561] -#define __pyx_n_u_settingtype __pyx_string_tab[2562] -#define __pyx_n_u_signalmatype __pyx_string_tab[2563] -#define __pyx_n_u_signalperiod __pyx_string_tab[2564] -#define __pyx_n_u_skip_first __pyx_string_tab[2565] -#define __pyx_n_u_slowd_matype __pyx_string_tab[2566] -#define __pyx_n_u_slowd_period __pyx_string_tab[2567] -#define __pyx_n_u_slowk_matype __pyx_string_tab[2568] -#define __pyx_n_u_slowk_period __pyx_string_tab[2569] -#define __pyx_n_u_slowlimit __pyx_string_tab[2570] -#define __pyx_n_u_slowmatype __pyx_string_tab[2571] -#define __pyx_n_u_slowperiod __pyx_string_tab[2572] -#define __pyx_n_u_stacklevel __pyx_string_tab[2573] -#define __pyx_n_u_startvalue __pyx_string_tab[2574] -#define __pyx_n_u_staticmethod __pyx_string_tab[2575] -#define __pyx_n_u_stddevperiod __pyx_string_tab[2576] -#define __pyx_n_u_str2bytes __pyx_string_tab[2577] -#define __pyx_n_u_stream __pyx_string_tab[2578] -#define __pyx_n_u_sys __pyx_string_tab[2579] -#define __pyx_n_u_table __pyx_string_tab[2580] -#define __pyx_n_u_talib__ta_lib __pyx_string_tab[2581] -#define __pyx_n_u_threading __pyx_string_tab[2582] -#define __pyx_n_u_timeStamp __pyx_string_tab[2583] -#define __pyx_n_u_timeperiod __pyx_string_tab[2584] -#define __pyx_n_u_timeperiod1 __pyx_string_tab[2585] -#define __pyx_n_u_timeperiod2 __pyx_string_tab[2586] -#define __pyx_n_u_timeperiod3 __pyx_string_tab[2587] -#define __pyx_n_u_to_numpy __pyx_string_tab[2588] -#define __pyx_n_u_type_2 __pyx_string_tab[2589] -#define __pyx_n_u_type __pyx_string_tab[2590] -#define __pyx_n_u_unst_id __pyx_string_tab[2591] -#define __pyx_n_u_update __pyx_string_tab[2592] -#define __pyx_n_u_update_info __pyx_string_tab[2593] -#define __pyx_n_u_upper __pyx_string_tab[2594] -#define __pyx_n_u_value __pyx_string_tab[2595] -#define __pyx_n_u_values __pyx_string_tab[2596] -#define __pyx_n_u_version __pyx_string_tab[2597] -#define __pyx_n_u_vfactor __pyx_string_tab[2598] -#define __pyx_n_u_volume __pyx_string_tab[2599] -#define __pyx_n_u_warn __pyx_string_tab[2600] -#define __pyx_n_u_warnings __pyx_string_tab[2601] -#define __pyx_n_u_wmaperiod __pyx_string_tab[2602] -#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[2603] -#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[2604] -#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[2605] -#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[2606] -#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[2607] -#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[2608] -#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[2609] -#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[2610] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[2611] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[2612] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[2613] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[2614] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[2615] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[2616] -#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[2617] -#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[2618] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[2619] -#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[2620] -#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[2621] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[2622] -#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[2623] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[2624] -#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[2625] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[2626] -#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[2627] -#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[2628] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[2629] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[2630] -#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[2631] -#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[2632] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[2633] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[2634] -#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[2635] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[2636] -#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[2637] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[2638] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[2639] -#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[2640] -#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[2641] -#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[2642] -#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[2643] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[2644] -#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[2645] -#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[2646] -#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[2647] -#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[2648] -#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[2649] -#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2650] -#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[2651] -#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[2652] -#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[2653] -#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[2654] -#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[2655] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[2656] -#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[2657] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[2658] -#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[2659] -#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[2660] -#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[2661] -#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[2662] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2663] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2664] -#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[2665] -#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[2666] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[2667] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[2668] -#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[2669] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[2670] -#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2671] -#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2672] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[2673] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2674] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2675] -#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[2676] -#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[2677] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[2678] -#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2679] -#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2680] -#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2681] -#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2682] -#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[2683] -#define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[2684] -#define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[2685] -#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[2686] -#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[2687] -#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[2688] -#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[2689] -#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[2690] -#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2691] -#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2692] -#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2693] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[2694] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[2695] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[2696] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[2697] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[2698] -#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[2699] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[2700] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[2701] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[2702] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[2703] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[2704] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[2705] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[2706] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[2707] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[2708] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[2709] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[2710] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[2711] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[2712] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[2713] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[2714] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[2715] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[2716] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[2717] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[2718] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[2719] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[2720] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[2721] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[2722] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[2723] -#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[2724] -#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[2725] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[2726] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[2727] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[2728] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[2729] -#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[2730] -#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2731] -#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2732] -#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2733] -#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[2734] -#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[2735] -#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[2736] -#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[2737] -#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[2738] -#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2739] -#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2740] -#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2741] -#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[2742] -#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2743] -#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU __pyx_string_tab[2744] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3 __pyx_string_tab[2745] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2746] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2 __pyx_string_tab[2747] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6 __pyx_string_tab[2748] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_2_81_2 __pyx_string_tab[2749] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_31HA_7q __pyx_string_tab[2750] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_8 __pyx_string_tab[2751] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_31HA_9 __pyx_string_tab[2752] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8 __pyx_string_tab[2753] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_aq_31HA_1 __pyx_string_tab[2754] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh_2 __pyx_string_tab[2755] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_N_81_N_81 __pyx_string_tab[2756] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2 __pyx_string_tab[2757] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_H_31HA_6Q __pyx_string_tab[2758] -#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2759] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_Q_31HA_Q __pyx_string_tab[2760] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1L_31HA_7q __pyx_string_tab[2761] -#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2762] -#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[2763] -#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR __pyx_string_tab[2764] -#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_G5_1L __pyx_string_tab[2765] -#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_G5_9_lRS_3 __pyx_string_tab[2766] -#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_G5_8_Q_31H __pyx_string_tab[2767] -#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_G5_Ql __pyx_string_tab[2768] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_q_A_31H __pyx_string_tab[2769] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_8_a_31H __pyx_string_tab[2770] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_9 __pyx_string_tab[2771] -#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_G5_9_31HA_a_5Qax __pyx_string_tab[2772] -#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_G5_8_QR_31 __pyx_string_tab[2773] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_9_Q_31H __pyx_string_tab[2774] -#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_G5_AZq __pyx_string_tab[2775] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_8_31 __pyx_string_tab[2776] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_1_8 __pyx_string_tab[2777] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_AQ_3 __pyx_string_tab[2778] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3 __pyx_string_tab[2779] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_8 __pyx_string_tab[2780] -#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_G5_8_Q __pyx_string_tab[2781] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_A __pyx_string_tab[2782] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_3 __pyx_string_tab[2783] -#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_G5_q __pyx_string_tab[2784] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_8_31H __pyx_string_tab[2785] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_1A_31 __pyx_string_tab[2786] -#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2787] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2788] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_1A_31H __pyx_string_tab[2789] -#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_G5_9_PQ __pyx_string_tab[2790] -#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[2791] -#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2792] -#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_G5_8_q __pyx_string_tab[2793] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_q __pyx_string_tab[2794] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8 __pyx_string_tab[2795] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8_2 __pyx_string_tab[2796] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9 __pyx_string_tab[2797] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1_2 __pyx_string_tab[2798] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1 __pyx_string_tab[2799] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_A __pyx_string_tab[2800] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_2 __pyx_string_tab[2801] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q __pyx_string_tab[2802] -#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2803] -#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_G __pyx_string_tab[2804] -#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5 __pyx_string_tab[2805] -#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2806] -#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2807] -#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[2808] -#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[2809] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8 __pyx_string_tab[2810] -#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_G __pyx_string_tab[2811] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[2812] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[2813] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[2814] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2815] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2816] -#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[2817] -#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[2818] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3_2 __pyx_string_tab[2819] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2 __pyx_string_tab[2820] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5 __pyx_string_tab[2821] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq __pyx_string_tab[2822] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_7q __pyx_string_tab[2823] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_7q __pyx_string_tab[2824] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_a_6axq_9_1 __pyx_string_tab[2825] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_1 __pyx_string_tab[2826] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh __pyx_string_tab[2827] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_a_Q __pyx_string_tab[2828] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_1HA_a_Qa __pyx_string_tab[2829] -#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_G5_Q_31HA __pyx_string_tab[2830] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_8_3 __pyx_string_tab[2831] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_1_3 __pyx_string_tab[2832] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3 __pyx_string_tab[2833] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_q __pyx_string_tab[2834] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_9 __pyx_string_tab[2835] -#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_G5_Q_31H __pyx_string_tab[2836] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_15 __pyx_string_tab[2837] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_2 __pyx_string_tab[2838] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_13 __pyx_string_tab[2839] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5 __pyx_string_tab[2840] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3 __pyx_string_tab[2841] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5 __pyx_string_tab[2842] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6 __pyx_string_tab[2843] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10 __pyx_string_tab[2844] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14 __pyx_string_tab[2845] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4 __pyx_string_tab[2846] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9 __pyx_string_tab[2847] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7 __pyx_string_tab[2848] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8 __pyx_string_tab[2849] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11 __pyx_string_tab[2850] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12 __pyx_string_tab[2851] -#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2852] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2853] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a __pyx_string_tab[2854] -#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2855] -#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[2856] -#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2857] -#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2858] -#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2859] -#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[2860] -#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[2861] -#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[2862] -#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[2863] -#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2864] -#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2865] -#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2866] -#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[2867] -#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2868] -#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[2869] -#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2870] -#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[2871] +#define __pyx_kp_u_begidx_nbelement __pyx_string_tab[98] +#define __pyx_kp_u_cannot_pickle_s_a_stream_handle __pyx_string_tab[99] +#define __pyx_kp_u_disable __pyx_string_tab[100] +#define __pyx_kp_u_enable __pyx_string_tab[101] +#define __pyx_kp_u_gc __pyx_string_tab[102] +#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[103] +#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[104] +#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[105] +#define __pyx_kp_u_input_must_be_a_numpy_array_or_a __pyx_string_tab[106] +#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[107] +#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[108] +#define __pyx_kp_u_isenabled __pyx_string_tab[109] +#define __pyx_kp_u_no_history_the_input_array_is_em __pyx_string_tab[110] +#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[111] +#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[112] +#define __pyx_kp_u_talib_collections __pyx_string_tab[113] +#define __pyx_kp_u_talib_numpy __pyx_string_tab[114] +#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[115] +#define __pyx_kp_u_talib_pandas __pyx_string_tab[116] +#define __pyx_kp_u_talib_polars __pyx_string_tab[117] +#define __pyx_kp_u_talib_sys __pyx_string_tab[118] +#define __pyx_kp_u_talib_threading __pyx_string_tab[119] +#define __pyx_kp_u_talib_warnings __pyx_string_tab[120] +#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[121] +#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[122] +#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[123] +#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[124] +#define __pyx_kp_u_too_many_input_arrays __pyx_string_tab[125] +#define __pyx_kp_u_unstable_period __pyx_string_tab[126] +#define __pyx_n_u_AC __pyx_string_tab[127] +#define __pyx_n_u_ACCBANDS __pyx_string_tab[128] +#define __pyx_n_u_ACCBANDS_Stream __pyx_string_tab[129] +#define __pyx_n_u_ACCBANDS_Stream_open_and_fill __pyx_string_tab[130] +#define __pyx_n_u_ACOS __pyx_string_tab[131] +#define __pyx_n_u_ACOS_Stream __pyx_string_tab[132] +#define __pyx_n_u_ACOS_Stream_open_and_fill __pyx_string_tab[133] +#define __pyx_n_u_AC_Stream __pyx_string_tab[134] +#define __pyx_n_u_AC_Stream_open_and_fill __pyx_string_tab[135] +#define __pyx_n_u_AD __pyx_string_tab[136] +#define __pyx_n_u_ADD __pyx_string_tab[137] +#define __pyx_n_u_ADD_Stream __pyx_string_tab[138] +#define __pyx_n_u_ADD_Stream_open_and_fill __pyx_string_tab[139] +#define __pyx_n_u_ADOSC __pyx_string_tab[140] +#define __pyx_n_u_ADOSC_Stream __pyx_string_tab[141] +#define __pyx_n_u_ADOSC_Stream_open_and_fill __pyx_string_tab[142] +#define __pyx_n_u_ADR __pyx_string_tab[143] +#define __pyx_n_u_ADR_Stream __pyx_string_tab[144] +#define __pyx_n_u_ADR_Stream_open_and_fill __pyx_string_tab[145] +#define __pyx_n_u_ADX __pyx_string_tab[146] +#define __pyx_n_u_ADXR __pyx_string_tab[147] +#define __pyx_n_u_ADXR_Stream __pyx_string_tab[148] +#define __pyx_n_u_ADXR_Stream_open_and_fill __pyx_string_tab[149] +#define __pyx_n_u_ADX_Stream __pyx_string_tab[150] +#define __pyx_n_u_ADX_Stream_open_and_fill __pyx_string_tab[151] +#define __pyx_n_u_AD_Stream __pyx_string_tab[152] +#define __pyx_n_u_AD_Stream_open_and_fill __pyx_string_tab[153] +#define __pyx_n_u_ALL __pyx_string_tab[154] +#define __pyx_n_u_AO __pyx_string_tab[155] +#define __pyx_n_u_AO_Stream __pyx_string_tab[156] +#define __pyx_n_u_AO_Stream_open_and_fill __pyx_string_tab[157] +#define __pyx_n_u_APO __pyx_string_tab[158] +#define __pyx_n_u_APO_Stream __pyx_string_tab[159] +#define __pyx_n_u_APO_Stream_open_and_fill __pyx_string_tab[160] +#define __pyx_n_u_AROON __pyx_string_tab[161] +#define __pyx_n_u_AROONOSC __pyx_string_tab[162] +#define __pyx_n_u_AROONOSC_Stream __pyx_string_tab[163] +#define __pyx_n_u_AROONOSC_Stream_open_and_fill __pyx_string_tab[164] +#define __pyx_n_u_AROON_Stream __pyx_string_tab[165] +#define __pyx_n_u_AROON_Stream_open_and_fill __pyx_string_tab[166] +#define __pyx_n_u_ASIN __pyx_string_tab[167] +#define __pyx_n_u_ASIN_Stream __pyx_string_tab[168] +#define __pyx_n_u_ASIN_Stream_open_and_fill __pyx_string_tab[169] +#define __pyx_n_u_ATAN __pyx_string_tab[170] +#define __pyx_n_u_ATAN_Stream __pyx_string_tab[171] +#define __pyx_n_u_ATAN_Stream_open_and_fill __pyx_string_tab[172] +#define __pyx_n_u_ATR __pyx_string_tab[173] +#define __pyx_n_u_ATR_Stream __pyx_string_tab[174] +#define __pyx_n_u_ATR_Stream_open_and_fill __pyx_string_tab[175] +#define __pyx_n_u_AVGDEV __pyx_string_tab[176] +#define __pyx_n_u_AVGDEV_Stream __pyx_string_tab[177] +#define __pyx_n_u_AVGDEV_Stream_open_and_fill __pyx_string_tab[178] +#define __pyx_n_u_AVGPRICE __pyx_string_tab[179] +#define __pyx_n_u_AVGPRICE_Stream __pyx_string_tab[180] +#define __pyx_n_u_AVGPRICE_Stream_open_and_fill __pyx_string_tab[181] +#define __pyx_n_u_AllCandleSettings __pyx_string_tab[182] +#define __pyx_n_u_BBANDS __pyx_string_tab[183] +#define __pyx_n_u_BBANDS_Stream __pyx_string_tab[184] +#define __pyx_n_u_BBANDS_Stream_open_and_fill __pyx_string_tab[185] +#define __pyx_n_u_BETA __pyx_string_tab[186] +#define __pyx_n_u_BETA_Stream __pyx_string_tab[187] +#define __pyx_n_u_BETA_Stream_open_and_fill __pyx_string_tab[188] +#define __pyx_n_u_BOP __pyx_string_tab[189] +#define __pyx_n_u_BOP_Stream __pyx_string_tab[190] +#define __pyx_n_u_BOP_Stream_open_and_fill __pyx_string_tab[191] +#define __pyx_n_u_BodyDoji __pyx_string_tab[192] +#define __pyx_n_u_BodyLong __pyx_string_tab[193] +#define __pyx_n_u_BodyShort __pyx_string_tab[194] +#define __pyx_n_u_BodyVeryLong __pyx_string_tab[195] +#define __pyx_n_u_CCI __pyx_string_tab[196] +#define __pyx_n_u_CCI_Stream __pyx_string_tab[197] +#define __pyx_n_u_CCI_Stream_open_and_fill __pyx_string_tab[198] +#define __pyx_n_u_CDL2CROWS __pyx_string_tab[199] +#define __pyx_n_u_CDL2CROWS_Stream __pyx_string_tab[200] +#define __pyx_n_u_CDL2CROWS_Stream_open_and_fill __pyx_string_tab[201] +#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[202] +#define __pyx_n_u_CDL3BLACKCROWS_Stream __pyx_string_tab[203] +#define __pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f __pyx_string_tab[204] +#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[205] +#define __pyx_n_u_CDL3INSIDE_Stream __pyx_string_tab[206] +#define __pyx_n_u_CDL3INSIDE_Stream_open_and_fill __pyx_string_tab[207] +#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[208] +#define __pyx_n_u_CDL3LINESTRIKE_Stream __pyx_string_tab[209] +#define __pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f __pyx_string_tab[210] +#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[211] +#define __pyx_n_u_CDL3OUTSIDE_Stream __pyx_string_tab[212] +#define __pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill __pyx_string_tab[213] +#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[214] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream __pyx_string_tab[215] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream_open_and __pyx_string_tab[216] +#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[217] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream __pyx_string_tab[218] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an __pyx_string_tab[219] +#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[220] +#define __pyx_n_u_CDLABANDONEDBABY_Stream __pyx_string_tab[221] +#define __pyx_n_u_CDLABANDONEDBABY_Stream_open_and __pyx_string_tab[222] +#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[223] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream __pyx_string_tab[224] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream_open_and __pyx_string_tab[225] +#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[226] +#define __pyx_n_u_CDLBELTHOLD_Stream __pyx_string_tab[227] +#define __pyx_n_u_CDLBELTHOLD_Stream_open_and_fill __pyx_string_tab[228] +#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[229] +#define __pyx_n_u_CDLBREAKAWAY_Stream __pyx_string_tab[230] +#define __pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil __pyx_string_tab[231] +#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[232] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream __pyx_string_tab[233] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a __pyx_string_tab[234] +#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[235] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream __pyx_string_tab[236] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream_open __pyx_string_tab[237] +#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[238] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream __pyx_string_tab[239] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream_open_and __pyx_string_tab[240] +#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[241] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream __pyx_string_tab[242] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an __pyx_string_tab[243] +#define __pyx_n_u_CDLDOJI __pyx_string_tab[244] +#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[245] +#define __pyx_n_u_CDLDOJISTAR_Stream __pyx_string_tab[246] +#define __pyx_n_u_CDLDOJISTAR_Stream_open_and_fill __pyx_string_tab[247] +#define __pyx_n_u_CDLDOJI_Stream __pyx_string_tab[248] +#define __pyx_n_u_CDLDOJI_Stream_open_and_fill __pyx_string_tab[249] +#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[250] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream __pyx_string_tab[251] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and __pyx_string_tab[252] +#define __pyx_n_u_CDLENGULFING __pyx_string_tab[253] +#define __pyx_n_u_CDLENGULFING_Stream __pyx_string_tab[254] +#define __pyx_n_u_CDLENGULFING_Stream_open_and_fil __pyx_string_tab[255] +#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[256] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream __pyx_string_tab[257] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a __pyx_string_tab[258] +#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[259] +#define __pyx_n_u_CDLEVENINGSTAR_Stream __pyx_string_tab[260] +#define __pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f __pyx_string_tab[261] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[262] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream __pyx_string_tab[263] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open __pyx_string_tab[264] +#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[265] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream __pyx_string_tab[266] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an __pyx_string_tab[267] +#define __pyx_n_u_CDLHAMMER __pyx_string_tab[268] +#define __pyx_n_u_CDLHAMMER_Stream __pyx_string_tab[269] +#define __pyx_n_u_CDLHAMMER_Stream_open_and_fill __pyx_string_tab[270] +#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[271] +#define __pyx_n_u_CDLHANGINGMAN_Stream __pyx_string_tab[272] +#define __pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi __pyx_string_tab[273] +#define __pyx_n_u_CDLHARAMI __pyx_string_tab[274] +#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[275] +#define __pyx_n_u_CDLHARAMICROSS_Stream __pyx_string_tab[276] +#define __pyx_n_u_CDLHARAMICROSS_Stream_open_and_f __pyx_string_tab[277] +#define __pyx_n_u_CDLHARAMI_Stream __pyx_string_tab[278] +#define __pyx_n_u_CDLHARAMI_Stream_open_and_fill __pyx_string_tab[279] +#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[280] +#define __pyx_n_u_CDLHIGHWAVE_Stream __pyx_string_tab[281] +#define __pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill __pyx_string_tab[282] +#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[283] +#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[284] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream __pyx_string_tab[285] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi __pyx_string_tab[286] +#define __pyx_n_u_CDLHIKKAKE_Stream __pyx_string_tab[287] +#define __pyx_n_u_CDLHIKKAKE_Stream_open_and_fill __pyx_string_tab[288] +#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[289] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream __pyx_string_tab[290] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream_open_and __pyx_string_tab[291] +#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[292] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream __pyx_string_tab[293] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a __pyx_string_tab[294] +#define __pyx_n_u_CDLINNECK __pyx_string_tab[295] +#define __pyx_n_u_CDLINNECK_Stream __pyx_string_tab[296] +#define __pyx_n_u_CDLINNECK_Stream_open_and_fill __pyx_string_tab[297] +#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[298] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream __pyx_string_tab[299] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an __pyx_string_tab[300] +#define __pyx_n_u_CDLKICKING __pyx_string_tab[301] +#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[302] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream __pyx_string_tab[303] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a __pyx_string_tab[304] +#define __pyx_n_u_CDLKICKING_Stream __pyx_string_tab[305] +#define __pyx_n_u_CDLKICKING_Stream_open_and_fill __pyx_string_tab[306] +#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[307] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream __pyx_string_tab[308] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream_open_and __pyx_string_tab[309] +#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[310] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream __pyx_string_tab[311] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an __pyx_string_tab[312] +#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[313] +#define __pyx_n_u_CDLLONGLINE_Stream __pyx_string_tab[314] +#define __pyx_n_u_CDLLONGLINE_Stream_open_and_fill __pyx_string_tab[315] +#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[316] +#define __pyx_n_u_CDLMARUBOZU_Stream __pyx_string_tab[317] +#define __pyx_n_u_CDLMARUBOZU_Stream_open_and_fill __pyx_string_tab[318] +#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[319] +#define __pyx_n_u_CDLMATCHINGLOW_Stream __pyx_string_tab[320] +#define __pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f __pyx_string_tab[321] +#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[322] +#define __pyx_n_u_CDLMATHOLD_Stream __pyx_string_tab[323] +#define __pyx_n_u_CDLMATHOLD_Stream_open_and_fill __pyx_string_tab[324] +#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[325] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream __pyx_string_tab[326] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a __pyx_string_tab[327] +#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[328] +#define __pyx_n_u_CDLMORNINGSTAR_Stream __pyx_string_tab[329] +#define __pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f __pyx_string_tab[330] +#define __pyx_n_u_CDLONNECK __pyx_string_tab[331] +#define __pyx_n_u_CDLONNECK_Stream __pyx_string_tab[332] +#define __pyx_n_u_CDLONNECK_Stream_open_and_fill __pyx_string_tab[333] +#define __pyx_n_u_CDLPIERCING __pyx_string_tab[334] +#define __pyx_n_u_CDLPIERCING_Stream __pyx_string_tab[335] +#define __pyx_n_u_CDLPIERCING_Stream_open_and_fill __pyx_string_tab[336] +#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[337] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream __pyx_string_tab[338] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f __pyx_string_tab[339] +#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[340] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream __pyx_string_tab[341] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream_open __pyx_string_tab[342] +#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[343] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream __pyx_string_tab[344] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream_open_a __pyx_string_tab[345] +#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[346] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream __pyx_string_tab[347] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and __pyx_string_tab[348] +#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[349] +#define __pyx_n_u_CDLSHORTLINE_Stream __pyx_string_tab[350] +#define __pyx_n_u_CDLSHORTLINE_Stream_open_and_fil __pyx_string_tab[351] +#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[352] +#define __pyx_n_u_CDLSPINNINGTOP_Stream __pyx_string_tab[353] +#define __pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f __pyx_string_tab[354] +#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[355] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream __pyx_string_tab[356] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an __pyx_string_tab[357] +#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[358] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream __pyx_string_tab[359] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream_open_and __pyx_string_tab[360] +#define __pyx_n_u_CDLTAKURI __pyx_string_tab[361] +#define __pyx_n_u_CDLTAKURI_Stream __pyx_string_tab[362] +#define __pyx_n_u_CDLTAKURI_Stream_open_and_fill __pyx_string_tab[363] +#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[364] +#define __pyx_n_u_CDLTASUKIGAP_Stream __pyx_string_tab[365] +#define __pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil __pyx_string_tab[366] +#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[367] +#define __pyx_n_u_CDLTHRUSTING_Stream __pyx_string_tab[368] +#define __pyx_n_u_CDLTHRUSTING_Stream_open_and_fil __pyx_string_tab[369] +#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[370] +#define __pyx_n_u_CDLTRISTAR_Stream __pyx_string_tab[371] +#define __pyx_n_u_CDLTRISTAR_Stream_open_and_fill __pyx_string_tab[372] +#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[373] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream __pyx_string_tab[374] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and __pyx_string_tab[375] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[376] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream __pyx_string_tab[377] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a __pyx_string_tab[378] +#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[379] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream __pyx_string_tab[380] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open __pyx_string_tab[381] +#define __pyx_n_u_CEIL __pyx_string_tab[382] +#define __pyx_n_u_CEIL_Stream __pyx_string_tab[383] +#define __pyx_n_u_CEIL_Stream_open_and_fill __pyx_string_tab[384] +#define __pyx_n_u_CMF __pyx_string_tab[385] +#define __pyx_n_u_CMF_Stream __pyx_string_tab[386] +#define __pyx_n_u_CMF_Stream_open_and_fill __pyx_string_tab[387] +#define __pyx_n_u_CMO __pyx_string_tab[388] +#define __pyx_n_u_CMOU __pyx_string_tab[389] +#define __pyx_n_u_CMOU_Stream __pyx_string_tab[390] +#define __pyx_n_u_CMOU_Stream_open_and_fill __pyx_string_tab[391] +#define __pyx_n_u_CMO_Stream __pyx_string_tab[392] +#define __pyx_n_u_CMO_Stream_open_and_fill __pyx_string_tab[393] +#define __pyx_n_u_COPPOCK __pyx_string_tab[394] +#define __pyx_n_u_COPPOCK_Stream __pyx_string_tab[395] +#define __pyx_n_u_COPPOCK_Stream_open_and_fill __pyx_string_tab[396] +#define __pyx_n_u_CORREL __pyx_string_tab[397] +#define __pyx_n_u_CORREL_Stream __pyx_string_tab[398] +#define __pyx_n_u_CORREL_Stream_open_and_fill __pyx_string_tab[399] +#define __pyx_n_u_COS __pyx_string_tab[400] +#define __pyx_n_u_COSH __pyx_string_tab[401] +#define __pyx_n_u_COSH_Stream __pyx_string_tab[402] +#define __pyx_n_u_COSH_Stream_open_and_fill __pyx_string_tab[403] +#define __pyx_n_u_COS_Stream __pyx_string_tab[404] +#define __pyx_n_u_COS_Stream_open_and_fill __pyx_string_tab[405] +#define __pyx_n_u_CUMSUM __pyx_string_tab[406] +#define __pyx_n_u_CUMSUM_Stream __pyx_string_tab[407] +#define __pyx_n_u_CUMSUM_Stream_open_and_fill __pyx_string_tab[408] +#define __pyx_n_u_CVI __pyx_string_tab[409] +#define __pyx_n_u_CVI_Stream __pyx_string_tab[410] +#define __pyx_n_u_CVI_Stream_open_and_fill __pyx_string_tab[411] +#define __pyx_n_u_CandleSettingType __pyx_string_tab[412] +#define __pyx_n_u_DEFAULT __pyx_string_tab[413] +#define __pyx_n_u_DEMA __pyx_string_tab[414] +#define __pyx_n_u_DEMA_Stream __pyx_string_tab[415] +#define __pyx_n_u_DEMA_Stream_open_and_fill __pyx_string_tab[416] +#define __pyx_n_u_DISABLED __pyx_string_tab[417] +#define __pyx_n_u_DIV __pyx_string_tab[418] +#define __pyx_n_u_DIV_Stream __pyx_string_tab[419] +#define __pyx_n_u_DIV_Stream_open_and_fill __pyx_string_tab[420] +#define __pyx_n_u_DONCHIAN __pyx_string_tab[421] +#define __pyx_n_u_DONCHIAN_Stream __pyx_string_tab[422] +#define __pyx_n_u_DONCHIAN_Stream_open_and_fill __pyx_string_tab[423] +#define __pyx_n_u_DPO __pyx_string_tab[424] +#define __pyx_n_u_DPO_Stream __pyx_string_tab[425] +#define __pyx_n_u_DPO_Stream_open_and_fill __pyx_string_tab[426] +#define __pyx_n_u_DX __pyx_string_tab[427] +#define __pyx_n_u_DX_Stream __pyx_string_tab[428] +#define __pyx_n_u_DX_Stream_open_and_fill __pyx_string_tab[429] +#define __pyx_n_u_DataFrame __pyx_string_tab[430] +#define __pyx_n_u_Dot __pyx_string_tab[431] +#define __pyx_n_u_EFI __pyx_string_tab[432] +#define __pyx_n_u_EFI_Stream __pyx_string_tab[433] +#define __pyx_n_u_EFI_Stream_open_and_fill __pyx_string_tab[434] +#define __pyx_n_u_EMA __pyx_string_tab[435] +#define __pyx_n_u_EMA_Stream __pyx_string_tab[436] +#define __pyx_n_u_EMA_Stream_open_and_fill __pyx_string_tab[437] +#define __pyx_n_u_ER __pyx_string_tab[438] +#define __pyx_n_u_ERI __pyx_string_tab[439] +#define __pyx_n_u_ERI_Stream __pyx_string_tab[440] +#define __pyx_n_u_ERI_Stream_open_and_fill __pyx_string_tab[441] +#define __pyx_n_u_ER_Stream __pyx_string_tab[442] +#define __pyx_n_u_ER_Stream_open_and_fill __pyx_string_tab[443] +#define __pyx_n_u_EXP __pyx_string_tab[444] +#define __pyx_n_u_EXP_Stream __pyx_string_tab[445] +#define __pyx_n_u_EXP_Stream_open_and_fill __pyx_string_tab[446] +#define __pyx_n_u_Equal __pyx_string_tab[447] +#define __pyx_n_u_FLOOR __pyx_string_tab[448] +#define __pyx_n_u_FLOOR_Stream __pyx_string_tab[449] +#define __pyx_n_u_FLOOR_Stream_open_and_fill __pyx_string_tab[450] +#define __pyx_n_u_FOSC __pyx_string_tab[451] +#define __pyx_n_u_FOSC_Stream __pyx_string_tab[452] +#define __pyx_n_u_FOSC_Stream_open_and_fill __pyx_string_tab[453] +#define __pyx_n_u_FRACTAL __pyx_string_tab[454] +#define __pyx_n_u_FRACTAL_Stream __pyx_string_tab[455] +#define __pyx_n_u_FRACTAL_Stream_open_and_fill __pyx_string_tab[456] +#define __pyx_n_u_Far __pyx_string_tab[457] +#define __pyx_n_u_Function __pyx_string_tab[458] +#define __pyx_n_u_Function___call __pyx_string_tab[459] +#define __pyx_n_u_Function___call_function __pyx_string_tab[460] +#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[461] +#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[462] +#define __pyx_n_u_Function___init __pyx_string_tab[463] +#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[464] +#define __pyx_n_u_Function___local __pyx_string_tab[465] +#define __pyx_n_u_Function___repr __pyx_string_tab[466] +#define __pyx_n_u_Function___str __pyx_string_tab[467] +#define __pyx_n_u_Function___unicode __pyx_string_tab[468] +#define __pyx_n_u_Function_function_flags __pyx_string_tab[469] +#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[470] +#define __pyx_n_u_Function_get_input_names __pyx_string_tab[471] +#define __pyx_n_u_Function_get_parameters __pyx_string_tab[472] +#define __pyx_n_u_Function_info __pyx_string_tab[473] +#define __pyx_n_u_Function_lookback __pyx_string_tab[474] +#define __pyx_n_u_Function_output_flags __pyx_string_tab[475] +#define __pyx_n_u_Function_output_names __pyx_string_tab[476] +#define __pyx_n_u_Function_outputs __pyx_string_tab[477] +#define __pyx_n_u_Function_run __pyx_string_tab[478] +#define __pyx_n_u_Function_set_function_args __pyx_string_tab[479] +#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[480] +#define __pyx_n_u_Function_set_input_names __pyx_string_tab[481] +#define __pyx_n_u_Function_set_parameters __pyx_string_tab[482] +#define __pyx_n_u_HA __pyx_string_tab[483] +#define __pyx_n_u_HA_Stream __pyx_string_tab[484] +#define __pyx_n_u_HA_Stream_open_and_fill __pyx_string_tab[485] +#define __pyx_n_u_HMA __pyx_string_tab[486] +#define __pyx_n_u_HMA_Stream __pyx_string_tab[487] +#define __pyx_n_u_HMA_Stream_open_and_fill __pyx_string_tab[488] +#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[489] +#define __pyx_n_u_HT_DCPERIOD_Stream __pyx_string_tab[490] +#define __pyx_n_u_HT_DCPERIOD_Stream_open_and_fill __pyx_string_tab[491] +#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[492] +#define __pyx_n_u_HT_DCPHASE_Stream __pyx_string_tab[493] +#define __pyx_n_u_HT_DCPHASE_Stream_open_and_fill __pyx_string_tab[494] +#define __pyx_n_u_HT_PHASOR __pyx_string_tab[495] +#define __pyx_n_u_HT_PHASOR_Stream __pyx_string_tab[496] +#define __pyx_n_u_HT_PHASOR_Stream_open_and_fill __pyx_string_tab[497] +#define __pyx_n_u_HT_SINE __pyx_string_tab[498] +#define __pyx_n_u_HT_SINE_Stream __pyx_string_tab[499] +#define __pyx_n_u_HT_SINE_Stream_open_and_fill __pyx_string_tab[500] +#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[501] +#define __pyx_n_u_HT_TRENDLINE_Stream __pyx_string_tab[502] +#define __pyx_n_u_HT_TRENDLINE_Stream_open_and_fil __pyx_string_tab[503] +#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[504] +#define __pyx_n_u_HT_TRENDMODE_Stream __pyx_string_tab[505] +#define __pyx_n_u_HT_TRENDMODE_Stream_open_and_fil __pyx_string_tab[506] +#define __pyx_n_u_HighLow __pyx_string_tab[507] +#define __pyx_n_u_Histogram __pyx_string_tab[508] +#define __pyx_n_u_IMI __pyx_string_tab[509] +#define __pyx_n_u_IMI_Stream __pyx_string_tab[510] +#define __pyx_n_u_IMI_Stream_open_and_fill __pyx_string_tab[511] +#define __pyx_n_u_InsufficientHistory __pyx_string_tab[512] +#define __pyx_n_u_KAMA __pyx_string_tab[513] +#define __pyx_n_u_KAMA_Stream __pyx_string_tab[514] +#define __pyx_n_u_KAMA_Stream_open_and_fill __pyx_string_tab[515] +#define __pyx_n_u_KC __pyx_string_tab[516] +#define __pyx_n_u_KC_Stream __pyx_string_tab[517] +#define __pyx_n_u_KC_Stream_open_and_fill __pyx_string_tab[518] +#define __pyx_n_u_KDJ __pyx_string_tab[519] +#define __pyx_n_u_KDJ_Stream __pyx_string_tab[520] +#define __pyx_n_u_KDJ_Stream_open_and_fill __pyx_string_tab[521] +#define __pyx_n_u_LINEARREG __pyx_string_tab[522] +#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[523] +#define __pyx_n_u_LINEARREG_ANGLE_Stream __pyx_string_tab[524] +#define __pyx_n_u_LINEARREG_ANGLE_Stream_open_and __pyx_string_tab[525] +#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[526] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream __pyx_string_tab[527] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream_open __pyx_string_tab[528] +#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[529] +#define __pyx_n_u_LINEARREG_SLOPE_Stream __pyx_string_tab[530] +#define __pyx_n_u_LINEARREG_SLOPE_Stream_open_and __pyx_string_tab[531] +#define __pyx_n_u_LINEARREG_Stream __pyx_string_tab[532] +#define __pyx_n_u_LINEARREG_Stream_open_and_fill __pyx_string_tab[533] +#define __pyx_n_u_LN __pyx_string_tab[534] +#define __pyx_n_u_LN_Stream __pyx_string_tab[535] +#define __pyx_n_u_LN_Stream_open_and_fill __pyx_string_tab[536] +#define __pyx_n_u_LOG10 __pyx_string_tab[537] +#define __pyx_n_u_LOG10_Stream __pyx_string_tab[538] +#define __pyx_n_u_LOG10_Stream_open_and_fill __pyx_string_tab[539] +#define __pyx_n_u_Line __pyx_string_tab[540] +#define __pyx_n_u_MA __pyx_string_tab[541] +#define __pyx_n_u_MACD __pyx_string_tab[542] +#define __pyx_n_u_MACDEXT __pyx_string_tab[543] +#define __pyx_n_u_MACDEXT_Stream __pyx_string_tab[544] +#define __pyx_n_u_MACDEXT_Stream_open_and_fill __pyx_string_tab[545] +#define __pyx_n_u_MACDFIX __pyx_string_tab[546] +#define __pyx_n_u_MACDFIX_Stream __pyx_string_tab[547] +#define __pyx_n_u_MACDFIX_Stream_open_and_fill __pyx_string_tab[548] +#define __pyx_n_u_MACD_Stream __pyx_string_tab[549] +#define __pyx_n_u_MACD_Stream_open_and_fill __pyx_string_tab[550] +#define __pyx_n_u_MAMA __pyx_string_tab[551] +#define __pyx_n_u_MAMA_Stream __pyx_string_tab[552] +#define __pyx_n_u_MAMA_Stream_open_and_fill __pyx_string_tab[553] +#define __pyx_n_u_MARKETFI __pyx_string_tab[554] +#define __pyx_n_u_MARKETFI_Stream __pyx_string_tab[555] +#define __pyx_n_u_MARKETFI_Stream_open_and_fill __pyx_string_tab[556] +#define __pyx_n_u_MASSI __pyx_string_tab[557] +#define __pyx_n_u_MASSI_Stream __pyx_string_tab[558] +#define __pyx_n_u_MASSI_Stream_open_and_fill __pyx_string_tab[559] +#define __pyx_n_u_MAVP __pyx_string_tab[560] +#define __pyx_n_u_MAVP_Stream __pyx_string_tab[561] +#define __pyx_n_u_MAVP_Stream_open_and_fill __pyx_string_tab[562] +#define __pyx_n_u_MAX __pyx_string_tab[563] +#define __pyx_n_u_MAXINDEX __pyx_string_tab[564] +#define __pyx_n_u_MAXINDEX_Stream __pyx_string_tab[565] +#define __pyx_n_u_MAXINDEX_Stream_open_and_fill __pyx_string_tab[566] +#define __pyx_n_u_MAX_Stream __pyx_string_tab[567] +#define __pyx_n_u_MAX_Stream_open_and_fill __pyx_string_tab[568] +#define __pyx_n_u_MA_Stream __pyx_string_tab[569] +#define __pyx_n_u_MA_Stream_open_and_fill __pyx_string_tab[570] +#define __pyx_n_u_MA_Type __pyx_string_tab[571] +#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[572] +#define __pyx_n_u_MA_Type___init __pyx_string_tab[573] +#define __pyx_n_u_MEDPRICE __pyx_string_tab[574] +#define __pyx_n_u_MEDPRICE_Stream __pyx_string_tab[575] +#define __pyx_n_u_MEDPRICE_Stream_open_and_fill __pyx_string_tab[576] +#define __pyx_n_u_MFI __pyx_string_tab[577] +#define __pyx_n_u_MFI_Stream __pyx_string_tab[578] +#define __pyx_n_u_MFI_Stream_open_and_fill __pyx_string_tab[579] +#define __pyx_n_u_MIDPOINT __pyx_string_tab[580] +#define __pyx_n_u_MIDPOINT_Stream __pyx_string_tab[581] +#define __pyx_n_u_MIDPOINT_Stream_open_and_fill __pyx_string_tab[582] +#define __pyx_n_u_MIDPRICE __pyx_string_tab[583] +#define __pyx_n_u_MIDPRICE_Stream __pyx_string_tab[584] +#define __pyx_n_u_MIDPRICE_Stream_open_and_fill __pyx_string_tab[585] +#define __pyx_n_u_MIN __pyx_string_tab[586] +#define __pyx_n_u_MININDEX __pyx_string_tab[587] +#define __pyx_n_u_MININDEX_Stream __pyx_string_tab[588] +#define __pyx_n_u_MININDEX_Stream_open_and_fill __pyx_string_tab[589] +#define __pyx_n_u_MINMAX __pyx_string_tab[590] +#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[591] +#define __pyx_n_u_MINMAXINDEX_Stream __pyx_string_tab[592] +#define __pyx_n_u_MINMAXINDEX_Stream_open_and_fill __pyx_string_tab[593] +#define __pyx_n_u_MINMAX_Stream __pyx_string_tab[594] +#define __pyx_n_u_MINMAX_Stream_open_and_fill __pyx_string_tab[595] +#define __pyx_n_u_MINUS_DI __pyx_string_tab[596] +#define __pyx_n_u_MINUS_DI_Stream __pyx_string_tab[597] +#define __pyx_n_u_MINUS_DI_Stream_open_and_fill __pyx_string_tab[598] +#define __pyx_n_u_MINUS_DM __pyx_string_tab[599] +#define __pyx_n_u_MINUS_DM_Stream __pyx_string_tab[600] +#define __pyx_n_u_MINUS_DM_Stream_open_and_fill __pyx_string_tab[601] +#define __pyx_n_u_MIN_Stream __pyx_string_tab[602] +#define __pyx_n_u_MIN_Stream_open_and_fill __pyx_string_tab[603] +#define __pyx_n_u_MOM __pyx_string_tab[604] +#define __pyx_n_u_MOM_Stream __pyx_string_tab[605] +#define __pyx_n_u_MOM_Stream_open_and_fill __pyx_string_tab[606] +#define __pyx_n_u_MULT __pyx_string_tab[607] +#define __pyx_n_u_MULT_Stream __pyx_string_tab[608] +#define __pyx_n_u_MULT_Stream_open_and_fill __pyx_string_tab[609] +#define __pyx_n_u_NATR __pyx_string_tab[610] +#define __pyx_n_u_NATR_Stream __pyx_string_tab[611] +#define __pyx_n_u_NATR_Stream_open_and_fill __pyx_string_tab[612] +#define __pyx_n_u_NONE __pyx_string_tab[613] +#define __pyx_n_u_NVI __pyx_string_tab[614] +#define __pyx_n_u_NVI_Stream __pyx_string_tab[615] +#define __pyx_n_u_NVI_Stream_open_and_fill __pyx_string_tab[616] +#define __pyx_n_u_Near __pyx_string_tab[617] +#define __pyx_n_u_OBV __pyx_string_tab[618] +#define __pyx_n_u_OBV_Stream __pyx_string_tab[619] +#define __pyx_n_u_OBV_Stream_open_and_fill __pyx_string_tab[620] +#define __pyx_n_u_OrderedDict __pyx_string_tab[621] +#define __pyx_n_u_OutRange __pyx_string_tab[622] +#define __pyx_n_u_PERCENTILE __pyx_string_tab[623] +#define __pyx_n_u_PERCENTILE_Stream __pyx_string_tab[624] +#define __pyx_n_u_PERCENTILE_Stream_open_and_fill __pyx_string_tab[625] +#define __pyx_n_u_PERCENTRANK __pyx_string_tab[626] +#define __pyx_n_u_PERCENTRANK_Stream __pyx_string_tab[627] +#define __pyx_n_u_PERCENTRANK_Stream_open_and_fill __pyx_string_tab[628] +#define __pyx_n_u_PLUS_DI __pyx_string_tab[629] +#define __pyx_n_u_PLUS_DI_Stream __pyx_string_tab[630] +#define __pyx_n_u_PLUS_DI_Stream_open_and_fill __pyx_string_tab[631] +#define __pyx_n_u_PLUS_DM __pyx_string_tab[632] +#define __pyx_n_u_PLUS_DM_Stream __pyx_string_tab[633] +#define __pyx_n_u_PLUS_DM_Stream_open_and_fill __pyx_string_tab[634] +#define __pyx_n_u_PPO __pyx_string_tab[635] +#define __pyx_n_u_PPO_Stream __pyx_string_tab[636] +#define __pyx_n_u_PPO_Stream_open_and_fill __pyx_string_tab[637] +#define __pyx_n_u_PVI __pyx_string_tab[638] +#define __pyx_n_u_PVI_Stream __pyx_string_tab[639] +#define __pyx_n_u_PVI_Stream_open_and_fill __pyx_string_tab[640] +#define __pyx_n_u_PVO __pyx_string_tab[641] +#define __pyx_n_u_PVO_Stream __pyx_string_tab[642] +#define __pyx_n_u_PVO_Stream_open_and_fill __pyx_string_tab[643] +#define __pyx_n_u_PVT __pyx_string_tab[644] +#define __pyx_n_u_PVT_Stream __pyx_string_tab[645] +#define __pyx_n_u_PVT_Stream_open_and_fill __pyx_string_tab[646] +#define __pyx_n_u_QSTICK __pyx_string_tab[647] +#define __pyx_n_u_QSTICK_Stream __pyx_string_tab[648] +#define __pyx_n_u_QSTICK_Stream_open_and_fill __pyx_string_tab[649] +#define __pyx_n_u_RMA __pyx_string_tab[650] +#define __pyx_n_u_RMA_Stream __pyx_string_tab[651] +#define __pyx_n_u_RMA_Stream_open_and_fill __pyx_string_tab[652] +#define __pyx_n_u_ROC __pyx_string_tab[653] +#define __pyx_n_u_ROCP __pyx_string_tab[654] +#define __pyx_n_u_ROCP_Stream __pyx_string_tab[655] +#define __pyx_n_u_ROCP_Stream_open_and_fill __pyx_string_tab[656] +#define __pyx_n_u_ROCR __pyx_string_tab[657] +#define __pyx_n_u_ROCR100 __pyx_string_tab[658] +#define __pyx_n_u_ROCR100_Stream __pyx_string_tab[659] +#define __pyx_n_u_ROCR100_Stream_open_and_fill __pyx_string_tab[660] +#define __pyx_n_u_ROCR_Stream __pyx_string_tab[661] +#define __pyx_n_u_ROCR_Stream_open_and_fill __pyx_string_tab[662] +#define __pyx_n_u_ROC_Stream __pyx_string_tab[663] +#define __pyx_n_u_ROC_Stream_open_and_fill __pyx_string_tab[664] +#define __pyx_n_u_RSI __pyx_string_tab[665] +#define __pyx_n_u_RSI_Stream __pyx_string_tab[666] +#define __pyx_n_u_RSI_Stream_open_and_fill __pyx_string_tab[667] +#define __pyx_n_u_RVI __pyx_string_tab[668] +#define __pyx_n_u_RVI_Stream __pyx_string_tab[669] +#define __pyx_n_u_RVI_Stream_open_and_fill __pyx_string_tab[670] +#define __pyx_n_u_RVOL __pyx_string_tab[671] +#define __pyx_n_u_RVOL_Stream __pyx_string_tab[672] +#define __pyx_n_u_RVOL_Stream_open_and_fill __pyx_string_tab[673] +#define __pyx_n_u_RangeType __pyx_string_tab[674] +#define __pyx_n_u_RealBody __pyx_string_tab[675] +#define __pyx_n_u_SAR __pyx_string_tab[676] +#define __pyx_n_u_SAREXT __pyx_string_tab[677] +#define __pyx_n_u_SAREXT_Stream __pyx_string_tab[678] +#define __pyx_n_u_SAREXT_Stream_open_and_fill __pyx_string_tab[679] +#define __pyx_n_u_SAR_Stream __pyx_string_tab[680] +#define __pyx_n_u_SAR_Stream_open_and_fill __pyx_string_tab[681] +#define __pyx_n_u_SIN __pyx_string_tab[682] +#define __pyx_n_u_SINH __pyx_string_tab[683] +#define __pyx_n_u_SINH_Stream __pyx_string_tab[684] +#define __pyx_n_u_SINH_Stream_open_and_fill __pyx_string_tab[685] +#define __pyx_n_u_SIN_Stream __pyx_string_tab[686] +#define __pyx_n_u_SIN_Stream_open_and_fill __pyx_string_tab[687] +#define __pyx_n_u_SMA __pyx_string_tab[688] +#define __pyx_n_u_SMA_Stream __pyx_string_tab[689] +#define __pyx_n_u_SMA_Stream_open_and_fill __pyx_string_tab[690] +#define __pyx_n_u_SMI __pyx_string_tab[691] +#define __pyx_n_u_SMI_Stream __pyx_string_tab[692] +#define __pyx_n_u_SMI_Stream_open_and_fill __pyx_string_tab[693] +#define __pyx_n_u_SQRT __pyx_string_tab[694] +#define __pyx_n_u_SQRT_Stream __pyx_string_tab[695] +#define __pyx_n_u_SQRT_Stream_open_and_fill __pyx_string_tab[696] +#define __pyx_n_u_STDDEV __pyx_string_tab[697] +#define __pyx_n_u_STDDEV_Stream __pyx_string_tab[698] +#define __pyx_n_u_STDDEV_Stream_open_and_fill __pyx_string_tab[699] +#define __pyx_n_u_STOCH __pyx_string_tab[700] +#define __pyx_n_u_STOCHF __pyx_string_tab[701] +#define __pyx_n_u_STOCHF_Stream __pyx_string_tab[702] +#define __pyx_n_u_STOCHF_Stream_open_and_fill __pyx_string_tab[703] +#define __pyx_n_u_STOCHRSI __pyx_string_tab[704] +#define __pyx_n_u_STOCHRSI_Stream __pyx_string_tab[705] +#define __pyx_n_u_STOCHRSI_Stream_open_and_fill __pyx_string_tab[706] +#define __pyx_n_u_STOCH_Stream __pyx_string_tab[707] +#define __pyx_n_u_STOCH_Stream_open_and_fill __pyx_string_tab[708] +#define __pyx_n_u_SUB __pyx_string_tab[709] +#define __pyx_n_u_SUB_Stream __pyx_string_tab[710] +#define __pyx_n_u_SUB_Stream_open_and_fill __pyx_string_tab[711] +#define __pyx_n_u_SUM __pyx_string_tab[712] +#define __pyx_n_u_SUM_Stream __pyx_string_tab[713] +#define __pyx_n_u_SUM_Stream_open_and_fill __pyx_string_tab[714] +#define __pyx_n_u_SUPERTREND __pyx_string_tab[715] +#define __pyx_n_u_SUPERTREND_Stream __pyx_string_tab[716] +#define __pyx_n_u_SUPERTREND_Stream_open_and_fill __pyx_string_tab[717] +#define __pyx_n_u_Series __pyx_string_tab[718] +#define __pyx_n_u_ShadowLong __pyx_string_tab[719] +#define __pyx_n_u_ShadowShort __pyx_string_tab[720] +#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[721] +#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[722] +#define __pyx_n_u_Shadows __pyx_string_tab[723] +#define __pyx_n_u_Stream __pyx_string_tab[724] +#define __pyx_n_u_Stream___copy __pyx_string_tab[725] +#define __pyx_n_u_Stream___deepcopy __pyx_string_tab[726] +#define __pyx_n_u_Stream___reduce __pyx_string_tab[727] +#define __pyx_n_u_T3 __pyx_string_tab[728] +#define __pyx_n_u_T3_Stream __pyx_string_tab[729] +#define __pyx_n_u_T3_Stream_open_and_fill __pyx_string_tab[730] +#define __pyx_n_u_TAN __pyx_string_tab[731] +#define __pyx_n_u_TANH __pyx_string_tab[732] +#define __pyx_n_u_TANH_Stream __pyx_string_tab[733] +#define __pyx_n_u_TANH_Stream_open_and_fill __pyx_string_tab[734] +#define __pyx_n_u_TAN_Stream __pyx_string_tab[735] +#define __pyx_n_u_TAN_Stream_open_and_fill __pyx_string_tab[736] +#define __pyx_n_u_TA_AC __pyx_string_tab[737] +#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[738] +#define __pyx_n_u_TA_ACCBANDS_Clone __pyx_string_tab[739] +#define __pyx_n_u_TA_ACCBANDS_Open __pyx_string_tab[740] +#define __pyx_n_u_TA_ACCBANDS_OpenAndFill __pyx_string_tab[741] +#define __pyx_n_u_TA_ACCBANDS_Peek __pyx_string_tab[742] +#define __pyx_n_u_TA_ACCBANDS_Update __pyx_string_tab[743] +#define __pyx_n_u_TA_ACCBANDS_Value __pyx_string_tab[744] +#define __pyx_n_u_TA_ACOS __pyx_string_tab[745] +#define __pyx_n_u_TA_ACOS_Clone __pyx_string_tab[746] +#define __pyx_n_u_TA_ACOS_Open __pyx_string_tab[747] +#define __pyx_n_u_TA_ACOS_OpenAndFill __pyx_string_tab[748] +#define __pyx_n_u_TA_ACOS_Peek __pyx_string_tab[749] +#define __pyx_n_u_TA_ACOS_Update __pyx_string_tab[750] +#define __pyx_n_u_TA_ACOS_Value __pyx_string_tab[751] +#define __pyx_n_u_TA_AC_Clone __pyx_string_tab[752] +#define __pyx_n_u_TA_AC_Open __pyx_string_tab[753] +#define __pyx_n_u_TA_AC_OpenAndFill __pyx_string_tab[754] +#define __pyx_n_u_TA_AC_Peek __pyx_string_tab[755] +#define __pyx_n_u_TA_AC_Update __pyx_string_tab[756] +#define __pyx_n_u_TA_AC_Value __pyx_string_tab[757] +#define __pyx_n_u_TA_AD __pyx_string_tab[758] +#define __pyx_n_u_TA_ADD __pyx_string_tab[759] +#define __pyx_n_u_TA_ADD_Clone __pyx_string_tab[760] +#define __pyx_n_u_TA_ADD_Open __pyx_string_tab[761] +#define __pyx_n_u_TA_ADD_OpenAndFill __pyx_string_tab[762] +#define __pyx_n_u_TA_ADD_Peek __pyx_string_tab[763] +#define __pyx_n_u_TA_ADD_Update __pyx_string_tab[764] +#define __pyx_n_u_TA_ADD_Value __pyx_string_tab[765] +#define __pyx_n_u_TA_ADOSC __pyx_string_tab[766] +#define __pyx_n_u_TA_ADOSC_Clone __pyx_string_tab[767] +#define __pyx_n_u_TA_ADOSC_Open __pyx_string_tab[768] +#define __pyx_n_u_TA_ADOSC_OpenAndFill __pyx_string_tab[769] +#define __pyx_n_u_TA_ADOSC_Peek __pyx_string_tab[770] +#define __pyx_n_u_TA_ADOSC_Update __pyx_string_tab[771] +#define __pyx_n_u_TA_ADOSC_Value __pyx_string_tab[772] +#define __pyx_n_u_TA_ADR __pyx_string_tab[773] +#define __pyx_n_u_TA_ADR_Clone __pyx_string_tab[774] +#define __pyx_n_u_TA_ADR_Open __pyx_string_tab[775] +#define __pyx_n_u_TA_ADR_OpenAndFill __pyx_string_tab[776] +#define __pyx_n_u_TA_ADR_Peek __pyx_string_tab[777] +#define __pyx_n_u_TA_ADR_Update __pyx_string_tab[778] +#define __pyx_n_u_TA_ADR_Value __pyx_string_tab[779] +#define __pyx_n_u_TA_ADX __pyx_string_tab[780] +#define __pyx_n_u_TA_ADXR __pyx_string_tab[781] +#define __pyx_n_u_TA_ADXR_Clone __pyx_string_tab[782] +#define __pyx_n_u_TA_ADXR_Open __pyx_string_tab[783] +#define __pyx_n_u_TA_ADXR_OpenAndFill __pyx_string_tab[784] +#define __pyx_n_u_TA_ADXR_Peek __pyx_string_tab[785] +#define __pyx_n_u_TA_ADXR_Update __pyx_string_tab[786] +#define __pyx_n_u_TA_ADXR_Value __pyx_string_tab[787] +#define __pyx_n_u_TA_ADX_Clone __pyx_string_tab[788] +#define __pyx_n_u_TA_ADX_Open __pyx_string_tab[789] +#define __pyx_n_u_TA_ADX_OpenAndFill __pyx_string_tab[790] +#define __pyx_n_u_TA_ADX_Peek __pyx_string_tab[791] +#define __pyx_n_u_TA_ADX_Update __pyx_string_tab[792] +#define __pyx_n_u_TA_ADX_Value __pyx_string_tab[793] +#define __pyx_n_u_TA_AD_Clone __pyx_string_tab[794] +#define __pyx_n_u_TA_AD_Open __pyx_string_tab[795] +#define __pyx_n_u_TA_AD_OpenAndFill __pyx_string_tab[796] +#define __pyx_n_u_TA_AD_Peek __pyx_string_tab[797] +#define __pyx_n_u_TA_AD_Update __pyx_string_tab[798] +#define __pyx_n_u_TA_AD_Value __pyx_string_tab[799] +#define __pyx_n_u_TA_AO __pyx_string_tab[800] +#define __pyx_n_u_TA_AO_Clone __pyx_string_tab[801] +#define __pyx_n_u_TA_AO_Open __pyx_string_tab[802] +#define __pyx_n_u_TA_AO_OpenAndFill __pyx_string_tab[803] +#define __pyx_n_u_TA_AO_Peek __pyx_string_tab[804] +#define __pyx_n_u_TA_AO_Update __pyx_string_tab[805] +#define __pyx_n_u_TA_AO_Value __pyx_string_tab[806] +#define __pyx_n_u_TA_APO __pyx_string_tab[807] +#define __pyx_n_u_TA_APO_Clone __pyx_string_tab[808] +#define __pyx_n_u_TA_APO_Open __pyx_string_tab[809] +#define __pyx_n_u_TA_APO_OpenAndFill __pyx_string_tab[810] +#define __pyx_n_u_TA_APO_Peek __pyx_string_tab[811] +#define __pyx_n_u_TA_APO_Update __pyx_string_tab[812] +#define __pyx_n_u_TA_APO_Value __pyx_string_tab[813] +#define __pyx_n_u_TA_AROON __pyx_string_tab[814] +#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[815] +#define __pyx_n_u_TA_AROONOSC_Clone __pyx_string_tab[816] +#define __pyx_n_u_TA_AROONOSC_Open __pyx_string_tab[817] +#define __pyx_n_u_TA_AROONOSC_OpenAndFill __pyx_string_tab[818] +#define __pyx_n_u_TA_AROONOSC_Peek __pyx_string_tab[819] +#define __pyx_n_u_TA_AROONOSC_Update __pyx_string_tab[820] +#define __pyx_n_u_TA_AROONOSC_Value __pyx_string_tab[821] +#define __pyx_n_u_TA_AROON_Clone __pyx_string_tab[822] +#define __pyx_n_u_TA_AROON_Open __pyx_string_tab[823] +#define __pyx_n_u_TA_AROON_OpenAndFill __pyx_string_tab[824] +#define __pyx_n_u_TA_AROON_Peek __pyx_string_tab[825] +#define __pyx_n_u_TA_AROON_Update __pyx_string_tab[826] +#define __pyx_n_u_TA_AROON_Value __pyx_string_tab[827] +#define __pyx_n_u_TA_ASIN __pyx_string_tab[828] +#define __pyx_n_u_TA_ASIN_Clone __pyx_string_tab[829] +#define __pyx_n_u_TA_ASIN_Open __pyx_string_tab[830] +#define __pyx_n_u_TA_ASIN_OpenAndFill __pyx_string_tab[831] +#define __pyx_n_u_TA_ASIN_Peek __pyx_string_tab[832] +#define __pyx_n_u_TA_ASIN_Update __pyx_string_tab[833] +#define __pyx_n_u_TA_ASIN_Value __pyx_string_tab[834] +#define __pyx_n_u_TA_ATAN __pyx_string_tab[835] +#define __pyx_n_u_TA_ATAN_Clone __pyx_string_tab[836] +#define __pyx_n_u_TA_ATAN_Open __pyx_string_tab[837] +#define __pyx_n_u_TA_ATAN_OpenAndFill __pyx_string_tab[838] +#define __pyx_n_u_TA_ATAN_Peek __pyx_string_tab[839] +#define __pyx_n_u_TA_ATAN_Update __pyx_string_tab[840] +#define __pyx_n_u_TA_ATAN_Value __pyx_string_tab[841] +#define __pyx_n_u_TA_ATR __pyx_string_tab[842] +#define __pyx_n_u_TA_ATR_Clone __pyx_string_tab[843] +#define __pyx_n_u_TA_ATR_Open __pyx_string_tab[844] +#define __pyx_n_u_TA_ATR_OpenAndFill __pyx_string_tab[845] +#define __pyx_n_u_TA_ATR_Peek __pyx_string_tab[846] +#define __pyx_n_u_TA_ATR_Update __pyx_string_tab[847] +#define __pyx_n_u_TA_ATR_Value __pyx_string_tab[848] +#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[849] +#define __pyx_n_u_TA_AVGDEV_Clone __pyx_string_tab[850] +#define __pyx_n_u_TA_AVGDEV_Open __pyx_string_tab[851] +#define __pyx_n_u_TA_AVGDEV_OpenAndFill __pyx_string_tab[852] +#define __pyx_n_u_TA_AVGDEV_Peek __pyx_string_tab[853] +#define __pyx_n_u_TA_AVGDEV_Update __pyx_string_tab[854] +#define __pyx_n_u_TA_AVGDEV_Value __pyx_string_tab[855] +#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[856] +#define __pyx_n_u_TA_AVGPRICE_Clone __pyx_string_tab[857] +#define __pyx_n_u_TA_AVGPRICE_Open __pyx_string_tab[858] +#define __pyx_n_u_TA_AVGPRICE_OpenAndFill __pyx_string_tab[859] +#define __pyx_n_u_TA_AVGPRICE_Peek __pyx_string_tab[860] +#define __pyx_n_u_TA_AVGPRICE_Update __pyx_string_tab[861] +#define __pyx_n_u_TA_AVGPRICE_Value __pyx_string_tab[862] +#define __pyx_n_u_TA_BBANDS __pyx_string_tab[863] +#define __pyx_n_u_TA_BBANDS_Clone __pyx_string_tab[864] +#define __pyx_n_u_TA_BBANDS_Open __pyx_string_tab[865] +#define __pyx_n_u_TA_BBANDS_OpenAndFill __pyx_string_tab[866] +#define __pyx_n_u_TA_BBANDS_Peek __pyx_string_tab[867] +#define __pyx_n_u_TA_BBANDS_Update __pyx_string_tab[868] +#define __pyx_n_u_TA_BBANDS_Value __pyx_string_tab[869] +#define __pyx_n_u_TA_BETA __pyx_string_tab[870] +#define __pyx_n_u_TA_BETA_Clone __pyx_string_tab[871] +#define __pyx_n_u_TA_BETA_Open __pyx_string_tab[872] +#define __pyx_n_u_TA_BETA_OpenAndFill __pyx_string_tab[873] +#define __pyx_n_u_TA_BETA_Peek __pyx_string_tab[874] +#define __pyx_n_u_TA_BETA_Update __pyx_string_tab[875] +#define __pyx_n_u_TA_BETA_Value __pyx_string_tab[876] +#define __pyx_n_u_TA_BOP __pyx_string_tab[877] +#define __pyx_n_u_TA_BOP_Clone __pyx_string_tab[878] +#define __pyx_n_u_TA_BOP_Open __pyx_string_tab[879] +#define __pyx_n_u_TA_BOP_OpenAndFill __pyx_string_tab[880] +#define __pyx_n_u_TA_BOP_Peek __pyx_string_tab[881] +#define __pyx_n_u_TA_BOP_Update __pyx_string_tab[882] +#define __pyx_n_u_TA_BOP_Value __pyx_string_tab[883] +#define __pyx_n_u_TA_CCI __pyx_string_tab[884] +#define __pyx_n_u_TA_CCI_Clone __pyx_string_tab[885] +#define __pyx_n_u_TA_CCI_Open __pyx_string_tab[886] +#define __pyx_n_u_TA_CCI_OpenAndFill __pyx_string_tab[887] +#define __pyx_n_u_TA_CCI_Peek __pyx_string_tab[888] +#define __pyx_n_u_TA_CCI_Update __pyx_string_tab[889] +#define __pyx_n_u_TA_CCI_Value __pyx_string_tab[890] +#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[891] +#define __pyx_n_u_TA_CDL2CROWS_Clone __pyx_string_tab[892] +#define __pyx_n_u_TA_CDL2CROWS_Open __pyx_string_tab[893] +#define __pyx_n_u_TA_CDL2CROWS_OpenAndFill __pyx_string_tab[894] +#define __pyx_n_u_TA_CDL2CROWS_Peek __pyx_string_tab[895] +#define __pyx_n_u_TA_CDL2CROWS_Update __pyx_string_tab[896] +#define __pyx_n_u_TA_CDL2CROWS_Value __pyx_string_tab[897] +#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[898] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Clone __pyx_string_tab[899] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Open __pyx_string_tab[900] +#define __pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill __pyx_string_tab[901] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Peek __pyx_string_tab[902] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Update __pyx_string_tab[903] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Value __pyx_string_tab[904] +#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[905] +#define __pyx_n_u_TA_CDL3INSIDE_Clone __pyx_string_tab[906] +#define __pyx_n_u_TA_CDL3INSIDE_Open __pyx_string_tab[907] +#define __pyx_n_u_TA_CDL3INSIDE_OpenAndFill __pyx_string_tab[908] +#define __pyx_n_u_TA_CDL3INSIDE_Peek __pyx_string_tab[909] +#define __pyx_n_u_TA_CDL3INSIDE_Update __pyx_string_tab[910] +#define __pyx_n_u_TA_CDL3INSIDE_Value __pyx_string_tab[911] +#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[912] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Clone __pyx_string_tab[913] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Open __pyx_string_tab[914] +#define __pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill __pyx_string_tab[915] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Peek __pyx_string_tab[916] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Update __pyx_string_tab[917] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Value __pyx_string_tab[918] +#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[919] +#define __pyx_n_u_TA_CDL3OUTSIDE_Clone __pyx_string_tab[920] +#define __pyx_n_u_TA_CDL3OUTSIDE_Open __pyx_string_tab[921] +#define __pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill __pyx_string_tab[922] +#define __pyx_n_u_TA_CDL3OUTSIDE_Peek __pyx_string_tab[923] +#define __pyx_n_u_TA_CDL3OUTSIDE_Update __pyx_string_tab[924] +#define __pyx_n_u_TA_CDL3OUTSIDE_Value __pyx_string_tab[925] +#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[926] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Clone __pyx_string_tab[927] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Open __pyx_string_tab[928] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill __pyx_string_tab[929] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Peek __pyx_string_tab[930] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Update __pyx_string_tab[931] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Value __pyx_string_tab[932] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[933] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Clone __pyx_string_tab[934] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Open __pyx_string_tab[935] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill __pyx_string_tab[936] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Peek __pyx_string_tab[937] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Update __pyx_string_tab[938] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Value __pyx_string_tab[939] +#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[940] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Clone __pyx_string_tab[941] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Open __pyx_string_tab[942] +#define __pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill __pyx_string_tab[943] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Peek __pyx_string_tab[944] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Update __pyx_string_tab[945] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Value __pyx_string_tab[946] +#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[947] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Clone __pyx_string_tab[948] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Open __pyx_string_tab[949] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill __pyx_string_tab[950] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Peek __pyx_string_tab[951] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Update __pyx_string_tab[952] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Value __pyx_string_tab[953] +#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[954] +#define __pyx_n_u_TA_CDLBELTHOLD_Clone __pyx_string_tab[955] +#define __pyx_n_u_TA_CDLBELTHOLD_Open __pyx_string_tab[956] +#define __pyx_n_u_TA_CDLBELTHOLD_OpenAndFill __pyx_string_tab[957] +#define __pyx_n_u_TA_CDLBELTHOLD_Peek __pyx_string_tab[958] +#define __pyx_n_u_TA_CDLBELTHOLD_Update __pyx_string_tab[959] +#define __pyx_n_u_TA_CDLBELTHOLD_Value __pyx_string_tab[960] +#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[961] +#define __pyx_n_u_TA_CDLBREAKAWAY_Clone __pyx_string_tab[962] +#define __pyx_n_u_TA_CDLBREAKAWAY_Open __pyx_string_tab[963] +#define __pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill __pyx_string_tab[964] +#define __pyx_n_u_TA_CDLBREAKAWAY_Peek __pyx_string_tab[965] +#define __pyx_n_u_TA_CDLBREAKAWAY_Update __pyx_string_tab[966] +#define __pyx_n_u_TA_CDLBREAKAWAY_Value __pyx_string_tab[967] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[968] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone __pyx_string_tab[969] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open __pyx_string_tab[970] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil __pyx_string_tab[971] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek __pyx_string_tab[972] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update __pyx_string_tab[973] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value __pyx_string_tab[974] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[975] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone __pyx_string_tab[976] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Open __pyx_string_tab[977] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi __pyx_string_tab[978] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek __pyx_string_tab[979] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Update __pyx_string_tab[980] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Value __pyx_string_tab[981] +#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[982] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Clone __pyx_string_tab[983] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Open __pyx_string_tab[984] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill __pyx_string_tab[985] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Peek __pyx_string_tab[986] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Update __pyx_string_tab[987] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Value __pyx_string_tab[988] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[989] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone __pyx_string_tab[990] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Open __pyx_string_tab[991] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill __pyx_string_tab[992] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek __pyx_string_tab[993] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Update __pyx_string_tab[994] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Value __pyx_string_tab[995] +#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[996] +#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[997] +#define __pyx_n_u_TA_CDLDOJISTAR_Clone __pyx_string_tab[998] +#define __pyx_n_u_TA_CDLDOJISTAR_Open __pyx_string_tab[999] +#define __pyx_n_u_TA_CDLDOJISTAR_OpenAndFill __pyx_string_tab[1000] +#define __pyx_n_u_TA_CDLDOJISTAR_Peek __pyx_string_tab[1001] +#define __pyx_n_u_TA_CDLDOJISTAR_Update __pyx_string_tab[1002] +#define __pyx_n_u_TA_CDLDOJISTAR_Value __pyx_string_tab[1003] +#define __pyx_n_u_TA_CDLDOJI_Clone __pyx_string_tab[1004] +#define __pyx_n_u_TA_CDLDOJI_Open __pyx_string_tab[1005] +#define __pyx_n_u_TA_CDLDOJI_OpenAndFill __pyx_string_tab[1006] +#define __pyx_n_u_TA_CDLDOJI_Peek __pyx_string_tab[1007] +#define __pyx_n_u_TA_CDLDOJI_Update __pyx_string_tab[1008] +#define __pyx_n_u_TA_CDLDOJI_Value __pyx_string_tab[1009] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[1010] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone __pyx_string_tab[1011] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Open __pyx_string_tab[1012] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill __pyx_string_tab[1013] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek __pyx_string_tab[1014] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Update __pyx_string_tab[1015] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Value __pyx_string_tab[1016] +#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[1017] +#define __pyx_n_u_TA_CDLENGULFING_Clone __pyx_string_tab[1018] +#define __pyx_n_u_TA_CDLENGULFING_Open __pyx_string_tab[1019] +#define __pyx_n_u_TA_CDLENGULFING_OpenAndFill __pyx_string_tab[1020] +#define __pyx_n_u_TA_CDLENGULFING_Peek __pyx_string_tab[1021] +#define __pyx_n_u_TA_CDLENGULFING_Update __pyx_string_tab[1022] +#define __pyx_n_u_TA_CDLENGULFING_Value __pyx_string_tab[1023] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[1024] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone __pyx_string_tab[1025] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Open __pyx_string_tab[1026] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil __pyx_string_tab[1027] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek __pyx_string_tab[1028] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Update __pyx_string_tab[1029] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Value __pyx_string_tab[1030] +#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[1031] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Clone __pyx_string_tab[1032] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Open __pyx_string_tab[1033] +#define __pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill __pyx_string_tab[1034] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Peek __pyx_string_tab[1035] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Update __pyx_string_tab[1036] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Value __pyx_string_tab[1037] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[1038] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone __pyx_string_tab[1039] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open __pyx_string_tab[1040] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi __pyx_string_tab[1041] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek __pyx_string_tab[1042] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update __pyx_string_tab[1043] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value __pyx_string_tab[1044] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[1045] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone __pyx_string_tab[1046] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Open __pyx_string_tab[1047] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill __pyx_string_tab[1048] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek __pyx_string_tab[1049] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Update __pyx_string_tab[1050] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Value __pyx_string_tab[1051] +#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[1052] +#define __pyx_n_u_TA_CDLHAMMER_Clone __pyx_string_tab[1053] +#define __pyx_n_u_TA_CDLHAMMER_Open __pyx_string_tab[1054] +#define __pyx_n_u_TA_CDLHAMMER_OpenAndFill __pyx_string_tab[1055] +#define __pyx_n_u_TA_CDLHAMMER_Peek __pyx_string_tab[1056] +#define __pyx_n_u_TA_CDLHAMMER_Update __pyx_string_tab[1057] +#define __pyx_n_u_TA_CDLHAMMER_Value __pyx_string_tab[1058] +#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[1059] +#define __pyx_n_u_TA_CDLHANGINGMAN_Clone __pyx_string_tab[1060] +#define __pyx_n_u_TA_CDLHANGINGMAN_Open __pyx_string_tab[1061] +#define __pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill __pyx_string_tab[1062] +#define __pyx_n_u_TA_CDLHANGINGMAN_Peek __pyx_string_tab[1063] +#define __pyx_n_u_TA_CDLHANGINGMAN_Update __pyx_string_tab[1064] +#define __pyx_n_u_TA_CDLHANGINGMAN_Value __pyx_string_tab[1065] +#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[1066] +#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[1067] +#define __pyx_n_u_TA_CDLHARAMICROSS_Clone __pyx_string_tab[1068] +#define __pyx_n_u_TA_CDLHARAMICROSS_Open __pyx_string_tab[1069] +#define __pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill __pyx_string_tab[1070] +#define __pyx_n_u_TA_CDLHARAMICROSS_Peek __pyx_string_tab[1071] +#define __pyx_n_u_TA_CDLHARAMICROSS_Update __pyx_string_tab[1072] +#define __pyx_n_u_TA_CDLHARAMICROSS_Value __pyx_string_tab[1073] +#define __pyx_n_u_TA_CDLHARAMI_Clone __pyx_string_tab[1074] +#define __pyx_n_u_TA_CDLHARAMI_Open __pyx_string_tab[1075] +#define __pyx_n_u_TA_CDLHARAMI_OpenAndFill __pyx_string_tab[1076] +#define __pyx_n_u_TA_CDLHARAMI_Peek __pyx_string_tab[1077] +#define __pyx_n_u_TA_CDLHARAMI_Update __pyx_string_tab[1078] +#define __pyx_n_u_TA_CDLHARAMI_Value __pyx_string_tab[1079] +#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[1080] +#define __pyx_n_u_TA_CDLHIGHWAVE_Clone __pyx_string_tab[1081] +#define __pyx_n_u_TA_CDLHIGHWAVE_Open __pyx_string_tab[1082] +#define __pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill __pyx_string_tab[1083] +#define __pyx_n_u_TA_CDLHIGHWAVE_Peek __pyx_string_tab[1084] +#define __pyx_n_u_TA_CDLHIGHWAVE_Update __pyx_string_tab[1085] +#define __pyx_n_u_TA_CDLHIGHWAVE_Value __pyx_string_tab[1086] +#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[1087] +#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[1088] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Clone __pyx_string_tab[1089] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Open __pyx_string_tab[1090] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill __pyx_string_tab[1091] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Peek __pyx_string_tab[1092] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Update __pyx_string_tab[1093] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Value __pyx_string_tab[1094] +#define __pyx_n_u_TA_CDLHIKKAKE_Clone __pyx_string_tab[1095] +#define __pyx_n_u_TA_CDLHIKKAKE_Open __pyx_string_tab[1096] +#define __pyx_n_u_TA_CDLHIKKAKE_OpenAndFill __pyx_string_tab[1097] +#define __pyx_n_u_TA_CDLHIKKAKE_Peek __pyx_string_tab[1098] +#define __pyx_n_u_TA_CDLHIKKAKE_Update __pyx_string_tab[1099] +#define __pyx_n_u_TA_CDLHIKKAKE_Value __pyx_string_tab[1100] +#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[1101] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Clone __pyx_string_tab[1102] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Open __pyx_string_tab[1103] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill __pyx_string_tab[1104] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Peek __pyx_string_tab[1105] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Update __pyx_string_tab[1106] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Value __pyx_string_tab[1107] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[1108] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone __pyx_string_tab[1109] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Open __pyx_string_tab[1110] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil __pyx_string_tab[1111] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek __pyx_string_tab[1112] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Update __pyx_string_tab[1113] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Value __pyx_string_tab[1114] +#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[1115] +#define __pyx_n_u_TA_CDLINNECK_Clone __pyx_string_tab[1116] +#define __pyx_n_u_TA_CDLINNECK_Open __pyx_string_tab[1117] +#define __pyx_n_u_TA_CDLINNECK_OpenAndFill __pyx_string_tab[1118] +#define __pyx_n_u_TA_CDLINNECK_Peek __pyx_string_tab[1119] +#define __pyx_n_u_TA_CDLINNECK_Update __pyx_string_tab[1120] +#define __pyx_n_u_TA_CDLINNECK_Value __pyx_string_tab[1121] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[1122] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Clone __pyx_string_tab[1123] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Open __pyx_string_tab[1124] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill __pyx_string_tab[1125] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Peek __pyx_string_tab[1126] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Update __pyx_string_tab[1127] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Value __pyx_string_tab[1128] +#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[1129] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[1130] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone __pyx_string_tab[1131] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Open __pyx_string_tab[1132] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil __pyx_string_tab[1133] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek __pyx_string_tab[1134] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Update __pyx_string_tab[1135] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Value __pyx_string_tab[1136] +#define __pyx_n_u_TA_CDLKICKING_Clone __pyx_string_tab[1137] +#define __pyx_n_u_TA_CDLKICKING_Open __pyx_string_tab[1138] +#define __pyx_n_u_TA_CDLKICKING_OpenAndFill __pyx_string_tab[1139] +#define __pyx_n_u_TA_CDLKICKING_Peek __pyx_string_tab[1140] +#define __pyx_n_u_TA_CDLKICKING_Update __pyx_string_tab[1141] +#define __pyx_n_u_TA_CDLKICKING_Value __pyx_string_tab[1142] +#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[1143] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Clone __pyx_string_tab[1144] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Open __pyx_string_tab[1145] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill __pyx_string_tab[1146] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Peek __pyx_string_tab[1147] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Update __pyx_string_tab[1148] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Value __pyx_string_tab[1149] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[1150] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone __pyx_string_tab[1151] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open __pyx_string_tab[1152] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill __pyx_string_tab[1153] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek __pyx_string_tab[1154] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update __pyx_string_tab[1155] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value __pyx_string_tab[1156] +#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[1157] +#define __pyx_n_u_TA_CDLLONGLINE_Clone __pyx_string_tab[1158] +#define __pyx_n_u_TA_CDLLONGLINE_Open __pyx_string_tab[1159] +#define __pyx_n_u_TA_CDLLONGLINE_OpenAndFill __pyx_string_tab[1160] +#define __pyx_n_u_TA_CDLLONGLINE_Peek __pyx_string_tab[1161] +#define __pyx_n_u_TA_CDLLONGLINE_Update __pyx_string_tab[1162] +#define __pyx_n_u_TA_CDLLONGLINE_Value __pyx_string_tab[1163] +#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[1164] +#define __pyx_n_u_TA_CDLMARUBOZU_Clone __pyx_string_tab[1165] +#define __pyx_n_u_TA_CDLMARUBOZU_Open __pyx_string_tab[1166] +#define __pyx_n_u_TA_CDLMARUBOZU_OpenAndFill __pyx_string_tab[1167] +#define __pyx_n_u_TA_CDLMARUBOZU_Peek __pyx_string_tab[1168] +#define __pyx_n_u_TA_CDLMARUBOZU_Update __pyx_string_tab[1169] +#define __pyx_n_u_TA_CDLMARUBOZU_Value __pyx_string_tab[1170] +#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[1171] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Clone __pyx_string_tab[1172] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Open __pyx_string_tab[1173] +#define __pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill __pyx_string_tab[1174] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Peek __pyx_string_tab[1175] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Update __pyx_string_tab[1176] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Value __pyx_string_tab[1177] +#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[1178] +#define __pyx_n_u_TA_CDLMATHOLD_Clone __pyx_string_tab[1179] +#define __pyx_n_u_TA_CDLMATHOLD_Open __pyx_string_tab[1180] +#define __pyx_n_u_TA_CDLMATHOLD_OpenAndFill __pyx_string_tab[1181] +#define __pyx_n_u_TA_CDLMATHOLD_Peek __pyx_string_tab[1182] +#define __pyx_n_u_TA_CDLMATHOLD_Update __pyx_string_tab[1183] +#define __pyx_n_u_TA_CDLMATHOLD_Value __pyx_string_tab[1184] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[1185] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone __pyx_string_tab[1186] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Open __pyx_string_tab[1187] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil __pyx_string_tab[1188] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek __pyx_string_tab[1189] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Update __pyx_string_tab[1190] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Value __pyx_string_tab[1191] +#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[1192] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Clone __pyx_string_tab[1193] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Open __pyx_string_tab[1194] +#define __pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill __pyx_string_tab[1195] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Peek __pyx_string_tab[1196] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Update __pyx_string_tab[1197] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Value __pyx_string_tab[1198] +#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[1199] +#define __pyx_n_u_TA_CDLONNECK_Clone __pyx_string_tab[1200] +#define __pyx_n_u_TA_CDLONNECK_Open __pyx_string_tab[1201] +#define __pyx_n_u_TA_CDLONNECK_OpenAndFill __pyx_string_tab[1202] +#define __pyx_n_u_TA_CDLONNECK_Peek __pyx_string_tab[1203] +#define __pyx_n_u_TA_CDLONNECK_Update __pyx_string_tab[1204] +#define __pyx_n_u_TA_CDLONNECK_Value __pyx_string_tab[1205] +#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[1206] +#define __pyx_n_u_TA_CDLPIERCING_Clone __pyx_string_tab[1207] +#define __pyx_n_u_TA_CDLPIERCING_Open __pyx_string_tab[1208] +#define __pyx_n_u_TA_CDLPIERCING_OpenAndFill __pyx_string_tab[1209] +#define __pyx_n_u_TA_CDLPIERCING_Peek __pyx_string_tab[1210] +#define __pyx_n_u_TA_CDLPIERCING_Update __pyx_string_tab[1211] +#define __pyx_n_u_TA_CDLPIERCING_Value __pyx_string_tab[1212] +#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[1213] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Clone __pyx_string_tab[1214] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Open __pyx_string_tab[1215] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill __pyx_string_tab[1216] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Peek __pyx_string_tab[1217] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Update __pyx_string_tab[1218] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Value __pyx_string_tab[1219] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[1220] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Clone __pyx_string_tab[1221] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Open __pyx_string_tab[1222] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi __pyx_string_tab[1223] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Peek __pyx_string_tab[1224] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Update __pyx_string_tab[1225] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Value __pyx_string_tab[1226] +#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[1227] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Clone __pyx_string_tab[1228] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Open __pyx_string_tab[1229] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil __pyx_string_tab[1230] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Peek __pyx_string_tab[1231] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Update __pyx_string_tab[1232] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Value __pyx_string_tab[1233] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[1234] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Clone __pyx_string_tab[1235] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Open __pyx_string_tab[1236] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill __pyx_string_tab[1237] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Peek __pyx_string_tab[1238] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Update __pyx_string_tab[1239] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Value __pyx_string_tab[1240] +#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[1241] +#define __pyx_n_u_TA_CDLSHORTLINE_Clone __pyx_string_tab[1242] +#define __pyx_n_u_TA_CDLSHORTLINE_Open __pyx_string_tab[1243] +#define __pyx_n_u_TA_CDLSHORTLINE_OpenAndFill __pyx_string_tab[1244] +#define __pyx_n_u_TA_CDLSHORTLINE_Peek __pyx_string_tab[1245] +#define __pyx_n_u_TA_CDLSHORTLINE_Update __pyx_string_tab[1246] +#define __pyx_n_u_TA_CDLSHORTLINE_Value __pyx_string_tab[1247] +#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[1248] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Clone __pyx_string_tab[1249] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Open __pyx_string_tab[1250] +#define __pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill __pyx_string_tab[1251] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Peek __pyx_string_tab[1252] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Update __pyx_string_tab[1253] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Value __pyx_string_tab[1254] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[1255] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Clone __pyx_string_tab[1256] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Open __pyx_string_tab[1257] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill __pyx_string_tab[1258] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Peek __pyx_string_tab[1259] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Update __pyx_string_tab[1260] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Value __pyx_string_tab[1261] +#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[1262] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Clone __pyx_string_tab[1263] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Open __pyx_string_tab[1264] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill __pyx_string_tab[1265] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Peek __pyx_string_tab[1266] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Update __pyx_string_tab[1267] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Value __pyx_string_tab[1268] +#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[1269] +#define __pyx_n_u_TA_CDLTAKURI_Clone __pyx_string_tab[1270] +#define __pyx_n_u_TA_CDLTAKURI_Open __pyx_string_tab[1271] +#define __pyx_n_u_TA_CDLTAKURI_OpenAndFill __pyx_string_tab[1272] +#define __pyx_n_u_TA_CDLTAKURI_Peek __pyx_string_tab[1273] +#define __pyx_n_u_TA_CDLTAKURI_Update __pyx_string_tab[1274] +#define __pyx_n_u_TA_CDLTAKURI_Value __pyx_string_tab[1275] +#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[1276] +#define __pyx_n_u_TA_CDLTASUKIGAP_Clone __pyx_string_tab[1277] +#define __pyx_n_u_TA_CDLTASUKIGAP_Open __pyx_string_tab[1278] +#define __pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill __pyx_string_tab[1279] +#define __pyx_n_u_TA_CDLTASUKIGAP_Peek __pyx_string_tab[1280] +#define __pyx_n_u_TA_CDLTASUKIGAP_Update __pyx_string_tab[1281] +#define __pyx_n_u_TA_CDLTASUKIGAP_Value __pyx_string_tab[1282] +#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[1283] +#define __pyx_n_u_TA_CDLTHRUSTING_Clone __pyx_string_tab[1284] +#define __pyx_n_u_TA_CDLTHRUSTING_Open __pyx_string_tab[1285] +#define __pyx_n_u_TA_CDLTHRUSTING_OpenAndFill __pyx_string_tab[1286] +#define __pyx_n_u_TA_CDLTHRUSTING_Peek __pyx_string_tab[1287] +#define __pyx_n_u_TA_CDLTHRUSTING_Update __pyx_string_tab[1288] +#define __pyx_n_u_TA_CDLTHRUSTING_Value __pyx_string_tab[1289] +#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[1290] +#define __pyx_n_u_TA_CDLTRISTAR_Clone __pyx_string_tab[1291] +#define __pyx_n_u_TA_CDLTRISTAR_Open __pyx_string_tab[1292] +#define __pyx_n_u_TA_CDLTRISTAR_OpenAndFill __pyx_string_tab[1293] +#define __pyx_n_u_TA_CDLTRISTAR_Peek __pyx_string_tab[1294] +#define __pyx_n_u_TA_CDLTRISTAR_Update __pyx_string_tab[1295] +#define __pyx_n_u_TA_CDLTRISTAR_Value __pyx_string_tab[1296] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[1297] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Clone __pyx_string_tab[1298] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Open __pyx_string_tab[1299] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill __pyx_string_tab[1300] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Peek __pyx_string_tab[1301] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Update __pyx_string_tab[1302] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Value __pyx_string_tab[1303] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[1304] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone __pyx_string_tab[1305] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open __pyx_string_tab[1306] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil __pyx_string_tab[1307] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek __pyx_string_tab[1308] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update __pyx_string_tab[1309] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value __pyx_string_tab[1310] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[1311] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone __pyx_string_tab[1312] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open __pyx_string_tab[1313] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi __pyx_string_tab[1314] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek __pyx_string_tab[1315] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update __pyx_string_tab[1316] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value __pyx_string_tab[1317] +#define __pyx_n_u_TA_CEIL __pyx_string_tab[1318] +#define __pyx_n_u_TA_CEIL_Clone __pyx_string_tab[1319] +#define __pyx_n_u_TA_CEIL_Open __pyx_string_tab[1320] +#define __pyx_n_u_TA_CEIL_OpenAndFill __pyx_string_tab[1321] +#define __pyx_n_u_TA_CEIL_Peek __pyx_string_tab[1322] +#define __pyx_n_u_TA_CEIL_Update __pyx_string_tab[1323] +#define __pyx_n_u_TA_CEIL_Value __pyx_string_tab[1324] +#define __pyx_n_u_TA_CMF __pyx_string_tab[1325] +#define __pyx_n_u_TA_CMF_Clone __pyx_string_tab[1326] +#define __pyx_n_u_TA_CMF_Open __pyx_string_tab[1327] +#define __pyx_n_u_TA_CMF_OpenAndFill __pyx_string_tab[1328] +#define __pyx_n_u_TA_CMF_Peek __pyx_string_tab[1329] +#define __pyx_n_u_TA_CMF_Update __pyx_string_tab[1330] +#define __pyx_n_u_TA_CMF_Value __pyx_string_tab[1331] +#define __pyx_n_u_TA_CMO __pyx_string_tab[1332] +#define __pyx_n_u_TA_CMOU __pyx_string_tab[1333] +#define __pyx_n_u_TA_CMOU_Clone __pyx_string_tab[1334] +#define __pyx_n_u_TA_CMOU_Open __pyx_string_tab[1335] +#define __pyx_n_u_TA_CMOU_OpenAndFill __pyx_string_tab[1336] +#define __pyx_n_u_TA_CMOU_Peek __pyx_string_tab[1337] +#define __pyx_n_u_TA_CMOU_Update __pyx_string_tab[1338] +#define __pyx_n_u_TA_CMOU_Value __pyx_string_tab[1339] +#define __pyx_n_u_TA_CMO_Clone __pyx_string_tab[1340] +#define __pyx_n_u_TA_CMO_Open __pyx_string_tab[1341] +#define __pyx_n_u_TA_CMO_OpenAndFill __pyx_string_tab[1342] +#define __pyx_n_u_TA_CMO_Peek __pyx_string_tab[1343] +#define __pyx_n_u_TA_CMO_Update __pyx_string_tab[1344] +#define __pyx_n_u_TA_CMO_Value __pyx_string_tab[1345] +#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[1346] +#define __pyx_n_u_TA_COPPOCK_Clone __pyx_string_tab[1347] +#define __pyx_n_u_TA_COPPOCK_Open __pyx_string_tab[1348] +#define __pyx_n_u_TA_COPPOCK_OpenAndFill __pyx_string_tab[1349] +#define __pyx_n_u_TA_COPPOCK_Peek __pyx_string_tab[1350] +#define __pyx_n_u_TA_COPPOCK_Update __pyx_string_tab[1351] +#define __pyx_n_u_TA_COPPOCK_Value __pyx_string_tab[1352] +#define __pyx_n_u_TA_CORREL __pyx_string_tab[1353] +#define __pyx_n_u_TA_CORREL_Clone __pyx_string_tab[1354] +#define __pyx_n_u_TA_CORREL_Open __pyx_string_tab[1355] +#define __pyx_n_u_TA_CORREL_OpenAndFill __pyx_string_tab[1356] +#define __pyx_n_u_TA_CORREL_Peek __pyx_string_tab[1357] +#define __pyx_n_u_TA_CORREL_Update __pyx_string_tab[1358] +#define __pyx_n_u_TA_CORREL_Value __pyx_string_tab[1359] +#define __pyx_n_u_TA_COS __pyx_string_tab[1360] +#define __pyx_n_u_TA_COSH __pyx_string_tab[1361] +#define __pyx_n_u_TA_COSH_Clone __pyx_string_tab[1362] +#define __pyx_n_u_TA_COSH_Open __pyx_string_tab[1363] +#define __pyx_n_u_TA_COSH_OpenAndFill __pyx_string_tab[1364] +#define __pyx_n_u_TA_COSH_Peek __pyx_string_tab[1365] +#define __pyx_n_u_TA_COSH_Update __pyx_string_tab[1366] +#define __pyx_n_u_TA_COSH_Value __pyx_string_tab[1367] +#define __pyx_n_u_TA_COS_Clone __pyx_string_tab[1368] +#define __pyx_n_u_TA_COS_Open __pyx_string_tab[1369] +#define __pyx_n_u_TA_COS_OpenAndFill __pyx_string_tab[1370] +#define __pyx_n_u_TA_COS_Peek __pyx_string_tab[1371] +#define __pyx_n_u_TA_COS_Update __pyx_string_tab[1372] +#define __pyx_n_u_TA_COS_Value __pyx_string_tab[1373] +#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[1374] +#define __pyx_n_u_TA_CUMSUM_Clone __pyx_string_tab[1375] +#define __pyx_n_u_TA_CUMSUM_Open __pyx_string_tab[1376] +#define __pyx_n_u_TA_CUMSUM_OpenAndFill __pyx_string_tab[1377] +#define __pyx_n_u_TA_CUMSUM_Peek __pyx_string_tab[1378] +#define __pyx_n_u_TA_CUMSUM_Update __pyx_string_tab[1379] +#define __pyx_n_u_TA_CUMSUM_Value __pyx_string_tab[1380] +#define __pyx_n_u_TA_CVI __pyx_string_tab[1381] +#define __pyx_n_u_TA_CVI_Clone __pyx_string_tab[1382] +#define __pyx_n_u_TA_CVI_Open __pyx_string_tab[1383] +#define __pyx_n_u_TA_CVI_OpenAndFill __pyx_string_tab[1384] +#define __pyx_n_u_TA_CVI_Peek __pyx_string_tab[1385] +#define __pyx_n_u_TA_CVI_Update __pyx_string_tab[1386] +#define __pyx_n_u_TA_CVI_Value __pyx_string_tab[1387] +#define __pyx_n_u_TA_DEMA __pyx_string_tab[1388] +#define __pyx_n_u_TA_DEMA_Clone __pyx_string_tab[1389] +#define __pyx_n_u_TA_DEMA_Open __pyx_string_tab[1390] +#define __pyx_n_u_TA_DEMA_OpenAndFill __pyx_string_tab[1391] +#define __pyx_n_u_TA_DEMA_Peek __pyx_string_tab[1392] +#define __pyx_n_u_TA_DEMA_Update __pyx_string_tab[1393] +#define __pyx_n_u_TA_DEMA_Value __pyx_string_tab[1394] +#define __pyx_n_u_TA_DIV __pyx_string_tab[1395] +#define __pyx_n_u_TA_DIV_Clone __pyx_string_tab[1396] +#define __pyx_n_u_TA_DIV_Open __pyx_string_tab[1397] +#define __pyx_n_u_TA_DIV_OpenAndFill __pyx_string_tab[1398] +#define __pyx_n_u_TA_DIV_Peek __pyx_string_tab[1399] +#define __pyx_n_u_TA_DIV_Update __pyx_string_tab[1400] +#define __pyx_n_u_TA_DIV_Value __pyx_string_tab[1401] +#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[1402] +#define __pyx_n_u_TA_DONCHIAN_Clone __pyx_string_tab[1403] +#define __pyx_n_u_TA_DONCHIAN_Open __pyx_string_tab[1404] +#define __pyx_n_u_TA_DONCHIAN_OpenAndFill __pyx_string_tab[1405] +#define __pyx_n_u_TA_DONCHIAN_Peek __pyx_string_tab[1406] +#define __pyx_n_u_TA_DONCHIAN_Update __pyx_string_tab[1407] +#define __pyx_n_u_TA_DONCHIAN_Value __pyx_string_tab[1408] +#define __pyx_n_u_TA_DPO __pyx_string_tab[1409] +#define __pyx_n_u_TA_DPO_Clone __pyx_string_tab[1410] +#define __pyx_n_u_TA_DPO_Open __pyx_string_tab[1411] +#define __pyx_n_u_TA_DPO_OpenAndFill __pyx_string_tab[1412] +#define __pyx_n_u_TA_DPO_Peek __pyx_string_tab[1413] +#define __pyx_n_u_TA_DPO_Update __pyx_string_tab[1414] +#define __pyx_n_u_TA_DPO_Value __pyx_string_tab[1415] +#define __pyx_n_u_TA_DX __pyx_string_tab[1416] +#define __pyx_n_u_TA_DX_Clone __pyx_string_tab[1417] +#define __pyx_n_u_TA_DX_Open __pyx_string_tab[1418] +#define __pyx_n_u_TA_DX_OpenAndFill __pyx_string_tab[1419] +#define __pyx_n_u_TA_DX_Peek __pyx_string_tab[1420] +#define __pyx_n_u_TA_DX_Update __pyx_string_tab[1421] +#define __pyx_n_u_TA_DX_Value __pyx_string_tab[1422] +#define __pyx_n_u_TA_EFI __pyx_string_tab[1423] +#define __pyx_n_u_TA_EFI_Clone __pyx_string_tab[1424] +#define __pyx_n_u_TA_EFI_Open __pyx_string_tab[1425] +#define __pyx_n_u_TA_EFI_OpenAndFill __pyx_string_tab[1426] +#define __pyx_n_u_TA_EFI_Peek __pyx_string_tab[1427] +#define __pyx_n_u_TA_EFI_Update __pyx_string_tab[1428] +#define __pyx_n_u_TA_EFI_Value __pyx_string_tab[1429] +#define __pyx_n_u_TA_EMA __pyx_string_tab[1430] +#define __pyx_n_u_TA_EMA_Clone __pyx_string_tab[1431] +#define __pyx_n_u_TA_EMA_Open __pyx_string_tab[1432] +#define __pyx_n_u_TA_EMA_OpenAndFill __pyx_string_tab[1433] +#define __pyx_n_u_TA_EMA_Peek __pyx_string_tab[1434] +#define __pyx_n_u_TA_EMA_Update __pyx_string_tab[1435] +#define __pyx_n_u_TA_EMA_Value __pyx_string_tab[1436] +#define __pyx_n_u_TA_ER __pyx_string_tab[1437] +#define __pyx_n_u_TA_ERI __pyx_string_tab[1438] +#define __pyx_n_u_TA_ERI_Clone __pyx_string_tab[1439] +#define __pyx_n_u_TA_ERI_Open __pyx_string_tab[1440] +#define __pyx_n_u_TA_ERI_OpenAndFill __pyx_string_tab[1441] +#define __pyx_n_u_TA_ERI_Peek __pyx_string_tab[1442] +#define __pyx_n_u_TA_ERI_Update __pyx_string_tab[1443] +#define __pyx_n_u_TA_ERI_Value __pyx_string_tab[1444] +#define __pyx_n_u_TA_ER_Clone __pyx_string_tab[1445] +#define __pyx_n_u_TA_ER_Open __pyx_string_tab[1446] +#define __pyx_n_u_TA_ER_OpenAndFill __pyx_string_tab[1447] +#define __pyx_n_u_TA_ER_Peek __pyx_string_tab[1448] +#define __pyx_n_u_TA_ER_Update __pyx_string_tab[1449] +#define __pyx_n_u_TA_ER_Value __pyx_string_tab[1450] +#define __pyx_n_u_TA_EXP __pyx_string_tab[1451] +#define __pyx_n_u_TA_EXP_Clone __pyx_string_tab[1452] +#define __pyx_n_u_TA_EXP_Open __pyx_string_tab[1453] +#define __pyx_n_u_TA_EXP_OpenAndFill __pyx_string_tab[1454] +#define __pyx_n_u_TA_EXP_Peek __pyx_string_tab[1455] +#define __pyx_n_u_TA_EXP_Update __pyx_string_tab[1456] +#define __pyx_n_u_TA_EXP_Value __pyx_string_tab[1457] +#define __pyx_n_u_TA_FLOOR __pyx_string_tab[1458] +#define __pyx_n_u_TA_FLOOR_Clone __pyx_string_tab[1459] +#define __pyx_n_u_TA_FLOOR_Open __pyx_string_tab[1460] +#define __pyx_n_u_TA_FLOOR_OpenAndFill __pyx_string_tab[1461] +#define __pyx_n_u_TA_FLOOR_Peek __pyx_string_tab[1462] +#define __pyx_n_u_TA_FLOOR_Update __pyx_string_tab[1463] +#define __pyx_n_u_TA_FLOOR_Value __pyx_string_tab[1464] +#define __pyx_n_u_TA_FOSC __pyx_string_tab[1465] +#define __pyx_n_u_TA_FOSC_Clone __pyx_string_tab[1466] +#define __pyx_n_u_TA_FOSC_Open __pyx_string_tab[1467] +#define __pyx_n_u_TA_FOSC_OpenAndFill __pyx_string_tab[1468] +#define __pyx_n_u_TA_FOSC_Peek __pyx_string_tab[1469] +#define __pyx_n_u_TA_FOSC_Update __pyx_string_tab[1470] +#define __pyx_n_u_TA_FOSC_Value __pyx_string_tab[1471] +#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[1472] +#define __pyx_n_u_TA_FRACTAL_Clone __pyx_string_tab[1473] +#define __pyx_n_u_TA_FRACTAL_Open __pyx_string_tab[1474] +#define __pyx_n_u_TA_FRACTAL_OpenAndFill __pyx_string_tab[1475] +#define __pyx_n_u_TA_FRACTAL_Peek __pyx_string_tab[1476] +#define __pyx_n_u_TA_FRACTAL_Update __pyx_string_tab[1477] +#define __pyx_n_u_TA_FRACTAL_Value __pyx_string_tab[1478] +#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[1479] +#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[1480] +#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[1481] +#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[1482] +#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[1483] +#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[1484] +#define __pyx_n_u_TA_GetLookback __pyx_string_tab[1485] +#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[1486] +#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[1487] +#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[1488] +#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[1489] +#define __pyx_n_u_TA_HA __pyx_string_tab[1490] +#define __pyx_n_u_TA_HA_Clone __pyx_string_tab[1491] +#define __pyx_n_u_TA_HA_Open __pyx_string_tab[1492] +#define __pyx_n_u_TA_HA_OpenAndFill __pyx_string_tab[1493] +#define __pyx_n_u_TA_HA_Peek __pyx_string_tab[1494] +#define __pyx_n_u_TA_HA_Update __pyx_string_tab[1495] +#define __pyx_n_u_TA_HA_Value __pyx_string_tab[1496] +#define __pyx_n_u_TA_HMA __pyx_string_tab[1497] +#define __pyx_n_u_TA_HMA_Clone __pyx_string_tab[1498] +#define __pyx_n_u_TA_HMA_Open __pyx_string_tab[1499] +#define __pyx_n_u_TA_HMA_OpenAndFill __pyx_string_tab[1500] +#define __pyx_n_u_TA_HMA_Peek __pyx_string_tab[1501] +#define __pyx_n_u_TA_HMA_Update __pyx_string_tab[1502] +#define __pyx_n_u_TA_HMA_Value __pyx_string_tab[1503] +#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[1504] +#define __pyx_n_u_TA_HT_DCPERIOD_Clone __pyx_string_tab[1505] +#define __pyx_n_u_TA_HT_DCPERIOD_Open __pyx_string_tab[1506] +#define __pyx_n_u_TA_HT_DCPERIOD_OpenAndFill __pyx_string_tab[1507] +#define __pyx_n_u_TA_HT_DCPERIOD_Peek __pyx_string_tab[1508] +#define __pyx_n_u_TA_HT_DCPERIOD_Update __pyx_string_tab[1509] +#define __pyx_n_u_TA_HT_DCPERIOD_Value __pyx_string_tab[1510] +#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[1511] +#define __pyx_n_u_TA_HT_DCPHASE_Clone __pyx_string_tab[1512] +#define __pyx_n_u_TA_HT_DCPHASE_Open __pyx_string_tab[1513] +#define __pyx_n_u_TA_HT_DCPHASE_OpenAndFill __pyx_string_tab[1514] +#define __pyx_n_u_TA_HT_DCPHASE_Peek __pyx_string_tab[1515] +#define __pyx_n_u_TA_HT_DCPHASE_Update __pyx_string_tab[1516] +#define __pyx_n_u_TA_HT_DCPHASE_Value __pyx_string_tab[1517] +#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[1518] +#define __pyx_n_u_TA_HT_PHASOR_Clone __pyx_string_tab[1519] +#define __pyx_n_u_TA_HT_PHASOR_Open __pyx_string_tab[1520] +#define __pyx_n_u_TA_HT_PHASOR_OpenAndFill __pyx_string_tab[1521] +#define __pyx_n_u_TA_HT_PHASOR_Peek __pyx_string_tab[1522] +#define __pyx_n_u_TA_HT_PHASOR_Update __pyx_string_tab[1523] +#define __pyx_n_u_TA_HT_PHASOR_Value __pyx_string_tab[1524] +#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[1525] +#define __pyx_n_u_TA_HT_SINE_Clone __pyx_string_tab[1526] +#define __pyx_n_u_TA_HT_SINE_Open __pyx_string_tab[1527] +#define __pyx_n_u_TA_HT_SINE_OpenAndFill __pyx_string_tab[1528] +#define __pyx_n_u_TA_HT_SINE_Peek __pyx_string_tab[1529] +#define __pyx_n_u_TA_HT_SINE_Update __pyx_string_tab[1530] +#define __pyx_n_u_TA_HT_SINE_Value __pyx_string_tab[1531] +#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[1532] +#define __pyx_n_u_TA_HT_TRENDLINE_Clone __pyx_string_tab[1533] +#define __pyx_n_u_TA_HT_TRENDLINE_Open __pyx_string_tab[1534] +#define __pyx_n_u_TA_HT_TRENDLINE_OpenAndFill __pyx_string_tab[1535] +#define __pyx_n_u_TA_HT_TRENDLINE_Peek __pyx_string_tab[1536] +#define __pyx_n_u_TA_HT_TRENDLINE_Update __pyx_string_tab[1537] +#define __pyx_n_u_TA_HT_TRENDLINE_Value __pyx_string_tab[1538] +#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[1539] +#define __pyx_n_u_TA_HT_TRENDMODE_Clone __pyx_string_tab[1540] +#define __pyx_n_u_TA_HT_TRENDMODE_Open __pyx_string_tab[1541] +#define __pyx_n_u_TA_HT_TRENDMODE_OpenAndFill __pyx_string_tab[1542] +#define __pyx_n_u_TA_HT_TRENDMODE_Peek __pyx_string_tab[1543] +#define __pyx_n_u_TA_HT_TRENDMODE_Update __pyx_string_tab[1544] +#define __pyx_n_u_TA_HT_TRENDMODE_Value __pyx_string_tab[1545] +#define __pyx_n_u_TA_IMI __pyx_string_tab[1546] +#define __pyx_n_u_TA_IMI_Clone __pyx_string_tab[1547] +#define __pyx_n_u_TA_IMI_Open __pyx_string_tab[1548] +#define __pyx_n_u_TA_IMI_OpenAndFill __pyx_string_tab[1549] +#define __pyx_n_u_TA_IMI_Peek __pyx_string_tab[1550] +#define __pyx_n_u_TA_IMI_Update __pyx_string_tab[1551] +#define __pyx_n_u_TA_IMI_Value __pyx_string_tab[1552] +#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[1553] +#define __pyx_n_u_TA_Initialize __pyx_string_tab[1554] +#define __pyx_n_u_TA_KAMA __pyx_string_tab[1555] +#define __pyx_n_u_TA_KAMA_Clone __pyx_string_tab[1556] +#define __pyx_n_u_TA_KAMA_Open __pyx_string_tab[1557] +#define __pyx_n_u_TA_KAMA_OpenAndFill __pyx_string_tab[1558] +#define __pyx_n_u_TA_KAMA_Peek __pyx_string_tab[1559] +#define __pyx_n_u_TA_KAMA_Update __pyx_string_tab[1560] +#define __pyx_n_u_TA_KAMA_Value __pyx_string_tab[1561] +#define __pyx_n_u_TA_KC __pyx_string_tab[1562] +#define __pyx_n_u_TA_KC_Clone __pyx_string_tab[1563] +#define __pyx_n_u_TA_KC_Open __pyx_string_tab[1564] +#define __pyx_n_u_TA_KC_OpenAndFill __pyx_string_tab[1565] +#define __pyx_n_u_TA_KC_Peek __pyx_string_tab[1566] +#define __pyx_n_u_TA_KC_Update __pyx_string_tab[1567] +#define __pyx_n_u_TA_KC_Value __pyx_string_tab[1568] +#define __pyx_n_u_TA_KDJ __pyx_string_tab[1569] +#define __pyx_n_u_TA_KDJ_Clone __pyx_string_tab[1570] +#define __pyx_n_u_TA_KDJ_Open __pyx_string_tab[1571] +#define __pyx_n_u_TA_KDJ_OpenAndFill __pyx_string_tab[1572] +#define __pyx_n_u_TA_KDJ_Peek __pyx_string_tab[1573] +#define __pyx_n_u_TA_KDJ_Update __pyx_string_tab[1574] +#define __pyx_n_u_TA_KDJ_Value __pyx_string_tab[1575] +#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[1576] +#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[1577] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Clone __pyx_string_tab[1578] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Open __pyx_string_tab[1579] +#define __pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill __pyx_string_tab[1580] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Peek __pyx_string_tab[1581] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Update __pyx_string_tab[1582] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Value __pyx_string_tab[1583] +#define __pyx_n_u_TA_LINEARREG_Clone __pyx_string_tab[1584] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[1585] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Clone __pyx_string_tab[1586] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Open __pyx_string_tab[1587] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi __pyx_string_tab[1588] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Peek __pyx_string_tab[1589] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Update __pyx_string_tab[1590] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Value __pyx_string_tab[1591] +#define __pyx_n_u_TA_LINEARREG_Open __pyx_string_tab[1592] +#define __pyx_n_u_TA_LINEARREG_OpenAndFill __pyx_string_tab[1593] +#define __pyx_n_u_TA_LINEARREG_Peek __pyx_string_tab[1594] +#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[1595] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Clone __pyx_string_tab[1596] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Open __pyx_string_tab[1597] +#define __pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill __pyx_string_tab[1598] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Peek __pyx_string_tab[1599] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Update __pyx_string_tab[1600] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Value __pyx_string_tab[1601] +#define __pyx_n_u_TA_LINEARREG_Update __pyx_string_tab[1602] +#define __pyx_n_u_TA_LINEARREG_Value __pyx_string_tab[1603] +#define __pyx_n_u_TA_LN __pyx_string_tab[1604] +#define __pyx_n_u_TA_LN_Clone __pyx_string_tab[1605] +#define __pyx_n_u_TA_LN_Open __pyx_string_tab[1606] +#define __pyx_n_u_TA_LN_OpenAndFill __pyx_string_tab[1607] +#define __pyx_n_u_TA_LN_Peek __pyx_string_tab[1608] +#define __pyx_n_u_TA_LN_Update __pyx_string_tab[1609] +#define __pyx_n_u_TA_LN_Value __pyx_string_tab[1610] +#define __pyx_n_u_TA_LOG10 __pyx_string_tab[1611] +#define __pyx_n_u_TA_LOG10_Clone __pyx_string_tab[1612] +#define __pyx_n_u_TA_LOG10_Open __pyx_string_tab[1613] +#define __pyx_n_u_TA_LOG10_OpenAndFill __pyx_string_tab[1614] +#define __pyx_n_u_TA_LOG10_Peek __pyx_string_tab[1615] +#define __pyx_n_u_TA_LOG10_Update __pyx_string_tab[1616] +#define __pyx_n_u_TA_LOG10_Value __pyx_string_tab[1617] +#define __pyx_n_u_TA_MA __pyx_string_tab[1618] +#define __pyx_n_u_TA_MACD __pyx_string_tab[1619] +#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[1620] +#define __pyx_n_u_TA_MACDEXT_Clone __pyx_string_tab[1621] +#define __pyx_n_u_TA_MACDEXT_Open __pyx_string_tab[1622] +#define __pyx_n_u_TA_MACDEXT_OpenAndFill __pyx_string_tab[1623] +#define __pyx_n_u_TA_MACDEXT_Peek __pyx_string_tab[1624] +#define __pyx_n_u_TA_MACDEXT_Update __pyx_string_tab[1625] +#define __pyx_n_u_TA_MACDEXT_Value __pyx_string_tab[1626] +#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[1627] +#define __pyx_n_u_TA_MACDFIX_Clone __pyx_string_tab[1628] +#define __pyx_n_u_TA_MACDFIX_Open __pyx_string_tab[1629] +#define __pyx_n_u_TA_MACDFIX_OpenAndFill __pyx_string_tab[1630] +#define __pyx_n_u_TA_MACDFIX_Peek __pyx_string_tab[1631] +#define __pyx_n_u_TA_MACDFIX_Update __pyx_string_tab[1632] +#define __pyx_n_u_TA_MACDFIX_Value __pyx_string_tab[1633] +#define __pyx_n_u_TA_MACD_Clone __pyx_string_tab[1634] +#define __pyx_n_u_TA_MACD_Open __pyx_string_tab[1635] +#define __pyx_n_u_TA_MACD_OpenAndFill __pyx_string_tab[1636] +#define __pyx_n_u_TA_MACD_Peek __pyx_string_tab[1637] +#define __pyx_n_u_TA_MACD_Update __pyx_string_tab[1638] +#define __pyx_n_u_TA_MACD_Value __pyx_string_tab[1639] +#define __pyx_n_u_TA_MAMA __pyx_string_tab[1640] +#define __pyx_n_u_TA_MAMA_Clone __pyx_string_tab[1641] +#define __pyx_n_u_TA_MAMA_Open __pyx_string_tab[1642] +#define __pyx_n_u_TA_MAMA_OpenAndFill __pyx_string_tab[1643] +#define __pyx_n_u_TA_MAMA_Peek __pyx_string_tab[1644] +#define __pyx_n_u_TA_MAMA_Update __pyx_string_tab[1645] +#define __pyx_n_u_TA_MAMA_Value __pyx_string_tab[1646] +#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[1647] +#define __pyx_n_u_TA_MARKETFI_Clone __pyx_string_tab[1648] +#define __pyx_n_u_TA_MARKETFI_Open __pyx_string_tab[1649] +#define __pyx_n_u_TA_MARKETFI_OpenAndFill __pyx_string_tab[1650] +#define __pyx_n_u_TA_MARKETFI_Peek __pyx_string_tab[1651] +#define __pyx_n_u_TA_MARKETFI_Update __pyx_string_tab[1652] +#define __pyx_n_u_TA_MARKETFI_Value __pyx_string_tab[1653] +#define __pyx_n_u_TA_MASSI __pyx_string_tab[1654] +#define __pyx_n_u_TA_MASSI_Clone __pyx_string_tab[1655] +#define __pyx_n_u_TA_MASSI_Open __pyx_string_tab[1656] +#define __pyx_n_u_TA_MASSI_OpenAndFill __pyx_string_tab[1657] +#define __pyx_n_u_TA_MASSI_Peek __pyx_string_tab[1658] +#define __pyx_n_u_TA_MASSI_Update __pyx_string_tab[1659] +#define __pyx_n_u_TA_MASSI_Value __pyx_string_tab[1660] +#define __pyx_n_u_TA_MAVP __pyx_string_tab[1661] +#define __pyx_n_u_TA_MAVP_Clone __pyx_string_tab[1662] +#define __pyx_n_u_TA_MAVP_Open __pyx_string_tab[1663] +#define __pyx_n_u_TA_MAVP_OpenAndFill __pyx_string_tab[1664] +#define __pyx_n_u_TA_MAVP_Peek __pyx_string_tab[1665] +#define __pyx_n_u_TA_MAVP_Update __pyx_string_tab[1666] +#define __pyx_n_u_TA_MAVP_Value __pyx_string_tab[1667] +#define __pyx_n_u_TA_MAX __pyx_string_tab[1668] +#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[1669] +#define __pyx_n_u_TA_MAXINDEX_Clone __pyx_string_tab[1670] +#define __pyx_n_u_TA_MAXINDEX_Open __pyx_string_tab[1671] +#define __pyx_n_u_TA_MAXINDEX_OpenAndFill __pyx_string_tab[1672] +#define __pyx_n_u_TA_MAXINDEX_Peek __pyx_string_tab[1673] +#define __pyx_n_u_TA_MAXINDEX_Update __pyx_string_tab[1674] +#define __pyx_n_u_TA_MAXINDEX_Value __pyx_string_tab[1675] +#define __pyx_n_u_TA_MAX_Clone __pyx_string_tab[1676] +#define __pyx_n_u_TA_MAX_Open __pyx_string_tab[1677] +#define __pyx_n_u_TA_MAX_OpenAndFill __pyx_string_tab[1678] +#define __pyx_n_u_TA_MAX_Peek __pyx_string_tab[1679] +#define __pyx_n_u_TA_MAX_Update __pyx_string_tab[1680] +#define __pyx_n_u_TA_MAX_Value __pyx_string_tab[1681] +#define __pyx_n_u_TA_MA_Clone __pyx_string_tab[1682] +#define __pyx_n_u_TA_MA_Open __pyx_string_tab[1683] +#define __pyx_n_u_TA_MA_OpenAndFill __pyx_string_tab[1684] +#define __pyx_n_u_TA_MA_Peek __pyx_string_tab[1685] +#define __pyx_n_u_TA_MA_Update __pyx_string_tab[1686] +#define __pyx_n_u_TA_MA_Value __pyx_string_tab[1687] +#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[1688] +#define __pyx_n_u_TA_MEDPRICE_Clone __pyx_string_tab[1689] +#define __pyx_n_u_TA_MEDPRICE_Open __pyx_string_tab[1690] +#define __pyx_n_u_TA_MEDPRICE_OpenAndFill __pyx_string_tab[1691] +#define __pyx_n_u_TA_MEDPRICE_Peek __pyx_string_tab[1692] +#define __pyx_n_u_TA_MEDPRICE_Update __pyx_string_tab[1693] +#define __pyx_n_u_TA_MEDPRICE_Value __pyx_string_tab[1694] +#define __pyx_n_u_TA_MFI __pyx_string_tab[1695] +#define __pyx_n_u_TA_MFI_Clone __pyx_string_tab[1696] +#define __pyx_n_u_TA_MFI_Open __pyx_string_tab[1697] +#define __pyx_n_u_TA_MFI_OpenAndFill __pyx_string_tab[1698] +#define __pyx_n_u_TA_MFI_Peek __pyx_string_tab[1699] +#define __pyx_n_u_TA_MFI_Update __pyx_string_tab[1700] +#define __pyx_n_u_TA_MFI_Value __pyx_string_tab[1701] +#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[1702] +#define __pyx_n_u_TA_MIDPOINT_Clone __pyx_string_tab[1703] +#define __pyx_n_u_TA_MIDPOINT_Open __pyx_string_tab[1704] +#define __pyx_n_u_TA_MIDPOINT_OpenAndFill __pyx_string_tab[1705] +#define __pyx_n_u_TA_MIDPOINT_Peek __pyx_string_tab[1706] +#define __pyx_n_u_TA_MIDPOINT_Update __pyx_string_tab[1707] +#define __pyx_n_u_TA_MIDPOINT_Value __pyx_string_tab[1708] +#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[1709] +#define __pyx_n_u_TA_MIDPRICE_Clone __pyx_string_tab[1710] +#define __pyx_n_u_TA_MIDPRICE_Open __pyx_string_tab[1711] +#define __pyx_n_u_TA_MIDPRICE_OpenAndFill __pyx_string_tab[1712] +#define __pyx_n_u_TA_MIDPRICE_Peek __pyx_string_tab[1713] +#define __pyx_n_u_TA_MIDPRICE_Update __pyx_string_tab[1714] +#define __pyx_n_u_TA_MIDPRICE_Value __pyx_string_tab[1715] +#define __pyx_n_u_TA_MIN __pyx_string_tab[1716] +#define __pyx_n_u_TA_MININDEX __pyx_string_tab[1717] +#define __pyx_n_u_TA_MININDEX_Clone __pyx_string_tab[1718] +#define __pyx_n_u_TA_MININDEX_Open __pyx_string_tab[1719] +#define __pyx_n_u_TA_MININDEX_OpenAndFill __pyx_string_tab[1720] +#define __pyx_n_u_TA_MININDEX_Peek __pyx_string_tab[1721] +#define __pyx_n_u_TA_MININDEX_Update __pyx_string_tab[1722] +#define __pyx_n_u_TA_MININDEX_Value __pyx_string_tab[1723] +#define __pyx_n_u_TA_MINMAX __pyx_string_tab[1724] +#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[1725] +#define __pyx_n_u_TA_MINMAXINDEX_Clone __pyx_string_tab[1726] +#define __pyx_n_u_TA_MINMAXINDEX_Open __pyx_string_tab[1727] +#define __pyx_n_u_TA_MINMAXINDEX_OpenAndFill __pyx_string_tab[1728] +#define __pyx_n_u_TA_MINMAXINDEX_Peek __pyx_string_tab[1729] +#define __pyx_n_u_TA_MINMAXINDEX_Update __pyx_string_tab[1730] +#define __pyx_n_u_TA_MINMAXINDEX_Value __pyx_string_tab[1731] +#define __pyx_n_u_TA_MINMAX_Clone __pyx_string_tab[1732] +#define __pyx_n_u_TA_MINMAX_Open __pyx_string_tab[1733] +#define __pyx_n_u_TA_MINMAX_OpenAndFill __pyx_string_tab[1734] +#define __pyx_n_u_TA_MINMAX_Peek __pyx_string_tab[1735] +#define __pyx_n_u_TA_MINMAX_Update __pyx_string_tab[1736] +#define __pyx_n_u_TA_MINMAX_Value __pyx_string_tab[1737] +#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[1738] +#define __pyx_n_u_TA_MINUS_DI_Clone __pyx_string_tab[1739] +#define __pyx_n_u_TA_MINUS_DI_Open __pyx_string_tab[1740] +#define __pyx_n_u_TA_MINUS_DI_OpenAndFill __pyx_string_tab[1741] +#define __pyx_n_u_TA_MINUS_DI_Peek __pyx_string_tab[1742] +#define __pyx_n_u_TA_MINUS_DI_Update __pyx_string_tab[1743] +#define __pyx_n_u_TA_MINUS_DI_Value __pyx_string_tab[1744] +#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[1745] +#define __pyx_n_u_TA_MINUS_DM_Clone __pyx_string_tab[1746] +#define __pyx_n_u_TA_MINUS_DM_Open __pyx_string_tab[1747] +#define __pyx_n_u_TA_MINUS_DM_OpenAndFill __pyx_string_tab[1748] +#define __pyx_n_u_TA_MINUS_DM_Peek __pyx_string_tab[1749] +#define __pyx_n_u_TA_MINUS_DM_Update __pyx_string_tab[1750] +#define __pyx_n_u_TA_MINUS_DM_Value __pyx_string_tab[1751] +#define __pyx_n_u_TA_MIN_Clone __pyx_string_tab[1752] +#define __pyx_n_u_TA_MIN_Open __pyx_string_tab[1753] +#define __pyx_n_u_TA_MIN_OpenAndFill __pyx_string_tab[1754] +#define __pyx_n_u_TA_MIN_Peek __pyx_string_tab[1755] +#define __pyx_n_u_TA_MIN_Update __pyx_string_tab[1756] +#define __pyx_n_u_TA_MIN_Value __pyx_string_tab[1757] +#define __pyx_n_u_TA_MOM __pyx_string_tab[1758] +#define __pyx_n_u_TA_MOM_Clone __pyx_string_tab[1759] +#define __pyx_n_u_TA_MOM_Open __pyx_string_tab[1760] +#define __pyx_n_u_TA_MOM_OpenAndFill __pyx_string_tab[1761] +#define __pyx_n_u_TA_MOM_Peek __pyx_string_tab[1762] +#define __pyx_n_u_TA_MOM_Update __pyx_string_tab[1763] +#define __pyx_n_u_TA_MOM_Value __pyx_string_tab[1764] +#define __pyx_n_u_TA_MULT __pyx_string_tab[1765] +#define __pyx_n_u_TA_MULT_Clone __pyx_string_tab[1766] +#define __pyx_n_u_TA_MULT_Open __pyx_string_tab[1767] +#define __pyx_n_u_TA_MULT_OpenAndFill __pyx_string_tab[1768] +#define __pyx_n_u_TA_MULT_Peek __pyx_string_tab[1769] +#define __pyx_n_u_TA_MULT_Update __pyx_string_tab[1770] +#define __pyx_n_u_TA_MULT_Value __pyx_string_tab[1771] +#define __pyx_n_u_TA_NATR __pyx_string_tab[1772] +#define __pyx_n_u_TA_NATR_Clone __pyx_string_tab[1773] +#define __pyx_n_u_TA_NATR_Open __pyx_string_tab[1774] +#define __pyx_n_u_TA_NATR_OpenAndFill __pyx_string_tab[1775] +#define __pyx_n_u_TA_NATR_Peek __pyx_string_tab[1776] +#define __pyx_n_u_TA_NATR_Update __pyx_string_tab[1777] +#define __pyx_n_u_TA_NATR_Value __pyx_string_tab[1778] +#define __pyx_n_u_TA_NVI __pyx_string_tab[1779] +#define __pyx_n_u_TA_NVI_Clone __pyx_string_tab[1780] +#define __pyx_n_u_TA_NVI_Open __pyx_string_tab[1781] +#define __pyx_n_u_TA_NVI_OpenAndFill __pyx_string_tab[1782] +#define __pyx_n_u_TA_NVI_Peek __pyx_string_tab[1783] +#define __pyx_n_u_TA_NVI_Update __pyx_string_tab[1784] +#define __pyx_n_u_TA_NVI_Value __pyx_string_tab[1785] +#define __pyx_n_u_TA_OBV __pyx_string_tab[1786] +#define __pyx_n_u_TA_OBV_Clone __pyx_string_tab[1787] +#define __pyx_n_u_TA_OBV_Open __pyx_string_tab[1788] +#define __pyx_n_u_TA_OBV_OpenAndFill __pyx_string_tab[1789] +#define __pyx_n_u_TA_OBV_Peek __pyx_string_tab[1790] +#define __pyx_n_u_TA_OBV_Update __pyx_string_tab[1791] +#define __pyx_n_u_TA_OBV_Value __pyx_string_tab[1792] +#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[1793] +#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[1794] +#define __pyx_n_u_TA_PERCENTILE_Clone __pyx_string_tab[1795] +#define __pyx_n_u_TA_PERCENTILE_Open __pyx_string_tab[1796] +#define __pyx_n_u_TA_PERCENTILE_OpenAndFill __pyx_string_tab[1797] +#define __pyx_n_u_TA_PERCENTILE_Peek __pyx_string_tab[1798] +#define __pyx_n_u_TA_PERCENTILE_Update __pyx_string_tab[1799] +#define __pyx_n_u_TA_PERCENTILE_Value __pyx_string_tab[1800] +#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[1801] +#define __pyx_n_u_TA_PERCENTRANK_Clone __pyx_string_tab[1802] +#define __pyx_n_u_TA_PERCENTRANK_Open __pyx_string_tab[1803] +#define __pyx_n_u_TA_PERCENTRANK_OpenAndFill __pyx_string_tab[1804] +#define __pyx_n_u_TA_PERCENTRANK_Peek __pyx_string_tab[1805] +#define __pyx_n_u_TA_PERCENTRANK_Update __pyx_string_tab[1806] +#define __pyx_n_u_TA_PERCENTRANK_Value __pyx_string_tab[1807] +#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[1808] +#define __pyx_n_u_TA_PLUS_DI_Clone __pyx_string_tab[1809] +#define __pyx_n_u_TA_PLUS_DI_Open __pyx_string_tab[1810] +#define __pyx_n_u_TA_PLUS_DI_OpenAndFill __pyx_string_tab[1811] +#define __pyx_n_u_TA_PLUS_DI_Peek __pyx_string_tab[1812] +#define __pyx_n_u_TA_PLUS_DI_Update __pyx_string_tab[1813] +#define __pyx_n_u_TA_PLUS_DI_Value __pyx_string_tab[1814] +#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[1815] +#define __pyx_n_u_TA_PLUS_DM_Clone __pyx_string_tab[1816] +#define __pyx_n_u_TA_PLUS_DM_Open __pyx_string_tab[1817] +#define __pyx_n_u_TA_PLUS_DM_OpenAndFill __pyx_string_tab[1818] +#define __pyx_n_u_TA_PLUS_DM_Peek __pyx_string_tab[1819] +#define __pyx_n_u_TA_PLUS_DM_Update __pyx_string_tab[1820] +#define __pyx_n_u_TA_PLUS_DM_Value __pyx_string_tab[1821] +#define __pyx_n_u_TA_PPO __pyx_string_tab[1822] +#define __pyx_n_u_TA_PPO_Clone __pyx_string_tab[1823] +#define __pyx_n_u_TA_PPO_Open __pyx_string_tab[1824] +#define __pyx_n_u_TA_PPO_OpenAndFill __pyx_string_tab[1825] +#define __pyx_n_u_TA_PPO_Peek __pyx_string_tab[1826] +#define __pyx_n_u_TA_PPO_Update __pyx_string_tab[1827] +#define __pyx_n_u_TA_PPO_Value __pyx_string_tab[1828] +#define __pyx_n_u_TA_PVI __pyx_string_tab[1829] +#define __pyx_n_u_TA_PVI_Clone __pyx_string_tab[1830] +#define __pyx_n_u_TA_PVI_Open __pyx_string_tab[1831] +#define __pyx_n_u_TA_PVI_OpenAndFill __pyx_string_tab[1832] +#define __pyx_n_u_TA_PVI_Peek __pyx_string_tab[1833] +#define __pyx_n_u_TA_PVI_Update __pyx_string_tab[1834] +#define __pyx_n_u_TA_PVI_Value __pyx_string_tab[1835] +#define __pyx_n_u_TA_PVO __pyx_string_tab[1836] +#define __pyx_n_u_TA_PVO_Clone __pyx_string_tab[1837] +#define __pyx_n_u_TA_PVO_Open __pyx_string_tab[1838] +#define __pyx_n_u_TA_PVO_OpenAndFill __pyx_string_tab[1839] +#define __pyx_n_u_TA_PVO_Peek __pyx_string_tab[1840] +#define __pyx_n_u_TA_PVO_Update __pyx_string_tab[1841] +#define __pyx_n_u_TA_PVO_Value __pyx_string_tab[1842] +#define __pyx_n_u_TA_PVT __pyx_string_tab[1843] +#define __pyx_n_u_TA_PVT_Clone __pyx_string_tab[1844] +#define __pyx_n_u_TA_PVT_Open __pyx_string_tab[1845] +#define __pyx_n_u_TA_PVT_OpenAndFill __pyx_string_tab[1846] +#define __pyx_n_u_TA_PVT_Peek __pyx_string_tab[1847] +#define __pyx_n_u_TA_PVT_Update __pyx_string_tab[1848] +#define __pyx_n_u_TA_PVT_Value __pyx_string_tab[1849] +#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[1850] +#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[1851] +#define __pyx_n_u_TA_QSTICK __pyx_string_tab[1852] +#define __pyx_n_u_TA_QSTICK_Clone __pyx_string_tab[1853] +#define __pyx_n_u_TA_QSTICK_Open __pyx_string_tab[1854] +#define __pyx_n_u_TA_QSTICK_OpenAndFill __pyx_string_tab[1855] +#define __pyx_n_u_TA_QSTICK_Peek __pyx_string_tab[1856] +#define __pyx_n_u_TA_QSTICK_Update __pyx_string_tab[1857] +#define __pyx_n_u_TA_QSTICK_Value __pyx_string_tab[1858] +#define __pyx_n_u_TA_RMA __pyx_string_tab[1859] +#define __pyx_n_u_TA_RMA_Clone __pyx_string_tab[1860] +#define __pyx_n_u_TA_RMA_Open __pyx_string_tab[1861] +#define __pyx_n_u_TA_RMA_OpenAndFill __pyx_string_tab[1862] +#define __pyx_n_u_TA_RMA_Peek __pyx_string_tab[1863] +#define __pyx_n_u_TA_RMA_Update __pyx_string_tab[1864] +#define __pyx_n_u_TA_RMA_Value __pyx_string_tab[1865] +#define __pyx_n_u_TA_ROC __pyx_string_tab[1866] +#define __pyx_n_u_TA_ROCP __pyx_string_tab[1867] +#define __pyx_n_u_TA_ROCP_Clone __pyx_string_tab[1868] +#define __pyx_n_u_TA_ROCP_Open __pyx_string_tab[1869] +#define __pyx_n_u_TA_ROCP_OpenAndFill __pyx_string_tab[1870] +#define __pyx_n_u_TA_ROCP_Peek __pyx_string_tab[1871] +#define __pyx_n_u_TA_ROCP_Update __pyx_string_tab[1872] +#define __pyx_n_u_TA_ROCP_Value __pyx_string_tab[1873] +#define __pyx_n_u_TA_ROCR __pyx_string_tab[1874] +#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[1875] +#define __pyx_n_u_TA_ROCR100_Clone __pyx_string_tab[1876] +#define __pyx_n_u_TA_ROCR100_Open __pyx_string_tab[1877] +#define __pyx_n_u_TA_ROCR100_OpenAndFill __pyx_string_tab[1878] +#define __pyx_n_u_TA_ROCR100_Peek __pyx_string_tab[1879] +#define __pyx_n_u_TA_ROCR100_Update __pyx_string_tab[1880] +#define __pyx_n_u_TA_ROCR100_Value __pyx_string_tab[1881] +#define __pyx_n_u_TA_ROCR_Clone __pyx_string_tab[1882] +#define __pyx_n_u_TA_ROCR_Open __pyx_string_tab[1883] +#define __pyx_n_u_TA_ROCR_OpenAndFill __pyx_string_tab[1884] +#define __pyx_n_u_TA_ROCR_Peek __pyx_string_tab[1885] +#define __pyx_n_u_TA_ROCR_Update __pyx_string_tab[1886] +#define __pyx_n_u_TA_ROCR_Value __pyx_string_tab[1887] +#define __pyx_n_u_TA_ROC_Clone __pyx_string_tab[1888] +#define __pyx_n_u_TA_ROC_Open __pyx_string_tab[1889] +#define __pyx_n_u_TA_ROC_OpenAndFill __pyx_string_tab[1890] +#define __pyx_n_u_TA_ROC_Peek __pyx_string_tab[1891] +#define __pyx_n_u_TA_ROC_Update __pyx_string_tab[1892] +#define __pyx_n_u_TA_ROC_Value __pyx_string_tab[1893] +#define __pyx_n_u_TA_RSI __pyx_string_tab[1894] +#define __pyx_n_u_TA_RSI_Clone __pyx_string_tab[1895] +#define __pyx_n_u_TA_RSI_Open __pyx_string_tab[1896] +#define __pyx_n_u_TA_RSI_OpenAndFill __pyx_string_tab[1897] +#define __pyx_n_u_TA_RSI_Peek __pyx_string_tab[1898] +#define __pyx_n_u_TA_RSI_Update __pyx_string_tab[1899] +#define __pyx_n_u_TA_RSI_Value __pyx_string_tab[1900] +#define __pyx_n_u_TA_RVI __pyx_string_tab[1901] +#define __pyx_n_u_TA_RVI_Clone __pyx_string_tab[1902] +#define __pyx_n_u_TA_RVI_Open __pyx_string_tab[1903] +#define __pyx_n_u_TA_RVI_OpenAndFill __pyx_string_tab[1904] +#define __pyx_n_u_TA_RVI_Peek __pyx_string_tab[1905] +#define __pyx_n_u_TA_RVI_Update __pyx_string_tab[1906] +#define __pyx_n_u_TA_RVI_Value __pyx_string_tab[1907] +#define __pyx_n_u_TA_RVOL __pyx_string_tab[1908] +#define __pyx_n_u_TA_RVOL_Clone __pyx_string_tab[1909] +#define __pyx_n_u_TA_RVOL_Open __pyx_string_tab[1910] +#define __pyx_n_u_TA_RVOL_OpenAndFill __pyx_string_tab[1911] +#define __pyx_n_u_TA_RVOL_Peek __pyx_string_tab[1912] +#define __pyx_n_u_TA_RVOL_Update __pyx_string_tab[1913] +#define __pyx_n_u_TA_RVOL_Value __pyx_string_tab[1914] +#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[1915] +#define __pyx_n_u_TA_SAR __pyx_string_tab[1916] +#define __pyx_n_u_TA_SAREXT __pyx_string_tab[1917] +#define __pyx_n_u_TA_SAREXT_Clone __pyx_string_tab[1918] +#define __pyx_n_u_TA_SAREXT_Open __pyx_string_tab[1919] +#define __pyx_n_u_TA_SAREXT_OpenAndFill __pyx_string_tab[1920] +#define __pyx_n_u_TA_SAREXT_Peek __pyx_string_tab[1921] +#define __pyx_n_u_TA_SAREXT_Update __pyx_string_tab[1922] +#define __pyx_n_u_TA_SAREXT_Value __pyx_string_tab[1923] +#define __pyx_n_u_TA_SAR_Clone __pyx_string_tab[1924] +#define __pyx_n_u_TA_SAR_Open __pyx_string_tab[1925] +#define __pyx_n_u_TA_SAR_OpenAndFill __pyx_string_tab[1926] +#define __pyx_n_u_TA_SAR_Peek __pyx_string_tab[1927] +#define __pyx_n_u_TA_SAR_Update __pyx_string_tab[1928] +#define __pyx_n_u_TA_SAR_Value __pyx_string_tab[1929] +#define __pyx_n_u_TA_SIN __pyx_string_tab[1930] +#define __pyx_n_u_TA_SINH __pyx_string_tab[1931] +#define __pyx_n_u_TA_SINH_Clone __pyx_string_tab[1932] +#define __pyx_n_u_TA_SINH_Open __pyx_string_tab[1933] +#define __pyx_n_u_TA_SINH_OpenAndFill __pyx_string_tab[1934] +#define __pyx_n_u_TA_SINH_Peek __pyx_string_tab[1935] +#define __pyx_n_u_TA_SINH_Update __pyx_string_tab[1936] +#define __pyx_n_u_TA_SINH_Value __pyx_string_tab[1937] +#define __pyx_n_u_TA_SIN_Clone __pyx_string_tab[1938] +#define __pyx_n_u_TA_SIN_Open __pyx_string_tab[1939] +#define __pyx_n_u_TA_SIN_OpenAndFill __pyx_string_tab[1940] +#define __pyx_n_u_TA_SIN_Peek __pyx_string_tab[1941] +#define __pyx_n_u_TA_SIN_Update __pyx_string_tab[1942] +#define __pyx_n_u_TA_SIN_Value __pyx_string_tab[1943] +#define __pyx_n_u_TA_SMA __pyx_string_tab[1944] +#define __pyx_n_u_TA_SMA_Clone __pyx_string_tab[1945] +#define __pyx_n_u_TA_SMA_Open __pyx_string_tab[1946] +#define __pyx_n_u_TA_SMA_OpenAndFill __pyx_string_tab[1947] +#define __pyx_n_u_TA_SMA_Peek __pyx_string_tab[1948] +#define __pyx_n_u_TA_SMA_Update __pyx_string_tab[1949] +#define __pyx_n_u_TA_SMA_Value __pyx_string_tab[1950] +#define __pyx_n_u_TA_SMI __pyx_string_tab[1951] +#define __pyx_n_u_TA_SMI_Clone __pyx_string_tab[1952] +#define __pyx_n_u_TA_SMI_Open __pyx_string_tab[1953] +#define __pyx_n_u_TA_SMI_OpenAndFill __pyx_string_tab[1954] +#define __pyx_n_u_TA_SMI_Peek __pyx_string_tab[1955] +#define __pyx_n_u_TA_SMI_Update __pyx_string_tab[1956] +#define __pyx_n_u_TA_SMI_Value __pyx_string_tab[1957] +#define __pyx_n_u_TA_SQRT __pyx_string_tab[1958] +#define __pyx_n_u_TA_SQRT_Clone __pyx_string_tab[1959] +#define __pyx_n_u_TA_SQRT_Open __pyx_string_tab[1960] +#define __pyx_n_u_TA_SQRT_OpenAndFill __pyx_string_tab[1961] +#define __pyx_n_u_TA_SQRT_Peek __pyx_string_tab[1962] +#define __pyx_n_u_TA_SQRT_Update __pyx_string_tab[1963] +#define __pyx_n_u_TA_SQRT_Value __pyx_string_tab[1964] +#define __pyx_n_u_TA_STDDEV __pyx_string_tab[1965] +#define __pyx_n_u_TA_STDDEV_Clone __pyx_string_tab[1966] +#define __pyx_n_u_TA_STDDEV_Open __pyx_string_tab[1967] +#define __pyx_n_u_TA_STDDEV_OpenAndFill __pyx_string_tab[1968] +#define __pyx_n_u_TA_STDDEV_Peek __pyx_string_tab[1969] +#define __pyx_n_u_TA_STDDEV_Update __pyx_string_tab[1970] +#define __pyx_n_u_TA_STDDEV_Value __pyx_string_tab[1971] +#define __pyx_n_u_TA_STOCH __pyx_string_tab[1972] +#define __pyx_n_u_TA_STOCHF __pyx_string_tab[1973] +#define __pyx_n_u_TA_STOCHF_Clone __pyx_string_tab[1974] +#define __pyx_n_u_TA_STOCHF_Open __pyx_string_tab[1975] +#define __pyx_n_u_TA_STOCHF_OpenAndFill __pyx_string_tab[1976] +#define __pyx_n_u_TA_STOCHF_Peek __pyx_string_tab[1977] +#define __pyx_n_u_TA_STOCHF_Update __pyx_string_tab[1978] +#define __pyx_n_u_TA_STOCHF_Value __pyx_string_tab[1979] +#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[1980] +#define __pyx_n_u_TA_STOCHRSI_Clone __pyx_string_tab[1981] +#define __pyx_n_u_TA_STOCHRSI_Open __pyx_string_tab[1982] +#define __pyx_n_u_TA_STOCHRSI_OpenAndFill __pyx_string_tab[1983] +#define __pyx_n_u_TA_STOCHRSI_Peek __pyx_string_tab[1984] +#define __pyx_n_u_TA_STOCHRSI_Update __pyx_string_tab[1985] +#define __pyx_n_u_TA_STOCHRSI_Value __pyx_string_tab[1986] +#define __pyx_n_u_TA_STOCH_Clone __pyx_string_tab[1987] +#define __pyx_n_u_TA_STOCH_Open __pyx_string_tab[1988] +#define __pyx_n_u_TA_STOCH_OpenAndFill __pyx_string_tab[1989] +#define __pyx_n_u_TA_STOCH_Peek __pyx_string_tab[1990] +#define __pyx_n_u_TA_STOCH_Update __pyx_string_tab[1991] +#define __pyx_n_u_TA_STOCH_Value __pyx_string_tab[1992] +#define __pyx_n_u_TA_SUB __pyx_string_tab[1993] +#define __pyx_n_u_TA_SUB_Clone __pyx_string_tab[1994] +#define __pyx_n_u_TA_SUB_Open __pyx_string_tab[1995] +#define __pyx_n_u_TA_SUB_OpenAndFill __pyx_string_tab[1996] +#define __pyx_n_u_TA_SUB_Peek __pyx_string_tab[1997] +#define __pyx_n_u_TA_SUB_Update __pyx_string_tab[1998] +#define __pyx_n_u_TA_SUB_Value __pyx_string_tab[1999] +#define __pyx_n_u_TA_SUM __pyx_string_tab[2000] +#define __pyx_n_u_TA_SUM_Clone __pyx_string_tab[2001] +#define __pyx_n_u_TA_SUM_Open __pyx_string_tab[2002] +#define __pyx_n_u_TA_SUM_OpenAndFill __pyx_string_tab[2003] +#define __pyx_n_u_TA_SUM_Peek __pyx_string_tab[2004] +#define __pyx_n_u_TA_SUM_Update __pyx_string_tab[2005] +#define __pyx_n_u_TA_SUM_Value __pyx_string_tab[2006] +#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[2007] +#define __pyx_n_u_TA_SUPERTREND_Clone __pyx_string_tab[2008] +#define __pyx_n_u_TA_SUPERTREND_Open __pyx_string_tab[2009] +#define __pyx_n_u_TA_SUPERTREND_OpenAndFill __pyx_string_tab[2010] +#define __pyx_n_u_TA_SUPERTREND_Peek __pyx_string_tab[2011] +#define __pyx_n_u_TA_SUPERTREND_Update __pyx_string_tab[2012] +#define __pyx_n_u_TA_SUPERTREND_Value __pyx_string_tab[2013] +#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[2014] +#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[2015] +#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[2016] +#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[2017] +#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[2018] +#define __pyx_n_u_TA_Shutdown __pyx_string_tab[2019] +#define __pyx_n_u_TA_T3 __pyx_string_tab[2020] +#define __pyx_n_u_TA_T3_Clone __pyx_string_tab[2021] +#define __pyx_n_u_TA_T3_Open __pyx_string_tab[2022] +#define __pyx_n_u_TA_T3_OpenAndFill __pyx_string_tab[2023] +#define __pyx_n_u_TA_T3_Peek __pyx_string_tab[2024] +#define __pyx_n_u_TA_T3_Update __pyx_string_tab[2025] +#define __pyx_n_u_TA_T3_Value __pyx_string_tab[2026] +#define __pyx_n_u_TA_TAN __pyx_string_tab[2027] +#define __pyx_n_u_TA_TANH __pyx_string_tab[2028] +#define __pyx_n_u_TA_TANH_Clone __pyx_string_tab[2029] +#define __pyx_n_u_TA_TANH_Open __pyx_string_tab[2030] +#define __pyx_n_u_TA_TANH_OpenAndFill __pyx_string_tab[2031] +#define __pyx_n_u_TA_TANH_Peek __pyx_string_tab[2032] +#define __pyx_n_u_TA_TANH_Update __pyx_string_tab[2033] +#define __pyx_n_u_TA_TANH_Value __pyx_string_tab[2034] +#define __pyx_n_u_TA_TAN_Clone __pyx_string_tab[2035] +#define __pyx_n_u_TA_TAN_Open __pyx_string_tab[2036] +#define __pyx_n_u_TA_TAN_OpenAndFill __pyx_string_tab[2037] +#define __pyx_n_u_TA_TAN_Peek __pyx_string_tab[2038] +#define __pyx_n_u_TA_TAN_Update __pyx_string_tab[2039] +#define __pyx_n_u_TA_TAN_Value __pyx_string_tab[2040] +#define __pyx_n_u_TA_TEMA __pyx_string_tab[2041] +#define __pyx_n_u_TA_TEMA_Clone __pyx_string_tab[2042] +#define __pyx_n_u_TA_TEMA_Open __pyx_string_tab[2043] +#define __pyx_n_u_TA_TEMA_OpenAndFill __pyx_string_tab[2044] +#define __pyx_n_u_TA_TEMA_Peek __pyx_string_tab[2045] +#define __pyx_n_u_TA_TEMA_Update __pyx_string_tab[2046] +#define __pyx_n_u_TA_TEMA_Value __pyx_string_tab[2047] +#define __pyx_n_u_TA_TRANGE __pyx_string_tab[2048] +#define __pyx_n_u_TA_TRANGE_Clone __pyx_string_tab[2049] +#define __pyx_n_u_TA_TRANGE_Open __pyx_string_tab[2050] +#define __pyx_n_u_TA_TRANGE_OpenAndFill __pyx_string_tab[2051] +#define __pyx_n_u_TA_TRANGE_Peek __pyx_string_tab[2052] +#define __pyx_n_u_TA_TRANGE_Update __pyx_string_tab[2053] +#define __pyx_n_u_TA_TRANGE_Value __pyx_string_tab[2054] +#define __pyx_n_u_TA_TRIMA __pyx_string_tab[2055] +#define __pyx_n_u_TA_TRIMA_Clone __pyx_string_tab[2056] +#define __pyx_n_u_TA_TRIMA_Open __pyx_string_tab[2057] +#define __pyx_n_u_TA_TRIMA_OpenAndFill __pyx_string_tab[2058] +#define __pyx_n_u_TA_TRIMA_Peek __pyx_string_tab[2059] +#define __pyx_n_u_TA_TRIMA_Update __pyx_string_tab[2060] +#define __pyx_n_u_TA_TRIMA_Value __pyx_string_tab[2061] +#define __pyx_n_u_TA_TRIX __pyx_string_tab[2062] +#define __pyx_n_u_TA_TRIX_Clone __pyx_string_tab[2063] +#define __pyx_n_u_TA_TRIX_Open __pyx_string_tab[2064] +#define __pyx_n_u_TA_TRIX_OpenAndFill __pyx_string_tab[2065] +#define __pyx_n_u_TA_TRIX_Peek __pyx_string_tab[2066] +#define __pyx_n_u_TA_TRIX_Update __pyx_string_tab[2067] +#define __pyx_n_u_TA_TRIX_Value __pyx_string_tab[2068] +#define __pyx_n_u_TA_TSF __pyx_string_tab[2069] +#define __pyx_n_u_TA_TSF_Clone __pyx_string_tab[2070] +#define __pyx_n_u_TA_TSF_Open __pyx_string_tab[2071] +#define __pyx_n_u_TA_TSF_OpenAndFill __pyx_string_tab[2072] +#define __pyx_n_u_TA_TSF_Peek __pyx_string_tab[2073] +#define __pyx_n_u_TA_TSF_Update __pyx_string_tab[2074] +#define __pyx_n_u_TA_TSF_Value __pyx_string_tab[2075] +#define __pyx_n_u_TA_TSI __pyx_string_tab[2076] +#define __pyx_n_u_TA_TSI_Clone __pyx_string_tab[2077] +#define __pyx_n_u_TA_TSI_Open __pyx_string_tab[2078] +#define __pyx_n_u_TA_TSI_OpenAndFill __pyx_string_tab[2079] +#define __pyx_n_u_TA_TSI_Peek __pyx_string_tab[2080] +#define __pyx_n_u_TA_TSI_Update __pyx_string_tab[2081] +#define __pyx_n_u_TA_TSI_Value __pyx_string_tab[2082] +#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[2083] +#define __pyx_n_u_TA_TYPPRICE_Clone __pyx_string_tab[2084] +#define __pyx_n_u_TA_TYPPRICE_Open __pyx_string_tab[2085] +#define __pyx_n_u_TA_TYPPRICE_OpenAndFill __pyx_string_tab[2086] +#define __pyx_n_u_TA_TYPPRICE_Peek __pyx_string_tab[2087] +#define __pyx_n_u_TA_TYPPRICE_Update __pyx_string_tab[2088] +#define __pyx_n_u_TA_TYPPRICE_Value __pyx_string_tab[2089] +#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[2090] +#define __pyx_n_u_TA_ULTOSC_Clone __pyx_string_tab[2091] +#define __pyx_n_u_TA_ULTOSC_Open __pyx_string_tab[2092] +#define __pyx_n_u_TA_ULTOSC_OpenAndFill __pyx_string_tab[2093] +#define __pyx_n_u_TA_ULTOSC_Peek __pyx_string_tab[2094] +#define __pyx_n_u_TA_ULTOSC_Update __pyx_string_tab[2095] +#define __pyx_n_u_TA_ULTOSC_Value __pyx_string_tab[2096] +#define __pyx_n_u_TA_VAR __pyx_string_tab[2097] +#define __pyx_n_u_TA_VAR_Clone __pyx_string_tab[2098] +#define __pyx_n_u_TA_VAR_Open __pyx_string_tab[2099] +#define __pyx_n_u_TA_VAR_OpenAndFill __pyx_string_tab[2100] +#define __pyx_n_u_TA_VAR_Peek __pyx_string_tab[2101] +#define __pyx_n_u_TA_VAR_Update __pyx_string_tab[2102] +#define __pyx_n_u_TA_VAR_Value __pyx_string_tab[2103] +#define __pyx_n_u_TA_VHF __pyx_string_tab[2104] +#define __pyx_n_u_TA_VHF_Clone __pyx_string_tab[2105] +#define __pyx_n_u_TA_VHF_Open __pyx_string_tab[2106] +#define __pyx_n_u_TA_VHF_OpenAndFill __pyx_string_tab[2107] +#define __pyx_n_u_TA_VHF_Peek __pyx_string_tab[2108] +#define __pyx_n_u_TA_VHF_Update __pyx_string_tab[2109] +#define __pyx_n_u_TA_VHF_Value __pyx_string_tab[2110] +#define __pyx_n_u_TA_VORTEX __pyx_string_tab[2111] +#define __pyx_n_u_TA_VORTEX_Clone __pyx_string_tab[2112] +#define __pyx_n_u_TA_VORTEX_Open __pyx_string_tab[2113] +#define __pyx_n_u_TA_VORTEX_OpenAndFill __pyx_string_tab[2114] +#define __pyx_n_u_TA_VORTEX_Peek __pyx_string_tab[2115] +#define __pyx_n_u_TA_VORTEX_Update __pyx_string_tab[2116] +#define __pyx_n_u_TA_VORTEX_Value __pyx_string_tab[2117] +#define __pyx_n_u_TA_VWAP __pyx_string_tab[2118] +#define __pyx_n_u_TA_VWAP_Clone __pyx_string_tab[2119] +#define __pyx_n_u_TA_VWAP_Open __pyx_string_tab[2120] +#define __pyx_n_u_TA_VWAP_OpenAndFill __pyx_string_tab[2121] +#define __pyx_n_u_TA_VWAP_Peek __pyx_string_tab[2122] +#define __pyx_n_u_TA_VWAP_Update __pyx_string_tab[2123] +#define __pyx_n_u_TA_VWAP_Value __pyx_string_tab[2124] +#define __pyx_n_u_TA_VWMA __pyx_string_tab[2125] +#define __pyx_n_u_TA_VWMA_Clone __pyx_string_tab[2126] +#define __pyx_n_u_TA_VWMA_Open __pyx_string_tab[2127] +#define __pyx_n_u_TA_VWMA_OpenAndFill __pyx_string_tab[2128] +#define __pyx_n_u_TA_VWMA_Peek __pyx_string_tab[2129] +#define __pyx_n_u_TA_VWMA_Update __pyx_string_tab[2130] +#define __pyx_n_u_TA_VWMA_Value __pyx_string_tab[2131] +#define __pyx_n_u_TA_WAD __pyx_string_tab[2132] +#define __pyx_n_u_TA_WAD_Clone __pyx_string_tab[2133] +#define __pyx_n_u_TA_WAD_Open __pyx_string_tab[2134] +#define __pyx_n_u_TA_WAD_OpenAndFill __pyx_string_tab[2135] +#define __pyx_n_u_TA_WAD_Peek __pyx_string_tab[2136] +#define __pyx_n_u_TA_WAD_Update __pyx_string_tab[2137] +#define __pyx_n_u_TA_WAD_Value __pyx_string_tab[2138] +#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[2139] +#define __pyx_n_u_TA_WCLPRICE_Clone __pyx_string_tab[2140] +#define __pyx_n_u_TA_WCLPRICE_Open __pyx_string_tab[2141] +#define __pyx_n_u_TA_WCLPRICE_OpenAndFill __pyx_string_tab[2142] +#define __pyx_n_u_TA_WCLPRICE_Peek __pyx_string_tab[2143] +#define __pyx_n_u_TA_WCLPRICE_Update __pyx_string_tab[2144] +#define __pyx_n_u_TA_WCLPRICE_Value __pyx_string_tab[2145] +#define __pyx_n_u_TA_WILLR __pyx_string_tab[2146] +#define __pyx_n_u_TA_WILLR_Clone __pyx_string_tab[2147] +#define __pyx_n_u_TA_WILLR_Open __pyx_string_tab[2148] +#define __pyx_n_u_TA_WILLR_OpenAndFill __pyx_string_tab[2149] +#define __pyx_n_u_TA_WILLR_Peek __pyx_string_tab[2150] +#define __pyx_n_u_TA_WILLR_Update __pyx_string_tab[2151] +#define __pyx_n_u_TA_WILLR_Value __pyx_string_tab[2152] +#define __pyx_n_u_TA_WMA __pyx_string_tab[2153] +#define __pyx_n_u_TA_WMA_Clone __pyx_string_tab[2154] +#define __pyx_n_u_TA_WMA_Open __pyx_string_tab[2155] +#define __pyx_n_u_TA_WMA_OpenAndFill __pyx_string_tab[2156] +#define __pyx_n_u_TA_WMA_Peek __pyx_string_tab[2157] +#define __pyx_n_u_TA_WMA_Update __pyx_string_tab[2158] +#define __pyx_n_u_TA_WMA_Value __pyx_string_tab[2159] +#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[2160] +#define __pyx_n_u_TA_ZLEMA_Clone __pyx_string_tab[2161] +#define __pyx_n_u_TA_ZLEMA_Open __pyx_string_tab[2162] +#define __pyx_n_u_TA_ZLEMA_OpenAndFill __pyx_string_tab[2163] +#define __pyx_n_u_TA_ZLEMA_Peek __pyx_string_tab[2164] +#define __pyx_n_u_TA_ZLEMA_Update __pyx_string_tab[2165] +#define __pyx_n_u_TA_ZLEMA_Value __pyx_string_tab[2166] +#define __pyx_n_u_TEMA __pyx_string_tab[2167] +#define __pyx_n_u_TEMA_Stream __pyx_string_tab[2168] +#define __pyx_n_u_TEMA_Stream_open_and_fill __pyx_string_tab[2169] +#define __pyx_n_u_TRANGE __pyx_string_tab[2170] +#define __pyx_n_u_TRANGE_Stream __pyx_string_tab[2171] +#define __pyx_n_u_TRANGE_Stream_open_and_fill __pyx_string_tab[2172] +#define __pyx_n_u_TRIMA __pyx_string_tab[2173] +#define __pyx_n_u_TRIMA_Stream __pyx_string_tab[2174] +#define __pyx_n_u_TRIMA_Stream_open_and_fill __pyx_string_tab[2175] +#define __pyx_n_u_TRIX __pyx_string_tab[2176] +#define __pyx_n_u_TRIX_Stream __pyx_string_tab[2177] +#define __pyx_n_u_TRIX_Stream_open_and_fill __pyx_string_tab[2178] +#define __pyx_n_u_TSF __pyx_string_tab[2179] +#define __pyx_n_u_TSF_Stream __pyx_string_tab[2180] +#define __pyx_n_u_TSF_Stream_open_and_fill __pyx_string_tab[2181] +#define __pyx_n_u_TSI __pyx_string_tab[2182] +#define __pyx_n_u_TSI_Stream __pyx_string_tab[2183] +#define __pyx_n_u_TSI_Stream_open_and_fill __pyx_string_tab[2184] +#define __pyx_n_u_TYPPRICE __pyx_string_tab[2185] +#define __pyx_n_u_TYPPRICE_Stream __pyx_string_tab[2186] +#define __pyx_n_u_TYPPRICE_Stream_open_and_fill __pyx_string_tab[2187] +#define __pyx_n_u_ULTOSC __pyx_string_tab[2188] +#define __pyx_n_u_ULTOSC_Stream __pyx_string_tab[2189] +#define __pyx_n_u_ULTOSC_Stream_open_and_fill __pyx_string_tab[2190] +#define __pyx_n_u_VAR __pyx_string_tab[2191] +#define __pyx_n_u_VAR_Stream __pyx_string_tab[2192] +#define __pyx_n_u_VAR_Stream_open_and_fill __pyx_string_tab[2193] +#define __pyx_n_u_VHF __pyx_string_tab[2194] +#define __pyx_n_u_VHF_Stream __pyx_string_tab[2195] +#define __pyx_n_u_VHF_Stream_open_and_fill __pyx_string_tab[2196] +#define __pyx_n_u_VORTEX __pyx_string_tab[2197] +#define __pyx_n_u_VORTEX_Stream __pyx_string_tab[2198] +#define __pyx_n_u_VORTEX_Stream_open_and_fill __pyx_string_tab[2199] +#define __pyx_n_u_VWAP __pyx_string_tab[2200] +#define __pyx_n_u_VWAP_Stream __pyx_string_tab[2201] +#define __pyx_n_u_VWAP_Stream_open_and_fill __pyx_string_tab[2202] +#define __pyx_n_u_VWMA __pyx_string_tab[2203] +#define __pyx_n_u_VWMA_Stream __pyx_string_tab[2204] +#define __pyx_n_u_VWMA_Stream_open_and_fill __pyx_string_tab[2205] +#define __pyx_n_u_WAD __pyx_string_tab[2206] +#define __pyx_n_u_WAD_Stream __pyx_string_tab[2207] +#define __pyx_n_u_WAD_Stream_open_and_fill __pyx_string_tab[2208] +#define __pyx_n_u_WCLPRICE __pyx_string_tab[2209] +#define __pyx_n_u_WCLPRICE_Stream __pyx_string_tab[2210] +#define __pyx_n_u_WCLPRICE_Stream_open_and_fill __pyx_string_tab[2211] +#define __pyx_n_u_WILLR __pyx_string_tab[2212] +#define __pyx_n_u_WILLR_Stream __pyx_string_tab[2213] +#define __pyx_n_u_WILLR_Stream_open_and_fill __pyx_string_tab[2214] +#define __pyx_n_u_WMA __pyx_string_tab[2215] +#define __pyx_n_u_WMA_Stream __pyx_string_tab[2216] +#define __pyx_n_u_WMA_Stream_open_and_fill __pyx_string_tab[2217] +#define __pyx_n_u_ZLEMA __pyx_string_tab[2218] +#define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2219] +#define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2220] +#define __pyx_n_u_Function__call_function __pyx_string_tab[2221] +#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2222] +#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2223] +#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2224] +#define __pyx_n_u_Function__local __pyx_string_tab[2225] +#define __pyx_n_u_Function__localdata __pyx_string_tab[2226] +#define __pyx_n_u_Function__name __pyx_string_tab[2227] +#define __pyx_n_u_Function__namestr __pyx_string_tab[2228] +#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2229] +#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2230] +#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2231] +#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2232] +#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[2233] +#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[2234] +#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[2235] +#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[2236] +#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[2237] +#define __pyx_n_u_all __pyx_string_tab[2238] +#define __pyx_n_u_annotate __pyx_string_tab[2239] +#define __pyx_n_u_call __pyx_string_tab[2240] +#define __pyx_n_u_call_function __pyx_string_tab[2241] +#define __pyx_n_u_check_opt_input_value __pyx_string_tab[2242] +#define __pyx_n_u_class_getitem __pyx_string_tab[2243] +#define __pyx_n_u_copy_2 __pyx_string_tab[2244] +#define __pyx_n_u_deepcopy __pyx_string_tab[2245] +#define __pyx_n_u_dict __pyx_string_tab[2246] +#define __pyx_n_u_doc __pyx_string_tab[2247] +#define __pyx_n_u_func __pyx_string_tab[2248] +#define __pyx_n_u_get_flags __pyx_string_tab[2249] +#define __pyx_n_u_get_opt_input_value __pyx_string_tab[2250] +#define __pyx_n_u_getitem __pyx_string_tab[2251] +#define __pyx_n_u_init __pyx_string_tab[2252] +#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[2253] +#define __pyx_n_u_local_2 __pyx_string_tab[2254] +#define __pyx_n_u_main __pyx_string_tab[2255] +#define __pyx_n_u_metaclass __pyx_string_tab[2256] +#define __pyx_n_u_module __pyx_string_tab[2257] +#define __pyx_n_u_mro_entries __pyx_string_tab[2258] +#define __pyx_n_u_name_2 __pyx_string_tab[2259] +#define __pyx_n_u_new __pyx_string_tab[2260] +#define __pyx_n_u_prepare __pyx_string_tab[2261] +#define __pyx_n_u_pyx_vtable __pyx_string_tab[2262] +#define __pyx_n_u_qualname __pyx_string_tab[2263] +#define __pyx_n_u_reduce __pyx_string_tab[2264] +#define __pyx_n_u_repr __pyx_string_tab[2265] +#define __pyx_n_u_set_name __pyx_string_tab[2266] +#define __pyx_n_u_str __pyx_string_tab[2267] +#define __pyx_n_u_ta_version __pyx_string_tab[2268] +#define __pyx_n_u_test __pyx_string_tab[2269] +#define __pyx_n_u_unicode __pyx_string_tab[2270] +#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[2271] +#define __pyx_n_u_is_coroutine __pyx_string_tab[2272] +#define __pyx_n_u_lookup __pyx_string_tab[2273] +#define __pyx_n_u_ta_check_success __pyx_string_tab[2274] +#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[2275] +#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[2276] +#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[2277] +#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[2278] +#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[2279] +#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[2280] +#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[2281] +#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[2282] +#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[2283] +#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[2284] +#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[2285] +#define __pyx_n_u_ta_initialize __pyx_string_tab[2286] +#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[2287] +#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[2288] +#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[2289] +#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[2290] +#define __pyx_n_u_ta_shutdown __pyx_string_tab[2291] +#define __pyx_n_u_a_close __pyx_string_tab[2292] +#define __pyx_n_u_a_high __pyx_string_tab[2293] +#define __pyx_n_u_a_low __pyx_string_tab[2294] +#define __pyx_n_u_a_open __pyx_string_tab[2295] +#define __pyx_n_u_a_periods __pyx_string_tab[2296] +#define __pyx_n_u_a_real __pyx_string_tab[2297] +#define __pyx_n_u_a_real0 __pyx_string_tab[2298] +#define __pyx_n_u_a_real1 __pyx_string_tab[2299] +#define __pyx_n_u_a_volume __pyx_string_tab[2300] +#define __pyx_n_u_acceleration __pyx_string_tab[2301] +#define __pyx_n_u_accelerationinitlong __pyx_string_tab[2302] +#define __pyx_n_u_accelerationinitshort __pyx_string_tab[2303] +#define __pyx_n_u_accelerationlong __pyx_string_tab[2304] +#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[2305] +#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[2306] +#define __pyx_n_u_accelerationshort __pyx_string_tab[2307] +#define __pyx_n_u_append __pyx_string_tab[2308] +#define __pyx_n_u_arg __pyx_string_tab[2309] +#define __pyx_n_u_args __pyx_string_tab[2310] +#define __pyx_n_u_arrays __pyx_string_tab[2311] +#define __pyx_n_u_ascii __pyx_string_tab[2312] +#define __pyx_n_u_astype __pyx_string_tab[2313] +#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[2314] +#define __pyx_n_u_atrperiod __pyx_string_tab[2315] +#define __pyx_n_u_avgperiod __pyx_string_tab[2316] +#define __pyx_n_u_b __pyx_string_tab[2317] +#define __pyx_n_u_begidx __pyx_string_tab[2318] +#define __pyx_n_u_bit __pyx_string_tab[2319] +#define __pyx_n_u_bytes2str __pyx_string_tab[2320] +#define __pyx_n_u_candlestick __pyx_string_tab[2321] +#define __pyx_n_u_cline_in_traceback __pyx_string_tab[2322] +#define __pyx_n_u_clone __pyx_string_tab[2323] +#define __pyx_n_u_close __pyx_string_tab[2324] +#define __pyx_n_u_collections __pyx_string_tab[2325] +#define __pyx_n_u_column_stack __pyx_string_tab[2326] +#define __pyx_n_u_columns __pyx_string_tab[2327] +#define __pyx_n_u_copy __pyx_string_tab[2328] +#define __pyx_n_u_d __pyx_string_tab[2329] +#define __pyx_n_u_decode __pyx_string_tab[2330] +#define __pyx_n_u_default_value __pyx_string_tab[2331] +#define __pyx_n_u_defaults __pyx_string_tab[2332] +#define __pyx_n_u_description __pyx_string_tab[2333] +#define __pyx_n_u_display_name __pyx_string_tab[2334] +#define __pyx_n_u_docs __pyx_string_tab[2335] +#define __pyx_n_u_documentation __pyx_string_tab[2336] +#define __pyx_n_u_empty __pyx_string_tab[2337] +#define __pyx_n_u_endidx __pyx_string_tab[2338] +#define __pyx_n_u_endswith __pyx_string_tab[2339] +#define __pyx_n_u_enumerate __pyx_string_tab[2340] +#define __pyx_n_u_factor __pyx_string_tab[2341] +#define __pyx_n_u_fastd_matype __pyx_string_tab[2342] +#define __pyx_n_u_fastd_period __pyx_string_tab[2343] +#define __pyx_n_u_fastk_period __pyx_string_tab[2344] +#define __pyx_n_u_fastlimit __pyx_string_tab[2345] +#define __pyx_n_u_fastmatype __pyx_string_tab[2346] +#define __pyx_n_u_fastperiod __pyx_string_tab[2347] +#define __pyx_n_u_firstperiod __pyx_string_tab[2348] +#define __pyx_n_u_flag __pyx_string_tab[2349] +#define __pyx_n_u_flags __pyx_string_tab[2350] +#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[2351] +#define __pyx_n_u_func_args __pyx_string_tab[2352] +#define __pyx_n_u_func_info __pyx_string_tab[2353] +#define __pyx_n_u_func_line __pyx_string_tab[2354] +#define __pyx_n_u_func_object __pyx_string_tab[2355] +#define __pyx_n_u_function_flags __pyx_string_tab[2356] +#define __pyx_n_u_function_name __pyx_string_tab[2357] +#define __pyx_n_u_functions __pyx_string_tab[2358] +#define __pyx_n_u_get_input_arrays __pyx_string_tab[2359] +#define __pyx_n_u_get_input_names __pyx_string_tab[2360] +#define __pyx_n_u_get_parameters __pyx_string_tab[2361] +#define __pyx_n_u_group __pyx_string_tab[2362] +#define __pyx_n_u_groups __pyx_string_tab[2363] +#define __pyx_n_u_handle __pyx_string_tab[2364] +#define __pyx_n_u_help __pyx_string_tab[2365] +#define __pyx_n_u_high __pyx_string_tab[2366] +#define __pyx_n_u_historylen __pyx_string_tab[2367] +#define __pyx_n_u_holder __pyx_string_tab[2368] +#define __pyx_n_u_i __pyx_string_tab[2369] +#define __pyx_n_u_id __pyx_string_tab[2370] +#define __pyx_n_u_idx __pyx_string_tab[2371] +#define __pyx_n_u_import_error __pyx_string_tab[2372] +#define __pyx_n_u_in __pyx_string_tab[2373] +#define __pyx_n_u_index __pyx_string_tab[2374] +#define __pyx_n_u_info __pyx_string_tab[2375] +#define __pyx_n_u_input_arrays __pyx_string_tab[2376] +#define __pyx_n_u_input_name __pyx_string_tab[2377] +#define __pyx_n_u_input_names __pyx_string_tab[2378] +#define __pyx_n_u_input_price_series_names __pyx_string_tab[2379] +#define __pyx_n_u_integer __pyx_string_tab[2380] +#define __pyx_n_u_is_empty __pyx_string_tab[2381] +#define __pyx_n_u_items __pyx_string_tab[2382] +#define __pyx_n_u_key __pyx_string_tab[2383] +#define __pyx_n_u_keys __pyx_string_tab[2384] +#define __pyx_n_u_kwargs __pyx_string_tab[2385] +#define __pyx_n_u_leftbars __pyx_string_tab[2386] +#define __pyx_n_u_length __pyx_string_tab[2387] +#define __pyx_n_u_local __pyx_string_tab[2388] +#define __pyx_n_u_lookback __pyx_string_tab[2389] +#define __pyx_n_u_low __pyx_string_tab[2390] +#define __pyx_n_u_lower __pyx_string_tab[2391] +#define __pyx_n_u_matype __pyx_string_tab[2392] +#define __pyx_n_u_maximum __pyx_string_tab[2393] +#define __pyx_n_u_maxperiod __pyx_string_tab[2394] +#define __pyx_n_u_memo __pyx_string_tab[2395] +#define __pyx_n_u_minperiod __pyx_string_tab[2396] +#define __pyx_n_u_missing __pyx_string_tab[2397] +#define __pyx_n_u_missing_keys __pyx_string_tab[2398] +#define __pyx_n_u_module_2 __pyx_string_tab[2399] +#define __pyx_n_u_msg __pyx_string_tab[2400] +#define __pyx_n_u_multiplier __pyx_string_tab[2401] +#define __pyx_n_u_n __pyx_string_tab[2402] +#define __pyx_n_u_name __pyx_string_tab[2403] +#define __pyx_n_u_namedtuple __pyx_string_tab[2404] +#define __pyx_n_u_nan __pyx_string_tab[2405] +#define __pyx_n_u_nbdev __pyx_string_tab[2406] +#define __pyx_n_u_nbdevdn __pyx_string_tab[2407] +#define __pyx_n_u_nbdevup __pyx_string_tab[2408] +#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[2409] +#define __pyx_n_u_num_inputs __pyx_string_tab[2410] +#define __pyx_n_u_num_opt_inputs __pyx_string_tab[2411] +#define __pyx_n_u_num_outputs __pyx_string_tab[2412] +#define __pyx_n_u_numpy __pyx_string_tab[2413] +#define __pyx_n_u_object __pyx_string_tab[2414] +#define __pyx_n_u_offsetonreverse __pyx_string_tab[2415] +#define __pyx_n_u_open __pyx_string_tab[2416] +#define __pyx_n_u_openInterest __pyx_string_tab[2417] +#define __pyx_n_u_open_and_fill __pyx_string_tab[2418] +#define __pyx_n_u_optIn __pyx_string_tab[2419] +#define __pyx_n_u_opt_input __pyx_string_tab[2420] +#define __pyx_n_u_opt_input_values __pyx_string_tab[2421] +#define __pyx_n_u_opt_inputs __pyx_string_tab[2422] +#define __pyx_n_u_ordereddict __pyx_string_tab[2423] +#define __pyx_n_u_out __pyx_string_tab[2424] +#define __pyx_n_u_outaroondown __pyx_string_tab[2425] +#define __pyx_n_u_outaroonup __pyx_string_tab[2426] +#define __pyx_n_u_outbearpower __pyx_string_tab[2427] +#define __pyx_n_u_outbegidx __pyx_string_tab[2428] +#define __pyx_n_u_outbullpower __pyx_string_tab[2429] +#define __pyx_n_u_outd __pyx_string_tab[2430] +#define __pyx_n_u_outfama __pyx_string_tab[2431] +#define __pyx_n_u_outfastd __pyx_string_tab[2432] +#define __pyx_n_u_outfastk __pyx_string_tab[2433] +#define __pyx_n_u_outhaclose __pyx_string_tab[2434] +#define __pyx_n_u_outhahigh __pyx_string_tab[2435] +#define __pyx_n_u_outhalow __pyx_string_tab[2436] +#define __pyx_n_u_outhaopen __pyx_string_tab[2437] +#define __pyx_n_u_outinphase __pyx_string_tab[2438] +#define __pyx_n_u_outinteger __pyx_string_tab[2439] +#define __pyx_n_u_outinteger_data __pyx_string_tab[2440] +#define __pyx_n_u_outj __pyx_string_tab[2441] +#define __pyx_n_u_outk __pyx_string_tab[2442] +#define __pyx_n_u_outleadsine __pyx_string_tab[2443] +#define __pyx_n_u_outlowerband __pyx_string_tab[2444] +#define __pyx_n_u_outmacd __pyx_string_tab[2445] +#define __pyx_n_u_outmacdhist __pyx_string_tab[2446] +#define __pyx_n_u_outmacdsignal __pyx_string_tab[2447] +#define __pyx_n_u_outmama __pyx_string_tab[2448] +#define __pyx_n_u_outmax __pyx_string_tab[2449] +#define __pyx_n_u_outmaxidx __pyx_string_tab[2450] +#define __pyx_n_u_outmaxidx_data __pyx_string_tab[2451] +#define __pyx_n_u_outmiddleband __pyx_string_tab[2452] +#define __pyx_n_u_outmin __pyx_string_tab[2453] +#define __pyx_n_u_outminidx __pyx_string_tab[2454] +#define __pyx_n_u_outminidx_data __pyx_string_tab[2455] +#define __pyx_n_u_outminusvi __pyx_string_tab[2456] +#define __pyx_n_u_outnbelement __pyx_string_tab[2457] +#define __pyx_n_u_outplusvi __pyx_string_tab[2458] +#define __pyx_n_u_output __pyx_string_tab[2459] +#define __pyx_n_u_output_flags __pyx_string_tab[2460] +#define __pyx_n_u_output_name __pyx_string_tab[2461] +#define __pyx_n_u_output_names __pyx_string_tab[2462] +#define __pyx_n_u_outputs __pyx_string_tab[2463] +#define __pyx_n_u_outputs_valid __pyx_string_tab[2464] +#define __pyx_n_u_outquadrature __pyx_string_tab[2465] +#define __pyx_n_u_outreal __pyx_string_tab[2466] +#define __pyx_n_u_outreallowerband __pyx_string_tab[2467] +#define __pyx_n_u_outrealmiddleband __pyx_string_tab[2468] +#define __pyx_n_u_outrealupperband __pyx_string_tab[2469] +#define __pyx_n_u_outsine __pyx_string_tab[2470] +#define __pyx_n_u_outslowd __pyx_string_tab[2471] +#define __pyx_n_u_outslowk __pyx_string_tab[2472] +#define __pyx_n_u_outsmi __pyx_string_tab[2473] +#define __pyx_n_u_outsmisignal __pyx_string_tab[2474] +#define __pyx_n_u_outsupertrend __pyx_string_tab[2475] +#define __pyx_n_u_outswinghigh __pyx_string_tab[2476] +#define __pyx_n_u_outswinglow __pyx_string_tab[2477] +#define __pyx_n_u_outtrend __pyx_string_tab[2478] +#define __pyx_n_u_outupperband __pyx_string_tab[2479] +#define __pyx_n_u_pandas __pyx_string_tab[2480] +#define __pyx_n_u_param __pyx_string_tab[2481] +#define __pyx_n_u_param_name __pyx_string_tab[2482] +#define __pyx_n_u_parameters __pyx_string_tab[2483] +#define __pyx_n_u_params __pyx_string_tab[2484] +#define __pyx_n_u_penetration __pyx_string_tab[2485] +#define __pyx_n_u_percentile __pyx_string_tab[2486] +#define __pyx_n_u_period __pyx_string_tab[2487] +#define __pyx_n_u_periods __pyx_string_tab[2488] +#define __pyx_n_u_polars __pyx_string_tab[2489] +#define __pyx_n_u_pop __pyx_string_tab[2490] +#define __pyx_n_u_price __pyx_string_tab[2491] +#define __pyx_n_u_price0 __pyx_string_tab[2492] +#define __pyx_n_u_price1 __pyx_string_tab[2493] +#define __pyx_n_u_price_series __pyx_string_tab[2494] +#define __pyx_n_u_price_series_name_values __pyx_string_tab[2495] +#define __pyx_n_u_prices __pyx_string_tab[2496] +#define __pyx_n_u_property __pyx_string_tab[2497] +#define __pyx_n_u_rangetype __pyx_string_tab[2498] +#define __pyx_n_u_real __pyx_string_tab[2499] +#define __pyx_n_u_real0 __pyx_string_tab[2500] +#define __pyx_n_u_real1 __pyx_string_tab[2501] +#define __pyx_n_u_replace __pyx_string_tab[2502] +#define __pyx_n_u_results __pyx_string_tab[2503] +#define __pyx_n_u_ret __pyx_string_tab[2504] +#define __pyx_n_u_retCode __pyx_string_tab[2505] +#define __pyx_n_u_ret_code __pyx_string_tab[2506] +#define __pyx_n_u_rightbars __pyx_string_tab[2507] +#define __pyx_n_u_roc1period __pyx_string_tab[2508] +#define __pyx_n_u_roc2period __pyx_string_tab[2509] +#define __pyx_n_u_rocperiod __pyx_string_tab[2510] +#define __pyx_n_u_run __pyx_string_tab[2511] +#define __pyx_n_u_s __pyx_string_tab[2512] +#define __pyx_n_u_schema __pyx_string_tab[2513] +#define __pyx_n_u_secondperiod __pyx_string_tab[2514] +#define __pyx_n_u_self __pyx_string_tab[2515] +#define __pyx_n_u_series __pyx_string_tab[2516] +#define __pyx_n_u_set_function_args __pyx_string_tab[2517] +#define __pyx_n_u_set_input_arrays __pyx_string_tab[2518] +#define __pyx_n_u_set_input_names __pyx_string_tab[2519] +#define __pyx_n_u_set_parameters __pyx_string_tab[2520] +#define __pyx_n_u_setdefault __pyx_string_tab[2521] +#define __pyx_n_u_settingtype __pyx_string_tab[2522] +#define __pyx_n_u_signalmatype __pyx_string_tab[2523] +#define __pyx_n_u_signalperiod __pyx_string_tab[2524] +#define __pyx_n_u_skip_first __pyx_string_tab[2525] +#define __pyx_n_u_slowd_matype __pyx_string_tab[2526] +#define __pyx_n_u_slowd_period __pyx_string_tab[2527] +#define __pyx_n_u_slowk_matype __pyx_string_tab[2528] +#define __pyx_n_u_slowk_period __pyx_string_tab[2529] +#define __pyx_n_u_slowlimit __pyx_string_tab[2530] +#define __pyx_n_u_slowmatype __pyx_string_tab[2531] +#define __pyx_n_u_slowperiod __pyx_string_tab[2532] +#define __pyx_n_u_stacklevel __pyx_string_tab[2533] +#define __pyx_n_u_startvalue __pyx_string_tab[2534] +#define __pyx_n_u_staticmethod __pyx_string_tab[2535] +#define __pyx_n_u_stddevperiod __pyx_string_tab[2536] +#define __pyx_n_u_str2bytes __pyx_string_tab[2537] +#define __pyx_n_u_stream __pyx_string_tab[2538] +#define __pyx_n_u_sys __pyx_string_tab[2539] +#define __pyx_n_u_table __pyx_string_tab[2540] +#define __pyx_n_u_talib__ta_lib __pyx_string_tab[2541] +#define __pyx_n_u_threading __pyx_string_tab[2542] +#define __pyx_n_u_timeStamp __pyx_string_tab[2543] +#define __pyx_n_u_timeperiod __pyx_string_tab[2544] +#define __pyx_n_u_timeperiod1 __pyx_string_tab[2545] +#define __pyx_n_u_timeperiod2 __pyx_string_tab[2546] +#define __pyx_n_u_timeperiod3 __pyx_string_tab[2547] +#define __pyx_n_u_to_numpy __pyx_string_tab[2548] +#define __pyx_n_u_type_2 __pyx_string_tab[2549] +#define __pyx_n_u_type __pyx_string_tab[2550] +#define __pyx_n_u_unst_id __pyx_string_tab[2551] +#define __pyx_n_u_update __pyx_string_tab[2552] +#define __pyx_n_u_update_info __pyx_string_tab[2553] +#define __pyx_n_u_upper __pyx_string_tab[2554] +#define __pyx_n_u_value __pyx_string_tab[2555] +#define __pyx_n_u_values __pyx_string_tab[2556] +#define __pyx_n_u_version __pyx_string_tab[2557] +#define __pyx_n_u_vfactor __pyx_string_tab[2558] +#define __pyx_n_u_volume __pyx_string_tab[2559] +#define __pyx_n_u_warn __pyx_string_tab[2560] +#define __pyx_n_u_warnings __pyx_string_tab[2561] +#define __pyx_n_u_wmaperiod __pyx_string_tab[2562] +#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[2563] +#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[2564] +#define __pyx_kp_b_iso88591_1_1 __pyx_string_tab[2565] +#define __pyx_kp_b_iso88591_a_QoQ __pyx_string_tab[2566] +#define __pyx_kp_b_iso88591_Q_q __pyx_string_tab[2567] +#define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[2568] +#define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[2569] +#define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[2570] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[2571] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[2572] +#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[2573] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[2574] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[2575] +#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[2576] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[2577] +#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[2578] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[2579] +#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[2580] +#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[2581] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[2582] +#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[2583] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[2584] +#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[2585] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[2586] +#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[2587] +#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[2588] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[2589] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[2590] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[2591] +#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[2592] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[2593] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[2594] +#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[2595] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[2596] +#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[2597] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[2598] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[2599] +#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[2600] +#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[2601] +#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[2602] +#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[2603] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[2604] +#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[2605] +#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[2606] +#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[2607] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[2608] +#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[2609] +#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2610] +#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[2611] +#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[2612] +#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[2613] +#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[2614] +#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[2615] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[2616] +#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[2617] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[2618] +#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[2619] +#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[2620] +#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[2621] +#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[2622] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2623] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2624] +#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[2625] +#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[2626] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[2627] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[2628] +#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[2629] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[2630] +#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2631] +#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2632] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[2633] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2634] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2635] +#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[2636] +#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[2637] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[2638] +#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2639] +#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2640] +#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2641] +#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2642] +#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[2643] +#define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[2644] +#define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[2645] +#define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[2646] +#define __pyx_kp_b_iso88591_Q_B_1A_Q_V1E_gQfAU_Q_1 __pyx_string_tab[2647] +#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[2648] +#define __pyx_kp_b_iso88591_314DAQ_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[2649] +#define __pyx_kp_b_iso88591_Q_NeSTTU_Q_2_9AT_4q_1G6_wc_t81H __pyx_string_tab[2650] +#define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2651] +#define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2652] +#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2653] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[2654] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[2655] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[2656] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[2657] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[2658] +#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[2659] +#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[2660] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[2661] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[2662] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[2663] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[2664] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[2665] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[2666] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[2667] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[2668] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[2669] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[2670] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[2671] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[2672] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[2673] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[2674] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[2675] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[2676] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[2677] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[2678] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[2679] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[2680] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[2681] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[2682] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[2683] +#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[2684] +#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[2685] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[2686] +#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[2687] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[2688] +#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[2689] +#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[2690] +#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2691] +#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2692] +#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2693] +#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[2694] +#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[2695] +#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[2696] +#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[2697] +#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[2698] +#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2699] +#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2700] +#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2701] +#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[2702] +#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2703] +#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU __pyx_string_tab[2704] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3 __pyx_string_tab[2705] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2706] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2 __pyx_string_tab[2707] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6 __pyx_string_tab[2708] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_2_81_2 __pyx_string_tab[2709] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_31HA_7q __pyx_string_tab[2710] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_8 __pyx_string_tab[2711] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_31HA_9 __pyx_string_tab[2712] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8 __pyx_string_tab[2713] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_aq_31HA_1 __pyx_string_tab[2714] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh_2 __pyx_string_tab[2715] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_N_81_N_81 __pyx_string_tab[2716] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2 __pyx_string_tab[2717] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_H_31HA_6Q __pyx_string_tab[2718] +#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2719] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_Q_31HA_Q __pyx_string_tab[2720] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1L_31HA_7q __pyx_string_tab[2721] +#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_G5_q_A_31HA __pyx_string_tab[2722] +#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[2723] +#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR __pyx_string_tab[2724] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_G5_1L __pyx_string_tab[2725] +#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_G5_9_lRS_3 __pyx_string_tab[2726] +#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_G5_8_Q_31H __pyx_string_tab[2727] +#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_G5_Ql __pyx_string_tab[2728] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_q_A_31H __pyx_string_tab[2729] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_8_a_31H __pyx_string_tab[2730] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_9 __pyx_string_tab[2731] +#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_G5_9_31HA_a_5Qax __pyx_string_tab[2732] +#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_G5_8_QR_31 __pyx_string_tab[2733] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_9_Q_31H __pyx_string_tab[2734] +#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_G5_AZq __pyx_string_tab[2735] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_8_31 __pyx_string_tab[2736] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_1_8 __pyx_string_tab[2737] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_AQ_3 __pyx_string_tab[2738] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3 __pyx_string_tab[2739] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_8 __pyx_string_tab[2740] +#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_G5_8_Q __pyx_string_tab[2741] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_A __pyx_string_tab[2742] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_3 __pyx_string_tab[2743] +#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_G5_q __pyx_string_tab[2744] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_8_31H __pyx_string_tab[2745] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_1A_31 __pyx_string_tab[2746] +#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2747] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_9_31HA __pyx_string_tab[2748] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_1A_31H __pyx_string_tab[2749] +#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_G5_9_PQ __pyx_string_tab[2750] +#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[2751] +#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2752] +#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_G5_8_q __pyx_string_tab[2753] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_q __pyx_string_tab[2754] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8 __pyx_string_tab[2755] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8_2 __pyx_string_tab[2756] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9 __pyx_string_tab[2757] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1_2 __pyx_string_tab[2758] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1 __pyx_string_tab[2759] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_A __pyx_string_tab[2760] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_2 __pyx_string_tab[2761] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q __pyx_string_tab[2762] +#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2763] +#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_G __pyx_string_tab[2764] +#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5 __pyx_string_tab[2765] +#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2766] +#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2767] +#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[2768] +#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[2769] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8 __pyx_string_tab[2770] +#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_G __pyx_string_tab[2771] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[2772] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[2773] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[2774] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2775] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2776] +#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[2777] +#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[2778] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3_2 __pyx_string_tab[2779] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2 __pyx_string_tab[2780] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5 __pyx_string_tab[2781] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq __pyx_string_tab[2782] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_7q __pyx_string_tab[2783] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_7q __pyx_string_tab[2784] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_a_6axq_9_1 __pyx_string_tab[2785] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_1 __pyx_string_tab[2786] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh __pyx_string_tab[2787] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_a_Q __pyx_string_tab[2788] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_1HA_a_Qa __pyx_string_tab[2789] +#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_G5_Q_31HA __pyx_string_tab[2790] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_8_3 __pyx_string_tab[2791] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_1_3 __pyx_string_tab[2792] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3 __pyx_string_tab[2793] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_q __pyx_string_tab[2794] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_9 __pyx_string_tab[2795] +#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_G5_Q_31H __pyx_string_tab[2796] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_15 __pyx_string_tab[2797] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_2 __pyx_string_tab[2798] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_13 __pyx_string_tab[2799] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5 __pyx_string_tab[2800] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3 __pyx_string_tab[2801] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5 __pyx_string_tab[2802] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6 __pyx_string_tab[2803] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10 __pyx_string_tab[2804] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14 __pyx_string_tab[2805] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4 __pyx_string_tab[2806] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9 __pyx_string_tab[2807] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7 __pyx_string_tab[2808] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8 __pyx_string_tab[2809] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11 __pyx_string_tab[2810] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12 __pyx_string_tab[2811] +#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2812] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2813] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a __pyx_string_tab[2814] +#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2815] +#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[2816] +#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2817] +#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2818] +#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2819] +#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[2820] +#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[2821] +#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[2822] +#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[2823] +#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2824] +#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2825] +#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2826] +#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[2827] +#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2828] +#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[2829] +#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2830] +#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[2831] #define __pyx_float_0_2 __pyx_number_tab[0] #define __pyx_float_0_3 __pyx_number_tab[1] #define __pyx_float_0_5 __pyx_number_tab[2] @@ -17710,9 +17670,9 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_items.method); Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_pop.method); Py_CLEAR(clear_module_state->__pyx_umethod_PyDict_Type_values.method); - for (int i=0; i<59; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } + for (int i=0; i<36; ++i) { Py_CLEAR(clear_module_state->__pyx_tuple[i]); } for (int i=0; i<453; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<2872; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<2832; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } for (int i=0; i<35; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ @@ -18159,9 +18119,9 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_items.method); Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_pop.method); Py_VISIT(traverse_module_state->__pyx_umethod_PyDict_Type_values.method); - for (int i=0; i<59; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } + for (int i=0; i<36; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_tuple[i]); } for (int i=0; i<453; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<2872; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<2832; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } for (int i=0; i<35; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ @@ -77724,46 +77684,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2666, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2664, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2666, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2664, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 2666, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 2664, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2664, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2664, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2664, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -77772,14 +77732,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2666, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2664, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2666, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2664, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -77825,42 +77785,42 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2667, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2670, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2668, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2668, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2668, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2671, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2669, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2672, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2670, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2673, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2671, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -77872,7 +77832,7 @@ static int __pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ACCBANDS_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2680, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ACCBANDS_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -77961,46 +77921,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2686, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2684, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2686, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2684, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 2686, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 2684, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2684, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2684, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2684, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -78009,14 +77969,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2687, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2685, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 2684, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -78064,66 +78024,62 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2688, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2691, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2691, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2689, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2691, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2689, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2691, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2689, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2692, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2690, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2693, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2691, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2694, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2692, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2696, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2697, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2698, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -78137,13 +78093,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2704, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2705, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACCBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -78152,91 +78108,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 2708, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 2706, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -78246,9 +78187,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_4open_and_fill(PyObj __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -78315,46 +78253,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2710, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2708, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2708, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2708, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2708, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2710, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2708, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 2710, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 2708, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2708, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2708, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2708, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2711, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2711, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2711, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2709, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2709, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2709, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2710, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2708, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -78390,9 +78328,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -78405,53 +78340,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2717, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2718, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2718, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 2716, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 2716, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 2716, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -78461,8 +78381,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_6update(struct __pyx __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -78517,46 +78435,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2720, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2718, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2718, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2718, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2718, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2720, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2718, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 2720, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 2718, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2718, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2718, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2720, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2718, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2721, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2721, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2721, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2719, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2719, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2719, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2720, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 2718, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -78592,9 +78510,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_o PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -78607,53 +78522,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2727, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2728, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2728, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 2726, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 2726, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 2726, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -78663,8 +78563,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_8peek(struct __pyx_o __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -78705,9 +78603,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struc PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -78720,53 +78615,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2737, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2738, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2738, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 2738, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 2738, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2738, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 2736, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 2736, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 2736, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -78776,8 +78656,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_5value___get__(struc __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.ACCBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -78892,7 +78770,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2751, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -78905,10 +78783,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15ACCBANDS_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2752, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream))))) __PYX_ERR(3, 2752, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream))))) __PYX_ERR(3, 2750, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -79017,32 +78895,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2774, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2772, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2772, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2774, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2772, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 2774, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 2772, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2772, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2774, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2772, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -79083,26 +78961,26 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2775, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2776, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2774, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2777, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2775, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2778, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2776, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2779, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2777, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -79114,7 +78992,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ACOS_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ACOS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ACOS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -79196,32 +79074,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2790, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2788, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2788, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2790, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2788, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 2790, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 2788, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2788, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2790, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2788, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -79267,31 +79145,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2793, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2793, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 2791, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2794, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2792, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2795, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2793, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2796, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2794, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2798, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -79305,13 +79183,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2804, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ACOS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2805, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ACOS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -79320,21 +79198,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2808, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 2808, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2808, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 2806, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2808, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2808, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2806, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 2808, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 2806, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -79412,32 +79290,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2810, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2808, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2810, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2808, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2810, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2808, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 2810, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 2808, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2810, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2808, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2811, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2809, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2810, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2808, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -79478,13 +79356,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2815, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2816, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -79551,32 +79429,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2818, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2816, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2816, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2818, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2816, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 2818, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 2816, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2818, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2816, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2819, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2817, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2818, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 2816, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -79617,13 +79495,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2823, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2824, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -79685,13 +79563,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2831, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2832, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -79820,7 +79698,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2845, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -79833,10 +79711,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ACOS_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2846, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream))))) __PYX_ERR(3, 2846, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream))))) __PYX_ERR(3, 2844, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -79948,44 +79826,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2868, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2866, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2866, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2866, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2866, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2866, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2868, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2866, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 2868, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 2866, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2866, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2866, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2866, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2868, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2866, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -79994,7 +79872,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2868, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2866, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -80038,50 +79916,50 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2870, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2871, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2872, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2873, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2871, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2871, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2871, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 2873, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 2871, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2874, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2872, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2875, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2873, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2876, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2874, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -80093,7 +79971,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AD_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2881, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -80181,44 +80059,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2887, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2885, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2887, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2885, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 2887, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 2885, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2885, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2885, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2885, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2887, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2885, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -80227,7 +80105,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2887, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2885, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -80276,55 +80154,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2889, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2890, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2891, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2892, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2893, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 2891, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 2891, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 2891, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 2893, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 2891, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2894, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2892, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2895, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2893, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2896, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2894, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2898, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -80338,13 +80216,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2904, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -80353,30 +80231,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2908, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 2906, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 2906, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 2906, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2908, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 2906, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2908, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 2906, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 2908, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 2906, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -80460,53 +80338,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2910, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2908, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2908, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2910, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 2908, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 2910, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 2908, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2908, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2908, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2908, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2910, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2908, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2911, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2909, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2909, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2909, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2909, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2910, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2908, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -80550,13 +80428,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2915, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2916, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -80626,53 +80504,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2918, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2916, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2916, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2916, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2916, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2916, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2918, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 2916, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 2918, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 2916, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2916, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2916, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 2916, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2918, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 2916, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2919, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2917, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2917, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2917, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 2917, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2918, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 2916, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -80716,13 +80594,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2923, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2924, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -80784,13 +80662,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2931, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2932, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -80919,7 +80797,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2945, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -80932,10 +80810,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AD_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2946, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream))))) __PYX_ERR(3, 2946, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream))))) __PYX_ERR(3, 2944, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -81045,39 +80923,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2969, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2967, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2969, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 2967, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 2969, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 2967, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2967, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2967, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2969, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2967, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -81119,34 +80997,34 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2970, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2971, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2972, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 2972, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 2970, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 2972, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 2970, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2973, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2971, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2974, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2972, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2975, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2973, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -81158,7 +81036,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADD_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2980, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -81242,39 +81120,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2986, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 2984, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2986, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 2984, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 2986, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 2984, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 2984, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 2984, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2986, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 2984, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -81321,39 +81199,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2988, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2989, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2990, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 2990, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 2988, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 2990, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 2988, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2991, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2989, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2992, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 2990, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2993, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 2991, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -81367,13 +81245,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3001, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3002, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -81382,24 +81260,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3005, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real0); __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 3003, __pyx_L1_error); __Pyx_INCREF(__pyx_v_real1); __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3005, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 3003, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3005, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3003, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3003, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -81479,39 +81357,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3007, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3005, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3005, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3005, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3007, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3005, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3007, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3005, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3005, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3005, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3008, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3008, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3006, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3006, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3007, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3005, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -81553,13 +81431,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3012, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3013, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -81627,39 +81505,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3015, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3013, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3013, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3013, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3015, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3013, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3015, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3013, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3013, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3013, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3016, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3016, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3014, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3014, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3015, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3013, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -81701,13 +81579,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3020, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3021, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -81769,13 +81647,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3028, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3029, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -81904,7 +81782,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3042, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -81917,10 +81795,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADD_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3043, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream))))) __PYX_ERR(3, 3043, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream))))) __PYX_ERR(3, 3041, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -82034,60 +81912,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3068, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3066, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3068, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3066, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, i); __PYX_ERR(3, 3068, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, i); __PYX_ERR(3, 3066, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3066, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3066, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3066, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3066, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3068, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3066, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -82097,19 +81975,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[2]; __pyx_v_volume = values[3]; if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3068, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3066, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3068, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3066, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3068, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3066, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -82155,50 +82033,50 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3071, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3072, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3073, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3071, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3071, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3071, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3073, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3071, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3074, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3072, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3075, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3073, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3076, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3074, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -82210,7 +82088,7 @@ static int __pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3081, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -82300,60 +82178,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3087, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3085, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3087, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3085, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, i); __PYX_ERR(3, 3087, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, i); __PYX_ERR(3, 3085, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 3085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3085, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3085, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3085, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3087, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3085, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -82363,19 +82241,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[2]; __pyx_v_volume = values[3]; if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3088, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3086, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3088, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3086, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3087, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 6, __pyx_nargs); __PYX_ERR(3, 3085, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -82426,55 +82304,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3089, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3090, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3091, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3092, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3093, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3091, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3091, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3091, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3093, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 3091, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3094, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3092, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3095, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3093, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3096, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3094, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3098, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -82488,13 +82366,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3104, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3105, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -82503,30 +82381,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3108, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3106, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3106, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3106, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3108, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 3106, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3108, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3106, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3108, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3106, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -82610,53 +82488,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3110, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3108, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3110, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3108, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 3110, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 3108, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3108, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3108, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3108, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3108, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3111, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3109, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3109, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3109, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3109, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3110, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3108, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -82700,13 +82578,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3115, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3116, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -82776,53 +82654,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3118, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3116, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3116, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3116, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3116, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3116, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3118, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3116, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 3118, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 3116, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3116, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3116, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3116, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3118, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3116, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3119, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3117, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3117, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3117, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3117, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3118, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 3116, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -82866,13 +82744,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3123, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3124, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -82934,13 +82812,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3131, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3132, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -83069,7 +82947,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3145, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -83082,10 +82960,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ADOSC_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3146, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream))))) __PYX_ERR(3, 3146, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream))))) __PYX_ERR(3, 3144, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -83196,40 +83074,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3170, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3168, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3168, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3168, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3168, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3170, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3168, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3170, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3168, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3168, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3168, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3168, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -83237,14 +83115,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3170, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3168, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3170, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3168, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -83287,34 +83165,34 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3171, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3173, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3171, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3171, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3174, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3172, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3175, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3173, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3176, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3174, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -83326,7 +83204,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3181, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -83411,40 +83289,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3187, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3185, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3187, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3185, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3187, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3185, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3185, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3185, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3185, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -83452,14 +83330,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3188, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3186, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3185, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -83507,39 +83385,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3189, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3190, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3191, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3191, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3189, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3191, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3189, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3192, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3190, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3193, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3191, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3194, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3192, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ADR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3196, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -83553,13 +83431,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3202, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3203, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -83568,24 +83446,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3206, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3204, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3206, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3204, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3206, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3204, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3206, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3204, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -83665,39 +83543,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3208, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3206, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3206, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3208, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3206, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3208, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3206, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3206, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3208, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3206, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3209, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3209, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3207, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3207, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3208, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3206, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -83739,13 +83617,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3213, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3214, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -83813,39 +83691,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3216, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3214, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3214, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3216, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3214, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3216, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3214, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3214, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3216, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3214, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3217, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3217, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3215, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3215, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3216, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3214, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -83887,13 +83765,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3221, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3222, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -83955,13 +83833,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3229, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3230, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -84090,7 +83968,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3243, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -84103,10 +83981,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADR_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3244, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream))))) __PYX_ERR(3, 3244, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream))))) __PYX_ERR(3, 3242, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -84218,46 +84096,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3268, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3266, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3268, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3266, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3268, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3266, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3266, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3266, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3266, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -84266,14 +84144,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3268, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3266, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3268, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3266, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -84317,42 +84195,42 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3269, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3270, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3272, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3272, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3272, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3272, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3270, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3273, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3271, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3274, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3272, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3275, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3273, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -84364,7 +84242,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ADX_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3280, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -84451,46 +84329,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3286, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3284, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3286, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3284, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3286, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3284, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3284, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3284, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3284, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -84499,14 +84377,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3287, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3285, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3286, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3284, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -84555,47 +84433,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3290, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3291, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3289, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3289, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3289, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3292, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3290, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3293, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3291, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3294, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3292, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3296, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -84609,13 +84487,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3302, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3303, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -84624,27 +84502,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3306, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3304, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3304, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3306, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3304, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3306, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3304, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3306, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3304, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -84726,46 +84604,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3308, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3306, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3306, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3308, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3306, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3308, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3306, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3306, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3306, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3308, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3306, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3309, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3309, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3309, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3307, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3307, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3307, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3308, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3306, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -84808,13 +84686,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3313, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3314, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -84883,46 +84761,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3316, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3314, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3314, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3314, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3314, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3316, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3314, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3316, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3314, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3314, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3314, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3316, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3314, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3317, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3317, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3317, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3315, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3315, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3315, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3316, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3314, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -84965,13 +84843,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3321, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3322, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -85033,13 +84911,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3329, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3330, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -85168,7 +85046,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3343, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -85181,10 +85059,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ADX_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3344, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream))))) __PYX_ERR(3, 3344, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream))))) __PYX_ERR(3, 3342, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -85296,46 +85174,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3368, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3366, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3368, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3366, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3368, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 3366, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3366, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3366, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3366, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3368, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3366, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -85344,14 +85222,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3368, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3366, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3368, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3366, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -85395,42 +85273,42 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3369, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3371, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3372, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3370, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3373, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3371, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3374, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3372, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3375, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3373, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -85442,7 +85320,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ADXR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADXR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3380, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ADXR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -85529,46 +85407,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3386, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3386, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3384, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3386, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 3384, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3384, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3384, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3384, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -85577,14 +85455,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3387, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3385, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3386, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 3384, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -85633,47 +85511,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3388, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3389, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3390, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3391, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3391, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3389, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3391, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3389, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3391, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 3389, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3392, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3390, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3393, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3391, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3394, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3392, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3396, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -85687,13 +85565,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3402, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ADXR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3403, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ADXR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -85702,27 +85580,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3406, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3404, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3404, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3406, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 3404, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3406, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3404, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3406, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3404, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -85804,46 +85682,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3408, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3406, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3408, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3408, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3408, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3408, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3406, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3408, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 3406, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3408, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3406, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3408, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3406, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3408, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3406, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3409, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3409, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3409, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3407, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3407, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3407, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3408, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3406, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -85886,13 +85764,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3413, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3414, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -85961,46 +85839,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3416, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3414, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3414, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3414, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3414, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3416, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3414, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3416, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 3414, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3414, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3414, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3414, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3417, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3417, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3417, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3415, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3415, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3415, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3416, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 3414, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -86043,13 +85921,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3421, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3422, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -86111,13 +85989,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3429, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3430, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -86246,7 +86124,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3443, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -86259,10 +86137,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ADXR_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3444, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream))))) __PYX_ERR(3, 3444, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream))))) __PYX_ERR(3, 3442, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -86374,48 +86252,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3469, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3467, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3469, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3467, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 3469, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 3467, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3467, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3469, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3467, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -86423,19 +86301,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3469, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3467, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3469, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3467, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3469, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3467, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -86479,34 +86357,34 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3470, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3471, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3472, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3470, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3473, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3471, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3474, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3472, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3475, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3473, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -86518,7 +86396,7 @@ static int __pyx_pf_5talib_7_ta_lib_9AO_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3480, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -86604,48 +86482,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3486, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3484, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3486, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3484, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 3486, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 3484, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3484, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3484, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -86653,19 +86531,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3487, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3485, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3487, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3485, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3486, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 3484, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -86714,39 +86592,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3488, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3490, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3488, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3488, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3491, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3489, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3492, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3490, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3493, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3491, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3495, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -86760,13 +86638,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3501, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3502, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -86775,24 +86653,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3503, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3505, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3503, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3503, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3503, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3503, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -86872,39 +86750,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3507, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3505, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3505, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3507, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3505, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3507, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3505, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3505, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3505, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3508, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3508, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3506, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3506, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3507, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3505, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -86946,13 +86824,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3512, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3513, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -87020,39 +86898,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3515, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3513, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3515, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3513, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3515, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3513, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3513, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3513, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3516, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3516, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3514, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3514, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3515, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3513, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -87094,13 +86972,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3520, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3521, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -87162,13 +87040,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3528, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3529, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -87297,7 +87175,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3542, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -87310,10 +87188,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9AO_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3543, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream))))) __PYX_ERR(3, 3543, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream))))) __PYX_ERR(3, 3541, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AO_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -87425,74 +87303,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3569, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3567, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3569, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3567, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 3569, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 3567, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3567, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3567, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3569, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3567, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3569, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3567, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3569, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3567, __pyx_L3_error) } else { __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 3569, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 3567, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -87536,26 +87414,26 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3571, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3571, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3569, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3572, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3570, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3573, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3571, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3574, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3572, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -87567,7 +87445,7 @@ static int __pyx_pf_5talib_7_ta_lib_10APO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3579, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -87652,74 +87530,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3585, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3583, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3585, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3583, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 3585, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 3583, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 3583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3583, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3586, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3584, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3586, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3584, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3586, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3584, __pyx_L3_error) } else { __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 3585, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 3583, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -87768,31 +87646,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3588, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3588, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3586, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3589, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3587, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3590, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3588, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3591, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3589, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -87806,13 +87684,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3599, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_APO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_APO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_APO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -87821,21 +87699,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3603, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3603, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3601, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3603, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3601, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3601, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -87913,32 +87791,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3605, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3603, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3605, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3603, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3605, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3603, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3603, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3606, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3604, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3605, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3603, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -87979,13 +87857,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3610, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3611, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -88052,32 +87930,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3611, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3611, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3613, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3611, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 3613, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 3611, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3611, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3614, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3612, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3611, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -88118,13 +87996,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3618, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3619, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -88186,13 +88064,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3626, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3627, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -88321,7 +88199,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3640, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -88334,10 +88212,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10APO_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3641, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream))))) __PYX_ERR(3, 3641, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream))))) __PYX_ERR(3, 3639, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_APO_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -88448,40 +88326,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3668, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3664, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3668, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3664, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3668, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3664, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3664, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3664, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3668, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3664, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -88489,14 +88367,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3668, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3664, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3668, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3664, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -88540,34 +88418,34 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3670, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3671, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3671, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3667, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3671, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3667, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3672, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3668, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3673, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3669, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3674, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3670, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -88579,7 +88457,7 @@ static int __pyx_pf_5talib_7_ta_lib_12AROON_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AROON_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3680, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AROON_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -88665,40 +88543,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3686, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3682, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3686, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3682, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3686, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3682, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3682, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3682, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -88706,14 +88584,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3687, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3683, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3682, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -88758,53 +88636,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3688, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3690, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3690, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3686, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3690, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3686, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3691, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3687, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3692, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3688, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3693, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3689, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3696, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -88818,13 +88692,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3702, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3703, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -88833,60 +88707,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 3706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outaroondown)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 3706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 3706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outaroondown)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outaroonup)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3706, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outaroonup)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 3706, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 3702, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -88905,9 +88762,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_4open_and_fill(PyObject __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -88971,39 +88825,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3708, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3704, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3704, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3708, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3704, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3708, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3704, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3704, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3704, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3709, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3709, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3705, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3705, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3708, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3704, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -89036,9 +88890,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_ob PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -89051,50 +88902,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3714, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3715, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 3711, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 3711, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -89103,8 +88937,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_6update(struct __pyx_ob __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -89157,39 +88989,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3717, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3717, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3717, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3713, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3713, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3713, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3718, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3718, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3714, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3714, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3717, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -89222,9 +89054,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -89237,50 +89066,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3723, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3724, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 3720, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 3720, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -89289,8 +89101,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_8peek(struct __pyx_obj_ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -89328,9 +89138,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct _ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -89343,50 +89150,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3732, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_AROON_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3733, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 3733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 3729, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 3729, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -89395,8 +89185,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_5value___get__(struct _ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.AROON_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -89510,7 +89298,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3746, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -89523,10 +89311,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12AROON_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3747, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream))))) __PYX_ERR(3, 3747, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream))))) __PYX_ERR(3, 3743, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROON_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -89637,40 +89425,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3771, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3771, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3767, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3771, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 3767, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3767, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3767, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -89678,14 +89466,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3771, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3767, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3771, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -89728,34 +89516,34 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3774, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3774, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3774, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3770, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3775, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3771, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3776, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3772, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3777, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3773, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -89767,7 +89555,7 @@ static int __pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AROONOSC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3782, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AROONOSC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -89852,40 +89640,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3788, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3784, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3788, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3784, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3788, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 3784, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 3784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3784, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3788, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3784, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -89893,14 +89681,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3789, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3785, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3788, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 3784, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -89948,39 +89736,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3790, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3791, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3792, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3792, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 3788, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3792, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 3788, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3793, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3789, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3794, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3790, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3795, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3791, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3797, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -89994,13 +89782,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3803, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3804, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AROONOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -90009,24 +89797,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3807, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 3803, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3807, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 3803, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3807, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3803, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3807, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3803, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -90106,39 +89894,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3809, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3805, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3809, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3809, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3809, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3805, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3809, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 3805, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3809, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3805, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3809, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3805, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3810, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3810, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3806, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3806, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3809, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3805, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -90180,13 +89968,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3814, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3815, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -90254,39 +90042,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3817, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3813, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3817, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3813, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3817, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 3813, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3813, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3817, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 3813, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3818, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3818, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3814, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3817, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 3813, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -90328,13 +90116,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3822, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3823, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -90396,13 +90184,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3830, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3831, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -90531,7 +90319,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3844, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -90544,10 +90332,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AROONOSC_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3845, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream))))) __PYX_ERR(3, 3845, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream))))) __PYX_ERR(3, 3841, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -90656,32 +90444,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3867, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3863, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3863, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3867, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3863, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 3867, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 3863, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3863, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3867, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3863, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -90722,26 +90510,26 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3868, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3869, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3869, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3865, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3870, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3866, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3871, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3867, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3872, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3868, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -90753,7 +90541,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ASIN_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ASIN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3877, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ASIN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -90835,32 +90623,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3883, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3879, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3883, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3879, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3883, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3879, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 3883, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 3879, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3883, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3879, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3883, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3879, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -90906,31 +90694,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3886, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3886, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3882, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3887, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3883, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3888, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3884, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3889, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3885, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3891, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -90944,13 +90732,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3897, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ASIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3898, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ASIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -90959,21 +90747,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3901, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3901, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3901, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3897, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3901, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3901, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3897, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3901, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3897, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -91051,32 +90839,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3903, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3899, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3903, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3899, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3903, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3899, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3903, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3899, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3903, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3899, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3904, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3900, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3903, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3899, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -91117,13 +90905,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3908, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3909, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -91190,32 +90978,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3911, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3911, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3911, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 3907, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 3911, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 3907, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3911, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3907, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3912, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3908, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3911, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -91256,13 +91044,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3916, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3917, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -91324,13 +91112,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3924, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3925, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -91459,7 +91247,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3938, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -91472,10 +91260,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ASIN_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3939, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream))))) __PYX_ERR(3, 3939, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream))))) __PYX_ERR(3, 3935, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -91584,32 +91372,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3961, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3957, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3961, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 3957, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 3961, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 3957, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3957, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3961, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3957, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -91650,26 +91438,26 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3962, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3963, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3963, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3959, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3964, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3960, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3965, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3961, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3966, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3962, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -91681,7 +91469,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ATAN_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ATAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3971, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ATAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -91763,32 +91551,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3977, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3973, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3973, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3977, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 3973, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 3977, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 3973, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3973, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3977, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3973, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -91834,31 +91622,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3980, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3980, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 3976, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 3977, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3982, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 3978, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3983, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 3979, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3985, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -91872,13 +91660,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3991, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3992, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -91887,21 +91675,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3995, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3995, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3995, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 3991, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 3991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3995, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3995, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 3991, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3995, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 3991, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -91979,32 +91767,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3997, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 3993, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3997, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3993, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3997, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 3993, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3997, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 3993, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3997, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 3993, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3998, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 3994, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3997, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 3993, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -92045,13 +91833,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4002, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4003, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -92118,32 +91906,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4005, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4001, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4005, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4001, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4005, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4001, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4001, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4006, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4002, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4005, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4001, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -92184,13 +91972,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4010, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4011, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -92252,13 +92040,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4018, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4019, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -92387,7 +92175,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4032, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -92400,10 +92188,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ATAN_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4033, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream))))) __PYX_ERR(3, 4033, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream))))) __PYX_ERR(3, 4029, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -92515,46 +92303,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4057, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4053, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4057, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4053, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4057, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4053, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4053, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4053, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4053, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -92563,14 +92351,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4057, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4053, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4057, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4053, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -92614,42 +92402,42 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4058, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4060, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4061, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4061, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4057, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4061, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4057, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4061, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4057, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4062, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4058, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4063, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4059, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4064, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4060, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -92661,7 +92449,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ATR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ATR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4069, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ATR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -92748,46 +92536,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4075, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4071, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4075, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4071, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4075, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4071, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4071, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4071, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4071, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -92796,14 +92584,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4076, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4072, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4075, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4071, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -92852,47 +92640,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4077, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4080, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4080, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4080, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4080, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4076, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4081, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4077, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4082, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4078, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4083, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4079, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4085, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -92906,13 +92694,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4091, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4092, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -92921,27 +92709,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4095, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4091, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4091, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4095, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4091, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4095, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4091, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4095, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4091, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -93023,46 +92811,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4097, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4093, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4097, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4093, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4097, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4093, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4093, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4093, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4097, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4093, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4098, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4098, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4098, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4094, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4094, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4094, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4097, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4093, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -93105,13 +92893,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4102, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4103, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -93180,46 +92968,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4105, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4101, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4105, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4101, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4105, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4101, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4101, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4101, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4101, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4106, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4106, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4106, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4102, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4102, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4102, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4105, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4101, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -93262,13 +93050,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4110, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4111, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -93330,13 +93118,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4118, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4119, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -93465,7 +93253,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4132, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -93478,10 +93266,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ATR_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4133, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream))))) __PYX_ERR(3, 4133, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream))))) __PYX_ERR(3, 4129, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ATR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -93591,48 +93379,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4157, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4153, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4157, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4157, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4157, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4153, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 4157, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 4153, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4157, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4153, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4157, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4153, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4157, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4153, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4157, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4153, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -93674,26 +93462,26 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4158, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4159, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4159, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4155, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4160, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4156, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4161, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4157, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4162, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4158, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -93705,7 +93493,7 @@ static int __pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AVGDEV_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4167, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AVGDEV_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -93788,48 +93576,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4173, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4169, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4173, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4169, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 4173, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 4169, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4169, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4174, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4170, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4173, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 4169, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -93876,31 +93664,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4176, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4172, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4177, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4173, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4178, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4174, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4179, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4175, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -93914,13 +93702,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4187, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4188, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -93929,21 +93717,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4191, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4191, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4191, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4187, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4191, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4191, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4187, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4191, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4187, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -94021,32 +93809,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4193, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4189, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4193, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4193, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4189, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4193, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4189, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4193, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4189, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4194, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4190, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4193, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4189, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -94087,13 +93875,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4198, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4199, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -94160,32 +93948,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4201, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4197, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4197, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4201, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4197, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4201, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4197, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4201, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4197, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4202, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4198, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4201, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4197, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -94226,13 +94014,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4206, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4207, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -94294,13 +94082,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4214, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4215, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -94429,7 +94217,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4228, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -94442,10 +94230,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13AVGDEV_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4229, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream))))) __PYX_ERR(3, 4229, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream))))) __PYX_ERR(3, 4225, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -94557,44 +94345,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4251, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4247, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4251, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4247, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4251, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4247, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4247, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4247, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4247, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4247, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -94603,7 +94391,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4251, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4247, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -94647,50 +94435,50 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4252, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4253, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4254, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4255, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4256, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4252, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4252, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4252, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4256, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4252, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4257, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4253, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4258, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4254, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4259, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4255, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -94702,7 +94490,7 @@ static int __pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AVGPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4264, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_AVGPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -94790,44 +94578,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4270, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4266, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4270, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4266, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4270, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4266, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4266, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4266, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4266, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4270, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4266, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -94836,7 +94624,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4270, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4266, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -94885,55 +94673,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4276, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4272, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4272, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4272, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4272, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4277, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4273, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4278, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4274, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4279, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4275, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -94947,13 +94735,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4287, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_AVGPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -94962,30 +94750,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4291, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4287, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4287, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4287, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4291, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4287, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4291, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4287, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4287, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -95069,53 +94857,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4293, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4289, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4289, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4289, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4289, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4289, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4293, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4289, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4293, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4289, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4289, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4289, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4289, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4289, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4294, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4290, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4290, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4290, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4290, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4293, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4289, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -95159,13 +94947,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4298, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4299, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -95235,53 +95023,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4301, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4297, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4297, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4297, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4297, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4297, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4301, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4297, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4301, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4297, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4297, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4297, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4297, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4301, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4297, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4302, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4298, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4298, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4298, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4298, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4301, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4297, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -95325,13 +95113,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4306, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4307, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -95393,13 +95181,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4314, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4315, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -95528,7 +95316,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4328, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -95541,10 +95329,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15AVGPRICE_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4329, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream))))) __PYX_ERR(3, 4329, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream))))) __PYX_ERR(3, 4325, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -95657,87 +95445,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4360, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4354, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4360, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4354, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 4360, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 4354, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4360, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4354, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4354, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4354, __pyx_L3_error) } else { __pyx_v_nbdevup = ((double)-4e37); } if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4354, __pyx_L3_error) } else { __pyx_v_nbdevdn = ((double)-4e37); } if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4360, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4354, __pyx_L3_error) } else { __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 4360, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 4354, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -95784,26 +95572,26 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4361, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4362, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4362, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4356, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4363, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4357, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4364, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4358, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4365, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4359, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -95815,7 +95603,7 @@ static int __pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4372, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -95903,87 +95691,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4378, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4372, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4378, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4372, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 4378, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 4372, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4372, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4372, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4373, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4373, __pyx_L3_error) } else { __pyx_v_nbdevup = ((double)-4e37); } if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4373, __pyx_L3_error) } else { __pyx_v_nbdevdn = ((double)-4e37); } if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4379, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4373, __pyx_L3_error) } else { __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 4378, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 4372, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -96032,50 +95820,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4381, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4381, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 4375, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4382, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4376, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4383, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4377, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4384, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4378, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4386, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4387, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4388, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -96089,13 +95873,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4394, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BBANDS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -96104,73 +95888,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 4398, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 4392, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -96180,9 +95949,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_4open_and_fill(PyObjec __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -96245,32 +96011,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4400, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4394, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4400, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4394, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4400, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 4394, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4394, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4401, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4395, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4400, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4394, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -96304,9 +96070,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_o PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -96319,53 +96082,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4407, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4408, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4408, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 4402, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 4402, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 4402, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -96375,8 +96123,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_6update(struct __pyx_o __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -96429,32 +96175,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4410, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4404, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4410, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4404, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4410, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4404, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4410, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 4404, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4410, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4404, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4411, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4405, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4410, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 4404, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -96488,9 +96234,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -96503,53 +96246,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4417, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4418, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4418, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 4412, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 4412, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 4412, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -96559,8 +96287,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_8peek(struct __pyx_obj __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -96601,9 +96327,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -96616,53 +96339,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4427, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_BBANDS_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4428, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4428, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 4422, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 4422, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 4422, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -96672,8 +96380,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.BBANDS_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -96788,7 +96494,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4441, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -96801,10 +96507,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13BBANDS_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4442, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream))))) __PYX_ERR(3, 4442, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream))))) __PYX_ERR(3, 4436, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -96915,40 +96621,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4467, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4461, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4467, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4461, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 4467, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 4461, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4461, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4461, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -96956,14 +96662,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4467, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4461, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4467, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4461, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -97006,34 +96712,34 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4469, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4470, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 4470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 4464, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 4470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 4464, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4471, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4465, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4472, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4466, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4473, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4467, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -97045,7 +96751,7 @@ static int __pyx_pf_5talib_7_ta_lib_11BETA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BETA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4478, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BETA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -97130,40 +96836,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4484, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4478, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4484, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4478, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 4484, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 4478, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4478, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4478, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -97171,14 +96877,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4485, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4479, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4484, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 4478, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -97226,39 +96932,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4486, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4488, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 4488, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 4482, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 4488, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 4482, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4489, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4483, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4490, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4484, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4491, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4485, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -97272,13 +96978,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4499, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BETA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BETA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BETA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -97287,24 +96993,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4503, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real0); __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 4497, __pyx_L1_error); __Pyx_INCREF(__pyx_v_real1); __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4503, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 4497, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4503, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4497, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4503, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4497, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -97384,39 +97090,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4505, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4499, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4505, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4499, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4505, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 4499, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4499, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4499, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4506, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4506, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4500, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4500, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4505, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4499, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -97458,13 +97164,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4510, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4511, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -97532,39 +97238,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4513, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4507, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4513, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4507, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4513, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 4507, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4507, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4507, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4514, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4514, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4508, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4508, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4513, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 4507, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -97606,13 +97312,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4518, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4519, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -97674,13 +97380,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4526, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4527, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -97809,7 +97515,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4540, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -97822,10 +97528,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11BETA_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4541, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream))))) __PYX_ERR(3, 4541, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream))))) __PYX_ERR(3, 4535, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BETA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -97937,44 +97643,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4563, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4557, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4557, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4557, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4557, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4557, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4563, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4557, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4563, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4557, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4557, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4557, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4557, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4557, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -97983,7 +97689,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4563, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4557, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -98027,50 +97733,50 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4564, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4565, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4566, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4567, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4568, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4562, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4562, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4562, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4568, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4562, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4569, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4563, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4570, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4564, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4571, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4565, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -98082,7 +97788,7 @@ static int __pyx_pf_5talib_7_ta_lib_10BOP_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BOP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4576, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_BOP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -98170,44 +97876,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4582, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4576, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4582, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4576, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4582, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4576, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4576, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4576, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4576, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4582, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4576, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -98216,7 +97922,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4582, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4576, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -98265,55 +97971,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4584, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4585, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4586, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4588, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4582, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4582, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4582, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4588, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4582, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4589, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4583, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4590, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4584, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4591, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4585, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -98327,13 +98033,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4599, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_BOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_BOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -98342,30 +98048,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4603, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4597, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4597, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4597, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4603, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4597, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4603, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4597, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4603, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4597, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -98449,53 +98155,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4605, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4599, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4599, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4599, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4599, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4599, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4605, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4599, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4605, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4599, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4599, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4599, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4599, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4605, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4599, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4606, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4600, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4600, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4600, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4600, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4605, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4599, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -98539,13 +98245,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4610, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4611, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -98615,53 +98321,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4607, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4613, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4607, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4613, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4607, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4607, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4607, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4607, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4607, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4614, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4608, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4608, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4608, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4608, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4607, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -98705,13 +98411,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4618, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4619, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -98773,13 +98479,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4626, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4627, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -98908,7 +98614,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4640, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -98921,10 +98627,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10BOP_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4641, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream))))) __PYX_ERR(3, 4641, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream))))) __PYX_ERR(3, 4635, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_BOP_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -99036,46 +98742,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4665, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4659, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4665, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4659, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4665, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 4659, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4659, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4659, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4659, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -99084,14 +98790,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4665, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4659, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4665, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4659, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -99135,42 +98841,42 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4667, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4669, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4669, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4663, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4669, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4663, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4669, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4663, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4670, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4664, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4671, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4665, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4672, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4666, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -99182,7 +98888,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CCI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CCI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4677, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CCI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -99269,46 +98975,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4683, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4677, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4683, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4677, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4683, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 4677, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4677, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4677, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4677, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4677, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -99317,14 +99023,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4684, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4678, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4683, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 4677, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -99373,47 +99079,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4685, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4686, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4687, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4688, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4688, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4682, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4688, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4682, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4688, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4682, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4689, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4683, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4690, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4684, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4691, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4685, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -99427,13 +99133,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4699, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CCI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CCI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CCI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -99442,27 +99148,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4703, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 4697, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 4697, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4703, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 4697, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4703, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4697, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4703, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4697, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -99544,46 +99250,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4705, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4699, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4705, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4699, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4705, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 4699, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4699, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4699, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4699, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4706, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4706, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4706, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4700, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4700, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4700, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4705, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4699, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -99626,13 +99332,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4710, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4711, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -99701,46 +99407,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4707, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4707, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 4707, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4707, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4707, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4707, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4714, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4714, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4714, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4708, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4708, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4708, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 4707, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -99783,13 +99489,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4718, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4719, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -99851,13 +99557,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4726, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4727, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -99986,7 +99692,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4740, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -99999,10 +99705,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CCI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4741, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream))))) __PYX_ERR(3, 4741, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream))))) __PYX_ERR(3, 4735, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CCI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -100114,44 +99820,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4763, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4757, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4757, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4757, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4757, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4757, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4763, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4757, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4763, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4757, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4757, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4757, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4757, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4763, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4757, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -100160,7 +99866,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4763, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4757, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -100204,50 +99910,50 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4764, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4765, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4766, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4767, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4768, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4762, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4762, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4762, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4768, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4762, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4769, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4763, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4770, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4764, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4771, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4765, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -100259,7 +99965,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL2CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4776, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL2CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -100347,44 +100053,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4782, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4776, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4782, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4776, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4782, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4776, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4776, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4776, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4776, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4776, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -100393,7 +100099,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4782, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4776, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -100442,55 +100148,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4784, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4785, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4786, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4788, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4782, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4782, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4782, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4788, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4782, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4789, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4783, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4790, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4784, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4791, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4785, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4793, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -100504,13 +100210,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4799, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4800, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -100519,30 +100225,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4803, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4797, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4797, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4797, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4803, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4797, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4803, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4797, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4803, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4797, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -100626,53 +100332,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4805, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4799, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4805, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4799, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4805, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4799, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4799, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4799, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4799, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4805, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4799, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4806, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4800, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4800, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4800, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4800, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4805, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4799, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -100716,13 +100422,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4810, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4811, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -100792,53 +100498,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4813, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4807, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4813, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4807, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4813, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4807, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4807, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4807, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4807, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4807, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4814, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4808, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4808, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4808, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4808, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4807, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -100882,13 +100588,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4818, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4819, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -100950,13 +100656,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4826, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4827, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -101085,7 +100791,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4840, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -101098,10 +100804,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDL2CROWS_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4841, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream))))) __PYX_ERR(3, 4841, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream))))) __PYX_ERR(3, 4835, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -101213,44 +100919,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4863, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4857, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4863, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4857, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4863, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4857, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4857, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4857, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4857, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4863, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4857, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -101259,7 +100965,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4863, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4857, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -101303,50 +101009,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4864, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4865, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4866, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4867, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4868, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4862, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4862, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4862, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4868, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4862, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4869, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4863, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4870, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4864, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4871, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4865, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -101358,7 +101064,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3BLACKCROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4876, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3BLACKCROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -101446,44 +101152,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4882, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4876, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4876, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4882, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4876, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4882, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4876, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4876, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4876, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4876, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4882, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4876, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -101492,7 +101198,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4882, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4876, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -101541,55 +101247,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4886, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4888, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4882, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4882, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4882, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4882, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4889, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4883, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4890, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4884, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4891, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4885, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4893, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -101603,13 +101309,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4899, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4900, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3BLACKCROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -101618,30 +101324,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4903, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4897, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4897, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4897, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4903, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4897, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4903, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4897, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4897, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -101725,53 +101431,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4905, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4899, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4899, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4899, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4899, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4899, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4905, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4899, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4905, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4899, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4899, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4899, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4899, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4899, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4906, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4900, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4900, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4900, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4900, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4905, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4899, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -101815,13 +101521,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4910, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4911, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -101891,53 +101597,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4913, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 4907, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4913, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 4907, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4907, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4907, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4907, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4907, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4914, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4908, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4908, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4908, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 4908, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -101981,13 +101687,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4918, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4919, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -102049,13 +101755,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4926, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4927, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -102184,7 +101890,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4940, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -102197,10 +101903,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4941, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream))))) __PYX_ERR(3, 4941, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream))))) __PYX_ERR(3, 4935, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -102312,44 +102018,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4963, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4957, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4957, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4963, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 4957, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4963, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 4957, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4957, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4957, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4957, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4963, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4957, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -102358,7 +102064,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4963, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4957, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -102402,50 +102108,50 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4964, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4965, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4966, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4967, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4968, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4962, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4962, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4962, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4968, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4962, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4969, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4963, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4970, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4964, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4971, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4965, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -102457,7 +102163,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3INSIDE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4976, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3INSIDE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -102545,44 +102251,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4982, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4976, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4982, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 4976, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4982, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 4976, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4976, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4976, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4976, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4982, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4976, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -102591,7 +102297,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4982, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4976, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -102640,55 +102346,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4984, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4985, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4986, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4987, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4988, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 4982, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 4982, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 4982, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4988, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 4982, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4989, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 4983, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4990, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 4984, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4991, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 4985, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4993, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -102702,13 +102408,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4999, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5000, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3INSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -102717,30 +102423,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5003, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5003, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5003, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5003, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 4997, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -102824,53 +102530,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5005, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 4999, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5005, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 4999, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5005, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 4999, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 4999, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 4999, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 4999, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5005, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 4999, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5006, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5000, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5000, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5000, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5000, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5005, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 4999, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -102914,13 +102620,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5010, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5011, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -102990,53 +102696,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5013, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5007, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5013, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5007, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5013, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5007, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5007, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5007, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5007, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5007, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5014, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5008, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5008, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5008, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5008, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5013, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5007, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -103080,13 +102786,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5018, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5019, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -103148,13 +102854,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5026, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5027, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -103283,7 +102989,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5040, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -103296,10 +103002,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDL3INSIDE_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5041, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream))))) __PYX_ERR(3, 5041, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream))))) __PYX_ERR(3, 5035, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -103411,44 +103117,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5063, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5057, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5063, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5057, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5063, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5057, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5057, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5057, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5057, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5063, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5057, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -103457,7 +103163,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5063, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5057, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -103501,50 +103207,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5064, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5065, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5066, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5067, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5068, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5062, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5062, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5062, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5068, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5062, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5069, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5063, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5070, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5064, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5071, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5065, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -103556,7 +103262,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3LINESTRIKE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5076, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3LINESTRIKE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -103644,44 +103350,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5082, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5076, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5082, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5076, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5082, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5076, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5076, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5076, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5076, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5076, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -103690,7 +103396,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5082, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5076, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -103739,55 +103445,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5084, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5085, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5086, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5087, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5088, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5082, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5082, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5082, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5088, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5082, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5089, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5083, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5090, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5084, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5091, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5085, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5093, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -103801,13 +103507,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5099, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3LINESTRIKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -103816,30 +103522,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5103, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5097, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5097, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5097, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5103, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5097, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5103, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5097, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5097, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -103923,53 +103629,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5105, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5099, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5099, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5099, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5099, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5099, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5105, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5099, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5105, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5099, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5099, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5099, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5099, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5105, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5099, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5106, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5100, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5100, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5100, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5100, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5105, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5099, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -104013,13 +103719,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5110, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5111, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -104089,53 +103795,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5107, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5113, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5107, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5113, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5107, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5107, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5107, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5107, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5107, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5114, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5108, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5108, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5108, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5108, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5107, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -104179,13 +103885,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5118, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5119, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -104247,13 +103953,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5126, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5127, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -104382,7 +104088,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5140, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -104395,10 +104101,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5141, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream))))) __PYX_ERR(3, 5141, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream))))) __PYX_ERR(3, 5135, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -104510,44 +104216,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5163, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5157, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5157, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5157, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5157, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5157, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5163, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5157, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5163, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5157, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5157, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5157, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5157, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5163, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5157, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -104556,7 +104262,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5163, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5157, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -104600,50 +104306,50 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5164, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5165, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5167, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5168, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5162, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5162, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5162, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5168, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5162, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5169, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5163, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5170, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5164, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5171, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5165, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -104655,7 +104361,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3OUTSIDE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5176, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3OUTSIDE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -104743,44 +104449,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5182, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5176, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5182, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5176, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5182, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5176, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5176, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5176, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5176, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5182, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5176, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -104789,7 +104495,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5182, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5176, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -104838,55 +104544,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5184, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5185, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5186, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5187, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5188, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5182, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5182, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5182, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5188, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5182, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5189, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5183, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5190, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5184, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5191, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5185, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -104900,13 +104606,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5199, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5200, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3OUTSIDE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -104915,30 +104621,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5203, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5197, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5197, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5197, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5203, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5197, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5203, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5197, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5203, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5197, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -105022,53 +104728,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5205, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5199, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5199, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5199, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5199, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5199, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5205, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5199, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5205, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5199, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5199, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5199, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5199, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5199, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5206, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5200, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5200, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5200, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5200, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5205, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5199, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -105112,13 +104818,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5210, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5211, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -105188,53 +104894,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5213, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5207, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5213, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5207, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5213, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5207, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5207, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5207, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5207, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5207, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5208, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5208, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5208, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5208, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5213, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5207, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -105278,13 +104984,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5218, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5219, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -105346,13 +105052,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5226, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5227, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -105481,7 +105187,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5240, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -105494,10 +105200,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5241, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream))))) __PYX_ERR(3, 5241, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream))))) __PYX_ERR(3, 5235, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -105609,44 +105315,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5263, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5257, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5263, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5257, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5263, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5257, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5257, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5257, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5257, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5263, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5257, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -105655,7 +105361,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5263, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5257, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -105699,50 +105405,50 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5264, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5265, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5266, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5267, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5268, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5262, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5262, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5262, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5268, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5262, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5269, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5263, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5270, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5264, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5271, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5265, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -105754,7 +105460,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3STARSINSOUTH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5276, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3STARSINSOUTH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -105842,44 +105548,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5282, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5282, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5276, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5282, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5276, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5276, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5276, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5276, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5282, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5276, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -105888,7 +105594,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5282, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -105937,55 +105643,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5284, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5285, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5286, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5287, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5288, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5282, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5282, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5282, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5288, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5282, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5289, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5283, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5290, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5284, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5291, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5285, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -105999,13 +105705,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5299, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -106014,30 +105720,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_4open_and_fi __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5303, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5297, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5297, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5297, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5303, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5297, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5303, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5297, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5303, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5297, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -106121,53 +105827,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5305, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5299, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5305, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5299, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5305, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5299, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5299, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5299, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5299, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5299, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5306, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5300, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5300, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5300, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5300, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5305, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5299, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -106211,13 +105917,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_6update(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5311, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -106287,53 +105993,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5313, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5307, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5313, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5307, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5313, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5307, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5307, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5307, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5307, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5307, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5314, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5308, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5308, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5308, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5308, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5313, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5307, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -106377,13 +106083,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5318, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5319, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -106445,13 +106151,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5value___get if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5326, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5327, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -106580,7 +106286,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5340, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -106593,10 +106299,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_10copy(struc PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5341, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream))))) __PYX_ERR(3, 5341, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream))))) __PYX_ERR(3, 5335, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -106708,44 +106414,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5363, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5357, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5363, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5357, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5363, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5357, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5357, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5357, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5357, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5357, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -106754,7 +106460,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5363, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5357, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -106798,50 +106504,50 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5365, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5366, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5367, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5368, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5362, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5362, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5362, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5368, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5362, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5369, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5363, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5370, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5364, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5371, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5365, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -106853,7 +106559,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3WHITESOLDIERS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5376, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDL3WHITESOLDIERS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -106941,44 +106647,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5382, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5376, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5382, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5376, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5382, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5376, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5376, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5376, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5376, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5382, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5376, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -106987,7 +106693,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5382, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5376, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -107036,55 +106742,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5384, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5385, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5386, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5387, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5388, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5382, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5382, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5382, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5388, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5382, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5389, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5383, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5390, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5384, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5391, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5385, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5393, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -107098,13 +106804,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5399, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -107113,30 +106819,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_4open_and_f __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5403, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5397, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5397, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5397, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5403, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5397, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5403, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5397, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5397, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -107220,53 +106926,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5405, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5399, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5399, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5405, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5399, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5405, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5399, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5399, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5399, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5399, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5405, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5399, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5406, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5400, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5400, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5400, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5400, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5405, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5399, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -107310,13 +107016,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_6update(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5410, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5411, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -107386,53 +107092,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5407, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5407, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5407, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5407, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5407, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5407, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5407, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5414, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5408, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5408, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5408, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5408, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5407, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -107476,13 +107182,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_8peek(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5418, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5419, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -107544,13 +107250,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5value___ge if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5426, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5427, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -107679,7 +107385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5440, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -107692,10 +107398,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_10copy(stru PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5441, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream))))) __PYX_ERR(3, 5441, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream))))) __PYX_ERR(3, 5435, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -107808,52 +107514,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5465, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5459, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5465, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5459, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 5465, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 5459, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5459, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5459, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5459, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5459, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5459, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -107863,14 +107569,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5465, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5459, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 5465, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 5459, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -107915,50 +107621,50 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5466, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5467, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5469, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5470, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5464, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5464, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5464, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5470, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5464, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5471, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5465, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5472, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5466, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5473, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5467, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -107970,7 +107676,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5478, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -108059,52 +107765,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5484, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5478, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5484, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5478, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 5484, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 5478, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 5478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5478, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5478, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5478, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5484, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5478, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -108114,14 +107820,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5485, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5479, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 5484, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 5478, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -108171,55 +107877,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5486, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5488, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5490, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5484, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5484, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5484, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5484, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5491, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5485, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5492, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5486, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5493, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5487, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5495, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -108233,13 +107939,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5501, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5502, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLABANDONEDBABY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -108248,30 +107954,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_4open_and_fi __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5499, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5499, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5499, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5505, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5499, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5499, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5499, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -108355,53 +108061,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5507, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5501, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5501, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5501, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5501, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5501, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5507, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5501, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5507, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5501, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5501, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5501, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5501, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5507, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5501, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5508, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5502, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5502, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5502, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5502, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5507, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5501, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -108445,13 +108151,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_6update(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5512, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5513, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -108521,53 +108227,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5515, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5509, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5515, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5509, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5515, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5509, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5509, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5509, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5509, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5515, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5509, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5516, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5510, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5510, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5510, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5510, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5515, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5509, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -108611,13 +108317,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5520, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5521, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -108679,13 +108385,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5value___get if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5528, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5529, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -108814,7 +108520,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5542, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -108827,10 +108533,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_10copy(struc PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5543, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream))))) __PYX_ERR(3, 5543, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream))))) __PYX_ERR(3, 5537, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -108942,44 +108648,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5565, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5559, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5565, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5559, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5565, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5559, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5559, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5559, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5559, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5565, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5559, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -108988,7 +108694,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5565, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5559, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -109032,50 +108738,50 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5566, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5567, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5568, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5570, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5564, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5564, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5564, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5570, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5564, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5571, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5565, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5572, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5566, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5573, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5567, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -109087,7 +108793,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLADVANCEBLOCK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5578, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLADVANCEBLOCK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -109175,44 +108881,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5584, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5578, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5578, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5578, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5578, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5578, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5584, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5578, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5584, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5578, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5578, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5578, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5578, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5578, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -109221,7 +108927,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5584, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5578, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -109270,55 +108976,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5586, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5588, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5589, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5590, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5584, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5584, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5584, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5584, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5591, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5585, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5592, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5586, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5593, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5587, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -109332,13 +109038,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5601, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5602, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -109347,30 +109053,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_4open_and_fil __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5605, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5599, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5599, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5599, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5605, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5599, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5605, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5599, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5599, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -109454,53 +109160,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5607, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5601, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5601, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5601, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5601, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5601, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5607, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5601, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5607, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5601, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5601, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5601, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5601, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5601, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5608, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5602, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5602, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5602, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5602, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5607, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5601, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -109544,13 +109250,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_6update(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5612, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5613, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -109620,53 +109326,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5615, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5609, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5615, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5609, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5615, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5609, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5609, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5609, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5609, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5609, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5616, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5610, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5610, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5610, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5610, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5615, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5609, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -109710,13 +109416,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5620, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5621, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -109778,13 +109484,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5value___get_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5628, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5629, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -109913,7 +109619,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5642, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -109926,10 +109632,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5643, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream))))) __PYX_ERR(3, 5643, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream))))) __PYX_ERR(3, 5637, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -110041,44 +109747,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5665, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5659, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5659, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5665, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5659, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5665, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5659, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5659, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5659, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5659, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5665, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5659, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -110087,7 +109793,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5665, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5659, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -110131,50 +109837,50 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5667, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5670, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5664, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5664, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5664, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5670, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5664, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5671, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5665, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5672, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5666, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5673, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5667, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -110186,7 +109892,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLBELTHOLD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5678, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLBELTHOLD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -110274,44 +109980,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5684, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5678, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5684, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5678, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5684, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5678, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5678, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5678, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5678, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5678, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -110320,7 +110026,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5684, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5678, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -110369,55 +110075,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5686, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5687, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5688, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5690, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5684, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5684, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5684, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5690, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5684, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5691, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5685, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5692, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5686, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5693, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5687, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -110431,13 +110137,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5701, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5702, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBELTHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -110446,30 +110152,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5705, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5699, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5699, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5699, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5705, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5699, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5705, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5699, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5705, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5699, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -110553,53 +110259,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5707, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5701, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5701, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5701, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5701, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5701, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5707, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5701, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5707, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5701, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5701, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5701, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5701, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5701, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5708, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5702, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5702, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5702, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5702, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5707, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5701, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -110643,13 +110349,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5712, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5713, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -110719,53 +110425,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5715, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5709, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5709, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5709, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5709, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5709, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5715, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5709, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5715, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5709, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5709, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5709, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5709, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5709, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5716, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5710, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5710, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5710, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5710, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5715, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5709, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -110809,13 +110515,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5720, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5721, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -110877,13 +110583,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5728, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5729, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -111012,7 +110718,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5742, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -111025,10 +110731,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLBELTHOLD_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5743, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream))))) __PYX_ERR(3, 5743, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream))))) __PYX_ERR(3, 5737, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -111140,44 +110846,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5765, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5759, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5765, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5759, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5765, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5759, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5759, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5759, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5759, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5765, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5759, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -111186,7 +110892,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5765, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5759, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -111230,50 +110936,50 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5766, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5767, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5768, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5770, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5764, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5764, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5764, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5770, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5764, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5771, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5765, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5772, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5766, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5773, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5767, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -111285,7 +110991,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLBREAKAWAY_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5778, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLBREAKAWAY_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -111373,44 +111079,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5784, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5778, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5784, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5778, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5784, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5778, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5778, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5778, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5778, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5778, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -111419,7 +111125,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5784, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5778, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -111468,55 +111174,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5786, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5789, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5790, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5784, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5784, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5784, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5790, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5784, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5791, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5785, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5792, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5786, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5793, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5787, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5795, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -111530,13 +111236,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5801, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5802, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLBREAKAWAY_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -111545,30 +111251,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_4open_and_fill(P __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5805, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5799, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5799, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5799, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5805, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5799, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5805, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5799, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5799, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -111652,53 +111358,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5807, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5801, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5807, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5801, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5807, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5801, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5801, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5801, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5801, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5801, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5808, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5802, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5802, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5802, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5802, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5807, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5801, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -111742,13 +111448,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_6update(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5812, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5813, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -111818,53 +111524,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5815, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5809, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5809, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5809, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5809, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5809, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5815, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5809, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5815, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5809, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5809, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5809, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5809, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5809, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5816, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5810, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5810, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5810, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5810, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5815, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5809, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -111908,13 +111614,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_8peek(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5820, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5821, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -111976,13 +111682,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5value___get__(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5828, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5829, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -112111,7 +111817,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5842, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -112124,10 +111830,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_10copy(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5843, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream))))) __PYX_ERR(3, 5843, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream))))) __PYX_ERR(3, 5837, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -112239,44 +111945,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5865, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5859, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5859, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5865, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5859, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5865, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5859, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5859, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5859, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5859, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5859, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -112285,7 +111991,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5865, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5859, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -112329,50 +112035,50 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5866, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5867, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5868, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5870, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5864, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5864, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5864, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5864, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5871, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5865, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5872, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5866, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5873, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5867, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -112384,7 +112090,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCLOSINGMARUBOZU_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5878, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCLOSINGMARUBOZU_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -112472,44 +112178,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5878, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5878, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5878, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5878, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5878, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5884, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5878, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5884, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5878, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5878, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5878, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5878, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5878, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -112518,7 +112224,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5878, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -112567,55 +112273,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5886, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5888, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5889, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5890, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5884, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5884, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5884, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5890, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5884, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5891, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5885, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5892, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5886, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5893, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5887, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5895, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -112629,13 +112335,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5901, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5902, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -112644,30 +112350,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_4open_and_ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5905, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5905, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5905, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5905, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5899, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -112751,53 +112457,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5907, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5901, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5901, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5901, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5901, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5901, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5907, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 5901, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5907, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 5901, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5901, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5901, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5901, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5907, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5901, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5908, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5902, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5902, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5902, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5902, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5907, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5901, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -112841,13 +112547,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_6update(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5912, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5913, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -112917,53 +112623,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5915, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5909, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5915, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 5909, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5915, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 5909, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5909, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5909, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5909, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5909, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5916, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5910, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5910, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5910, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 5910, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5915, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5909, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -113007,13 +112713,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_8peek(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5921, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -113075,13 +112781,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5value___g if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5928, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5929, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -113210,7 +112916,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5942, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -113223,10 +112929,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_10copy(str PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5943, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream))))) __PYX_ERR(3, 5943, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream))))) __PYX_ERR(3, 5937, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -113338,44 +113044,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5965, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5959, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5965, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 5959, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5965, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 5959, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5959, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5959, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5959, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5959, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -113384,7 +113090,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5965, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5959, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -113428,50 +113134,50 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5966, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5967, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5968, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5969, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5970, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5964, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5964, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5964, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5970, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5964, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5971, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5965, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5972, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5966, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5973, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5967, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -113483,7 +113189,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCONCEALBABYSWALL_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5978, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCONCEALBABYSWALL_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -113571,44 +113277,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5984, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 5978, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5984, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 5978, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5984, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 5978, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 5978, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 5978, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 5978, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 5978, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -113617,7 +113323,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5984, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 5978, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -113666,55 +113372,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5986, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5987, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5988, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5989, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5990, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 5984, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 5984, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 5984, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5990, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 5984, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5991, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 5985, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5992, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 5986, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5993, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 5987, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -113728,13 +113434,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6001, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6002, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -113743,30 +113449,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_4open_and __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6005, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 5999, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 5999, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 5999, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6005, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 5999, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 5999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6005, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 5999, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 5999, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -113850,53 +113556,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6007, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6001, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6001, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6007, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6001, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6007, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6001, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6001, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6001, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6001, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6007, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6001, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6008, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6002, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6002, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6002, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6002, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6007, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6001, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -113940,13 +113646,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_6update(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6012, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6013, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -114016,53 +113722,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6015, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6009, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6015, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6009, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6015, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6009, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6009, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6009, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6009, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6009, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6016, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6010, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6010, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6010, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6010, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6015, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6009, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -114106,13 +113812,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_8peek(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6020, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6021, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -114174,13 +113880,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5value___ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6028, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6029, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -114309,7 +114015,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6042, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -114322,10 +114028,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_10copy(st PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6043, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream))))) __PYX_ERR(3, 6043, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream))))) __PYX_ERR(3, 6037, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -114437,44 +114143,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6065, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6059, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6059, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6059, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6059, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6059, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6065, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6059, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6065, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6059, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6059, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6059, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6059, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6059, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -114483,7 +114189,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6065, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6059, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -114527,50 +114233,50 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6066, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6067, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6068, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6070, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6064, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6064, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6064, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6064, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6071, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6065, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6072, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6066, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6073, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6067, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -114582,7 +114288,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCOUNTERATTACK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6078, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLCOUNTERATTACK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -114670,44 +114376,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6084, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6078, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6078, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6078, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6078, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6078, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6084, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6078, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6084, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6078, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6078, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6078, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6078, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6078, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -114716,7 +114422,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6084, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6078, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -114765,55 +114471,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6086, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6087, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6088, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6089, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6090, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6084, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6084, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6084, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6090, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6084, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6091, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6085, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6092, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6086, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6093, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6087, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -114827,13 +114533,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6101, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6102, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -114842,30 +114548,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_4open_and_fi __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6105, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6099, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6099, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6099, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6105, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6099, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6105, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6099, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6105, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6099, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -114949,53 +114655,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6107, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6101, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6101, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6107, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6101, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6107, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6101, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6101, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6101, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6101, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6107, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6101, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6108, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6102, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6102, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6102, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6102, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6107, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6101, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -115039,13 +114745,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_6update(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6112, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6113, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -115115,53 +114821,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6115, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6109, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6109, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6115, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6109, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6115, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6109, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6109, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6109, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6109, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6109, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6116, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6110, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6110, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6110, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6110, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6115, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6109, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -115205,13 +114911,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6120, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6121, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -115273,13 +114979,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5value___get if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6128, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6129, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -115408,7 +115114,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6142, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -115421,10 +115127,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_10copy(struc PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6143, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream))))) __PYX_ERR(3, 6143, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream))))) __PYX_ERR(3, 6137, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -115537,52 +115243,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6167, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6161, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6167, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6161, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6167, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6161, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6161, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6161, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6161, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6161, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -115592,14 +115298,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6167, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6161, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.5); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6167, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6161, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -115644,50 +115350,50 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6168, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6169, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6170, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6171, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6172, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6166, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6166, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6166, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6172, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6166, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6173, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6167, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6174, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6168, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6175, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6169, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -115699,7 +115405,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6180, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -115788,52 +115494,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6186, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6180, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6186, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6180, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6186, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6180, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6180, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6180, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6180, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6180, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -115843,14 +115549,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6187, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6181, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.5); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6186, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6180, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -115900,55 +115606,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6188, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6189, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6190, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6191, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6192, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6186, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6186, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6186, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6192, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6186, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6193, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6187, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6194, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6188, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6195, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6189, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6197, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -115962,13 +115668,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6203, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6204, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -115977,30 +115683,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_4open_and_f __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6207, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6201, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6201, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6201, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6207, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6201, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6207, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6201, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6207, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6201, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -116084,53 +115790,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6209, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6203, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6203, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6209, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6203, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6209, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6203, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6203, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6203, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6203, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6209, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6203, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6210, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6204, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6204, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6204, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6204, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6209, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6203, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -116174,13 +115880,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_6update(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6214, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6215, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -116250,53 +115956,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6217, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6211, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6217, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6211, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6217, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6211, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6211, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6211, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6211, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6217, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6211, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6218, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6212, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6212, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6212, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6212, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6217, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6211, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -116340,13 +116046,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_8peek(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6222, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6223, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -116408,13 +116114,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5value___ge if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6230, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6231, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -116543,7 +116249,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6244, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -116556,10 +116262,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_10copy(stru PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6245, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream))))) __PYX_ERR(3, 6245, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream))))) __PYX_ERR(3, 6239, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -116671,44 +116377,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6267, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6261, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6261, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6261, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6261, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6261, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6267, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6261, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6267, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6261, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6261, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6261, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6261, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6267, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6261, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -116717,7 +116423,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6267, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6261, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -116761,50 +116467,50 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6268, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6269, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6270, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6272, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6266, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6266, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6266, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6272, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6266, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6273, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6267, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6274, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6268, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6275, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6269, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -116816,7 +116522,7 @@ static int __pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6280, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -116904,44 +116610,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6286, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6280, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6286, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6280, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6286, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6280, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6280, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6280, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6280, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6280, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -116950,7 +116656,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6286, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6280, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -116999,55 +116705,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6290, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6291, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6292, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6292, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6286, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6293, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6287, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6294, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6288, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6295, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6289, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6297, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -117061,13 +116767,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6303, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6304, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -117076,30 +116782,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6307, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6301, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6301, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6301, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6307, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6301, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6307, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6301, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6307, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6301, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -117183,53 +116889,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6309, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6303, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6303, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6303, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6303, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6303, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6309, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6303, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6309, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6303, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6303, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6303, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6303, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6303, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6310, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6304, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6304, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6304, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6304, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6309, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6303, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -117273,13 +116979,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6314, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6315, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -117349,53 +117055,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6317, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6311, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6317, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6311, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6317, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6311, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6311, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6311, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6311, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6317, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6311, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6318, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6312, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6312, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6312, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6312, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6317, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6311, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -117439,13 +117145,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6322, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6323, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -117507,13 +117213,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6330, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6331, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -117642,7 +117348,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6344, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -117655,10 +117361,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14CDLDOJI_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6345, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream))))) __PYX_ERR(3, 6345, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream))))) __PYX_ERR(3, 6339, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -117770,44 +117476,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6367, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6361, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6361, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6361, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6361, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6361, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6367, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6361, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6367, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6361, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6361, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6361, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6361, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6367, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6361, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -117816,7 +117522,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6367, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6361, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -117860,50 +117566,50 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6368, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6369, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6371, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6372, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6366, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6366, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6366, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6372, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6366, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6373, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6367, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6374, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6368, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6375, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6369, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -117915,7 +117621,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDOJISTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6380, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDOJISTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -118003,44 +117709,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6386, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6380, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6380, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6380, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6380, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6380, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6386, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6380, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6386, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6380, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6380, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6380, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6380, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6380, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -118049,7 +117755,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6386, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6380, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -118098,55 +117804,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6388, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6389, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6390, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6391, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6392, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6392, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6386, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6393, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6387, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6394, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6388, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6395, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6389, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6397, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -118160,13 +117866,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6403, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6404, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -118175,30 +117881,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6407, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6401, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6401, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6401, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6407, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6401, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6407, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6401, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6407, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6401, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -118282,53 +117988,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6409, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6403, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6403, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6403, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6403, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6403, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6409, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6403, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6409, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6403, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6403, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6403, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6403, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6403, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6410, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6404, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6404, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6404, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6404, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6409, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6403, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -118372,13 +118078,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6414, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6415, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -118448,53 +118154,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6417, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6411, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6417, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6411, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6417, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6411, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6411, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6411, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6411, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6417, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6411, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6418, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6412, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6412, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6412, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6412, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6417, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6411, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -118538,13 +118244,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6422, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6423, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -118606,13 +118312,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6430, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6431, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -118741,7 +118447,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6444, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -118754,10 +118460,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLDOJISTAR_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6445, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream))))) __PYX_ERR(3, 6445, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream))))) __PYX_ERR(3, 6439, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -118869,44 +118575,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6467, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6461, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6461, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6467, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6461, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6467, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6461, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6461, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6461, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6461, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6467, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6461, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -118915,7 +118621,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6467, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6461, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -118959,50 +118665,50 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6469, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6470, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6471, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6472, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6466, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6466, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6466, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6466, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6473, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6467, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6474, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6468, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6475, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6469, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -119014,7 +118720,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDRAGONFLYDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6480, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLDRAGONFLYDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -119102,44 +118808,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6486, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6480, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6486, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6480, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6486, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6480, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6480, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6480, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6480, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6480, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -119148,7 +118854,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6486, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6480, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -119197,55 +118903,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6488, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6490, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6491, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6492, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6486, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6486, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6486, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6492, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6486, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6493, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6487, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6494, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6488, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6495, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6489, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6497, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -119259,13 +118965,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6503, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6504, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -119274,30 +118980,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_4open_and_fi __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6507, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6501, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6501, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6501, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6507, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6501, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6507, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6501, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6507, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6501, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -119381,53 +119087,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6509, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6503, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6503, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6509, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6503, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6509, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6503, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6503, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6503, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6503, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6509, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6503, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6510, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6504, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6504, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6504, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6504, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6509, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6503, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -119471,13 +119177,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_6update(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6514, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6515, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -119547,53 +119253,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6517, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6511, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6517, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6511, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6517, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6511, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6511, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6511, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6511, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6517, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6511, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6518, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6512, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6512, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6512, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6512, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6517, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6511, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -119637,13 +119343,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6522, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6523, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -119705,13 +119411,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5value___get if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6530, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6531, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -119840,7 +119546,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6544, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -119853,10 +119559,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_10copy(struc PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6545, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream))))) __PYX_ERR(3, 6545, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream))))) __PYX_ERR(3, 6539, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -119968,44 +119674,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6567, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6561, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6567, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6561, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6567, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6561, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6561, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6561, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6561, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6561, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -120014,7 +119720,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6567, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6561, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -120058,50 +119764,50 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6568, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6571, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6572, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6566, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6566, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6566, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6572, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6566, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6573, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6567, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6574, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6568, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6575, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6569, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -120113,7 +119819,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLENGULFING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6580, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLENGULFING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -120201,44 +119907,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6586, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6580, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6580, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6580, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6580, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6580, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6586, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6580, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6586, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6580, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6580, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6580, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6580, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6580, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -120247,7 +119953,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6586, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6580, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -120296,55 +120002,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6588, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6589, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6590, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6591, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6592, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6586, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6586, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6586, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6592, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6586, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6593, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6587, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6594, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6588, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6595, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6589, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6597, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -120358,13 +120064,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6603, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6604, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLENGULFING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -120373,30 +120079,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_4open_and_fill(P __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6607, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6601, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6601, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6601, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6607, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6601, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6607, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6601, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6607, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6601, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -120480,53 +120186,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6609, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6603, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6603, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6609, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6603, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6609, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6603, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6603, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6603, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6603, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6603, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6610, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6604, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6604, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6604, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6604, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6609, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6603, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -120570,13 +120276,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_6update(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6614, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6615, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -120646,53 +120352,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6617, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6611, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6611, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6611, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6611, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6611, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6617, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6611, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6617, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6611, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6611, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6611, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6611, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6617, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6611, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6618, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6612, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6612, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6612, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6612, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6617, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6611, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -120736,13 +120442,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_8peek(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6622, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6623, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -120804,13 +120510,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_5value___get__(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6630, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6631, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -120939,7 +120645,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6644, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -120952,10 +120658,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLENGULFING_Stream_10copy(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6645, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream))))) __PYX_ERR(3, 6645, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream))))) __PYX_ERR(3, 6639, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -121068,52 +120774,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6669, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6663, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6663, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6663, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6663, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6663, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6663, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6669, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6663, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6669, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6663, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6663, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6663, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6663, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6663, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6669, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6663, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -121123,14 +120829,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6669, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6663, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6669, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6663, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -121175,50 +120881,50 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6670, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6671, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6672, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6673, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6674, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6668, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6668, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6668, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6674, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6668, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6675, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6669, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6676, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6670, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6677, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6671, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -121230,7 +120936,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6682, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -121319,52 +121025,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6688, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6682, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6688, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6682, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6688, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6682, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6682, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6682, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6682, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6682, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6688, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6682, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -121374,14 +121080,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6689, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6683, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6688, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6682, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -121431,55 +121137,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6691, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6694, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6688, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6688, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6688, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6694, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6688, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6695, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6689, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6696, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6690, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6697, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6691, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -121493,13 +121199,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6705, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6706, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -121508,30 +121214,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_4open_and_ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6709, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6709, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6709, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6709, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6703, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -121615,53 +121321,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6711, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6705, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6705, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6711, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6705, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6711, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6705, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6705, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6705, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6705, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6711, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6705, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6712, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6706, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6706, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6706, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6706, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6711, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6705, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -121705,13 +121411,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_6update(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6716, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6717, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -121781,53 +121487,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6719, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6719, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6719, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6713, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6713, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6713, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6713, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6713, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6720, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6714, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6714, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6714, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6714, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6719, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -121871,13 +121577,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_8peek(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6724, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6725, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -121939,13 +121645,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5value___g if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6732, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6733, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -122074,7 +121780,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6746, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -122087,10 +121793,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_10copy(str PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6747, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream))))) __PYX_ERR(3, 6747, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream))))) __PYX_ERR(3, 6741, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -122203,52 +121909,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6771, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6765, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6771, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6765, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6771, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 6765, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6765, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6765, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6765, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6765, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -122258,14 +121964,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6771, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6765, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6771, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6765, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -122310,50 +122016,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6775, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6776, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6770, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6777, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6771, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6778, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6772, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6779, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6773, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -122365,7 +122071,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -122454,52 +122160,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6790, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6784, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6790, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6784, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6790, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 6784, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 6784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6784, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6784, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6784, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6784, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -122509,14 +122215,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6791, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6785, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6790, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 6784, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -122566,55 +122272,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6793, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6794, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6795, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6796, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6790, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6797, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6791, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6798, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6792, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6799, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6793, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -122628,13 +122334,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6807, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLEVENINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -122643,30 +122349,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6811, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6805, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6805, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6805, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -122750,53 +122456,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6813, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6807, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6813, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6807, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6813, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6807, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6807, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6807, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6807, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6807, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6814, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6808, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6808, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6808, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6808, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6807, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -122840,13 +122546,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6818, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6819, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -122916,53 +122622,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6821, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6815, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6821, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6815, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6821, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6815, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6815, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6815, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6815, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6815, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6822, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6816, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6816, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6816, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6816, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6821, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6815, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -123006,13 +122712,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6826, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6827, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -123074,13 +122780,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6834, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6835, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -123209,7 +122915,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6848, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -123222,10 +122928,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6849, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream))))) __PYX_ERR(3, 6849, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream))))) __PYX_ERR(3, 6843, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -123337,44 +123043,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6871, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6865, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6871, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6865, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6871, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6865, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6865, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6865, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6865, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6865, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -123383,7 +123089,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6871, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6865, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -123427,50 +123133,50 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6872, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6873, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6874, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6875, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6876, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6870, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6870, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6870, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6870, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6877, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6871, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6878, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6872, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6879, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6873, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -123482,7 +123188,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLGAPSIDESIDEWHITE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6884, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLGAPSIDESIDEWHITE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -123570,44 +123276,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6890, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6884, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6890, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6884, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6890, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6884, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6884, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6884, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6884, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6884, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -123616,7 +123322,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6890, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6884, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -123665,55 +123371,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6892, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6893, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6894, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6895, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6896, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6890, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6890, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6890, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6890, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6897, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6891, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6898, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6892, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6899, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6893, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6901, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -123727,13 +123433,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6907, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6908, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -123742,30 +123448,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_4open_and __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 6905, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 6905, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 6905, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6911, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 6905, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 6905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 6905, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 6905, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -123849,53 +123555,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6913, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 6907, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6913, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 6907, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6907, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6907, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6907, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6907, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6914, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6908, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6908, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6908, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6908, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -123939,13 +123645,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_6update(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6918, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6919, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -124015,53 +123721,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6921, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6915, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6921, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 6915, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6921, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 6915, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6915, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6915, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6915, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6915, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6922, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6916, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6916, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6916, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 6916, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6921, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6915, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -124105,13 +123811,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_8peek(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6926, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6927, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -124173,13 +123879,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5value___ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6934, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6935, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -124308,7 +124014,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6948, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -124321,10 +124027,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_10copy(st PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6949, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream))))) __PYX_ERR(3, 6949, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream))))) __PYX_ERR(3, 6943, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -124436,44 +124142,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6971, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6965, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6971, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 6965, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6971, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 6965, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6965, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6965, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6965, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6965, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -124482,7 +124188,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6971, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6965, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -124526,50 +124232,50 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6972, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6973, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6974, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6975, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6976, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6970, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6970, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6970, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6970, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6977, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6971, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6978, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6972, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6979, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6973, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -124581,7 +124287,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLGRAVESTONEDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6984, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLGRAVESTONEDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -124669,44 +124375,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6990, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 6984, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6990, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 6984, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6990, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 6984, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 6984, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 6984, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 6984, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 6984, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -124715,7 +124421,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6990, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 6984, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -124764,55 +124470,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6992, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6993, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6994, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6996, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 6990, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 6990, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 6990, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 6990, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6997, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 6991, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6998, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 6992, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6999, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 6993, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7001, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -124826,13 +124532,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7007, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7008, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -124841,30 +124547,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_4open_and_f __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7011, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7005, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7005, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7005, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7011, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7005, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7011, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7005, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7005, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -124948,53 +124654,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7013, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7007, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7013, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7007, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7013, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7007, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7007, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7007, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7007, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7007, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7014, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7008, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7008, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7008, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7008, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7013, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7007, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -125038,13 +124744,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_6update(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7018, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7019, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -125114,53 +124820,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7021, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7015, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7021, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7015, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7021, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7015, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7015, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7015, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7015, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7015, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7022, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7016, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7016, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7016, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7016, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7021, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7015, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -125204,13 +124910,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_8peek(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7026, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7027, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -125272,13 +124978,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5value___ge if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7034, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7035, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -125407,7 +125113,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7048, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -125420,10 +125126,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_10copy(stru PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7049, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream))))) __PYX_ERR(3, 7049, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream))))) __PYX_ERR(3, 7043, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -125535,44 +125241,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7071, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7065, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7071, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7065, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7071, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7065, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7065, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7065, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7065, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7065, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -125581,7 +125287,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7071, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7065, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -125625,50 +125331,50 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7072, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7073, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7074, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7075, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7076, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7070, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7070, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7070, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7070, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7077, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7071, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7078, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7072, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7079, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7073, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -125680,7 +125386,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHAMMER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7084, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHAMMER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -125768,44 +125474,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7090, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7084, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7090, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7084, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7090, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7084, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7084, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7084, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7084, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7084, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -125814,7 +125520,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7090, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7084, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -125863,55 +125569,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7092, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7093, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7094, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7096, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7090, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7090, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7090, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7090, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7097, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7091, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7098, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7092, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7099, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7093, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -125925,13 +125631,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7107, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -125940,30 +125646,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7111, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7105, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7105, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7105, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7111, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7105, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7111, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7105, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7105, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -126047,53 +125753,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7107, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7113, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7107, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7113, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7107, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7107, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7107, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7107, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7107, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7114, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7108, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7108, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7108, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7108, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7107, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -126137,13 +125843,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7118, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7119, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -126213,53 +125919,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7121, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7121, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7115, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7121, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7115, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7115, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7115, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7115, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7115, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7122, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7116, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7116, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7116, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7116, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7121, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -126303,13 +126009,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7126, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7127, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -126371,13 +126077,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7134, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7135, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -126506,7 +126212,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7148, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -126519,10 +126225,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHAMMER_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7149, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream))))) __PYX_ERR(3, 7149, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream))))) __PYX_ERR(3, 7143, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -126634,44 +126340,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7165, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7171, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7165, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7171, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7165, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7165, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7165, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7165, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7165, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -126680,7 +126386,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7165, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -126724,50 +126430,50 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7173, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7176, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7170, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7170, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7170, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7170, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7177, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7171, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7178, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7172, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7179, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7173, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -126779,7 +126485,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_2__init__(struct __py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHANGINGMAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7184, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHANGINGMAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -126867,44 +126573,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7190, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7184, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7190, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7184, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7190, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7184, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7184, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7184, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7184, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7184, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -126913,7 +126619,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7190, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7184, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -126962,55 +126668,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7194, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7195, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7190, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7190, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7190, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7190, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7197, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7191, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7198, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7192, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7199, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7193, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -127024,13 +126730,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7207, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHANGINGMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -127039,30 +126745,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_4open_and_fill( __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7211, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7205, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7205, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7205, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7211, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7205, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7211, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7205, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7205, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -127146,53 +126852,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7213, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7207, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7213, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7207, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7213, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7207, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7207, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7207, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7207, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7207, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7214, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7208, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7208, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7208, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7208, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7213, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7207, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -127236,13 +126942,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7218, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7219, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -127312,53 +127018,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7221, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7221, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7215, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7221, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7215, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7215, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7215, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7215, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7215, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7222, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7216, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7216, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7216, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7216, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7221, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -127402,13 +127108,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_8peek(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7226, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7227, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -127470,13 +127176,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5value___get__( if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7234, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7235, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -127605,7 +127311,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7248, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -127618,10 +127324,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_10copy(struct _ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7249, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream))))) __PYX_ERR(3, 7249, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream))))) __PYX_ERR(3, 7243, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -127733,44 +127439,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7271, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7265, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7271, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7265, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7271, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7265, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7265, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7265, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7265, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7265, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -127779,7 +127485,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7271, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7265, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -127823,50 +127529,50 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7276, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7270, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7277, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7271, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7278, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7272, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7279, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7273, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -127878,7 +127584,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHARAMI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7284, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHARAMI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -127966,44 +127672,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7290, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7284, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7290, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7284, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7290, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7284, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7284, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7284, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7284, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7284, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -128012,7 +127718,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7290, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7284, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -128061,55 +127767,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7292, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7294, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7295, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7296, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7290, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7290, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7290, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7290, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7297, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7291, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7298, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7292, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7299, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7293, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7301, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -128123,13 +127829,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7307, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -128138,30 +127844,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7311, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7305, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7305, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7305, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7311, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7305, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7311, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7305, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7305, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -128245,53 +127951,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7313, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7307, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7313, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7307, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7313, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7307, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7307, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7307, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7307, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7307, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7314, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7308, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7313, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7307, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -128335,13 +128041,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7318, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7319, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -128411,53 +128117,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7321, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7315, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7321, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7315, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7321, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7315, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7315, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7315, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7315, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7315, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7322, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7316, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7316, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7316, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7316, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7321, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7315, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -128501,13 +128207,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7326, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7327, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -128569,13 +128275,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7334, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7335, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -128704,7 +128410,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7348, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -128717,10 +128423,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLHARAMI_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7349, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream))))) __PYX_ERR(3, 7349, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream))))) __PYX_ERR(3, 7343, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -128832,44 +128538,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7371, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7365, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7371, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7365, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7371, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7365, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7365, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7365, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7365, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7365, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -128878,7 +128584,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7371, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7365, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -128922,50 +128628,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7375, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7376, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7370, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7377, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7371, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7378, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7372, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7379, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7373, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -128977,7 +128683,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHARAMICROSS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7384, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHARAMICROSS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -129065,44 +128771,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7390, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7390, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7384, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7390, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7384, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7384, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7384, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7384, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7384, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -129111,7 +128817,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7390, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7384, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -129160,55 +128866,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7392, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7393, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7394, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7396, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7390, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7390, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7390, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7390, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7397, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7391, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7398, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7392, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7399, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7393, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -129222,13 +128928,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7407, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHARAMICROSS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -129237,30 +128943,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7411, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7405, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7405, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7405, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7411, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7405, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7411, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7405, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7405, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -129344,53 +129050,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7407, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7407, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7407, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7407, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7407, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7407, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7407, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7414, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7408, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7408, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7408, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7408, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7407, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -129434,13 +129140,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7418, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7419, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -129510,53 +129216,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7421, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7415, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7421, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7415, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7421, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7415, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7415, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7415, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7415, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7415, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7422, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7416, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7416, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7416, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7416, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7421, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7415, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -129600,13 +129306,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7426, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7427, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -129668,13 +129374,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7434, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7435, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -129803,7 +129509,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7448, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -129816,10 +129522,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7449, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream))))) __PYX_ERR(3, 7449, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream))))) __PYX_ERR(3, 7443, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -129931,44 +129637,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7471, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7465, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7471, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7465, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7471, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7465, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7465, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7465, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7465, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7465, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -129977,7 +129683,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7471, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7465, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -130021,50 +129727,50 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7472, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7474, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7475, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7476, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7470, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7477, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7471, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7478, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7472, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7479, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7473, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -130076,7 +129782,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIGHWAVE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7484, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIGHWAVE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -130164,44 +129870,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7490, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7484, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7490, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7484, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7490, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7484, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7484, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7484, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7484, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7484, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -130210,7 +129916,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7490, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7484, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -130259,55 +129965,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7492, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7494, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7495, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7496, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7490, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7490, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7490, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7490, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7497, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7491, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7498, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7492, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7499, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7493, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -130321,13 +130027,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7507, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7508, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIGHWAVE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -130336,30 +130042,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7511, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7511, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7505, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7511, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7505, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7505, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -130443,53 +130149,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7513, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7507, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7513, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7507, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7513, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7507, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7507, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7507, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7507, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7507, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7514, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7508, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7508, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7508, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7508, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7513, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7507, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -130533,13 +130239,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7518, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7519, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -130609,53 +130315,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7521, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7515, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7521, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7515, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7521, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7515, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7515, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7515, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7515, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7515, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7522, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7516, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7516, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7516, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7516, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7521, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7515, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -130699,13 +130405,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7526, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7527, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -130767,13 +130473,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7534, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7535, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -130902,7 +130608,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7548, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -130915,10 +130621,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7549, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream))))) __PYX_ERR(3, 7549, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream))))) __PYX_ERR(3, 7543, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -131030,44 +130736,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7571, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7565, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7571, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7565, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7571, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7565, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7565, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7565, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7565, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7565, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -131076,7 +130782,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7571, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7565, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -131120,50 +130826,50 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7572, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7573, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7574, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7575, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7576, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7570, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7570, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7570, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7570, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7577, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7571, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7578, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7572, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7579, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7573, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -131175,7 +130881,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIKKAKE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7584, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIKKAKE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -131263,44 +130969,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7590, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7584, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7590, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7584, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7590, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7584, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7584, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7584, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7584, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7584, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -131309,7 +131015,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7590, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7584, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -131358,55 +131064,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7592, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7594, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7596, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7590, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7590, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7590, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7590, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7597, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7591, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7598, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7592, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7599, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7593, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -131420,13 +131126,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7607, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7608, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -131435,30 +131141,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7611, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7605, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7605, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7605, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7611, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7605, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7611, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7605, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7605, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -131542,53 +131248,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7607, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7613, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7607, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7613, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7607, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7607, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7607, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7607, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7607, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7614, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7608, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7608, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7608, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7608, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7607, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -131632,13 +131338,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7618, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7619, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -131708,53 +131414,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7621, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7615, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7621, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7615, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7621, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7615, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7615, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7615, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7615, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7615, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7622, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7616, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7616, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7616, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7616, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7615, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -131798,13 +131504,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7626, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7627, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -131866,13 +131572,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7634, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7635, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -132001,7 +131707,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7648, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -132014,10 +131720,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLHIKKAKE_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7649, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream))))) __PYX_ERR(3, 7649, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream))))) __PYX_ERR(3, 7643, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -132129,44 +131835,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7671, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7665, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7671, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7665, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7671, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7665, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7665, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7665, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7665, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7665, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -132175,7 +131881,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7671, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7665, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -132219,50 +131925,50 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7672, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7673, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7674, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7675, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7676, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7670, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7670, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7670, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7670, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7677, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7671, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7678, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7672, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7679, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7673, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -132274,7 +131980,7 @@ static int __pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_2__init__(struct __py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIKKAKEMOD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7684, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHIKKAKEMOD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -132362,44 +132068,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7690, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7684, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7690, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7684, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7690, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7684, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7684, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7684, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7684, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7684, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -132408,7 +132114,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7690, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7684, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -132457,55 +132163,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7694, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7696, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7690, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7690, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7690, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7690, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7697, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7691, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7698, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7692, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7699, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7693, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -132519,13 +132225,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7707, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7708, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -132534,30 +132240,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_4open_and_fill( __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7711, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7705, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7705, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7705, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -132641,53 +132347,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7707, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7707, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7707, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7707, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7707, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7707, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7707, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7714, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7708, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7708, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7708, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7708, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7707, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -132731,13 +132437,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7718, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7719, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -132807,53 +132513,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7721, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7715, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7721, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7715, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7721, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7715, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7715, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7715, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7715, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7715, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7722, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7716, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7716, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7716, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7716, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7721, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7715, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -132897,13 +132603,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_8peek(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7726, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7727, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -132965,13 +132671,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5value___get__( if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7734, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7735, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -133100,7 +132806,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7748, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -133113,10 +132819,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_10copy(struct _ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7749, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream))))) __PYX_ERR(3, 7749, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream))))) __PYX_ERR(3, 7743, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -133228,44 +132934,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7771, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7765, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7771, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7765, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7771, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7765, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7765, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7765, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7765, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7765, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -133274,7 +132980,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7771, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7765, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -133318,50 +133024,50 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7775, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7776, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7770, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7777, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7771, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7778, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7772, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7779, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7773, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -133373,7 +133079,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHOMINGPIGEON_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLHOMINGPIGEON_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -133461,44 +133167,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7790, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7784, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7790, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7784, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7790, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7784, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7784, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7784, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7784, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7784, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -133507,7 +133213,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7790, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7784, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -133556,55 +133262,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7793, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7794, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7795, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7796, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7790, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7797, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7791, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7798, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7792, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7799, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7793, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -133618,13 +133324,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7807, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -133633,30 +133339,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_4open_and_fil __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7811, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7805, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7805, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7805, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -133740,53 +133446,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7813, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7807, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7813, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7807, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7813, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7807, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7807, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7807, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7807, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7807, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7814, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7808, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7808, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7808, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7808, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7807, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -133830,13 +133536,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_6update(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7818, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7819, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -133906,53 +133612,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7821, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7815, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7821, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7815, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7821, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7815, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7815, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7815, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7815, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7815, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7822, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7816, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7816, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7816, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7816, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7821, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7815, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -133996,13 +133702,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7826, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7827, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -134064,13 +133770,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5value___get_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7834, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7835, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -134199,7 +133905,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7848, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -134212,10 +133918,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7849, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream))))) __PYX_ERR(3, 7849, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream))))) __PYX_ERR(3, 7843, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -134327,44 +134033,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7871, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7865, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7865, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7871, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7865, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7871, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7865, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7865, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7865, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7865, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7865, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -134373,7 +134079,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7871, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7865, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -134417,50 +134123,50 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7872, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7873, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7874, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7875, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7876, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7870, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7870, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7870, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7876, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7870, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7877, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7871, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7878, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7872, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7879, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7873, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -134472,7 +134178,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLIDENTICAL3CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7884, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLIDENTICAL3CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -134560,44 +134266,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7890, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7884, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7884, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7890, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7884, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7890, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7884, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7884, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7884, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7884, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7890, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7884, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -134606,7 +134312,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7890, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7884, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -134655,55 +134361,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7892, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7893, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7894, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7895, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7896, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7890, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7890, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7890, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7890, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7897, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7891, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7898, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7892, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7899, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7893, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7901, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -134717,13 +134423,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7907, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7908, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -134732,30 +134438,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_4open_and_ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 7905, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 7905, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 7905, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7911, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 7905, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 7905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 7905, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 7905, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -134839,53 +134545,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7913, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 7907, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7913, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 7907, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7907, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7907, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7907, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7907, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7914, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7908, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7908, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7908, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7908, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -134929,13 +134635,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_6update(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7918, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7919, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -135005,53 +134711,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7921, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7915, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7921, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 7915, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7921, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 7915, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7915, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7915, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7915, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7915, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7922, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7916, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7916, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7916, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7916, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7921, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7915, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -135095,13 +134801,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_8peek(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7926, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7927, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -135163,13 +134869,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5value___g if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7934, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7935, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -135298,7 +135004,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7948, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -135311,10 +135017,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_10copy(str PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7949, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream))))) __PYX_ERR(3, 7949, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream))))) __PYX_ERR(3, 7943, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -135426,44 +135132,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7971, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7965, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7965, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7971, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 7965, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7971, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 7965, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7965, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7965, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7965, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7971, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7965, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -135472,7 +135178,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7971, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7965, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -135516,50 +135222,50 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7972, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7973, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7974, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7975, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7976, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7970, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7970, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7970, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7970, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7977, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7971, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7978, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7972, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7979, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7973, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -135571,7 +135277,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLINNECK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7984, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLINNECK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -135659,44 +135365,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7990, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 7984, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7990, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 7984, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7990, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 7984, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 7984, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 7984, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 7984, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7990, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 7984, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -135705,7 +135411,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7990, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 7984, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -135754,55 +135460,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7992, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7993, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7994, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7996, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 7990, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 7990, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 7990, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7996, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 7990, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7997, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 7991, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7998, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 7992, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7999, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 7993, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8001, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -135816,13 +135522,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8007, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8008, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -135831,30 +135537,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8011, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8005, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8005, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8005, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8011, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8005, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8011, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8005, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8011, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8005, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -135938,53 +135644,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8013, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8007, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8007, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8013, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8007, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8013, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8007, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8007, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8007, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8007, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8007, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8014, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8008, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8008, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8008, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8008, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8013, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8007, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -136028,13 +135734,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8018, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8019, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -136104,53 +135810,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8021, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8015, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8021, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8015, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8021, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8015, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8015, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8015, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8015, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8021, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8015, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8022, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8016, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8016, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8016, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8016, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8021, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8015, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -136194,13 +135900,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8026, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8027, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -136262,13 +135968,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8034, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8035, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -136397,7 +136103,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8048, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -136410,10 +136116,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLINNECK_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8049, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream))))) __PYX_ERR(3, 8049, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream))))) __PYX_ERR(3, 8043, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -136525,44 +136231,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8071, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8065, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8071, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8065, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8071, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8065, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8065, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8065, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8065, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8071, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8065, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -136571,7 +136277,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8071, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8065, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -136615,50 +136321,50 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8072, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8073, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8074, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8075, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8076, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8070, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8070, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8070, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8076, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8070, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8077, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8071, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8078, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8072, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8079, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8073, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -136670,7 +136376,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLINVERTEDHAMMER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8084, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLINVERTEDHAMMER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -136758,44 +136464,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8090, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8084, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8084, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8090, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8084, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8090, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8084, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8084, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8084, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8084, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8090, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8084, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -136804,7 +136510,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8090, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8084, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -136853,55 +136559,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8092, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8093, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8094, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8096, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8090, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8090, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8090, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8090, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8097, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8091, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8098, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8092, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8099, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8093, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -136915,13 +136621,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8107, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -136930,30 +136636,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_4open_and_f __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8111, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8105, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8105, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8105, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8111, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8105, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8111, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8105, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8111, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8105, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -137037,53 +136743,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8107, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8113, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8107, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8113, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8107, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8107, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8107, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8107, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8107, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8114, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8108, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8108, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8108, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8108, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8107, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -137127,13 +136833,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_6update(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8118, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8119, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -137203,53 +136909,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8121, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8121, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8115, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8121, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8115, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8115, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8115, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8115, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8115, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8122, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8116, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8116, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8116, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8116, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8121, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -137293,13 +136999,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_8peek(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8126, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8127, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -137361,13 +137067,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5value___ge if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8134, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8135, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -137496,7 +137202,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8148, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -137509,10 +137215,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_10copy(stru PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8149, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream))))) __PYX_ERR(3, 8149, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream))))) __PYX_ERR(3, 8143, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -137624,44 +137330,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8165, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8171, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8165, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8171, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8165, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8165, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8165, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8165, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8165, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -137670,7 +137376,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8165, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -137714,50 +137420,50 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8173, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8176, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8170, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8170, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8170, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8176, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8170, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8177, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8171, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8178, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8172, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8179, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8173, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -137769,7 +137475,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLKICKING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8184, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLKICKING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -137857,44 +137563,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8190, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8184, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8184, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8190, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8184, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8190, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8184, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8184, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8184, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8184, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8190, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8184, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -137903,7 +137609,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8190, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8184, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -137952,55 +137658,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8194, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8195, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8190, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8190, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8190, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8190, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8197, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8191, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8198, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8192, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8199, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8193, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -138014,13 +137720,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8207, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -138029,30 +137735,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8211, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8205, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8205, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8205, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8211, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8205, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8211, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8205, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8205, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -138136,53 +137842,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8213, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8207, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8213, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8207, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8213, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8207, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8207, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8207, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8207, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8207, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8214, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8208, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8208, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8208, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8208, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8213, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8207, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -138226,13 +137932,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8218, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8219, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -138302,53 +138008,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8221, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8221, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8215, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8221, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8215, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8215, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8215, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8215, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8221, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8215, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8222, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8216, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8216, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8216, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8216, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8221, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -138392,13 +138098,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8226, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8227, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -138460,13 +138166,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8234, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8235, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -138595,7 +138301,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8248, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -138608,10 +138314,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLKICKING_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8249, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream))))) __PYX_ERR(3, 8249, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream))))) __PYX_ERR(3, 8243, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -138723,44 +138429,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8271, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8265, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8271, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8265, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8271, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8265, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8265, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8265, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8265, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8265, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -138769,7 +138475,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8271, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8265, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -138813,50 +138519,50 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8276, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8270, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8270, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8277, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8271, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8278, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8272, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8279, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8273, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -138868,7 +138574,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLKICKINGBYLENGTH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8284, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLKICKINGBYLENGTH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -138956,44 +138662,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8290, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8284, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8290, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8284, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8290, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8284, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8284, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8284, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8284, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8290, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8284, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -139002,7 +138708,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8290, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8284, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -139051,55 +138757,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8292, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8294, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8295, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8296, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8290, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8290, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8290, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8296, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8290, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8297, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8291, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8298, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8292, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8299, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8293, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8301, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -139113,13 +138819,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8307, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -139128,30 +138834,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_4open_and_ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8311, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8305, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8305, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8305, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8311, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8305, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8311, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8305, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8311, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8305, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -139235,53 +138941,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8313, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8307, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8313, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8307, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8313, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8307, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8307, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8307, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8307, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8307, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8314, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8308, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8308, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8308, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8308, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8313, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8307, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -139325,13 +139031,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_6update(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8318, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8319, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -139401,53 +139107,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8321, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8315, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8321, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8315, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8321, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8315, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8315, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8315, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8315, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8321, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8315, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8322, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8316, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8316, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8316, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8316, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8321, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8315, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -139491,13 +139197,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_8peek(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8326, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8327, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -139559,13 +139265,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5value___g if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8334, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8335, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -139694,7 +139400,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8348, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -139707,10 +139413,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_10copy(str PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8349, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream))))) __PYX_ERR(3, 8349, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream))))) __PYX_ERR(3, 8343, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -139822,44 +139528,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8371, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8365, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8371, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8365, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8371, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8365, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8365, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8365, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8365, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8371, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8365, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -139868,7 +139574,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8371, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8365, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -139912,50 +139618,50 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8375, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8376, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8376, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8370, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8377, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8371, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8378, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8372, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8379, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8373, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -139967,7 +139673,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLADDERBOTTOM_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8384, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLADDERBOTTOM_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -140055,44 +139761,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8390, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8390, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8384, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8390, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8384, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8384, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8384, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8384, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8390, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8384, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -140101,7 +139807,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8390, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8384, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -140150,55 +139856,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8392, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8393, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8394, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8396, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8390, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8390, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8390, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8396, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8390, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8397, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8391, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8398, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8392, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8399, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8393, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -140212,13 +139918,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8407, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -140227,30 +139933,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_4open_and_fil __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8411, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8405, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8405, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8405, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8411, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8405, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8411, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8405, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8411, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8405, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -140334,53 +140040,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8407, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8407, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8407, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8407, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8407, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8407, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8407, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8407, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8414, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8408, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8408, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8408, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8408, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8407, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -140424,13 +140130,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_6update(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8418, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8419, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -140500,53 +140206,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8421, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8415, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8415, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8421, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8415, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8421, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8415, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8415, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8415, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8415, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8421, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8415, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8422, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8416, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8416, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8416, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8416, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8421, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8415, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -140590,13 +140296,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8426, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8427, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -140658,13 +140364,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5value___get_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8434, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8435, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -140793,7 +140499,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8448, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -140806,10 +140512,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8449, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream))))) __PYX_ERR(3, 8449, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream))))) __PYX_ERR(3, 8443, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -140921,44 +140627,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8471, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8465, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8471, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8465, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8471, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8465, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8465, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8465, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8465, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8465, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -140967,7 +140673,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8471, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8465, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -141011,50 +140717,50 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8472, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8474, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8475, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8476, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8470, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8470, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8477, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8471, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8478, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8472, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8479, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8473, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -141066,7 +140772,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLONGLEGGEDDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8484, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLONGLEGGEDDOJI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -141154,44 +140860,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8490, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8484, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8484, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8490, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8484, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8490, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8484, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8484, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8484, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8484, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8484, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -141200,7 +140906,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8490, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8484, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -141249,55 +140955,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8492, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8494, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8495, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8496, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8490, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8490, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8490, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8490, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8497, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8491, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8498, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8492, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8499, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8493, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -141311,13 +141017,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8507, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8508, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -141326,30 +141032,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_4open_and_f __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8511, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8505, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8511, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8505, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8511, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8505, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8511, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8505, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -141433,53 +141139,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8513, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8507, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8507, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8513, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8507, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8513, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8507, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8507, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8507, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8507, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8507, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8514, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8508, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8508, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8508, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8508, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8513, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8507, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -141523,13 +141229,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_6update(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8518, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8519, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -141599,53 +141305,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8521, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8515, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8515, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8521, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8515, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8521, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8515, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8515, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8515, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8515, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8515, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8522, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8516, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8516, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8516, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8516, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8521, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8515, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -141689,13 +141395,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_8peek(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8526, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8527, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -141757,13 +141463,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5value___ge if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8534, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8535, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -141892,7 +141598,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8548, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -141905,10 +141611,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_10copy(stru PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8549, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream))))) __PYX_ERR(3, 8549, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream))))) __PYX_ERR(3, 8543, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -142020,44 +141726,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8571, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8565, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8571, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8565, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8571, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8565, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8565, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8565, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8565, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8571, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8565, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -142066,7 +141772,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8571, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8565, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -142110,50 +141816,50 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8572, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8573, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8574, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8575, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8576, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8570, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8570, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8570, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8570, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8577, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8571, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8578, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8572, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8579, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8573, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -142165,7 +141871,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLONGLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8584, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLLONGLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -142253,44 +141959,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8590, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8584, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8584, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8590, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8584, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8590, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8584, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8584, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8584, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8584, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8584, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -142299,7 +142005,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8590, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8584, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -142348,55 +142054,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8592, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8594, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8596, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8590, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8590, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8590, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8596, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8590, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8597, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8591, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8598, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8592, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8599, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8593, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -142410,13 +142116,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8607, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8608, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLLONGLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -142425,30 +142131,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8611, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8605, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8605, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8605, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8611, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8605, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8611, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8605, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8611, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8605, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -142532,53 +142238,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8607, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8607, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8613, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8607, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8613, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8607, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8607, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8607, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8607, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8607, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8614, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8608, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8608, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8608, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8608, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8607, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -142622,13 +142328,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8618, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8619, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -142698,53 +142404,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8621, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8615, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8615, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8621, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8615, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8621, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8615, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8615, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8615, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8615, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8615, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8622, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8616, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8616, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8616, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8616, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8615, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -142788,13 +142494,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8626, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8627, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -142856,13 +142562,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8634, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8635, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -142991,7 +142697,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8648, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -143004,10 +142710,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLLONGLINE_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8649, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream))))) __PYX_ERR(3, 8649, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream))))) __PYX_ERR(3, 8643, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -143119,44 +142825,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8671, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8665, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8671, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8665, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8671, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8665, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8665, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8665, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8665, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8665, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -143165,7 +142871,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8671, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8665, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -143209,50 +142915,50 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8672, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8673, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8674, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8675, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8676, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8670, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8670, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8670, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8676, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8670, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8677, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8671, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8678, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8672, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8679, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8673, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -143264,7 +142970,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMARUBOZU_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8684, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMARUBOZU_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -143352,44 +143058,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8690, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8684, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8684, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8690, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8684, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8690, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8684, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8684, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8684, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8684, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8684, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -143398,7 +143104,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8690, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8684, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -143447,55 +143153,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8694, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8696, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8690, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8690, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8690, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8690, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8697, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8691, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8698, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8692, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8699, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8693, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -143509,13 +143215,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8707, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8708, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMARUBOZU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -143524,30 +143230,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8705, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8711, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8705, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8711, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8705, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8705, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -143631,53 +143337,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8707, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8707, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8707, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8707, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8707, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8707, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8707, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8714, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8708, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8708, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8708, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8708, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8707, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -143721,13 +143427,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8718, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8719, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -143797,53 +143503,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8721, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8715, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8715, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8721, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8715, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8721, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8715, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8715, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8715, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8715, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8721, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8715, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8722, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8716, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8716, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8716, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8716, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8721, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8715, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -143887,13 +143593,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8726, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8727, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -143955,13 +143661,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8734, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8735, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -144090,7 +143796,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8748, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -144103,10 +143809,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLMARUBOZU_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8749, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream))))) __PYX_ERR(3, 8749, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream))))) __PYX_ERR(3, 8743, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -144218,44 +143924,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8771, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8765, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8765, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8771, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8765, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8771, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 8765, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8765, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8765, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8765, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8771, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8765, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -144264,7 +143970,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8771, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8765, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -144308,50 +144014,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8775, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8776, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8770, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8770, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8777, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8771, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8778, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8772, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8779, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8773, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -144363,7 +144069,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMATCHINGLOW_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8784, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMATCHINGLOW_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -144451,44 +144157,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8790, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8784, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8784, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8790, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8784, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8790, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 8784, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8784, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8784, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8784, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8784, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -144497,7 +144203,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8790, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8784, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -144546,55 +144252,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8793, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8794, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8795, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8796, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8790, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8796, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8790, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8797, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8791, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8798, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8792, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8799, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8793, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -144608,13 +144314,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8807, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATCHINGLOW_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8802, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -144623,30 +144329,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8805, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8811, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8805, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8811, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8805, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8811, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8805, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -144730,53 +144436,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8813, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8807, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8807, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8813, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8807, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8813, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8807, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8807, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8807, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8807, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8807, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8814, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8808, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8808, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8808, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8808, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8807, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -144820,13 +144526,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8818, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8819, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -144896,53 +144602,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8821, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8815, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8815, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8821, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8815, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8821, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8815, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8815, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8815, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8815, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8821, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8815, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8822, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8816, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8816, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8816, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8816, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8821, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8815, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -144986,13 +144692,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8826, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8827, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -145054,13 +144760,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8834, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8835, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -145189,7 +144895,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8848, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -145202,10 +144908,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8849, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream))))) __PYX_ERR(3, 8849, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream))))) __PYX_ERR(3, 8843, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -145318,52 +145024,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8873, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8867, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8867, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8867, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8867, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8867, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8867, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8873, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8867, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8873, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8867, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8867, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8867, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8867, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8867, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8873, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8867, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -145373,14 +145079,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8873, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8867, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.5); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8873, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8867, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -145425,50 +145131,50 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8874, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8875, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8876, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8877, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8878, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8872, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8872, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8872, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8878, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8872, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8879, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8873, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8880, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8874, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8881, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8875, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -145480,7 +145186,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMATHOLD_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8886, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMATHOLD_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -145569,52 +145275,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8892, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8886, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8886, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8886, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8886, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8886, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8886, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8892, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8886, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8892, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8886, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8886, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8886, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8886, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8886, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8892, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8886, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -145624,14 +145330,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8893, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8887, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.5); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8892, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8886, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -145681,55 +145387,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8894, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8895, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8896, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8897, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8898, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8892, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8892, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8892, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8898, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8892, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8899, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8893, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8900, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8894, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8901, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8895, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -145743,13 +145449,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8909, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8910, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMATHOLD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -145758,30 +145464,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8913, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 8907, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 8907, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 8907, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8913, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 8907, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 8907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8913, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 8907, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8913, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 8907, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -145865,53 +145571,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8915, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8909, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8915, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 8909, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8915, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 8909, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8909, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8909, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8909, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8909, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8916, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8910, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8910, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8910, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8910, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8915, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8909, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -145955,13 +145661,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8921, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -146031,53 +145737,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8923, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8917, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8917, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8923, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 8917, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8923, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 8917, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8917, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8917, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8917, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8917, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8924, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8918, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8918, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8918, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8918, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8923, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 8917, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -146121,13 +145827,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8928, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8929, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -146189,13 +145895,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8936, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8937, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -146324,7 +146030,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8950, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -146337,10 +146043,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLMATHOLD_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8951, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream))))) __PYX_ERR(3, 8951, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream))))) __PYX_ERR(3, 8945, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -146453,52 +146159,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8975, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8969, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8975, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 8969, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8975, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 8969, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8969, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8969, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8969, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8975, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8969, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -146508,14 +146214,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8975, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8969, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8975, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8969, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -146560,50 +146266,50 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8976, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8977, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8978, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8980, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8974, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8974, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8974, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8980, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8974, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8975, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8982, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8976, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8983, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8977, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -146615,7 +146321,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8988, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -146704,52 +146410,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8994, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 8988, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8994, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 8988, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8994, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 8988, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 8988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 8988, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 8988, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 8988, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8994, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 8988, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -146759,14 +146465,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8995, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 8989, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8994, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 8988, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -146816,55 +146522,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8996, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8998, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8999, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9000, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 8994, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 8994, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 8994, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9000, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 8994, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9001, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 8995, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9002, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 8996, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9003, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 8997, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9005, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -146878,13 +146584,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9011, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -146893,30 +146599,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_4open_and_ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9015, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9009, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9009, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9009, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9015, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9009, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9015, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9009, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9015, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9009, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -147000,53 +146706,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9017, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9011, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9017, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9011, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9017, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9011, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9011, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9011, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9011, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9011, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9018, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9012, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9012, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9012, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9012, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9017, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9011, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -147090,13 +146796,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_6update(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9022, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9023, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -147166,53 +146872,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9025, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9019, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9019, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9019, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9019, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9019, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9025, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9019, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9025, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9019, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9019, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9019, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9019, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9019, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9026, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9020, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9020, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9020, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9020, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9025, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9019, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -147256,13 +146962,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_8peek(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9030, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9031, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -147324,13 +147030,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5value___g if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9038, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9039, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -147459,7 +147165,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9052, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -147472,10 +147178,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_10copy(str PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9053, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream))))) __PYX_ERR(3, 9053, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream))))) __PYX_ERR(3, 9047, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -147588,52 +147294,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9077, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9071, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9077, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9071, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 9077, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 9071, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9071, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9071, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9071, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9071, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -147643,14 +147349,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9077, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9071, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9077, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9071, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -147695,50 +147401,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9080, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9082, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9076, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9083, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9077, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9084, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9078, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9085, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9079, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -147750,7 +147456,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9090, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -147839,52 +147545,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9096, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9090, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9096, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9090, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 9096, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 9090, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 9090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9090, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9090, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9090, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9090, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -147894,14 +147600,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[2]; __pyx_v_close = values[3]; if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9097, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9091, __pyx_L3_error) } else { __pyx_v_penetration = ((double)0.3); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9096, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 9090, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -147951,55 +147657,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9098, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9102, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9096, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9096, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9096, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9096, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9103, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9097, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9104, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9098, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9105, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9099, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9107, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -148013,13 +147719,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9113, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9114, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLMORNINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -148028,30 +147734,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9117, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9111, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9111, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9111, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9117, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9111, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9117, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9111, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9111, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -148135,53 +147841,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9119, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9113, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9119, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9113, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9119, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9113, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9113, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9113, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9113, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9113, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9120, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9114, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9114, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9114, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9114, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9119, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9113, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -148225,13 +147931,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9124, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9125, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -148301,53 +148007,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9127, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9121, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9127, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9121, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9127, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9121, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9121, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9121, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9121, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9121, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9128, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9122, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9122, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9122, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9122, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9127, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9121, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -148391,13 +148097,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9132, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -148459,13 +148165,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9140, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9141, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -148594,7 +148300,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9154, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -148607,10 +148313,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9155, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream))))) __PYX_ERR(3, 9155, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream))))) __PYX_ERR(3, 9149, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -148722,44 +148428,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9177, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9171, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9177, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9171, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9177, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9171, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9171, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9171, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9171, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9171, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -148768,7 +148474,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9177, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9171, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -148812,50 +148518,50 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9182, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9176, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9183, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9177, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9184, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9178, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9185, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9179, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -148867,7 +148573,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLONNECK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9190, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLONNECK_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -148955,44 +148661,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9196, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9190, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9196, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9190, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9196, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9190, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9190, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9190, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9190, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9190, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -149001,7 +148707,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9196, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9190, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -149050,55 +148756,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9198, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9200, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9202, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9196, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9203, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9197, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9198, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9205, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9199, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -149112,13 +148818,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9213, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9214, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLONNECK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -149127,30 +148833,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9217, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9211, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9211, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9211, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9217, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9211, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9217, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9211, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9211, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -149234,53 +148940,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9219, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9213, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9219, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9213, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9219, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9213, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9213, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9213, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9213, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9213, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9220, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9214, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9214, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9214, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9214, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9219, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9213, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -149324,13 +149030,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9224, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9225, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -149400,53 +149106,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9227, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9221, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9227, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9221, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9227, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9221, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9221, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9221, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9221, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9221, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9228, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9222, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9222, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9222, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9222, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9227, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9221, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -149490,13 +149196,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9232, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9233, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -149558,13 +149264,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9240, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9241, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -149693,7 +149399,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9254, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -149706,10 +149412,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLONNECK_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9255, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream))))) __PYX_ERR(3, 9255, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream))))) __PYX_ERR(3, 9249, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -149821,44 +149527,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9277, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9271, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9277, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9271, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9277, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9271, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9271, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9271, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9271, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9271, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -149867,7 +149573,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9277, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9271, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -149911,50 +149617,50 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9278, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9282, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9276, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9276, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9276, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9276, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9283, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9277, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9284, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9278, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9285, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9279, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -149966,7 +149672,7 @@ static int __pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLPIERCING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9290, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLPIERCING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -150054,44 +149760,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9296, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9290, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9296, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9290, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9296, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9290, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9290, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9290, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9290, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9290, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -150100,7 +149806,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9290, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -150149,55 +149855,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9298, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9299, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9301, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9302, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9296, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9296, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9296, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9296, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9303, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9297, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9304, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9298, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9305, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9299, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -150211,13 +149917,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9313, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9314, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLPIERCING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -150226,30 +149932,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9317, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9311, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9311, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9311, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9317, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9311, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9317, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9311, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9311, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -150333,53 +150039,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9319, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9313, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9319, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9313, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9319, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9313, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9313, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9313, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9313, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9313, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9320, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9314, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9314, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9314, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9314, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9319, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9313, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -150423,13 +150129,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9324, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9325, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -150499,53 +150205,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9327, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9321, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9327, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9321, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9327, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9321, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9321, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9321, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9321, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9321, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9328, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9322, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9322, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9322, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9322, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9327, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9321, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -150589,13 +150295,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9332, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9333, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -150657,13 +150363,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9340, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9341, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -150792,7 +150498,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9354, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -150805,10 +150511,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18CDLPIERCING_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9355, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream))))) __PYX_ERR(3, 9355, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream))))) __PYX_ERR(3, 9349, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -150920,44 +150626,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9377, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9371, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9377, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9371, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9377, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9371, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9371, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9371, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9371, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9371, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -150966,7 +150672,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9377, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9371, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -151010,50 +150716,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9378, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9379, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9381, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9382, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9376, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9376, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9376, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9376, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9383, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9377, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9384, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9378, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9385, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9379, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -151065,7 +150771,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLRICKSHAWMAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9390, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLRICKSHAWMAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -151153,44 +150859,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9396, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9390, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9396, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9390, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9396, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9390, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9390, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9390, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9390, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9390, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -151199,7 +150905,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9396, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9390, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -151248,55 +150954,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9398, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9399, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9402, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9396, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9403, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9397, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9404, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9398, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9405, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9399, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9407, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -151310,13 +151016,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9413, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9414, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -151325,30 +151031,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9417, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9411, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9411, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9411, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9417, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9411, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9417, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9411, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9411, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -151432,53 +151138,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9419, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9413, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9419, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9413, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9419, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9413, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9413, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9413, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9413, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9413, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9420, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9414, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9414, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9414, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9414, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9419, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9413, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -151522,13 +151228,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9424, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9425, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -151598,53 +151304,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9427, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9421, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9427, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9421, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9427, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9421, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9421, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9421, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9421, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9421, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9428, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9422, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9422, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9422, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9422, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9427, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9421, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -151688,13 +151394,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9432, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9433, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -151756,13 +151462,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9440, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9441, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -151891,7 +151597,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9454, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -151904,10 +151610,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9455, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream))))) __PYX_ERR(3, 9455, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream))))) __PYX_ERR(3, 9449, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -152019,44 +151725,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9477, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9471, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9477, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9471, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9477, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9471, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9471, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9471, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9471, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9471, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -152065,7 +151771,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9471, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -152109,50 +151815,50 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9478, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9479, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9480, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9481, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9482, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9476, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9476, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9476, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9476, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9483, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9477, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9484, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9478, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9485, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9479, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -152164,7 +151870,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLRISEFALL3METHODS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9490, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLRISEFALL3METHODS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -152252,44 +151958,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9496, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9490, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9496, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9490, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9496, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9490, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9490, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9490, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9490, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9490, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -152298,7 +152004,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9496, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9490, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -152347,55 +152053,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9502, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9496, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9503, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9497, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9504, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9498, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9505, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9499, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9507, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -152409,13 +152115,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9513, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9514, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -152424,30 +152130,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_4open_and __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9517, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9511, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9511, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9511, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9517, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9511, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9517, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9511, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9511, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -152531,53 +152237,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9519, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9513, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9519, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9513, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9519, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9513, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9513, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9513, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9513, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9513, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9520, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9514, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9514, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9514, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9514, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9519, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9513, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -152621,13 +152327,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_6update(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9524, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9525, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -152697,53 +152403,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9527, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9521, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9527, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9521, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9527, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9521, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9521, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9521, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9521, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9521, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9528, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9522, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9522, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9522, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9522, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9527, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9521, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -152787,13 +152493,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_8peek(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9532, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9533, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -152855,13 +152561,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5value___ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9540, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9541, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -152990,7 +152696,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9554, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -153003,10 +152709,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_10copy(st PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9555, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream))))) __PYX_ERR(3, 9555, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream))))) __PYX_ERR(3, 9549, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -153118,44 +152824,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9577, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9571, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9577, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9571, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9577, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9571, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9571, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9571, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9571, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9571, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -153164,7 +152870,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9577, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9571, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -153208,50 +152914,50 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9578, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9579, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9580, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9581, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9582, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9576, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9576, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9576, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9576, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9583, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9577, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9584, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9578, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9585, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9579, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -153263,7 +152969,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSEPARATINGLINES_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9590, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSEPARATINGLINES_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -153351,44 +153057,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9596, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9590, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9596, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9590, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9596, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9590, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9590, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9590, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9590, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9590, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -153397,7 +153103,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9596, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9590, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -153446,55 +153152,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9598, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9599, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9602, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9596, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9603, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9597, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9604, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9598, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9599, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9607, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -153508,13 +153214,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9613, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -153523,30 +153229,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_4open_and_ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9617, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9611, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9611, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9611, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9617, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9611, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9617, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9611, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9611, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -153630,53 +153336,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9619, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9613, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9619, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9613, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9619, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9613, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9613, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9613, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9613, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9613, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9620, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9614, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9614, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9614, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9614, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9619, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9613, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -153720,13 +153426,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_6update(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9624, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9625, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -153796,53 +153502,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9627, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9621, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9627, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9621, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9627, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9621, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9621, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9621, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9621, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9621, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9628, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9622, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9622, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9622, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9622, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9627, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9621, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -153886,13 +153592,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_8peek(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9632, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9633, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -153954,13 +153660,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5value___g if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9640, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9641, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -154089,7 +153795,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9654, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -154102,10 +153808,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_10copy(str PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9655, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream))))) __PYX_ERR(3, 9655, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream))))) __PYX_ERR(3, 9649, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -154217,44 +153923,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9671, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9677, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9671, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9677, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9671, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9671, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9671, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9671, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9671, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -154263,7 +153969,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9671, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -154307,50 +154013,50 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9678, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9679, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9680, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9681, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9682, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9676, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9676, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9676, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9676, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9683, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9677, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9684, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9678, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9679, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -154362,7 +154068,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSHOOTINGSTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9690, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSHOOTINGSTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -154450,44 +154156,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9696, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9690, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9696, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9690, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9696, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9690, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9690, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9690, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9690, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9690, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -154496,7 +154202,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9696, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9690, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -154545,55 +154251,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9698, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9702, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9696, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9696, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9696, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9696, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9703, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9697, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9704, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9698, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9705, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9699, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9707, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -154607,13 +154313,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9713, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9714, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -154622,30 +154328,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_4open_and_fil __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9717, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9711, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9711, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9711, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9717, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9711, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9717, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9711, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9711, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -154729,53 +154435,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9719, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9719, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9719, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9713, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9713, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9713, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9713, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9713, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9720, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9714, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9714, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9714, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9714, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9719, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -154819,13 +154525,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_6update(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9724, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9725, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -154895,53 +154601,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9727, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9721, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9727, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9721, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9727, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9721, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9721, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9721, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9721, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9721, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9728, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9722, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9722, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9722, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9722, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9727, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9721, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -154985,13 +154691,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9732, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9733, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -155053,13 +154759,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5value___get_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9740, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9741, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -155188,7 +154894,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9754, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -155201,10 +154907,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9755, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream))))) __PYX_ERR(3, 9755, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream))))) __PYX_ERR(3, 9749, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -155316,44 +155022,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9777, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9771, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9777, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9771, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9777, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9771, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9771, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9771, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9771, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9771, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -155362,7 +155068,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9777, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9771, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -155406,50 +155112,50 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9778, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9779, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9780, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9781, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9782, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9776, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9776, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9776, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9776, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9783, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9777, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9784, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9778, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9785, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9779, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -155461,7 +155167,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSHORTLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9790, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSHORTLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -155549,44 +155255,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9796, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9790, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9796, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9790, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9796, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9790, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9790, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9790, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9790, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9790, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -155595,7 +155301,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9796, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9790, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -155644,55 +155350,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9798, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9799, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9800, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9802, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9796, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9796, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9796, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9796, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9803, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9797, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9804, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9798, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9805, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9799, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9807, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -155706,13 +155412,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9813, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9814, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSHORTLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -155721,30 +155427,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_4open_and_fill(P __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9817, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9817, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9817, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9811, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -155828,53 +155534,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9819, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9813, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9819, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9813, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9819, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9813, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9813, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9813, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9813, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9813, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9820, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9814, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9814, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9814, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9819, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9813, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -155918,13 +155624,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_6update(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9824, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9825, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -155994,53 +155700,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9827, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9821, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9827, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9821, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9827, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9821, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9821, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9821, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9821, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9821, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9828, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9822, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9822, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9822, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9822, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9827, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9821, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -156084,13 +155790,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_8peek(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9832, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9833, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -156152,13 +155858,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5value___get__(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9840, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9841, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -156287,7 +155993,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9854, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -156300,10 +156006,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLSHORTLINE_Stream_10copy(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9855, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream))))) __PYX_ERR(3, 9855, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream))))) __PYX_ERR(3, 9849, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -156415,44 +156121,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9877, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9871, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9877, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9871, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9877, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9871, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9871, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9871, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9871, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9871, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -156461,7 +156167,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9877, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9871, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -156505,50 +156211,50 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9878, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9879, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9880, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9881, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9882, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9876, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9876, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9876, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9882, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9876, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9883, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9877, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9884, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9878, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9885, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9879, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -156560,7 +156266,7 @@ static int __pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_2__init__(struct __p if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSPINNINGTOP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9890, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSPINNINGTOP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -156648,44 +156354,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9896, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9890, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9890, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9896, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9890, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9896, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9890, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9890, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9890, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9890, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9896, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9890, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -156694,7 +156400,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9896, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9890, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -156743,55 +156449,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9898, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9900, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9901, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9902, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9896, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9896, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9896, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9902, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9896, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9903, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9897, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9904, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9898, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9905, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9899, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9907, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -156805,13 +156511,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9913, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9914, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSPINNINGTOP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -156820,30 +156526,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_4open_and_fill __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9917, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 9911, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 9911, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 9911, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9917, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 9911, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 9911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9917, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 9911, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9917, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 9911, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -156927,53 +156633,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9919, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9913, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9919, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 9913, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9919, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 9913, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9913, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9913, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9913, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9919, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9913, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9920, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9914, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9914, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9914, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9914, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9919, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9913, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -157017,13 +156723,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_6update(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9924, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9925, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -157093,53 +156799,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9927, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9921, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9927, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 9921, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9927, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 9921, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9921, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9921, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9921, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9927, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9921, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9928, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9922, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9922, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9922, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 9922, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9927, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9921, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -157183,13 +156889,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_8peek(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9932, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9933, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -157251,13 +156957,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5value___get__ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9940, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9941, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -157386,7 +157092,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9954, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -157399,10 +157105,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9955, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream))))) __PYX_ERR(3, 9955, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream))))) __PYX_ERR(3, 9949, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -157514,44 +157220,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9977, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9971, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9977, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 9971, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9977, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 9971, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9971, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9971, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9971, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9971, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -157560,7 +157266,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9977, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9971, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -157604,50 +157310,50 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9978, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9980, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9982, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9976, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9976, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9976, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9982, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9976, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9983, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9977, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9984, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9978, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9985, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9979, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -157659,7 +157365,7 @@ static int __pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSTALLEDPATTERN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9990, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSTALLEDPATTERN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -157747,44 +157453,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9996, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 9990, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9990, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9990, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9990, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9990, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9996, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 9990, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9996, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 9990, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 9990, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 9990, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 9990, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9996, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 9990, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -157793,7 +157499,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9996, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 9990, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -157842,55 +157548,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9998, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9999, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10000, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10001, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10002, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 9996, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 9996, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 9996, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10002, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 9996, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10003, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 9997, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10004, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 9998, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10005, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 9999, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10007, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -157904,13 +157610,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10013, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10014, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -157919,30 +157625,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_4open_and_f __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10017, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10011, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10011, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10011, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10017, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10011, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10017, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10011, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10017, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10011, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -158026,53 +157732,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10019, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10013, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10013, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10013, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10013, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10013, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10019, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10013, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10019, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10013, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10013, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10013, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10013, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10019, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10013, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10020, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10014, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10014, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10014, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10014, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10019, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10013, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -158116,13 +157822,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_6update(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10024, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10025, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -158192,53 +157898,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10027, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10021, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10027, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10021, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10027, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10021, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10021, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10021, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10021, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10027, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10021, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10028, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10022, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10022, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10022, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10022, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10027, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10021, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -158282,13 +157988,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_8peek(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10032, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10033, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -158350,13 +158056,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5value___ge if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10040, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10041, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -158485,7 +158191,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10054, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -158498,10 +158204,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_10copy(stru PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10055, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream))))) __PYX_ERR(3, 10055, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream))))) __PYX_ERR(3, 10049, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -158613,44 +158319,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10077, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10071, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10071, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10077, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10071, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10077, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10071, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10071, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10071, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10071, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10071, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -158659,7 +158365,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10077, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10071, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -158703,50 +158409,50 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10080, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10082, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10076, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10076, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10083, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10077, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10084, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10078, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10085, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10079, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -158758,7 +158464,7 @@ static int __pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_2__init__(struct _ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSTICKSANDWICH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10090, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLSTICKSANDWICH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -158846,44 +158552,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10096, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10090, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10096, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10090, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10096, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10090, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10090, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10090, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10090, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10096, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10090, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -158892,7 +158598,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10096, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10090, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -158941,55 +158647,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10098, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10102, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10096, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10096, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10096, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10102, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10096, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10103, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10097, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10104, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10098, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10105, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10099, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10107, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -159003,13 +158709,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10113, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10114, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -159018,30 +158724,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_4open_and_fi __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10117, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10111, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10111, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10111, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10117, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10111, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10117, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10111, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10111, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -159125,53 +158831,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10119, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10113, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10119, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10113, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10119, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10113, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10113, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10113, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10113, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10113, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10120, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10114, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10114, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10114, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10114, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10119, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10113, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -159215,13 +158921,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_6update(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10124, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10125, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -159291,53 +158997,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10127, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10121, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10121, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10127, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10121, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10127, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10121, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10121, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10121, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10121, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10127, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10121, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10128, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10122, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10122, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10122, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10122, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10127, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10121, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -159381,13 +159087,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10132, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10133, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -159449,13 +159155,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5value___get if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10140, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10141, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -159584,7 +159290,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10154, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -159597,10 +159303,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_10copy(struc PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10155, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream))))) __PYX_ERR(3, 10155, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream))))) __PYX_ERR(3, 10149, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -159712,44 +159418,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10177, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10171, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10171, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10177, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10171, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10177, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10171, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10171, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10171, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10171, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10177, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10171, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -159758,7 +159464,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10177, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10171, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -159802,50 +159508,50 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10182, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10176, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10183, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10177, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10184, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10178, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10185, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10179, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -159857,7 +159563,7 @@ static int __pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTAKURI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10190, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTAKURI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -159945,44 +159651,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10196, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10190, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10196, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10190, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10196, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10190, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10190, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10190, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10190, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10190, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -159991,7 +159697,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10196, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10190, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -160040,55 +159746,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10198, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10200, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10202, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10196, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10202, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10196, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10203, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10197, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10198, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10205, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10199, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -160102,13 +159808,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10213, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10214, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTAKURI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -160117,30 +159823,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10217, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10211, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10211, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10211, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10217, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10211, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10217, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10211, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10217, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10211, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -160224,53 +159930,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10219, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10213, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10219, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10213, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10219, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10213, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10213, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10213, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10213, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10213, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10220, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10214, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10214, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10214, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10214, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10219, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10213, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -160314,13 +160020,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10224, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10225, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -160390,53 +160096,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10227, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10221, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10221, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10227, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10221, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10227, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10221, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10221, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10221, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10221, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10227, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10221, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10228, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10222, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10222, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10222, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10222, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10227, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10221, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -160480,13 +160186,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10232, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10233, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -160548,13 +160254,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10240, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10241, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -160683,7 +160389,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10254, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -160696,10 +160402,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16CDLTAKURI_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10255, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream))))) __PYX_ERR(3, 10255, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream))))) __PYX_ERR(3, 10249, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -160811,44 +160517,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10277, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10271, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10277, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10271, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10277, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10271, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10271, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10271, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10271, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10271, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -160857,7 +160563,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10277, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10271, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -160901,50 +160607,50 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10278, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10282, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10276, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10276, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10276, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10276, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10283, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10277, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10284, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10278, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10285, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10279, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -160956,7 +160662,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTASUKIGAP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10290, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTASUKIGAP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -161044,44 +160750,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10296, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10290, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10290, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10296, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10290, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10296, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10290, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10290, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10290, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10290, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10290, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -161090,7 +160796,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10290, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -161139,55 +160845,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10298, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10299, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10301, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10302, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10296, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10296, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10296, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10302, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10296, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10303, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10297, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10304, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10298, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10305, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10299, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -161201,13 +160907,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10313, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10314, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTASUKIGAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -161216,30 +160922,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_4open_and_fill(P __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10317, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10311, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10311, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10311, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10317, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10311, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10317, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10311, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10317, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10311, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -161323,53 +161029,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10319, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10313, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10313, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10319, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10313, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10319, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10313, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10313, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10313, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10313, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10313, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10320, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10314, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10314, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10314, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10314, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10319, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10313, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -161413,13 +161119,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_6update(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10324, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10325, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -161489,53 +161195,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10327, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10321, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10321, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10327, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10321, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10327, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10321, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10321, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10321, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10321, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10321, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10328, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10322, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10322, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10322, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10322, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10327, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10321, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -161579,13 +161285,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_8peek(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10332, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10333, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -161647,13 +161353,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5value___get__(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10340, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10341, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -161782,7 +161488,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10354, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -161795,10 +161501,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_10copy(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10355, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream))))) __PYX_ERR(3, 10355, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream))))) __PYX_ERR(3, 10349, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -161910,44 +161616,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10377, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10371, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10377, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10371, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10377, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10371, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10371, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10371, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10371, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10377, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10371, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -161956,7 +161662,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10377, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10371, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -162000,50 +161706,50 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10378, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10379, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10381, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10382, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10376, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10376, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10376, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10376, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10383, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10377, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10384, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10378, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10385, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10379, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -162055,7 +161761,7 @@ static int __pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTHRUSTING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10390, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTHRUSTING_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -162143,44 +161849,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10396, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10390, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10396, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10390, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10396, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10390, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10390, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10390, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10390, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10396, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10390, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -162189,7 +161895,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10396, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10390, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -162238,55 +161944,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10398, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10399, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10402, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10396, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10396, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10403, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10397, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10404, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10398, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10405, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10399, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10407, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -162300,13 +162006,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10413, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10414, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTHRUSTING_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -162315,30 +162021,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_4open_and_fill(P __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10417, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10411, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10411, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10411, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10417, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10411, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10417, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10411, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10411, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -162422,53 +162128,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10419, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10413, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10419, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10413, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10419, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10413, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10413, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10413, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10413, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10413, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10420, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10414, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10414, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10414, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10414, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10419, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10413, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -162512,13 +162218,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_6update(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10424, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10425, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -162588,53 +162294,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10427, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10421, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10421, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10427, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10421, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10427, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10421, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10421, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10421, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10421, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10427, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10421, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10428, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10422, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10422, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10422, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10422, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10427, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10421, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -162678,13 +162384,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_8peek(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10432, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10433, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -162746,13 +162452,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5value___get__(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10440, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10441, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -162881,7 +162587,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10454, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -162894,10 +162600,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19CDLTHRUSTING_Stream_10copy(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10455, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream))))) __PYX_ERR(3, 10455, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream))))) __PYX_ERR(3, 10449, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -163009,44 +162715,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10477, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10471, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10477, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10471, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10477, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10471, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10471, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10471, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10471, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10471, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -163055,7 +162761,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10471, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -163099,50 +162805,50 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10478, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10479, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10480, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10481, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10482, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10476, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10476, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10476, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10482, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10476, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10483, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10477, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10484, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10478, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10485, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10479, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -163154,7 +162860,7 @@ static int __pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTRISTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10490, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLTRISTAR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -163242,44 +162948,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10496, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10490, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10490, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10496, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10490, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10496, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10490, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10490, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10490, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10490, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10490, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -163288,7 +162994,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10496, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10490, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -163337,55 +163043,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10502, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10496, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10496, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10496, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10502, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10496, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10503, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10497, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10504, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10498, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10505, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10499, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10507, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -163399,13 +163105,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10513, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10514, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLTRISTAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -163414,30 +163120,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10517, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10511, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10511, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10511, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10517, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10511, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10517, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10511, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10517, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10511, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -163521,53 +163227,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10519, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10513, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10513, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10519, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10513, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10519, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10513, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10513, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10513, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10513, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10513, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10520, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10514, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10514, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10514, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10514, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10519, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10513, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -163611,13 +163317,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10524, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10525, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -163687,53 +163393,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10527, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10521, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10527, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10521, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10527, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10521, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10521, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10521, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10521, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10527, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10521, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10528, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10522, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10522, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10522, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10522, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10527, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10521, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -163777,13 +163483,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10532, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10533, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -163845,13 +163551,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10540, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10541, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -163980,7 +163686,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10554, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -163993,10 +163699,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17CDLTRISTAR_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10555, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream))))) __PYX_ERR(3, 10555, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream))))) __PYX_ERR(3, 10549, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -164108,44 +163814,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10577, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10571, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10577, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10571, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10577, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10571, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10571, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10571, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10571, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10571, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -164154,7 +163860,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10577, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10571, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -164198,50 +163904,50 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10578, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10579, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10580, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10581, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10582, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10576, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10576, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10576, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10576, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10583, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10577, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10584, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10578, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10585, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10579, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -164253,7 +163959,7 @@ static int __pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLUNIQUE3RIVER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10590, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLUNIQUE3RIVER_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -164341,44 +164047,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10596, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10590, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10590, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10596, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10590, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10596, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10590, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10590, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10590, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10590, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10596, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10590, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -164387,7 +164093,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10596, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10590, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -164436,55 +164142,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10598, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10599, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10600, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10602, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10596, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10596, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10603, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10597, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10604, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10598, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10599, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10607, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -164498,13 +164204,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10613, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -164513,30 +164219,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_4open_and_fil __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10617, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10611, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10611, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10611, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10617, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10611, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10617, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10611, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10611, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -164620,53 +164326,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10619, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10613, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10619, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10613, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10619, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10613, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10613, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10613, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10613, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10613, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10620, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10614, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10614, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10614, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10614, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10619, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10613, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -164710,13 +164416,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_6update(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10624, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10625, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -164786,53 +164492,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10627, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10621, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10621, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10627, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10621, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10627, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10621, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10621, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10621, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10621, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10621, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10628, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10622, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10622, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10622, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10622, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10627, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10621, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -164876,13 +164582,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10632, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10633, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -164944,13 +164650,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5value___get_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10640, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10641, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -165079,7 +164785,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10654, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -165092,10 +164798,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10655, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream))))) __PYX_ERR(3, 10655, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream))))) __PYX_ERR(3, 10649, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -165207,44 +164913,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10677, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10671, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10677, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10671, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10677, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10671, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10671, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10671, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10671, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10677, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10671, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -165253,7 +164959,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10677, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10671, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -165297,50 +165003,50 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10678, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10679, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10680, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10681, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10682, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10676, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10676, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10676, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10676, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10683, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10677, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10684, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10678, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10685, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10679, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -165352,7 +165058,7 @@ static int __pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_2__init__(struct if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLUPSIDEGAP2CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10690, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLUPSIDEGAP2CROWS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -165440,44 +165146,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10696, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10690, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10690, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10696, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10690, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10696, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10690, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10690, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10690, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10690, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10696, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10690, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -165486,7 +165192,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10696, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10690, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -165535,55 +165241,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10698, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10702, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10696, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10696, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10696, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10696, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10703, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10697, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10704, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10698, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10705, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10699, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10707, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -165597,13 +165303,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10713, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10714, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -165612,30 +165318,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_4open_and_ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10717, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10711, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10711, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10711, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10717, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10711, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10717, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10711, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10717, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10711, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -165719,53 +165425,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10719, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10719, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10719, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10713, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10713, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10713, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10713, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10719, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10713, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10720, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10714, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10714, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10714, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10714, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10719, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -165809,13 +165515,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_6update(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10724, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10725, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -165885,53 +165591,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10727, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10721, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10721, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10727, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10721, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10727, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10721, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10721, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10721, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10721, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10721, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10728, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10722, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10722, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10722, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10722, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10727, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10721, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -165975,13 +165681,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_8peek(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10732, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10733, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -166043,13 +165749,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5value___g if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10740, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10741, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -166178,7 +165884,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10754, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -166191,10 +165897,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_10copy(str PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10755, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream))))) __PYX_ERR(3, 10755, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream))))) __PYX_ERR(3, 10749, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -166306,44 +166012,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10777, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10771, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10777, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10771, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10777, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 10771, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10771, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10771, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10771, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10771, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -166352,7 +166058,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10777, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10771, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -166396,50 +166102,50 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10778, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10779, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10780, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10781, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10782, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10776, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10776, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10776, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10776, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10783, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10777, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10784, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10778, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10785, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10779, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -166451,7 +166157,7 @@ static int __pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLXSIDEGAP3METHODS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10790, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CDLXSIDEGAP3METHODS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -166539,44 +166245,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10796, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10790, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10796, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10790, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10796, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 10790, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10790, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10790, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10790, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10796, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10790, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -166585,7 +166291,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10796, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10790, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -166634,55 +166340,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10798, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10799, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10800, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10802, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 10796, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10796, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10796, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10796, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10803, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10797, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10804, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10798, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10805, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10799, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10807, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -166696,13 +166402,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10813, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10814, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -166711,30 +166417,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_4open_and __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10817, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 10811, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 10811, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 10811, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10817, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 10811, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10817, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10811, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10817, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10811, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -166818,53 +166524,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10819, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10813, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10819, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10813, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10819, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 10813, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10813, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10813, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10813, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10813, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10820, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10814, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10814, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10814, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10814, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10819, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10813, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -166908,13 +166614,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_6update(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10824, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10825, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -166984,53 +166690,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10827, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10821, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10821, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10827, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10821, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10827, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 10821, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10821, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10821, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10821, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10821, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10828, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10822, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10822, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10822, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10822, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10827, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 10821, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -167074,13 +166780,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_8peek(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10832, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10833, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -167142,13 +166848,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5value___ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10840, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10841, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -167277,7 +166983,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10854, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -167290,10 +166996,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_10copy(st PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10855, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream))))) __PYX_ERR(3, 10855, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream))))) __PYX_ERR(3, 10849, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -167402,32 +167108,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10877, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10871, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10877, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10871, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 10877, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 10871, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10877, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10871, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10877, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10871, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -167468,26 +167174,26 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10878, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10879, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 10879, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 10873, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10880, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10874, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10881, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10875, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10882, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10876, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -167499,7 +167205,7 @@ static int __pyx_pf_5talib_7_ta_lib_11CEIL_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CEIL_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10887, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CEIL_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -167581,32 +167287,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10893, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10887, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10893, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10893, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10887, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 10893, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 10887, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10893, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10887, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10893, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10887, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -167652,31 +167358,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10895, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10896, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 10896, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 10890, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10897, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10891, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10898, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10892, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10899, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10893, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10901, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -167690,13 +167396,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10907, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CEIL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10908, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CEIL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -167705,21 +167411,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 10911, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10911, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 10905, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 10905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10911, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 10905, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10911, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 10905, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -167797,32 +167503,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10913, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 10907, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 10913, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 10907, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10907, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10914, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10908, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -167863,13 +167569,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10918, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10919, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -167936,32 +167642,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10921, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10915, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10921, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 10915, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 10921, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 10915, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10915, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10922, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 10916, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10921, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 10915, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -168002,13 +167708,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10926, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10927, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -168070,13 +167776,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10934, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10935, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -168205,7 +167911,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10948, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -168218,10 +167924,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CEIL_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10949, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream))))) __PYX_ERR(3, 10949, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream))))) __PYX_ERR(3, 10943, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -168334,52 +168040,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10973, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10967, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10973, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 10967, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 10973, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 10967, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10967, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10967, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10967, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10973, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10967, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -168389,14 +168095,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[2]; __pyx_v_volume = values[3]; if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 10973, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 10967, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 10973, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 10967, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -168441,50 +168147,50 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10974, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10975, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10976, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10977, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10978, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10972, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10972, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10972, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 10978, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 10972, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10979, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10973, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10980, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10974, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10981, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10975, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -168496,7 +168202,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CMF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10986, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -168585,52 +168291,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10992, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 10986, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10986, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10986, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10986, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10986, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10986, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10992, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 10986, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 10992, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 10986, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 10986, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 10986, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 10986, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 10986, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10992, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 10986, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -168640,14 +168346,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[2]; __pyx_v_volume = values[3]; if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 10993, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 10987, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 10992, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 10986, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -168697,55 +168403,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10994, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10996, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10997, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10998, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 10992, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 10992, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 10992, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 10998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 10992, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10999, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 10993, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11000, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 10994, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11001, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 10995, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11003, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -168759,13 +168465,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11009, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11010, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -168774,30 +168480,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11013, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 11007, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 11007, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 11007, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11013, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 11007, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11013, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11007, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11013, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11007, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -168881,53 +168587,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11015, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11009, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11009, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11015, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11009, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11015, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 11009, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11009, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11009, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11009, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11015, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11009, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11016, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11010, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11010, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11010, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11010, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11015, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11009, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -168971,13 +168677,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11020, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11021, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -169047,53 +168753,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11023, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11017, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11017, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11023, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11017, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11023, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 11017, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11017, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11017, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11017, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11017, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11024, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11018, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11018, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11018, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11018, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11023, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 11017, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -169137,13 +168843,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11028, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11029, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -169205,13 +168911,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11036, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11037, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -169340,7 +169046,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11050, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -169353,10 +169059,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMF_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11051, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream))))) __PYX_ERR(3, 11051, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream))))) __PYX_ERR(3, 11045, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMF_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -169466,48 +169172,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11075, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11069, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11075, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11069, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11075, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11069, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11075, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11069, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11075, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11069, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11075, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11069, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -169549,26 +169255,26 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11077, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11077, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11071, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11078, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11072, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11079, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11073, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11080, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11074, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -169580,7 +169286,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CMO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMO_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11085, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMO_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -169663,48 +169369,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11091, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11085, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11091, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11091, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11091, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11085, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11091, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11085, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11091, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11091, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11085, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11092, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11086, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11091, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11085, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -169751,31 +169457,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11093, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11094, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11094, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11088, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11095, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11089, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11096, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11090, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11097, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11091, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -169789,13 +169495,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11105, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11106, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -169804,21 +169510,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11109, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11109, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11109, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11103, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11109, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11109, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11103, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11109, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11103, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -169896,32 +169602,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11111, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11105, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11105, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11111, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11105, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11111, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11105, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11111, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11105, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11112, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11106, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11111, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11105, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -169962,13 +169668,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11116, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11117, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -170035,32 +169741,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11119, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11113, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11119, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11113, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11119, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11113, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11119, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11113, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11120, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11114, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11119, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11113, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -170101,13 +169807,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11124, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11125, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -170169,13 +169875,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11132, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11133, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -170304,7 +170010,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11146, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -170317,10 +170023,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CMO_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11147, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream))))) __PYX_ERR(3, 11147, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream))))) __PYX_ERR(3, 11141, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMO_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -170430,48 +170136,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11165, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11171, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11165, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11171, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11165, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11165, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11171, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11165, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11165, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -170513,26 +170219,26 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11173, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11167, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11174, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11168, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11175, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11169, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11176, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11170, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -170544,7 +170250,7 @@ static int __pyx_pf_5talib_7_ta_lib_11CMOU_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMOU_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11181, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CMOU_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -170627,48 +170333,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11187, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11181, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11181, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11181, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11187, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11181, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11187, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11181, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11181, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11181, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11188, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11182, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11181, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -170715,31 +170421,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11189, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11190, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11190, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11184, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11191, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11185, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11192, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11186, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11193, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11187, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11195, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -170753,13 +170459,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11201, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CMOU_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11202, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CMOU_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -170768,21 +170474,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11205, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11205, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11205, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11199, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11205, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11205, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11199, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11205, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11199, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -170860,32 +170566,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11207, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11201, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11201, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11207, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11201, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11207, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11201, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11207, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11201, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11208, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11202, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11207, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11201, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -170926,13 +170632,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11212, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11213, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -170999,32 +170705,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11215, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11209, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11209, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11215, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11209, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11215, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11209, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11209, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11216, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11210, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11215, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11209, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -171065,13 +170771,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11220, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11221, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -171133,13 +170839,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11228, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11229, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -171268,7 +170974,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11242, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -171281,10 +170987,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11CMOU_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11243, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream))))) __PYX_ERR(3, 11243, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream))))) __PYX_ERR(3, 11237, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -171396,74 +171102,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11269, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11263, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11269, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11263, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 11269, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 11263, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11263, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11263, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11269, __pyx_L3_error) + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11263, __pyx_L3_error) } else { __pyx_v_wmaperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11269, __pyx_L3_error) + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11263, __pyx_L3_error) } else { __pyx_v_roc1period = ((int)-2147483648); } if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11269, __pyx_L3_error) + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11263, __pyx_L3_error) } else { __pyx_v_roc2period = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 11269, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 11263, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -171507,26 +171213,26 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11270, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11271, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11271, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11265, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11272, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11266, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11273, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11267, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11274, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11268, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -171538,7 +171244,7 @@ static int __pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11279, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -171623,74 +171329,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11285, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11279, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11279, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11279, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11279, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11279, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11285, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11279, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 11285, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 11279, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11279, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11279, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11279, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11285, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11279, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11286, __pyx_L3_error) + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11280, __pyx_L3_error) } else { __pyx_v_wmaperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11286, __pyx_L3_error) + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11280, __pyx_L3_error) } else { __pyx_v_roc1period = ((int)-2147483648); } if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11286, __pyx_L3_error) + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11280, __pyx_L3_error) } else { __pyx_v_roc2period = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 11285, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 11279, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -171739,31 +171445,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11287, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11288, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11288, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11282, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11289, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11283, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11290, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11284, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11291, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11285, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11293, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -171777,13 +171483,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11299, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COPPOCK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -171792,21 +171498,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11303, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11303, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11303, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11297, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11303, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11303, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11297, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11303, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11297, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -171884,32 +171590,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11305, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11299, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11299, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11305, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11299, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11305, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11299, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11305, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11299, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11306, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11300, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11305, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11299, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -171950,13 +171656,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11311, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -172023,32 +171729,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11313, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11307, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11313, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11307, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11313, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11307, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11307, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11314, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11308, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11313, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11307, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -172089,13 +171795,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11318, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11319, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -172157,13 +171863,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11326, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11327, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -172292,7 +171998,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11340, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -172305,10 +172011,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14COPPOCK_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11341, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream))))) __PYX_ERR(3, 11341, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream))))) __PYX_ERR(3, 11335, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -172419,40 +172125,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11366, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11360, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11366, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11360, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 11366, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 11360, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11360, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11360, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11366, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11360, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -172460,14 +172166,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11366, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11360, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 11366, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 11360, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -172510,34 +172216,34 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11367, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11368, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11369, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11369, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11363, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11369, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11363, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11370, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11364, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11371, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11365, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11372, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11366, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -172549,7 +172255,7 @@ static int __pyx_pf_5talib_7_ta_lib_13CORREL_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CORREL_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11377, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CORREL_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -172634,40 +172340,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11383, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11377, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11383, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11377, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 11383, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 11377, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11377, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11377, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -172675,14 +172381,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11384, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11378, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 11383, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 11377, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -172730,39 +172436,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11385, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11386, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11387, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11387, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11381, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11387, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11381, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11388, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11382, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11389, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11383, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11390, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11384, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11392, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -172776,13 +172482,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11398, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CORREL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11399, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CORREL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -172791,24 +172497,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11402, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real0); __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 11396, __pyx_L1_error); __Pyx_INCREF(__pyx_v_real1); __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11402, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 11396, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11402, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11396, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11402, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11396, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -172888,39 +172594,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11404, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11398, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11398, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11404, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11398, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11404, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11398, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11398, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11404, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11398, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11405, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11405, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11399, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11399, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11404, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11398, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -172962,13 +172668,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11409, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11410, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -173036,39 +172742,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11412, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11406, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11412, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11406, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11412, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11406, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11406, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11412, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11406, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11413, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11413, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11407, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11407, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11412, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11406, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -173110,13 +172816,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11417, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11418, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -173178,13 +172884,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11425, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11426, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -173313,7 +173019,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11439, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -173326,10 +173032,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CORREL_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11440, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream))))) __PYX_ERR(3, 11440, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream))))) __PYX_ERR(3, 11434, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -173438,32 +173144,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11462, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11456, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11462, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11456, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11462, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11456, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11456, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11462, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11456, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -173504,26 +173210,26 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11463, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11464, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11464, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11458, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11465, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11459, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11466, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11460, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11467, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11461, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -173535,7 +173241,7 @@ static int __pyx_pf_5talib_7_ta_lib_10COS_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11472, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COS_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -173617,32 +173323,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11478, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11472, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11478, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11472, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11478, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11472, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11478, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11472, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11478, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11472, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -173688,31 +173394,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11480, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11481, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11481, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11475, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11482, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11476, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11483, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11477, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11484, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11478, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11486, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -173726,13 +173432,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11492, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COS_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11493, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COS_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -173741,21 +173447,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11496, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11496, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11496, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11490, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11496, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11490, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11496, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11490, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -173833,32 +173539,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11498, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11492, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11498, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11492, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11498, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11492, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11498, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11492, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11498, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11492, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11499, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11493, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11498, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11492, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -173899,13 +173605,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11503, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11504, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -173972,32 +173678,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11506, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11500, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11500, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11506, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11500, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11506, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11500, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11500, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11507, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11501, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11506, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11500, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -174038,13 +173744,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11511, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11512, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -174106,13 +173812,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11519, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11520, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -174241,7 +173947,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11533, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -174254,10 +173960,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10COS_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11534, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream))))) __PYX_ERR(3, 11534, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream))))) __PYX_ERR(3, 11528, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COS_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -174366,32 +174072,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11556, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11550, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11550, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11556, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11550, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11556, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11550, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11550, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11556, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11550, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -174432,26 +174138,26 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11557, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11558, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11558, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11552, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11559, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11553, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11560, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11554, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11561, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11555, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -174463,7 +174169,7 @@ static int __pyx_pf_5talib_7_ta_lib_11COSH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COSH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11566, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_COSH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -174545,32 +174251,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11572, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11566, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11566, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11572, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11566, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11572, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11566, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11566, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11572, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11566, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -174616,31 +174322,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11574, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11575, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11575, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11569, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11576, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11570, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11577, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11571, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11578, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11572, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11580, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -174654,13 +174360,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11586, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_COSH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COSH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_COSH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -174669,21 +174375,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11590, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11590, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11590, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11584, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11590, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11584, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11584, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -174761,32 +174467,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11592, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11586, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11592, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11586, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11592, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11586, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11592, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11586, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11592, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11586, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11593, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11587, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11592, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11586, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -174827,13 +174533,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11597, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11598, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -174900,32 +174606,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11600, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11594, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11594, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11600, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11594, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11600, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11594, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11600, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11594, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11601, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11595, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11600, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11594, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -174966,13 +174672,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11605, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11606, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -175034,13 +174740,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11613, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11614, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -175169,7 +174875,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11627, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -175182,10 +174888,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11COSH_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11628, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream))))) __PYX_ERR(3, 11628, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream))))) __PYX_ERR(3, 11622, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_COSH_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -175294,32 +175000,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11650, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11644, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11650, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11644, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11650, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11644, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11650, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 11644, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11650, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11644, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11650, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11644, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -175360,26 +175066,26 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11651, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11652, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11652, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11646, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11653, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11647, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11654, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11648, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11655, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11649, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -175391,7 +175097,7 @@ static int __pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CUMSUM_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11660, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CUMSUM_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -175473,32 +175179,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11666, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11660, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11660, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11666, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11660, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11666, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 11660, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11666, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11660, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11666, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11660, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -175544,31 +175250,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11669, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11669, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11663, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11670, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11664, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11671, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11665, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11672, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11666, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11674, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -175582,13 +175288,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11680, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11681, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CUMSUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -175597,21 +175303,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11684, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11684, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11684, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11678, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11684, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11684, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11678, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11684, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11678, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -175689,32 +175395,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11686, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11680, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11680, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11686, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11680, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11686, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11680, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11686, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11680, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11687, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11681, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11686, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11680, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -175755,13 +175461,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11691, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11692, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -175828,32 +175534,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11694, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11688, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11694, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11688, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11694, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11688, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11694, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11688, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11694, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11688, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11695, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11689, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11694, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11688, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -175894,13 +175600,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11699, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11700, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -175962,13 +175668,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11707, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11708, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -176097,7 +175803,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11721, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -176110,10 +175816,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13CUMSUM_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11722, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream))))) __PYX_ERR(3, 11722, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream))))) __PYX_ERR(3, 11716, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -176225,48 +175931,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11747, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11741, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11741, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11741, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11741, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11741, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11747, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11741, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 11747, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 11741, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11741, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11741, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11741, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11747, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11741, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -176274,19 +175980,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11747, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11741, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11747, __pyx_L3_error) + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11741, __pyx_L3_error) } else { __pyx_v_rocperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 11747, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 11741, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -176330,34 +176036,34 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11748, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11749, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11750, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11750, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11744, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11750, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11744, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11751, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11745, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11752, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11746, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11753, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11747, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -176369,7 +176075,7 @@ static int __pyx_pf_5talib_7_ta_lib_10CVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11758, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -176455,48 +176161,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11764, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11758, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11758, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11758, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11758, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11758, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11764, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11758, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 11764, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 11758, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 11758, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 11758, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11758, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11764, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11758, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -176504,19 +176210,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11765, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11759, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11765, __pyx_L3_error) + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11759, __pyx_L3_error) } else { __pyx_v_rocperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 11764, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 11758, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -176565,39 +176271,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11766, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11767, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11768, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11768, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 11762, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11768, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 11762, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11769, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11763, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11770, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11764, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11771, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11765, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -176611,13 +176317,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11779, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_CVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11780, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_CVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -176626,24 +176332,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11783, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 11777, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11783, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 11777, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11783, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11777, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11783, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11777, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -176723,39 +176429,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11785, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11779, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11779, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11779, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11785, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11779, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11785, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11779, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11779, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11779, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11786, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11786, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11780, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11780, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11785, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11779, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -176797,13 +176503,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11790, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11791, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -176871,39 +176577,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11793, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11787, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11793, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11787, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11793, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11787, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11793, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11787, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11793, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11787, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11793, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11787, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11793, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11787, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11794, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11794, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11788, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11788, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11793, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11787, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -176945,13 +176651,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11798, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11799, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -177013,13 +176719,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11806, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11807, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -177148,7 +176854,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11820, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -177161,10 +176867,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10CVI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11821, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream))))) __PYX_ERR(3, 11821, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream))))) __PYX_ERR(3, 11815, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_CVI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -177274,48 +176980,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11845, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11839, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11839, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11839, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11845, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11839, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11845, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 11839, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11839, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11839, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11845, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11839, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11845, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11839, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -177357,26 +177063,26 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11846, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11847, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11847, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11841, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11848, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11842, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11849, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11843, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11850, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11844, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -177388,7 +177094,7 @@ static int __pyx_pf_5talib_7_ta_lib_11DEMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11855, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -177471,48 +177177,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11861, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11855, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11861, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11855, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11861, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 11855, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11855, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11861, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11855, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11862, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 11856, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11861, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 11855, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -177559,31 +177265,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11863, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11864, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11864, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 11858, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11865, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11859, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11866, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11860, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11867, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11861, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -177597,13 +177303,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11875, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11876, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -177612,21 +177318,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11879, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11879, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11879, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 11873, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11879, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11879, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11873, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11879, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11873, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -177704,32 +177410,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11881, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11875, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11881, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11875, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11881, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 11875, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11875, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11882, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11876, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11881, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11875, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -177770,13 +177476,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11886, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11887, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -177843,32 +177549,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11889, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11883, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11883, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11889, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11883, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11889, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 11883, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11883, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11890, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11884, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11889, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 11883, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -177909,13 +177615,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11894, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11895, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -177977,13 +177683,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11902, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11903, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -178112,7 +177818,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11916, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -178125,10 +177831,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11DEMA_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11917, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream))))) __PYX_ERR(3, 11917, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream))))) __PYX_ERR(3, 11911, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -178238,39 +177944,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11940, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11934, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11940, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11934, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11940, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11934, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11940, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 11934, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 11940, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 11934, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11940, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11934, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11940, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11934, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11940, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11934, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -178312,34 +178018,34 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11941, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11942, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11943, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11943, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11937, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11943, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11937, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11944, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11938, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11945, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11939, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11946, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11940, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -178351,7 +178057,7 @@ static int __pyx_pf_5talib_7_ta_lib_10DIV_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DIV_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11951, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DIV_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -178435,39 +178141,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11957, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11951, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11951, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11951, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11957, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 11951, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 11957, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 11951, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11951, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11957, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11951, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11957, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11951, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -178514,39 +178220,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11959, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11960, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11961, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 11955, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11961, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 11955, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11962, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 11956, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11963, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 11957, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11964, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 11958, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11966, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -178560,13 +178266,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11972, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DIV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DIV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11973, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DIV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -178575,24 +178281,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11976, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real0); __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 11970, __pyx_L1_error); __Pyx_INCREF(__pyx_v_real1); __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11976, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 11970, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 11970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11976, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 11970, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11976, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 11970, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -178672,39 +178378,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11978, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11972, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11972, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11972, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11978, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 11972, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11978, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 11972, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11972, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11972, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11979, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11979, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11973, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11973, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11978, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11972, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -178746,13 +178452,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11983, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11984, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -178820,39 +178526,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11986, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 11980, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11980, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11980, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11986, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 11980, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11986, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 11980, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 11980, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11986, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 11980, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11987, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11987, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11981, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 11981, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11986, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 11980, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -178894,13 +178600,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11991, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11992, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -178962,13 +178668,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11999, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12000, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -179097,7 +178803,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12013, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -179110,10 +178816,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DIV_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12014, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream))))) __PYX_ERR(3, 12014, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream))))) __PYX_ERR(3, 12008, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DIV_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -179224,40 +178930,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12042, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12034, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12034, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12034, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12034, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12042, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12034, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 12042, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 12034, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12034, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12034, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12042, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12034, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -179265,14 +178971,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12042, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12034, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12042, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12034, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -179317,34 +179023,34 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12043, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12045, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12045, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12037, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12045, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12037, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12046, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12038, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12047, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12039, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12048, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12040, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -179356,7 +179062,7 @@ static int __pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DONCHIAN_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12055, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DONCHIAN_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -179443,40 +179149,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12061, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12053, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12061, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12053, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 12061, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 12053, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12053, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12053, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12061, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12053, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -179484,14 +179190,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12062, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12054, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12061, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12053, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -179538,58 +179244,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12063, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12064, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12065, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12065, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12057, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12065, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12057, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12066, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12058, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12067, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12059, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12068, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12060, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12071, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12072, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -179603,13 +179305,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12078, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DONCHIAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -179618,82 +179320,67 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12074, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 12082, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 12074, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -179703,9 +179390,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_4open_and_fill(PyObj __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -179770,39 +179454,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12084, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12076, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12084, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12076, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 12084, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 12076, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12076, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12076, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12085, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12085, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12077, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12077, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12084, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12076, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -179837,9 +179521,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -179852,53 +179533,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12091, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12092, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12092, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 12084, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 12084, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 12084, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -179908,8 +179574,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_6update(struct __pyx __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -179963,39 +179627,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12094, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12086, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12094, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12086, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12094, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12086, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12094, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12086, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 12094, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 12086, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12094, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12086, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12094, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12086, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12095, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12095, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12087, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12087, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12094, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12086, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -180030,9 +179694,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_o PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -180045,53 +179706,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12101, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12102, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12102, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 12094, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 12094, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 12094, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -180101,8 +179747,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_8peek(struct __pyx_o __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -180143,9 +179787,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struc PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -180158,53 +179799,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12111, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12112, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12112, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 12104, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 12104, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 12104, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -180214,8 +179840,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_5value___get__(struc __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.DONCHIAN_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -180330,7 +179954,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12125, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -180343,10 +179967,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15DONCHIAN_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12126, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream))))) __PYX_ERR(3, 12126, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream))))) __PYX_ERR(3, 12118, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -180456,48 +180080,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12150, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12142, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12150, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12150, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12150, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12142, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12150, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12142, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12150, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12150, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12142, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12150, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12142, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12150, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12142, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -180539,26 +180163,26 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12151, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12152, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12152, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12144, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12153, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12145, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12154, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12146, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12155, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12147, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -180570,7 +180194,7 @@ static int __pyx_pf_5talib_7_ta_lib_10DPO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DPO_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12160, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DPO_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -180653,48 +180277,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12166, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12158, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12166, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12158, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12166, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12158, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12158, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12166, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12158, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12167, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12159, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12166, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12158, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -180741,31 +180365,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12168, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12169, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12169, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12161, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12170, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12162, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12171, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12163, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12172, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12164, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -180779,13 +180403,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12180, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -180794,21 +180418,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12184, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12184, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12184, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12176, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12184, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12176, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12176, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -180886,32 +180510,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12186, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12186, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12178, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12186, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12178, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12178, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12187, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12179, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12186, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -180952,13 +180576,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12191, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12192, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -181025,32 +180649,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12194, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12186, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12194, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12194, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12186, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12194, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12186, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12194, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12186, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12195, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12187, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12194, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12186, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -181091,13 +180715,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12199, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12200, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -181159,13 +180783,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12207, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12208, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -181294,7 +180918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12221, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -181307,10 +180931,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10DPO_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12222, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream))))) __PYX_ERR(3, 12222, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream))))) __PYX_ERR(3, 12214, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DPO_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -181422,46 +181046,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12246, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12238, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12246, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12238, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 12246, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 12238, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12238, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12238, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12238, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12246, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12238, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -181470,14 +181094,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12246, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12238, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12246, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12238, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -181521,42 +181145,42 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12247, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12248, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12249, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12250, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12250, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12242, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12250, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12242, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12250, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12242, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12251, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12243, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12252, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12244, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12253, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12245, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -181568,7 +181192,7 @@ static int __pyx_pf_5talib_7_ta_lib_9DX_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12258, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_DX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -181655,46 +181279,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12264, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12256, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12264, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12256, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 12264, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 12256, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12256, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12256, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12256, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12256, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -181703,14 +181327,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12265, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12257, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12264, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12256, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -181759,47 +181383,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12266, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12267, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12268, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12269, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12269, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12261, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12269, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12261, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12269, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12261, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12270, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12262, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12271, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12263, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12272, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12264, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -181813,13 +181437,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12280, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_DX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_DX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -181828,27 +181452,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12284, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12276, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12276, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12284, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12276, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12284, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12276, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12284, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12276, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -181927,6 +181551,163 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12278, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12278, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12278, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12278, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12278, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 12278, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12278, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12278, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12278, __pyx_L3_error) + } + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12279, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12279, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12279, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12278, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + + + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { + double __pyx_v_outreal; + TA_RetCode __pyx_v_retCode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("update", 0); + + __pyx_v_retCode = TA_DX_Update(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); + + __pyx_t_1 = (__pyx_v_retCode != 0); + + if (__pyx_t_1) { + + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + } + + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_2; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_2 = 0; + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_8peek, "DX_Stream.peek(self, double high, double low, double close)"); +static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + double __pyx_v_high; + double __pyx_v_low; + double __pyx_v_close; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[3] = {0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("peek (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; @@ -181949,9 +181730,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12286, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12286, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 12286, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 12286, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; @@ -181969,164 +181750,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12286, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_v_self), __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - - - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_6update(struct __pyx_obj_5talib_7_ta_lib_DX_Stream *__pyx_v_self, double __pyx_v_high, double __pyx_v_low, double __pyx_v_close) { - double __pyx_v_outreal; - TA_RetCode __pyx_v_retCode; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("update", 0); - - __pyx_v_retCode = TA_DX_Update(((TA_DX_Stream *)__pyx_v_self->__pyx_base._handle), __pyx_v_high, __pyx_v_low, __pyx_v_close, (&__pyx_v_outreal)); - - __pyx_t_1 = (__pyx_v_retCode != 0); - - if (__pyx_t_1) { - - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - } - - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; - } - __Pyx_XDECREF(__pyx_temp); - } - __pyx_t_2 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("talib._ta_lib.DX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_9DX_Stream_8peek, "DX_Stream.peek(self, double high, double low, double close)"); -static PyObject *__pyx_pw_5talib_7_ta_lib_9DX_Stream_9peek(PyObject *__pyx_v_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - double __pyx_v_high; - double __pyx_v_low; - double __pyx_v_close; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("peek (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12294, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12294, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12294, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 12294, __pyx_L3_error) } - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12294, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12294, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12294, __pyx_L3_error) - } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12295, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12295, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12295, __pyx_L3_error) - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12294, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12286, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -182169,13 +181793,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12299, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12300, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -182237,13 +181861,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12307, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12308, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -182372,7 +181996,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12321, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -182385,10 +182009,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9DX_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12322, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream))))) __PYX_ERR(3, 12322, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream))))) __PYX_ERR(3, 12314, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_DX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -182499,40 +182123,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12346, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12338, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12346, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12338, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 12346, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 12338, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12338, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12346, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12338, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -182540,14 +182164,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[0]; __pyx_v_volume = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12346, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12338, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12346, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12338, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -182590,34 +182214,34 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12347, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12348, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12349, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12349, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12341, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 12349, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 12341, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12350, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12342, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12351, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12343, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12352, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12344, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -182629,7 +182253,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EFI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EFI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12357, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EFI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -182714,40 +182338,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12363, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12355, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12363, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12355, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 12363, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 12355, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12355, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12355, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12355, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -182755,14 +182379,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[0]; __pyx_v_volume = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12364, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12356, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12363, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 12355, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -182810,39 +182434,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12365, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12366, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12367, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12367, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12359, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 12367, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 12359, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12368, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12360, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12369, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12361, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12370, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12362, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -182856,13 +182480,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12378, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12379, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -182871,24 +182495,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12382, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 12374, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12382, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 12374, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12382, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12374, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12382, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12374, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -182968,39 +182592,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12384, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12376, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12384, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12376, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 12384, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 12376, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12376, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12376, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12377, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12377, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12384, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12376, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -183042,13 +182666,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12389, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12390, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -183116,39 +182740,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12392, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12392, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12384, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 12392, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 12384, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12384, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12384, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12393, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12393, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12385, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12392, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 12384, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -183190,13 +182814,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12397, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12398, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -183258,13 +182882,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12405, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12406, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -183393,7 +183017,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12419, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -183406,10 +183030,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EFI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12420, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream))))) __PYX_ERR(3, 12420, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream))))) __PYX_ERR(3, 12412, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EFI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -183519,48 +183143,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12444, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12436, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12436, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12436, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12444, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12436, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12444, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12436, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12436, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12444, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12436, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12444, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12436, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12444, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12436, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -183602,26 +183226,26 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12445, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12446, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12446, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12438, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12447, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12439, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12448, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12440, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12449, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12441, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -183633,7 +183257,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12454, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -183716,48 +183340,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12460, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12452, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12460, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12452, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12460, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12452, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12452, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12452, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12461, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12453, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12460, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12452, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -183804,31 +183428,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12462, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12463, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12463, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12455, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12464, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12456, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12465, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12457, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12466, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12458, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -183842,13 +183466,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12474, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12475, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -183857,21 +183481,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12478, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12478, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12478, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12470, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12478, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12478, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12470, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12478, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12470, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -183949,32 +183573,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12480, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12472, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12480, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12480, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12472, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12480, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12472, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12480, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12472, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12481, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12473, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12480, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12472, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -184015,13 +183639,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12485, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12486, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -184088,32 +183712,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12488, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12480, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12488, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12480, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12488, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12480, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12488, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12480, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12488, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12480, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12489, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12481, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12488, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12480, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -184154,13 +183778,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12493, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12494, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -184222,13 +183846,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12501, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12502, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -184357,7 +183981,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12515, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -184370,10 +183994,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EMA_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12516, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream))))) __PYX_ERR(3, 12516, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream))))) __PYX_ERR(3, 12508, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -184483,48 +184107,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12540, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12532, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12532, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12532, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12540, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12532, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12540, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12532, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12532, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12532, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12540, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12532, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12540, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12532, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -184566,26 +184190,26 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12541, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12542, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12542, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12534, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12543, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12535, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12544, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12536, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12545, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12537, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -184597,7 +184221,7 @@ static int __pyx_pf_5talib_7_ta_lib_9ER_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ER_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12550, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ER_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -184680,48 +184304,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12556, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12548, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12556, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12548, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12556, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12548, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12548, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12557, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12549, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12556, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12548, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -184768,31 +184392,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12558, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12559, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12559, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12551, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12560, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12552, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12561, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12553, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12562, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12554, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12564, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -184806,13 +184430,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12570, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ER_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12571, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ER_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -184821,21 +184445,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12574, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12574, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12574, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12566, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12574, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12574, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12566, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12574, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12566, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -184913,32 +184537,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12576, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12568, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12576, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12568, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12576, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12568, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12576, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12568, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12576, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12568, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12577, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12569, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12576, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12568, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -184979,13 +184603,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12581, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12582, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -185052,32 +184676,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12584, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12576, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12584, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12576, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12584, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12576, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12576, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12585, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12577, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12584, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12576, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -185118,13 +184742,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12589, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12590, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -185186,13 +184810,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12597, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12598, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -185321,7 +184945,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12611, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -185334,10 +184958,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9ER_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12612, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream))))) __PYX_ERR(3, 12612, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream))))) __PYX_ERR(3, 12604, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ER_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -185449,46 +185073,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12639, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12629, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12639, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12629, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 12639, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 12629, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12629, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12629, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12629, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12629, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -185497,14 +185121,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12639, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12629, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12639, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12629, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -185549,42 +185173,42 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12640, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12641, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12642, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12643, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12643, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12633, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12643, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12633, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12643, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12633, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12644, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12634, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12645, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12635, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12646, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12636, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -185596,7 +185220,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ERI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ERI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12652, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ERI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -185684,46 +185308,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12658, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12648, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12658, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12648, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 12658, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 12648, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 12648, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12648, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12648, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12658, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12648, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -185732,14 +185356,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12659, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12649, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12658, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 12648, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -185785,61 +185409,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12660, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12661, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12662, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12663, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12663, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 12653, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12663, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 12653, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12663, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 12653, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12664, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12654, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12665, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12655, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12666, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12656, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -185853,13 +185473,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12675, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ERI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ERI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12676, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ERI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -185868,66 +185488,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outbullpower)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 12679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 12679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outbullpower)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outbearpower)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12679, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outbearpower)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 12679, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 12669, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -185946,9 +185549,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_4open_and_fill(PyObject * __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186014,46 +185614,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12681, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12671, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12681, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12671, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 12681, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 12671, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12671, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12671, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12681, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12671, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12682, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12682, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12682, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12672, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12672, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12672, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12681, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12671, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -186087,9 +185687,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -186102,50 +185699,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12687, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12688, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 12678, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 12678, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -186154,8 +185734,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_6update(struct __pyx_obj_ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186209,46 +185787,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12690, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12680, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12680, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12680, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12680, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12690, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12680, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 12690, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 12680, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12680, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12680, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12690, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 12680, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12691, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12691, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12691, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12681, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12681, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12681, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12690, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 12680, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -186282,9 +185860,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5t PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -186297,50 +185872,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12696, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12697, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 12687, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 12687, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -186349,8 +185907,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_8peek(struct __pyx_obj_5t __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186388,9 +185944,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __p PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -186403,50 +185956,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12705, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_ERI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12706, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 12696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outbullpower); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outbearpower); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 12706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 12696, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 12696, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -186455,8 +185991,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_5value___get__(struct __p __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.ERI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -186570,7 +186104,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12719, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -186583,10 +186117,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ERI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12720, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream))))) __PYX_ERR(3, 12720, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream))))) __PYX_ERR(3, 12710, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ERI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -186695,32 +186229,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12742, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12732, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12732, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12742, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12732, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 12742, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 12732, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12732, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12742, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12732, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -186761,26 +186295,26 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12743, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12744, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12744, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12734, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12745, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12735, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12746, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12736, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12747, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12737, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -186792,7 +186326,7 @@ static int __pyx_pf_5talib_7_ta_lib_10EXP_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EXP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12752, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_EXP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -186874,32 +186408,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12758, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12758, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12758, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12748, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 12758, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 12748, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12758, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12748, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12758, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -186945,31 +186479,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12760, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12761, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12761, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12751, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12762, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12752, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12763, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12753, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12764, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12754, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12766, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -186983,13 +186517,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12772, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_EXP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EXP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12773, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_EXP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -186998,21 +186532,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12776, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12776, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12776, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12766, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12776, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12766, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12776, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12766, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -187090,32 +186624,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12778, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12768, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12768, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12778, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12768, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12778, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12768, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12768, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12779, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12769, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12778, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12768, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -187156,13 +186690,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12783, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12784, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -187229,32 +186763,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12786, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12776, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12776, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12786, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12776, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12786, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12776, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12786, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12776, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12787, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12777, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12786, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12776, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -187295,13 +186829,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12791, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12792, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -187363,13 +186897,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12799, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12800, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -187498,7 +187032,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12813, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -187511,10 +187045,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10EXP_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12814, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream))))) __PYX_ERR(3, 12814, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream))))) __PYX_ERR(3, 12804, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_EXP_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -187623,32 +187157,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12836, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12826, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12836, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12836, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12826, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 12836, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 12826, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12836, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12826, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12836, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12826, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -187689,26 +187223,26 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12837, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12838, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12838, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12828, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12839, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12829, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12840, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12830, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12841, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12831, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -187720,7 +187254,7 @@ static int __pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FLOOR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12846, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FLOOR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -187802,32 +187336,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12852, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12842, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12842, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12852, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12842, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 12852, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 12842, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12842, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12852, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12842, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -187873,31 +187407,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12854, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12855, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12855, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12845, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12856, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12846, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12857, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12847, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12858, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12848, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12860, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -187911,13 +187445,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12866, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12867, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FLOOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -187926,21 +187460,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12870, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12870, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12870, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12860, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12870, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12860, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12860, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -188018,32 +187552,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12872, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12862, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12872, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12862, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12872, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12862, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12872, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12862, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12872, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12862, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12873, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12863, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12872, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12862, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -188084,13 +187618,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12877, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12878, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -188157,32 +187691,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12880, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12870, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12870, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12880, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12870, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12880, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12870, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12870, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12881, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12871, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12880, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12870, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -188223,13 +187757,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12885, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12886, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -188291,13 +187825,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12893, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12894, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -188426,7 +187960,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12907, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -188439,10 +187973,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12FLOOR_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12908, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream))))) __PYX_ERR(3, 12908, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream))))) __PYX_ERR(3, 12898, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -188552,48 +188086,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12932, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12922, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12922, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12922, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12932, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 12922, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12932, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 12922, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12922, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12922, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12932, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12922, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12932, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12922, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -188635,26 +188169,26 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12933, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12934, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12924, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12935, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12925, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12936, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12926, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12937, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12927, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -188666,7 +188200,7 @@ static int __pyx_pf_5talib_7_ta_lib_11FOSC_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FOSC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12942, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FOSC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -188749,48 +188283,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12948, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12938, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12948, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 12938, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12948, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 12938, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 12938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12938, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12949, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 12939, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12948, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 12938, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -188837,31 +188371,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12950, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12951, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12951, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 12941, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12952, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 12942, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12953, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 12943, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12954, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 12944, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12956, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -188875,13 +188409,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12962, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12963, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -188890,21 +188424,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12966, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12966, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12966, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 12956, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 12956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12966, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12966, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 12956, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12966, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 12956, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -188982,32 +188516,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12968, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12958, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12958, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12968, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 12958, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12968, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 12958, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12958, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12969, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12959, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12968, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12958, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -189048,13 +188582,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12973, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12974, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -189121,32 +188655,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12976, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 12966, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12966, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12976, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 12966, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12976, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 12966, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 12966, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12977, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 12967, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12976, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 12966, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -189187,13 +188721,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12982, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -189255,13 +188789,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12989, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12990, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -189390,7 +188924,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13003, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -189403,10 +188937,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11FOSC_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13004, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream))))) __PYX_ERR(3, 13004, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream))))) __PYX_ERR(3, 12994, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -189518,48 +189052,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13032, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13020, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13032, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13020, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 13032, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 13020, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13020, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13032, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13020, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -189567,19 +189101,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13032, __pyx_L3_error) + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13020, __pyx_L3_error) } else { __pyx_v_leftbars = ((int)-2147483648); } if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13032, __pyx_L3_error) + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13020, __pyx_L3_error) } else { __pyx_v_rightbars = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 13032, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 13020, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -189624,34 +189158,34 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13033, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13034, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13035, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13023, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13035, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13023, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13036, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13024, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13037, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13025, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13038, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13026, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -189663,7 +189197,7 @@ static int __pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13044, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -189750,48 +189284,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13050, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13038, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13050, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13038, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 13050, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 13038, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13038, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13038, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13050, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13038, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -189799,19 +189333,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13051, __pyx_L3_error) + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13039, __pyx_L3_error) } else { __pyx_v_leftbars = ((int)-2147483648); } if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13051, __pyx_L3_error) + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13039, __pyx_L3_error) } else { __pyx_v_rightbars = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 13050, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 13038, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -189857,53 +189391,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13052, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13053, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13054, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13054, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13042, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13054, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13042, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13055, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13043, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13056, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13044, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13057, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13045, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13059, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13060, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -189917,13 +189447,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13066, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13067, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_FRACTAL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -189932,60 +189462,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outswinghigh)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outswinghigh)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outswinglow)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13070, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outswinglow)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13070, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13058, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -190004,9 +189517,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_4open_and_fill(PyObje __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -190070,39 +189580,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13072, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13060, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13072, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13060, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13072, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13060, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13072, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13060, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 13072, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 13060, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13072, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13060, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13072, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13060, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13073, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13073, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13061, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13061, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13072, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13060, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -190135,9 +189645,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -190150,50 +189657,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13078, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13079, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13067, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13067, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -190202,8 +189692,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_6update(struct __pyx_ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -190256,39 +189744,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13081, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13069, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13069, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13081, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13069, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 13081, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 13069, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13069, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13081, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13069, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13082, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13082, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13070, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13070, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13081, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13069, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -190321,9 +189809,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_ob PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -190336,50 +189821,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13087, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13088, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13076, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13076, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -190388,8 +189856,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_8peek(struct __pyx_ob __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -190427,9 +189893,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -190442,50 +189905,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13096, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13097, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_outswinghigh); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outswinglow); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13085, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13085, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -190494,8 +189940,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.FRACTAL_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -190609,7 +190053,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13110, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -190622,10 +190066,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14FRACTAL_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13111, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream))))) __PYX_ERR(3, 13111, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream))))) __PYX_ERR(3, 13099, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -190737,44 +190181,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13138, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13124, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13138, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13124, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13138, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 13124, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13124, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13124, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13124, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13138, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13124, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -190783,7 +190227,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13138, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13124, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -190830,50 +190274,50 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13139, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13140, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13143, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13129, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13129, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13129, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13143, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13129, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13144, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13130, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13145, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13131, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13146, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13132, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -190885,7 +190329,7 @@ static int __pyx_pf_5talib_7_ta_lib_9HA_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HA_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13154, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HA_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -190976,44 +190420,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13160, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13146, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13146, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13146, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13146, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13146, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13160, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13146, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13160, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 13146, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13146, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13146, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13146, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13160, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13146, __pyx_L3_error) } __pyx_v_open = values[0]; __pyx_v_high = values[1]; @@ -191022,7 +190466,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13160, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13146, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -191072,79 +190516,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - size_t __pyx_t_12; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13162, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13163, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13164, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13165, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13166, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13152, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 13152, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 13152, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13166, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13152, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13167, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13153, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13168, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13154, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13169, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13155, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13171, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13173, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -191158,13 +190598,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13180, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -191173,118 +190613,105 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhaopen)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhaopen)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhahigh)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhahigh)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhalow)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13184, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhalow)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_high) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_low) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); - __pyx_t_11 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outhaclose)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_12 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_12 = 0; - } - #endif - { - PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10, __pyx_t_11}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_12, (5-__pyx_t_12) | (__pyx_t_12*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_close) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outhaclose)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_8) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_8 = 0; + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13184, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13170, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_8; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_8 = 0; goto __pyx_L0; @@ -191295,9 +190722,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_4open_and_fill(PyObject *__ __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("talib._ta_lib.HA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -191367,53 +190791,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13186, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13172, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13186, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13172, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13186, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 13172, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13172, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13172, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13172, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13186, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13172, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13187, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13173, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13173, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13173, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13173, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13186, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13172, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -191452,9 +190876,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5t PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -191467,56 +190888,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13194, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13195, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13195, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13195, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_9 = 0; - } - #endif - { - PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13181, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13181, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 13181, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5) != (0)) __PYX_ERR(3, 13181, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_6 = 0; goto __pyx_L0; @@ -191527,8 +190935,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_6update(struct __pyx_obj_5t __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("talib._ta_lib.HA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -191585,53 +190991,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13197, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13183, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13197, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13183, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13197, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 13183, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13183, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13183, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13183, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13197, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 13183, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13198, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13184, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13184, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13184, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13184, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13197, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 13183, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -191670,9 +191076,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5tal PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -191685,56 +191088,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13205, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13206, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13206, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13206, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_9 = 0; - } - #endif - { - PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13192, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13192, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 13192, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5) != (0)) __PYX_ERR(3, 13192, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_6 = 0; goto __pyx_L0; @@ -191745,8 +191135,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_8peek(struct __pyx_obj_5tal __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("talib._ta_lib.HA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -191790,9 +191178,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - size_t __pyx_t_9; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -191805,56 +191190,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13216, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13217, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaopen); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13217, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outhahigh); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13217, __pyx_L1_error) + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outhalow); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PyFloat_FromDouble(__pyx_v_outhaclose); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_9 = 0; - } - #endif - { - PyObject *__pyx_callargs[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7, __pyx_t_8}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_9, (5-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13203, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13203, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 13203, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5) != (0)) __PYX_ERR(3, 13203, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_6 = 0; goto __pyx_L0; @@ -191865,8 +191237,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_5value___get__(struct __pyx __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("talib._ta_lib.HA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -191982,7 +191352,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13230, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -191995,10 +191365,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9HA_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13231, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream))))) __PYX_ERR(3, 13231, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream))))) __PYX_ERR(3, 13217, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -192108,48 +191478,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13255, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13241, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13241, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13241, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13255, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13241, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 13255, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 13241, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13241, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13241, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13255, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13241, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 13255, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 13241, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -192191,26 +191561,26 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13256, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13257, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13257, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13243, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13258, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13244, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13259, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13245, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13260, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13246, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -192222,7 +191592,7 @@ static int __pyx_pf_5talib_7_ta_lib_10HMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13265, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -192305,48 +191675,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13271, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13257, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13271, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13257, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 13271, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 13257, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13257, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13271, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13257, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13272, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13258, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 13271, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 13257, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -192393,31 +191763,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13274, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13260, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13275, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13261, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13276, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13262, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13277, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13263, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -192431,13 +191801,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13285, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13286, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -192446,21 +191816,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13289, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13289, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13289, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13275, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13289, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13289, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13275, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13289, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13275, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -192538,32 +191908,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13291, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13277, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13291, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13291, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13277, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13291, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13277, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13291, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13277, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13292, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13278, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13291, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13277, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -192604,13 +191974,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13296, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13297, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -192677,32 +192047,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13299, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13285, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13285, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13299, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13285, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13299, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13285, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13285, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13300, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13286, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13299, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13285, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -192743,13 +192113,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13304, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13305, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -192811,13 +192181,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13312, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13313, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -192946,7 +192316,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13326, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -192959,10 +192329,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10HMA_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13327, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream))))) __PYX_ERR(3, 13327, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream))))) __PYX_ERR(3, 13313, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -193071,32 +192441,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13349, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13335, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13335, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13349, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13335, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13349, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13335, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13335, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13335, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -193137,26 +192507,26 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13350, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13351, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13351, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13337, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13352, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13338, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13353, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13339, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13354, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13340, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -193168,7 +192538,7 @@ static int __pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_DCPERIOD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13359, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_DCPERIOD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -193250,32 +192620,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13365, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13351, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13365, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13351, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13365, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13351, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13365, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13351, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13365, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13351, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13365, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13351, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -193321,31 +192691,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13367, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13368, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13368, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13354, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13369, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13355, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13370, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13356, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13371, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13357, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -193359,13 +192729,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13379, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPERIOD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -193374,21 +192744,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13383, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13383, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13383, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13383, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13383, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13383, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13369, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -193466,32 +192836,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13385, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13371, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13385, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13371, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13385, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13371, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13385, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13371, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13385, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13371, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13386, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13372, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13385, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13371, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -193532,13 +192902,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13390, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13391, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -193605,32 +192975,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13393, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13379, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13379, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13393, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13379, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13393, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13379, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13379, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13394, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13380, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13393, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13379, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -193671,13 +193041,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13398, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13399, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -193739,13 +193109,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13406, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13407, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -193874,7 +193244,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13420, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -193887,10 +193257,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18HT_DCPERIOD_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13421, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream))))) __PYX_ERR(3, 13421, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream))))) __PYX_ERR(3, 13407, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -193999,32 +193369,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13443, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13429, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13443, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13429, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13443, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13429, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13443, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13429, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13443, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13429, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13443, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13429, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -194065,26 +193435,26 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13444, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13445, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13445, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13431, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13446, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13432, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13447, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13433, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13448, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13434, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -194096,7 +193466,7 @@ static int __pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_DCPHASE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13453, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_DCPHASE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -194178,32 +193548,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13459, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13445, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13445, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13459, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13445, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13459, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13445, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13459, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13445, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13459, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13445, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -194249,31 +193619,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13461, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13462, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13462, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13448, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13463, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13449, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13464, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13450, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13465, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13451, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13467, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -194287,13 +193657,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13473, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13474, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_DCPHASE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -194302,21 +193672,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13477, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13477, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13477, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13463, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13477, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13477, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13463, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13477, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13463, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -194394,32 +193764,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13479, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13465, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13479, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13465, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13479, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13465, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13465, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13480, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13466, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13479, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13465, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -194460,13 +193830,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13484, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13485, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -194533,32 +193903,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13487, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13473, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13487, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13473, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13487, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13473, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13487, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13473, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13487, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13473, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13488, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13474, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13487, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13473, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -194599,13 +193969,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13492, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13493, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -194667,13 +194037,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13500, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13501, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -194802,7 +194172,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13514, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -194815,10 +194185,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17HT_DCPHASE_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13515, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream))))) __PYX_ERR(3, 13515, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream))))) __PYX_ERR(3, 13501, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -194927,32 +194297,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13540, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13524, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13524, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13540, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13524, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13540, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13524, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13540, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13524, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13540, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13524, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -194994,26 +194364,26 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13541, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13542, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13542, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13526, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13543, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13527, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13544, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13528, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13545, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13529, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -195025,7 +194395,7 @@ static int __pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_PHASOR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13551, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_PHASOR_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -195108,32 +194478,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13557, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13541, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13541, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13557, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13541, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13557, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13541, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13541, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13557, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13541, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -195176,45 +194546,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13559, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13560, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13544, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13561, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13545, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13562, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13546, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13563, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13547, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13565, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13566, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -195228,13 +194594,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13572, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13573, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_PHASOR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -195243,54 +194609,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outinphase)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinphase)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outquadrature)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13576, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13576, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outquadrature)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13576, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13560, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -195309,9 +194658,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_4open_and_fill(PyOb __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195373,32 +194719,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13578, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13562, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13562, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13578, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13562, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13578, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13562, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13578, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13562, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13579, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13563, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13578, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13562, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -195430,9 +194776,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -195445,50 +194788,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13584, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13585, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13569, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13569, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -195497,8 +194823,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_6update(struct __py __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195550,32 +194874,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13587, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13571, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13587, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13571, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13587, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13571, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13587, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13571, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13587, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13571, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13588, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13572, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13587, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13571, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -195607,9 +194931,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -195622,50 +194943,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13593, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13594, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13578, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13578, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -195674,8 +194978,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_8peek(struct __pyx_ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195713,9 +195015,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(stru PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -195728,50 +195027,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13602, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13603, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13603, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13603, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13603, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13587, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13587, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -195780,8 +195062,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_5value___get__(stru __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -195895,7 +195175,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13616, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -195908,10 +195188,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16HT_PHASOR_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13617, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream))))) __PYX_ERR(3, 13617, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream))))) __PYX_ERR(3, 13601, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -196020,32 +195300,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13642, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13624, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13624, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13642, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13624, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13642, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13624, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13624, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13642, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13624, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -196087,26 +195367,26 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13643, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13644, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13644, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13626, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13645, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13627, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13646, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13628, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13647, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13629, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -196118,7 +195398,7 @@ static int __pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_SINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13653, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_SINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -196201,32 +195481,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13659, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13641, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13659, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13659, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13641, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13659, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13641, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13659, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13641, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13659, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13641, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -196269,45 +195549,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13661, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13662, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13662, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13644, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13663, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13645, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13664, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13646, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13665, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13647, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13667, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -196321,13 +195597,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13674, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13675, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_SINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -196336,54 +195612,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsine)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 13678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 13678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13660, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsine)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outleadsine)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13678, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13678, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13660, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outleadsine)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 13660, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 13660, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13660, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 13660, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -196402,9 +195661,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_4open_and_fill(PyObje __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -196466,32 +195722,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13680, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13662, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13680, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13662, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13680, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13662, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13680, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13662, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13680, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13662, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13681, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13663, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13680, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13662, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -196523,9 +195779,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -196538,50 +195791,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13686, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13687, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13669, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13669, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -196590,8 +195826,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_6update(struct __pyx_ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -196643,32 +195877,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13689, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13671, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13689, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13689, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13671, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13689, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13671, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13689, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13671, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13690, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13672, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13689, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13671, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -196700,9 +195934,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_ob PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -196715,50 +195946,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13695, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13696, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13678, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -196767,8 +195981,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_8peek(struct __pyx_ob __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -196806,9 +196018,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -196821,50 +196030,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13704, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13705, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 13687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 13705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 13687, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 13687, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -196873,8 +196065,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.HT_SINE_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -196988,7 +196178,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13718, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -197001,10 +196191,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14HT_SINE_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13719, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream))))) __PYX_ERR(3, 13719, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream))))) __PYX_ERR(3, 13701, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -197113,32 +196303,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13741, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13723, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13741, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13741, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13723, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13741, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13723, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13741, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13723, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13741, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13723, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -197179,26 +196369,26 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13742, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13743, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13743, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13725, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13744, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13726, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13745, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13727, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13746, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13728, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -197210,7 +196400,7 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_TRENDLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13751, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_TRENDLINE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -197292,32 +196482,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13757, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13739, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13739, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13757, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13739, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13757, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13739, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13739, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13757, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13739, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -197363,31 +196553,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13759, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13760, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13760, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13742, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13761, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13743, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13762, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13744, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13763, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13745, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13765, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -197401,13 +196591,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13771, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDLINE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -197416,21 +196606,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_4open_and_fill(P __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13775, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13775, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13775, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13757, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13775, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13775, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13757, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13775, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13757, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -197508,32 +196698,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13777, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13759, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13777, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13759, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13777, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13759, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13759, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13778, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13760, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13777, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13759, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -197574,13 +196764,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_6update(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13782, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13783, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -197647,32 +196837,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13785, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13785, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13767, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13785, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13767, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13767, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13786, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13768, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13785, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -197713,13 +196903,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_8peek(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13790, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13791, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -197781,13 +196971,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5value___get__(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13798, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13799, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -197916,7 +197106,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13812, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -197929,10 +197119,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDLINE_Stream_10copy(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13813, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream))))) __PYX_ERR(3, 13813, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream))))) __PYX_ERR(3, 13795, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -198041,32 +197231,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13835, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13817, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13817, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13835, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13817, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13835, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 13817, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13817, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13835, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13817, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -198107,26 +197297,26 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13836, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13837, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13837, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13819, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13838, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13820, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13839, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13821, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13840, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13822, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -198138,7 +197328,7 @@ static int __pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_2__init__(struct __pyx if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_TRENDMODE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13845, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_HT_TRENDMODE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -198220,32 +197410,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13851, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13833, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13851, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13851, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13833, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13851, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 13833, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13851, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13833, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13851, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13833, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -198291,31 +197481,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13854, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13854, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 13836, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13855, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13837, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13856, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13838, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13857, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13839, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13859, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -198329,13 +197519,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13865, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13866, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_HT_TRENDMODE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -198344,21 +197534,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_4open_and_fill(P __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13869, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13869, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13869, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 13851, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13869, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13869, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13851, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13869, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13851, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -198436,32 +197626,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13871, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13853, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13871, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13853, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13871, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 13853, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13853, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13872, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13854, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13871, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13853, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -198502,13 +197692,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_6update(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13876, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13877, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -198575,32 +197765,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13879, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13861, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13861, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13879, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13861, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13879, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 13861, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13861, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13880, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13862, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13879, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 13861, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -198641,13 +197831,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_8peek(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13884, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13885, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -198709,13 +197899,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5value___get__(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13892, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13893, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -198844,7 +198034,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13906, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -198857,10 +198047,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_19HT_TRENDMODE_Stream_10copy(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13907, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream))))) __PYX_ERR(3, 13907, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream))))) __PYX_ERR(3, 13889, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -198971,40 +198161,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13931, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13913, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13931, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 13913, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 13931, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 13913, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13913, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13913, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13913, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -199012,14 +198202,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_open = values[0]; __pyx_v_close = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13931, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13913, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 13931, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 13913, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -199062,34 +198252,34 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13932, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13933, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13934, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13916, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13916, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13935, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13917, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13936, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13918, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13937, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13919, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -199101,7 +198291,7 @@ static int __pyx_pf_5talib_7_ta_lib_10IMI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_IMI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13942, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_IMI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -199186,40 +198376,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13948, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13930, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13948, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 13930, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 13948, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 13930, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 13930, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13930, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13930, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -199227,14 +198417,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_open = values[0]; __pyx_v_close = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13949, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 13931, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 13948, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 13930, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -199282,39 +198472,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13950, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13951, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13952, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 13934, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13952, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 13934, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13953, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 13935, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13954, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 13936, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13955, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 13937, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13957, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -199328,13 +198518,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13963, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_IMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_IMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13964, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_IMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13946, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -199343,24 +198533,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13967, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 13949, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13967, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 13949, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 13949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13967, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 13949, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13967, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 13949, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -199440,39 +198630,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13969, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13951, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13951, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13951, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13969, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 13951, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 13969, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 13951, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13951, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13969, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13951, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13970, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13970, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13952, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13952, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13969, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13951, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -199514,13 +198704,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13974, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13975, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -199588,39 +198778,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13977, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 13959, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13959, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13977, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 13959, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 13977, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 13959, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 13959, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13977, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 13959, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13978, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13978, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13960, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 13960, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13977, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 13959, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -199662,13 +198852,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13982, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13983, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -199730,13 +198920,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13990, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13991, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -199865,7 +199055,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14004, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -199878,10 +199068,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10IMI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14005, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream))))) __PYX_ERR(3, 14005, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream))))) __PYX_ERR(3, 13987, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_IMI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -199991,48 +199181,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14029, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14011, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14029, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14011, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14029, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14011, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14029, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14011, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14029, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14011, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14029, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14011, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -200074,26 +199264,26 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14030, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14031, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14031, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14013, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14032, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14014, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14033, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14015, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14034, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14016, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -200105,7 +199295,7 @@ static int __pyx_pf_5talib_7_ta_lib_11KAMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KAMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14039, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KAMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -200188,48 +199378,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14045, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14027, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14027, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14027, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14045, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14027, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14045, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14027, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14027, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14027, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14046, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14028, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14045, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14027, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -200276,31 +199466,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14047, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14048, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14048, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14030, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14049, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14031, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14050, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14032, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14051, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14033, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14053, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -200314,13 +199504,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14059, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14060, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -200329,21 +199519,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14063, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14063, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14063, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14045, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14063, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14063, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14045, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14063, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14045, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -200421,32 +199611,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14065, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14047, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14047, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14065, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14047, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14065, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14047, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14065, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14047, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14066, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14048, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14065, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14047, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -200487,13 +199677,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14070, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14071, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -200560,32 +199750,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14073, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14055, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14055, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14073, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14055, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14073, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14055, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14073, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14055, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14074, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14056, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14073, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14055, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -200626,13 +199816,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14078, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14079, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -200694,13 +199884,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14086, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14087, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -200829,7 +200019,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14100, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -200842,10 +200032,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11KAMA_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14101, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream))))) __PYX_ERR(3, 14101, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream))))) __PYX_ERR(3, 14083, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -200959,62 +200149,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14131, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14111, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14131, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14111, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 14131, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 14111, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14111, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14111, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14131, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14111, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -201023,24 +200213,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14131, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14111, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14131, __pyx_L3_error) + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14111, __pyx_L3_error) } else { __pyx_v_atrperiod = ((int)-2147483648); } if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14131, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14111, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 14131, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 14111, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -201088,42 +200278,42 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14132, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14133, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14135, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14135, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14115, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14135, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14115, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14135, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14115, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14136, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14116, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14137, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14117, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14138, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14118, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -201135,7 +200325,7 @@ static int __pyx_pf_5talib_7_ta_lib_9KC_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14145, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -201226,62 +200416,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14151, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14131, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14151, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14131, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 14151, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 14131, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14131, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14131, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14131, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14151, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14131, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -201290,24 +200480,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14152, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14132, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14152, __pyx_L3_error) + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14132, __pyx_L3_error) } else { __pyx_v_atrperiod = ((int)-2147483648); } if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14152, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14132, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 14151, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 14131, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -201357,66 +200547,62 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14153, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14154, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14155, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14156, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14156, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14136, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14156, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14136, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14156, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14136, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14157, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14137, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14158, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14138, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14159, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14139, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14161, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14162, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14163, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outlowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -201430,13 +200616,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14169, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14170, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -201445,91 +200631,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outupperband)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmiddleband)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outlowerband)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 14153, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -201539,9 +200710,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_4open_and_fill(PyObject *__ __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.KC_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -201608,46 +200776,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14175, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14155, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14155, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14155, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14155, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14175, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14155, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 14175, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 14155, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14155, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14155, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14175, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14155, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14176, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14176, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14176, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14156, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14156, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14156, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14175, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14155, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -201683,9 +200851,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5t PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -201698,53 +200863,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14182, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14183, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14183, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 14163, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 14163, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 14163, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -201754,8 +200904,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_6update(struct __pyx_obj_5t __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.KC_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -201810,46 +200958,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14185, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14165, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14185, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14165, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 14185, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 14165, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14165, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14165, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14165, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14186, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14186, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14186, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14166, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14166, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14166, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14185, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14165, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -201885,9 +201033,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5tal PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -201900,53 +201045,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14192, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14193, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14193, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 14173, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -201956,8 +201086,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_8peek(struct __pyx_obj_5tal __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.KC_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -201998,9 +201126,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -202013,53 +201138,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14202, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KC_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14203, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outupperband); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14203, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmiddleband); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outlowerband); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 14183, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 14183, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 14183, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -202069,8 +201179,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_5value___get__(struct __pyx __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.KC_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -202185,7 +201293,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14216, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -202198,10 +201306,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9KC_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14217, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream))))) __PYX_ERR(3, 14217, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream))))) __PYX_ERR(3, 14197, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KC_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -202317,78 +201425,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14249, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14227, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14249, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14227, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 14249, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 14227, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14227, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14227, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14227, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14227, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -202397,34 +201505,34 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14227, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14227, __pyx_L3_error) } else { __pyx_v_slowk_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14227, __pyx_L3_error) } else { __pyx_v_slowk_matype = ((int)13); } if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14227, __pyx_L3_error) } else { __pyx_v_slowd_period = ((int)-2147483648); } if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14249, __pyx_L3_error) + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14227, __pyx_L3_error) } else { __pyx_v_slowd_matype = ((int)13); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 14249, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 14227, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -202474,42 +201582,42 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14250, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14251, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14252, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14253, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14253, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14231, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14253, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14231, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14253, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14231, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14254, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14232, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14255, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14233, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14256, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14234, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -202521,7 +201629,7 @@ static int __pyx_pf_5talib_7_ta_lib_10KDJ_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14263, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -202614,78 +201722,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14269, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14247, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14269, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14247, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 14269, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 14247, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 14247, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14247, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14247, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14269, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14247, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -202694,34 +201802,34 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14248, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14248, __pyx_L3_error) } else { __pyx_v_slowk_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14248, __pyx_L3_error) } else { __pyx_v_slowk_matype = ((int)13); } if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14248, __pyx_L3_error) } else { __pyx_v_slowd_period = ((int)-2147483648); } if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14270, __pyx_L3_error) + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14248, __pyx_L3_error) } else { __pyx_v_slowd_matype = ((int)13); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 14269, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 14247, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -202773,66 +201881,62 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14274, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 14252, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 14252, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14274, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 14252, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14275, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14253, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14276, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14254, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14277, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14255, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -202846,13 +201950,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14287, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_KDJ_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14288, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_KDJ_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -202861,91 +201965,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outk)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outd)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outj)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14291, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outj)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 14291, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 14269, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -202955,9 +202044,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_4open_and_fill(PyObject * __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -203024,46 +202110,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14293, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14271, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14293, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14271, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 14293, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 14271, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14271, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14271, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14293, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14271, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14294, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14294, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14294, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14272, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14272, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14272, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14293, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14271, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -203099,9 +202185,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_ PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -203114,53 +202197,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14300, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14301, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14301, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 14279, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 14279, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 14279, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -203170,8 +202238,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_6update(struct __pyx_obj_ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -203226,46 +202292,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14303, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14281, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14303, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14281, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 14303, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 14281, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14281, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14281, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14303, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14281, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14304, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14304, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14304, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14282, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14282, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14282, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14303, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 14281, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -203301,9 +202367,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5t PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -203316,53 +202379,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14311, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14311, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 14289, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 14289, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 14289, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -203372,8 +202420,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_8peek(struct __pyx_obj_5t __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -203414,9 +202460,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __p PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -203429,53 +202472,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14320, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_KDJ_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14321, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 14299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14321, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 14321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outj); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 14321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 14299, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 14299, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 14299, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -203485,8 +202513,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_5value___get__(struct __p __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.KDJ_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -203601,7 +202627,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14334, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -203614,10 +202640,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10KDJ_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14335, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream))))) __PYX_ERR(3, 14335, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream))))) __PYX_ERR(3, 14313, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -203727,48 +202753,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14359, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14337, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14359, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14337, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14359, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14337, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14359, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14337, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14359, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14337, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14359, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14337, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14359, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14337, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14359, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14337, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14359, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14337, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -203810,26 +202836,26 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14360, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14361, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14361, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14339, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14362, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14340, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14363, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14341, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14364, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14342, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -203841,7 +202867,7 @@ static int __pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_2__init__(struct __pyx_ob if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14369, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -203924,48 +202950,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14375, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14353, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14375, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14353, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14375, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14353, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14375, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14353, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14376, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14354, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14375, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14353, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -204012,31 +203038,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14377, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14378, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14378, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14356, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14379, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14357, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14380, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14358, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14381, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14359, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14383, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -204050,13 +203076,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14389, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14390, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -204065,21 +203091,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_4open_and_fill(PyOb __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14393, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14393, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14393, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14371, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14393, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14393, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14371, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14393, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14371, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -204157,32 +203183,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14395, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14373, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14395, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14373, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14395, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14373, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14395, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14373, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14395, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14373, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14396, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14374, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14395, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14373, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -204223,13 +203249,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_6update(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14400, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14401, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -204296,32 +203322,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14403, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14381, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14381, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14403, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14381, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14403, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14381, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14403, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14381, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14404, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14382, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14403, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14381, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -204362,13 +203388,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_8peek(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14408, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14409, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -204430,13 +203456,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_5value___get__(stru if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14416, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14417, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -204565,7 +203591,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14430, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -204578,10 +203604,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16LINEARREG_Stream_10copy(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14431, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream))))) __PYX_ERR(3, 14431, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream))))) __PYX_ERR(3, 14409, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -204691,48 +203717,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14455, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14433, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14433, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14433, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14455, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14433, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14455, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14433, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14433, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14433, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14455, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14433, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14455, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14433, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -204774,26 +203800,26 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14456, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14457, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14457, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14435, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14458, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14436, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14459, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14437, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14460, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14438, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -204805,7 +203831,7 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14465, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -204888,48 +203914,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14471, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14449, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14449, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14449, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14471, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14449, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14471, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14449, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14449, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14471, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14449, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14472, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14450, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14471, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14449, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -204976,31 +204002,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14473, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14474, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14474, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14452, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14475, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14453, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14476, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14454, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14477, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14455, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14479, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -205014,13 +204040,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14485, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14486, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_ANGLE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -205029,21 +204055,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_4open_and_fil __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14489, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14489, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14489, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14467, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14489, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14489, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14467, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14489, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14467, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -205121,32 +204147,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14491, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14469, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14469, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14491, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14469, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14491, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14469, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14469, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14492, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14470, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14491, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14469, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -205187,13 +204213,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_6update(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14496, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14497, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -205260,32 +204286,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14499, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14477, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14499, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14477, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14499, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14477, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14499, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14477, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14500, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14478, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14499, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14477, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -205326,13 +204352,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14504, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14505, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -205394,13 +204420,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5value___get_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14512, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14513, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -205529,7 +204555,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14526, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -205542,10 +204568,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14527, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream))))) __PYX_ERR(3, 14527, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream))))) __PYX_ERR(3, 14505, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -205655,48 +204681,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14551, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14529, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14529, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14529, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14551, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14529, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14551, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14529, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14529, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14551, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14529, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14551, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14529, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14551, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14529, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -205738,26 +204764,26 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14552, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14553, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14553, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14531, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14554, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14532, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14555, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14533, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14556, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14534, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -205769,7 +204795,7 @@ static int __pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_2__init__(struc if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14561, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -205852,48 +204878,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14567, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14545, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14567, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14545, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14567, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14545, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14545, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14567, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14545, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14568, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14546, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14567, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14545, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -205940,31 +204966,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14569, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14570, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14570, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14548, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14571, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14549, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14572, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14550, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14573, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14551, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14575, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -205978,13 +205004,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14581, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14582, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -205993,21 +205019,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_4open_and __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14585, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14585, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14585, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14563, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14585, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14585, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14563, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14585, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14563, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -206085,32 +205111,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14587, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14565, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14587, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14587, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14565, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14587, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14565, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14587, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14565, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14588, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14566, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14587, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14565, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -206151,13 +205177,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_6update(s if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14592, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14593, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -206224,32 +205250,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14595, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14573, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14595, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14573, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14595, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14573, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14595, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14573, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14595, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14573, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14596, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14574, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14595, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14573, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -206290,13 +205316,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_8peek(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14600, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14601, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -206358,13 +205384,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5value___ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14608, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14609, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -206493,7 +205519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14622, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -206506,10 +205532,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_10copy(st PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14623, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream))))) __PYX_ERR(3, 14623, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream))))) __PYX_ERR(3, 14601, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -206619,48 +205645,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14647, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14625, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14647, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14647, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14647, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14625, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14647, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 14625, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14647, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14647, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14625, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14647, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14625, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14647, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14625, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -206702,26 +205728,26 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14648, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14649, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14649, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14627, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14650, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14628, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14651, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14629, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14652, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14630, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -206733,7 +205759,7 @@ static int __pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_2__init__(struct __ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14657, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -206816,48 +205842,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14663, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14641, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14663, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14641, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14663, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 14641, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14641, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14663, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14641, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14664, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14642, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14663, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 14641, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -206904,31 +205930,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14665, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14666, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14666, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14644, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14667, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14645, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14668, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14646, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14669, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14647, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14671, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -206942,13 +205968,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14677, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14678, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LINEARREG_SLOPE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -206957,21 +205983,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_4open_and_fil __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14681, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14681, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14681, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14659, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14681, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14681, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14659, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14681, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14659, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -207049,32 +206075,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14683, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14661, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14683, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14661, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14683, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14661, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14661, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14684, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14662, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14683, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14661, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -207115,13 +206141,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_6update(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14688, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14689, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -207188,32 +206214,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14691, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14669, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14669, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14691, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14669, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14691, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14669, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14669, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14692, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14670, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14691, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14669, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -207254,13 +206280,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_8peek(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14696, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14697, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -207322,13 +206348,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5value___get_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14704, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14705, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -207457,7 +206483,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14718, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -207470,10 +206496,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_10copy(struct PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14719, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream))))) __PYX_ERR(3, 14719, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream))))) __PYX_ERR(3, 14697, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -207582,32 +206608,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14741, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14719, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14741, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14719, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14741, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14719, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 14741, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 14719, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14741, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14719, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14741, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14719, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -207648,26 +206674,26 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14742, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14743, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14743, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14721, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14744, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14722, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14745, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14723, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14746, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14724, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -207679,7 +206705,7 @@ static int __pyx_pf_5talib_7_ta_lib_9LN_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14751, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -207761,32 +206787,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14757, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14735, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14757, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14735, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 14757, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 14735, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14735, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14757, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14735, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -207832,31 +206858,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14759, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14760, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14760, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14738, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14761, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14739, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14762, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14740, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14763, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14741, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14765, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -207870,13 +206896,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14771, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14772, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -207885,21 +206911,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14775, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14775, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14775, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14753, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14775, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14775, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14753, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14775, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14753, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -207977,32 +207003,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14777, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14755, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14777, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14755, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14777, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14755, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14777, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14755, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14778, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14756, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14777, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14755, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -208043,13 +207069,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14782, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14783, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -208116,32 +207142,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14785, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14763, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14785, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14763, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14785, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14763, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14763, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14786, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14764, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14785, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14763, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -208182,13 +207208,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14790, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14791, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -208250,13 +207276,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14798, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14799, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -208385,7 +207411,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14812, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -208398,10 +207424,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9LN_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14813, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream))))) __PYX_ERR(3, 14813, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream))))) __PYX_ERR(3, 14791, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -208510,32 +207536,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14835, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14813, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14813, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14835, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14813, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 14835, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 14813, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14813, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14835, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14813, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -208576,26 +207602,26 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14836, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14837, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14837, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14815, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14838, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14816, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14839, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14817, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14840, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14818, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -208607,7 +207633,7 @@ static int __pyx_pf_5talib_7_ta_lib_12LOG10_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LOG10_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14845, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_LOG10_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -208689,32 +207715,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14851, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14829, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14851, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14829, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14851, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14829, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 14851, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 14829, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14851, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14829, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14851, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14829, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -208760,31 +207786,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14854, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14854, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14832, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14855, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14833, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14856, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14834, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14857, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14835, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14859, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -208798,13 +207824,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14865, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_LOG10_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14866, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_LOG10_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -208813,21 +207839,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14869, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14869, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14869, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14847, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14869, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14869, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14847, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14869, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14847, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -208905,32 +207931,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14871, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14849, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14849, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14871, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14849, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14871, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14849, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14871, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14849, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14872, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14850, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14871, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14849, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -208971,13 +207997,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14876, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14877, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -209044,32 +208070,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14879, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14857, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14857, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14879, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14857, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14879, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14857, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14879, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14857, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14880, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14858, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14879, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14857, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -209110,13 +208136,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14884, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14885, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14863, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -209178,13 +208204,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14892, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14893, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -209313,7 +208339,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14906, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -209326,10 +208352,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12LOG10_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14907, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream))))) __PYX_ERR(3, 14907, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream))))) __PYX_ERR(3, 14885, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -209440,61 +208466,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14932, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14910, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14910, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14910, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14910, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14932, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 14910, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 14932, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 14910, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14910, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14910, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14932, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14910, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14932, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14910, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14932, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14910, __pyx_L3_error) } else { __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 14932, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 14910, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -209537,26 +208563,26 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14933, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14934, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14912, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14935, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14913, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14936, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14914, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14937, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14915, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -209568,7 +208594,7 @@ static int __pyx_pf_5talib_7_ta_lib_9MA_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14942, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -209652,61 +208678,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14948, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14926, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14948, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 14926, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 14948, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 14926, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 14926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 14926, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14948, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14926, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14949, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14927, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14949, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 14927, __pyx_L3_error) } else { __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 14948, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 14926, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -209754,31 +208780,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14950, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14951, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14951, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 14929, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14952, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 14930, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14953, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 14931, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14954, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 14932, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14956, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -209792,13 +208818,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14962, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14963, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -209807,21 +208833,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14966, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14966, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14966, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 14944, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 14944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14966, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14966, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 14944, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14966, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 14944, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -209899,32 +208925,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14968, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14946, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14946, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14968, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 14946, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14968, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 14946, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14968, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14946, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14969, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14947, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14968, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14946, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -209965,13 +208991,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14973, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14974, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -210038,32 +209064,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14976, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 14954, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14954, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14976, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 14954, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14976, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 14954, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 14954, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14977, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 14955, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14976, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 14954, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -210104,13 +209130,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14982, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -210172,13 +209198,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14989, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14990, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -210307,7 +209333,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15003, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -210320,10 +209346,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9MA_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15004, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream))))) __PYX_ERR(3, 15004, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream))))) __PYX_ERR(3, 14982, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -210435,74 +209461,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15034, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15010, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15034, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15010, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 15034, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 15010, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15034, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15010, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15034, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15010, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15034, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15010, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15034, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15010, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 15034, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 15010, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -210548,26 +209574,26 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15035, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15036, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15036, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15012, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15037, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15013, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15038, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15014, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15039, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15015, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -210579,7 +209605,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MACD_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15046, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -210666,74 +209692,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15052, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15028, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15052, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15028, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 15052, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 15028, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15052, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15028, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15053, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15029, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15053, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15029, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15053, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15029, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 15052, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 15028, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -210781,50 +209807,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15054, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15055, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15055, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15031, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15056, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15032, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15057, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15033, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15058, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15034, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15060, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15061, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15062, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -210838,13 +209860,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15068, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -210853,73 +209875,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15072, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15072, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15048, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -210929,9 +209936,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_4open_and_fill(PyObject __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -210994,32 +209998,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15074, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15050, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15050, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15074, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15050, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15074, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15050, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15050, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15075, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15051, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15074, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15050, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -211053,9 +210057,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -211068,53 +210069,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15081, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15082, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15082, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15058, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15058, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15058, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -211124,8 +210110,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_6update(struct __pyx_obj __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -211178,32 +210162,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15084, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15060, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15060, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15084, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15060, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15084, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15060, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15060, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15085, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15061, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15084, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15060, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -211237,9 +210221,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -211252,53 +210233,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15091, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15092, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15092, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15092, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15068, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15068, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15068, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -211308,8 +210274,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_8peek(struct __pyx_obj_5 __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -211350,9 +210314,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __ PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -211365,53 +210326,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15101, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACD_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15102, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15102, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15078, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15078, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15078, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -211421,8 +210367,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_5value___get__(struct __ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACD_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -211537,7 +210481,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15115, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -211550,10 +210494,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MACD_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15116, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream))))) __PYX_ERR(3, 15116, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream))))) __PYX_ERR(3, 15092, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -211668,113 +210612,113 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15149, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15123, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15149, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15123, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, i); __PYX_ERR(3, 15149, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, i); __PYX_ERR(3, 15123, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15123, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15123, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15123, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15123, __pyx_L3_error) } else { __pyx_v_fastmatype = ((int)0); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15123, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15123, __pyx_L3_error) } else { __pyx_v_slowmatype = ((int)0); } if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15123, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15149, __pyx_L3_error) + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15123, __pyx_L3_error) } else { __pyx_v_signalmatype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 15149, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 15123, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -211823,26 +210767,26 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15150, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15151, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15151, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15125, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15152, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15126, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15153, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15127, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15154, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15128, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -211854,7 +210798,7 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15161, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -211944,113 +210888,113 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15167, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15141, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15167, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15141, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, i); __PYX_ERR(3, 15167, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, i); __PYX_ERR(3, 15141, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15167, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15141, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15142, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15142, __pyx_L3_error) } else { __pyx_v_fastmatype = ((int)0); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15142, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15142, __pyx_L3_error) } else { __pyx_v_slowmatype = ((int)0); } if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15142, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15168, __pyx_L3_error) + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15142, __pyx_L3_error) } else { __pyx_v_signalmatype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 15167, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 7, __pyx_nargs); __PYX_ERR(3, 15141, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -212101,50 +211045,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15169, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15170, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15170, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15144, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15171, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15145, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15172, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15146, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15173, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15147, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15176, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15177, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -212158,13 +211098,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15183, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15184, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDEXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -212173,73 +211113,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15187, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15161, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -212249,9 +211174,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_4open_and_fill(PyObje __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -212314,32 +211236,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15189, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15163, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15163, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15189, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15163, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15189, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15163, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15163, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15190, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15164, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15189, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15163, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -212373,9 +211295,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_ PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212388,53 +211307,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15196, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15197, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15197, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15171, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15171, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15171, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -212444,8 +211348,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_6update(struct __pyx_ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -212498,32 +211400,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15199, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15173, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15199, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15173, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15199, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15173, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15199, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15173, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15199, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15173, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15200, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15174, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15199, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15173, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -212557,9 +211459,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_ob PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212572,53 +211471,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15206, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15207, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15207, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15181, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15181, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15181, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -212628,8 +211512,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_8peek(struct __pyx_ob __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -212670,9 +211552,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -212685,53 +211564,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15216, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15217, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15217, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15191, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15191, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15191, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -212741,8 +211605,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACDEXT_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -212857,7 +211719,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15230, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -212870,10 +211732,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDEXT_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15231, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream))))) __PYX_ERR(3, 15231, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream))))) __PYX_ERR(3, 15205, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -212983,48 +211845,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15259, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15231, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15231, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15231, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15259, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15231, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15259, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15231, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15231, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15259, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15231, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15259, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15231, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15259, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15231, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -213068,26 +211930,26 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15260, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15261, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15261, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15233, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15262, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15234, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15263, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15235, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15264, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15236, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -213099,7 +211961,7 @@ static int __pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACDFIX_Lookback(__pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15271, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MACDFIX_Lookback(__pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -213184,48 +212046,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15277, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15249, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15277, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15249, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15277, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15249, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15249, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15277, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15249, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15278, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15250, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15277, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15249, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -213271,50 +212133,46 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - size_t __pyx_t_11; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15280, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15280, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15252, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15281, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15253, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15282, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15254, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15283, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15255, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15285, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15286, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15287, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -213328,13 +212186,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15293, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15294, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MACDFIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -213343,73 +212201,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacd)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdsignal)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); - __pyx_t_10 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_11 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_11 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_8, __pyx_t_9, __pyx_t_10}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_11, (4-__pyx_t_11) | (__pyx_t_11*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmacdhist)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_7) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15297, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15269, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_6; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_6 = 0; + __pyx_t_7 = 0; goto __pyx_L0; @@ -213419,9 +212262,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_4open_and_fill(PyObje __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -213484,32 +212324,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15299, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15271, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15299, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15271, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15299, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15271, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15271, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15300, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15272, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15299, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15271, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -213543,9 +212383,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_ PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -213558,53 +212395,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15306, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15307, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15307, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15279, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15279, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15279, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -213614,8 +212436,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_6update(struct __pyx_ __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -213668,32 +212488,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15309, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15281, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15309, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15281, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15309, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15281, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15309, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15281, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15310, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15282, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15309, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15281, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -213727,9 +212547,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_ob PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -213742,53 +212559,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15316, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15317, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15317, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15289, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15289, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15289, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -213798,8 +212600,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_8peek(struct __pyx_ob __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -213840,9 +212640,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - size_t __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -213855,53 +212652,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15326, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15327, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15327, __pyx_L1_error) + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_8 = 0; - } - #endif - { - PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_t_5, __pyx_t_6, __pyx_t_7}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_8, (4-__pyx_t_8) | (__pyx_t_8*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15299, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15299, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(3, 15299, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; @@ -213911,8 +212693,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.MACDFIX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -214027,7 +212807,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15340, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -214040,10 +212820,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14MACDFIX_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15341, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream))))) __PYX_ERR(3, 15341, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream))))) __PYX_ERR(3, 15313, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -214154,61 +212934,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15369, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15339, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15339, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15339, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15339, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15369, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15339, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 15369, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 15339, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15339, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15339, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15339, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15369, __pyx_L3_error) + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15339, __pyx_L3_error) } else { __pyx_v_fastlimit = ((double)-4e37); } if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15369, __pyx_L3_error) + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15339, __pyx_L3_error) } else { __pyx_v_slowlimit = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 15369, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 15339, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -214252,26 +213032,26 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15371, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15371, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15341, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15372, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15342, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15373, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15343, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15374, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15344, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -214283,7 +213063,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MAMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15380, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -214368,61 +213148,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15386, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15356, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15356, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15356, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15356, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15386, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15356, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 15386, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 15356, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15356, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15356, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15386, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15356, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15387, __pyx_L3_error) + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15357, __pyx_L3_error) } else { __pyx_v_fastlimit = ((double)-4e37); } if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15387, __pyx_L3_error) + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15357, __pyx_L3_error) } else { __pyx_v_slowlimit = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 15386, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 15356, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -214467,45 +213247,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15388, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15389, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15389, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15359, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15390, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15360, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15391, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15361, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15392, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15362, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15394, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -214519,13 +213295,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15401, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -214534,54 +213310,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmama)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 15405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15375, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmama)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfama)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15405, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15375, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfama)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 15375, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 15375, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15375, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15405, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 15375, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -214600,9 +213359,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_4open_and_fill(PyObject __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -214664,32 +213420,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15407, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15377, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15377, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15407, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15377, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15407, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15377, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15377, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15408, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15378, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15407, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15377, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -214721,9 +213477,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -214736,50 +213489,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15413, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15414, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15414, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15384, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15384, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -214788,8 +213524,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_6update(struct __pyx_obj __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -214841,32 +213575,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15416, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15386, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15386, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15416, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15386, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15416, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15386, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15416, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15386, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15417, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15387, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15416, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15386, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -214898,9 +213632,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5 PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -214913,50 +213644,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15422, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15423, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15393, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15393, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -214965,8 +213679,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_8peek(struct __pyx_obj_5 __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -215004,9 +213716,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -215019,50 +213728,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15431, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MAMA_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15432, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 15402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 15432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 15402, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 15402, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -215071,8 +213763,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_5value___get__(struct __ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MAMA_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -215186,7 +213876,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15445, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -215199,10 +213889,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAMA_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15446, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream))))) __PYX_ERR(3, 15446, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream))))) __PYX_ERR(3, 15416, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -215313,38 +214003,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15468, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15438, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15468, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15438, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 15468, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 15438, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15438, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15438, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15438, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -215352,7 +214042,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15468, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15438, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -215395,42 +214085,42 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15469, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15470, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15471, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15472, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15442, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15442, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15472, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15442, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15473, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15443, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15474, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15444, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15475, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15445, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -215442,7 +214132,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MARKETFI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15480, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MARKETFI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -215528,38 +214218,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15486, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15456, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15486, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15456, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 15486, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 15456, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15456, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15456, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15486, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15456, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -215567,7 +214257,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15486, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15456, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -215615,47 +214305,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15488, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15490, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15491, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15491, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15461, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15491, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15461, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15491, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 15461, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15492, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15462, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15493, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15463, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15494, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15464, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15496, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -215669,13 +214359,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15502, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MARKETFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -215684,27 +214374,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15506, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15476, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15476, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_volume) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15506, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_volume) != (0)) __PYX_ERR(3, 15476, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15506, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15476, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15506, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15476, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -215786,46 +214476,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15508, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15478, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15508, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15478, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 15508, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 15478, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15478, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15478, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15508, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15478, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15509, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15509, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15509, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15479, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15479, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15479, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15508, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15478, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -215868,13 +214558,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15513, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15514, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -215943,46 +214633,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15516, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15486, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15516, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15486, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 15516, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 15486, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15486, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15486, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15516, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15486, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15517, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15517, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15517, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15487, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15487, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15487, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15516, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 15486, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -216025,13 +214715,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15521, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15522, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -216093,13 +214783,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15529, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15530, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -216228,7 +214918,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15543, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -216241,10 +214931,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MARKETFI_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15544, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream))))) __PYX_ERR(3, 15544, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream))))) __PYX_ERR(3, 15514, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -216356,48 +215046,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15569, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15539, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15569, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15539, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 15569, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 15539, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15539, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15569, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15539, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -216405,19 +215095,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15569, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15539, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15569, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15539, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15569, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15539, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -216461,34 +215151,34 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15571, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15572, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15572, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15542, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15572, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15542, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15573, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15543, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15574, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15544, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15575, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15545, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -216500,7 +215190,7 @@ static int __pyx_pf_5talib_7_ta_lib_12MASSI_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15580, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -216586,48 +215276,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15586, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15556, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15586, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15556, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 15586, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 15556, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15556, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15556, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15556, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -216635,19 +215325,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15587, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15557, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15587, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15557, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15586, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 15556, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -216696,39 +215386,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15588, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15589, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15590, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15560, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15560, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15590, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15560, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15591, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15561, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15592, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15562, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15593, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15563, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -216742,13 +215432,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15601, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MASSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15602, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MASSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -216757,24 +215447,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15605, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15575, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15605, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15575, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15605, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15575, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15605, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15575, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -216854,39 +215544,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15607, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15577, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15577, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15577, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15607, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15577, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15607, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15577, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15577, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15577, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15608, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15608, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15578, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15578, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15607, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15577, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -216928,13 +215618,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15612, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15613, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -217002,39 +215692,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15615, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15585, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15585, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15585, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15615, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15585, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15615, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15585, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15585, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15615, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15585, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15616, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15616, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15586, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15586, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15615, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15585, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -217076,13 +215766,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15620, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15621, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -217144,13 +215834,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15628, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15629, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -217279,7 +215969,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15642, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -217292,10 +215982,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12MASSI_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15643, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream))))) __PYX_ERR(3, 15643, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream))))) __PYX_ERR(3, 15613, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -217408,56 +216098,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15670, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15640, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15670, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15640, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 15670, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, i); __PYX_ERR(3, 15640, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15640, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15670, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15640, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -217465,24 +216155,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real = values[0]; __pyx_v_periods = values[1]; if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15670, __pyx_L3_error) + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15640, __pyx_L3_error) } else { __pyx_v_minperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15670, __pyx_L3_error) + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15640, __pyx_L3_error) } else { __pyx_v_maxperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15670, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15640, __pyx_L3_error) } else { __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 15670, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 15640, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -217527,34 +216217,34 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15671, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15672, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15673, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15673, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15643, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_periods); __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 15673, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 15643, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15674, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15644, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15675, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15645, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15676, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15646, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -217566,7 +216256,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MAVP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15681, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -217653,56 +216343,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15687, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15657, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15687, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15657, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 15687, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, i); __PYX_ERR(3, 15657, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 15657, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15657, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15687, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15657, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -217710,24 +216400,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real = values[0]; __pyx_v_periods = values[1]; if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15688, __pyx_L3_error) + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15658, __pyx_L3_error) } else { __pyx_v_minperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15688, __pyx_L3_error) + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15658, __pyx_L3_error) } else { __pyx_v_maxperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15688, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15658, __pyx_L3_error) } else { __pyx_v_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 15687, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 5, __pyx_nargs); __PYX_ERR(3, 15657, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -217777,39 +216467,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15689, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_periods = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15691, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15691, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15661, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_periods); __Pyx_GIVEREF((PyObject *)__pyx_v_a_periods); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 15691, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_periods)) != (0)) __PYX_ERR(3, 15661, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15692, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15662, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15693, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15663, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15694, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15664, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15696, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -217823,13 +216513,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15702, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAVP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15703, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAVP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -217838,24 +216528,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15706, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15676, __pyx_L1_error); __Pyx_INCREF(__pyx_v_periods); __Pyx_GIVEREF(__pyx_v_periods); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_periods) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15706, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_periods) != (0)) __PYX_ERR(3, 15676, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15706, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15676, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15706, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15676, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -217935,39 +216625,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15708, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15678, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15708, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15678, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15708, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15678, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15678, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15708, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15678, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15709, __pyx_L3_error) - __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15709, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15679, __pyx_L3_error) + __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15679, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15708, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15678, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -218009,13 +216699,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15713, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15714, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -218083,39 +216773,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15716, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15686, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15716, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15686, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15716, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15686, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15716, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15686, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15716, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15686, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15716, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15686, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15716, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15686, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15717, __pyx_L3_error) - __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15717, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15687, __pyx_L3_error) + __pyx_v_periods = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_periods == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15687, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15716, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15686, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -218157,13 +216847,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15721, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15722, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -218225,13 +216915,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15729, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15730, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -218360,7 +217050,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15743, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -218373,10 +217063,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MAVP_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15744, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream))))) __PYX_ERR(3, 15744, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream))))) __PYX_ERR(3, 15714, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -218486,48 +217176,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15768, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15738, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15768, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15768, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15768, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15738, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15768, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15738, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15768, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15738, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15768, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15738, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15768, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15738, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15768, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15738, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -218569,26 +217259,26 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15770, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15770, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15740, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15771, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15741, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15772, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15742, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15773, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15743, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -218600,7 +217290,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MAX_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15778, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -218683,48 +217373,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15784, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15754, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15754, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15754, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15784, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15754, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15784, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15754, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15754, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15754, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15785, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15755, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15784, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15754, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -218771,31 +217461,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15786, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15787, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15787, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15757, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15788, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15758, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15789, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15759, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15790, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15760, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -218809,13 +217499,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15798, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15799, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -218824,21 +217514,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15802, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15802, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15802, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15772, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15802, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15772, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15772, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -218916,32 +217606,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15804, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15774, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15804, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15804, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15774, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15804, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15774, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15804, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15774, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15805, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15775, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15804, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15774, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -218982,13 +217672,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15809, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15810, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -219055,32 +217745,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15812, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15782, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15812, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15782, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15812, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15782, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15812, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15782, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15812, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15782, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15813, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15783, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15812, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15782, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -219121,13 +217811,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15817, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15818, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -219189,13 +217879,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15825, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15826, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -219324,7 +218014,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15839, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -219337,10 +218027,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MAX_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15840, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream))))) __PYX_ERR(3, 15840, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream))))) __PYX_ERR(3, 15810, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -219450,48 +218140,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15864, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15834, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15834, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15834, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15864, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15834, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15864, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 15834, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15834, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15864, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15834, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15864, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15834, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15864, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15834, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -219533,26 +218223,26 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15865, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15866, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15866, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15836, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15867, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15837, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15868, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15838, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15869, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15839, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -219564,7 +218254,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAXINDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15874, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MAXINDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -219647,48 +218337,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15880, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15850, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15880, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15850, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15880, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 15850, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15850, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15881, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 15851, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15880, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 15850, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -219740,31 +218430,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15883, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15883, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 15853, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15884, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15854, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15885, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15855, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15886, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15856, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15888, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -219778,7 +218468,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15894, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -219799,7 +218489,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -219808,21 +218498,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15902, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15902, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15902, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 15872, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 15872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15902, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15902, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15872, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(3, 15902, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(3, 15872, __pyx_L1_error); __pyx_t_8 = 0; { PyObject *__pyx_temp; @@ -219902,32 +218592,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15904, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15874, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15904, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15904, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15874, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15904, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 15874, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15904, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15874, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15905, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15875, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15904, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15874, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -219968,13 +218658,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15909, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15910, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -220041,32 +218731,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15912, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15882, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15912, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15882, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15912, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15882, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15912, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 15882, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15912, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15882, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15913, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15883, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15912, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 15882, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -220107,13 +218797,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15917, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15918, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -220175,13 +218865,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15925, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15926, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -220310,7 +219000,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15939, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -220323,10 +219013,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MAXINDEX_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15940, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream))))) __PYX_ERR(3, 15940, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream))))) __PYX_ERR(3, 15910, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -220436,39 +219126,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15962, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15932, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15932, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15932, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15962, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 15932, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 15962, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 15932, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15932, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15962, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15932, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15962, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15932, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -220510,34 +219200,34 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15963, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15964, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15965, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15935, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15965, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15935, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15966, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15936, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15967, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15937, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15968, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15938, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -220549,7 +219239,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MEDPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15973, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MEDPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -220633,39 +219323,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15979, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15949, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15949, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15949, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15979, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 15949, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 15979, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 15949, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15949, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15979, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15949, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15979, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15949, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -220712,39 +219402,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15982, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15983, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15983, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 15953, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15983, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 15953, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15984, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 15954, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15985, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 15955, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15986, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 15956, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15988, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -220758,13 +219448,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15994, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15995, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MEDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -220773,24 +219463,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15998, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 15968, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15998, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 15968, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 15968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15998, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 15968, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 15968, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -220870,39 +219560,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16000, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15970, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16000, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15970, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16000, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15970, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16000, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 15970, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16000, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 15970, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16000, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15970, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16000, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15970, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16001, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16001, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15971, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15971, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16000, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15970, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -220944,13 +219634,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16005, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16006, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -221018,39 +219708,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16008, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 15978, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16008, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16008, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15978, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16008, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 15978, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16008, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 15978, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16008, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 15978, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16008, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 15978, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16009, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16009, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15979, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 15979, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16008, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 15978, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -221092,13 +219782,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16013, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16014, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -221160,13 +219850,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16021, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16022, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -221295,7 +219985,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16035, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -221308,10 +219998,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MEDPRICE_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16036, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream))))) __PYX_ERR(3, 16036, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream))))) __PYX_ERR(3, 16006, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -221424,52 +220114,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16060, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16030, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16060, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16030, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 16060, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, i); __PYX_ERR(3, 16030, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16030, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16030, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16030, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16030, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16030, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -221479,14 +220169,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[2]; __pyx_v_volume = values[3]; if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16060, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16030, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 16060, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 16030, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -221531,50 +220221,50 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16061, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16062, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16063, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16064, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16065, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16035, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16035, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16035, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16065, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16035, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16066, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16036, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16067, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16037, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16068, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16038, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -221586,7 +220276,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MFI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MFI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16073, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MFI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -221675,52 +220365,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16079, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16049, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16079, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16049, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 16079, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, i); __PYX_ERR(3, 16049, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 16049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16049, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16049, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16049, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16079, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16049, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -221730,14 +220420,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = values[2]; __pyx_v_volume = values[3]; if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16080, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16050, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 16079, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 4, 5, __pyx_nargs); __PYX_ERR(3, 16049, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -221787,55 +220477,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16082, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16083, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16084, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16085, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16085, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 16055, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16086, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16056, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16087, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16057, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16088, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16058, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16090, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -221849,13 +220539,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16096, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MFI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16097, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MFI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -221864,30 +220554,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16100, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16070, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16070, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16070, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16100, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 16070, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16100, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16070, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16100, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16070, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -221971,53 +220661,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16102, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16072, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16102, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16072, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 16102, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 16072, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16072, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16072, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16072, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16102, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16072, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16103, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16073, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16073, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16073, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16073, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 16102, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 16072, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -222061,13 +220751,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16107, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16108, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -222137,53 +220827,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16110, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16080, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16080, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16110, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16080, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 16110, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 16080, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16080, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16080, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16080, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16110, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16080, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16111, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16081, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16081, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16081, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16081, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 16110, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 16080, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -222227,13 +220917,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16115, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16116, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -222295,13 +220985,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16123, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16124, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -222430,7 +221120,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16137, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -222443,10 +221133,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MFI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16138, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream))))) __PYX_ERR(3, 16138, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream))))) __PYX_ERR(3, 16108, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MFI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -222556,48 +221246,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16162, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16132, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16162, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16132, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16162, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16132, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16132, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16162, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16132, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16162, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16132, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -222639,26 +221329,26 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16163, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16164, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16164, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16134, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16165, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16135, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16166, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16136, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16167, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16137, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -222670,7 +221360,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIDPOINT_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16172, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIDPOINT_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -222753,48 +221443,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16178, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16148, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16148, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16148, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16178, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16148, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16178, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16148, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16148, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16148, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16179, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16149, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16148, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -222841,31 +221531,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16181, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16151, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16182, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16152, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16183, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16153, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16184, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16154, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16186, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -222879,13 +221569,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16192, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPOINT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -222894,21 +221584,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16196, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16196, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16166, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16166, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16166, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -222986,32 +221676,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16198, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16168, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16168, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16198, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16168, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16198, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16168, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16168, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16199, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16169, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16198, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16168, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -223052,13 +221742,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16203, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16204, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -223125,32 +221815,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16206, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16176, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16206, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16176, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16206, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16176, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16176, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16207, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16177, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16206, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16176, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -223191,13 +221881,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16211, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16212, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -223259,13 +221949,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16219, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16220, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -223394,7 +222084,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16233, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -223407,10 +222097,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPOINT_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16234, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream))))) __PYX_ERR(3, 16234, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream))))) __PYX_ERR(3, 16204, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -223521,40 +222211,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16258, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16228, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16228, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16228, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16228, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16258, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16228, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16258, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16228, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16228, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16228, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16258, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16228, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -223562,14 +222252,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16258, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16228, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16258, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16228, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -223612,34 +222302,34 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16259, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16260, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16261, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16261, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16231, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16261, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16231, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16262, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16232, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16263, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16233, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16264, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16234, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -223651,7 +222341,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIDPRICE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16269, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIDPRICE_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -223736,40 +222426,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16275, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16245, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16275, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16245, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16275, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16245, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16245, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16245, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16275, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16245, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -223777,14 +222467,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16276, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16246, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16275, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16245, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -223832,39 +222522,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16277, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16278, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16279, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16279, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16249, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16279, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16249, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16280, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16250, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16281, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16251, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16282, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16252, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16284, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -223878,13 +222568,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16290, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16291, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIDPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -223893,24 +222583,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16294, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16264, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16294, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16264, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16294, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16264, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16294, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16264, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -223990,39 +222680,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16296, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16266, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16266, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16296, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16266, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16296, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16266, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16266, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16266, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16297, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16297, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16267, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16267, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16266, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -224064,13 +222754,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16301, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16302, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -224138,39 +222828,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16304, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16274, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16274, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16274, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16304, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16274, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16304, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16274, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16274, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16304, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16274, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16305, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16305, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16275, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16275, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16304, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16274, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -224212,13 +222902,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16309, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16310, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -224280,13 +222970,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16317, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16318, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -224415,7 +223105,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16331, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -224428,10 +223118,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MIDPRICE_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16332, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream))))) __PYX_ERR(3, 16332, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream))))) __PYX_ERR(3, 16302, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -224541,48 +223231,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16356, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16326, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16356, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16326, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16356, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16326, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16326, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16356, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16326, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16356, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16326, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16356, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16326, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -224624,26 +223314,26 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16357, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16358, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16358, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16328, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16359, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16329, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16360, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16330, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16361, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16331, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -224655,7 +223345,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MIN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIN_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16366, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MIN_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -224738,48 +223428,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16372, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16342, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16372, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16342, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16372, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16342, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16372, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16342, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16372, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16342, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16372, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16342, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16372, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16342, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16373, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16343, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16372, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16342, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -224826,31 +223516,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16374, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16375, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16375, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16345, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16376, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16346, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16377, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16347, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16378, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16348, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -224864,13 +223554,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16386, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16387, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -224879,21 +223569,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16390, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16390, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16390, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16360, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16390, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16390, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16360, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16390, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16360, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -224971,32 +223661,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16392, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16362, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16362, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16392, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16362, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16392, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16362, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16392, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16362, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16393, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16363, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16392, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16362, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -225037,13 +223727,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16397, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16398, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -225110,32 +223800,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16400, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16370, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16370, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16400, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16370, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16400, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16370, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16370, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16401, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16371, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16400, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16370, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -225176,13 +223866,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16405, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16406, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -225244,13 +223934,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16413, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16414, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -225379,7 +224069,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16427, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -225392,10 +224082,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MIN_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16428, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream))))) __PYX_ERR(3, 16428, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream))))) __PYX_ERR(3, 16398, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MIN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -225505,48 +224195,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16452, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16422, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16422, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16422, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16452, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16422, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16452, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16422, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16422, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16422, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16452, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16422, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16452, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16422, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -225588,26 +224278,26 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16453, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16454, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16454, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16424, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16455, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16425, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16456, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16426, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16457, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16427, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -225619,7 +224309,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MININDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16462, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MININDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -225702,48 +224392,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16468, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16438, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16468, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16438, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16468, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16438, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16438, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16469, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16439, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16468, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16438, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -225795,31 +224485,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16470, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16471, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16471, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16441, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16472, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16442, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16473, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16443, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16474, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16444, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16476, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -225833,7 +224523,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16482, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -225854,7 +224544,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16487, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MININDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -225863,21 +224553,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16490, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16490, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 16490, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16460, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outinteger)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 16460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16490, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16460, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(3, 16490, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8) != (0)) __PYX_ERR(3, 16460, __pyx_L1_error); __pyx_t_8 = 0; { PyObject *__pyx_temp; @@ -225957,32 +224647,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16492, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16462, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16462, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16492, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16462, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16492, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16462, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16492, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16462, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16493, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16463, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16492, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16462, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -226023,13 +224713,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16497, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16498, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -226096,32 +224786,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16500, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16470, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16470, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16500, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16470, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16500, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16470, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16470, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16501, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16471, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16500, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16470, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -226162,13 +224852,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16505, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16506, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -226230,13 +224920,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16513, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16514, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outinteger + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -226365,7 +225055,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16527, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -226378,10 +225068,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MININDEX_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16528, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream))))) __PYX_ERR(3, 16528, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream))))) __PYX_ERR(3, 16498, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -226491,48 +225181,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16555, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16523, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16523, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16523, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16555, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16523, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16555, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16523, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16523, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16523, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16555, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16523, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16555, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16523, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -226575,26 +225265,26 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16556, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16557, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16557, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16525, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16558, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16526, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16559, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16527, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16560, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16528, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -226606,7 +225296,7 @@ static int __pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINMAX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16566, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINMAX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -226690,48 +225380,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16572, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16540, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16572, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16540, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16572, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16540, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16540, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16572, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16540, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16573, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16541, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16572, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16540, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -226775,45 +225465,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16574, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16575, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16575, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16543, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16576, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16544, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16577, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16545, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16578, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16546, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16580, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16581, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -226827,13 +225513,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16587, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16588, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -226842,54 +225528,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 16591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmin)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 16591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 16591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16559, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmin)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outmax)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16591, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16559, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmax)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 16559, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 16559, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16559, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16591, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16559, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -226908,9 +225577,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_4open_and_fill(PyObjec __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -226972,32 +225638,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16593, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16561, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16561, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16593, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16561, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16593, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16561, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16593, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16561, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16594, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16562, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16593, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16561, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -227029,9 +225695,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_o PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227044,50 +225707,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16599, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16600, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 16568, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 16568, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -227096,8 +225742,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_6update(struct __pyx_o __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -227149,32 +225793,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16602, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16570, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16570, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16602, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16570, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16602, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16570, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16570, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16603, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16571, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16602, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16570, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -227206,9 +225850,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227221,50 +225862,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16608, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16609, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 16577, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 16577, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -227273,8 +225897,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_8peek(struct __pyx_obj __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -227312,9 +225934,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -227327,50 +225946,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16617, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16618, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 16586, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 16586, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -227379,8 +225981,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MINMAX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -227494,7 +226094,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16631, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -227507,10 +226107,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13MINMAX_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16632, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream))))) __PYX_ERR(3, 16632, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream))))) __PYX_ERR(3, 16600, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -227620,48 +226220,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16659, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16625, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16659, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16659, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16659, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16625, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16659, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16625, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16659, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16625, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16659, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16625, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16659, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16625, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16659, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16625, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -227704,26 +226304,26 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16660, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16661, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16661, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16627, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16662, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16628, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16663, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16629, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16664, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16630, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -227735,7 +226335,7 @@ static int __pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16670, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -227819,48 +226419,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16676, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16642, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16676, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16642, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16676, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16642, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16642, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16676, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16642, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16677, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16643, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16676, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16642, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -227910,45 +226510,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py npy_intp __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; - PyObject *__pyx_t_10 = NULL; - PyObject *__pyx_t_11 = NULL; - PyObject *__pyx_t_12 = NULL; - size_t __pyx_t_13; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16678, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16679, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16679, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16645, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16680, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16646, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16681, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16647, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16682, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16648, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16684, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16685, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -227962,7 +226558,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16691, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -227998,7 +226594,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16699, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINMAXINDEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -228007,54 +226603,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_8 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 16702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); - __pyx_t_11 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_10), ((PyObject *)__pyx_v_outminidx)); if (unlikely(!__pyx_t_11)) __PYX_ERR(3, 16702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(3, 16702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16668, __pyx_L1_error); + __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outminidx)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 16668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); - __pyx_t_12 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_10), ((PyObject *)__pyx_v_outmaxidx)); if (unlikely(!__pyx_t_12)) __PYX_ERR(3, 16702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_13 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_9))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); - assert(__pyx_t_8); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_9); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_9, __pyx__function); - __pyx_t_13 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_11, __pyx_t_12}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_9, __pyx_callargs+__pyx_t_13, (3-__pyx_t_13) | (__pyx_t_13*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16702, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16702, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16668, __pyx_L1_error); + __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outmaxidx)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8) != (0)) __PYX_ERR(3, 16668, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_9); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_9) != (0)) __PYX_ERR(3, 16668, __pyx_L1_error); + __pyx_t_8 = 0; + __pyx_t_9 = 0; + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16668, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16702, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 16668, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -228073,9 +226652,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_4open_and_fill(Py __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -228140,32 +226716,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16704, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16670, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16704, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16670, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16704, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16670, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16704, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16670, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16704, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16670, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16705, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16671, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16704, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16670, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -228197,9 +226773,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -228212,50 +226785,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16710, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16711, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 16677, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 16677, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -228264,8 +226820,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_6update(struct __ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -228317,32 +226871,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16679, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16679, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16679, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16714, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16680, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -228374,9 +226928,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __py PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -228389,50 +226940,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16719, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16720, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 16686, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 16686, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -228441,8 +226975,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_8peek(struct __py __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -228480,9 +227012,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(st PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -228495,50 +227024,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16728, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16729, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 16695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int((__pyx_v_outminidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int((__pyx_v_outmaxidx + __pyx_v_self->__pyx_base._begidx)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 16729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16729, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 16695, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 16695, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -228547,8 +227059,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_5value___get__(st __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -228662,7 +227172,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16742, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -228675,10 +227185,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18MINMAXINDEX_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16743, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream))))) __PYX_ERR(3, 16743, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream))))) __PYX_ERR(3, 16709, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -228790,46 +227300,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16767, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16733, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16767, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16733, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 16767, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 16733, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16733, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16733, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16733, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -228838,14 +227348,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16767, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16733, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16767, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16733, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -228889,42 +227399,42 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16768, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16770, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16771, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16737, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16737, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16737, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16772, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16738, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16773, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16739, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16774, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16740, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -228936,7 +227446,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINUS_DI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16779, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINUS_DI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -229023,46 +227533,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16785, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16751, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16785, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16751, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 16785, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 16751, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 16751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16751, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16751, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16785, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16751, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -229071,14 +227581,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16786, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16752, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16785, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 16751, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -229127,47 +227637,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16789, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16790, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16790, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16756, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16790, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16756, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16790, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 16756, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16791, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16757, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16792, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16758, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16793, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16759, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16795, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -229181,13 +227691,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16801, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16802, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -229196,27 +227706,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16805, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16805, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16805, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16771, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -229298,46 +227808,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16807, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16773, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16773, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16773, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16773, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16807, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16773, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 16807, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 16773, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16773, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16773, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16773, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16808, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16808, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16808, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16774, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16774, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16774, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16807, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16773, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -229380,13 +227890,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16812, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16813, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -229455,46 +227965,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16815, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16781, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16781, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16815, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16781, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 16815, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 16781, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16781, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16781, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16815, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16781, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16816, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16816, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16816, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16782, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16782, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16782, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16815, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 16781, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -229537,13 +228047,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16820, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16821, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -229605,13 +228115,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16828, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16829, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -229740,7 +228250,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16842, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -229753,10 +228263,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DI_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16843, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream))))) __PYX_ERR(3, 16843, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream))))) __PYX_ERR(3, 16809, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -229867,40 +228377,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16867, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16833, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16867, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16833, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16867, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 16833, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16833, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16833, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16867, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16833, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -229908,14 +228418,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16867, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16833, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16867, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16833, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -229958,34 +228468,34 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16868, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16869, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16870, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16836, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16870, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16836, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16871, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16837, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16872, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16838, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16873, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16839, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -229997,7 +228507,7 @@ static int __pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINUS_DM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16878, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MINUS_DM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -230082,40 +228592,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16850, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16884, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16850, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16884, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 16850, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 16850, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16850, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16850, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -230123,14 +228633,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16885, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16851, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 16850, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -230178,39 +228688,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16886, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16888, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 16854, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16888, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 16854, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16889, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16855, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16890, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16856, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16891, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16857, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16893, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -230224,13 +228734,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16899, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16900, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MINUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -230239,24 +228749,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16903, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 16869, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16903, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 16869, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16903, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16869, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16903, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16869, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -230336,39 +228846,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16905, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16871, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16905, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16871, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16905, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 16871, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16871, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16871, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16906, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16906, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16872, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16872, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16905, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16871, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -230410,13 +228920,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16910, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16911, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -230484,39 +228994,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16879, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16879, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16879, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16913, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16879, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16913, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 16879, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16879, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16879, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16914, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16914, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16880, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16880, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 16879, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -230558,13 +229068,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16918, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16919, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -230626,13 +229136,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16926, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16927, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -230761,7 +229271,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16940, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -230774,10 +229284,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15MINUS_DM_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16941, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream))))) __PYX_ERR(3, 16941, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream))))) __PYX_ERR(3, 16907, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -230887,48 +229397,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16965, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16931, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16965, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 16931, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16965, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 16931, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16931, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16965, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16931, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16965, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16931, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16965, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16931, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -230970,26 +229480,26 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16966, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16967, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16967, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16933, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16968, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16934, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16969, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16935, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16970, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16936, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -231001,7 +229511,7 @@ static int __pyx_pf_5talib_7_ta_lib_10MOM_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MOM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16975, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MOM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -231084,48 +229594,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16981, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16947, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16947, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16947, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16981, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 16947, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16981, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 16947, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 16947, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16981, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16947, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16982, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 16948, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16981, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 16947, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -231172,31 +229682,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16983, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16984, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16984, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 16950, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16985, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 16951, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16986, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 16952, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16987, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 16953, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16989, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -231210,13 +229720,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16995, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MOM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16996, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MOM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -231225,21 +229735,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16999, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16999, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16999, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 16965, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 16965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16999, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16999, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 16965, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16999, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 16965, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -231317,32 +229827,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17001, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16967, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17001, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 16967, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17001, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 16967, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16967, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17002, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16968, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17001, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16967, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -231383,13 +229893,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17006, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17007, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -231456,32 +229966,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17009, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 16975, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16975, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17009, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 16975, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17009, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 16975, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17009, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 16975, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17010, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 16976, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17009, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 16975, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -231522,13 +230032,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17014, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17015, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -231590,13 +230100,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17022, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17023, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -231725,7 +230235,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17036, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -231738,10 +230248,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10MOM_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17037, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream))))) __PYX_ERR(3, 17037, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream))))) __PYX_ERR(3, 17003, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MOM_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -231851,39 +230361,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17060, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17026, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17026, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17026, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17060, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17026, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17060, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17026, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17026, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17060, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17026, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17060, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17026, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -231925,34 +230435,34 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17061, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17062, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17063, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17063, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17029, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17063, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17029, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17064, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17030, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17065, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17031, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17066, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17032, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -231964,7 +230474,7 @@ static int __pyx_pf_5talib_7_ta_lib_11MULT_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MULT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17071, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_MULT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -232048,39 +230558,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17077, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17043, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17043, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17043, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17077, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17043, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17077, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17043, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17043, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17077, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17043, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17077, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17043, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -232127,39 +230637,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17080, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17081, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17081, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 17047, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17081, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 17047, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17082, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17048, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17083, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17049, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17084, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17050, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17086, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -232173,13 +230683,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17092, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_MULT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MULT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17093, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_MULT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -232188,24 +230698,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17096, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real0); __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 17062, __pyx_L1_error); __Pyx_INCREF(__pyx_v_real1); __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17096, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 17062, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17096, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17062, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17096, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17062, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -232285,39 +230795,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17098, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17064, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17098, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17064, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17098, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17064, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17064, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17064, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17099, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17099, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17065, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17065, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17098, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17064, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -232359,13 +230869,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17103, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17104, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -232433,39 +230943,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17106, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17072, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17072, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17106, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17072, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17106, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17072, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17072, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17072, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17107, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17107, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17073, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17073, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17106, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17072, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -232507,13 +231017,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17111, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17112, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -232575,13 +231085,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17119, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17120, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17086, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -232710,7 +231220,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17133, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -232723,10 +231233,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11MULT_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17134, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream))))) __PYX_ERR(3, 17134, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream))))) __PYX_ERR(3, 17100, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_MULT_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -232838,46 +231348,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17158, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17124, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17158, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17124, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 17158, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 17124, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17124, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17124, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17124, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17158, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17124, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -232886,14 +231396,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17158, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17124, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17158, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17124, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -232937,42 +231447,42 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17159, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17160, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17161, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17162, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17128, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17128, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17128, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17163, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17129, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17164, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17130, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17165, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17131, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -232984,7 +231494,7 @@ static int __pyx_pf_5talib_7_ta_lib_11NATR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_NATR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17170, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_NATR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -233071,46 +231581,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17176, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17142, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17176, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17142, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 17176, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 17142, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17142, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17142, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17142, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17142, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -233119,14 +231629,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17177, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17143, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17176, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17142, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -233175,47 +231685,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17178, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17181, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17147, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17147, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17181, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17147, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17182, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17148, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17183, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17149, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17184, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17150, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17186, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -233229,13 +231739,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17192, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NATR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NATR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -233244,27 +231754,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17196, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17196, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17196, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17162, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -233346,46 +231856,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17198, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17164, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17198, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17164, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 17198, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 17164, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17164, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17164, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17164, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17199, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17199, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17199, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17165, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17165, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17165, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17198, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17164, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -233428,13 +231938,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17203, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17204, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -233503,46 +232013,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17206, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17172, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17206, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17172, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 17206, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 17172, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17172, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17172, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17206, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17172, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17207, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17207, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17207, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17173, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17173, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17173, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17206, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17172, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -233585,13 +232095,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17211, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17212, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -233653,13 +232163,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17219, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17220, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -233788,7 +232298,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17233, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -233801,10 +232311,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11NATR_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17234, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream))))) __PYX_ERR(3, 17234, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream))))) __PYX_ERR(3, 17200, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NATR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -233914,39 +232424,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17256, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17222, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17256, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17222, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17256, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17222, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17256, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17222, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17256, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17222, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17256, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17222, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17256, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17222, __pyx_L3_error) } __pyx_v_close = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17256, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17222, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -233988,34 +232498,34 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17257, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17258, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17259, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17259, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17225, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17259, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17225, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17260, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17226, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17261, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17227, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17262, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17228, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -234027,7 +232537,7 @@ static int __pyx_pf_5talib_7_ta_lib_10NVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_NVI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17267, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_NVI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -234111,39 +232621,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17273, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17239, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17239, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17273, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17239, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17273, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17239, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17239, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17239, __pyx_L3_error) } __pyx_v_close = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17273, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17239, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -234190,39 +232700,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17277, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17277, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17243, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17277, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17243, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17278, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17244, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17279, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17245, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17280, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17246, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17282, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -234236,13 +232746,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17288, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_NVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17289, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_NVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -234251,24 +232761,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17292, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 17258, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17292, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17258, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17292, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17258, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17292, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17258, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -234348,39 +232858,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17294, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17260, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17294, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17294, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17260, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17294, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17260, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17294, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17260, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17294, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17260, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17294, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17260, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17295, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17295, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17261, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17261, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17294, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17260, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -234422,13 +232932,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17299, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17300, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -234496,39 +233006,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17302, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17268, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17268, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17268, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17302, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17268, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17302, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17268, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17268, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17268, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17303, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17303, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17269, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17269, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17302, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17268, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -234570,13 +233080,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17307, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17308, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -234638,13 +233148,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17315, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17316, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -234773,7 +233283,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17329, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -234786,10 +233296,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10NVI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17330, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream))))) __PYX_ERR(3, 17330, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream))))) __PYX_ERR(3, 17296, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_NVI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -234899,39 +233409,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17353, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17319, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17353, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17319, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17353, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17319, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17319, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17353, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17319, __pyx_L3_error) } __pyx_v_real = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17353, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17319, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -234973,34 +233483,34 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17354, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17355, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17356, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17356, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17322, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17356, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17322, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17357, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17323, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17358, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17324, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17359, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17325, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -235012,7 +233522,7 @@ static int __pyx_pf_5talib_7_ta_lib_10OBV_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_OBV_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17364, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_OBV_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -235096,39 +233606,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17370, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17336, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17336, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17336, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17370, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17336, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17370, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17336, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17336, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17370, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17336, __pyx_L3_error) } __pyx_v_real = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17370, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17336, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -235175,39 +233685,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17374, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17374, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17340, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17374, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17340, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17375, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17341, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17376, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17342, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17377, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17343, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17379, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -235221,13 +233731,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17385, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_OBV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_OBV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17386, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_OBV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -235236,24 +233746,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17389, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17355, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17389, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17355, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17389, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17355, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17389, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17355, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -235333,39 +233843,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17391, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17357, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17357, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17391, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17357, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17391, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17357, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17357, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17357, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17392, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17392, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17358, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17358, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17391, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17357, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -235407,13 +233917,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17396, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17397, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -235481,39 +233991,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17399, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17365, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17365, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17399, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17365, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17399, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17365, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17365, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17399, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17365, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17400, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17400, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17366, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17366, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17399, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17365, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -235555,13 +234065,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17404, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17405, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -235623,13 +234133,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17412, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17413, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -235758,7 +234268,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17426, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -235771,10 +234281,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10OBV_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17427, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream))))) __PYX_ERR(3, 17427, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream))))) __PYX_ERR(3, 17393, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_OBV_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -235885,61 +234395,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17452, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17418, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17452, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17418, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 17452, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 17418, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17418, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17452, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17418, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17452, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17418, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17452, __pyx_L3_error) + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17418, __pyx_L3_error) } else { __pyx_v_percentile = ((double)50.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 17452, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 17418, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -235982,26 +234492,26 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17453, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17454, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17454, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17420, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17455, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17421, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17456, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17422, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17457, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17423, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -236013,7 +234523,7 @@ static int __pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17462, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -236097,61 +234607,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17468, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17434, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17468, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17434, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 17468, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 17434, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17434, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17469, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17435, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17469, __pyx_L3_error) + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17435, __pyx_L3_error) } else { __pyx_v_percentile = ((double)50.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 17468, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 17434, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -236199,31 +234709,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17470, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17471, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17471, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17437, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17472, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17438, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17473, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17439, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17474, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17440, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17476, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -236237,13 +234747,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17482, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17483, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTILE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -236252,21 +234762,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17486, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17486, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17486, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17452, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17486, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17486, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17452, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17486, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17452, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -236344,32 +234854,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17488, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17454, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17488, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17454, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17488, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17454, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17488, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17454, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17488, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17454, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17489, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17455, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17488, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17454, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -236410,13 +234920,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17493, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17494, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -236483,32 +234993,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17496, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17462, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17462, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17496, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17462, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17496, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17462, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17496, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17462, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17497, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17463, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17496, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17462, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -236549,13 +235059,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17501, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17502, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -236617,13 +235127,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17509, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17510, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -236752,7 +235262,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17523, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -236765,10 +235275,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17PERCENTILE_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17524, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream))))) __PYX_ERR(3, 17524, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream))))) __PYX_ERR(3, 17490, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -236878,48 +235388,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17548, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17514, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17548, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17514, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 17548, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 17514, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17548, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17514, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17548, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17514, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17548, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17514, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -236961,26 +235471,26 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17549, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17550, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17550, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17516, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17551, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17517, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17552, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17518, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17553, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17519, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -236992,7 +235502,7 @@ static int __pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_2__init__(struct __pyx_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PERCENTRANK_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17558, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PERCENTRANK_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -237075,48 +235585,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17564, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17530, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17564, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17530, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17564, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17530, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17564, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17530, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 17564, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 17530, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17564, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17530, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17564, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17530, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17565, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17531, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17564, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 17530, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -237163,31 +235673,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17566, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17567, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17567, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17533, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17568, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17534, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17569, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17535, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17570, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17536, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17572, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -237201,13 +235711,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17578, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17579, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PERCENTRANK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -237216,21 +235726,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_4open_and_fill(Py __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17582, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17582, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17582, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17548, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17582, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17548, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17582, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17548, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -237308,32 +235818,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17584, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17550, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17550, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17584, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17550, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17584, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17550, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17584, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17550, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17585, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17551, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17584, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17550, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -237374,13 +235884,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_6update(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17589, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17590, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -237447,32 +235957,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17592, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17558, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17592, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17558, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17592, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17558, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17592, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17558, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17592, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17558, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17593, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17559, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17592, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17558, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -237513,13 +236023,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_8peek(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17597, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17598, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -237581,13 +236091,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_5value___get__(st if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17605, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17606, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -237716,7 +236226,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17619, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -237729,10 +236239,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18PERCENTRANK_Stream_10copy(struct __p PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17620, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream))))) __PYX_ERR(3, 17620, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream))))) __PYX_ERR(3, 17586, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -237844,46 +236354,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17644, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17610, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17610, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17610, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17610, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17610, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17644, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17610, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 17644, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 17610, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17610, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17610, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17610, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17644, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17610, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -237892,14 +236402,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17644, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17610, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17644, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17610, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -237943,42 +236453,42 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17645, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17646, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17647, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17648, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17614, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17614, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17614, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17614, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17649, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17615, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17650, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17616, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17651, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17617, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -237990,7 +236500,7 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PLUS_DI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17656, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PLUS_DI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -238077,46 +236587,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17662, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17628, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17662, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17628, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 17662, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 17628, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17628, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17628, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17628, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17628, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -238125,14 +236635,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17663, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17629, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17662, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 17628, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -238181,47 +236691,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17664, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17665, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17667, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17667, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17633, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17667, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17633, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17667, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17633, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17668, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17634, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17669, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17635, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17670, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17636, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17672, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -238235,13 +236745,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17678, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17679, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -238250,27 +236760,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17682, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17682, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17682, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17682, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17648, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -238352,46 +236862,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17684, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17650, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17650, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17650, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17650, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17684, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17650, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 17684, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 17650, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17650, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17650, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17684, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17650, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17685, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17685, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17685, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17651, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17651, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17651, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17684, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17650, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -238434,13 +236944,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17689, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17690, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -238509,46 +237019,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17692, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17658, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17692, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17658, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17692, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17658, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17692, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17658, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17692, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17658, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 17692, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 17658, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17692, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17658, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17692, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17658, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17692, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17658, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17693, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17693, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17693, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17659, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17659, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17659, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17692, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 17658, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -238591,13 +237101,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17697, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17698, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -238659,13 +237169,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17705, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17706, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -238794,7 +237304,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17719, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -238807,10 +237317,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DI_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17720, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream))))) __PYX_ERR(3, 17720, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream))))) __PYX_ERR(3, 17686, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -238921,40 +237431,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17744, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17710, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17744, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17710, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 17744, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 17710, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17710, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17710, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17744, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17710, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -238962,14 +237472,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17744, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17710, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17744, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17710, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -239012,34 +237522,34 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17745, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17746, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17747, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17747, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17713, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17747, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17713, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17748, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17714, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17749, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17715, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17750, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17716, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -239051,7 +237561,7 @@ static int __pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PLUS_DM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17755, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PLUS_DM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -239136,40 +237646,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17761, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17727, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17761, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17727, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 17761, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 17727, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17727, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17727, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17761, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17727, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -239177,14 +237687,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17762, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17728, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17761, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 17727, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -239232,39 +237742,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17763, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17764, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17765, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17731, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17765, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 17731, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17765, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 17731, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17766, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17732, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17767, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17733, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17768, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17734, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17770, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -239278,13 +237788,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17776, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17777, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PLUS_DM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -239293,24 +237803,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17780, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 17746, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17780, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 17746, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17780, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17746, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17780, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17746, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -239390,39 +237900,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17782, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17748, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17748, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17782, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17748, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17782, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17748, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17748, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17782, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17748, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17783, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17783, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17749, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17749, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17782, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17748, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -239464,13 +237974,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17787, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17788, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -239538,39 +238048,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17790, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17756, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17756, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17756, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17790, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17756, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17790, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17756, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17756, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17756, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17791, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17791, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17757, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17757, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17790, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17756, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -239612,13 +238122,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17795, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17796, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -239680,13 +238190,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17803, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17804, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -239815,7 +238325,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17817, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -239828,10 +238338,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14PLUS_DM_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17818, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream))))) __PYX_ERR(3, 17818, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream))))) __PYX_ERR(3, 17784, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -239943,74 +238453,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17844, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17810, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17844, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17810, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 17844, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 17810, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17810, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17844, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17810, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17844, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17810, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17844, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17810, __pyx_L3_error) } else { __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 17844, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 17810, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -240054,26 +238564,26 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17845, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17846, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17846, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17812, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17847, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17813, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17848, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17814, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17849, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17815, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -240085,7 +238595,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PPO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17854, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -240170,74 +238680,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17860, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17826, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17860, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17826, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 17860, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 17826, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 17826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 17826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17826, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17826, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17861, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17827, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17861, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17827, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17861, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 17827, __pyx_L3_error) } else { __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 17860, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 17826, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -240286,31 +238796,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17862, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17863, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17863, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 17829, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17864, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17830, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17865, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17831, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17866, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17832, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17868, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -240324,13 +238834,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17874, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PPO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17875, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PPO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -240339,21 +238849,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17878, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17878, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17878, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 17844, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17878, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17878, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17844, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17878, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17844, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -240431,32 +238941,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17880, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17846, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17846, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17880, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17846, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17880, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 17846, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17880, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17846, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17881, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17847, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17880, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17846, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -240497,13 +239007,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17885, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17886, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -240570,32 +239080,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17888, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17854, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17888, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17888, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17854, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17888, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 17854, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17888, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17854, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17889, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17855, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17888, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 17854, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -240636,13 +239146,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17893, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17894, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -240704,13 +239214,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17901, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17902, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -240839,7 +239349,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17915, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -240852,10 +239362,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PPO_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17916, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream))))) __PYX_ERR(3, 17916, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream))))) __PYX_ERR(3, 17882, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PPO_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -240965,39 +239475,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17938, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17904, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17938, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17904, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17938, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17904, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17938, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 17904, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17938, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 17904, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17938, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17904, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17938, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17904, __pyx_L3_error) } __pyx_v_close = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17938, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17904, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -241039,34 +239549,34 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17939, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17940, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17941, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17941, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17907, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17941, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17907, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17942, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17908, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17943, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17909, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17944, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17910, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -241078,7 +239588,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17949, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVI_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -241162,39 +239672,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17955, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17921, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17955, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 17921, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17955, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 17921, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17921, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17955, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17921, __pyx_L3_error) } __pyx_v_close = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17955, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17921, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -241241,39 +239751,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17957, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17958, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17959, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17959, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 17925, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17959, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 17925, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17960, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 17926, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17961, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 17927, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17962, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 17928, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17964, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -241287,13 +239797,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17970, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17971, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -241302,24 +239812,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17974, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 17940, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17974, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 17940, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 17940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17974, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 17940, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17974, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 17940, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -241399,39 +239909,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17976, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17942, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17942, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17942, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17976, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 17942, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17976, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 17942, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17942, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17976, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17942, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17977, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17977, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17943, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17943, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17976, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17942, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -241473,13 +239983,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17981, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17982, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -241547,39 +240057,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17984, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 17950, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17950, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17950, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17984, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 17950, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17984, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 17950, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 17950, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 17950, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17985, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17985, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17951, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 17951, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17984, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 17950, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -241621,13 +240131,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17989, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17990, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -241689,13 +240199,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17997, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17998, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -241824,7 +240334,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18011, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -241837,10 +240347,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18012, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream))))) __PYX_ERR(3, 18012, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream))))) __PYX_ERR(3, 17978, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -241952,74 +240462,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18038, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18004, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18038, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18004, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 18038, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, i); __PYX_ERR(3, 18004, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18004, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18038, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18004, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_volume = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18038, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18004, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18038, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18004, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18038, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18004, __pyx_L3_error) } else { __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 18038, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 18004, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -242063,26 +240573,26 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18039, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18040, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18040, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18006, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18041, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18007, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18042, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18008, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18043, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18009, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -242094,7 +240604,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVO_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18048, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -242179,74 +240689,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18054, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18020, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18054, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18020, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 18054, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, i); __PYX_ERR(3, 18020, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 18020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18020, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18054, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18020, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_volume = values[0]; if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18055, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18021, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18055, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18021, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18055, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18021, __pyx_L3_error) } else { __pyx_v_matype = ((int)1); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 18054, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 4, __pyx_nargs); __PYX_ERR(3, 18020, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -242295,31 +240805,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18056, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18057, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18057, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18023, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18058, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18024, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18059, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18025, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18060, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18026, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18062, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -242333,13 +240843,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18068, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVO_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVO_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -242348,21 +240858,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18072, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 18072, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18072, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 18038, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18072, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18072, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18038, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18072, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18038, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -242440,32 +240950,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18074, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18040, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18040, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18074, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18040, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18074, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18040, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18040, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18075, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18041, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18074, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18040, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -242506,13 +241016,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18079, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18080, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -242579,32 +241089,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18082, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18048, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18048, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18082, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18048, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18082, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18048, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18082, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18048, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18083, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18049, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18082, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18048, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -242645,13 +241155,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18087, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18088, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -242713,13 +241223,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18095, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18096, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -242848,7 +241358,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18109, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -242861,10 +241371,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVO_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18110, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream))))) __PYX_ERR(3, 18110, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream))))) __PYX_ERR(3, 18076, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVO_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -242974,39 +241484,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18132, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18098, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18098, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18132, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18098, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 18132, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 18098, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18098, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18098, __pyx_L3_error) } __pyx_v_close = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18132, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18098, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -243048,34 +241558,34 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18133, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18135, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18135, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18101, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18135, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18101, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18136, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18102, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18137, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18103, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18138, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18104, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -243087,7 +241597,7 @@ static int __pyx_pf_5talib_7_ta_lib_10PVT_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18143, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_PVT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -243171,39 +241681,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18149, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18115, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18115, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18149, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18115, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 18149, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 18115, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18115, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18149, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18115, __pyx_L3_error) } __pyx_v_close = values[0]; __pyx_v_volume = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18149, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18115, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -243250,39 +241760,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18151, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18152, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18153, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18153, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18119, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18153, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18119, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18154, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18120, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18155, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18121, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18156, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18122, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18158, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -243296,13 +241806,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18164, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_PVT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18165, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_PVT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -243311,24 +241821,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18168, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_close) != (0)) __PYX_ERR(3, 18134, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18168, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 18134, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18168, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18134, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18168, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18134, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -243408,39 +241918,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18170, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18136, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18136, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18136, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18170, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18136, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18170, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18136, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18136, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18170, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18136, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18171, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18171, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18137, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18137, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18170, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18136, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -243482,13 +241992,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18175, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18176, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -243556,39 +242066,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18178, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18144, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18144, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18178, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18144, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18178, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18144, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18144, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18144, __pyx_L3_error) } - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18179, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18179, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18145, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18145, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18144, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -243630,13 +242140,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18183, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18184, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -243698,13 +242208,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18191, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18192, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -243833,7 +242343,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18205, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -243846,10 +242356,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10PVT_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18206, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream))))) __PYX_ERR(3, 18206, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream))))) __PYX_ERR(3, 18172, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_PVT_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -243960,40 +242470,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18230, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18196, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18230, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18196, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 18230, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 18196, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18196, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18230, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18196, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -244001,14 +242511,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_open = values[0]; __pyx_v_close = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18230, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18196, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18230, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18196, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -244051,34 +242561,34 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18231, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18232, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18233, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18233, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18199, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18233, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18199, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18234, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18200, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18235, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18201, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18236, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18202, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -244090,7 +242600,7 @@ static int __pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_QSTICK_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18241, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_QSTICK_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -244175,40 +242685,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18247, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18213, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18247, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18213, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 18247, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 18213, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18213, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18247, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18213, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -244216,14 +242726,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_open = values[0]; __pyx_v_close = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18248, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18214, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18247, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 18213, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -244271,39 +242781,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18249, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_open = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18250, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18251, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_open); __Pyx_GIVEREF((PyObject *)__pyx_v_a_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18251, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_open)) != (0)) __PYX_ERR(3, 18217, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18251, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 18217, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18252, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18218, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18253, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18219, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18254, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18220, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18256, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -244317,13 +242827,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18262, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_QSTICK_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -244332,24 +242842,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18266, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_open); __Pyx_GIVEREF(__pyx_v_open); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_open) != (0)) __PYX_ERR(3, 18232, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18266, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_close) != (0)) __PYX_ERR(3, 18232, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18266, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18232, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18266, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18232, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -244429,39 +242939,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18268, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18234, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18234, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18268, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18234, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18268, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 18234, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18234, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18268, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18234, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18269, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18269, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18235, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18235, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18268, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18234, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -244503,13 +243013,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18273, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18274, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -244577,39 +243087,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18276, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18242, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18276, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18242, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18276, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 18242, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18242, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18242, __pyx_L3_error) } - __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18277, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18277, __pyx_L3_error) + __pyx_v_open = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_open == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18243, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18243, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18276, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 18242, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -244651,13 +243161,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18281, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18282, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -244719,13 +243229,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18289, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18290, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -244854,7 +243364,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18303, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -244867,10 +243377,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13QSTICK_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18304, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream))))) __PYX_ERR(3, 18304, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream))))) __PYX_ERR(3, 18270, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -244980,48 +243490,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18328, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18294, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18328, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18294, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18328, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18294, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18328, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18294, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18328, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18294, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18328, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18294, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18328, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18294, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18328, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18294, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18328, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18294, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -245063,26 +243573,26 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18329, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18330, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18330, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18296, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18331, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18297, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18332, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18298, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18333, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18299, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -245094,7 +243604,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18338, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -245177,48 +243687,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18344, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18310, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18344, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18310, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18344, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18310, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18344, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18310, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18344, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18310, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18344, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18310, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18344, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18310, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18345, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18311, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18344, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18310, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -245265,31 +243775,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18347, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18347, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18313, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18348, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18314, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18349, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18315, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18350, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18316, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18352, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -245303,13 +243813,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18358, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18359, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -245318,21 +243828,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18362, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18362, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18362, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18328, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18362, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18362, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18328, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18362, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18328, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -245410,32 +243920,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18364, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18330, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18330, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18364, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18330, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18364, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18330, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18364, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18330, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18365, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18331, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18364, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18330, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -245476,13 +243986,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18369, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18370, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -245549,32 +244059,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18372, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18338, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18372, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18338, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18372, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18338, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18372, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18338, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18372, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18338, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18373, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18339, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18372, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18338, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -245615,13 +244125,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18377, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18378, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -245683,13 +244193,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18385, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18386, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -245818,7 +244328,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18399, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -245831,10 +244341,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RMA_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18400, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream))))) __PYX_ERR(3, 18400, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream))))) __PYX_ERR(3, 18366, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -245944,48 +244454,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18424, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18390, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18424, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18424, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18424, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18390, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18424, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18390, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18424, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18424, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18390, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18424, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18390, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18424, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18390, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -246027,26 +244537,26 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18425, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18426, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18426, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18392, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18427, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18393, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18428, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18394, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18429, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18395, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -246058,7 +244568,7 @@ static int __pyx_pf_5talib_7_ta_lib_10ROC_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18434, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROC_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -246141,48 +244651,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18440, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18406, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18440, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18406, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18440, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18406, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18406, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18406, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18441, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18407, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18440, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18406, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -246229,31 +244739,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18442, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18443, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18443, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18409, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18444, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18410, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18445, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18411, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18446, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18412, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18448, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -246267,13 +244777,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18454, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18455, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -246282,21 +244792,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18458, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18458, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18458, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18424, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18458, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18458, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18424, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18458, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18424, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -246374,32 +244884,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18460, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18426, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18426, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18460, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18426, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18460, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18426, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18460, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18426, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18461, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18427, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18460, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18426, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -246440,13 +244950,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18465, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18466, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -246513,32 +245023,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18468, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18434, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18468, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18434, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18468, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18434, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18468, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18434, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18469, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18435, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18468, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18434, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -246579,13 +245089,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18473, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18474, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -246647,13 +245157,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18481, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18482, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -246782,7 +245292,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18495, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -246795,10 +245305,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10ROC_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18496, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream))))) __PYX_ERR(3, 18496, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream))))) __PYX_ERR(3, 18462, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROC_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -246908,48 +245418,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18520, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18486, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18520, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18486, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18520, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18486, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18520, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18486, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18520, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18486, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18520, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18486, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -246991,26 +245501,26 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18521, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18522, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18522, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18488, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18523, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18489, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18524, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18490, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18525, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18491, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -247022,7 +245532,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCP_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18530, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCP_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -247105,48 +245615,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18536, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18502, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18502, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18502, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18536, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18502, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18536, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18502, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18502, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18536, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18502, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18537, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18503, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18536, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18502, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -247193,31 +245703,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18538, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18539, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18539, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18505, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18540, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18506, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18541, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18507, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18542, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18508, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18544, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -247231,13 +245741,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18550, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18551, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -247246,21 +245756,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18554, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18554, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18520, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18554, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18520, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18554, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18520, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -247338,32 +245848,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18556, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18522, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18522, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18556, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18522, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18556, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18522, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18556, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18522, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18557, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18523, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18556, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18522, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -247404,13 +245914,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18561, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18562, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -247477,32 +245987,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18564, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18530, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18564, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18530, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18564, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18530, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18564, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18530, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18564, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18530, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18565, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18531, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18564, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18530, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -247543,13 +246053,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18569, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18570, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -247611,13 +246121,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18577, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18578, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -247746,7 +246256,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18591, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -247759,10 +246269,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCP_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18592, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream))))) __PYX_ERR(3, 18592, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream))))) __PYX_ERR(3, 18558, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -247872,48 +246382,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18616, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18582, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18582, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18582, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18616, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18582, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18616, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18582, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18582, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18616, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18582, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18616, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18582, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18616, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18582, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -247955,26 +246465,26 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18617, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18618, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18618, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18584, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18619, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18585, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18620, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18586, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18621, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18587, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -247986,7 +246496,7 @@ static int __pyx_pf_5talib_7_ta_lib_11ROCR_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18626, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -248069,48 +246579,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18632, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18598, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18598, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18598, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18632, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18598, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18632, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18598, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18598, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18632, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18598, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18633, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18599, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18632, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18598, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -248157,31 +246667,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18634, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18635, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18635, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18601, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18636, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18602, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18637, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18603, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18638, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18604, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18640, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -248195,13 +246705,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18646, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18647, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -248210,21 +246720,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18650, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18650, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18650, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18616, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18650, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18650, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18616, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18650, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18616, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -248302,32 +246812,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18652, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18618, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18652, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18618, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18652, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18618, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18652, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18618, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18653, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18619, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18652, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18618, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -248368,13 +246878,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18657, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18658, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18624, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -248441,32 +246951,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18660, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18626, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18660, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18626, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18660, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18626, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18660, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18626, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18660, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18626, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18661, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18627, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18660, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18626, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -248507,13 +247017,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18665, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18666, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -248575,13 +247085,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18673, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18674, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -248710,7 +247220,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18687, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -248723,10 +247233,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11ROCR_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18688, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream))))) __PYX_ERR(3, 18688, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream))))) __PYX_ERR(3, 18654, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -248836,48 +247346,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18712, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18678, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18712, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18678, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18712, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18678, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18678, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18712, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18678, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18712, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18678, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18712, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18678, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -248919,26 +247429,26 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18713, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18714, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18714, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18680, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18715, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18681, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18716, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18682, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18717, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18683, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -248950,7 +247460,7 @@ static int __pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_2__init__(struct __pyx_obj_ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCR100_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18722, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ROCR100_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -249033,48 +247543,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18728, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18694, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18728, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18694, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18728, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18694, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18728, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18694, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18728, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18694, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18728, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18694, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18728, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18694, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18729, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18695, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18728, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18694, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -249121,31 +247631,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18730, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18731, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18731, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18697, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18732, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18698, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18733, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18699, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18734, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18700, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18736, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -249159,13 +247669,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18742, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18743, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ROCR100_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -249174,21 +247684,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_4open_and_fill(PyObje __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18746, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18746, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18746, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18712, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18746, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18746, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18712, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18746, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18712, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -249266,32 +247776,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18748, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18714, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18714, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18748, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18714, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18748, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18714, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18748, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18714, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18749, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18715, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18748, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18714, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -249332,13 +247842,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_6update(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18753, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18754, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -249405,32 +247915,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18756, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18722, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18756, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18722, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18756, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18722, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18756, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18722, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18756, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18722, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18757, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18723, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18756, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18722, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -249471,13 +247981,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_8peek(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18761, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18762, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -249539,13 +248049,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18769, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18770, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -249674,7 +248184,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18783, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -249687,10 +248197,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14ROCR100_Stream_10copy(struct __pyx_o PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18784, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream))))) __PYX_ERR(3, 18784, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream))))) __PYX_ERR(3, 18750, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -249800,48 +248310,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18808, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18774, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18808, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18774, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18808, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18774, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18808, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18774, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18808, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18774, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18808, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18774, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -249883,26 +248393,26 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18809, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18810, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18776, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18810, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18776, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18811, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18777, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18812, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18778, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18813, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18779, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -249914,7 +248424,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RSI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RSI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18818, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RSI_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -249997,48 +248507,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18824, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18790, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18824, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18790, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18824, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18790, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18790, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18824, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18790, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18825, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18791, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18824, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18790, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -250085,31 +248595,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18826, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18792, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18827, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18827, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18793, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18828, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18794, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18829, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18795, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18830, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18796, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18832, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -250123,13 +248633,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18838, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18839, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -250138,21 +248648,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18842, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18842, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18842, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18808, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18842, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18842, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18808, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18842, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18808, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -250230,32 +248740,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18844, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18810, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18810, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18844, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18810, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18844, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18810, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18844, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18810, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18845, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18811, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18844, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18810, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -250296,13 +248806,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18849, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18850, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -250369,32 +248879,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18852, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18818, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18852, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18818, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18852, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18818, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18818, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18853, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18819, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18852, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18818, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -250435,13 +248945,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18857, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18858, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -250503,13 +249013,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18865, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18866, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -250638,7 +249148,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18879, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -250651,10 +249161,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RSI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18880, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream))))) __PYX_ERR(3, 18880, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream))))) __PYX_ERR(3, 18846, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RSI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -250765,61 +249275,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18905, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18871, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18905, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18871, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 18905, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 18871, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18905, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18871, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18905, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18871, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18905, __pyx_L3_error) + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18871, __pyx_L3_error) } else { __pyx_v_stddevperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 18905, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 18871, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -250862,26 +249372,26 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18906, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18907, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18907, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18873, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18908, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18874, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18909, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18875, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18910, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18876, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -250893,7 +249403,7 @@ static int __pyx_pf_5talib_7_ta_lib_10RVI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18915, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -250977,61 +249487,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18921, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18887, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18921, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18887, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 18921, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 18887, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 18887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18921, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18887, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18922, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18888, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18922, __pyx_L3_error) + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18888, __pyx_L3_error) } else { __pyx_v_stddevperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 18921, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 18887, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -251079,31 +249589,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18923, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18924, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18924, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 18890, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18925, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18891, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18926, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18892, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18927, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18893, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18929, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -251117,13 +249627,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18935, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18936, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -251132,21 +249642,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18939, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18939, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18939, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 18905, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 18905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18939, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18939, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 18905, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18939, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 18905, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -251224,32 +249734,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18941, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18941, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18941, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 18907, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18941, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 18907, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18941, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18907, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18942, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18908, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18941, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -251290,13 +249800,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18946, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18947, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -251363,32 +249873,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18949, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18915, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18949, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18915, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18949, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 18915, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18949, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 18915, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18949, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18915, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18950, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 18916, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18949, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 18915, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -251429,13 +249939,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18954, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18955, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -251497,13 +250007,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18962, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18963, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -251632,7 +250142,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18976, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -251645,10 +250155,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10RVI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18977, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream))))) __PYX_ERR(3, 18977, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream))))) __PYX_ERR(3, 18943, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -251758,48 +250268,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19001, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18967, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19001, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 18967, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19001, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 18967, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18967, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18967, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_volume = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19001, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18967, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19001, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18967, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -251841,26 +250351,26 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19002, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19003, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 19003, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18969, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19004, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18970, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19005, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18971, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19006, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18972, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -251872,7 +250382,7 @@ static int __pyx_pf_5talib_7_ta_lib_11RVOL_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RVOL_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19011, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_RVOL_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -251955,48 +250465,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19017, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 18983, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19017, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 18983, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19017, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 18983, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 18983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19017, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 18983, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_volume = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19018, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 18984, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19017, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 18983, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -252043,31 +250553,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19019, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19020, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 19020, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 18986, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19021, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 18987, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19022, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 18988, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19023, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 18989, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19025, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -252081,13 +250591,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19031, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_RVOL_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19032, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_RVOL_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -252096,21 +250606,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19035, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 19035, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19035, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_volume) != (0)) __PYX_ERR(3, 19001, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19035, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19035, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19001, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19035, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19001, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -252188,32 +250698,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19037, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19003, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19003, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19037, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19003, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19037, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19003, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19037, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19003, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19038, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19004, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19037, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19003, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -252254,13 +250764,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19042, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19043, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -252327,32 +250837,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19045, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19011, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19011, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19045, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19011, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19045, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19011, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19045, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19011, __pyx_L3_error) } - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19046, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19012, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19045, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19011, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -252393,13 +250903,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19050, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19051, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -252461,13 +250971,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19058, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19059, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -252596,7 +251106,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19072, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -252609,10 +251119,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11RVOL_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19073, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream))))) __PYX_ERR(3, 19073, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream))))) __PYX_ERR(3, 19039, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -252724,48 +251234,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19098, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19064, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19098, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19064, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 19098, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, i); __PYX_ERR(3, 19064, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19064, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19064, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -252773,19 +251283,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19098, __pyx_L3_error) + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19064, __pyx_L3_error) } else { __pyx_v_acceleration = ((double)0.02); } if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19098, __pyx_L3_error) + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19064, __pyx_L3_error) } else { __pyx_v_maximum = ((double)0.2); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19098, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19064, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -252829,34 +251339,34 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19101, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19101, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19067, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19101, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19067, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19102, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19068, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19103, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19069, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19104, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19070, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -252868,7 +251378,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SAR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19109, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -252954,48 +251464,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19115, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19081, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19081, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19081, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19081, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19081, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19115, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19081, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 19115, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, i); __PYX_ERR(3, 19081, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19081, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19081, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19081, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19081, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -253003,19 +251513,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19116, __pyx_L3_error) + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19082, __pyx_L3_error) } else { __pyx_v_acceleration = ((double)0.02); } if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19116, __pyx_L3_error) + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19082, __pyx_L3_error) } else { __pyx_v_maximum = ((double)0.2); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19115, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 4, __pyx_nargs); __PYX_ERR(3, 19081, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -253064,39 +251574,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19117, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19118, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19119, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19119, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19085, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19119, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19085, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19120, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19086, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19121, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19087, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19122, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19088, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19124, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -253110,13 +251620,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19130, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19131, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -253125,24 +251635,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19134, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19100, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19134, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19100, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19134, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19100, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19134, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19100, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -253222,39 +251732,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19136, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19102, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19102, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19102, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19136, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19102, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19136, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19102, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19102, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19136, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19102, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19137, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19137, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19103, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19103, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19136, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19102, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -253296,13 +251806,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19141, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19142, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -253370,39 +251880,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19144, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19110, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19110, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19110, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19144, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19110, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19144, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19110, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19110, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19144, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19110, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19145, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19145, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19111, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19111, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19144, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19110, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -253444,13 +251954,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19149, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19150, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -253512,13 +252022,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19157, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19158, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -253647,7 +252157,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19171, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -253660,10 +252170,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SAR_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19172, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream))))) __PYX_ERR(3, 19172, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream))))) __PYX_ERR(3, 19138, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -253781,96 +252291,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19203, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19169, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 10: values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19203, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19169, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, i); __PYX_ERR(3, 19203, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, i); __PYX_ERR(3, 19169, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 10: values[9] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19169, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19203, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19169, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -253878,49 +252388,49 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_startvalue = ((double)-4e37); } if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_offsetonreverse = ((double)-4e37); } if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_accelerationinitlong = ((double)-4e37); } if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_accelerationlong = ((double)-4e37); } if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_accelerationmaxlong = ((double)-4e37); } if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_accelerationinitshort = ((double)-4e37); } if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_accelerationshort = ((double)-4e37); } if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19203, __pyx_L3_error) + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19169, __pyx_L3_error) } else { __pyx_v_accelerationmaxshort = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 19203, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 19169, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -253970,34 +252480,34 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19204, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19205, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19206, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19206, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19172, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19206, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19172, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19207, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19173, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19208, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19174, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19209, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19175, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -254009,7 +252519,7 @@ static int __pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19214, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -254101,96 +252611,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19220, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19186, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19220, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19186, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, i); __PYX_ERR(3, 19220, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, i); __PYX_ERR(3, 19186, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19186, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19186, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19220, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19186, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -254198,49 +252708,49 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = values[0]; __pyx_v_low = values[1]; if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_startvalue = ((double)-4e37); } if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_offsetonreverse = ((double)-4e37); } if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_accelerationinitlong = ((double)-4e37); } if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_accelerationlong = ((double)-4e37); } if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_accelerationmaxlong = ((double)-4e37); } if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_accelerationinitshort = ((double)-4e37); } if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_accelerationshort = ((double)-4e37); } if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19221, __pyx_L3_error) + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19187, __pyx_L3_error) } else { __pyx_v_accelerationmaxshort = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 19220, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 10, __pyx_nargs); __PYX_ERR(3, 19186, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -254295,39 +252805,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19222, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19223, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19224, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19224, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19190, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19224, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19190, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19225, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19191, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19226, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19192, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19227, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19193, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19229, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -254341,13 +252851,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19235, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19236, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SAREXT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -254356,24 +252866,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19239, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19205, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19239, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19205, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19239, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19205, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19239, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19205, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -254453,39 +252963,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19241, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19207, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19207, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19241, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19207, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19241, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 19207, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19207, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19241, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19207, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19242, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19242, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19208, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19208, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19241, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19207, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -254527,13 +253037,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19246, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19247, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -254601,39 +253111,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19249, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19215, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19215, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19249, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19215, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19249, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 19215, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19215, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19249, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19215, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19250, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19250, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19216, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19216, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19249, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 19215, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -254675,13 +253185,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19254, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19255, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -254743,13 +253253,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19262, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19263, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -254878,7 +253388,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19276, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -254891,10 +253401,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13SAREXT_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19277, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream))))) __PYX_ERR(3, 19277, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream))))) __PYX_ERR(3, 19243, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -255003,32 +253513,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19299, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19265, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19265, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19299, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19265, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19299, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19265, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19299, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19265, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19299, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19265, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -255069,26 +253579,26 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19301, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19301, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19267, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19302, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19268, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19303, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19269, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19304, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19270, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -255100,7 +253610,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SIN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SIN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19309, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SIN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -255182,32 +253692,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19315, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19281, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19315, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19281, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19315, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19281, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19315, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19281, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19315, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19281, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19315, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19281, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -255253,31 +253763,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19317, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19318, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19318, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19284, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19319, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19285, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19320, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19286, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19321, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19287, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19323, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -255291,13 +253801,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19329, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SIN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19330, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SIN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -255306,21 +253816,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19333, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19333, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19333, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19299, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19333, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19333, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19299, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19333, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19299, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -255398,32 +253908,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19335, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19301, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19335, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19301, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19335, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19301, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19335, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19301, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19335, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19301, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19336, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19302, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19335, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19301, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -255464,13 +253974,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19340, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19341, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -255537,32 +254047,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19343, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19309, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19343, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19343, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19309, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19343, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19309, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19343, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19309, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19344, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19310, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19343, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19309, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -255603,13 +254113,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19348, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19349, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -255671,13 +254181,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19356, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19357, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -255806,7 +254316,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19370, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -255819,10 +254329,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SIN_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19371, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream))))) __PYX_ERR(3, 19371, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream))))) __PYX_ERR(3, 19337, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SIN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -255931,32 +254441,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19393, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19359, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19359, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19393, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19359, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19393, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19359, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19393, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19359, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19393, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19359, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -255997,26 +254507,26 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19394, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19395, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19395, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19361, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19396, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19362, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19397, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19363, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19398, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19364, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -256028,7 +254538,7 @@ static int __pyx_pf_5talib_7_ta_lib_11SINH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SINH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19403, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SINH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -256110,32 +254620,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19409, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19375, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19375, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19409, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19375, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19409, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19375, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19409, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19375, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19409, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19375, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -256181,31 +254691,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19411, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19412, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19412, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19378, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19413, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19379, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19414, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19380, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19415, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19381, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19417, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -256219,13 +254729,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19423, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SINH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SINH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19424, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SINH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -256234,21 +254744,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19427, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19427, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19427, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19393, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19427, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19427, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19393, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19427, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19393, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -256326,32 +254836,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19429, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19395, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19429, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19395, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19429, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19395, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19429, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19395, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19429, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19395, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19430, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19396, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19429, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19395, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -256392,13 +254902,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19434, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19435, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -256465,32 +254975,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19437, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19403, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19403, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19437, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19403, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19437, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19403, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19437, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19403, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19438, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19404, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19437, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19403, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -256531,13 +255041,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19442, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19443, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -256599,13 +255109,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19450, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19451, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -256734,7 +255244,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19464, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -256747,10 +255257,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SINH_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19465, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream))))) __PYX_ERR(3, 19465, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream))))) __PYX_ERR(3, 19431, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SINH_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -256860,48 +255370,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19489, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19455, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19489, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19489, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19489, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19455, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19489, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 19455, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19489, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19455, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19489, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19455, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19489, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19455, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19489, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19455, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -256943,26 +255453,26 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19490, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19491, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19491, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19457, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19492, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19458, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19493, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19459, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19494, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19460, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -256974,7 +255484,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19499, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -257057,48 +255567,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19505, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19471, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19505, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19471, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19505, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 19471, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19471, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19505, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19471, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19506, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19472, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19505, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 19471, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -257145,31 +255655,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19507, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19508, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19508, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19474, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19509, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19475, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19510, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19476, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19511, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19477, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19513, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -257183,13 +255693,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19519, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19520, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -257198,21 +255708,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19523, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19523, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19523, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19489, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19523, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19523, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19489, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19523, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19489, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -257290,32 +255800,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19525, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19491, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19525, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19491, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19525, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19491, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19491, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19526, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19492, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19525, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19491, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -257356,13 +255866,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19530, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19531, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -257429,32 +255939,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19533, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19499, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19533, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19499, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19533, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19499, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19533, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19499, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19533, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19499, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19534, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19500, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19533, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19499, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -257495,13 +256005,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19538, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19539, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -257563,13 +256073,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19546, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19547, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -257698,7 +256208,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19560, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -257711,10 +256221,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMA_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19561, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19527, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream))))) __PYX_ERR(3, 19561, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream))))) __PYX_ERR(3, 19527, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -257829,70 +256339,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19591, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19555, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19591, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19555, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, i); __PYX_ERR(3, 19591, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, i); __PYX_ERR(3, 19555, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19555, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19555, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19591, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19555, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -257901,29 +256411,29 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19555, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19555, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19555, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19591, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19555, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 19591, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 19555, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -257971,42 +256481,42 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19592, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19593, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19594, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19595, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19559, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19559, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19559, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19596, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19560, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19597, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19561, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19598, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19562, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -258018,7 +256528,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SMI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19604, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -258109,70 +256619,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19610, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19574, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19610, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19574, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, i); __PYX_ERR(3, 19610, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, i); __PYX_ERR(3, 19574, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19574, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19574, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19574, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19610, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19574, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -258181,29 +256691,29 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19575, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19575, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19575, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)-2147483648); } if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19611, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19575, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 19610, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 7, __pyx_nargs); __PYX_ERR(3, 19574, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -258252,61 +256762,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19612, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19613, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19615, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19615, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19579, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19615, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19579, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19615, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19579, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19616, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19580, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19617, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19581, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19618, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19582, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19620, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19621, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -258320,13 +256826,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19627, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SMI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SMI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -258335,66 +256841,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsmi)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 19631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsmi)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsmisignal)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19631, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsmisignal)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19631, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19595, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -258413,9 +256902,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_4open_and_fill(PyObject * __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -258481,46 +256967,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19633, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19597, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19597, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19597, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19597, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19633, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19597, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 19633, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 19597, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19597, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19597, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19597, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19634, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19634, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19634, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19598, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19598, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19598, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19633, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19597, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -258554,9 +257040,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -258569,50 +257052,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19639, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19640, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 19604, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 19604, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -258621,8 +257087,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_6update(struct __pyx_obj_ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -258676,46 +257140,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19642, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19606, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19606, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19606, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19606, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19642, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19606, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 19642, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 19606, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19606, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19606, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19642, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19606, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19643, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19643, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19643, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19607, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19607, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19607, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19642, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19606, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -258749,9 +257213,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5t PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -258764,50 +257225,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19648, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19649, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 19613, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 19613, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -258816,8 +257260,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_8peek(struct __pyx_obj_5t __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -258855,9 +257297,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __p PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -258870,50 +257309,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19657, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SMI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19658, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19622, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsmi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outsmisignal); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 19622, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 19622, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -258922,8 +257344,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_5value___get__(struct __p __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.SMI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -259037,7 +257457,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19671, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -259050,10 +257470,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SMI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19672, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream))))) __PYX_ERR(3, 19672, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream))))) __PYX_ERR(3, 19636, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SMI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -259162,32 +257582,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19694, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19658, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19694, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19658, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19694, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19658, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19694, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 19658, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19694, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19658, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19694, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19658, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -259228,26 +257648,26 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19696, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19696, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19660, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19697, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19661, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19698, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19662, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19699, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19663, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -259259,7 +257679,7 @@ static int __pyx_pf_5talib_7_ta_lib_11SQRT_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SQRT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19704, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SQRT_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -259341,32 +257761,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19710, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19674, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19674, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19710, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19674, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19710, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 19674, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19710, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19674, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19710, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19674, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -259412,31 +257832,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19712, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19713, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19713, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19677, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19714, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19678, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19715, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19679, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19716, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19680, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19718, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -259450,13 +257870,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19724, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SQRT_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19725, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SQRT_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -259465,21 +257885,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19728, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19728, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19728, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19692, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19728, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19728, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19692, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19728, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19692, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -259557,32 +257977,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19730, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19694, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19730, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19694, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19730, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19694, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19730, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19694, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19730, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19694, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19731, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19695, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19730, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19694, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -259623,13 +258043,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19735, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19736, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -259696,32 +258116,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19738, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19702, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19738, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19702, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19738, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19702, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19738, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19702, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19738, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19702, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19739, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19703, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19738, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19702, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -259762,13 +258182,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19743, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19744, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -259830,13 +258250,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19751, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19752, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -259965,7 +258385,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19765, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -259978,10 +258398,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11SQRT_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19766, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream))))) __PYX_ERR(3, 19766, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream))))) __PYX_ERR(3, 19730, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -260092,61 +258512,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19791, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19755, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19791, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19755, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 19791, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 19755, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19755, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19791, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19755, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19791, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19755, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19791, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19755, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 19791, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 19755, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -260189,26 +258609,26 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19793, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19793, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19757, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19794, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19758, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19795, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19759, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19796, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19760, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -260220,7 +258640,7 @@ static int __pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19801, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -260304,61 +258724,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19807, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19771, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19807, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19771, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 19807, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 19771, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19771, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19807, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19771, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19808, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19772, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19808, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19772, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 19807, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 19771, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -260406,31 +258826,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19809, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19810, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19810, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 19774, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19811, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19775, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19812, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19776, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19813, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19777, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19815, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -260444,13 +258864,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19821, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19785, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19822, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STDDEV_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -260459,21 +258879,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19825, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19825, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19825, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 19789, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19825, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19825, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19789, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19825, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 19789, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -260551,32 +258971,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19827, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19791, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19827, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19791, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19827, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 19791, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19827, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19791, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19828, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19792, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19827, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19791, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -260617,13 +259037,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19832, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19833, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -260690,32 +259110,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19835, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19799, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19799, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19835, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19799, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19835, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 19799, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19835, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19799, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19836, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19800, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19835, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 19799, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -260756,13 +259176,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19840, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19841, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -260824,13 +259244,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19848, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19849, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -260959,7 +259379,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19862, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -260972,10 +259392,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STDDEV_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19863, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream))))) __PYX_ERR(3, 19863, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream))))) __PYX_ERR(3, 19827, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -261091,78 +259511,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19894, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19856, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19894, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19856, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 19894, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, i); __PYX_ERR(3, 19856, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19856, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19856, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19856, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19856, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -261171,34 +259591,34 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19856, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19856, __pyx_L3_error) } else { __pyx_v_slowk_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19856, __pyx_L3_error) } else { __pyx_v_slowk_matype = ((int)0); } if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19856, __pyx_L3_error) } else { __pyx_v_slowd_period = ((int)-2147483648); } if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19894, __pyx_L3_error) + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19856, __pyx_L3_error) } else { __pyx_v_slowd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19894, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19856, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -261247,42 +259667,42 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19895, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19896, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19897, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19898, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19898, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19860, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19898, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19860, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19898, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19860, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19899, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19861, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19900, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19862, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19901, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19863, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -261294,7 +259714,7 @@ static int __pyx_pf_5talib_7_ta_lib_12STOCH_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19907, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -261386,78 +259806,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19913, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19875, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19913, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19875, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 19913, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, i); __PYX_ERR(3, 19875, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19875, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19875, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19875, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19913, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19875, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -261466,34 +259886,34 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19876, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19876, __pyx_L3_error) } else { __pyx_v_slowk_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19876, __pyx_L3_error) } else { __pyx_v_slowk_matype = ((int)0); } if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19876, __pyx_L3_error) } else { __pyx_v_slowd_period = ((int)-2147483648); } if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19914, __pyx_L3_error) + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19876, __pyx_L3_error) } else { __pyx_v_slowd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19913, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 8, __pyx_nargs); __PYX_ERR(3, 19875, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -261543,61 +259963,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19917, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19918, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19918, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19880, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19918, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19880, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19918, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19880, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19919, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19881, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19920, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19882, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19921, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19883, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19923, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19924, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -261611,13 +260027,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19930, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19931, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -261626,66 +260042,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outslowk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 19934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 19934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outslowk)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outslowd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19934, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outslowd)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19934, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 19896, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -261704,9 +260103,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_4open_and_fill(PyObject __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -261772,46 +260168,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19936, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19898, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19898, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19898, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19898, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19936, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 19898, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 19936, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 19898, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19898, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19898, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19936, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19898, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19937, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19937, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19937, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19899, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19899, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19899, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19936, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19898, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -261845,9 +260241,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_ob PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -261860,50 +260253,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19942, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19943, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 19905, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 19905, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -261912,8 +260288,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_6update(struct __pyx_ob __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -261967,46 +260341,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19945, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19907, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19907, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19945, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 19907, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 19945, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 19907, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19907, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19907, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19907, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19946, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19946, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19946, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19908, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19908, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 19908, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19945, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 19907, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -262040,9 +260414,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -262055,50 +260426,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19951, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19952, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 19914, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 19914, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -262107,8 +260461,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_8peek(struct __pyx_obj_ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -262146,9 +260498,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct _ PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -262161,50 +260510,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19960, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCH_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19961, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 19923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 19961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 19961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 19923, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 19923, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -262213,8 +260545,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_5value___get__(struct _ __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCH_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -262328,7 +260658,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19974, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -262341,10 +260671,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12STOCH_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19975, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream))))) __PYX_ERR(3, 19975, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream))))) __PYX_ERR(3, 19937, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -262458,62 +260788,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20004, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19964, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20004, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 19964, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 20004, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 19964, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19964, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19964, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19964, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20004, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19964, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -262522,24 +260852,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20004, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19964, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20004, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19964, __pyx_L3_error) } else { __pyx_v_fastd_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20004, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19964, __pyx_L3_error) } else { __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 20004, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 19964, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -262586,42 +260916,42 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20005, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20006, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20007, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20008, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20008, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19968, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20008, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19968, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20008, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19968, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20009, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19969, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20010, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19970, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20011, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19971, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -262633,7 +260963,7 @@ static int __pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20017, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -262723,62 +261053,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20023, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 19983, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20023, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 19983, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 20023, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 19983, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 19983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 19983, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 19983, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20023, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 19983, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -262787,24 +261117,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19984, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19984, __pyx_L3_error) } else { __pyx_v_fastd_period = ((int)-2147483648); } if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20024, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 19984, __pyx_L3_error) } else { __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 20023, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 19983, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -262852,61 +261182,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20025, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20026, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20027, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20028, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20028, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 19988, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20028, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 19988, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20028, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 19988, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20029, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 19989, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20030, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 19990, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20031, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 19991, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20033, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20034, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -262920,13 +261246,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20040, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20041, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -262935,66 +261261,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20044, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20044, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20004, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -263013,9 +261322,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_4open_and_fill(PyObjec __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263081,46 +261387,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20046, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20006, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20046, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20006, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20046, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20006, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20046, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20006, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20046, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20006, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20046, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20006, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20046, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20006, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20046, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20006, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20046, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20006, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20047, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20047, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20047, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20007, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20007, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20007, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20046, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20006, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -263154,9 +261460,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_o PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -263169,50 +261472,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20052, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20053, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20053, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20013, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20013, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -263221,8 +261507,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_6update(struct __pyx_o __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263276,46 +261560,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20055, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20015, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20015, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20055, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20015, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20055, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20015, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20015, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20015, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20055, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20015, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20056, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20056, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20056, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20016, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20016, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20016, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20055, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20015, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -263349,9 +261633,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -263364,50 +261645,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20061, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20062, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20022, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20022, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -263416,8 +261680,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_8peek(struct __pyx_obj __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263455,9 +261717,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -263470,50 +261729,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20070, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHF_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20071, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20031, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20031, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -263522,8 +261764,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCHF_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -263637,7 +261877,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20084, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -263650,10 +261890,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13STOCHF_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20085, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream))))) __PYX_ERR(3, 20085, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream))))) __PYX_ERR(3, 20045, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -263766,87 +262006,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20115, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20073, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20115, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20073, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 20115, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, i); __PYX_ERR(3, 20073, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20115, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20073, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20073, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20073, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20073, __pyx_L3_error) } else { __pyx_v_fastd_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20115, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20073, __pyx_L3_error) } else { __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 20115, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 20073, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -263892,26 +262132,26 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20116, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20117, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20117, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20075, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20118, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20076, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20119, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20077, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20120, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20078, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -263923,7 +262163,7 @@ static int __pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20126, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -264010,87 +262250,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20132, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20090, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20132, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20090, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 20132, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, i); __PYX_ERR(3, 20090, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20090, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20132, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20090, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20091, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20091, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)-2147483648); } if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20091, __pyx_L3_error) } else { __pyx_v_fastd_period = ((int)-2147483648); } if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20133, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20091, __pyx_L3_error) } else { __pyx_v_fastd_matype = ((int)0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 20132, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 5, __pyx_nargs); __PYX_ERR(3, 20090, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -264137,45 +262377,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20135, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20135, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20093, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20136, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20094, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20137, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20095, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20138, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20096, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20140, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -264189,13 +262425,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20147, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20148, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_STOCHRSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -264204,54 +262440,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20109, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastk)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20151, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20151, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20109, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outfastd)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 20109, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 20109, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20109, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20151, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20109, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -264270,9 +262489,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_4open_and_fill(PyObj __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -264334,32 +262550,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20153, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20111, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20111, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20153, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20111, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20153, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20111, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20111, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20154, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20112, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20153, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20111, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -264391,9 +262607,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264406,50 +262619,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20159, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20160, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20118, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20118, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -264458,8 +262654,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_6update(struct __pyx __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -264511,32 +262705,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20162, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20120, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20120, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20162, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20120, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20162, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20120, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20162, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20120, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20163, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20121, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20162, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20120, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -264568,9 +262762,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_o PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264583,50 +262774,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20168, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20169, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20127, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20127, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -264635,8 +262809,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_8peek(struct __pyx_o __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -264674,9 +262846,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struc PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -264689,50 +262858,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20177, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20178, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20178, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20136, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20136, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -264741,8 +262893,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_5value___get__(struc __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.STOCHRSI_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -264856,7 +263006,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20191, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -264869,10 +263019,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15STOCHRSI_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20192, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream))))) __PYX_ERR(3, 20192, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream))))) __PYX_ERR(3, 20150, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -264982,39 +263132,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20215, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20173, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20173, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20173, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20215, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20173, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 20215, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, i); __PYX_ERR(3, 20173, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20173, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20173, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20215, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20173, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -265056,34 +263206,34 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20216, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20217, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20218, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 20218, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 20176, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 20218, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 20176, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20219, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20177, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20220, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20178, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20221, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20179, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -265095,7 +263245,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SUB_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUB_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20226, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUB_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -265179,39 +263329,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20232, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20190, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20190, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20232, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20190, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 20232, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, i); __PYX_ERR(3, 20190, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20190, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20190, __pyx_L3_error) } __pyx_v_real0 = values[0]; __pyx_v_real1 = values[1]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20232, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20190, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -265258,39 +263408,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20234, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20235, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20236, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real0); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 20236, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real0)) != (0)) __PYX_ERR(3, 20194, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_real1); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 20236, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_real1)) != (0)) __PYX_ERR(3, 20194, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20237, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20195, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20238, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20196, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20239, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20197, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -265304,13 +263454,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20247, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUB_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUB_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20248, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUB_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -265319,24 +263469,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20251, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real0); __Pyx_GIVEREF(__pyx_v_real0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real0) != (0)) __PYX_ERR(3, 20209, __pyx_L1_error); __Pyx_INCREF(__pyx_v_real1); __Pyx_GIVEREF(__pyx_v_real1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20251, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_real1) != (0)) __PYX_ERR(3, 20209, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20251, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20209, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20251, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20209, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -265416,39 +263566,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20253, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20211, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20253, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20211, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 20253, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 20211, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20211, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20211, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20254, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20254, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20212, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20212, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20253, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20211, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -265490,13 +263640,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20258, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20259, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -265564,39 +263714,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20261, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20219, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20261, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20219, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 20261, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 20219, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20219, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20219, __pyx_L3_error) } - __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20262, __pyx_L3_error) - __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20262, __pyx_L3_error) + __pyx_v_real0 = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20220, __pyx_L3_error) + __pyx_v_real1 = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_real1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20220, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20261, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 20219, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -265638,13 +263788,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20266, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20267, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -265706,13 +263856,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20274, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20275, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -265841,7 +263991,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20288, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -265854,10 +264004,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUB_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20289, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream))))) __PYX_ERR(3, 20289, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream))))) __PYX_ERR(3, 20247, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUB_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -265967,48 +264117,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20313, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20271, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20313, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20271, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20313, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20271, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20271, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20313, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20271, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20313, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20271, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20313, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20271, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -266050,26 +264200,26 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20314, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20315, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20315, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20273, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20316, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20274, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20317, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20275, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20318, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20276, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -266081,7 +264231,7 @@ static int __pyx_pf_5talib_7_ta_lib_10SUM_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20323, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUM_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -266164,48 +264314,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20329, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20287, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20329, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20329, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20329, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20287, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20329, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20287, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20329, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20287, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20329, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20287, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20330, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20288, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20329, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20287, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -266252,31 +264402,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20331, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20332, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20332, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20290, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20333, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20291, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20334, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20292, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20335, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20293, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20337, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -266290,13 +264440,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20343, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUM_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20344, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUM_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -266305,21 +264455,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20347, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20347, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20347, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20305, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20347, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20347, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20305, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20347, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20305, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -266397,32 +264547,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20349, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20307, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20307, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20349, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20307, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20349, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20307, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20307, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20350, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20308, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20307, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -266463,13 +264613,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20354, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20355, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -266536,32 +264686,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20357, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20315, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20315, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20357, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20315, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20357, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20315, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20315, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20358, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20316, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20357, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20315, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -266602,13 +264752,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20362, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20363, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -266670,13 +264820,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20370, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20371, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -266805,7 +264955,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20384, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -266818,10 +264968,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10SUM_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20385, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream))))) __PYX_ERR(3, 20385, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream))))) __PYX_ERR(3, 20343, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUM_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -266934,54 +265084,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20369, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20369, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(3, 20413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, i); __PYX_ERR(3, 20369, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20369, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20369, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20369, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20369, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -266990,19 +265140,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20413, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20369, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20413, __pyx_L3_error) + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20369, __pyx_L3_error) } else { __pyx_v_multiplier = ((double)3.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 20413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 20369, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -267048,42 +265198,42 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20414, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20415, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20416, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20417, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20373, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20373, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20417, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20373, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20418, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20374, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20419, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20375, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20420, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20376, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -267095,7 +265245,7 @@ static int __pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_2__init__(struct __pyx_o if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20426, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -267184,54 +265334,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20432, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20388, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20432, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20388, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, i); __PYX_ERR(3, 20432, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, i); __PYX_ERR(3, 20388, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 20388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20388, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20388, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20432, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20388, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -267240,19 +265390,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20433, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20389, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20433, __pyx_L3_error) + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20389, __pyx_L3_error) } else { __pyx_v_multiplier = ((double)3.0); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 20432, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 5, __pyx_nargs); __PYX_ERR(3, 20388, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -267299,61 +265449,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20434, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20435, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20436, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20437, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20437, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20393, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20437, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20393, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20437, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20393, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20438, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20394, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20439, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20395, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20440, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20396, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20442, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20443, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -267367,13 +265513,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20449, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20450, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_SUPERTREND_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -267382,66 +265528,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outsupertrend)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 20453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 20453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outsupertrend)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outtrend)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20453, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outtrend)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20453, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 20409, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -267460,9 +265589,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_4open_and_fill(PyO __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -267528,46 +265654,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20455, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20411, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20411, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20455, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20411, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20455, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20411, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20411, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20411, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20455, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20411, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20456, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20456, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20456, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20412, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20412, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20412, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20455, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20411, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -267601,9 +265727,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -267616,50 +265739,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20461, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20462, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20418, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -267668,8 +265774,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_6update(struct __p __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -267723,46 +265827,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20464, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20420, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20420, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20420, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20420, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20464, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20420, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20464, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20420, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20420, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20420, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20464, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20420, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20465, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20465, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20465, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20421, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20421, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20421, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20464, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20420, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -267796,9 +265900,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -267811,50 +265912,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20470, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20471, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20427, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20427, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -267863,8 +265947,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_8peek(struct __pyx __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -267902,9 +265984,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(str PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -267917,50 +265996,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(str if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20479, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20480, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 20436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outsupertrend); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyLong_From_int(__pyx_v_outtrend); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 20480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20480, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 20436, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 20436, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -267969,8 +266031,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_5value___get__(str __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.SUPERTREND_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -268084,7 +266144,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __py if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20493, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -268097,10 +266157,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_17SUPERTREND_Stream_10copy(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20494, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream))))) __PYX_ERR(3, 20494, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream))))) __PYX_ERR(3, 20450, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -268211,61 +266271,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20519, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20475, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20475, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20475, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20475, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20519, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20475, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 20519, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 20475, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20475, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20475, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20519, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20475, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20519, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20475, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20519, __pyx_L3_error) + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20475, __pyx_L3_error) } else { __pyx_v_vfactor = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20519, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20475, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -268308,26 +266368,26 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20520, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20521, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20521, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20477, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20522, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20478, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20523, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20479, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20524, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20480, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -268339,7 +266399,7 @@ static int __pyx_pf_5talib_7_ta_lib_9T3_Stream_2__init__(struct __pyx_obj_5talib if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20529, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -268423,61 +266483,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20535, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20491, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20535, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20491, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 20535, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 20491, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20535, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20491, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20536, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20492, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20536, __pyx_L3_error) + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20492, __pyx_L3_error) } else { __pyx_v_vfactor = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20535, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 20491, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -268525,31 +266585,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20537, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20538, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20538, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20494, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20539, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20495, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20540, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20496, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20541, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20497, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20543, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -268563,13 +266623,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20549, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_T3_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_T3_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20550, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_T3_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -268578,21 +266638,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_4open_and_fill(PyObject *__ __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20553, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20553, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20553, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20509, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20553, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20553, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20509, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20553, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20509, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -268670,32 +266730,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20555, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20511, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20511, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20555, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20511, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20555, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20511, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20511, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20556, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20512, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20555, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20511, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -268736,13 +266796,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_6update(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20560, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20561, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -268809,32 +266869,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20563, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20519, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20519, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20563, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20519, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20563, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20519, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20563, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20519, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20564, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20520, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20563, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20519, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -268875,13 +266935,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_8peek(struct __pyx_obj_5tal if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20568, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20569, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -268943,13 +267003,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_5value___get__(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20576, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20577, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -269078,7 +267138,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5ta if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20590, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -269091,10 +267151,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_9T3_Stream_10copy(struct __pyx_obj_5ta PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20591, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream))))) __PYX_ERR(3, 20591, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream))))) __PYX_ERR(3, 20547, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_T3_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -269203,32 +267263,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20613, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20569, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20569, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20613, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20569, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20613, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20569, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20613, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20569, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20613, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20569, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -269269,26 +267329,26 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20615, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20615, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20571, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20616, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20572, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20617, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20573, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20618, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20574, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -269300,7 +267360,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TAN_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20623, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TAN_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -269382,32 +267442,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20629, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20585, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20629, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20585, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20629, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20585, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20629, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20585, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20629, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20585, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20629, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20585, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -269453,31 +267513,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20631, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20632, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20632, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20588, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20633, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20589, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20634, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20590, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20635, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20591, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20637, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -269491,13 +267551,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20643, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TAN_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20644, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TAN_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -269506,21 +267566,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20647, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20647, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20647, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20603, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20647, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20647, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20603, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20647, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20603, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -269598,32 +267658,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20649, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20605, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20605, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20649, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20605, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20649, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20605, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20605, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20650, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20606, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20649, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20605, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -269664,13 +267724,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20654, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20655, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -269737,32 +267797,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20657, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20613, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20657, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20657, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20613, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20657, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20613, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20657, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20613, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20658, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20614, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20657, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20613, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -269803,13 +267863,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20662, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20663, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -269871,13 +267931,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20670, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20671, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -270006,7 +268066,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20684, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -270019,10 +268079,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TAN_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20685, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream))))) __PYX_ERR(3, 20685, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream))))) __PYX_ERR(3, 20641, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TAN_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -270131,32 +268191,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20707, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20663, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20663, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20707, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20663, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20707, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, i); __PYX_ERR(3, 20663, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20707, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20663, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20707, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20663, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -270197,26 +268257,26 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20708, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20709, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20709, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20665, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20710, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20666, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20711, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20667, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20712, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20668, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -270228,7 +268288,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TANH_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TANH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20717, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TANH_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -270310,32 +268370,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20723, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20723, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20679, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20723, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, i); __PYX_ERR(3, 20679, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20679, __pyx_L3_error) } __pyx_v_real = values[0]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20723, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -270381,31 +268441,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20725, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20726, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20726, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20682, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20727, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20683, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20728, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20684, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20729, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20685, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20731, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -270419,13 +268479,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20737, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TANH_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TANH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20738, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TANH_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -270434,21 +268494,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20741, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20741, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20741, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20697, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20741, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20741, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20697, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20741, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20697, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -270526,32 +268586,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20743, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20699, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20743, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20699, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20743, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20699, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20743, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20699, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20744, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20700, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20743, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20699, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -270592,13 +268652,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20748, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20749, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -270665,32 +268725,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20751, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20707, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20751, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20707, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20751, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20707, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20751, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20707, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20751, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20707, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20752, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20708, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20751, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20707, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -270731,13 +268791,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20756, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20757, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -270799,13 +268859,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20764, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20765, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -270934,7 +268994,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20778, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -270947,10 +269007,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TANH_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20779, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream))))) __PYX_ERR(3, 20779, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream))))) __PYX_ERR(3, 20735, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TANH_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -271060,48 +269120,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20803, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20759, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20803, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20803, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20759, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20803, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20759, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20803, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20759, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20803, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20759, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20803, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20759, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -271143,26 +269203,26 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20804, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20805, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20805, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20761, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20806, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20762, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20807, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20763, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20808, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20764, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -271174,7 +269234,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TEMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20813, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -271257,48 +269317,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20819, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20775, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20775, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20775, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20819, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20775, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20819, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20775, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20775, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20819, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20775, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20820, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20776, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20819, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20775, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -271345,31 +269405,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20821, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20822, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20822, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20778, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20823, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20779, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20824, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20780, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20825, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20781, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20827, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -271383,13 +269443,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20833, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20834, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -271398,21 +269458,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20837, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20837, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20837, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20793, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20837, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20837, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20793, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20837, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20793, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -271490,32 +269550,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20839, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20795, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20839, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20795, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20839, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20795, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20839, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20795, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20839, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20795, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20840, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20796, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20839, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20795, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -271556,13 +269616,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20844, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20845, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -271629,32 +269689,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20847, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20803, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20847, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20803, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20847, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20803, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20847, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20803, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20848, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20804, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20847, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20803, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -271695,13 +269755,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20852, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20853, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -271763,13 +269823,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20860, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20861, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20817, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -271898,7 +269958,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20874, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -271911,10 +269971,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TEMA_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20875, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream))))) __PYX_ERR(3, 20875, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream))))) __PYX_ERR(3, 20831, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -272025,38 +270085,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20897, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20853, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20853, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20897, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20853, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 20897, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 20853, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20853, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20853, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20853, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -272064,7 +270124,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20897, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20853, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -272107,42 +270167,42 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20898, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20899, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20900, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20901, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20901, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20857, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20901, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20857, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20901, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20857, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20902, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20858, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20903, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20859, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20904, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20860, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -272154,7 +270214,7 @@ static int __pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRANGE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20909, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRANGE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -272240,38 +270300,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20915, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20871, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20871, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20915, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20871, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 20915, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 20871, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20871, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20871, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20915, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20871, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -272279,7 +270339,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20915, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20871, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -272327,47 +270387,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20917, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20873, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20918, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20919, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20920, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20920, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 20876, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20920, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 20876, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20920, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 20876, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20921, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20877, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20922, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20878, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20923, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20879, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20925, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -272381,13 +270441,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20931, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20932, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRANGE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -272396,27 +270456,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20935, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 20891, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 20891, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20935, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 20891, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20935, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20891, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20935, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20891, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -272498,46 +270558,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20937, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20893, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20893, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20893, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20893, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20937, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20893, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20937, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 20893, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20893, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20893, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20937, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20893, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20938, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20938, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20938, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20894, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20894, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20894, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20937, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20893, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -272580,13 +270640,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20942, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20943, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -272655,46 +270715,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20945, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20901, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20901, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20901, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20901, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20945, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20901, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20945, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 20901, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20901, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20901, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20945, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 20901, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20946, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20946, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20946, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20902, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20902, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20902, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20945, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 20901, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -272737,13 +270797,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20950, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20951, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -272805,13 +270865,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20958, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20959, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -272940,7 +271000,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20972, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -272953,10 +271013,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13TRANGE_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20973, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream))))) __PYX_ERR(3, 20973, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream))))) __PYX_ERR(3, 20929, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -273066,48 +271126,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20997, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20953, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20997, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20997, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20997, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 20953, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20997, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 20953, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20997, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20997, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20953, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20997, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20953, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20997, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20953, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -273149,26 +271209,26 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20998, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20999, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20999, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20955, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21000, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20956, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21001, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20957, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21002, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20958, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -273180,7 +271240,7 @@ static int __pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRIMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21007, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRIMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -273263,48 +271323,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21013, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20969, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21013, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 20969, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21013, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 20969, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 20969, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21013, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20969, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21014, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 20970, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21013, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 20969, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -273351,31 +271411,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21015, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21016, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21016, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 20972, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21017, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 20973, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21018, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 20974, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21019, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 20975, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21021, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -273389,13 +271449,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21027, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21028, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -273404,21 +271464,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21031, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21031, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21031, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 20987, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 20987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21031, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21031, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 20987, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21031, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 20987, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -273496,32 +271556,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21033, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20989, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21033, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20989, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21033, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 20989, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21033, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 20989, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21033, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20989, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21034, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20990, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21033, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20989, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -273562,13 +271622,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21038, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21039, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -273635,32 +271695,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21041, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 20997, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21041, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 20997, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21041, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 20997, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 20997, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21042, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 20998, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21041, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 20997, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -273701,13 +271761,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21046, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21047, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -273769,13 +271829,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21054, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21055, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -273904,7 +271964,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21068, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -273917,10 +271977,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12TRIMA_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21069, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream))))) __PYX_ERR(3, 21069, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream))))) __PYX_ERR(3, 21025, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -274030,48 +272090,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21093, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21049, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21093, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21093, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21093, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21049, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21093, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21049, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21093, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21049, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21093, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21049, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21093, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21049, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21093, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21049, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -274113,26 +272173,26 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21094, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21095, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21095, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21051, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21096, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21052, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21097, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21053, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21098, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21054, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -274144,7 +272204,7 @@ static int __pyx_pf_5talib_7_ta_lib_11TRIX_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRIX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21103, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TRIX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -274227,48 +272287,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21109, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21065, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21109, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21065, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21109, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21065, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21065, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21065, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21110, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21066, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21109, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21065, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -274315,31 +272375,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21111, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21112, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21112, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21068, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21113, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21069, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21114, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21070, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21115, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21071, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21117, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -274353,13 +272413,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21123, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TRIX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21124, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TRIX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -274368,21 +272428,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21127, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21127, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21127, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21083, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21127, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21127, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21083, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21127, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21083, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -274460,32 +272520,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21129, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21085, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21085, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21129, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21085, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21129, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21085, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21129, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21085, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21130, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21086, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21129, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21085, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -274526,13 +272586,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21134, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21135, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21091, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -274599,32 +272659,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21137, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21093, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21137, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21093, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21137, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21093, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21137, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21093, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21137, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21093, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21138, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21094, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21137, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21093, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -274665,13 +272725,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21142, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21143, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -274733,13 +272793,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21150, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21151, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -274868,7 +272928,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21164, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -274881,10 +272941,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11TRIX_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21165, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream))))) __PYX_ERR(3, 21165, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream))))) __PYX_ERR(3, 21121, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -274994,48 +273054,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21189, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21145, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21145, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21145, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21189, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21145, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21189, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21145, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21145, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21189, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21145, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21189, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21145, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21189, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21145, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -275077,26 +273137,26 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21190, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21191, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21191, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21147, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21192, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21148, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21193, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21149, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21194, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21150, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -275108,7 +273168,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TSF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TSF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21199, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TSF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -275191,48 +273251,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21205, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21161, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21205, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21161, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21205, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21161, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21161, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21161, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21206, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21162, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21205, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21161, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -275279,31 +273339,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21208, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21208, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21164, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21209, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21165, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21210, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21166, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21211, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21167, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21213, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -275317,13 +273377,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21219, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21220, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -275332,21 +273392,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21223, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21223, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21223, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21179, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21223, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21223, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21179, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21223, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21179, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -275424,32 +273484,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21225, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21181, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21225, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21181, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21225, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21181, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21225, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21181, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21225, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21181, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21226, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21182, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21225, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21181, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -275490,13 +273550,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21230, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21231, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -275563,32 +273623,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21233, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21189, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21189, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21233, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21189, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21233, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21189, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21189, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21234, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21190, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21233, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21189, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -275629,13 +273689,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21238, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21239, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -275697,13 +273757,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21246, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21247, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -275832,7 +273892,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21260, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -275845,10 +273905,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSF_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21261, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream))))) __PYX_ERR(3, 21261, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream))))) __PYX_ERR(3, 21217, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSF_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -275959,61 +274019,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21286, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21242, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21286, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21242, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 21286, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 21242, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21242, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21286, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21242, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21286, __pyx_L3_error) + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21242, __pyx_L3_error) } else { __pyx_v_firstperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21286, __pyx_L3_error) + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21242, __pyx_L3_error) } else { __pyx_v_secondperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21286, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21242, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -276056,26 +274116,26 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21287, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21288, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21288, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21244, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21289, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21245, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21290, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21246, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21291, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21247, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -276087,7 +274147,7 @@ static int __pyx_pf_5talib_7_ta_lib_10TSI_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21296, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -276171,61 +274231,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21302, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21258, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21302, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21258, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 21302, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 21258, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21258, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21302, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21258, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21303, __pyx_L3_error) + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21259, __pyx_L3_error) } else { __pyx_v_firstperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21303, __pyx_L3_error) + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21259, __pyx_L3_error) } else { __pyx_v_secondperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21302, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21258, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -276273,31 +274333,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21304, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21305, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21305, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21261, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21306, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21262, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21307, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21263, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21308, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21264, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21310, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -276311,13 +274371,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21316, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TSI_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21317, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TSI_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -276326,21 +274386,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21320, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21320, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21320, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21276, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21320, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21320, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21276, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21320, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21276, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -276418,32 +274478,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21322, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21278, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21322, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21278, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21322, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21278, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21322, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21278, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21322, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21278, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21323, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21279, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21322, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21278, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -276484,13 +274544,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21327, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21328, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -276557,32 +274617,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21330, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21286, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21286, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21330, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21286, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21330, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21286, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21330, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21286, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21331, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21287, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21330, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21286, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -276623,13 +274683,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21335, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21336, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -276691,13 +274751,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21343, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21344, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -276826,7 +274886,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21357, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -276839,10 +274899,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10TSI_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21358, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream))))) __PYX_ERR(3, 21358, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream))))) __PYX_ERR(3, 21314, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TSI_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -276953,38 +275013,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21380, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21336, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21336, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21336, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21336, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21380, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21336, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 21380, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 21336, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21336, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21336, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21380, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21336, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -276992,7 +275052,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21380, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21336, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -277035,42 +275095,42 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21381, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21382, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21383, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21384, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21384, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21340, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21384, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21340, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21384, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21340, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21385, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21341, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21386, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21342, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21387, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21343, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -277082,7 +275142,7 @@ static int __pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TYPPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21392, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_TYPPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -277168,38 +275228,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21398, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21354, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21398, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21354, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 21398, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 21354, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21354, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21354, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21398, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21354, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -277207,7 +275267,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21398, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21354, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -277255,47 +275315,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21403, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21359, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21359, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21403, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21359, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21404, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21360, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21405, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21361, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21406, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21362, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -277309,13 +275369,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21414, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21415, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_TYPPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -277324,27 +275384,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21418, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21374, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21374, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21418, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21374, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21418, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21374, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21418, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21374, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -277426,46 +275486,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21420, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21376, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21420, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21420, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21420, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21420, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21376, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21420, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21376, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21420, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21376, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21420, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21376, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21420, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21376, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21421, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21421, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21421, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21377, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21377, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21377, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21420, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21376, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -277508,13 +275568,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21425, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21426, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -277583,46 +275643,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21428, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21384, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21384, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21428, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21384, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21428, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21384, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21384, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21384, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21428, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21384, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21429, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21429, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21429, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21385, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21385, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21385, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21428, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21384, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -277665,13 +275725,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21433, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21434, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -277733,13 +275793,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21441, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21442, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -277868,7 +275928,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21455, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -277881,10 +275941,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15TYPPRICE_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21456, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream))))) __PYX_ERR(3, 21456, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream))))) __PYX_ERR(3, 21412, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -277998,62 +276058,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21482, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21438, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21482, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21438, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 21482, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, i); __PYX_ERR(3, 21438, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21438, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21438, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21438, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21438, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -278062,24 +276122,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21482, __pyx_L3_error) + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21438, __pyx_L3_error) } else { __pyx_v_timeperiod1 = ((int)-2147483648); } if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21482, __pyx_L3_error) + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21438, __pyx_L3_error) } else { __pyx_v_timeperiod2 = ((int)-2147483648); } if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21482, __pyx_L3_error) + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21438, __pyx_L3_error) } else { __pyx_v_timeperiod3 = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21482, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21438, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -278125,42 +276185,42 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21483, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21484, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21485, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21486, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21486, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21442, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21486, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21442, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21486, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21442, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21487, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21443, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21488, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21444, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21489, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21445, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -278172,7 +276232,7 @@ static int __pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21494, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -278261,62 +276321,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21500, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21456, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21500, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21456, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 21500, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, i); __PYX_ERR(3, 21456, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21456, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21456, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21456, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21500, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21456, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -278325,24 +276385,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21501, __pyx_L3_error) + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21457, __pyx_L3_error) } else { __pyx_v_timeperiod1 = ((int)-2147483648); } if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21501, __pyx_L3_error) + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21457, __pyx_L3_error) } else { __pyx_v_timeperiod2 = ((int)-2147483648); } if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21501, __pyx_L3_error) + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21457, __pyx_L3_error) } else { __pyx_v_timeperiod3 = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21500, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 6, __pyx_nargs); __PYX_ERR(3, 21456, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -278393,47 +276453,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21502, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21504, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21505, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21461, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21461, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21505, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21461, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21506, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21462, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21507, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21463, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21508, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21464, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21510, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -278447,13 +276507,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21516, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21517, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ULTOSC_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -278462,27 +276522,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21520, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21476, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21476, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21520, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21476, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21520, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21476, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21520, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21476, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -278564,46 +276624,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21522, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21478, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21478, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21522, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21478, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21522, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21478, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21478, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21478, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21522, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21478, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21523, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21523, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21523, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21479, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21479, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21479, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21522, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21478, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -278646,13 +276706,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21527, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21528, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -278721,46 +276781,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21530, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21486, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21486, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21530, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21486, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21530, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21486, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21486, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21486, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21530, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21486, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21531, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21531, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21531, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21487, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21487, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21487, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21530, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21486, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -278803,13 +276863,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21535, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21536, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -278871,13 +276931,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21543, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21544, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -279006,7 +277066,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21557, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -279019,10 +277079,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13ULTOSC_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21558, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream))))) __PYX_ERR(3, 21558, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream))))) __PYX_ERR(3, 21514, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -279133,61 +277193,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21583, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21539, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21583, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21539, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 21583, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, i); __PYX_ERR(3, 21539, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21539, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21583, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21539, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21583, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21539, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21583, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21539, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21583, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21539, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -279230,26 +277290,26 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21584, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21585, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21585, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21541, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21586, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21542, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21587, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21543, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21588, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21544, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -279261,7 +277321,7 @@ static int __pyx_pf_5talib_7_ta_lib_10VAR_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21593, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -279345,61 +277405,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21599, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21555, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21599, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21555, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 21599, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, i); __PYX_ERR(3, 21555, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21599, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21555, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21600, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21556, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21600, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21556, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)-4e37); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21599, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 3, __pyx_nargs); __PYX_ERR(3, 21555, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -279447,31 +277507,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21601, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21602, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21602, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21558, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21603, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21559, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21604, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21560, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21605, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21561, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21607, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -279485,13 +277545,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21613, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VAR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21614, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VAR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -279500,21 +277560,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21617, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21617, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21617, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21573, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21617, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21573, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21617, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21573, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -279592,32 +277652,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21619, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21575, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21575, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21619, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21575, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21619, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21575, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21619, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21575, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21620, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21576, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21619, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21575, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -279658,13 +277718,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21624, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21625, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -279731,32 +277791,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21627, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21583, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21583, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21627, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21583, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21627, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21583, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21627, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21583, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21628, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21584, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21627, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21583, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -279797,13 +277857,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21632, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21633, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -279865,13 +277925,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21640, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21641, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -280000,7 +278060,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21654, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -280013,10 +278073,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VAR_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21655, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream))))) __PYX_ERR(3, 21655, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream))))) __PYX_ERR(3, 21611, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VAR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -280126,48 +278186,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21679, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21635, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21679, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21679, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21679, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21635, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21679, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 21635, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21679, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21635, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21679, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21635, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21679, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21635, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21679, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21635, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -280209,26 +278269,26 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21680, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21681, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21681, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21637, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21682, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21638, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21683, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21639, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21684, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21640, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -280240,7 +278300,7 @@ static int __pyx_pf_5talib_7_ta_lib_10VHF_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VHF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21689, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VHF_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -280323,48 +278383,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21695, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21651, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21651, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21651, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21695, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21651, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21695, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 21651, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21651, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21651, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21696, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21652, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21695, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 21651, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -280411,31 +278471,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21697, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21698, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21698, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21654, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21699, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21655, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21700, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21656, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21701, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21657, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21703, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -280449,13 +278509,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21709, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VHF_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21710, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VHF_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -280464,21 +278524,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21713, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21713, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21713, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21669, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21713, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21713, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21669, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21713, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21669, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -280556,32 +278616,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21715, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21671, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21715, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21671, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21715, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 21671, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21715, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21671, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21716, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21672, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21715, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21671, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -280622,13 +278682,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21720, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21721, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -280695,32 +278755,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21723, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21723, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21679, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21723, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 21679, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21679, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21724, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21680, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21723, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 21679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -280761,13 +278821,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21728, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21729, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -280829,13 +278889,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21736, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21737, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -280964,7 +279024,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21750, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -280977,10 +279037,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10VHF_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21751, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream))))) __PYX_ERR(3, 21751, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream))))) __PYX_ERR(3, 21707, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VHF_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -281092,46 +279152,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21778, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21732, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21732, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21732, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21732, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21732, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21778, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21732, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 21778, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 21732, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21732, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21732, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21732, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21778, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21732, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -281140,14 +279200,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21778, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21732, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 21778, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 21732, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -281192,42 +279252,42 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21779, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21780, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21781, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21782, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21736, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21736, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21782, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21736, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21783, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21737, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21784, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21738, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21785, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21739, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -281239,7 +279299,7 @@ static int __pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_2__init__(struct __pyx_obj_5 if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VORTEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21791, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VORTEX_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -281327,46 +279387,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21797, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21751, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21797, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21751, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 21797, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 21751, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21751, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21751, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21751, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21797, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21751, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -281375,14 +279435,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21798, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21752, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 21797, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 21751, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -281428,61 +279488,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - size_t __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21799, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21800, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21802, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21756, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21756, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21802, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21756, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21803, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21757, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21804, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21758, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21805, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21759, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21807, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -281496,13 +279552,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21814, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21815, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VORTEX_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21769, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -281511,66 +279567,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_5 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 21818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); - __pyx_t_8 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outplusvi)); if (unlikely(!__pyx_t_8)) __PYX_ERR(3, 21818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 21818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outplusvi)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); - __pyx_t_9 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_7), ((PyObject *)__pyx_v_outminusvi)); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_10 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); - assert(__pyx_t_5); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); - __pyx_t_10 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_8, __pyx_t_9}; - __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21818, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21818, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outminusvi)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21818, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1) != (0)) __PYX_ERR(3, 21772, __pyx_L1_error); __pyx_t_1 = 0; { PyObject *__pyx_temp; @@ -281589,9 +279628,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_4open_and_fill(PyObjec __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.open_and_fill", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -281657,46 +279693,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21820, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21774, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21774, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21820, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21774, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21820, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 21774, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21774, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21774, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21820, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21774, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21821, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21821, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21821, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21775, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21775, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21775, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21820, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21774, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -281730,9 +279766,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_o PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281745,50 +279778,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21826, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21827, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 21781, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 21781, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -281797,8 +279813,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_6update(struct __pyx_o __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.update", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -281852,46 +279866,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21829, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21783, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21783, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21783, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21783, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21829, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21783, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21829, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 21783, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21783, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21783, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21829, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21783, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21830, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21830, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21830, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21784, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21784, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21784, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21829, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 21783, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -281925,9 +279939,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -281940,50 +279951,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21835, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21836, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21836, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 21790, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 21790, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -281992,8 +279986,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_8peek(struct __pyx_obj __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.peek", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -282031,9 +280023,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - size_t __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -282046,50 +280035,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21844, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_3 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_VORTEX_Value); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21845, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 21799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outplusvi); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyFloat_FromDouble(__pyx_v_outminusvi); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 21845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = 1; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); - assert(__pyx_t_3); - PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx__function); - __Pyx_DECREF_SET(__pyx_t_4, __pyx__function); - __pyx_t_7 = 0; - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_6}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_4, __pyx_callargs+__pyx_t_7, (3-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2) != (0)) __PYX_ERR(3, 21799, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(3, 21799, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_4 = 0; goto __pyx_L0; @@ -282098,8 +280070,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_5value___get__(struct __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.VORTEX_Stream.value.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -282213,7 +280183,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21858, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -282226,10 +280196,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_13VORTEX_Stream_10copy(struct __pyx_ob PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21859, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream))))) __PYX_ERR(3, 21859, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream))))) __PYX_ERR(3, 21813, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -282341,44 +280311,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21881, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21835, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21881, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21835, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 21881, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, i); __PYX_ERR(3, 21835, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21835, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21835, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21835, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21881, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21835, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -282387,7 +280357,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21881, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21835, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -282431,50 +280401,50 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21883, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21886, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21840, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21840, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21840, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21886, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21840, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21887, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21841, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21888, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21842, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21889, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21843, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -282486,7 +280456,7 @@ static int __pyx_pf_5talib_7_ta_lib_11VWAP_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VWAP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21894, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VWAP_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -282574,44 +280544,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21900, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21854, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21854, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21900, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21854, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 21900, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, i); __PYX_ERR(3, 21854, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21854, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21854, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21854, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21900, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21854, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -282620,7 +280590,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21900, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21854, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -282669,55 +280639,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21902, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21904, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21906, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 21860, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 21860, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 21860, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21906, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21860, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21907, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21861, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21908, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21862, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21909, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21863, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21911, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21865, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -282731,13 +280701,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21917, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWAP_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21918, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWAP_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -282746,30 +280716,30 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21921, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 21875, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 21875, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 21875, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21921, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_volume) != (0)) __PYX_ERR(3, 21875, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21921, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21875, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21921, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21875, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -282853,53 +280823,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21923, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21877, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21877, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21877, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21877, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21877, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21923, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21877, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 21923, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, i); __PYX_ERR(3, 21877, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21877, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21877, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21877, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21923, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21877, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21924, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21878, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21878, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21878, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21878, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21923, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21877, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -282943,13 +280913,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21928, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21929, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -283019,53 +280989,53 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21931, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21885, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21885, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21931, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21885, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 21931, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, i); __PYX_ERR(3, 21885, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21885, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21885, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21885, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21931, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 21885, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21932, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21886, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21886, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21886, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21886, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21931, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 4, 4, __pyx_nargs); __PYX_ERR(3, 21885, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -283109,13 +281079,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21936, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21937, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -283177,13 +281147,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21944, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21945, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -283312,7 +281282,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21958, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -283325,10 +281295,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWAP_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21959, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream))))) __PYX_ERR(3, 21959, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream))))) __PYX_ERR(3, 21913, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -283439,40 +281409,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21984, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21938, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21984, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 21938, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 21984, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, i); __PYX_ERR(3, 21938, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21938, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21938, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21984, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21938, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -283480,14 +281450,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real = values[0]; __pyx_v_volume = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21984, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21938, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21984, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21938, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -283530,34 +281500,34 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21985, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21986, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21987, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21987, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21941, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21987, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21941, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21988, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21942, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21989, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21943, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21990, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21944, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -283569,7 +281539,7 @@ static int __pyx_pf_5talib_7_ta_lib_11VWMA_Stream_2__init__(struct __pyx_obj_5ta if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VWMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21995, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_VWMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -283654,40 +281624,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22001, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21955, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21955, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21955, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21955, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22001, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 21955, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 22001, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, i); __PYX_ERR(3, 21955, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 21955, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21955, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22001, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21955, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -283695,14 +281665,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real = values[0]; __pyx_v_volume = values[1]; if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22002, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 21956, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 22001, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 2, 3, __pyx_nargs); __PYX_ERR(3, 21955, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -283750,39 +281720,39 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22003, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22004, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_volume = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22005, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 21959, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_volume); __Pyx_GIVEREF((PyObject *)__pyx_v_a_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 22005, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_volume)) != (0)) __PYX_ERR(3, 21959, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22006, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 21960, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22007, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 21961, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22008, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 21962, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22010, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -283796,13 +281766,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22016, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_VWMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22017, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_VWMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -283811,24 +281781,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22020, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 21974, __pyx_L1_error); __Pyx_INCREF(__pyx_v_volume); __Pyx_GIVEREF(__pyx_v_volume); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22020, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_volume) != (0)) __PYX_ERR(3, 21974, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 21974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22020, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 21974, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22020, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 21974, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -283908,39 +281878,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22022, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21976, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21976, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22022, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 21976, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 22022, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, i); __PYX_ERR(3, 21976, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21976, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21976, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22023, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22023, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21977, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21977, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 22022, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21976, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -283982,13 +281952,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_6update(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22027, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22028, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -284056,39 +282026,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22030, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 21984, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22030, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22030, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21984, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22030, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 21984, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 22030, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, i); __PYX_ERR(3, 21984, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22030, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 21984, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22030, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 21984, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22031, __pyx_L3_error) - __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22031, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21985, __pyx_L3_error) + __pyx_v_volume = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_volume == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 21985, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 22030, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 2, 2, __pyx_nargs); __PYX_ERR(3, 21984, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -284130,13 +282100,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_8peek(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22035, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22036, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -284198,13 +282168,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_5value___get__(struct __ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22043, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22044, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -284333,7 +282303,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22057, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -284346,10 +282316,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_11VWMA_Stream_10copy(struct __pyx_obj_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22058, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream))))) __PYX_ERR(3, 22058, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream))))) __PYX_ERR(3, 22012, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -284460,38 +282430,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22080, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22034, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22034, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22034, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22034, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22080, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22034, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 22080, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 22034, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22034, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22034, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22034, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -284499,7 +282469,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22080, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22034, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -284542,42 +282512,42 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22081, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22082, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22083, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22084, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22084, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22038, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22084, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22038, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22084, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22038, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22085, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22039, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22086, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22040, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22087, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22041, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -284589,7 +282559,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WAD_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WAD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22092, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WAD_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -284675,38 +282645,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22098, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22052, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22052, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22052, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22052, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22098, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22052, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 22098, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 22052, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22052, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22052, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22098, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22052, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -284714,7 +282684,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22098, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22052, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -284762,47 +282732,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22100, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22102, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22103, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22057, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22057, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22057, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22104, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22058, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22105, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22059, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22106, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22060, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -284816,13 +282786,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22114, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WAD_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WAD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22115, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WAD_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -284831,27 +282801,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22118, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22072, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22072, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22118, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22072, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22118, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22072, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22118, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22072, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -284933,46 +282903,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22120, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22074, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22074, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22074, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22074, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22120, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22074, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22120, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22074, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22074, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22074, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22120, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22074, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22121, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22121, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22121, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22075, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22075, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22075, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22120, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22074, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -285015,13 +282985,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22125, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22126, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22080, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -285090,46 +283060,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22128, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22082, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22082, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22128, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22082, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22128, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22082, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22082, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22082, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22128, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22082, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22129, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22129, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22129, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22083, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22083, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22083, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22128, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22082, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -285172,13 +283142,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22133, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22134, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -285240,13 +283210,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22141, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22142, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -285375,7 +283345,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22155, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -285388,10 +283358,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WAD_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22156, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream))))) __PYX_ERR(3, 22156, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream))))) __PYX_ERR(3, 22110, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WAD_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -285502,38 +283472,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22178, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22132, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22132, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22178, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22132, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 22178, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, i); __PYX_ERR(3, 22132, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22132, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22132, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22178, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22132, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -285541,7 +283511,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22178, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22132, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -285584,42 +283554,42 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22179, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22181, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22182, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22136, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22136, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22182, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22136, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22183, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22137, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22184, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22138, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22185, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22139, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -285631,7 +283601,7 @@ static int __pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_2__init__(struct __pyx_obj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WCLPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22190, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WCLPRICE_Lookback() + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -285717,38 +283687,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22196, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22150, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22150, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22196, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22150, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 22196, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, i); __PYX_ERR(3, 22150, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22150, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22150, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22196, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22150, __pyx_L3_error) } __pyx_v_high = values[0]; __pyx_v_low = values[1]; @@ -285756,7 +283726,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22196, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22150, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -285804,47 +283774,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22198, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22200, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22201, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22201, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22155, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22201, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22155, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22201, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22155, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22202, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22156, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22203, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22157, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22204, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22158, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22206, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -285858,13 +283828,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22212, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22213, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WCLPRICE_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -285873,27 +283843,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_4open_and_fill(PyObj __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22216, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22170, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22216, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22170, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22216, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22170, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22216, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22170, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -285975,46 +283945,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22218, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22172, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22172, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22218, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22172, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22218, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22172, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22172, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22172, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22218, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22172, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22219, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22219, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22219, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22173, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22173, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22173, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22218, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22172, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -286057,13 +284027,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_6update(struct __pyx if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22223, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22224, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -286132,46 +284102,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22226, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22180, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22180, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22226, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22180, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22226, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22180, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22180, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22180, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22226, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22180, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22227, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22227, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22227, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22181, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22181, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22181, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22226, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22180, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -286214,13 +284184,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_8peek(struct __pyx_o if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22231, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22232, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -286282,13 +284252,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_5value___get__(struc if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22239, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22240, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -286417,7 +284387,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22253, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -286430,10 +284400,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_15WCLPRICE_Stream_10copy(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22254, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream))))) __PYX_ERR(3, 22254, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream))))) __PYX_ERR(3, 22208, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -286545,46 +284515,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22278, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22232, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22278, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22232, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 22278, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, i); __PYX_ERR(3, 22232, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22232, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22232, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22232, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22278, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22232, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -286593,14 +284563,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22278, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22232, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22278, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22232, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -286644,42 +284614,42 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22279, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22281, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22282, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22236, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22236, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22282, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22236, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22283, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22237, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22284, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22238, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22285, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22239, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -286691,7 +284661,7 @@ static int __pyx_pf_5talib_7_ta_lib_12WILLR_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WILLR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22290, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WILLR_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -286778,46 +284748,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22296, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22250, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22296, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22250, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 22296, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, i); __PYX_ERR(3, 22250, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(3, 22250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22250, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22250, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22250, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -286826,14 +284796,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = values[1]; __pyx_v_close = values[2]; if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22297, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22251, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 3, 4, __pyx_nargs); __PYX_ERR(3, 22250, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -286882,47 +284852,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22298, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_high = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22299, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_low = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22300, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_close = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22301, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_high); __Pyx_GIVEREF((PyObject *)__pyx_v_a_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22301, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_high)) != (0)) __PYX_ERR(3, 22255, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_low); __Pyx_GIVEREF((PyObject *)__pyx_v_a_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22301, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_a_low)) != (0)) __PYX_ERR(3, 22255, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_a_close); __Pyx_GIVEREF((PyObject *)__pyx_v_a_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22301, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_a_close)) != (0)) __PYX_ERR(3, 22255, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22302, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22256, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22303, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22257, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22304, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22258, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22306, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -286936,13 +284906,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22312, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WILLR_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22313, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WILLR_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -286951,27 +284921,27 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22316, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_high); __Pyx_GIVEREF(__pyx_v_high); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_high) != (0)) __PYX_ERR(3, 22270, __pyx_L1_error); __Pyx_INCREF(__pyx_v_low); __Pyx_GIVEREF(__pyx_v_low); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_low) != (0)) __PYX_ERR(3, 22270, __pyx_L1_error); __Pyx_INCREF(__pyx_v_close); __Pyx_GIVEREF(__pyx_v_close); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22316, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_close) != (0)) __PYX_ERR(3, 22270, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22316, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22270, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22316, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22270, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -287053,46 +285023,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22318, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22272, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22272, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22272, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22272, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22318, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22272, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22318, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, i); __PYX_ERR(3, 22272, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22272, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22272, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22318, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22272, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22319, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22319, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22319, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22273, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22273, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22273, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22318, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22272, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -287135,13 +285105,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22323, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22324, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -287210,46 +285180,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22326, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22280, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22280, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22326, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22280, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22326, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, i); __PYX_ERR(3, 22280, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22280, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22280, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(3, 22280, __pyx_L3_error) } - __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22327, __pyx_L3_error) - __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22327, __pyx_L3_error) - __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22327, __pyx_L3_error) + __pyx_v_high = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_high == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22281, __pyx_L3_error) + __pyx_v_low = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_low == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22281, __pyx_L3_error) + __pyx_v_close = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_close == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22281, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22326, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 3, 3, __pyx_nargs); __PYX_ERR(3, 22280, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -287292,13 +285262,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22331, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22332, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -287360,13 +285330,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22339, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22340, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -287495,7 +285465,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22353, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -287508,10 +285478,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12WILLR_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22354, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream))))) __PYX_ERR(3, 22354, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream))))) __PYX_ERR(3, 22308, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -287621,48 +285591,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22378, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22332, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22378, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22332, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22378, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22332, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22378, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22332, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22378, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22332, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22378, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22332, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -287704,26 +285674,26 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22379, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22380, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22380, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22334, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22381, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22335, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22382, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22336, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22383, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22337, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -287735,7 +285705,7 @@ static int __pyx_pf_5talib_7_ta_lib_10WMA_Stream_2__init__(struct __pyx_obj_5tal if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22388, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_WMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -287818,48 +285788,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22394, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22348, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22394, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22348, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22394, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22348, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22348, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22395, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22349, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22394, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22348, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -287906,31 +285876,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22396, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22397, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22397, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22351, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22398, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22352, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22399, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22353, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22400, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22354, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -287944,13 +285914,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22408, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_WMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22409, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_WMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -287959,21 +285929,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_4open_and_fill(PyObject * __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22412, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22412, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22412, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22366, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22412, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22412, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22366, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22412, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22366, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -288051,32 +286021,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22414, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22368, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22414, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22368, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22414, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22368, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22414, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22368, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22414, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22368, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22415, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22369, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22414, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22368, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -288117,13 +286087,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_6update(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22419, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22420, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -288190,32 +286160,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22422, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22376, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22422, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22376, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22422, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22376, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22422, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22376, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22422, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22376, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22423, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22377, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22422, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22376, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -288256,13 +286226,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_8peek(struct __pyx_obj_5t if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22427, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22428, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -288324,13 +286294,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_5value___get__(struct __p if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22435, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22436, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -288459,7 +286429,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5 if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22449, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -288472,10 +286442,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10WMA_Stream_10copy(struct __pyx_obj_5 PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22450, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream))))) __PYX_ERR(3, 22450, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream))))) __PYX_ERR(3, 22404, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_WMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -288585,48 +286555,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL_TPNEW(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22474, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22428, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22474, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__init__", 0) < (0)) __PYX_ERR(3, 22428, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22474, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, i); __PYX_ERR(3, 22428, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22428, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL_TPNEW(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22474, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22428, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22474, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22428, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22474, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22428, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -288668,26 +286638,26 @@ static int __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(struct __pyx_obj_5t int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22475, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22476, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22476, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22430, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22477, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22431, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22478, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22432, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22479, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22433, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_handle = NULL; @@ -288699,7 +286669,7 @@ static int __pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_2__init__(struct __pyx_obj_5t if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ZLEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22484, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Open, __pyx_v_retCode, __pyx_v_historylen, (TA_ZLEMA_Lookback(__pyx_v_timeperiod) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -288782,48 +286752,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22490, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22444, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22490, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "open_and_fill", 0) < (0)) __PYX_ERR(3, 22444, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22490, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, i); __PYX_ERR(3, 22444, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(3, 22444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22490, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22444, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = values[0]; if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22491, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 22445, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)-2147483648); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22490, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("open_and_fill", 0, 1, 2, __pyx_nargs); __PYX_ERR(3, 22444, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -288870,31 +286840,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("open_and_fill", 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22492, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib__stream_input(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_a_real = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22493, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_a_real); __Pyx_GIVEREF((PyObject *)__pyx_v_a_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22493, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_a_real)) != (0)) __PYX_ERR(3, 22447, __pyx_L1_error); __pyx_v_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22494, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length(__pyx_v_arrays); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 22448, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22495, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx(__pyx_v_length, __pyx_v_arrays); if (unlikely(__pyx_t_3 == ((int)-2))) __PYX_ERR(3, 22449, __pyx_L1_error) __pyx_v_begidx = __pyx_t_3; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22496, __pyx_L1_error) + __pyx_t_3 = __pyx_f_5talib_7_ta_lib__stream_history(__pyx_v_length, __pyx_v_begidx); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(3, 22450, __pyx_L1_error) __pyx_v_historylen = __pyx_t_3; __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; @@ -288908,13 +286878,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject if (__pyx_t_4) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22504, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__stream_open_failed(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_OpenAndFill, __pyx_v_retCode, __pyx_v_historylen, ((__pyx_v_lookback - __pyx_v_begidx) + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } - __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22505, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_tp_new_5talib_7_ta_lib_ZLEMA_Stream(((PyTypeObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream), __pyx_mstate_global->__pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_t_1); __pyx_t_1 = 0; @@ -288923,21 +286893,21 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_4open_and_fill(PyObject __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22508, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_real); __Pyx_GIVEREF(__pyx_v_real); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22508, __pyx_L1_error); - __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22508, __pyx_L1_error) + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_real) != (0)) __PYX_ERR(3, 22462, __pyx_L1_error); + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__stream_like(((PyObject*)__pyx_t_1), ((PyObject *)__pyx_v_outreal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(3, 22462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22508, __pyx_L1_error) + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF((PyObject *)__pyx_v_stream); __Pyx_GIVEREF((PyObject *)__pyx_v_stream); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22508, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_stream)) != (0)) __PYX_ERR(3, 22462, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22508, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5) != (0)) __PYX_ERR(3, 22462, __pyx_L1_error); __pyx_t_5 = 0; { PyObject *__pyx_temp; @@ -289015,32 +286985,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22510, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22464, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22464, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22510, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "update", 0) < (0)) __PYX_ERR(3, 22464, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22510, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, i); __PYX_ERR(3, 22464, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22510, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22464, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22511, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22465, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22510, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("update", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22464, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -289081,13 +287051,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_6update(struct __pyx_ob if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22515, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Update, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22516, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -289154,32 +287124,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22518, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(3, 22472, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22518, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22472, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22518, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "peek", 0) < (0)) __PYX_ERR(3, 22472, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22518, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, i); __PYX_ERR(3, 22472, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22518, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(3, 22472, __pyx_L3_error) } - __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22519, __pyx_L3_error) + __pyx_v_real = __Pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_real == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 22473, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22518, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("peek", 1, 1, 1, __pyx_nargs); __PYX_ERR(3, 22472, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -289220,13 +287190,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_8peek(struct __pyx_obj_ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22523, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Peek, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22524, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -289288,13 +287258,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_5value___get__(struct _ if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22531, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Value, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } - __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22532, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject *__pyx_temp; @@ -289423,7 +287393,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj if (__pyx_t_1) { - __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22545, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA_Clone, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -289436,10 +287406,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12ZLEMA_Stream_10copy(struct __pyx_obj PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))}; __pyx_t_2 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_new, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22546, __pyx_L1_error) + if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream))))) __PYX_ERR(3, 22546, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream))))) __PYX_ERR(3, 22500, __pyx_L1_error) __pyx_v_stream = ((struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream *)__pyx_t_2); __pyx_t_2 = 0; @@ -330839,11 +328809,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ACCBANDS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15ACCBANDS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2646, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream)) __PYX_ERR(3, 2646, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream)) __PYX_ERR(3, 2644, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream = &__pyx_type_5talib_7_ta_lib_ACCBANDS_Stream; #endif @@ -330851,7 +328821,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2646, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2644, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream); @@ -330861,8 +328831,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2646, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2646, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2644, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream) < (0)) __PYX_ERR(3, 2644, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_base.__weakref__); #endif @@ -330888,11 +328858,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ACOS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ACOS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ACOS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ACOS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2758, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ACOS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream)) __PYX_ERR(3, 2758, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream)) __PYX_ERR(3, 2756, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream = &__pyx_type_5talib_7_ta_lib_ACOS_Stream; #endif @@ -330900,7 +328870,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2758, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2756, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream); @@ -330910,8 +328880,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ACOS_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2758, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACOS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2758, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_vtabptr_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2756, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ACOS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream) < (0)) __PYX_ERR(3, 2756, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ACOS_Stream, __pyx_base.__weakref__); #endif @@ -330937,11 +328907,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_AD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2852, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream)) __PYX_ERR(3, 2852, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream)) __PYX_ERR(3, 2850, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream = &__pyx_type_5talib_7_ta_lib_AD_Stream; #endif @@ -330949,7 +328919,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2852, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2850, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream); @@ -330959,8 +328929,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AD_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_vtabptr_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2852, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2852, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_vtabptr_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2850, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream) < (0)) __PYX_ERR(3, 2850, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AD_Stream, __pyx_base.__weakref__); #endif @@ -330986,11 +328956,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ADD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2952, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream)) __PYX_ERR(3, 2952, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream)) __PYX_ERR(3, 2950, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream = &__pyx_type_5talib_7_ta_lib_ADD_Stream; #endif @@ -330998,7 +328968,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2952, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2950, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream); @@ -331008,8 +328978,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADD_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2952, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2952, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2950, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream) < (0)) __PYX_ERR(3, 2950, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADD_Stream, __pyx_base.__weakref__); #endif @@ -331035,11 +329005,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12ADOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12ADOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3049, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream)) __PYX_ERR(3, 3049, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream)) __PYX_ERR(3, 3047, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream = &__pyx_type_5talib_7_ta_lib_ADOSC_Stream; #endif @@ -331047,7 +329017,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3049, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3047, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream); @@ -331057,8 +329027,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADOSC_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3049, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3049, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3047, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream) < (0)) __PYX_ERR(3, 3047, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADOSC_Stream, __pyx_base.__weakref__); #endif @@ -331084,11 +329054,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ADR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3152, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream)) __PYX_ERR(3, 3152, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream)) __PYX_ERR(3, 3150, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream = &__pyx_type_5talib_7_ta_lib_ADR_Stream; #endif @@ -331096,7 +329066,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3152, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3150, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream); @@ -331106,8 +329076,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3152, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3152, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3150, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream) < (0)) __PYX_ERR(3, 3150, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADR_Stream, __pyx_base.__weakref__); #endif @@ -331133,11 +329103,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ADX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ADX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ADX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3250, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream)) __PYX_ERR(3, 3250, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream)) __PYX_ERR(3, 3248, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream = &__pyx_type_5talib_7_ta_lib_ADX_Stream; #endif @@ -331145,7 +329115,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3250, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3248, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream); @@ -331155,8 +329125,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADX_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3250, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3250, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3248, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream) < (0)) __PYX_ERR(3, 3248, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADX_Stream, __pyx_base.__weakref__); #endif @@ -331182,11 +329152,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ADXR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ADXR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ADXR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ADXR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3350, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ADXR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream)) __PYX_ERR(3, 3350, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream)) __PYX_ERR(3, 3348, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream = &__pyx_type_5talib_7_ta_lib_ADXR_Stream; #endif @@ -331194,7 +329164,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3350, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3348, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream); @@ -331204,8 +329174,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ADXR_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3350, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADXR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3350, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3348, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ADXR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream) < (0)) __PYX_ERR(3, 3348, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ADXR_Stream, __pyx_base.__weakref__); #endif @@ -331231,11 +329201,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_AO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9AO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9AO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3450, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream)) __PYX_ERR(3, 3450, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream)) __PYX_ERR(3, 3448, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream = &__pyx_type_5talib_7_ta_lib_AO_Stream; #endif @@ -331243,7 +329213,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3450, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3448, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream); @@ -331253,8 +329223,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AO_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_vtabptr_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3450, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3450, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_vtabptr_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3448, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream) < (0)) __PYX_ERR(3, 3448, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AO_Stream, __pyx_base.__weakref__); #endif @@ -331280,11 +329250,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_APO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10APO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_APO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10APO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3549, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_APO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream)) __PYX_ERR(3, 3549, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream)) __PYX_ERR(3, 3547, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream = &__pyx_type_5talib_7_ta_lib_APO_Stream; #endif @@ -331292,7 +329262,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3549, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3547, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream); @@ -331302,8 +329272,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_APO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_vtabptr_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3549, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_APO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3549, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_vtabptr_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3547, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_APO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream) < (0)) __PYX_ERR(3, 3547, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_APO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_APO_Stream, __pyx_base.__weakref__); #endif @@ -331329,11 +329299,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_AROON_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12AROON_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AROON_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12AROON_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3649, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AROON_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream)) __PYX_ERR(3, 3649, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream)) __PYX_ERR(3, 3645, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream = &__pyx_type_5talib_7_ta_lib_AROON_Stream; #endif @@ -331341,7 +329311,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3649, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3645, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream); @@ -331351,8 +329321,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROON_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3649, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3649, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3645, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream) < (0)) __PYX_ERR(3, 3645, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROON_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AROON_Stream, __pyx_base.__weakref__); #endif @@ -331378,11 +329348,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AROONOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15AROONOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3753, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AROONOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream)) __PYX_ERR(3, 3753, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream)) __PYX_ERR(3, 3749, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream = &__pyx_type_5talib_7_ta_lib_AROONOSC_Stream; #endif @@ -331390,7 +329360,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3753, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3749, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream); @@ -331400,8 +329370,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AROONOSC_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3753, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3753, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3749, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream) < (0)) __PYX_ERR(3, 3749, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AROONOSC_Stream, __pyx_base.__weakref__); #endif @@ -331427,11 +329397,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ASIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ASIN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ASIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ASIN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3851, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ASIN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream)) __PYX_ERR(3, 3851, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream)) __PYX_ERR(3, 3847, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream = &__pyx_type_5talib_7_ta_lib_ASIN_Stream; #endif @@ -331439,7 +329409,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3851, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3847, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream); @@ -331449,8 +329419,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ASIN_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3851, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ASIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3851, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3847, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ASIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream) < (0)) __PYX_ERR(3, 3847, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ASIN_Stream, __pyx_base.__weakref__); #endif @@ -331476,11 +329446,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ATAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ATAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ATAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ATAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3945, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ATAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream)) __PYX_ERR(3, 3945, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream)) __PYX_ERR(3, 3941, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream = &__pyx_type_5talib_7_ta_lib_ATAN_Stream; #endif @@ -331488,7 +329458,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3945, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3941, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream); @@ -331498,8 +329468,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATAN_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3945, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3945, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3941, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream) < (0)) __PYX_ERR(3, 3941, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ATAN_Stream, __pyx_base.__weakref__); #endif @@ -331525,11 +329495,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ATR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ATR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ATR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ATR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4039, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ATR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream)) __PYX_ERR(3, 4039, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream)) __PYX_ERR(3, 4035, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream = &__pyx_type_5talib_7_ta_lib_ATR_Stream; #endif @@ -331537,7 +329507,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4039, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4035, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream); @@ -331547,8 +329517,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ATR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4039, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4039, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4035, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream) < (0)) __PYX_ERR(3, 4035, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ATR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ATR_Stream, __pyx_base.__weakref__); #endif @@ -331574,11 +329544,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AVGDEV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13AVGDEV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4139, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AVGDEV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream)) __PYX_ERR(3, 4139, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream)) __PYX_ERR(3, 4135, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream = &__pyx_type_5talib_7_ta_lib_AVGDEV_Stream; #endif @@ -331586,7 +329556,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4139, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4135, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream); @@ -331596,8 +329566,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGDEV_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4139, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4139, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4135, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream) < (0)) __PYX_ERR(3, 4135, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AVGDEV_Stream, __pyx_base.__weakref__); #endif @@ -331623,11 +329593,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_AVGPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15AVGPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4235, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream)) __PYX_ERR(3, 4235, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream)) __PYX_ERR(3, 4231, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream = &__pyx_type_5talib_7_ta_lib_AVGPRICE_Stream; #endif @@ -331635,7 +329605,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4235, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4231, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream); @@ -331645,8 +329615,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4235, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4235, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4231, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream) < (0)) __PYX_ERR(3, 4231, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_base.__weakref__); #endif @@ -331672,11 +329642,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13BBANDS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_BBANDS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13BBANDS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4337, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BBANDS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream)) __PYX_ERR(3, 4337, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream)) __PYX_ERR(3, 4331, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream = &__pyx_type_5talib_7_ta_lib_BBANDS_Stream; #endif @@ -331684,7 +329654,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4337, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4331, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream); @@ -331694,8 +329664,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BBANDS_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4337, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4337, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_vtabptr_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4331, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream) < (0)) __PYX_ERR(3, 4331, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BBANDS_Stream, __pyx_base.__weakref__); #endif @@ -331721,11 +329691,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_BETA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11BETA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_BETA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11BETA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4448, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BETA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream)) __PYX_ERR(3, 4448, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream)) __PYX_ERR(3, 4442, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream = &__pyx_type_5talib_7_ta_lib_BETA_Stream; #endif @@ -331733,7 +329703,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4448, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4442, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream); @@ -331743,8 +329713,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BETA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_vtabptr_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4448, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BETA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4448, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_vtabptr_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4442, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BETA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream) < (0)) __PYX_ERR(3, 4442, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BETA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BETA_Stream, __pyx_base.__weakref__); #endif @@ -331770,11 +329740,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_BOP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10BOP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_BOP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10BOP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4547, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_BOP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream)) __PYX_ERR(3, 4547, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream)) __PYX_ERR(3, 4541, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream = &__pyx_type_5talib_7_ta_lib_BOP_Stream; #endif @@ -331782,7 +329752,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4547, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4541, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream); @@ -331792,8 +329762,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_BOP_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4547, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4547, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4541, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_BOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream) < (0)) __PYX_ERR(3, 4541, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_BOP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_BOP_Stream, __pyx_base.__weakref__); #endif @@ -331819,11 +329789,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CCI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CCI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CCI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CCI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4647, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CCI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream)) __PYX_ERR(3, 4647, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream)) __PYX_ERR(3, 4641, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream = &__pyx_type_5talib_7_ta_lib_CCI_Stream; #endif @@ -331831,7 +329801,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4647, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4641, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream); @@ -331841,8 +329811,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CCI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4647, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CCI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4647, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4641, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CCI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream) < (0)) __PYX_ERR(3, 4641, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CCI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CCI_Stream, __pyx_base.__weakref__); #endif @@ -331868,11 +329838,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL2CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDL2CROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4747, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream)) __PYX_ERR(3, 4747, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream)) __PYX_ERR(3, 4741, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDL2CROWS_Stream; #endif @@ -331880,7 +329850,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4747, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4741, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream); @@ -331890,8 +329860,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4747, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4747, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4741, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream) < (0)) __PYX_ERR(3, 4741, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_base.__weakref__); #endif @@ -331917,11 +329887,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3BLACKCROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4847, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream)) __PYX_ERR(3, 4847, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream)) __PYX_ERR(3, 4841, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDL3BLACKCROWS_Stream; #endif @@ -331929,7 +329899,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4847, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4841, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream); @@ -331939,8 +329909,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4847, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4847, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4841, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream) < (0)) __PYX_ERR(3, 4841, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_base.__weakref__); #endif @@ -331966,11 +329936,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3INSIDE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDL3INSIDE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4947, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream)) __PYX_ERR(3, 4947, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream)) __PYX_ERR(3, 4941, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3INSIDE_Stream; #endif @@ -331978,7 +329948,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4947, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4941, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream); @@ -331988,8 +329958,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4947, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4947, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4941, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream) < (0)) __PYX_ERR(3, 4941, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_base.__weakref__); #endif @@ -332015,11 +329985,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3LINESTRIKE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5047, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream)) __PYX_ERR(3, 5047, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream)) __PYX_ERR(3, 5041, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3LINESTRIKE_Stream; #endif @@ -332027,7 +329997,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5047, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5041, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream); @@ -332037,8 +330007,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5047, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5047, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5041, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream) < (0)) __PYX_ERR(3, 5041, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_base.__weakref__); #endif @@ -332064,11 +330034,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3OUTSIDE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDL3OUTSIDE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5147, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream)) __PYX_ERR(3, 5147, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream)) __PYX_ERR(3, 5141, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream = &__pyx_type_5talib_7_ta_lib_CDL3OUTSIDE_Stream; #endif @@ -332076,7 +330046,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5147, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5141, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream); @@ -332086,8 +330056,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5147, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5147, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5141, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream) < (0)) __PYX_ERR(3, 5141, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_base.__weakref__); #endif @@ -332113,11 +330083,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stre __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5247, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream)) __PYX_ERR(3, 5247, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream)) __PYX_ERR(3, 5241, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream = &__pyx_type_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream; #endif @@ -332125,7 +330095,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5247, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5241, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream); @@ -332135,8 +330105,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5247, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5247, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5241, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream) < (0)) __PYX_ERR(3, 5241, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_base.__weakref__); #endif @@ -332162,11 +330132,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Str __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5347, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream)) __PYX_ERR(3, 5347, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream)) __PYX_ERR(3, 5341, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream = &__pyx_type_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream; #endif @@ -332174,7 +330144,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5347, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5341, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream); @@ -332184,8 +330154,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5347, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5347, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5341, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream) < (0)) __PYX_ERR(3, 5341, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_base.__weakref__); #endif @@ -332211,11 +330181,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stre __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLABANDONEDBABY_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5447, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream)) __PYX_ERR(3, 5447, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream)) __PYX_ERR(3, 5441, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream = &__pyx_type_5talib_7_ta_lib_CDLABANDONEDBABY_Stream; #endif @@ -332223,7 +330193,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5447, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5441, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream); @@ -332233,8 +330203,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5447, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5447, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5441, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream) < (0)) __PYX_ERR(3, 5441, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_base.__weakref__); #endif @@ -332260,11 +330230,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Strea __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5549, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream)) __PYX_ERR(3, 5549, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream)) __PYX_ERR(3, 5543, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream = &__pyx_type_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream; #endif @@ -332272,7 +330242,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5549, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5543, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream); @@ -332282,8 +330252,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5549, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5549, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5543, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream) < (0)) __PYX_ERR(3, 5543, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_base.__weakref__); #endif @@ -332309,11 +330279,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLBELTHOLD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLBELTHOLD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5649, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream)) __PYX_ERR(3, 5649, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream)) __PYX_ERR(3, 5643, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream = &__pyx_type_5talib_7_ta_lib_CDLBELTHOLD_Stream; #endif @@ -332321,7 +330291,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5649, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5643, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream); @@ -332331,8 +330301,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5649, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5649, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5643, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream) < (0)) __PYX_ERR(3, 5643, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_base.__weakref__); #endif @@ -332358,11 +330328,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLBREAKAWAY_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLBREAKAWAY_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5749, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream)) __PYX_ERR(3, 5749, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream)) __PYX_ERR(3, 5743, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream = &__pyx_type_5talib_7_ta_lib_CDLBREAKAWAY_Stream; #endif @@ -332370,7 +330340,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5749, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5743, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream); @@ -332380,8 +330350,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5749, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5749, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5743, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream) < (0)) __PYX_ERR(3, 5743, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_base.__weakref__); #endif @@ -332407,11 +330377,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_St __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5849, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream)) __PYX_ERR(3, 5849, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream)) __PYX_ERR(3, 5843, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream = &__pyx_type_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream; #endif @@ -332419,7 +330389,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5843, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream); @@ -332429,8 +330399,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5849, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5843, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream) < (0)) __PYX_ERR(3, 5843, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_base.__weakref__); #endif @@ -332456,11 +330426,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_S __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5949, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream)) __PYX_ERR(3, 5949, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream)) __PYX_ERR(3, 5943, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream = &__pyx_type_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream; #endif @@ -332468,7 +330438,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5949, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5943, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream); @@ -332478,8 +330448,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5949, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5949, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5943, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream) < (0)) __PYX_ERR(3, 5943, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_base.__weakref__); #endif @@ -332505,11 +330475,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stre __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6049, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream)) __PYX_ERR(3, 6049, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream)) __PYX_ERR(3, 6043, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream = &__pyx_type_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream; #endif @@ -332517,7 +330487,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6049, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6043, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream); @@ -332527,8 +330497,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6049, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6049, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6043, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream) < (0)) __PYX_ERR(3, 6043, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_base.__weakref__); #endif @@ -332554,11 +330524,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Str __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6149, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream)) __PYX_ERR(3, 6149, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream)) __PYX_ERR(3, 6143, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream = &__pyx_type_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream; #endif @@ -332566,7 +330536,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6149, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6143, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream); @@ -332576,8 +330546,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6149, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6149, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6143, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream) < (0)) __PYX_ERR(3, 6143, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_base.__weakref__); #endif @@ -332603,11 +330573,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14CDLDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6251, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream)) __PYX_ERR(3, 6251, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream)) __PYX_ERR(3, 6245, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLDOJI_Stream; #endif @@ -332615,7 +330585,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6251, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6245, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream); @@ -332625,8 +330595,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6251, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6251, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6245, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream) < (0)) __PYX_ERR(3, 6245, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_base.__weakref__); #endif @@ -332652,11 +330622,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLDOJISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6351, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream)) __PYX_ERR(3, 6351, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream)) __PYX_ERR(3, 6345, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLDOJISTAR_Stream; #endif @@ -332664,7 +330634,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6351, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6345, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream); @@ -332674,8 +330644,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6351, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6351, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6345, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6345, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_base.__weakref__); #endif @@ -332701,11 +330671,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stre __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6451, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream)) __PYX_ERR(3, 6451, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream)) __PYX_ERR(3, 6445, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream; #endif @@ -332713,7 +330683,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6451, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6445, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream); @@ -332723,8 +330693,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6451, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6451, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6445, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream) < (0)) __PYX_ERR(3, 6445, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_base.__weakref__); #endif @@ -332750,11 +330720,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLENGULFING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLENGULFING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6551, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream)) __PYX_ERR(3, 6551, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream)) __PYX_ERR(3, 6545, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream = &__pyx_type_5talib_7_ta_lib_CDLENGULFING_Stream; #endif @@ -332762,7 +330732,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6551, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6545, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream); @@ -332772,8 +330742,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6551, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6551, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6545, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream) < (0)) __PYX_ERR(3, 6545, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_base.__weakref__); #endif @@ -332799,11 +330769,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_St __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6651, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream)) __PYX_ERR(3, 6651, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream)) __PYX_ERR(3, 6645, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream; #endif @@ -332811,7 +330781,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6651, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6645, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream); @@ -332821,8 +330791,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6651, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6651, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6645, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 6645, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_base.__weakref__); #endif @@ -332848,11 +330818,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLEVENINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6753, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream)) __PYX_ERR(3, 6753, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream)) __PYX_ERR(3, 6747, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLEVENINGSTAR_Stream; #endif @@ -332860,7 +330830,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6753, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6747, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream); @@ -332870,8 +330840,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6753, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6753, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6747, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream) < (0)) __PYX_ERR(3, 6747, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_base.__weakref__); #endif @@ -332897,11 +330867,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_S __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6855, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream)) __PYX_ERR(3, 6855, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream)) __PYX_ERR(3, 6849, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream = &__pyx_type_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream; #endif @@ -332909,7 +330879,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6855, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6849, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream); @@ -332919,8 +330889,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6855, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6855, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6849, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream) < (0)) __PYX_ERR(3, 6849, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_base.__weakref__); #endif @@ -332946,11 +330916,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Str __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6955, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 6949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream)) __PYX_ERR(3, 6955, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream)) __PYX_ERR(3, 6949, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream; #endif @@ -332958,7 +330928,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6955, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6949, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream); @@ -332968,8 +330938,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6955, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6955, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6949, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream) < (0)) __PYX_ERR(3, 6949, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_base.__weakref__); #endif @@ -332995,11 +330965,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHAMMER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLHAMMER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7055, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream)) __PYX_ERR(3, 7055, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream)) __PYX_ERR(3, 7049, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream = &__pyx_type_5talib_7_ta_lib_CDLHAMMER_Stream; #endif @@ -333007,7 +330977,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7055, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7049, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream); @@ -333017,8 +330987,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7055, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7055, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7049, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream) < (0)) __PYX_ERR(3, 7049, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_base.__weakref__); #endif @@ -333044,11 +331014,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream( __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHANGINGMAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_20CDLHANGINGMAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7155, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream)) __PYX_ERR(3, 7155, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream)) __PYX_ERR(3, 7149, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream = &__pyx_type_5talib_7_ta_lib_CDLHANGINGMAN_Stream; #endif @@ -333056,7 +331026,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream( __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7155, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7149, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream); @@ -333066,8 +331036,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream( __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7155, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7155, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7149, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream) < (0)) __PYX_ERR(3, 7149, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_base.__weakref__); #endif @@ -333093,11 +331063,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHARAMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLHARAMI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7255, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream)) __PYX_ERR(3, 7255, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream)) __PYX_ERR(3, 7249, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream = &__pyx_type_5talib_7_ta_lib_CDLHARAMI_Stream; #endif @@ -333105,7 +331075,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7255, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7249, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream); @@ -333115,8 +331085,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7255, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7255, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7249, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream) < (0)) __PYX_ERR(3, 7249, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_base.__weakref__); #endif @@ -333142,11 +331112,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHARAMICROSS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLHARAMICROSS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7355, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream)) __PYX_ERR(3, 7355, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream)) __PYX_ERR(3, 7349, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream = &__pyx_type_5talib_7_ta_lib_CDLHARAMICROSS_Stream; #endif @@ -333154,7 +331124,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7355, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7349, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream); @@ -333164,8 +331134,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7355, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7355, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7349, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream) < (0)) __PYX_ERR(3, 7349, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_base.__weakref__); #endif @@ -333191,11 +331161,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHIGHWAVE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLHIGHWAVE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7455, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream)) __PYX_ERR(3, 7455, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream)) __PYX_ERR(3, 7449, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIGHWAVE_Stream; #endif @@ -333203,7 +331173,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7455, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7449, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream); @@ -333213,8 +331183,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7455, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7455, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7449, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream) < (0)) __PYX_ERR(3, 7449, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_base.__weakref__); #endif @@ -333240,11 +331210,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLHIKKAKE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7555, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream)) __PYX_ERR(3, 7555, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream)) __PYX_ERR(3, 7549, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIKKAKE_Stream; #endif @@ -333252,7 +331222,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7555, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7549, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream); @@ -333262,8 +331232,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7555, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7555, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7549, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream) < (0)) __PYX_ERR(3, 7549, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_base.__weakref__); #endif @@ -333289,11 +331259,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream( __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7655, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream)) __PYX_ERR(3, 7655, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream)) __PYX_ERR(3, 7649, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream = &__pyx_type_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream; #endif @@ -333301,7 +331271,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream( __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7655, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7649, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream); @@ -333311,8 +331281,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream( __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7655, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7655, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7649, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream) < (0)) __PYX_ERR(3, 7649, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_base.__weakref__); #endif @@ -333338,11 +331308,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Strea __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7755, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream)) __PYX_ERR(3, 7755, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream)) __PYX_ERR(3, 7749, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream = &__pyx_type_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream; #endif @@ -333350,7 +331320,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7755, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7749, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream); @@ -333360,8 +331330,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7755, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7755, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7749, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream) < (0)) __PYX_ERR(3, 7749, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_base.__weakref__); #endif @@ -333387,11 +331357,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_St __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7855, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream)) __PYX_ERR(3, 7855, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream)) __PYX_ERR(3, 7849, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream; #endif @@ -333399,7 +331369,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7855, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7849, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream); @@ -333409,8 +331379,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7855, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7855, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7849, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream) < (0)) __PYX_ERR(3, 7849, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_base.__weakref__); #endif @@ -333436,11 +331406,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLINNECK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLINNECK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7955, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 7949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream)) __PYX_ERR(3, 7955, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream)) __PYX_ERR(3, 7949, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream = &__pyx_type_5talib_7_ta_lib_CDLINNECK_Stream; #endif @@ -333448,7 +331418,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7955, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7949, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream); @@ -333458,8 +331428,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7955, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7955, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7949, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream) < (0)) __PYX_ERR(3, 7949, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_base.__weakref__); #endif @@ -333485,11 +331455,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Str __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8055, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream)) __PYX_ERR(3, 8055, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream)) __PYX_ERR(3, 8049, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream = &__pyx_type_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream; #endif @@ -333497,7 +331467,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8055, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8049, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream); @@ -333507,8 +331477,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8055, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8055, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8049, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream) < (0)) __PYX_ERR(3, 8049, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_base.__weakref__); #endif @@ -333534,11 +331504,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLKICKING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLKICKING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8155, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream)) __PYX_ERR(3, 8155, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream)) __PYX_ERR(3, 8149, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream = &__pyx_type_5talib_7_ta_lib_CDLKICKING_Stream; #endif @@ -333546,7 +331516,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8155, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8149, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream); @@ -333556,8 +331526,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8155, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8155, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8149, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream) < (0)) __PYX_ERR(3, 8149, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_base.__weakref__); #endif @@ -333583,11 +331553,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_St __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8255, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream)) __PYX_ERR(3, 8255, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream)) __PYX_ERR(3, 8249, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream = &__pyx_type_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream; #endif @@ -333595,7 +331565,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8255, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8249, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream); @@ -333605,8 +331575,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8255, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8255, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8249, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream) < (0)) __PYX_ERR(3, 8249, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_base.__weakref__); #endif @@ -333632,11 +331602,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Strea __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8355, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream)) __PYX_ERR(3, 8355, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream)) __PYX_ERR(3, 8349, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream = &__pyx_type_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream; #endif @@ -333644,7 +331614,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8355, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8349, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream); @@ -333654,8 +331624,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8355, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8355, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8349, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream) < (0)) __PYX_ERR(3, 8349, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_base.__weakref__); #endif @@ -333681,11 +331651,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Str __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8455, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream)) __PYX_ERR(3, 8455, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream)) __PYX_ERR(3, 8449, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream = &__pyx_type_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream; #endif @@ -333693,7 +331663,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8455, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8449, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream); @@ -333703,8 +331673,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8455, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8455, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8449, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream) < (0)) __PYX_ERR(3, 8449, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_base.__weakref__); #endif @@ -333730,11 +331700,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLLONGLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLLONGLINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8555, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream)) __PYX_ERR(3, 8555, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream)) __PYX_ERR(3, 8549, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream = &__pyx_type_5talib_7_ta_lib_CDLLONGLINE_Stream; #endif @@ -333742,7 +331712,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8555, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8549, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream); @@ -333752,8 +331722,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8555, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8555, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8549, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream) < (0)) __PYX_ERR(3, 8549, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_base.__weakref__); #endif @@ -333779,11 +331749,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMARUBOZU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLMARUBOZU_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8655, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream)) __PYX_ERR(3, 8655, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream)) __PYX_ERR(3, 8649, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream = &__pyx_type_5talib_7_ta_lib_CDLMARUBOZU_Stream; #endif @@ -333791,7 +331761,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8655, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8649, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream); @@ -333801,8 +331771,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8655, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8655, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8649, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream) < (0)) __PYX_ERR(3, 8649, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_base.__weakref__); #endif @@ -333828,11 +331798,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMATCHINGLOW_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8755, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream)) __PYX_ERR(3, 8755, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream)) __PYX_ERR(3, 8749, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream = &__pyx_type_5talib_7_ta_lib_CDLMATCHINGLOW_Stream; #endif @@ -333840,7 +331810,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8755, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8749, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream); @@ -333850,8 +331820,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8755, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8755, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8749, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream) < (0)) __PYX_ERR(3, 8749, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_base.__weakref__); #endif @@ -333877,11 +331847,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMATHOLD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLMATHOLD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8855, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream)) __PYX_ERR(3, 8855, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream)) __PYX_ERR(3, 8849, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream = &__pyx_type_5talib_7_ta_lib_CDLMATHOLD_Stream; #endif @@ -333889,7 +331859,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8855, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8849, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream); @@ -333899,8 +331869,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8855, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8855, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8849, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream) < (0)) __PYX_ERR(3, 8849, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_base.__weakref__); #endif @@ -333926,11 +331896,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_St __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8957, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 8951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream)) __PYX_ERR(3, 8957, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream)) __PYX_ERR(3, 8951, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream; #endif @@ -333938,7 +331908,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8957, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8951, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream); @@ -333948,8 +331918,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8957, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8957, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8951, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream) < (0)) __PYX_ERR(3, 8951, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_base.__weakref__); #endif @@ -333975,11 +331945,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLMORNINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9059, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream)) __PYX_ERR(3, 9059, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream)) __PYX_ERR(3, 9053, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLMORNINGSTAR_Stream; #endif @@ -333987,7 +331957,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9059, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9053, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream); @@ -333997,8 +331967,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9059, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9059, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9053, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream) < (0)) __PYX_ERR(3, 9053, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_base.__weakref__); #endif @@ -334024,11 +331994,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLONNECK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLONNECK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9161, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream)) __PYX_ERR(3, 9161, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream)) __PYX_ERR(3, 9155, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream = &__pyx_type_5talib_7_ta_lib_CDLONNECK_Stream; #endif @@ -334036,7 +332006,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9161, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9155, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream); @@ -334046,8 +332016,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9161, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9161, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9155, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream) < (0)) __PYX_ERR(3, 9155, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_base.__weakref__); #endif @@ -334073,11 +332043,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__ __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLPIERCING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18CDLPIERCING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9261, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream)) __PYX_ERR(3, 9261, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream)) __PYX_ERR(3, 9255, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream = &__pyx_type_5talib_7_ta_lib_CDLPIERCING_Stream; #endif @@ -334085,7 +332055,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9261, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9255, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream); @@ -334095,8 +332065,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9261, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9261, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9255, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream) < (0)) __PYX_ERR(3, 9255, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_base.__weakref__); #endif @@ -334122,11 +332092,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9361, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream)) __PYX_ERR(3, 9361, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream)) __PYX_ERR(3, 9355, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream = &__pyx_type_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream; #endif @@ -334134,7 +332104,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9361, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9355, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream); @@ -334144,8 +332114,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9361, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9361, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9355, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream) < (0)) __PYX_ERR(3, 9355, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_base.__weakref__); #endif @@ -334171,11 +332141,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_S __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9461, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream)) __PYX_ERR(3, 9461, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream)) __PYX_ERR(3, 9455, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream = &__pyx_type_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream; #endif @@ -334183,7 +332153,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9461, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9455, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream); @@ -334193,8 +332163,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9461, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9461, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9455, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream) < (0)) __PYX_ERR(3, 9455, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_base.__weakref__); #endif @@ -334220,11 +332190,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_St __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9561, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream)) __PYX_ERR(3, 9561, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream)) __PYX_ERR(3, 9555, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream = &__pyx_type_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream; #endif @@ -334232,7 +332202,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9561, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9555, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream); @@ -334242,8 +332212,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9561, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9561, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9555, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream) < (0)) __PYX_ERR(3, 9555, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_base.__weakref__); #endif @@ -334269,11 +332239,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Strea __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9661, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream)) __PYX_ERR(3, 9661, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream)) __PYX_ERR(3, 9655, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream; #endif @@ -334281,7 +332251,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9661, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9655, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream); @@ -334291,8 +332261,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9661, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9661, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9655, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream) < (0)) __PYX_ERR(3, 9655, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_base.__weakref__); #endif @@ -334318,11 +332288,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSHORTLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLSHORTLINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9761, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream)) __PYX_ERR(3, 9761, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream)) __PYX_ERR(3, 9755, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream = &__pyx_type_5talib_7_ta_lib_CDLSHORTLINE_Stream; #endif @@ -334330,7 +332300,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9761, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9755, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream); @@ -334340,8 +332310,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9761, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9761, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9755, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream) < (0)) __PYX_ERR(3, 9755, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_base.__weakref__); #endif @@ -334367,11 +332337,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSPINNINGTOP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9861, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream)) __PYX_ERR(3, 9861, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream)) __PYX_ERR(3, 9855, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream = &__pyx_type_5talib_7_ta_lib_CDLSPINNINGTOP_Stream; #endif @@ -334379,7 +332349,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9861, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9855, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream); @@ -334389,8 +332359,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9861, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9861, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9855, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream) < (0)) __PYX_ERR(3, 9855, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_base.__weakref__); #endif @@ -334416,11 +332386,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Str __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9961, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream)) __PYX_ERR(3, 9961, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream)) __PYX_ERR(3, 9955, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream = &__pyx_type_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream; #endif @@ -334428,7 +332398,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Str __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9961, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9955, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream); @@ -334438,8 +332408,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Str __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9961, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9961, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9955, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream) < (0)) __PYX_ERR(3, 9955, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_base.__weakref__); #endif @@ -334465,11 +332435,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stre __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10061, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream)) __PYX_ERR(3, 10061, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream)) __PYX_ERR(3, 10055, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream = &__pyx_type_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream; #endif @@ -334477,7 +332447,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stre __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10061, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10055, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream); @@ -334487,8 +332457,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stre __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10061, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10061, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10055, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream) < (0)) __PYX_ERR(3, 10055, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_base.__weakref__); #endif @@ -334514,11 +332484,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__py __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTAKURI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16CDLTAKURI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10161, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream)) __PYX_ERR(3, 10161, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream)) __PYX_ERR(3, 10155, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream = &__pyx_type_5talib_7_ta_lib_CDLTAKURI_Stream; #endif @@ -334526,7 +332496,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10161, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10155, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream); @@ -334536,8 +332506,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10161, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10161, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10155, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream) < (0)) __PYX_ERR(3, 10155, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_base.__weakref__); #endif @@ -334563,11 +332533,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTASUKIGAP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLTASUKIGAP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10261, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream)) __PYX_ERR(3, 10261, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream)) __PYX_ERR(3, 10255, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream = &__pyx_type_5talib_7_ta_lib_CDLTASUKIGAP_Stream; #endif @@ -334575,7 +332545,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10261, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10255, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream); @@ -334585,8 +332555,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10261, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10261, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10255, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream) < (0)) __PYX_ERR(3, 10255, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_base.__weakref__); #endif @@ -334612,11 +332582,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(_ __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTHRUSTING_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19CDLTHRUSTING_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10361, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream)) __PYX_ERR(3, 10361, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream)) __PYX_ERR(3, 10355, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream = &__pyx_type_5talib_7_ta_lib_CDLTHRUSTING_Stream; #endif @@ -334624,7 +332594,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10361, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10355, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream); @@ -334634,8 +332604,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10361, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10361, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10355, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream) < (0)) __PYX_ERR(3, 10355, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_base.__weakref__); #endif @@ -334661,11 +332631,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__p __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLTRISTAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17CDLTRISTAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10461, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream)) __PYX_ERR(3, 10461, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream)) __PYX_ERR(3, 10455, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream = &__pyx_type_5talib_7_ta_lib_CDLTRISTAR_Stream; #endif @@ -334673,7 +332643,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10461, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10455, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream); @@ -334683,8 +332653,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10461, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10461, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10455, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream) < (0)) __PYX_ERR(3, 10455, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_base.__weakref__); #endif @@ -334710,11 +332680,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Strea __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10561, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream)) __PYX_ERR(3, 10561, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream)) __PYX_ERR(3, 10555, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream = &__pyx_type_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream; #endif @@ -334722,7 +332692,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10561, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10555, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream); @@ -334732,8 +332702,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10561, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10561, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10555, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream) < (0)) __PYX_ERR(3, 10555, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_base.__weakref__); #endif @@ -334759,11 +332729,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_St __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10661, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream)) __PYX_ERR(3, 10661, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream)) __PYX_ERR(3, 10655, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream = &__pyx_type_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream; #endif @@ -334771,7 +332741,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_St __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10661, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10655, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream); @@ -334781,8 +332751,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_St __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10661, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10661, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10655, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream) < (0)) __PYX_ERR(3, 10655, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_base.__weakref__); #endif @@ -334808,11 +332778,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_S __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10761, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream)) __PYX_ERR(3, 10761, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream)) __PYX_ERR(3, 10755, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream = &__pyx_type_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream; #endif @@ -334820,7 +332790,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10761, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10755, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream); @@ -334830,8 +332800,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10761, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10761, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_vtabptr_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10755, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream) < (0)) __PYX_ERR(3, 10755, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_base.__weakref__); #endif @@ -334857,11 +332827,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_CEIL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CEIL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CEIL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CEIL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10861, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CEIL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream)) __PYX_ERR(3, 10861, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream)) __PYX_ERR(3, 10855, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream = &__pyx_type_5talib_7_ta_lib_CEIL_Stream; #endif @@ -334869,7 +332839,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10861, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10855, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream); @@ -334879,8 +332849,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CEIL_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10861, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CEIL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10861, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10855, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CEIL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream) < (0)) __PYX_ERR(3, 10855, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CEIL_Stream, __pyx_base.__weakref__); #endif @@ -334906,11 +332876,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CMF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CMF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CMF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CMF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10955, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 10949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream)) __PYX_ERR(3, 10955, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream)) __PYX_ERR(3, 10949, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream = &__pyx_type_5talib_7_ta_lib_CMF_Stream; #endif @@ -334918,7 +332888,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10955, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10949, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream); @@ -334928,8 +332898,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMF_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10955, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10955, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10949, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream) < (0)) __PYX_ERR(3, 10949, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMF_Stream, __pyx_base.__weakref__); #endif @@ -334955,11 +332925,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CMO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CMO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CMO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CMO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11057, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream)) __PYX_ERR(3, 11057, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream)) __PYX_ERR(3, 11051, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream = &__pyx_type_5talib_7_ta_lib_CMO_Stream; #endif @@ -334967,7 +332937,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11057, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11051, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream); @@ -334977,8 +332947,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11057, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11057, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11051, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream) < (0)) __PYX_ERR(3, 11051, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMO_Stream, __pyx_base.__weakref__); #endif @@ -335004,11 +332974,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_CMOU_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11CMOU_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CMOU_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11CMOU_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11153, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CMOU_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream)) __PYX_ERR(3, 11153, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream)) __PYX_ERR(3, 11147, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream = &__pyx_type_5talib_7_ta_lib_CMOU_Stream; #endif @@ -335016,7 +332986,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11153, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11147, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream); @@ -335026,8 +332996,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CMOU_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11153, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMOU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11153, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_vtabptr_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11147, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CMOU_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream) < (0)) __PYX_ERR(3, 11147, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CMOU_Stream, __pyx_base.__weakref__); #endif @@ -335053,11 +333023,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_COPPOCK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14COPPOCK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11249, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COPPOCK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream)) __PYX_ERR(3, 11249, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream)) __PYX_ERR(3, 11243, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream = &__pyx_type_5talib_7_ta_lib_COPPOCK_Stream; #endif @@ -335065,7 +333035,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11249, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11243, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream); @@ -335075,8 +333045,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COPPOCK_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11249, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11249, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_vtabptr_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11243, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream) < (0)) __PYX_ERR(3, 11243, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COPPOCK_Stream, __pyx_base.__weakref__); #endif @@ -335102,11 +333072,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_CORREL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13CORREL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CORREL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13CORREL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11347, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CORREL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream)) __PYX_ERR(3, 11347, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream)) __PYX_ERR(3, 11341, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream = &__pyx_type_5talib_7_ta_lib_CORREL_Stream; #endif @@ -335114,7 +333084,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11347, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11341, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream); @@ -335124,8 +333094,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CORREL_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11347, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CORREL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11347, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_vtabptr_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11341, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CORREL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream) < (0)) __PYX_ERR(3, 11341, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CORREL_Stream, __pyx_base.__weakref__); #endif @@ -335151,11 +333121,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_COS_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10COS_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_COS_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10COS_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11446, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COS_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream)) __PYX_ERR(3, 11446, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream)) __PYX_ERR(3, 11440, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream = &__pyx_type_5talib_7_ta_lib_COS_Stream; #endif @@ -335163,7 +333133,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11446, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11440, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream); @@ -335173,8 +333143,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COS_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_vtabptr_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11446, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11446, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_vtabptr_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11440, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COS_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream) < (0)) __PYX_ERR(3, 11440, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COS_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COS_Stream, __pyx_base.__weakref__); #endif @@ -335200,11 +333170,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_COSH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11COSH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_COSH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11COSH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11540, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_COSH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream)) __PYX_ERR(3, 11540, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream)) __PYX_ERR(3, 11534, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream = &__pyx_type_5talib_7_ta_lib_COSH_Stream; #endif @@ -335212,7 +333182,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11540, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11534, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream); @@ -335222,8 +333192,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_COSH_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_vtabptr_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11540, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COSH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11540, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_vtabptr_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11534, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_COSH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream) < (0)) __PYX_ERR(3, 11534, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_COSH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_COSH_Stream, __pyx_base.__weakref__); #endif @@ -335249,11 +333219,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CUMSUM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13CUMSUM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11634, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CUMSUM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream)) __PYX_ERR(3, 11634, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream)) __PYX_ERR(3, 11628, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream = &__pyx_type_5talib_7_ta_lib_CUMSUM_Stream; #endif @@ -335261,7 +333231,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11634, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11628, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream); @@ -335271,8 +333241,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CUMSUM_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11634, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11634, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11628, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream) < (0)) __PYX_ERR(3, 11628, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CUMSUM_Stream, __pyx_base.__weakref__); #endif @@ -335298,11 +333268,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_CVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10CVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_CVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10CVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11728, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_CVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream)) __PYX_ERR(3, 11728, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream)) __PYX_ERR(3, 11722, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream = &__pyx_type_5talib_7_ta_lib_CVI_Stream; #endif @@ -335310,7 +333280,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11728, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11722, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream); @@ -335320,8 +333290,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_CVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11728, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11728, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11722, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_CVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream) < (0)) __PYX_ERR(3, 11722, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_CVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_CVI_Stream, __pyx_base.__weakref__); #endif @@ -335347,11 +333317,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_DEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11DEMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11DEMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11827, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DEMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream)) __PYX_ERR(3, 11827, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream)) __PYX_ERR(3, 11821, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream = &__pyx_type_5talib_7_ta_lib_DEMA_Stream; #endif @@ -335359,7 +333329,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11827, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11821, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream); @@ -335369,8 +333339,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DEMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11827, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11827, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11821, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream) < (0)) __PYX_ERR(3, 11821, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DEMA_Stream, __pyx_base.__weakref__); #endif @@ -335396,11 +333366,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_DIV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10DIV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DIV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10DIV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11923, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 11917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DIV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream)) __PYX_ERR(3, 11923, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream)) __PYX_ERR(3, 11917, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream = &__pyx_type_5talib_7_ta_lib_DIV_Stream; #endif @@ -335408,7 +333378,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11923, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11917, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream); @@ -335418,8 +333388,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DIV_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_vtabptr_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11923, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DIV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11923, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_vtabptr_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11917, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DIV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream) < (0)) __PYX_ERR(3, 11917, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DIV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DIV_Stream, __pyx_base.__weakref__); #endif @@ -335445,11 +333415,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DONCHIAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15DONCHIAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12022, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream)) __PYX_ERR(3, 12022, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream)) __PYX_ERR(3, 12014, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream = &__pyx_type_5talib_7_ta_lib_DONCHIAN_Stream; #endif @@ -335457,7 +333427,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12022, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12014, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream); @@ -335467,8 +333437,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12022, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12022, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12014, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream) < (0)) __PYX_ERR(3, 12014, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_base.__weakref__); #endif @@ -335494,11 +333464,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_DPO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10DPO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DPO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10DPO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12132, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DPO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream)) __PYX_ERR(3, 12132, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream)) __PYX_ERR(3, 12124, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream = &__pyx_type_5talib_7_ta_lib_DPO_Stream; #endif @@ -335506,7 +333476,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12132, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12124, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream); @@ -335516,8 +333486,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DPO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12132, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12132, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12124, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream) < (0)) __PYX_ERR(3, 12124, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DPO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DPO_Stream, __pyx_base.__weakref__); #endif @@ -335543,11 +333513,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_DX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9DX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_DX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9DX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12228, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_DX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream)) __PYX_ERR(3, 12228, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream)) __PYX_ERR(3, 12220, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream = &__pyx_type_5talib_7_ta_lib_DX_Stream; #endif @@ -335555,7 +333525,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12228, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12220, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream); @@ -335565,8 +333535,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_DX_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_vtabptr_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12228, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12228, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_vtabptr_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12220, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_DX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream) < (0)) __PYX_ERR(3, 12220, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_DX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_DX_Stream, __pyx_base.__weakref__); #endif @@ -335592,11 +333562,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_EFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EFI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_EFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EFI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12328, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EFI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream)) __PYX_ERR(3, 12328, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream)) __PYX_ERR(3, 12320, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream = &__pyx_type_5talib_7_ta_lib_EFI_Stream; #endif @@ -335604,7 +333574,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12328, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12320, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream); @@ -335614,8 +333584,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EFI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12328, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12328, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12320, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream) < (0)) __PYX_ERR(3, 12320, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EFI_Stream, __pyx_base.__weakref__); #endif @@ -335641,11 +333611,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_EMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_EMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12426, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream)) __PYX_ERR(3, 12426, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream)) __PYX_ERR(3, 12418, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream = &__pyx_type_5talib_7_ta_lib_EMA_Stream; #endif @@ -335653,7 +333623,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12426, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12418, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream); @@ -335663,8 +333633,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12426, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12426, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12418, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream) < (0)) __PYX_ERR(3, 12418, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EMA_Stream, __pyx_base.__weakref__); #endif @@ -335690,11 +333660,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_ER_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9ER_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ER_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9ER_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12522, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ER_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream)) __PYX_ERR(3, 12522, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream)) __PYX_ERR(3, 12514, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream = &__pyx_type_5talib_7_ta_lib_ER_Stream; #endif @@ -335702,7 +333672,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12522, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12514, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream); @@ -335712,8 +333682,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ER_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_vtabptr_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12522, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12522, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_vtabptr_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12514, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ER_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream) < (0)) __PYX_ERR(3, 12514, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ER_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ER_Stream, __pyx_base.__weakref__); #endif @@ -335739,11 +333709,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ERI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ERI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ERI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ERI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12620, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ERI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream)) __PYX_ERR(3, 12620, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream)) __PYX_ERR(3, 12610, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream = &__pyx_type_5talib_7_ta_lib_ERI_Stream; #endif @@ -335751,7 +333721,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12620, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12610, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream); @@ -335761,8 +333731,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ERI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_vtabptr_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12620, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ERI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12620, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_vtabptr_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12610, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ERI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream) < (0)) __PYX_ERR(3, 12610, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ERI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ERI_Stream, __pyx_base.__weakref__); #endif @@ -335788,11 +333758,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_EXP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10EXP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_EXP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10EXP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12726, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_EXP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream)) __PYX_ERR(3, 12726, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream)) __PYX_ERR(3, 12716, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream = &__pyx_type_5talib_7_ta_lib_EXP_Stream; #endif @@ -335800,7 +333770,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12726, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12716, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream); @@ -335810,8 +333780,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_EXP_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_vtabptr_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12726, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EXP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12726, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_vtabptr_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12716, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_EXP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream) < (0)) __PYX_ERR(3, 12716, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_EXP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_EXP_Stream, __pyx_base.__weakref__); #endif @@ -335837,11 +333807,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12FLOOR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_FLOOR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12FLOOR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12820, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FLOOR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream)) __PYX_ERR(3, 12820, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream)) __PYX_ERR(3, 12810, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream = &__pyx_type_5talib_7_ta_lib_FLOOR_Stream; #endif @@ -335849,7 +333819,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12820, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12810, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream); @@ -335859,8 +333829,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FLOOR_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12820, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12820, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12810, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream) < (0)) __PYX_ERR(3, 12810, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FLOOR_Stream, __pyx_base.__weakref__); #endif @@ -335886,11 +333856,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_FOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11FOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_FOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11FOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12914, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 12904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream)) __PYX_ERR(3, 12914, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream)) __PYX_ERR(3, 12904, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream = &__pyx_type_5talib_7_ta_lib_FOSC_Stream; #endif @@ -335898,7 +333868,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12914, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12904, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream); @@ -335908,8 +333878,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FOSC_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12914, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12914, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12904, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream) < (0)) __PYX_ERR(3, 12904, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FOSC_Stream, __pyx_base.__weakref__); #endif @@ -335935,11 +333905,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_FRACTAL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14FRACTAL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13012, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_FRACTAL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream)) __PYX_ERR(3, 13012, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream)) __PYX_ERR(3, 13000, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream = &__pyx_type_5talib_7_ta_lib_FRACTAL_Stream; #endif @@ -335947,7 +333917,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13000, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream); @@ -335957,8 +333927,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_FRACTAL_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13012, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_vtabptr_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13000, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream) < (0)) __PYX_ERR(3, 13000, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_FRACTAL_Stream, __pyx_base.__weakref__); #endif @@ -335984,11 +333954,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_HA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9HA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9HA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13119, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream)) __PYX_ERR(3, 13119, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream)) __PYX_ERR(3, 13105, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream = &__pyx_type_5talib_7_ta_lib_HA_Stream; #endif @@ -335996,7 +333966,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13119, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13105, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream); @@ -336006,8 +333976,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HA_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13119, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13119, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13105, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream) < (0)) __PYX_ERR(3, 13105, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HA_Stream, __pyx_base.__weakref__); #endif @@ -336033,11 +334003,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_HMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10HMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10HMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13237, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream)) __PYX_ERR(3, 13237, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream)) __PYX_ERR(3, 13223, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream = &__pyx_type_5talib_7_ta_lib_HMA_Stream; #endif @@ -336045,7 +334015,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13237, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13223, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream); @@ -336055,8 +334025,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13237, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13237, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13223, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream) < (0)) __PYX_ERR(3, 13223, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HMA_Stream, __pyx_base.__weakref__); #endif @@ -336082,11 +334052,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__ __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_DCPERIOD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18HT_DCPERIOD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13333, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream)) __PYX_ERR(3, 13333, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream)) __PYX_ERR(3, 13319, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream = &__pyx_type_5talib_7_ta_lib_HT_DCPERIOD_Stream; #endif @@ -336094,7 +334064,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13333, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13319, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream); @@ -336104,8 +334074,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13333, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13333, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13319, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream) < (0)) __PYX_ERR(3, 13319, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_base.__weakref__); #endif @@ -336131,11 +334101,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__p __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_DCPHASE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17HT_DCPHASE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13427, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream)) __PYX_ERR(3, 13427, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream)) __PYX_ERR(3, 13413, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream = &__pyx_type_5talib_7_ta_lib_HT_DCPHASE_Stream; #endif @@ -336143,7 +334113,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13413, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream); @@ -336153,8 +334123,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13427, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13413, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream) < (0)) __PYX_ERR(3, 13413, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_base.__weakref__); #endif @@ -336180,11 +334150,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__py __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_PHASOR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16HT_PHASOR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13523, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream)) __PYX_ERR(3, 13523, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream)) __PYX_ERR(3, 13507, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream = &__pyx_type_5talib_7_ta_lib_HT_PHASOR_Stream; #endif @@ -336192,7 +334162,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13523, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13507, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream); @@ -336202,8 +334172,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13523, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13523, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13507, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream) < (0)) __PYX_ERR(3, 13507, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_base.__weakref__); #endif @@ -336229,11 +334199,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_SINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14HT_SINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13625, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_SINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream)) __PYX_ERR(3, 13625, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream)) __PYX_ERR(3, 13607, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream = &__pyx_type_5talib_7_ta_lib_HT_SINE_Stream; #endif @@ -336241,7 +334211,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13625, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13607, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream); @@ -336251,8 +334221,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_SINE_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13625, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13625, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13607, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream) < (0)) __PYX_ERR(3, 13607, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_SINE_Stream, __pyx_base.__weakref__); #endif @@ -336278,11 +334248,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(_ __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_TRENDLINE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19HT_TRENDLINE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13725, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream)) __PYX_ERR(3, 13725, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream)) __PYX_ERR(3, 13707, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream = &__pyx_type_5talib_7_ta_lib_HT_TRENDLINE_Stream; #endif @@ -336290,7 +334260,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13725, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13707, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream); @@ -336300,8 +334270,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13725, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13725, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13707, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream) < (0)) __PYX_ERR(3, 13707, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_base.__weakref__); #endif @@ -336327,11 +334297,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(_ __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_HT_TRENDMODE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_19HT_TRENDMODE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13819, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream)) __PYX_ERR(3, 13819, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream)) __PYX_ERR(3, 13801, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream = &__pyx_type_5talib_7_ta_lib_HT_TRENDMODE_Stream; #endif @@ -336339,7 +334309,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13819, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13801, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream); @@ -336349,8 +334319,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream(_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13819, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13819, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_vtabptr_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13801, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream) < (0)) __PYX_ERR(3, 13801, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_base.__weakref__); #endif @@ -336376,11 +334346,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_IMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10IMI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_IMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10IMI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13913, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_IMI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream)) __PYX_ERR(3, 13913, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream)) __PYX_ERR(3, 13895, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream = &__pyx_type_5talib_7_ta_lib_IMI_Stream; #endif @@ -336388,7 +334358,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13913, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13895, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream); @@ -336398,8 +334368,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_IMI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13913, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13913, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13895, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_IMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream) < (0)) __PYX_ERR(3, 13895, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_IMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_IMI_Stream, __pyx_base.__weakref__); #endif @@ -336425,11 +334395,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_KAMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11KAMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_KAMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11KAMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14011, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 13993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KAMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream)) __PYX_ERR(3, 14011, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream)) __PYX_ERR(3, 13993, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream = &__pyx_type_5talib_7_ta_lib_KAMA_Stream; #endif @@ -336437,7 +334407,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 14011, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 13993, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream); @@ -336447,8 +334417,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KAMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 14011, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 14011, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 13993, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream) < (0)) __PYX_ERR(3, 13993, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KAMA_Stream, __pyx_base.__weakref__); #endif @@ -336474,11 +334444,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_KC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9KC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_KC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9KC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14109, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream)) __PYX_ERR(3, 14109, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream)) __PYX_ERR(3, 14089, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream = &__pyx_type_5talib_7_ta_lib_KC_Stream; #endif @@ -336486,7 +334456,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14109, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14089, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream); @@ -336496,8 +334466,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KC_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_vtabptr_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14109, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14109, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_vtabptr_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14089, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream) < (0)) __PYX_ERR(3, 14089, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KC_Stream, __pyx_base.__weakref__); #endif @@ -336523,11 +334493,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_KDJ_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10KDJ_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_KDJ_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10KDJ_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14225, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_KDJ_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream)) __PYX_ERR(3, 14225, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream)) __PYX_ERR(3, 14203, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream = &__pyx_type_5talib_7_ta_lib_KDJ_Stream; #endif @@ -336535,7 +334505,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14225, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14203, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream); @@ -336545,8 +334515,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_KDJ_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14225, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KDJ_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14225, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_vtabptr_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14203, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_KDJ_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream) < (0)) __PYX_ERR(3, 14203, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_KDJ_Stream, __pyx_base.__weakref__); #endif @@ -336572,11 +334542,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__py __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_16LINEARREG_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14341, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream)) __PYX_ERR(3, 14341, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream)) __PYX_ERR(3, 14319, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_Stream; #endif @@ -336584,7 +334554,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__py __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14341, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14319, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream); @@ -336594,8 +334564,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_Stream(__py __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14341, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14341, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14319, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream) < (0)) __PYX_ERR(3, 14319, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_Stream, __pyx_base.__weakref__); #endif @@ -336621,11 +334591,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Strea __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_ANGLE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14437, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream)) __PYX_ERR(3, 14437, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream)) __PYX_ERR(3, 14415, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_ANGLE_Stream; #endif @@ -336633,7 +334603,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14437, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14415, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream); @@ -336643,8 +334613,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14437, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14437, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14415, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream) < (0)) __PYX_ERR(3, 14415, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_base.__weakref__); #endif @@ -336670,11 +334640,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_S __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14533, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream)) __PYX_ERR(3, 14533, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream)) __PYX_ERR(3, 14511, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream; #endif @@ -336682,7 +334652,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_S __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14533, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14511, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream); @@ -336692,8 +334662,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_S __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14533, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14533, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14511, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream) < (0)) __PYX_ERR(3, 14511, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_base.__weakref__); #endif @@ -336719,11 +334689,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Strea __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LINEARREG_SLOPE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14629, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream)) __PYX_ERR(3, 14629, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream)) __PYX_ERR(3, 14607, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream = &__pyx_type_5talib_7_ta_lib_LINEARREG_SLOPE_Stream; #endif @@ -336731,7 +334701,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Strea __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14629, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14607, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream); @@ -336741,8 +334711,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Strea __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14629, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14629, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_vtabptr_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14607, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream) < (0)) __PYX_ERR(3, 14607, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_base.__weakref__); #endif @@ -336768,11 +334738,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_LN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9LN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9LN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14725, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream)) __PYX_ERR(3, 14725, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream)) __PYX_ERR(3, 14703, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream = &__pyx_type_5talib_7_ta_lib_LN_Stream; #endif @@ -336780,7 +334750,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14725, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14703, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream); @@ -336790,8 +334760,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LN_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_vtabptr_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14725, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14725, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_vtabptr_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14703, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream) < (0)) __PYX_ERR(3, 14703, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LN_Stream, __pyx_base.__weakref__); #endif @@ -336817,11 +334787,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_LOG10_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12LOG10_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_LOG10_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12LOG10_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14819, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_LOG10_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream)) __PYX_ERR(3, 14819, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream)) __PYX_ERR(3, 14797, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream = &__pyx_type_5talib_7_ta_lib_LOG10_Stream; #endif @@ -336829,7 +334799,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14819, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14797, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream); @@ -336839,8 +334809,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_LOG10_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14819, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LOG10_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14819, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_vtabptr_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14797, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_LOG10_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream) < (0)) __PYX_ERR(3, 14797, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_LOG10_Stream, __pyx_base.__weakref__); #endif @@ -336866,11 +334836,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_MA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9MA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9MA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14913, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream)) __PYX_ERR(3, 14913, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream)) __PYX_ERR(3, 14891, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream = &__pyx_type_5talib_7_ta_lib_MA_Stream; #endif @@ -336878,7 +334848,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14913, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14891, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream); @@ -336888,8 +334858,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MA_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14913, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14913, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14891, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream) < (0)) __PYX_ERR(3, 14891, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MA_Stream, __pyx_base.__weakref__); #endif @@ -336915,11 +334885,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MACD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MACD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MACD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MACD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15012, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 14988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream)) __PYX_ERR(3, 15012, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream)) __PYX_ERR(3, 14988, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream = &__pyx_type_5talib_7_ta_lib_MACD_Stream; #endif @@ -336927,7 +334897,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 15012, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 14988, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream); @@ -336937,8 +334907,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACD_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 15012, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 15012, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 14988, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream) < (0)) __PYX_ERR(3, 14988, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACD_Stream, __pyx_base.__weakref__); #endif @@ -336964,11 +334934,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MACDEXT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14MACDEXT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15124, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACDEXT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream)) __PYX_ERR(3, 15124, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream)) __PYX_ERR(3, 15098, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream = &__pyx_type_5talib_7_ta_lib_MACDEXT_Stream; #endif @@ -336976,7 +334946,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15124, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15098, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream); @@ -336986,8 +334956,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDEXT_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15124, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15124, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15098, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream) < (0)) __PYX_ERR(3, 15098, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACDEXT_Stream, __pyx_base.__weakref__); #endif @@ -337013,11 +334983,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MACDFIX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14MACDFIX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15239, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MACDFIX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream)) __PYX_ERR(3, 15239, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream)) __PYX_ERR(3, 15211, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream = &__pyx_type_5talib_7_ta_lib_MACDFIX_Stream; #endif @@ -337025,7 +334995,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15211, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream); @@ -337035,8 +335005,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MACDFIX_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15239, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15211, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream) < (0)) __PYX_ERR(3, 15211, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MACDFIX_Stream, __pyx_base.__weakref__); #endif @@ -337062,11 +335032,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MAMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MAMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MAMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15349, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream)) __PYX_ERR(3, 15349, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream)) __PYX_ERR(3, 15319, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream = &__pyx_type_5talib_7_ta_lib_MAMA_Stream; #endif @@ -337074,7 +335044,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15349, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15319, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream); @@ -337084,8 +335054,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15349, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15349, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15319, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream) < (0)) __PYX_ERR(3, 15319, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAMA_Stream, __pyx_base.__weakref__); #endif @@ -337111,11 +335081,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MARKETFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MARKETFI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15452, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MARKETFI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream)) __PYX_ERR(3, 15452, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream)) __PYX_ERR(3, 15422, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream = &__pyx_type_5talib_7_ta_lib_MARKETFI_Stream; #endif @@ -337123,7 +335093,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15452, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15422, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream); @@ -337133,8 +335103,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MARKETFI_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15452, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15452, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15422, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream) < (0)) __PYX_ERR(3, 15422, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MARKETFI_Stream, __pyx_base.__weakref__); #endif @@ -337160,11 +335130,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_MASSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12MASSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MASSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12MASSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15550, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MASSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream)) __PYX_ERR(3, 15550, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream)) __PYX_ERR(3, 15520, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream = &__pyx_type_5talib_7_ta_lib_MASSI_Stream; #endif @@ -337172,7 +335142,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15550, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15520, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream); @@ -337182,8 +335152,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MASSI_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15550, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MASSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15550, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15520, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MASSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream) < (0)) __PYX_ERR(3, 15520, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MASSI_Stream, __pyx_base.__weakref__); #endif @@ -337209,11 +335179,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MAVP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MAVP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAVP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MAVP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15649, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAVP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream)) __PYX_ERR(3, 15649, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream)) __PYX_ERR(3, 15619, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream = &__pyx_type_5talib_7_ta_lib_MAVP_Stream; #endif @@ -337221,7 +335191,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15619, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream); @@ -337231,8 +335201,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAVP_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAVP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15649, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15619, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAVP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream) < (0)) __PYX_ERR(3, 15619, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAVP_Stream, __pyx_base.__weakref__); #endif @@ -337258,11 +335228,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MAX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MAX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MAX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15750, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream)) __PYX_ERR(3, 15750, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream)) __PYX_ERR(3, 15720, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream = &__pyx_type_5talib_7_ta_lib_MAX_Stream; #endif @@ -337270,7 +335240,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15750, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15720, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream); @@ -337280,8 +335250,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAX_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15750, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15750, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15720, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream) < (0)) __PYX_ERR(3, 15720, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAX_Stream, __pyx_base.__weakref__); #endif @@ -337307,11 +335277,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MAXINDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MAXINDEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15846, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream)) __PYX_ERR(3, 15846, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream)) __PYX_ERR(3, 15816, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream = &__pyx_type_5talib_7_ta_lib_MAXINDEX_Stream; #endif @@ -337319,7 +335289,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15846, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15816, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream); @@ -337329,8 +335299,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15846, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15846, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15816, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream) < (0)) __PYX_ERR(3, 15816, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_base.__weakref__); #endif @@ -337356,11 +335326,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MEDPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MEDPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15946, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 15916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream)) __PYX_ERR(3, 15946, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream)) __PYX_ERR(3, 15916, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream = &__pyx_type_5talib_7_ta_lib_MEDPRICE_Stream; #endif @@ -337368,7 +335338,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15946, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15916, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream); @@ -337378,8 +335348,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15946, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15946, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15916, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream) < (0)) __PYX_ERR(3, 15916, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_base.__weakref__); #endif @@ -337405,11 +335375,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MFI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MFI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MFI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MFI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16042, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MFI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream)) __PYX_ERR(3, 16042, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream)) __PYX_ERR(3, 16012, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream = &__pyx_type_5talib_7_ta_lib_MFI_Stream; #endif @@ -337417,7 +335387,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16042, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16012, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream); @@ -337427,8 +335397,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MFI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16042, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16042, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16012, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MFI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream) < (0)) __PYX_ERR(3, 16012, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MFI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MFI_Stream, __pyx_base.__weakref__); #endif @@ -337454,11 +335424,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MIDPOINT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MIDPOINT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16144, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream)) __PYX_ERR(3, 16144, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream)) __PYX_ERR(3, 16114, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream = &__pyx_type_5talib_7_ta_lib_MIDPOINT_Stream; #endif @@ -337466,7 +335436,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16144, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16114, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream); @@ -337476,8 +335446,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16144, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16144, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16114, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream) < (0)) __PYX_ERR(3, 16114, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_base.__weakref__); #endif @@ -337503,11 +335473,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MIDPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MIDPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16240, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream)) __PYX_ERR(3, 16240, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream)) __PYX_ERR(3, 16210, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream = &__pyx_type_5talib_7_ta_lib_MIDPRICE_Stream; #endif @@ -337515,7 +335485,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16240, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16210, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream); @@ -337525,8 +335495,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16240, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16240, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16210, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream) < (0)) __PYX_ERR(3, 16210, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_base.__weakref__); #endif @@ -337552,11 +335522,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MIN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MIN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16338, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MIN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream)) __PYX_ERR(3, 16338, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream)) __PYX_ERR(3, 16308, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream = &__pyx_type_5talib_7_ta_lib_MIN_Stream; #endif @@ -337564,7 +335534,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16338, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16308, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream); @@ -337574,8 +335544,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MIN_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16338, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16338, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16308, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream) < (0)) __PYX_ERR(3, 16308, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MIN_Stream, __pyx_base.__weakref__); #endif @@ -337601,11 +335571,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MININDEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MININDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MININDEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16434, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MININDEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream)) __PYX_ERR(3, 16434, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream)) __PYX_ERR(3, 16404, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream = &__pyx_type_5talib_7_ta_lib_MININDEX_Stream; #endif @@ -337613,7 +335583,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16434, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16404, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream); @@ -337623,8 +335593,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MININDEX_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16434, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16434, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16404, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream) < (0)) __PYX_ERR(3, 16404, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MININDEX_Stream, __pyx_base.__weakref__); #endif @@ -337650,11 +335620,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13MINMAX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINMAX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13MINMAX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16536, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINMAX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream)) __PYX_ERR(3, 16536, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream)) __PYX_ERR(3, 16504, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream = &__pyx_type_5talib_7_ta_lib_MINMAX_Stream; #endif @@ -337662,7 +335632,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16536, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16504, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream); @@ -337672,8 +335642,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAX_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16536, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16536, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16504, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream) < (0)) __PYX_ERR(3, 16504, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINMAX_Stream, __pyx_base.__weakref__); #endif @@ -337699,11 +335669,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__ __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINMAXINDEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18MINMAXINDEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16640, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream)) __PYX_ERR(3, 16640, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream)) __PYX_ERR(3, 16606, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream = &__pyx_type_5talib_7_ta_lib_MINMAXINDEX_Stream; #endif @@ -337711,7 +335681,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16640, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16606, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream); @@ -337721,8 +335691,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16640, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16640, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16606, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream) < (0)) __PYX_ERR(3, 16606, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_base.__weakref__); #endif @@ -337748,11 +335718,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINUS_DI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MINUS_DI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16749, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream)) __PYX_ERR(3, 16749, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream)) __PYX_ERR(3, 16715, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream = &__pyx_type_5talib_7_ta_lib_MINUS_DI_Stream; #endif @@ -337760,7 +335730,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16749, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16715, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream); @@ -337770,8 +335740,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16749, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16749, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16715, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream) < (0)) __PYX_ERR(3, 16715, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_base.__weakref__); #endif @@ -337797,11 +335767,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MINUS_DM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15MINUS_DM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16849, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream)) __PYX_ERR(3, 16849, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream)) __PYX_ERR(3, 16815, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream = &__pyx_type_5talib_7_ta_lib_MINUS_DM_Stream; #endif @@ -337809,7 +335779,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16849, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16815, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream); @@ -337819,8 +335789,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16849, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16849, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16815, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream) < (0)) __PYX_ERR(3, 16815, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_base.__weakref__); #endif @@ -337846,11 +335816,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_MOM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10MOM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MOM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10MOM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16947, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 16913, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MOM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream)) __PYX_ERR(3, 16947, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream)) __PYX_ERR(3, 16913, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream = &__pyx_type_5talib_7_ta_lib_MOM_Stream; #endif @@ -337858,7 +335828,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16913, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream); @@ -337868,8 +335838,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MOM_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_vtabptr_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16913, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MOM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream) < (0)) __PYX_ERR(3, 16913, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MOM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MOM_Stream, __pyx_base.__weakref__); #endif @@ -337895,11 +335865,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_MULT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11MULT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_MULT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11MULT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17043, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_MULT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream)) __PYX_ERR(3, 17043, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream)) __PYX_ERR(3, 17009, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream = &__pyx_type_5talib_7_ta_lib_MULT_Stream; #endif @@ -337907,7 +335877,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17009, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream); @@ -337917,8 +335887,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_MULT_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MULT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_vtabptr_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17009, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_MULT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream) < (0)) __PYX_ERR(3, 17009, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_MULT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_MULT_Stream, __pyx_base.__weakref__); #endif @@ -337944,11 +335914,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_NATR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11NATR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_NATR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11NATR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17140, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_NATR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream)) __PYX_ERR(3, 17140, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream)) __PYX_ERR(3, 17106, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream = &__pyx_type_5talib_7_ta_lib_NATR_Stream; #endif @@ -337956,7 +335926,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17140, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17106, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream); @@ -337966,8 +335936,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NATR_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17140, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17140, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_vtabptr_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17106, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NATR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream) < (0)) __PYX_ERR(3, 17106, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NATR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_NATR_Stream, __pyx_base.__weakref__); #endif @@ -337993,11 +335963,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_NVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10NVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_NVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10NVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17240, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_NVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream)) __PYX_ERR(3, 17240, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream)) __PYX_ERR(3, 17206, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream = &__pyx_type_5talib_7_ta_lib_NVI_Stream; #endif @@ -338005,7 +335975,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17240, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17206, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream); @@ -338015,8 +335985,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_NVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17240, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17240, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17206, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_NVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream) < (0)) __PYX_ERR(3, 17206, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_NVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_NVI_Stream, __pyx_base.__weakref__); #endif @@ -338042,11 +336012,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_OBV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10OBV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_OBV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10OBV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17336, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_OBV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream)) __PYX_ERR(3, 17336, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream)) __PYX_ERR(3, 17302, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream = &__pyx_type_5talib_7_ta_lib_OBV_Stream; #endif @@ -338054,7 +336024,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17302, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream); @@ -338064,8 +336034,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_OBV_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_vtabptr_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_OBV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_vtabptr_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17302, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_OBV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream) < (0)) __PYX_ERR(3, 17302, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_OBV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_OBV_Stream, __pyx_base.__weakref__); #endif @@ -338091,11 +336061,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__p __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PERCENTILE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17PERCENTILE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17433, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream)) __PYX_ERR(3, 17433, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream)) __PYX_ERR(3, 17399, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream = &__pyx_type_5talib_7_ta_lib_PERCENTILE_Stream; #endif @@ -338103,7 +336073,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17433, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17399, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream); @@ -338113,8 +336083,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17433, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17433, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17399, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream) < (0)) __PYX_ERR(3, 17399, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_base.__weakref__); #endif @@ -338140,11 +336110,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__ __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PERCENTRANK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_18PERCENTRANK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17530, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream)) __PYX_ERR(3, 17530, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream)) __PYX_ERR(3, 17496, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream = &__pyx_type_5talib_7_ta_lib_PERCENTRANK_Stream; #endif @@ -338152,7 +336122,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17496, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream); @@ -338162,8 +336132,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream(__ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_vtabptr_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17496, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream) < (0)) __PYX_ERR(3, 17496, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_base.__weakref__); #endif @@ -338189,11 +336159,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PLUS_DI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14PLUS_DI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17626, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream)) __PYX_ERR(3, 17626, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream)) __PYX_ERR(3, 17592, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream = &__pyx_type_5talib_7_ta_lib_PLUS_DI_Stream; #endif @@ -338201,7 +336171,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17626, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17592, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream); @@ -338211,8 +336181,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17626, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17626, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17592, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream) < (0)) __PYX_ERR(3, 17592, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_base.__weakref__); #endif @@ -338238,11 +336208,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PLUS_DM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14PLUS_DM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17726, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream)) __PYX_ERR(3, 17726, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream)) __PYX_ERR(3, 17692, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream = &__pyx_type_5talib_7_ta_lib_PLUS_DM_Stream; #endif @@ -338250,7 +336220,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17726, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17692, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream); @@ -338260,8 +336230,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17726, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17726, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_vtabptr_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17692, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream) < (0)) __PYX_ERR(3, 17692, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_base.__weakref__); #endif @@ -338287,11 +336257,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PPO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PPO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PPO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PPO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17824, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PPO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream)) __PYX_ERR(3, 17824, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream)) __PYX_ERR(3, 17790, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream = &__pyx_type_5talib_7_ta_lib_PPO_Stream; #endif @@ -338299,7 +336269,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17824, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17790, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream); @@ -338309,8 +336279,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PPO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17824, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17824, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17790, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PPO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream) < (0)) __PYX_ERR(3, 17790, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PPO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PPO_Stream, __pyx_base.__weakref__); #endif @@ -338336,11 +336306,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17922, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream)) __PYX_ERR(3, 17922, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream)) __PYX_ERR(3, 17888, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream = &__pyx_type_5talib_7_ta_lib_PVI_Stream; #endif @@ -338348,7 +336318,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17922, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17888, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream); @@ -338358,8 +336328,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17922, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17922, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17888, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream) < (0)) __PYX_ERR(3, 17888, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVI_Stream, __pyx_base.__weakref__); #endif @@ -338385,11 +336355,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PVO_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVO_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PVO_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVO_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18018, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 17984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVO_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream)) __PYX_ERR(3, 18018, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream)) __PYX_ERR(3, 17984, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream = &__pyx_type_5talib_7_ta_lib_PVO_Stream; #endif @@ -338397,7 +336367,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 18018, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 17984, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream); @@ -338407,8 +336377,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVO_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 18018, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 18018, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 17984, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVO_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream) < (0)) __PYX_ERR(3, 17984, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVO_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVO_Stream, __pyx_base.__weakref__); #endif @@ -338434,11 +336404,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_PVT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10PVT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_PVT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10PVT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18116, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_PVT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream)) __PYX_ERR(3, 18116, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream)) __PYX_ERR(3, 18082, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream = &__pyx_type_5talib_7_ta_lib_PVT_Stream; #endif @@ -338446,7 +336416,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18116, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18082, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream); @@ -338456,8 +336426,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_PVT_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18116, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18116, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_vtabptr_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18082, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_PVT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream) < (0)) __PYX_ERR(3, 18082, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_PVT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_PVT_Stream, __pyx_base.__weakref__); #endif @@ -338483,11 +336453,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13QSTICK_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_QSTICK_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13QSTICK_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18212, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_QSTICK_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream)) __PYX_ERR(3, 18212, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream)) __PYX_ERR(3, 18178, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream = &__pyx_type_5talib_7_ta_lib_QSTICK_Stream; #endif @@ -338495,7 +336465,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18212, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18178, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream); @@ -338505,8 +336475,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_QSTICK_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18212, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18212, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_vtabptr_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18178, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream) < (0)) __PYX_ERR(3, 18178, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_QSTICK_Stream, __pyx_base.__weakref__); #endif @@ -338532,11 +336502,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_RMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18310, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream)) __PYX_ERR(3, 18310, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream)) __PYX_ERR(3, 18276, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream = &__pyx_type_5talib_7_ta_lib_RMA_Stream; #endif @@ -338544,7 +336514,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18276, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream); @@ -338554,8 +336524,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18276, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream) < (0)) __PYX_ERR(3, 18276, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RMA_Stream, __pyx_base.__weakref__); #endif @@ -338581,11 +336551,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_ROC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10ROC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10ROC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18406, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream)) __PYX_ERR(3, 18406, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream)) __PYX_ERR(3, 18372, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream = &__pyx_type_5talib_7_ta_lib_ROC_Stream; #endif @@ -338593,7 +336563,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18372, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream); @@ -338603,8 +336573,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROC_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18372, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream) < (0)) __PYX_ERR(3, 18372, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROC_Stream, __pyx_base.__weakref__); #endif @@ -338630,11 +336600,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ROCP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ROCP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROCP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ROCP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18502, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream)) __PYX_ERR(3, 18502, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream)) __PYX_ERR(3, 18468, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream = &__pyx_type_5talib_7_ta_lib_ROCP_Stream; #endif @@ -338642,7 +336612,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18468, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream); @@ -338652,8 +336622,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCP_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18468, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream) < (0)) __PYX_ERR(3, 18468, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCP_Stream, __pyx_base.__weakref__); #endif @@ -338679,11 +336649,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_ROCR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11ROCR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROCR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11ROCR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18598, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream)) __PYX_ERR(3, 18598, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream)) __PYX_ERR(3, 18564, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream = &__pyx_type_5talib_7_ta_lib_ROCR_Stream; #endif @@ -338691,7 +336661,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18564, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream); @@ -338701,8 +336671,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18564, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream) < (0)) __PYX_ERR(3, 18564, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCR_Stream, __pyx_base.__weakref__); #endif @@ -338728,11 +336698,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_ __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_14ROCR100_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ROCR100_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_14ROCR100_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18694, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ROCR100_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream)) __PYX_ERR(3, 18694, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream)) __PYX_ERR(3, 18660, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream = &__pyx_type_5talib_7_ta_lib_ROCR100_Stream; #endif @@ -338740,7 +336710,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_ __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18660, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream); @@ -338750,8 +336720,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ROCR100_Stream(__pyx_ __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_vtabptr_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18660, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream) < (0)) __PYX_ERR(3, 18660, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ROCR100_Stream, __pyx_base.__weakref__); #endif @@ -338777,11 +336747,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_RSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18790, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream)) __PYX_ERR(3, 18790, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream)) __PYX_ERR(3, 18756, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream = &__pyx_type_5talib_7_ta_lib_RSI_Stream; #endif @@ -338789,7 +336759,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18756, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream); @@ -338799,8 +336769,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RSI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18756, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream) < (0)) __PYX_ERR(3, 18756, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RSI_Stream, __pyx_base.__weakref__); #endif @@ -338826,11 +336796,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_RVI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10RVI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RVI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10RVI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18886, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RVI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream)) __PYX_ERR(3, 18886, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream)) __PYX_ERR(3, 18852, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream = &__pyx_type_5talib_7_ta_lib_RVI_Stream; #endif @@ -338838,7 +336808,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18886, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18852, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream); @@ -338848,8 +336818,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18886, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18886, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18852, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream) < (0)) __PYX_ERR(3, 18852, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RVI_Stream, __pyx_base.__weakref__); #endif @@ -338875,11 +336845,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_RVOL_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11RVOL_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_RVOL_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11RVOL_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18983, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 18949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_RVOL_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream)) __PYX_ERR(3, 18983, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream)) __PYX_ERR(3, 18949, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream = &__pyx_type_5talib_7_ta_lib_RVOL_Stream; #endif @@ -338887,7 +336857,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18949, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream); @@ -338897,8 +336867,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_RVOL_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVOL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_vtabptr_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18949, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_RVOL_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream) < (0)) __PYX_ERR(3, 18949, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_RVOL_Stream, __pyx_base.__weakref__); #endif @@ -338924,11 +336894,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19079, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream)) __PYX_ERR(3, 19079, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream)) __PYX_ERR(3, 19045, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream = &__pyx_type_5talib_7_ta_lib_SAR_Stream; #endif @@ -338936,7 +336906,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19079, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19045, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream); @@ -338946,8 +336916,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19079, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19079, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19045, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream) < (0)) __PYX_ERR(3, 19045, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SAR_Stream, __pyx_base.__weakref__); #endif @@ -338973,11 +336943,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13SAREXT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SAREXT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13SAREXT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19178, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SAREXT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream)) __PYX_ERR(3, 19178, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream)) __PYX_ERR(3, 19144, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream = &__pyx_type_5talib_7_ta_lib_SAREXT_Stream; #endif @@ -338985,7 +336955,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19144, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream); @@ -338995,8 +336965,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SAREXT_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19178, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19144, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream) < (0)) __PYX_ERR(3, 19144, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SAREXT_Stream, __pyx_base.__weakref__); #endif @@ -339022,11 +336992,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SIN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SIN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SIN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SIN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19283, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SIN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream)) __PYX_ERR(3, 19283, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream)) __PYX_ERR(3, 19249, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream = &__pyx_type_5talib_7_ta_lib_SIN_Stream; #endif @@ -339034,7 +337004,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19283, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19249, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream); @@ -339044,8 +337014,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SIN_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19283, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19283, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_vtabptr_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19249, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SIN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream) < (0)) __PYX_ERR(3, 19249, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SIN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SIN_Stream, __pyx_base.__weakref__); #endif @@ -339071,11 +337041,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_SINH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11SINH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SINH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11SINH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19377, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SINH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream)) __PYX_ERR(3, 19377, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream)) __PYX_ERR(3, 19343, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream = &__pyx_type_5talib_7_ta_lib_SINH_Stream; #endif @@ -339083,7 +337053,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19377, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19343, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream); @@ -339093,8 +337063,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SINH_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_vtabptr_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19377, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SINH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19377, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_vtabptr_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19343, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SINH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream) < (0)) __PYX_ERR(3, 19343, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SINH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SINH_Stream, __pyx_base.__weakref__); #endif @@ -339120,11 +337090,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19471, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream)) __PYX_ERR(3, 19471, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream)) __PYX_ERR(3, 19437, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream = &__pyx_type_5talib_7_ta_lib_SMA_Stream; #endif @@ -339132,7 +337102,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19437, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream); @@ -339142,8 +337112,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19437, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream) < (0)) __PYX_ERR(3, 19437, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SMA_Stream, __pyx_base.__weakref__); #endif @@ -339169,11 +337139,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SMI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SMI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SMI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SMI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19569, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SMI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream)) __PYX_ERR(3, 19569, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream)) __PYX_ERR(3, 19533, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream = &__pyx_type_5talib_7_ta_lib_SMI_Stream; #endif @@ -339181,7 +337151,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19569, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19533, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream); @@ -339191,8 +337161,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SMI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19569, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19569, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_vtabptr_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19533, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SMI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream) < (0)) __PYX_ERR(3, 19533, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SMI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SMI_Stream, __pyx_base.__weakref__); #endif @@ -339218,11 +337188,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_SQRT_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11SQRT_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SQRT_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11SQRT_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19678, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SQRT_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream)) __PYX_ERR(3, 19678, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream)) __PYX_ERR(3, 19642, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream = &__pyx_type_5talib_7_ta_lib_SQRT_Stream; #endif @@ -339230,7 +337200,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19678, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19642, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream); @@ -339240,8 +337210,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SQRT_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19678, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SQRT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19678, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_vtabptr_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19642, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SQRT_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream) < (0)) __PYX_ERR(3, 19642, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SQRT_Stream, __pyx_base.__weakref__); #endif @@ -339267,11 +337237,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13STDDEV_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STDDEV_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13STDDEV_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19772, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STDDEV_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream)) __PYX_ERR(3, 19772, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream)) __PYX_ERR(3, 19736, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream = &__pyx_type_5talib_7_ta_lib_STDDEV_Stream; #endif @@ -339279,7 +337249,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19772, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19736, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream); @@ -339289,8 +337259,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STDDEV_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19772, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19772, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_vtabptr_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19736, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream) < (0)) __PYX_ERR(3, 19736, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STDDEV_Stream, __pyx_base.__weakref__); #endif @@ -339316,11 +337286,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_STOCH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12STOCH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STOCH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12STOCH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19871, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream)) __PYX_ERR(3, 19871, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream)) __PYX_ERR(3, 19833, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream = &__pyx_type_5talib_7_ta_lib_STOCH_Stream; #endif @@ -339328,7 +337298,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19871, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19833, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream); @@ -339338,8 +337308,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCH_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19871, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19871, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19833, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream) < (0)) __PYX_ERR(3, 19833, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCH_Stream, __pyx_base.__weakref__); #endif @@ -339365,11 +337335,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13STOCHF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STOCHF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13STOCHF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19983, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 19943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCHF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream)) __PYX_ERR(3, 19983, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream)) __PYX_ERR(3, 19943, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream = &__pyx_type_5talib_7_ta_lib_STOCHF_Stream; #endif @@ -339377,7 +337347,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19943, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream); @@ -339387,8 +337357,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHF_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19943, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream) < (0)) __PYX_ERR(3, 19943, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCHF_Stream, __pyx_base.__weakref__); #endif @@ -339414,11 +337384,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_STOCHRSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15STOCHRSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20093, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream)) __PYX_ERR(3, 20093, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream)) __PYX_ERR(3, 20051, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream = &__pyx_type_5talib_7_ta_lib_STOCHRSI_Stream; #endif @@ -339426,7 +337396,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20093, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20051, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream); @@ -339436,8 +337406,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20093, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20093, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20051, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream) < (0)) __PYX_ERR(3, 20051, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_base.__weakref__); #endif @@ -339463,11 +337433,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SUB_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SUB_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SUB_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SUB_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20198, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUB_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream)) __PYX_ERR(3, 20198, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream)) __PYX_ERR(3, 20156, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream = &__pyx_type_5talib_7_ta_lib_SUB_Stream; #endif @@ -339475,7 +337445,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20198, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20156, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream); @@ -339485,8 +337455,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUB_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20198, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUB_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20198, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20156, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUB_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream) < (0)) __PYX_ERR(3, 20156, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUB_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUB_Stream, __pyx_base.__weakref__); #endif @@ -339512,11 +337482,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_SUM_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10SUM_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SUM_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10SUM_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20295, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUM_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream)) __PYX_ERR(3, 20295, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream)) __PYX_ERR(3, 20253, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream = &__pyx_type_5talib_7_ta_lib_SUM_Stream; #endif @@ -339524,7 +337494,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20295, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20253, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream); @@ -339534,8 +337504,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUM_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20295, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20295, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20253, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUM_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream) < (0)) __PYX_ERR(3, 20253, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUM_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUM_Stream, __pyx_base.__weakref__); #endif @@ -339561,11 +337531,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__p __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_SUPERTREND_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_17SUPERTREND_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20393, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream)) __PYX_ERR(3, 20393, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream)) __PYX_ERR(3, 20349, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream = &__pyx_type_5talib_7_ta_lib_SUPERTREND_Stream; #endif @@ -339573,7 +337543,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__p __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20393, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20349, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream); @@ -339583,8 +337553,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream(__p __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20393, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20393, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_vtabptr_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20349, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream) < (0)) __PYX_ERR(3, 20349, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_base.__weakref__); #endif @@ -339610,11 +337580,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstat __pyx_vtable_5talib_7_ta_lib_T3_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_9T3_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_T3_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_9T3_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20500, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_T3_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream)) __PYX_ERR(3, 20500, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream)) __PYX_ERR(3, 20456, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream = &__pyx_type_5talib_7_ta_lib_T3_Stream; #endif @@ -339622,7 +337592,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstat __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20500, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20456, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream); @@ -339632,8 +337602,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_T3_Stream(__pyx_mstat __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_vtabptr_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20500, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_T3_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20500, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_vtabptr_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20456, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_T3_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream) < (0)) __PYX_ERR(3, 20456, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_T3_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_T3_Stream, __pyx_base.__weakref__); #endif @@ -339659,11 +337629,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_TAN_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TAN_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TAN_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TAN_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20597, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TAN_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream)) __PYX_ERR(3, 20597, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream)) __PYX_ERR(3, 20553, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream = &__pyx_type_5talib_7_ta_lib_TAN_Stream; #endif @@ -339671,7 +337641,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20597, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20553, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream); @@ -339681,8 +337651,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TAN_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20597, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20597, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_vtabptr_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20553, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TAN_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream) < (0)) __PYX_ERR(3, 20553, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TAN_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TAN_Stream, __pyx_base.__weakref__); #endif @@ -339708,11 +337678,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_TANH_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TANH_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TANH_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TANH_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20691, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TANH_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream)) __PYX_ERR(3, 20691, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream)) __PYX_ERR(3, 20647, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream = &__pyx_type_5talib_7_ta_lib_TANH_Stream; #endif @@ -339720,7 +337690,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20691, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20647, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream); @@ -339730,8 +337700,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TANH_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_vtabptr_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20691, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TANH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20691, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_vtabptr_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20647, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TANH_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream) < (0)) __PYX_ERR(3, 20647, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TANH_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TANH_Stream, __pyx_base.__weakref__); #endif @@ -339757,11 +337727,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_TEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TEMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TEMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20785, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TEMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream)) __PYX_ERR(3, 20785, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream)) __PYX_ERR(3, 20741, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream = &__pyx_type_5talib_7_ta_lib_TEMA_Stream; #endif @@ -339769,7 +337739,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20785, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20741, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream); @@ -339779,8 +337749,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TEMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20785, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20785, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20741, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream) < (0)) __PYX_ERR(3, 20741, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TEMA_Stream, __pyx_base.__weakref__); #endif @@ -339806,11 +337776,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13TRANGE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TRANGE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13TRANGE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20881, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRANGE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream)) __PYX_ERR(3, 20881, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream)) __PYX_ERR(3, 20837, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream = &__pyx_type_5talib_7_ta_lib_TRANGE_Stream; #endif @@ -339818,7 +337788,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20881, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20837, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream); @@ -339828,8 +337798,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRANGE_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20881, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20881, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20837, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream) < (0)) __PYX_ERR(3, 20837, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRANGE_Stream, __pyx_base.__weakref__); #endif @@ -339855,11 +337825,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12TRIMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TRIMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12TRIMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20979, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 20935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRIMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream)) __PYX_ERR(3, 20979, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream)) __PYX_ERR(3, 20935, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream = &__pyx_type_5talib_7_ta_lib_TRIMA_Stream; #endif @@ -339867,7 +337837,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20979, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20935, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream); @@ -339877,8 +337847,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIMA_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20979, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20979, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20935, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream) < (0)) __PYX_ERR(3, 20935, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRIMA_Stream, __pyx_base.__weakref__); #endif @@ -339904,11 +337874,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_TRIX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11TRIX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TRIX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11TRIX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21075, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TRIX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream)) __PYX_ERR(3, 21075, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream)) __PYX_ERR(3, 21031, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream = &__pyx_type_5talib_7_ta_lib_TRIX_Stream; #endif @@ -339916,7 +337886,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21075, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21031, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream); @@ -339926,8 +337896,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TRIX_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21075, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21075, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_vtabptr_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21031, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TRIX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream) < (0)) __PYX_ERR(3, 21031, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TRIX_Stream, __pyx_base.__weakref__); #endif @@ -339953,11 +337923,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_TSF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TSF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TSF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TSF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21171, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TSF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream)) __PYX_ERR(3, 21171, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream)) __PYX_ERR(3, 21127, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream = &__pyx_type_5talib_7_ta_lib_TSF_Stream; #endif @@ -339965,7 +337935,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21171, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21127, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream); @@ -339975,8 +337945,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSF_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21171, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21171, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21127, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream) < (0)) __PYX_ERR(3, 21127, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TSF_Stream, __pyx_base.__weakref__); #endif @@ -340002,11 +337972,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_TSI_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10TSI_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TSI_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10TSI_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21267, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TSI_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream)) __PYX_ERR(3, 21267, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream)) __PYX_ERR(3, 21223, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream = &__pyx_type_5talib_7_ta_lib_TSI_Stream; #endif @@ -340014,7 +337984,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21267, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21223, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream); @@ -340024,8 +337994,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TSI_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21267, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21267, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_vtabptr_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21223, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TSI_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream) < (0)) __PYX_ERR(3, 21223, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TSI_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TSI_Stream, __pyx_base.__weakref__); #endif @@ -340051,11 +338021,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_TYPPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15TYPPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21364, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream)) __PYX_ERR(3, 21364, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream)) __PYX_ERR(3, 21320, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream = &__pyx_type_5talib_7_ta_lib_TYPPRICE_Stream; #endif @@ -340063,7 +338033,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21364, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21320, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream); @@ -340073,8 +338043,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21364, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21364, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21320, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream) < (0)) __PYX_ERR(3, 21320, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_base.__weakref__); #endif @@ -340100,11 +338070,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ULTOSC_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13ULTOSC_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21462, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ULTOSC_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream)) __PYX_ERR(3, 21462, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream)) __PYX_ERR(3, 21418, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream = &__pyx_type_5talib_7_ta_lib_ULTOSC_Stream; #endif @@ -340112,7 +338082,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21462, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21418, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream); @@ -340122,8 +338092,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ULTOSC_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21462, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21462, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_vtabptr_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21418, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream) < (0)) __PYX_ERR(3, 21418, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ULTOSC_Stream, __pyx_base.__weakref__); #endif @@ -340149,11 +338119,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_VAR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10VAR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VAR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10VAR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21564, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VAR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream)) __PYX_ERR(3, 21564, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream)) __PYX_ERR(3, 21520, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream = &__pyx_type_5talib_7_ta_lib_VAR_Stream; #endif @@ -340161,7 +338131,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21564, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21520, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream); @@ -340171,8 +338141,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VAR_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21564, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21564, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_vtabptr_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21520, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VAR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream) < (0)) __PYX_ERR(3, 21520, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VAR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VAR_Stream, __pyx_base.__weakref__); #endif @@ -340198,11 +338168,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_VHF_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10VHF_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VHF_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10VHF_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21661, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VHF_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream)) __PYX_ERR(3, 21661, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream)) __PYX_ERR(3, 21617, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream = &__pyx_type_5talib_7_ta_lib_VHF_Stream; #endif @@ -340210,7 +338180,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21661, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21617, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream); @@ -340220,8 +338190,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VHF_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21661, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21661, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_vtabptr_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21617, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VHF_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream) < (0)) __PYX_ERR(3, 21617, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VHF_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VHF_Stream, __pyx_base.__weakref__); #endif @@ -340247,11 +338217,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_m __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_13VORTEX_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VORTEX_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_13VORTEX_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21759, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VORTEX_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream)) __PYX_ERR(3, 21759, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream)) __PYX_ERR(3, 21713, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream = &__pyx_type_5talib_7_ta_lib_VORTEX_Stream; #endif @@ -340259,7 +338229,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_m __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21759, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21713, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream); @@ -340269,8 +338239,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VORTEX_Stream(__pyx_m __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21759, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21759, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_vtabptr_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21713, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream) < (0)) __PYX_ERR(3, 21713, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VORTEX_Stream, __pyx_base.__weakref__); #endif @@ -340296,11 +338266,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_VWAP_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11VWAP_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VWAP_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11VWAP_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21865, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VWAP_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream)) __PYX_ERR(3, 21865, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream)) __PYX_ERR(3, 21819, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream = &__pyx_type_5talib_7_ta_lib_VWAP_Stream; #endif @@ -340308,7 +338278,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21865, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21819, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream); @@ -340318,8 +338288,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWAP_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21865, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21865, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21819, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWAP_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream) < (0)) __PYX_ERR(3, 21819, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VWAP_Stream, __pyx_base.__weakref__); #endif @@ -340345,11 +338315,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mst __pyx_vtable_5talib_7_ta_lib_VWMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_11VWMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_VWMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_11VWMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21965, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 21919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_VWMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream)) __PYX_ERR(3, 21965, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream)) __PYX_ERR(3, 21919, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream = &__pyx_type_5talib_7_ta_lib_VWMA_Stream; #endif @@ -340357,7 +338327,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mst __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21919, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream); @@ -340367,8 +338337,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_VWMA_Stream(__pyx_mst __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21965, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21919, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_VWMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream) < (0)) __PYX_ERR(3, 21919, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_VWMA_Stream, __pyx_base.__weakref__); #endif @@ -340394,11 +338364,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_WAD_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10WAD_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WAD_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10WAD_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22064, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WAD_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream)) __PYX_ERR(3, 22064, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream)) __PYX_ERR(3, 22018, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream = &__pyx_type_5talib_7_ta_lib_WAD_Stream; #endif @@ -340406,7 +338376,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22064, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22018, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream); @@ -340416,8 +338386,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WAD_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_vtabptr_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22064, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WAD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22064, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_vtabptr_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22018, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WAD_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream) < (0)) __PYX_ERR(3, 22018, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WAD_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WAD_Stream, __pyx_base.__weakref__); #endif @@ -340443,11 +338413,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WCLPRICE_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_15WCLPRICE_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22162, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream)) __PYX_ERR(3, 22162, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream)) __PYX_ERR(3, 22116, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream = &__pyx_type_5talib_7_ta_lib_WCLPRICE_Stream; #endif @@ -340455,7 +338425,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22162, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22116, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream); @@ -340465,8 +338435,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream(__pyx __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22162, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22162, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_vtabptr_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22116, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream) < (0)) __PYX_ERR(3, 22116, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_base.__weakref__); #endif @@ -340492,11 +338462,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_WILLR_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12WILLR_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WILLR_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12WILLR_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22260, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WILLR_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream)) __PYX_ERR(3, 22260, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream)) __PYX_ERR(3, 22214, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream = &__pyx_type_5talib_7_ta_lib_WILLR_Stream; #endif @@ -340504,7 +338474,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22260, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22214, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream); @@ -340514,8 +338484,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WILLR_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22260, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WILLR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22260, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_vtabptr_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22214, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WILLR_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream) < (0)) __PYX_ERR(3, 22214, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WILLR_Stream, __pyx_base.__weakref__); #endif @@ -340541,11 +338511,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_msta __pyx_vtable_5talib_7_ta_lib_WMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_10WMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_WMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_10WMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22360, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_WMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream)) __PYX_ERR(3, 22360, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream)) __PYX_ERR(3, 22314, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream = &__pyx_type_5talib_7_ta_lib_WMA_Stream; #endif @@ -340553,7 +338523,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_msta __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22360, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22314, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream); @@ -340563,8 +338533,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_WMA_Stream(__pyx_msta __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22360, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22360, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22314, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_WMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream) < (0)) __PYX_ERR(3, 22314, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_WMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_WMA_Stream, __pyx_base.__weakref__); #endif @@ -340590,11 +338560,11 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_ms __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream.__pyx_base._out_range = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *, int *, int *))__pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__out_range; __pyx_vtable_5talib_7_ta_lib_ZLEMA_Stream.__pyx_base._advance = (TA_RetCode (*)(struct __pyx_obj_5talib_7_ta_lib_Stream *))__pyx_f_5talib_7_ta_lib_12ZLEMA_Stream__advance; #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22456, __pyx_L1_error) + __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 22410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5talib_7_ta_lib_ZLEMA_Stream_spec, __pyx_t_1); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream)) __PYX_ERR(3, 22456, __pyx_L1_error) + if (unlikely(!__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream)) __PYX_ERR(3, 22410, __pyx_L1_error) #else __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream = &__pyx_type_5talib_7_ta_lib_ZLEMA_Stream; #endif @@ -340602,7 +338572,7 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_ms __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_base = __pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_Stream; #endif #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22456, __pyx_L1_error) + if (__Pyx_PyType_Ready(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22410, __pyx_L1_error) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount((PyObject*)__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream); @@ -340612,8 +338582,8 @@ static int __Pyx_modinit_Exttype___pyx_obj_5talib_7_ta_lib_ZLEMA_Stream(__pyx_ms __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_getattro = PyObject_GenericGetAttr; } #endif - if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22456, __pyx_L1_error) - if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22456, __pyx_L1_error) + if (__Pyx_SetVtable(__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_vtabptr_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22410, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream, (PyObject *) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream) < (0)) __PYX_ERR(3, 22410, __pyx_L1_error) #if CYTHON_USE_TYPE_SLOTS if (__pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_weaklistoffset == 0) __pyx_mstate->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream->tp_weaklistoffset = offsetof(struct __pyx_obj_5talib_7_ta_lib_ZLEMA_Stream, __pyx_base.__weakref__); #endif @@ -346030,273 +344000,288 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2581, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2644, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 2644, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 2644, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15ACCBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACCBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[253])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2686, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2686, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACCBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACOS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ACOS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ACOS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[254])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2790, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2788, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ACOS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2788, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[255])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2887, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2887, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[256])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2986, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2986, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 2984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 2986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 2986, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 2984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ADOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[257])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3085, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3085, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[258])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3187, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ADX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[259])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3284, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3284, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADXR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ADXR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ADXR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[260])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3386, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3386, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3386, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ADXR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9AO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[261])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_APO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10APO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_APO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[262])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[19]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3585, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3585, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3583, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 3585, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_APO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3583, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3647, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROON_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 3647, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[20], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3647, __pyx_L1_error) + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 3647, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3784, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12AROON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROON_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[263])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3686, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ASIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3686, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3879, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3686, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -346304,22 +344289,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3686, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3879, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3686, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3879, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AROONOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AROONOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[264])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3788, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3788, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3973, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3788, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -346327,21 +344311,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3788, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AROONOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3788, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3973, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ASIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ASIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[265])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3883, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3883, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 3883, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -346349,21 +344334,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3883, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ASIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3883, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ATAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[266])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3977, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3977, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4169, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3977, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -346371,22 +344357,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3977, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 3977, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4169, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[267])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4075, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4075, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4075, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -346394,22 +344379,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4075, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4075, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13AVGDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[268])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4173, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[19]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4173, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -346417,21 +344402,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4173, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4173, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15AVGPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_AVGPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[269])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4270, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BETA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4270, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4478, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4270, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -346439,2058 +344425,2092 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4270, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_AVGPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4270, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4478, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4335, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BOP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 4335, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21], __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 4335, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13BBANDS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BBANDS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[270])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[22]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4378, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4576, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4378, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BBANDS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4378, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4576, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11BETA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BETA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[271])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CCI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4484, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4484, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4677, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BETA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4484, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4677, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10BOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_BOP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[272])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4582, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_BOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4582, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4776, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CCI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CCI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[273])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4683, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4683, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4876, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CCI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4683, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4876, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDL2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL2CROWS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[274])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4782, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4976, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4782, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4782, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 4976, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3BLACKCROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[275])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4882, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4882, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 4882, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5076, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4882, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3BLACKCROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4882, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5076, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDL3INSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[276])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4982, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4982, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4982, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4982, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3INSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 4982, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDL3LINESTRIKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[277])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5082, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5082, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3LINESTRIKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5082, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDL3OUTSIDE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[278])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5182, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5376, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3OUTSIDE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5182, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5376, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDL3STARSINSOUTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[279])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5282, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5282, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5478, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3STARSINSOUTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5282, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5478, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDL3WHITESOLDIERS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[280])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5382, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5578, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5382, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDL3WHITESOLDIERS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5382, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5578, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLABANDONEDBABY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[281])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5484, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5484, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5678, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5484, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLABANDONEDBABY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5484, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5678, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLADVANCEBLOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[282])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5584, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5584, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5778, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5584, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5584, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5778, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLADVANCEBLOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5584, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5778, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLBELTHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[283])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5684, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5684, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5878, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBELTHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5684, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5878, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLBREAKAWAY_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[284])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5784, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5978, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLBREAKAWAY_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5784, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 5978, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLCLOSINGMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[285])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 5884, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6078, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCLOSINGMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6078, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLCONCEALBABYSWALL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[286])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5984, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6180, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 5984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCONCEALBABYSWALL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 5984, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6180, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLCOUNTERATTACK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[287])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6084, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6084, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLCOUNTERATTACK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6084, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6280, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLDARKCLOUDCOVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[288])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[24]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6186, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6380, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDARKCLOUDCOVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6186, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6380, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14CDLDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[289])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6286, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6480, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6480, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[290])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6386, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6580, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6386, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6580, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLDRAGONFLYDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[291])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6486, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLDRAGONFLYDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLENGULFING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLENGULFING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[292])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6586, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6586, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLENGULFING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6586, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLEVENINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[293])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6688, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6688, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6688, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLEVENINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[294])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLEVENINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 6984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLGAPSIDESIDEWHITE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[295])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6890, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6890, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 6890, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6890, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGAPSIDESIDEWHITE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6890, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLGRAVESTONEDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[296])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 6990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 6990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLGRAVESTONEDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 6990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHAMMER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[297])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7090, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7090, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7090, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7284, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7090, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7090, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7284, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHANGINGMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[298])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7190, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHANGINGMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7190, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLHARAMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[299])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7290, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7290, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7290, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLHARAMICROSS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[300])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHARAMICROSS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLHIGHWAVE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[301])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7490, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIGHWAVE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLHIKKAKE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[302])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7590, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7590, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_20CDLHIKKAKEMOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[303])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7690, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7690, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHIKKAKEMOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7690, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLHOMINGPIGEON_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[304])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLHOMINGPIGEON_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 7984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLIDENTICAL3CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[305])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7890, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7890, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 7890, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7890, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLIDENTICAL3CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7890, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLINNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[306])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 7990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 7990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLINVERTEDHAMMER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[307])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8090, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8090, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8090, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8284, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8090, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLINVERTEDHAMMER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8090, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8284, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLKICKING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[308])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8190, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8190, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8384, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLKICKINGBYLENGTH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[309])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8290, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8290, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLKICKINGBYLENGTH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8290, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLLADDERBOTTOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[310])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLADDERBOTTOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLLONGLEGGEDDOJI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[311])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8490, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLEGGEDDOJI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLLONGLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[312])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8590, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLLONGLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8590, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLMARUBOZU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[313])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8690, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8690, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[21]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8886, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8690, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMARUBOZU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8690, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8886, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMATCHINGLOW_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[314])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8988, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATCHINGLOW_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 8988, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLMATHOLD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[315])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[24]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8892, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 8892, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[20]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMATHOLD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8892, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLMORNINGDOJISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[316])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8994, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 8994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 8994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGDOJISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 8994, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLMORNINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[317])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[23]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9096, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLMORNINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLONNECK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLONNECK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[318])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLONNECK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18CDLPIERCING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLPIERCING_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[319])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9296, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLPIERCING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLRICKSHAWMAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[320])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9396, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRICKSHAWMAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9396, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLRISEFALL3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[321])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9496, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9496, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLRISEFALL3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9496, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLSEPARATINGLINES_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[322])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9596, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSEPARATINGLINES_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9596, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLSHOOTINGSTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[323])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9696, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHOOTINGSTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9890, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLSHORTLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[324])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9796, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSHORTLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9796, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 9990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21CDLSPINNINGTOP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[325])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9896, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 9896, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9896, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSPINNINGTOP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9896, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_24CDLSTALLEDPATTERN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[326])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9996, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 9996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 9996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTALLEDPATTERN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 9996, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23CDLSTICKSANDWICH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[327])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10096, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLSTICKSANDWICH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10290, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16CDLTAKURI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTAKURI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[328])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTAKURI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTASUKIGAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[329])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10296, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTASUKIGAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19CDLTHRUSTING_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[330])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10396, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTHRUSTING_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10396, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10590, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17CDLTRISTAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[331])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10496, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10496, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLTRISTAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10496, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10690, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22CDLUNIQUE3RIVER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[332])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10596, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUNIQUE3RIVER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10596, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25CDLUPSIDEGAP2CROWS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[333])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CEIL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10696, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10887, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLUPSIDEGAP2CROWS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10887, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26CDLXSIDEGAP3METHODS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[334])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10796, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10986, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10796, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CDLXSIDEGAP3METHODS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10796, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 10986, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CEIL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CEIL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[335])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10893, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10893, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 10893, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11085, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10893, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CEIL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10893, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11085, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[336])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMOU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10992, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 10992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 10992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 10992, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CMO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[337])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11091, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11091, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11279, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11091, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11279, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11CMOU_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CMOU_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[338])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CORREL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11377, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CMOU_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11377, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14COPPOCK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COPPOCK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[339])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[15]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11285, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11285, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11472, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COPPOCK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11285, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11472, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CORREL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CORREL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[340])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COSH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11383, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11566, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11383, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CORREL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11383, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11566, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10COS_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COS_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[341])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11478, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11478, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11660, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COS_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11478, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11660, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11COSH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_COSH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[342])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11572, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11758, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_COSH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11572, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11758, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13CUMSUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CUMSUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[343])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11666, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11666, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11855, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11666, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CUMSUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11666, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11855, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10CVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_CVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[344])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DIV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11764, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11951, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_CVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11764, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 11951, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11DEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[345])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11861, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11861, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 11861, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12053, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11861, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11861, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12053, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DIV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DIV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[346])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11957, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 11957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 11957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DIV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 11957, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12020, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12020, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12020, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 12020, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[25], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12020, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12256, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12256, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 12020, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15DONCHIAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DONCHIAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[347])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12061, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12061, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12355, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DONCHIAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12061, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12355, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10DPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[348])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12166, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12452, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12166, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12166, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12452, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9DX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_DX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[349])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12264, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12264, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12264, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12548, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12264, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_DX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12264, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12548, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[350])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ERI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12363, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12648, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12363, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12648, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[351])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EXP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12460, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12460, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12748, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12460, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12748, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9ER_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ER_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[352])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12556, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12842, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ER_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 12556, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12842, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12618, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12618, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 12618, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[26], __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12618, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12938, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 12938, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 12618, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ERI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ERI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[353])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12658, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13038, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12658, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13038, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ERI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12658, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13038, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10EXP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_EXP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[354])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12758, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12758, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_EXP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12758, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12FLOOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FLOOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[355])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12852, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 12852, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12852, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FLOOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12852, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11FOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[356])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12948, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13351, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 12948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 12948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 12948, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13351, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13010, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 13010, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[27], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13010, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13445, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 13010, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14FRACTAL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_FRACTAL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[357])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13050, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13541, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_FRACTAL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13541, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13117, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 13117, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13641, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[28], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13117, __pyx_L1_error) + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 13117, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13739, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9HA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[358])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13160, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13160, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13160, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -348498,22 +346518,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13160, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13160, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10HMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[359])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13271, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13271, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13930, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13271, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -348521,21 +346541,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13271, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13271, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13930, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18HT_DCPERIOD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[360])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13365, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13365, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13365, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -348543,21 +346564,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13365, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPERIOD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13365, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17HT_DCPHASE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[361])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13459, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13459, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[22]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13459, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -348565,201 +346587,136 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13459, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_DCPHASE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 13459, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13521, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KDJ_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 13521, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[29], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 13521, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16HT_PHASOR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_PHASOR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[362])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13557, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_PHASOR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 13557, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 13623, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[30], __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[23]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 13623, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14HT_SINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_SINE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[363])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); - #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13659, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13659, __pyx_L1_error) + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13659, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_SINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13659, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDLINE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[364])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13757, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14353, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDLINE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13757, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14353, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19HT_TRENDMODE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE_Stream_open_and_fil, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[365])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13851, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13851, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 13851, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14449, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13851, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_HT_TRENDMODE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13851, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14449, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10IMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_IMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[366])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13948, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14545, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 13948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 13948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_IMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 13948, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14545, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11KAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[367])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 14045, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14045, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 14045, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 14107, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[31], __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 14107, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14641, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9KC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[368])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14151, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[32]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14151, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14735, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14151, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -348767,234 +346724,204 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14151, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14151, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14735, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14223, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LOG10_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 14223, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[33], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14223, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 14223, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10KDJ_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_KDJ_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[369])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[34]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14269, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14829, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_KDJ_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14269, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14829, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_16LINEARREG_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[370])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14375, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14375, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[24]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14926, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14375, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 14926, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_ANGLE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[371])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14471, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15028, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_ANGLE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14471, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15028, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_26LINEARREG_INTERCEPT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT_Stream_open, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[372])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14567, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14567, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[25]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15141, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_INTERCEPT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14567, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15141, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_22LINEARREG_SLOPE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE_Stream_open_and, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[373])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14663, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15249, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LINEARREG_SLOPE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14663, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15249, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9LN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[374])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14757, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14757, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[26]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15356, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14757, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15356, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12LOG10_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_LOG10_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[375])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14851, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14851, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15456, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 14851, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14851, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_LOG10_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14851, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15456, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9MA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[376])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MASSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[35]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14948, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 14948, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15556, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 14948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 14948, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 15010, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[36], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 15010, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15556, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MACD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[377])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15052, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAVP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15052, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[27]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15657, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15052, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -349002,113 +346929,45 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15052, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15052, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15657, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15122, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 15122, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[37], __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 15122, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDEXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDEXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[378])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[38]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 15167, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDEXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 15167, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 15237, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[39], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15754, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 15237, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14MACDFIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MACDFIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[379])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15277, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 15277, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15277, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15277, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MACDFIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 15277, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 15347, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[40], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 15347, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15754, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[380])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15386, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[41]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15386, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -349116,21 +346975,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15386, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15386, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MARKETFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MARKETFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[381])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15486, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15486, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15949, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15486, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -349138,22 +346997,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15486, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MARKETFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15486, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15949, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12MASSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MASSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[382])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15586, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15586, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16049, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15586, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -349161,22 +347020,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15586, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MASSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15586, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16049, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MAVP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAVP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[383])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15687, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[42]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15687, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -349184,22 +347043,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15687, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAVP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15687, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[384])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15784, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15784, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15784, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -349207,22 +347066,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15784, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15784, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[385])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15880, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15880, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16342, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 15880, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -349230,21 +347089,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15880, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15880, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16342, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MEDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MEDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[386])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15979, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15979, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16438, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 15979, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -349252,22 +347112,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 15979, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MEDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 15979, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16438, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MFI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MFI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[387])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16079, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16079, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16540, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16079, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -349275,22 +347135,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16079, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MFI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16079, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16540, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPOINT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPOINT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[388])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16178, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16178, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16642, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16178, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -349298,22 +347158,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16178, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPOINT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16178, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16642, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MIDPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIDPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[389])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16275, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16275, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16751, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16275, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -349321,22 +347181,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16275, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIDPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16275, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16751, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[390])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16372, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16372, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16372, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -349344,22 +347204,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16372, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16372, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MININDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MININDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[391])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16468, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MOM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16468, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16468, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -349367,856 +347227,749 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16468, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MININDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16468, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 16947, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16534, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MULT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 16534, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[43], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 16534, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13MINMAX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[392])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 16572, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 16572, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 16638, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[44], __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 16638, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18MINMAXINDEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[393])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16676, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16676, __pyx_L1_error) + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINMAXINDEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16676, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17043, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[394])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16785, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16785, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15MINUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MINUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[395])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 16884, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17239, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MINUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16884, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17239, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10MOM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MOM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[396])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_OBV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16981, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 16981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 16981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MOM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 16981, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17336, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11MULT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_MULT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[397])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17077, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17077, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17077, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[28]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17434, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17077, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_MULT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17077, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17434, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11NATR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NATR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[398])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17176, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NATR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17176, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17530, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10NVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_NVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[399])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17273, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17273, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17628, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_NVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17273, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17628, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10OBV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_OBV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[400])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17370, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17727, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_OBV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17370, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17727, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17PERCENTILE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTILE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[401])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[45]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17468, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17468, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17826, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17826, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTILE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17468, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17826, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_18PERCENTRANK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PERCENTRANK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[402])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17564, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17564, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17921, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17564, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17564, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PERCENTRANK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17564, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 17921, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[403])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17662, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17662, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18020, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17662, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18020, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14PLUS_DM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PLUS_DM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[404])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17761, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PLUS_DM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17761, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PPO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PPO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[405])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[19]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17860, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 17860, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PPO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17860, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[406])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17955, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 17955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 17955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 17955, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18310, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVO_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVO_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[407])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[19]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18054, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18054, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVO_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18054, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18406, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10PVT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_PVT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[408])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18149, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_PVT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18149, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18502, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13QSTICK_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_QSTICK_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[409])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18247, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18247, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_QSTICK_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18247, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18598, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[410])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18344, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18344, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18694, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10ROC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[411])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18440, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[412])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18887, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18887, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11ROCR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[413])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18632, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVOL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18632, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18632, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 18983, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_14ROCR100_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ROCR100_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[414])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18728, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[29]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19081, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ROCR100_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18728, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19081, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[415])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 18824, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[30]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10RVI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[416])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18921, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19281, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 18921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 18921, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 18921, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19281, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11RVOL_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_RVOL_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[417])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19017, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SINH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19017, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19017, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19375, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19017, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_RVOL_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19017, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19375, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[418])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[46]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19115, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19115, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13SAREXT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SAREXT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[419])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[47]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19220, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19220, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[31]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SAREXT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19220, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SIN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SIN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[420])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SQRT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19674, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19315, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SIN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19315, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19674, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SINH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SINH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[421])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19409, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19409, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[32]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19771, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19771, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_9}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19409, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SINH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19409, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[422])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19505, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 19505, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 19567, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[48], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19771, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 19567, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SMI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SMI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[423])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[49]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19610, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19610, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[33]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SMI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19610, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11SQRT_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SQRT_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[424])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19710, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19710, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[27]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19710, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19710, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SQRT_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19710, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19983, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STDDEV_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STDDEV_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[425])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[50]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19807, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19807, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[34]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STDDEV_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 19807, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 19869, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[51], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 19869, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20090, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12STOCH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[426])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19913, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUB_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[52]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19913, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19913, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350224,158 +347977,135 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19913, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 19913, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20190, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 19981, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 19981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_2) < (0)) __PYX_ERR(3, 19981, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[53], __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 19981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF_Value, __pyx_t_2) < (0)) __PYX_ERR(3, 19981, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13STOCHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[427])); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[42]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 20023, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20287, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_2) < (0)) __PYX_ERR(3, 20023, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20287, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20091, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 20091, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_mstate_global->__pyx_tuple[54], __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20091, __pyx_L1_error) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); + #endif + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[35]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20388, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = NULL; + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 20091, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15STOCHRSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_STOCHRSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[428])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_T3_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[55]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20132, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20132, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[32]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20491, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_STOCHRSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20132, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20491, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUB_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUB_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[429])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20232, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUB_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20232, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10SUM_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUM_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[430])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20329, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TANH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20329, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20329, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20679, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20329, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUM_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 20329, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_4) < (0)) __PYX_ERR(3, 20391, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[56], __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Value, __pyx_t_4) < (0)) __PYX_ERR(3, 20391, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20679, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17SUPERTREND_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_SUPERTREND_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[431])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20432, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[57]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20775, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20432, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350383,22 +348113,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20432, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_SUPERTREND_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20432, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20775, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9T3_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_T3_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[432])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20535, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[50]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20535, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20871, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20535, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -350406,21 +348135,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20535, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_T3_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20535, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20871, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TAN_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TAN_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[433])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20629, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20629, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20969, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20629, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350428,21 +348158,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20629, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TAN_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20629, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20969, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TANH_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TANH_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[434])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20723, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20723, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21065, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20723, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -350450,22 +348181,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20723, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TANH_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20723, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21065, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[435])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20819, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20819, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 20819, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350473,21 +348204,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20819, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20819, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21161, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13TRANGE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRANGE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[436])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20915, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20915, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 20915, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -350495,22 +348227,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 20915, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRANGE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 20915, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12TRIMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[437])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21013, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21013, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21354, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21013, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350518,22 +348249,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21013, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21013, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21354, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11TRIX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TRIX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[438])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21109, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21456, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21109, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -350541,22 +348272,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21109, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TRIX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21109, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21456, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[439])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21205, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21205, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[32]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21205, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350564,22 +348295,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21205, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21205, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21555, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10TSI_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TSI_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[440])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21302, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[18]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21302, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21651, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21302, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -350587,21 +348318,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21302, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TSI_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21302, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21651, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15TYPPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_TYPPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[441])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21398, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21398, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21751, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21398, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350609,22 +348341,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21398, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_TYPPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21398, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21751, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13ULTOSC_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ULTOSC_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[442])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21500, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWAP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[15]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21500, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21854, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21500, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -350632,22 +348363,22 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21500, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ULTOSC_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21500, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21854, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VAR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VAR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[443])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21599, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[50]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21599, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21599, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { @@ -350655,22 +348386,21 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21599, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VAR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21599, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10VHF_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VHF_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[444])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21695, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WAD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21695, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22052, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21695, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { @@ -350678,217 +348408,112 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21695, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VHF_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 21695, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22052, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_namedtuple); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21757, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_module_2, __pyx_t_9) < (0)) __PYX_ERR(3, 21757, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[58], __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX_Value, __pyx_t_9) < (0)) __PYX_ERR(3, 21757, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13VORTEX_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VORTEX_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[445])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21797, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 21797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21797, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VORTEX_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21797, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWAP_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWAP_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[446])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21900, __pyx_L1_error) + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21900, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 21900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 21900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWAP_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 21900, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11VWMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_VWMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[447])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22001, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22001, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_VWMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22001, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WAD_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WAD_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[448])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22098, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WAD_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22098, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15WCLPRICE_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WCLPRICE_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[449])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); - #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22196, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WILLR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[450])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_7 = 1; - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WCLPRICE_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22196, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12WILLR_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WILLR_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[450])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22296, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22250, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WILLR_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22250, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[451])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_10WMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_WMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[451])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22394, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22348, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = NULL; - __Pyx_GetNameInClass(__pyx_t_4, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetNameInClass(__pyx_t_9, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_9}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22394, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_WMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22348, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[452])); if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_12ZLEMA_Stream_5open_and_fill, __Pyx_CYFUNCTION_STATICMETHOD | __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_ZLEMA_Stream_open_and_fill, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[452])); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_mstate_global->__pyx_tuple[17]); - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_4 = NULL; - __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22490, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_mstate_global->__pyx_tuple[16]); + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22444, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_9 = NULL; + __Pyx_GetNameInClass(__pyx_t_2, (PyObject*)__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = 1; { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_2}; + __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)__pyx_builtin_staticmethod, __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_9)) __PYX_ERR(3, 22490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); + if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 22444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); } - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_9) < (0)) __PYX_ERR(3, 22490, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_5talib_7_ta_lib_ZLEMA_Stream, __pyx_mstate_global->__pyx_n_u_open_and_fill, __pyx_t_4) < (0)) __PYX_ERR(3, 22444, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_9) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_all, __pyx_t_4) < (0)) __PYX_ERR(0, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_9) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_4) < (0)) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /*--- Wrapped vars code ---*/ @@ -351082,309 +348707,148 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[15]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_ACCBANDS_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; - __pyx_mstate_global->__pyx_tuple[16] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[16])) __PYX_ERR(3, 2644, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[16] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[16])) __PYX_ERR(3, 2684, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[16]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[16]); { - PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_int_neg_2147483648}; - __pyx_mstate_global->__pyx_tuple[17] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[17])) __PYX_ERR(3, 2686, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[17] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[17])) __PYX_ERR(3, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[17]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[17]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; - __pyx_mstate_global->__pyx_tuple[18] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[18])) __PYX_ERR(3, 3087, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_1}; + __pyx_mstate_global->__pyx_tuple[18] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[18])) __PYX_ERR(3, 3583, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[18]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[18]); { - PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_1}; - __pyx_mstate_global->__pyx_tuple[19] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[19])) __PYX_ERR(3, 3585, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[19] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[19])) __PYX_ERR(3, 4372, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[19]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[19]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_AROON_Value, __pyx_mstate_global->__pyx_kp_u_aroondown_aroonup}; - __pyx_mstate_global->__pyx_tuple[20] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[20])) __PYX_ERR(3, 3647, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_3}; + __pyx_mstate_global->__pyx_tuple[20] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[20])) __PYX_ERR(3, 5478, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[20]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[20]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_BBANDS_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; - __pyx_mstate_global->__pyx_tuple[21] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[21])) __PYX_ERR(3, 4335, __pyx_L1_error) + PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_5}; + __pyx_mstate_global->__pyx_tuple[21] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[21])) __PYX_ERR(3, 6180, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[21]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[21]); { - PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[22] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[22])) __PYX_ERR(3, 4378, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[22] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[22])) __PYX_ERR(3, 14131, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[22]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[22]); { - PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_3}; - __pyx_mstate_global->__pyx_tuple[23] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[23])) __PYX_ERR(3, 5484, __pyx_L1_error) + PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13}; + __pyx_mstate_global->__pyx_tuple[23] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[23])) __PYX_ERR(3, 14247, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[23]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[23]); { - PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_float_0_5}; - __pyx_mstate_global->__pyx_tuple[24] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[24])) __PYX_ERR(3, 6186, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[24] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[24])) __PYX_ERR(3, 14926, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[24]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[24]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_DONCHIAN_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; - __pyx_mstate_global->__pyx_tuple[25] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[25])) __PYX_ERR(3, 12020, __pyx_L1_error) + PyObject* __pyx_temp[6] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[25] = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_mstate_global->__pyx_tuple[25])) __PYX_ERR(3, 15141, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[25]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[25]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_ERI_Value, __pyx_mstate_global->__pyx_kp_u_bullpower_bearpower}; - __pyx_mstate_global->__pyx_tuple[26] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[26])) __PYX_ERR(3, 12618, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[26] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[26])) __PYX_ERR(3, 15356, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[26]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[26]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_FRACTAL_Value, __pyx_mstate_global->__pyx_kp_u_swinghigh_swinglow}; - __pyx_mstate_global->__pyx_tuple[27] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[27])) __PYX_ERR(3, 13010, __pyx_L1_error) + PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[27] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[27])) __PYX_ERR(3, 15657, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[27]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[27]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_HA_Value, __pyx_mstate_global->__pyx_kp_u_haopen_hahigh_halow_haclose}; - __pyx_mstate_global->__pyx_tuple[28] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[28])) __PYX_ERR(3, 13117, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_50_0}; + __pyx_mstate_global->__pyx_tuple[28] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[28])) __PYX_ERR(3, 17434, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[28]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[28]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_HT_PHASOR_Value, __pyx_mstate_global->__pyx_kp_u_inphase_quadrature}; - __pyx_mstate_global->__pyx_tuple[29] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[29])) __PYX_ERR(3, 13521, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_0_02, __pyx_mstate_global->__pyx_float_0_2}; + __pyx_mstate_global->__pyx_tuple[29] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[29])) __PYX_ERR(3, 19081, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[29]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[29]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_HT_SINE_Value, __pyx_mstate_global->__pyx_kp_u_sine_leadsine}; - __pyx_mstate_global->__pyx_tuple[30] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[30])) __PYX_ERR(3, 13623, __pyx_L1_error) + PyObject* __pyx_temp[8] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[30] = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_mstate_global->__pyx_tuple[30])) __PYX_ERR(3, 19186, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[30]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[30]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_KC_Value, __pyx_mstate_global->__pyx_kp_u_upperband_middleband_lowerband}; - __pyx_mstate_global->__pyx_tuple[31] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[31])) __PYX_ERR(3, 14107, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; + __pyx_mstate_global->__pyx_tuple[31] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[31])) __PYX_ERR(3, 19574, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[31]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[31]); { - PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[32] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[32])) __PYX_ERR(3, 14151, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; + __pyx_mstate_global->__pyx_tuple[32] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[32])) __PYX_ERR(3, 19771, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[32]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[32]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_KDJ_Value, __pyx_mstate_global->__pyx_kp_u_k_d_j}; - __pyx_mstate_global->__pyx_tuple[33] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[33])) __PYX_ERR(3, 14223, __pyx_L1_error) + PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[33] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[33])) __PYX_ERR(3, 19875, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[33]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[33]); { - PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_13}; - __pyx_mstate_global->__pyx_tuple[34] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[34])) __PYX_ERR(3, 14269, __pyx_L1_error) + PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; + __pyx_mstate_global->__pyx_tuple[34] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[34])) __PYX_ERR(3, 20090, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[34]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[34]); { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[35] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[35])) __PYX_ERR(3, 14948, __pyx_L1_error) + PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_3_0}; + __pyx_mstate_global->__pyx_tuple[35] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[35])) __PYX_ERR(3, 20388, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[35]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[35]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MACD_Value, __pyx_mstate_global->__pyx_kp_u_macd_macdsignal_macdhist}; - __pyx_mstate_global->__pyx_tuple[36] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[36])) __PYX_ERR(3, 15010, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[36]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[36]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MACDEXT_Value, __pyx_mstate_global->__pyx_kp_u_macd_macdsignal_macdhist}; - __pyx_mstate_global->__pyx_tuple[37] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[37])) __PYX_ERR(3, 15122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[37]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[37]); - - { - PyObject* __pyx_temp[6] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[38] = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_mstate_global->__pyx_tuple[38])) __PYX_ERR(3, 15167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[38]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[38]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MACDFIX_Value, __pyx_mstate_global->__pyx_kp_u_macd_macdsignal_macdhist}; - __pyx_mstate_global->__pyx_tuple[39] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[39])) __PYX_ERR(3, 15237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[39]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[39]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MAMA_Value, __pyx_mstate_global->__pyx_kp_u_mama_fama}; - __pyx_mstate_global->__pyx_tuple[40] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[40])) __PYX_ERR(3, 15347, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[40]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[40]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[41] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[41])) __PYX_ERR(3, 15386, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[41]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[41]); - - { - PyObject* __pyx_temp[3] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[42] = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_mstate_global->__pyx_tuple[42])) __PYX_ERR(3, 15687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[42]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[42]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MINMAX_Value, __pyx_mstate_global->__pyx_kp_u_min_max}; - __pyx_mstate_global->__pyx_tuple[43] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[43])) __PYX_ERR(3, 16534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[43]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[43]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_MINMAXINDEX_Value, __pyx_mstate_global->__pyx_kp_u_minidx_maxidx}; - __pyx_mstate_global->__pyx_tuple[44] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[44])) __PYX_ERR(3, 16638, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[44]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[44]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_50_0}; - __pyx_mstate_global->__pyx_tuple[45] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[45])) __PYX_ERR(3, 17468, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[45]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[45]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_float_0_02, __pyx_mstate_global->__pyx_float_0_2}; - __pyx_mstate_global->__pyx_tuple[46] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[46])) __PYX_ERR(3, 19115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[46]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[46]); - - { - PyObject* __pyx_temp[8] = {__pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[47] = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_mstate_global->__pyx_tuple[47])) __PYX_ERR(3, 19220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[47]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[47]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_SMI_Value, __pyx_mstate_global->__pyx_kp_u_smi_smisignal}; - __pyx_mstate_global->__pyx_tuple[48] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[48])) __PYX_ERR(3, 19567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[48]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[48]); - - { - PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648}; - __pyx_mstate_global->__pyx_tuple[49] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[49])) __PYX_ERR(3, 19610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[49]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[49]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_neg_4e37}; - __pyx_mstate_global->__pyx_tuple[50] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[50])) __PYX_ERR(3, 19807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[50]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[50]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_STOCH_Value, __pyx_mstate_global->__pyx_kp_u_slowk_slowd}; - __pyx_mstate_global->__pyx_tuple[51] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[51])) __PYX_ERR(3, 19869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[51]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[51]); - - { - PyObject* __pyx_temp[5] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[52] = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_mstate_global->__pyx_tuple[52])) __PYX_ERR(3, 19913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[52]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[52]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_STOCHF_Value, __pyx_mstate_global->__pyx_kp_u_fastk_fastd}; - __pyx_mstate_global->__pyx_tuple[53] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[53])) __PYX_ERR(3, 19981, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[53]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[53]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_STOCHRSI_Value, __pyx_mstate_global->__pyx_kp_u_fastk_fastd}; - __pyx_mstate_global->__pyx_tuple[54] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[54])) __PYX_ERR(3, 20091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[54]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[54]); - - { - PyObject* __pyx_temp[4] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_int_0}; - __pyx_mstate_global->__pyx_tuple[55] = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_mstate_global->__pyx_tuple[55])) __PYX_ERR(3, 20132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[55]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[55]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_SUPERTREND_Value, __pyx_mstate_global->__pyx_kp_u_supertrend_trend}; - __pyx_mstate_global->__pyx_tuple[56] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[56])) __PYX_ERR(3, 20391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[56]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[56]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_int_neg_2147483648, __pyx_mstate_global->__pyx_float_3_0}; - __pyx_mstate_global->__pyx_tuple[57] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[57])) __PYX_ERR(3, 20432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[57]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[57]); - - { - PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_VORTEX_Value, __pyx_mstate_global->__pyx_kp_u_plusvi_minusvi}; - __pyx_mstate_global->__pyx_tuple[58] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[58])) __PYX_ERR(3, 21757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[58]); - } - __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[58]); #if CYTHON_IMMORTAL_CONSTANTS { PyObject **table = __pyx_mstate->__pyx_tuple; - for (Py_ssize_t i=0; i<59; ++i) { + for (Py_ssize_t i=0; i<36; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -351418,43 +348882,43 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{17},{16},{19},{105},{7},{6},{11},{2},{27},{18},{32},{33},{30},{64},{48},{35},{9},{5},{24},{9},{7},{13},{36},{39},{34},{14},{13},{11},{13},{16},{18},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{30},{2},{8},{15},{29},{14},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{11},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{12},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{14},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{13},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{8},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{15},{7},{14},{28},{13},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{8},{3},{10},{24},{9},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{13},{7},{14},{28},{13},{11},{25},{10},{4},{11},{25},{10},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{17},{13},{27},{12},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{9},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{12},{8},{15},{29},{14},{12},{26},{11},{3},{10},{24},{3},{10},{24},{10},{17},{31},{16},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{12},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{24},{32},{30},{35},{16},{20},{15},{18},{13},{20},{29},{18},{15},{18},{15},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; - const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{261},{104},{277},{246},{247},{247},{247},{309},{248},{248},{249},{279},{250},{250},{373},{259},{261},{253},{254},{259},{253},{453},{276},{419},{396},{262},{353},{265},{262},{377},{248},{276},{323},{362},{287},{352},{288},{293},{441},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{404},{335},{335},{405},{336},{341},{503},{520},{441},{424},{361},{430},{463},{551},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{294},{296},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{638},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; + const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{16},{105},{7},{6},{2},{32},{33},{30},{64},{48},{35},{9},{36},{39},{34},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{2},{8},{15},{29},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{7},{14},{28},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{3},{10},{24},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{7},{14},{28},{11},{25},{4},{11},{25},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{13},{27},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{8},{15},{29},{12},{26},{3},{10},{24},{3},{10},{24},{10},{17},{31},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{24},{32},{30},{35},{16},{20},{15},{18},{13},{20},{29},{18},{15},{18},{15},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; + const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{261},{104},{277},{246},{247},{247},{247},{303},{248},{248},{249},{279},{250},{250},{366},{259},{261},{253},{254},{259},{253},{439},{276},{405},{391},{262},{346},{265},{262},{363},{248},{276},{317},{357},{287},{347},{288},{293},{427},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{399},{335},{335},{400},{336},{341},{494},{511},{436},{418},{361},{425},{458},{537},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{287},{290},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{633},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20704 bytes) */ -static const char cstring[] = "BZh91AY&SYL\006\n\341\000 B\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`e\377z\371\247\237np\000\000\000>>\017n\000\004\344w\2748\036\342\367`t\210\000\317\000y\347\265\342\212\005_{]\200/\016\243\212[\261\356\363\313\300\n\017\254U\364^\352\335\247\244f{\n\307\254\025\254x\275\306DK\333\036&\242\016{\006\346\354\335\351\357S\343\017o\321\365\330\272\\}\024\317\205cuQS\352\265\320\277\n\222\033\010\233\264\333Vi\326\371\233\337\320\303\246St\250S\224)\216\361\310\234g5\202\241\032\313\215\264o\272\360E\363\366\256\372\250q\304E\221\001\221D\250\rAA\250\n\010H\0020\202\212\004\202\047\254U\"%\025(\024\214AI\004\005\220\200\325\244 \026 \0022@)J\020\030\253\010\"J\224 B\251\020\252\244\025-\021\024.~w\273\362\316\353b\276\222\177O\346=\362\047o\350>\223\017\242\214\271\013\027\027\343>\177\350\177L\000\223\"\215\2013R\252\024\022\324:\215\014\\\t7\261U,\314\240\255D\222\204\002(\365""\212\203\017dqD\202r\245R\005B\r\036\0042\005\002\246\300\314\305g\177N\023z\334p\324s\374\354$\347\267\214\316\312\363\364?\343\350\346\217\371\220\324\327\320\326\203\375)r\007\201A\300C\354\0340-\34026\034\231)\n\252\2508\007\003!!\2552cH\001\310\300\232f\315Md\222\023A\316\364\253\252p\026\022\030!\200k7\t\240)\206b\361t\026\031\226\240\240\031\020 \032\200!\002!`5\320q\240\352?y\207Z\004\247\360\36350?\272\000\374\335\376Y\357\270\201w\312I~\260!\350\237(Qk\213\251\333\373\302\302\301\000\326\204-\004\267\326\347\375\371\220\204W\343\343\025\306\277\256 \310\251\221\300@\216b\272\177\200\2670A\266:\3212i\003{\004\377\tn.\200X;\332\335x\002d~P8*h4\377\027%\"\262\301\014\314=4M?\306:\t\222\346P\005\016HFT\021_\362\n\210).L\260\271\024\010\014\0166?\330\025\021S\322lD\201\0305\002\262(\006\024\313\037\262\\\323\047Q`{\336\t\\\004\333\374\245A\211:\330\014\241\321\035\013O\363\027#:\\p`*\225\250#\374\345\027\204\307\027v2l\234k\376\212\2256\266\214\006\243|\023\022\320\306$\330\352\243\366\212\266\031\205\005\2468\031\230\047KX(9\262\177\244\0135l3q\201\3009\002\3140\005n\014\300\377Ue\220\263\221\306Mj\013B\245+)\202@\177\353\220\371\260R\t\250I\331di8?\366jv\027\321,\020:cq\243I \315\244\302\236?\332,\342\202\366\001\030\220\367\256\306CA\"\001\241\336y\377t\300\032\221\204$<\016\021\020Ih\036\010~\337\210\2411j\200\344pG\225\033\310\n$\014\231\017\367\220\364MA\216\341\320\217x(\301\220\365\177\300\240\264\236J S}\302jUP\242\000\300\336\350\346\377\361\333570\014\177\311\344\nh\020\030\332\253R\254E7\305\217\376`#\001s,\203\337\030\014\005`W6D\006-\345\373\200\226\3456\203@\244\233\003\014\364}\262\246\005\245k\330\202[FA;\230i\024\021\265\220\220\313\367J\245\245R\333\203\201\002/\225\225&\037\364\253d\032&\302\351\002\004\\\030\262\047\253\376\262\325\364(\276\340\321\365\227\256O\204@\206\025t\002\201Ki\016_\275q\272\031\217\337:\r^4) \242\031\352\252`!\216\377\373w\273\016\342\327D\311]J\202\270\032\204\223&t,\375\3609*\235\311\027\005\213\250\220\177\367""\007\311iD\t`\244\374\\r\267\020ID\370\264\376\002x*\230\245\306\254(0\017s\377\301\037-D\022\241\305F\364S\377\310N\200F\321\202k\005\021KV\254a\323\377T0\020t\ncY\265\237\002\243\006\002_\371D\002\356\2619a\202S\273(q_\314\\\232\016\005#E)P\272b\240{\000> \303Th\300f\225\251\234\230\177\341$\032\327\234\026T\010\245\353\370\200\345\003\306\234\204\270R\310\335$\377\21640\3629m\220\\l\302ak~\301\022\315\310\006a,0\034S@#2]\212\r\314\004\032h\234\344\2322G\013Q\330\212\246\032x\252!Xi\250\245\264\354\005\317\346\201\311M\200\317\333S\021nr\021\005H0\354(a\314X\326\007\002\245~\327\205[\331\033\240\335\240*\211.\310\005f\326\027*\013:T\322\210\003\255\265.\307j-\350\205\t\260\354e6\200\"\324c\345\267\301\201\330@\246\230f\303+\275\270!\333\202\256\200\352,\267\240\320\334c\261)q\261\034e\230\r\210\010\247\022\337\177\267\221\262\330\267\271\350\326$y\007\222\362H\362=\024\273\2727nh\1777\017\036m\371F]\234H\237\020O\305W\352\005\343\ny\350\036\222\207\025\003\212\t\304U\322G\220)\307\020\322Pv\002:\372\272\272\263\361\265\376\215\370\311\223\312\024\334\372~\"\"\246\371]\252\021\225B]X\237R\023.\205S\354\240\360W\356\031L\367\025\326{\230`!f\317\364v\003C\027\r\330.\240\230-\201\351\236\305\261A=\207\305\322\275\365\003\201\204Y\007Ji\330\203\02750f\047Y\243\257b\n\202\231\207\001;\004A\301\314\356\364s\355A\260\227\213\t\270\274\251\367\323J\030\007^{]\220%\360n)\226\247b\364\231Ew\215\253\234\313\325\033\261FG\026\t~hAq\300\207\270\257\313\006\024\366\250\272\tJ\317j""\037`{\277\022\206+4\200#\260\2158\305mX\206G\241Q\257\3334\016\272P\327x\255;v\333S\254a+\244|\340\363\265F\220\233j\265.\301\202\230jn\341\317\260\342\215M\343w\312W\323\330\220t\220a\357\267:\321j;\001\316f\213Ks\003\277\260A\334)\212\235\350f;\000}K.U\330\364M*\347\330\207\031\245\242\302\320\206_@\034^\250#[\245\325 \317\266\017qU\232M\000c\373\205\270\212\325:v\024\342N\365E\354T\334d\317Sn\300\036\302z7b\007\301m\214\307`6\003\034\352;>\3656\255\265\035\252\215\221\273\023\301\237h\246\003\327|>\251\226\355\333j\003\212g\226\232\010\035\264\033\302\r\330\265\030Z\300g\355\303\313\257\036\336\334]\321\177\001j\307\330dp\265\303v\324\301\365\211\301\227`\231P\250T\366jf)\235\373PQ\017q\240\354-L1~uS\237\\\n\325S\202\366\327mw\370\352\226?\303\252m\251\335\301\215\375\203#}w\021\332\224\310v\025\037\020\020\033\301(C\357\004\371\304\330/\336\241\373*\355G\350P\364\013\360W\204Cj<\210\355@\373\225\373\305\336\000\352\027\357\027\357\027\324\201\205#Z\026\264\032\201t$\267\201kB\320\200\304\013@\226\021\006\024\0078\007:K\234\016t\034b8\300\342\021\235\007*\016$,\302\324\007zK\244F\241\032\321\254\r\001\330\007bGb\016\304\273Pu\010\354A\311CINB\362W\221\311\337O\274>\366AQ#\020U\204\025\220X\000E\222@\021PUP\204\017\377nq\333\317\314\350~h~ft\333\315D\371\205\250\333\315\2547\363a\201\346\024\037\231\331\254<\304*Nd\351\357\3704\346\237\001\226\261\n{\307\303\314?\2310\275v\r\346\017@\334y\276\202\357\346\343\315\005/\346\"\362\316\017>~n\236k\307\235\361\244D\337\337aO\204Wj[\340=\342\030a\227\335\356\367o\360_y&\337\034\255\317\264\367/\266\336\317w\266=\272${=\376\354\247aoz7\271/\357\321\337\357\206\366{\275\262z:[\246.\337$\007\212~N\034\271?\370\362\026\243\310<\227\222\362;l\327\327_\223\247WT>\360K\013\227\213\344\333\305\353\367\325\013\345\331/\337\277~\375\373\376\330%z_@\237\266~\360\034\253\332\035\241\332\366\235\241\201{\240\177/\335\"H\241\"\305 \242\220RBH\262\022E$U\213\t\000R\020\204X,U\005\005\005Q\211\"\221H\261a\005T\212\n*\250\213!\010*\214\200\252H\243 \"\377\203@:\264 \016\215\006\2455e\342)\230\022j\301Q\314x^\033\242\032(\032:*h\201\242\t\242\033<5\377_\317\373\330\323\323\347\203\347>Ee\227\213\265\022\232Ww/\277\014\302\300\204\254X\260V\254[\370\222%!)\306F) \250\304#\020\014q\3479\305\316\034\370\006,\016u\347\035*\036\250\213# \256I\025FU\037\344\351\024\034\310\346@b\344\345\260rF\340\277!\317\352Hd0\320:\\\020LH*!\267i\251\005\325\264\307\023\026[#\373F\347R(d`c$\025G{S\226\213\324C\024t\342\246\202\004\220#\010\306\022\\*0Tk\007!1\333\244\277\0201\325\253{h\014\211\010\023\276KK\317|99\377\r\263\254H\250\"\322\30488\005\222\032\367\367\266\356\255\327.\3420\303R\232\215U\2515\tb\nQ\024\250\241*\220\214T$\014\342\340\001\245M\n\350\024t\002nNy\212\013\047D\234\033\363\047\016(\367u\224\353\016\242DVE\2042C\010\034L\234\026\3617\363f\n\213\253q\r\371\3273Y@$\262\033\310rs\274\r\034h6aw\312\266\332\010\\\333z/\303\374E\234#\216\3016\033\247\371\267(n7n\242:\224W;\250r\320\336\206\032D\317\250\261\030\206P$\013\366\2322\260a\274&\374M\00337\336J*1\326\246e\336\r\200\354M\316`\320\220Es\377\243CV(5CX\2319\002\345\222\205\347\361i\0217\214\340:/\320 \350t\"gu\243\254\340\\v\344\t\244\266\252\255\265F@9\n\216[2\313X\030\2469\006Hev\222\245\342\350C@\206\264P\322\213\2444\206\263\375Yh\335\226\242j\023P:\203!rA\322\032""\014\306sF\210\252:\001\320)\234U\273\025A\377\337\023\032\254A\332\3462Ca\243!\332\351\342\312:\\\254*9#\245\322i\322\273\027 \323\230D\331\272\024\010\032\035\206\221\025\321\240\3169\303\204\376\361\035\342m2\261\271\324*:\224r\322\\\032t\206\225\020\320*?\304\031\207^}\016\337Z w\252v\177\347\337\324JL\374\006\\F(\232\025\354\366\337,\211\316\205{\203\340\177\365C\360M\213\3658\202k\317\303\360\3748\245\333\020#\211\224\337P\177eX\021\013\001\027=?M\001\342P\215:\2039\347\345!q*\253\212o\240a\n\030~\244\014?\3548K\213R\203\360\252\334\315I\230\245\212\n\216\241\301\365}&\006\177\265\345\"\254\200[\203l\203\274\234}y\230:Ur]D\006\343\035\353\231<\252\014\365A\253\232P\361\243\257\355\031\004\252\027\310\241mR\223\257\353%\026\332/\31342\023}\025?|9 =\322\321\2633\376\251\344\324c?\300\357>0\243\240\270\3415\316s\002\251\024L\356\237\323vD\246\337\253\\}\224\033\376_\350\315cN\274\225\177\263\257v\373\031]\215\177\221\207v\327\274[,dl\032a\300\377\350\320W^\361JG\354\3524\245}\047\300\365\352\377#\377npT\214~\277\305\257@52\311\372r\204c\207\333\227\177\2521\342\367\006W\215\325,\237\232\236\263\003\223\216\023ly\036)b\2534a\304~4@j\007\255\352l:\245\225\315S\243m\363x&KI\032\305\217L\326\213T\036\245\312\327Qs\000\365\220\350\035\235\256\252\206\247s\037\225\333\302?\001\027\263\333\346\203\334?\214\010\343\304\027\351\363\207\231\244BI\004\346i\362yAz*\234$\364\3230\246h\"\270!\210\345\034\250\234\2649\256\201\241\221\304\310\0227\267P\303\035\014\327!\2210\262\223\215\371\270q\252n\010\233p\270dUq\264w\303g[lN$4h\331\003\214\3254\207\024\3018v\315\331S\033\260\310\005L\313\2456CH\002\230\000.\205\320\271\313\200T\375G?2\302h\002hw\373\341\343d8E\305\007\211\0244H\271\271\372\r\006\227H\216d\316c\264\212\355]\246\220M\251\270\275\374\371}\037\216\300\261\371~\253\2752W=\315\235\221K\021\367\251,\355\003\353\024\301*\305b\262\254@\037\303\336\022Kgh\032\205\001\"M\217\332\247\270\2674\024\371\341<\025\262\000\272\221\377\\\037\213U\272j\240\003\026\3341\301\301""\343*\013\200\tW\256\221Z\277\276\316Eq\370\225Y\025\202\270\364\225o\327 \203a\333;x\3161T\220$lDb%\2719-\337\321R_\017\232rrr%\262\202\262+\033\357\303\272\373\001`X\020Y\020`-\ty\327\246\241\262\341\326v]\003\254\235\337=\260\177\243\362\374\276\0371\363K\211\307\223\234M\207|~\337\265\337*d\036\315\265\266m\202\300^\013\373i\346\004\030\013\350W\304\213\341\220J\361\274\nM\n\352\032\202\014S\372\047N\026Oa\230\\\344\221tF\276\264\027\203%4\371\352\243\376*\233\352kG\326PT?\332\252>\372\241\246\365\324\327\333p\367\363\361\353\207\206O\033\204\212\344&\345\301$+\213nBD\216~\273\240\tHn\t\\$\027\361\022\361\017}\014\003X\032\230\357\327\361\265\337\236\262\210\267\354=\005\307z\225\346\265i\026r1i+\t!oYPX,\036\263\030_\333\335q\311G\315\255\376\335\311\023\027dPFH\363\341\263\034N_\030\317fa\314\247\237\2226\275\000\242|H\020&\206\002\360\317);\327\023\221\001)\262\227\257\005\243\240b\360.{\367\240/\027\214e\216+*\275\020\365P]3J\010\047:q\301?l\272\257\2142\313\361/\330\300\314\202\242>17\313a#\335*I$\222I$\234=\023\177\177\370\335\343\200>Qx\r\307-6\355\032\203\200\372DR\047\341\242\354}\211\t\027pa{\010p\047\241u\233F\325G\363p\374\020\000\352\001:\225\352\014\235\034\246\032\365-\322D\261A\232\024f\260\235\367\224\331\273\313\354j:\216\267;.d\342s\327\202g7\244e\010\3056\316\0348\036i\257L=\303\341?\277\365\252\252\252\252\257\345\367>\327\267\340lGh\212l\000\344?\214\077\077\362<\307l\016n7\213}\353\340\025\250\247\004\212\252\252\252\251\013\371\010R\037\256$\020<\376\367\260\001\047\261\346?\210\213\314!\005:E6-\241\006RC\367\322\337k\273\264@\242\250\241H)\026\361\270S\372\353\265\376N\317@\036\207\200\023,\262?\225\335\261\275o[\304\330\256\303b\237\300\354\372y=\342m6\3554\202\017\367N]\246\3206\240\005\356\320M\246\325\376\250m\177\227N\301M\216\300v\007\261\016\000v\233Gj\"\354SX>\237\353\207\236\323\371\177\205\332\246\263O\026\366\315\202\243p\033\025G\2106\212mC\372K\2201\rpf\245\340@\340W`p\037\367C`lM\233\003`;\003\227j\233\023\212\003\2663u&""\340v\251\265\003h\217\277\356\364\327\325\017\327\235\260\340^\007|Tw\315\347`\356\223j\033\\\317\377\337qH\253\243F\2014&\2014C\274\257\324\031)\316\360\001[rt\211\2404!\3614\367\237\273\235\3369\004\273 \271r\366I\253R\232\235K\246\006}Nt\313\277 \266\234\244\225\013\223\211\331g{T\034lM\t\330\260}\024\034\305E=\"\304\362j/\316\330N~\325_\325\353@\237\000,C\354\022\007\276\2369\303\234#\215\240C\302(\360\247\337\224P\320\367\000$\030\020\222D\240M\020\2601\221\244\321(\047h\376\370\361\335!%\275\220O\0359\032\277\032ja]\t\353\240\031s\t\020\375\367&8\321\322R%\262Q:\331\004\262]j2\337Ivj-\022\330\323\375\362\t\077\077\342\307Wo\024\313\322\311v\263\2375\253m\323\247\025\356\3618!\335?oG\353\220\375\300\206\3448bXJ\016\362g~q8Z7\211\302\242\021h\376P\017\013GF\022H\252\252\252.\260\220\357\0103m\035\210~Sn\357(\001\355\020\344&\210w\020\350C\010\047C\212R\322\226\224\264\245\245-)iKV\226\371v\207\233\367)\374\350C\332\363d6\332\233Hy\205U\222I$\223\313n\260H\216\225\330\0470\233\024\313\177Jj\343\245\253\252G\214\004\315\234M\304Z\341\255\000\225Kj\245\252\245\252\245\252\245\252\245\252\245\252\245\252\324\047>d\321\225\031\257R\t\230MA\225\351\217\024\333s\204\000\364\020\342\357\272\252\253\303\263\212\322\036B\036\331\346\301\"\031\260LuQh\226\333F\2059\004\310JQ7\363\350\213!kylU\001,a\024\240\021\030TR\241QJQR\262\026\004 \225\220\251Y\nH\003\030\tY\nP*\252\025\024\245\003\360\206\217\3406\177\363\222\202\r\342\361\017\335\244P\270\016\224.D@!\034\350A\304g_\017I0\363\010\363.\256\331\323\211\354Od\310qI\016\366\047>\033I!4\026h\314\334\343ma\373\271D\264\260\335\036y\314dW3!\\\013\265v\342\223fd8\334\337\223v\n\002\203\024\223D3Q\016v\206\306\346\215\207fo\271\277\341\343[N\256\367w\301o\003fm\334\346u\324\232\223\247A\340fjjB\274H)\215\350\3756%z\n\274E8\221\204\220\201 IB\034F\226\021\221\205/\346(k\363}\017\315\357\022!\342\177tO\207\234\222I$\222I$\222~7\047\273\343]\363\326\032\004\360\262a\242\217\247\365\to\200\231\357L<\350\342\021\373\201\023D1""\304M\0219\323y\3042@\350j\262[\247\263\177!G\355m>\250eD\262\344\336A\274o\010\311;9\327\337\260\351\243\302\2527D\215\343\"\006\006\031\204\240O*RF\022R\372\312I\211\207w(\223\305K)\307\324\237\026\364\321!\356\330k\212c\014\312c\014\365\323\030fS\030fS\030g\357i\2143jc\014\375\252c\014\374T\306\031\364\323\030f\324\306\031\351\2460\317\222\230\3038\2460\317\226\231\337a\255Y.\250\260\272\2460\317\216\230\3036\2460\314\2460\316\372c\014\336\230\3036\2460\317\322\246ma\256\373%\325\026\027\212e\260\316\373%\325\026\027\212c\014\336\230\303:\323\030gJua\236\024\331\206Z,/\342\2460\316\352c\014\356\2460\317\nc\014\375\032c\014\360\2460\316\324\306\031\224\306\031\335La\235\324\306\031\341La\236\024\306\031\224\306\031\3051\206v\2460\317\242\230\3038\2460\317%1\206xS\030f\364\306\031\326\230\303:S\030fS\030gZc\014\312y\244>y\330M\020LoLw\250\274\316+\000\034\363\330\246e?8\224\215\244\212\252\252\242\373T\334\205\201\235\336%\244<\273\300\206f\213\216aq\314.9\205\3070\270\346\027\034\302\343\230\\s\013\235\210lC\316C\303\276\036\037\245Lya\257E%\3259!l3\232c\014\325;k\307!\267\261M\225UW\035\234]\310z\t\047XC\274\207\363\373}\272[Kim-\245\264\266\226\322\332[tC\307\240N\371\276\223\240<`\206|\020)\220\\ \353h+Y\016\301\224\231\221L\225QL\225QNf\\fe\306fZ\342\\\277s\251\366\276\327X\020%>\017\264}\240\372~s\347<\277h\304\374\336a\353\020=\236\320$XFD\203B{J\t\t(}\245\231(\243\220\364r\364\365\tq\302^%\271\247`\227\002b\247\210\230)Hz\216\213\350\0236\026N\234(\274L\372D\224\016>WI$\222*\252\256\020\356\003\354\3100%6E\024QE\024\235w)\250Kf\0239\323\014\3612\373\250C\261L\340\212e\001@H2\001\003)\006@\347\351\355\323<\005\024QE\024\314\231\2232b\266\333m\266\333m\266\333m\266\333m\275\274jv\363q\244<\2047!\345\361!\2648\362Sm*\252\252\252\256\375\210097\021\030\210\210\210\210\210\210\210%\353\254^\375\266\010\220\374\373;\220\235UU^\317\351\270\273u\316\275W\257]v0\3438\3433\216\035\346\367\231\275\263\215pq\306g\034;\315\3573{w\233\336f\367\004-\014,\320\303\003\235""\013\341\205\232\030`\363lw\027(\352\367-3\324\033\246\204\264\030\364\001\327\220\366{=\233+I\244\366_\302\355A\217\271\312&[\022\342\003\330|\237k\355O/\355LO \373Q7*y\047\254\220a\031\031\nW\326\026$$!)|\202\301G\256\336\241<\0019z\304\210w\013\346$\004\372\004\260\224\r\342P\224+PA\356\022\tx\230\t\307a[\230\027\301X$\010\244\t\002@\212@f\006`f\006\352\247\010\230\302\343\007 \271-\211![\322Ij\330\337\233\304}\201^w\240!\026\022\020$\220\244z\022\303\t\nNt\256\217O\271\367\025UUUW\330\244\223\360B\027\351 \207\332\367\357\314\375\323\356n\236\221UUUQd:\022D\206\307\353\004>\253\016\275i\320\220D\201\301\016\201\016Ba\017\212\264\271\225\355\2749\357\2460\317l\2275/\300\\\356\315Gc\216j"")\034\324\264\236\354\324\367;\247owq\224\271\225\302\346W\013\231\\.ep\271\225\302\346U\301\314\257\307\375\315?\347\267|5\037\016\367\277\274;\205S\346{\376S\334v*v\207p@\221\222FR\207h\226\220\204\204\244\356lB\273\270\317\252r\277J\235aBs\376\273\365\316\300G\274L\347\347\004\305K\204\210`\047\216\221M\002AB\300\224\230\350<\204\315\342$k@\220MBf\270J\004\360\310MBR\0322\300J\364\351\360J\370Q\204?g\302\022\022\022\022\022*\242\305\362\220\206\231 \261b\305\213\026,U\027h\231\346\355x\202A6\t\344&a7\ty|$$$$3&d\314\231\2239\347\232\315E[m\266\333m\266\333m\266\333k[\0010\023K\0254\t\274%\203\364\211z\224K\345)\346&\004,7!\350\333H\242\212(\242\213\347!\320\363\355\340Ck\233\020\337\331\225\213\026,X\261b\305\216\336S\247\206\323w~|n\257/M\227\035S\240C\254\273pA\201\301EUUUC\261z\357r\261\275\341\031$\345\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\341\314\324\331\004A)\303\3022P\343e\307T\332\3368\230\353n.\256\357\033.:\247\313>\217\256,\361\311\363\375V\223/?\335\303q\360%\021\2336e\314#0\227!\300\"\366\204\226A%\300,\311\204\230\"P\276\346\210\310\022\024\007\270\250B\025\356\373\274E\003\324v\304>F\373\276o\037\317\241\000\324\353#\030\014\211#)]ci\"IA\256\231\355\004\374}I\317\365\321\004\362\017O\210\224\245\311}U\323\256%\3375\323\367y\220^HZ\252\252\252\277@C\367\344:\2044\020\372\212B.\304\030T\212E\"\221H\244R/\305\355\310\217\031\306\247\326v\177\214\354\353\345D9\2219\340\005\010s\210Ti9\322=o\250\023xH\t\302$\001:\304\241(O{]\205\342\\\tn:\004\372`%\342\301X!1\274O5?\001?P\233\020\347M\010Z\252\252\252\277`\207]\004\010\317\202\220\260\365f\354=]\366zXg\337\260\306\031\252\\\246\333sO\230\203\0032\333m\266\333m\266\333m\266\020\327IB\t\004\203\010\2044\211JP\203\215\311\233\256\215\242m\276\311\177\256\213\2011\023|O\240N\320Mb\\%\t\001/\341\210P\002M{\266_\277a0\022\310$\022\010C\353\010$;\020\347\235\371\345\324\326\263Z\326\265\255iUUUU""qZ\374\315z~\354\362g\307\237/>\273\370~D\367\365=\351\360\323\336\221\361{@|\023\306!\"\024\217\210\225\006\237\026x\234<\335)\327\335\\S\332a\257\303t\360\303[]>\361\370w\330u\r\355\335\370\277\022\252\252\252\252\357\220\337\341\247\334\337\322\252\252\252\252\277\047M\241\307\024\356;\273\261\353\316\333\367\027\251\005!\235y\207_]8<>lUUvq\304]\332\246fff\306\246\246\014\344\263\220\331\313\342\341\n DC\304\004(\201\021\017\020\020\242\004D<@B\210\026\210x\200\205\020-\020\361\0015\264(\231\r2\363!(b\020DC\304\004\365|\360\013\014\203\353\000\207\340\277\347\200@\307\325\266\320BsM\240o!\266Cof\230\303;S\216\362\036l\206\336z,-\274+\014\355qZ\3038\246\230g\205%\312y{\267\266\333m\266\333m\265UTUU\002q\351\327\252\302D3fL\372(\342\004\305C\035\3453\266\267\235\341\317\2157\333z\336\323.V\326\326\326\326\326\326\326\326\252UJ\251U+\353\362\027\261\356G\350_\240\357\376\337\177Z\247p\207y\031)\036\360*\r\017x\367\376&\367o\rzx\271nN\\(\273\tj\022\204\212q\215\030\240\023\320\t\025\220BA \224\"u\002^\tE\201\"A \032$)\004\203H0\022\0204A \220`\006*\252\252\252\252B\356\252\252\252\252\252\252\252\252\252\273\020\334\206\243\261\017\177\000\234*\252\252\252\252C\255!\320\237\203R\023}ZW\243\306\213\311\013!\324 \244\021\022\020y\207l\2477r\274\274\350\277\036\345\260\315\346\330!\014q`\2041\305\202\020\307\026\010C\034X!\014q`\346\0041\305\207\257;\262s\354|\337u\324\372\207=\376\273\305\342\347\305v\322\021\"\021q\310\013\202{$9\\\007S\311O\261\221g\272\237!\000\3677UUUU_\263\357@\014d\262\036\366\276\220\206b\252\252\252\257\006\3446!\366I\000M\303\347 \220:\220\353Ht\252\252\252\252\257O\207\323\363\220\353\010nC\343\372\210w\222N$8^mUUT|\220\206\210v!\370:a\016\304<\232\327\205\252\252\252\253\307O\047\220!\311\014\316y\220\352C\223m\225s333&g\036\036\037am\274Km\266\333m\266\333m\266\333m\266\265\256\023P\231\tB\034\031j\206\254\204\326&\221\2778\232L\342h\273P\233\307\274HX\013\304\3076 %!\234\023V\254a\252\325hZ\327\0232\342f\\L\313\211\231q3.&z~>\304\010\023""\357\007\313\271\272\3661/G\241\357\200#\306c1\374_\036\352A\211\030\330I\234\222\304$\367\013\030\303\347;\271A8F\204\355\023\260\273\363\225\273\177\024\362\315G,K|\364v\t\363\251\240\321\364\300.\022\365;\004\325\355\023\304L\257L\275\264Z%\273\250\355\315\361\220\366$4S2\333m\266\333m\266\333m\266\367\220\347\307xt\321\201\3533=\365!\277(\024\365/q.j^\t\327\235I\047\020\356\356\356\276-\303{\335f+Y\212\326b\265\230\255f+Y\212\336\223\333\236\254\2315\362\214\313\2515&\254Mq\363[\000.\000\027\231\302W\204\230W\205pD\261l\306\215\233\256 \007\214H#\367w|\247\337\010\024\211\371\230\204\013X\001\013\226\221\270\004K\200\037\020C\354S\354qA/\273\352\346\370\374\330hq\201&\230\026C\236\313L\266vv\326f\372\371\014\271 j]\221\336\264\253\004V-KZ,QV(\253!\234qcd\272$8\r\315M;\360\356ow\312\334[\264\337F3\003[_@@\366\200\344 \215\000r E\344\023\247\343\327\337]by\251\345\204\023\212\304T\360z# \264$\314\047\254L\345)s\010\021\004\363\022\302\r\352\266\270M\047\227*\203\354\022\360\300\022\tBP\227[\240\206\020\314UUU\027\200\207\305\335\017\213)\255\336\241\006\007\226\344\303M\031D\267\333F\202%\252\226\252\215\010\227\342&\310\002g.!\016\24431\372\377\223\363\350\207]uUU{?#\210\274\233\261C\344N.=\353\257a\002\032\313k\270\341\272\361\"$S\371[\242\347\022\2014\tEk\3115\353\242\321-\242\211\202\006\202)\257^\275ZX@\206\001taX\207\207#\006\001\210\013\014\"!\341\310\301\200b\002\303\010\210xr0`\030\200\260\302\"\036\034\214\030\006 ,0\210\207\207#\006\001\210\013\014!\342(\256F\014\003\020\026\030CDR(F\014\003\016\026\030E}\347\273W\315\257\321v\314^\260{\236\324;\270\217\355\2603\252\366\202\020^\324\010\235\253\305\313\313\311\355\023\325\2717\371\250\375\210\226\343\2436c\3553{\352\354\252\257T2\023\243\240L\355!\250Mbax$CK\361\277\270N\221 \226\266\241-UUU_\016\275\244:\020\332\303\307\323O/q\0161UU\331\323\213\243\224\350Z[Kim-\245\264\266\225\251pK\342a\205""\026\211m\225i\244K\324\320&\261=W\246l\364j\304H\206\344:\236\265\037\224\202U\035\322\250\305F*1Q\212\214Tb\243\025\037>\357\260y\276\256\225U]\331W\030g\261q:\020\017\254\202Hk\320\373\047\267\355\334\361\267n\355\366\366\000\206\333;\233qs{vV\233\331v\033\314\302oe\330o\247\026\343/\005\3407\231\204\336\313\260\337[\\7\336\346\366\354\305\246\333\\\332\335\260\367Y\326\037G\231;\341O\231\375\217\331\305\260y\332.\330\343\215\266aI$\2211\220\210 \3463\031\2707Q\201V>6YD\007\000\200\345p\226a&Fa7W%!T\314\342\231\356\333\220F\023\200Dq,$)\r}\236\220\355\365S\354\355UU]8\342\361\000\207B\035\272g\354{\374\375\311\024P\313\205>4E\047\010\244\365QI\360ow{5r\322\\\264\370\263\343\354\336\310\242\236\227]\335\354\325\313I\264R(\244\345\024\237\002)J):\"\221E\047TR(\244QI\346E\047\010\244\372\264R|(\244\362\242\223\204R}j)=4Rr\212OI\024\361ow{5r\322m\024\237\n)8E\"\212N\364RtE\047\010\244\362\242\234w\356\357f\256ZNQG\277w{5r\322r\212N\210\244\355E\047b)\333\341\273\275\232\271i=\364Rx\221I\342E\047\202)=\364Rx\"\223\271\024\212)d\343#{\372\235x\"\212OB)<\310\244\357E&\321H\242\221E\047\215\024\235\272\223\270\354\340\343\202x\"\223\347\"\234\347\257\333\305\343\203_L\212\\\267j\244\236tR|\264S\307\316\356\366O:)\337\216)\024Rx\321H\242\232\363\242\235\")\253\226\222\345\244\356E\047DRuE\047\010\247w;\273\330\304SW-5\312)=dR\\\264\212):\242\223\312\212x\363\235\233\331=dRq\256\351\346\316\0368\047\256\212N\250\244\356E\047\241\024\234\"\223h\244\361\"\223\324\354;88\340\236DS""\324\362\356\357g\245\351\356\357f\256Zj\345\244\357E\"\212OB):w\356\357g\311\307\024\363\373\033\273\331\253\226\223\275\024\235\250\244\352\212O:)\317\263\273\275\223\224SW-\047\312E\047\235\024\236\204Rw\374?7\177\211\352\316}\354\347}O/\217w{5r\322yQI\312)6\212Oe\024\236DRy\021I\312)=dS\331\340\36588\340\235QI\330\212OB);\221N\271\346\331\275\223h\244\354E\047DR(\2435=\231\251\350\360\347Z\236\327\031\047\273\305<\360\207\330!\304\207\022\010\035\344=~\252\020\355\321UUUUR\032\322\252\252\252\256\323\222\035\301\004\203\271\017Q\nC\210\337\322\047\006:p\0205\t\004\322$,&G\253f\374\r\333\250\352C\306\204;\344:\220\274!\306\324\352A\322\032\357\246\322\005\272B\356*2\022]\002\355\3524g\316&\335\031]\256\330`&\360\237J\251\235201\262\006\"\"q\246m\234\345s\342\001\010\025\020\031\024\n\321\353U\207GwW\251\020\210h\210X\202!Xh\210Xtwux\000\206\360\321\020\260no\014/\206`a\373\031\231\234\264\344\340\037e\3541H\322\317\324\002:\003\241%\320\035\202@\272Aw\220m/\333[\251\005Q\020\0344\320-(\023\tt\2111\322\233\247\020LD\375\343\245M\002X\037\021;\374\371< x{(\276\3641\270\t\004\201\363\207S\343!\305!\240\230B\375d<\010|\272UUUUUUUUU_!\264\220\366`\217\250\010\030d$$$$$$%\001\361\352\373\262A\007\254\001z\323\323\326u\257X{\272\277l\364p\034H\267\227A\365*\365\200\021\003\254B\007Z>\257v\037\234C\317\352C\325\337O\267\367=t!\357\342\364!j\252\252\252\272\326\244\3379\047>\321=\276~\237\266\333m\266\333m\266\333m\266\333m\271\231\231\354\244.\334\241\317\325L\324\016\244;\316\356\227D7\370P\351\226r\206sOL\201\016:t\245\264\266\226\322\332[Kim\311\240\001,\267\336\036n\361\306\020\302\214\002\005\201`B\312\217\002\037$#s\323\352+\003\340\335\n{\320\017\250\302\007h!\340(E<\021\201\340<\236\230\036\236\3722\023\351\023\352\023\250O\033\363@\315\323D\373\004\210h\022\327\300\277\344\247$:\327f\252\253\263\247\027\241\010|\004\010\200\220=)\364\367\365\035J\275@\231\365\362s\251\267\231+\230S\0009\020\016a\002#\314\214Nd\236\315<\204x\221<%\211\024\262\2378\220\272\353""\211)\026\020\364\020\003Ff\221\267\013q\033p\267\021\267\013q\033p\267\021\267\013q\033p\267\021\265n\031\230\215\246\221z\217r\000p\n<\000\367\n\367\001\334\035\232\177\017_(=\334\205\025Tr\"~\301\233\nx\200NQ?\010\213Hs!\036g\233A\233_0\224\207\330$Hb\373p?\230\302\006b\252\252\212\264\010fk\326P\026Ed\262\221e ,\244eH\275i\031l\2449Z\266\301\263U\304\005\264\221H\312\301d\005l\022`V\322\034\342\332kw\326<\214\031.8\310\t\352\007\324D\023\306-\037\207\177HzN1:\002\047\0475\034H\231\227\357\237D8U8\304b\274\200\034\236\337\272\033\373\342o\301\022\347\374\364\336C\022F\310b\3321#\022\257\210\014Kn\302\334v7!\341\213\025\267\226RZ\022%\235\205<\350=\0100\036\201c\320\317\016A: \010N~S\227\2249y+\240\256\027\305^\271\212\260\207\033A\n\302X\034V\025\200C\030EM3\004c\304#\312\243\021\345F$\345\016_\300?\252~!\320\213\321\001\177\331\005J:\304\024\347\036s\235\347\345\351^5\016NAHq7tr\321\310\270\204s\003\377\021\222$>0\345\0049\221\010\201\314\241\003\2318A8b\251\305\352\005\342\324\006\374\322&\3057\033.=\004\364`\206\2032\304\201\005=\212;\001\r\312\207\302\201\336V&\362OWh\000W;\2048\022tn\020$\005\003-v\250S\177\001\006\225\r>iq\356\342x\305\372I\351\355\224\364\177\025\260$r\202\312\232YZ\306\315\024\275}\323[\374\227\250\232\336\341\253\243b\353\024\0203\355\3178kS[\357\306\223\321\334\363\251\364\303\2168s(j}\346\347\2753\366\3277\233\014\260Z\265\021\211v\223|\266\321\312\323t8k_6\332\243z\267:M\037N\345\247\350\353\307\341k[\203\346\326mtg\336/\024Q\324l\001\003B#\000\310\214\002\000\310\200\272.};\254-\260(XE\331\023\231>\277\323\365\237\013\177N\330!\262.q\223\240\300&ge\353\241Ox\203\002M\222\0041\024 C&EA\235\373\330\001\354\252\021P\030\034\010c\344t_\2105\311\374\272\326s\340\241\213\305=?\036S\363\273\233\002Gr\013*iek\0334R\365\3535\277\246\365\023[\3345tl]b\202\006~<\363\206\2655\276\374i=\035\317:\237L8\343\2072\206\247\245\272\364L\372[7\233\014\260Z\265\021\211v\223|\266\321\312\323t8k_6\332\243z\267:M\037N\345\247\216\274zZ\326\340\371\265\233]""\031\367\213\305\024u\025sa\013\3205\311\366\232\315\260\241\213)\343\335\224\360\356l\t\035\350,\251\245\225\254l\321K\327\244\326\3767\250\232\336\341\253\243b\353\024\0203\323<\341\255Mo\277\032OGs\316\247\323\0168\341\314\241\251\342\336\035\023>-\233\315\206X-Z\210\304\273I\276[h\345i\272\0345\257\233mQ\275[\235&\217\247r\323\307^<[F\215\351\277\243E\3335\335~\354t\343\205\216r\340\241v\251\005\261\026\242\247\031\241\316\202W\2706I\370\275g\032(b\325<\272\345M\233\315\206X-Z\210\304\273I\276[h\345i\272\0345\257\233mQ\275[\235&\217\247r\323\313^<\232\326\340\371\265\233]\031\367\213\305\024~\347\241\010\252E@\277\220\336R\302\361\211\021.\210\r\240\340^e\242h2\267xmI\372^\266\327e\014[\247\243\303)\345\340\330\0229AeM,\255cf\212^\275\363[\372/Q5\275\303WF\305\326( g\256y\303Z\232\337~4\236\216\347\235O\246\034q\303\231CS\320\335\347\323>\206\315\346\303,\026Z\214J\273I\276[jr\264\335\016\032\327\315\266\250\336\255\316\223G\356Mi\350\327\217CZ\334\0377\273k\243>\361x\242\216\242\256l!z\006\271>\323Y\266\0241e<{\262\236\035\315\201#\275\005\2254\262\265\215\232)z\364\232\337\306\365\023[\3345tl]b\202\006zg\2345\251\255\367\343I\350\356y\324\372a\307\0349\2245<[\300\372g\305\263y\260\313\005\226\2421.\322o\226\3329Zn\207\rk\346\333ToV\347I\243\351\334\264\361\327\217\026\265\270>mf\327F}\342\361E\036F@\201\230\"\330\002\006\001\021\257\227\203\002\000\305\352n,\275ChO\316+9\325C\026\311\236\271O\036\255\201#\301\005\2254\262\265\215\232)z\365\232\337\312\365\023[\3345tl]b\202\006z\347\2345\251\255\367\343I\350\356y\324\372a\307\0349\2245<\233\251\364\317\223f\363a\226\013-Db]\244\337-\264r\264\335\016\032\327\315\266\250\336\255\316\223G\323\271i\345\257\036Mkp|\332\315\256\214\373\305\342\212@\200\353c;n\317K\365\343\027\204\023\223\321\362\016E\304/pm\t\371\322\270\333\n\030\260\236=r\236\034""\266\004\217\004\026T\322\312\3266h\245\353\326k\177\033\324Mop\325\321\261u\212\010\031\351\236p\326\246\267\337\215\047\243\271\347S\351\207\034p\346P\324\352\335O\246W\026\254\370\236\\4\2640S]\244\337-\264r\264\335\016\032\370\305\266\250\336\255\316\221G\356\325i\343\257\036-kp|\336\315\256\214\373\305\342\212\034\310\200\036D@\274\3757\034]\264u@\351\214\315\336C\365\306\220\240\216\006\227\021/\320=\333\273\262\231\265\260Nf\202\027\373\206)i\334\347\027L\305\307\262`~|\200}\363\370\273\354B\004c;\213)r\000A\020\271]P\275fi&\026\342\3203\353\0171\370\377\235_\310\307$\300\201\003~\253\3112\324\356l\030\266]!&\211kEnt\354\227\227\334?\224E\006\000\334\305[b\220\"j\005%\227A\371;\226\360\272\250\311\20620`\314u^\2255_\360\302\023x~&\234\261\377S\201&\342\363\003B?i\211\337\034\023\376\005\037\014?cv\201u\001vb:]\233,\206\334g\"j\253jK|*\022\033\221\376`8\206\356\276\004\233\247+y\265\357\033\373\353\323\324DHHD\210\302\355\321\000\023K$Pd\004 k\332Ly%\321!\021\"%\257\243d\255\243\232\374\265\215\214t\312x\310\204\344Q\007\352O\2737\332\025\234\264/p\037\201\256\023\213n|x\277\207n\276\312\324M\262\022i>F\371\317\303\273\226\276\340\366A\006$E\223\274\036}\036\264F{\355v8\231\036\374Z{>|\047>\274!\013s\230A\270\235\207m\371/\252\017\251\\\305ie\032\022_\277\0479\217\032\340\0145\367\373\007~\207\256\360\337O`\264S\016\353\036\241\366\203,8\240\020`:\006uOu\252\344\316?\022\375\034\034)V,[\030\0175b\354\241&A\030Mj,\221\261j\227\0371\355\357\357\356\367\373\373\377K\222\035\255t\230\034\004\274;\373\271\314\035\027Zh\270\355\270^d\036\301\030\257`\004\016\300\342\344\344\344\242\206\325EGaM\254\220\2075uL\030_\022\360\204\226(\230\021\265\242\0104E\020}\237\037}V8`~\341\210\032\037\247\220\276b @\025\006?\231\213\013\223\226V\353;\033\031\306)_\324\\\220\372J\301\037\354\365\031<\357r8\204]<\006\317n\334\346m:\311\274\326\367\333y\223\277\032C3\0325\220?\010\t\253,wi\314\315\246\333\033#\307\r\241/%i\002\215T\266)\302\030\226)\306\006\006\001Z1\205\025\204R\207\307\304\361G\305~\217!>\243\303\345\316\247\222x\227z\013\212\207\261\341\200\227\257\205X\226=\222\300\364\n\370\251&\003\030\206\014`\336\276\353xw^\333\307\026\363=@\330\206\247\004\016\207\253\025\021\317!\373\254\200\255\212\263X\022\312 _\265\2134`\343\010sq\001\203\340\0305dZ`g.\213`\242\230\233e3\267c\215\270\343\210Y\255q\306\326\333V\333m\266\322\333m\266\332\264\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\265im\266\333m\266\333m\266\333j\322\333j\322\333m\266\333mZ[m\266\333m\266\333m\266\333m\266\333m\266\332\000\000\000\000\000\000\000\000\000\000\000\000\026\325\245\266\333m\266\333m\266\333m\266\325\245\266\333m\240\007\271\306*\000\000\000\000\000\001\364m\240\000\001-\266\255\266\325\266\333m\266\333m-Z[""m\266\333m\266\325Z[Km\266\333m\266\333m\266\333m\266\333m\266\333m\266\335fe\252\264\266\226\333m\266\333m\265im\266\333m\266\255\266\226\333m\266\333j\322\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\333m\266\357\005#\021\256\036[\010\214o@\357X4\020\010\312\327\222\311\3755\024\220`\300\376H2\000\002\005\370\277\232d\374\n[\010Q\310\032m\240\307\376\340\376\026$Q(1\2703\223\272\211\037\206\234Ons\213=g\227\205\327p\335\302^\233O\301\004\035\027\342n\325\266\351\370\227\247\035\331\364\374\343Y\223\211\260_\325\226\273f\253\327j\0101\304\343\\\\\270y\362\3042]\2601\247\351l\321QZ\350hdDD\010\014-\243W\251\367\251|?#-\t0\016\251\343p{\261lC\211f\334\306\333\224\225Z\021\200U\334UK&\304\246-@\022;\256\364\347\263-\263\314\227\007\005\315\016\005\225\303G\016K\233;\t\014\357\243F\253Q\007aE(\007\240\264\300)\361\312\n\275\027 !\255ZR*3\014F\227J\251w\315ETxn\333\n\314\000\246fd;\351\001\250\014\033\030\252\321:\022-Cu\025\364\233\260\327\271\355\035\361\323\366\017b+F\255\326\262\243\"\252\250\202\246q(\200\002`\304\272),\006(\000\311\213G\221\217\230cl\327P\245\235\020\272h\332&v\"v\215\t\0324\0329\340\004\013\277c\270\266\274\301\314\210\r0=\203GEV\010\026\027.\036\230vY#\231 4\002\006A\240C\032\026\360\036\2660\034xI\355\351\016\373\256\265\253*\222\200\370\023\277\300\321\330-\345\334\302 \370g\253\324\252/\253\351@\322`P\002\300\003(\240\rn\205\232\361\2565w+\201\354B/tC\201\024e&\302b1b;\022\014a\340\013x\003p\3450[ED\375\264\020\215\000\307\226\352{\254Sc\361\2172\047p\014\023\270\030w\023\364u { +\361s\337\232\214\024\0242\036 q\360\374\013\222\332\037\007\034|\036\261\206\010| u\216\010\363\242g\014\371\020\370\217\267\277\335\324\235\340>7\246\372\\ac\206>{\270p\210\302\357B\261\016mE>?\2112wN\242\355=Z\276\341\317]\271\370\371\335s\031\262\263\2223\036K\001\240\261\253\267n\033\023\0472\376\223idT\250\210\241a\266\344\252n\n\272\\\334P\367$\206\016!\345_\272\202\016\214\274~\037,3\023\004\320\033n\343\n3\341\272\\\234\023\037\236\256*\3346+hQV\226\334;\360\n\260\002\273\3438K5\004\307{5[\326\007\223\344|\024\362\003\311\367=\346\203\253x\345>~\243\214\261l\315\241\023\264S\275\026\017z\316\363hI [\t\225\206a\247\334\2703]b\nP\016.\334\216>8\343\363H\362\\\023\032]\314\316s\264\352\275\254\225\017e\3149\023\014\013Ie/\260oB?,\340\005\255\252c\345!\231\323oZ\315\004\311X\202T\254Ejtb\021\3506\347\313""\231\002F\024,\0300\006\002e\343\313]\302\2664\346\034d\247m\361\217e\201\350$=p\"\007\254\004\365\233\357\356\373\202\337V#}\275\235a3B\303M\270g\275\253\246\004\330\310\020%4\330BC\030B\351\022\204A\213\351\265]sF<\365\023\237\260\313e8\303\262\000W\312\306\035z\325\330\373h\025\250~\374\2453G\346A\006(\203X\335d\261\367\236k\343t\020\303\n\321\300H@\210\356V\222\235\215Q\362Y\300\t!\263$A\214\340\226\023h\226\347&\242\371f\0247\221\217A`\273\036K\312\r>\021\371\264\350\260j\r\373\216)\237\324w:\354\347\211 A\212\204\215&\262r\307\031\270M\320\2541\204/\314\203\000\265\240HJ\032\204\205\305Qp\037\237\305\266\316>Om\376[\332M&\234\206\333x\202\344\362\023\334\371yn\351:\001=\257\201\254<{k\033\371\353\305\240\353\001\361Q\212\370\253\017\027\237\360\355(\344#R\032\3715\325@\226\272\301\352\347\365`p\2740h\243\356\232\023\210\210p\207\302R\005\241\300~\322V\031\001\370\2336L\253\313V\360\322~\200\325\255\304\305\367\005\215\223l6\t\214\024\272*\350.\327\303\274\"\r\372\223/\264.t^\356\216\350\006\211\r%[\353\3074x4\006\263_l\344\357A\007G/\253\014\301\275\246\361\3035xh7\047xrhn\251\345-j\220\225\320\343\263ns\047\014lq\273#\033\300\313b[\035\235\234\243D#\350\205NR\331\207\323F\347\036\361>\243\005\261\361\2554o\270s\340\177\241\345\323\356PI\264}\370Z\213\365\270\200r\353\351\240\320\374\222Y\007\240\333\343:\334\340\301\236*\313\266\311\336@\257\350\340~0D\325\036\230\001\010w@\222\020\r\362\331\310\331$\300.\371\201\375uQ\367)\356>\255ga\241*\241k\rW8s\244\205\270\245\331\240yfH3\202\030Ft\206\317\310+\215bkj\352\257\316pW\276h6<3\260\253\214\0356>\224\020h\366\t\342\307\332\376\244\020dA\006(\203\331\216\213\026N<4\216\014\310\357\364Q\344e\233\037\350\376^\211U\2618vNi|\024\366FU*$\371\344\332\220K\252HW\226\347U\037)I\024\233Ht\251\314a\216\\\204\332Xv\372\323c\321\014\304\375\374\270\303\233]\260Y\014\311\247Mi\350\010\047\221=\215\314\236\317\241\202\010\254V\n,\001\025\213\026\014d\204a$\304^\000\271\304$\206\211\272\3649y\264Q\334\234\014\367\047\247e""\025uec\034s\027:\021;@`\235\242D\355O^\261v\357~\266\033/@\303\346>o\275\375\007\275*\013\000.\001\033\221\006\360/\025Z\300DBGR%J\224$\205\304\023*\325\361\256#\2115\2561\370]\315\031\034\003\335\334ww\370\352\004\232\236f>o6f[\273\260C1\244 \246>cf\373\212\306\212\205\374\027\324\304/EP\304\202\230\224\3442-\330\306\373\257s\326l3b\031\250\246\025u\364I\215\327L4\236xb\034J\235\002\221: \317\260\036\371\346UP~\002\226#\030\305k=\364\251\0273L\222\326e0XK\217T\037\255\210\225\017/\177\300\3461\0034\346=\310\2646\207\226F\202B2z\r>\351\356\231\234\320\025\007o\213i\013\267\367\237o\226d\302\331\275\331\263b\337y\205\367\005c*\336\352<\341\357\274\3337\000~}\000\350\270Y\021.\315 \032>\233\274vC\273\013KO\267\335\355t^\247\271\300`r\016\233~]\021\206\223Q13\340\253\363\267ID\204\221d\204\234g\316\326 ]\010Tl\357\3746]\205\340L3\312$nj\256S\275O\004\3572 \337\337\237\230\300\252\004\327X\206\n\250\376\017+8\343k\340\006T\222`2\200\306R\264\266\372}\\\033\204?\006\006u\r\267I\003\\\210\233\035G\301\006\374sb\230\047>\030\306\201\333,UE\235l\316l\035\031\\\007\250\352\032_\354\203\315\236\273.Lm\356j\2601\021\235\3052K\316\366p4\330\327;\031\031{r\347\006\273\343\352\335\352_j\312%=MXX\276\341\246\336\207\341\002}\251S\031\314\215^>\240_&\202IA\217\235P\221\014\375\010\214n\356l5\340\267\343>\032j\013\313Y\374\023~,uC\311\254\037;\231\212\367\353#F3\351\264\323z^\247\224\241\252\032\"\005\241\232\023\035\r6\212\350%\\\250\226X\000\356\201&\311I$t\321`\002\246\267X\253\313\016\352\320A\206\n,\240\031\232\021\200\022\256\323\317\350\217\257p\307\311\332m\364\220\004\302\230\027!\256\2344\002}\300\332\0227R\212mJ\357\022S\371E\220\3361\363\321\004Q\220|\321a\271\022y\001\210C\315\332\213\212q\341\317w@\257\202,\017\001\360\364t\355;)\344\206\315\225\253\240\254\327\226J\206#>\021\347\365\272m\007Z\313\253\324G\246\323\256M\330u\364J\253\r\262\234\020\365\363\311\256\307\010\275\334@5\r\255P\310\310t \344H\261-\215\213\rLr^\245\r\270\217\353GA\014\347}vvS\3276?\251\006""\nt\014\334\237(~>T\nsB\320\324\314CX\210\020\004\301x\276l\242\203BL\301Z\006\350\264\340\312\003Y\273\034\234\331\211\262\027\027=\262#\206\252t\244\224\217W\316\330!\000\272\340\r\301\356\364\371>\357\332\362\236\007@*b\346\tT\307A\204Y\002\047\021\222\221x\362\303}\215m\341\307H\215\241U\201\341\347\047?\263\316\375y\274\246\206J\335\363\016hIC\336Jqh\047\270\022\000F`\201\000F\034iv\243\325\001\214=KGz`>\016\201\302\022\031\206\253\341Qm\033\370\263\271\201\273zX\263\342\006\270\204\317#\271\325~X\265n\007\205jq\314\001K\306\205\214\316\013x[\311\032\010Ha\352(^\246\301]\047\006Z\302{\342!\240\232\304\020\022\350\000\252\347\374XA,\242\023\001\225\003e\241\300]cAfX\326\000\255\035\027\035\370j\304\375_\247\2068\031\263\307\210\246\231{\345\223\332v5\234%\223\333>\177\302F\002,E`EQH\204\361\016\275\362\372\014\273B\213\323\230\317\315\301\211\177\217\315\206\177=\227\341\353\224f\216\016\3543I\344\t\372#\001H\007,\211=C\t*\270\021\200\260\360\020\304\014\206C#y\010&\035\246%\272d\001h\313\2420\311<9\234j\200\007\356\330[x\302\376\027\323\035\326\227\335xX=(\276\261\010\247\254\036\\\207\325Q~P\307\227\253\246\264\244\332~\320\265\216\355>\025\226&h.%\314\270\307E\252z\024\013|*Kam#:\357\020CpK\323n\222\304\342\340\207\0258S\367 \262\007*=\204\014\331\352\320\321\371WH\201\324\241\020\352R}\033\027\226j\017\177M\336\236\354\021\242t\2052\206O\\R\314\017S\375H\251\354:\200\027\243\250\351\365;l\317qpqs\r\306P\020Y\0032%2\222\310\205m d\255\200\312\332\262x\035?U\022\036\014\227\033\202\2132Y\257\265%s\013\314s\002\2171\314\006d\222\0260-\244\030\302D\221(\265ebg\016\267o\014\020\333\254\310\035\245\352f\2072\241\320\211\020\350\022\035\006w7?)V\256\342\022O2\353\256\367[\325\232m\036\014\317\344~\362\250\216\327`\330\302\232\370q[\347\315|\277\250c\005\\P1!\2010\310\374\250\323:\320:\372\336\260z\336\276\265:\304z\3032\n\001r\305\047\216\251y\212\320\027C\2647\243\034U\222\352I\027\300\006\021|\030u\035k\323\316\247ps\257 q\361\202p/\021=\223\200\205o\034O\212Ba""\361\255\302\006\370\261\r\361!\276n\007i\351\364\212zC|\337]\377\017\340\347\243\202\271\352\324p\372l[|\307\322\261|}\266x\020\036%H\207\020\223\210\332A\300\305`I\033XRF\312[!6\237\362e%]\367\264\003\352\301\005X\224A\\\342\317m\345\003\200\022)\300\014\340\337\020\376n\256\020\350\016\007\252\370\233\266\315\223gU\027\230X\337\337\255\343\205\275\220\214\3177\000\233\340\221w\320\216\373\276\205J\202\257R\207\362\337\270\266Jp=\345]\252\243=S\2120d\230d\314\266\244\246\222\027\002\244^\000#\300\3776\373\313\350,\364\006\364\330Ci\266l7\2619ii\332}\277\307\377\037\311}\017\325\255@\301\017\302\377\241\305M\231\272\006\222(\261]\267\303m\255M\267\262c.\277\247\271\232 \016m\253\262p\361\306\333n\361\017\310\217\323\007\236O\346\257\341\205\260?\177f_\030_\003a\213\225\244\324x\302C\003\335\305n>k\354kM\371\245?FT\031`\223\257\001no\272X\251}\305\034Y\253\371\377\341\006\003\363\037\324E\373QS\353\210\010EH\t\025B.5\342\220\037\000@\204E!\026\010\241\327\"}\244QSWS\313>\313\324\005\202xF\317m\2532?\340\347R\376\302Z,`_\031\001a\030\353\334\324=\002\261\237W\372n\036\352\221DL\245T\306b\025\to\037\361l\333\357\3514\235\373\272`%\204\013\3427Lb\310\200\022T\t\345\207X\237\232[\331\212\037$>\317\323kb*>u\017\231\326\230\317l\375E\323)GY\227\363\022Be\005\372D7\020\2546t#?W\213\232M\2771\373_E\227\351\3750\375\326p\206&\371\255:5\230\030\3121Z\322w_fw\220^\n\373TI\001dQ?\264$\0364\376\252\037\375k@\311Af\036\244/\226\201>\347\227\004W\373\036~c\321\254P\322Q.\202\3724!x\250\307\211}\260\025\034/\223\273J\016H\rAO\240\342\367\225\034\000M;q\047\032\274\022\270\310\253k\341\200\223\221.\30659\tX\321f\"\246h\264e\274\267\323\306\322\354\365\224\300\360^\2007\302\302\222\211\336\302\373\027Q\335/\242\307\303\310\351B\271\274\334(\346\360\006\233\246\246S\030*?uL\231\202\246\365\224\320\025\036\375\204\313F\\L\242\2432\266\311\365<\276g\361\307\372\363\247hB\020\000K^\364\007\234\226[\354\034\361L\235\013\0236\026\3712d\000\\\267|^\247{[\241\320\3777t\332\303\243T]\324\300""\352p\201\302\354H\245b\313=H(\026\270TsXTs\023F\031D\347\375\306o\212\232\261RN\374*\310\177\205\253\005\324*5\237\r{\361\350\363\372\035/\253@\235#S\037\260D\324\230\345\257\243*\231=\213\214\232\300\357PXU\313\007@K_\367\006\247\337\253\3255/\327\2227\352\375v\275\311\257\263^\023y\222d\206\312\031\264.\271\314)M\n\214\324\326\3306>\364G\010\004\2221\204\222D\221bj\220Tu\313\304\224\343\210X\372\361Or\224\2538e\245\302\261R\376\237\335\253\255\261\374\323\352\205{\014\307\205w\322)\205n\n\216[\303.K\356\354\271}\313\\\021U.(M\325\2310\274\260\213N\336\247\024\3305\275\334\346\027\276\n.\317\266\244\020\313\014Kg\301\310\0311\316\233\331A-\240\320T\004\303F\300@hR\244`\212\303\233\257\271A\333+\371\256\302\353\341\376)\306U\\*7\325\316p\333\255\274\205\004B\364\025\242*3[\235\263\264m\330>0\23782\375\257\026\315\352\211*m\260\334\025\034h\270&\nf\025\034v\257/P\236\357\037Z\0046\203d\372\220\361\005F\266\353s\216&\345a;8V\206\201Y?\276k\213\202\366\250\"\276\371\361\350\271\341\360oPn\245\340z\244$\202\034\321L}S\r\315\374\3663\334C\177\tH\0169A( @\002\360\240M\014\211quK\340d\005\315\333\047k|Tm\3706o\331\206pK\214G\222\246{\333\303\003t\233\371e\301~\027\206P\312%7B)\257\233\340\372\352\337\016\335\227}7|N2\341\226\362\354\230\230\260\316\345\004\2667\024*8\340\357\212Z\355]\0006`l\252\244\206\220:\346\345\316ybm\233\265\273\236\263\230\030\211iF\350\236\367\207\253\3026\242V\341M\340l}\250cv\316\341\275\273\274%\300d4\n\306\345\311m}w\260vw|\"\217\030\220\332\345)\275\226\330c\212\356\027\031\252\222\244.\354\003l\252k\206\306\357\031\233\032\356\355{\266\303 \004\225ewb-\335\201J(\217\216\205\377\036\346\217r\250\352\202l\024\356\006\276 \234\204\332\266\306B\261L\304va~@/!r\231\234He\324\025\325Au\266\005F\346\203Xj\360\255C[\216\030\343\255vG\336c\357\n\r\320o\206`O\312\246l\2046\334tP\321;\0360\250\352\210\255\215Hl\244?\310k\000\277c\013&$\037{\002\341Q\3316\262\245\317\274k\037\205Q\243CW\271F\311\t\254(\206\300\250\305P\360G\275>\014\226\264\3042\021""\265\331\033\227\273\227p3\227\273{[\373\275\3258c\234 M\245\007\367\221\177-\335\3300%\261\337\243p2\020L\362\331\333\223SpM\236\356\307\207\275\266\002g\014B\342\006@\177\364\302\3438M\341/\320P\315\224\320\006\347@U\266xh\007\300$>XM\246\244\336\n6M\225-;\204\277z|&YF\020\365D0\216\366b\255Y\006f&a7s\212l\356\\\"\367\340\022I\010HB@\221ac\342\243o\037\340wL\227\341\017\213\000m\225\014\211Ns\325\3314\0056\310=\251\345\t6\241^\277\253}\2253\202y\245\330g\303\r\353\326\257\33736EI\242Cs`\220\330\321SqH\366v\305?Al\003\366\225\361d\251\273\360z\246\206m\360ne\342[\047\002\224!\243va4O[\203\337<57\224\221N\001Q\337\260^\205\010g\274G}B\327\212o\236\210:\3537\017z\203ql\324.\252a\331R\377%\332bU\316*\355R\234\001\270q\0005`=Pj\220\352K\001\325\205\014\354\326\336\0145\207\376IX)W\256\351a\375\235\021\"\232\340\366\3515\340\232\210k\323\331\307]\326\273)\210\323\017\317\257\205\367\345Ip\027\306R`\003\205\003\241\210\253u\320d{~\200\352\352)N\277y\324\265\302\023b\253\337\331\017|\312\233P0\3702\337a\013\314\271P\252\033:\023A\226\376\t\371\020\325\244\332\331\326hK&\276\275[\033\313\025Q\247\026\335\225/\270,\244R\366\216\344\366@\350\367\016\232u\004.{w\027\352`\245\375\252\n\240\215P\nQln\333n\2416i\247\010\231}\247UH=0\325R\216\217R\340\260^\024\300\255S\252\224\3347\t\001\327\262J\034a\257\177]\351u\036\360\226\245$uIE\024um\371\\\002\344\274R-\301\033\304\235\257\203\267\334\350(y\306\273:\275X\r\024B\325u6\3265Z\274.R-:\324L\005.\327\370z\177h\364N\240\225Ld\225\323\016\251\325\265\305\313\006\370\227\303UO\177\274\036A\320Ny\322Rz\204\272B\341\232\227\330{\032\206\241\216$o\006%\020:\271\027\034\357G\234F\251\047:E\267\273kj\032\206\005\220\200\\GT\301\036\321\351zaTs\223\371Z\323\270\242\372\204}\313\0278\251-b\251O$9\2478\"Q\3555U\320\367\003\324!{\317c\20107\024\345\277\223\323\374\307=\366+\322\275\276\233[\236\302\234RQ\013\360\\\r\266\232\217\221\351\363{\010\363{~\223\205\252\260\256q\210\224b\003\016pL\013\221\254\224\246\226\327\244r\271%\217\223P\323""\267n`\211\t\351\202eo\276\345\256u\016Y\227\221\344\232g+\300\367\265\375\215\027\333\022G\242\030G\244\336NKQ\340jlC1\255=-\262\021\343\304\335\272\366#\316\206\247\224r\241\355\360i\235\217_\000z\342s\313\313$\307\033\047\307\205i\234\343\255\246\203t\372\304\210O\022\000\031\356\017\320\337g\240\325\365\370\036\006\344\"!HzF2\022\311\315<\237HB<\265\261\246Y\235\252g\037?$\344\237\223\232o0pK\201\346\010N\211\202Wa\244\367.j\263\255\037\3321*PB\201\300\207w\374\216,m\244[^\264 \336p(\206\203B|\313\245\346\200\373h\367\374\303f\222p\215@\352\277\021\370\304?\336*x\3367<\n\252!\322\247\303\375|\260\326.\346q6\266\305\005\367\021)\234\334\177\315/\337\251\364\037D\236\007\351\014\247\347\315\345\354\374~\216\375\342/\314\226\330\037+/\225}\244)+\003\0177\354\364Os\307\340OpJ\235p\363bW[\343\2300\226\377\254x8;\204\365\304\3541H\3762_rKyV\254\036O\\\353u\374\361\0474CY{\211M\305_\013\302\304\253\020\370~-\231\3515:\342\236\302\236\360\330JK\024%\315\025W\373V=\017g\344\017\332\247HKs\022\346\301qH\267QU\177\313c\304\367\335:\250W\256\262\201\370@\210X\202\227E.*\326\226\243\370\363;\257\\\032\241=x\005\210)b=k\366-\356\363\211\321\207\033\214\205)\305~eJ\002EK\211\206\025P\332?\263\364y\332A\1770\047\323J\005\210\377\020\237\010\207\234A\242\001\347\347F\320\371\241=\325\",\"\271\300\023\375\223\025\036\314Q\017\225@.Q\017\264P:b\246\232\243\337\025>U@\373\004O0S\377\240_\342A;\224OP!\310\252q(\370\240\277\300D\374\010\277@\201\317U\323A\371\305_Y\004\322D=\005\003\344\021\366\305\363\020<\265<\240|\2058\342\036\202\034-\235\312+\237+j\333\264y2\362\376\214\021o\215\223\035\352\272\323\003&C\034.\224@\307\013\255\211\014\207FZ5(\364e\205\242$\031\322\224$\204\245\032\221\021\021\020g\021\014\314\030\324.76\343\023\2168\334!\226\357\255\270\327\330\340\341\307\200\243$&\344\316,\223S\237\047\233\343^2\000Rv\355""\337;\332\335vR\207\030f\227d\307m\234\305\335*e/\0270Q\277.\256h\266\343\023)P`\2623\244\326\344a\023\016l\201`\201\021\002\014&H\035\201\354\020\310l\006\333\376\223\223m\267\264\3569\233k1sw&f\215\347-M].\027\363ll\362r\322\252\363\225\272\337/;\373z\330\222\023\341\353\337\251\327ns\245\321\323LS\253&\321$7I\255PZ\233\245t\324(\312\213\036i\2565\227m\323\2166\341\337~8\314\324\233!\267\033\\\204\274T\313\306\333\215\340\324\354\037\360\236\217\3332C\005\366l\317\357k\001\236\325*\047\346\325\303d\254\312\331E\257\206\026)\205+\321\243\215N\353F/zgw~\036D\335\363\376?\301\307=\236A\374\264\363\203\330{\255\315\263<\207pw\205\360\231&\010\221*K2\342aJ\216&D\024\304\024\271\231\225\264\242%\264Adv\234\275\275!y\353ZY\333\234\033\340\360\340\315\234]\023Z\324\327\020\326\345\226J\027)B\230L\231\323\342e\336\355\266\335\357\306\3077\306B\340\031\000enfa\224\326\252\"\256\265\206d`\314\314/<^zm\255\353\307\006p\316\030\222B\047|\332\316\\sG\027~6\340\344\201]\363.\306;\312I\t\252I\t@\341\213\t,\322a\2651\"!i\002\002I#p\250\366X\346\022\310/\300S\357\3075f\317\3016\006\345r\207/S\372*\270\306\322\330\047\316\246\323\334\375\247Pc\336\346b\336\303\206l\370\034\244\230\t\301\312\340O\230\366\270\376\037\351\341\370\212[\306\t\031$j\251$#\n*\212\204m\005\013lb)\021\212\"\252\252\261U\213\"\3662H\036\350rP\376\336\3047}\1776s\316\331\231\207\252\246\265\230\212\356r\301\230\374C\244*\030\214\032 \337\347\242\234\235G\316b\346\014\316C=\203\234\024\275K\326\340nC2\231\034S\020\305\307\023\023\023\023\023\022V\010\376\302/\243\345qk\002\267\347\375\217\255\362Q\351\000\261\243\266\201\002\\8\275(+\002\004\017b\026\273%\032K\2263$2i9\261\267#!\205\367\323\210Pa\302NCo)\363\274\303\354\217h\366\217h\366\214cP@r\021\017cE\356\335\327Xt7R8\245\031\014\225\331x\343\204\341\3400\250\334\333\0166\326^\0360\315\363n1\265\332\\\321$\232\031\234f\324\213\275\233\316\2356#\207\033\351\263\347sx\232\351\016\221\350\341\234]k}n\357\375\rf\322\354t\343l\274\323&\250\000\260\377*\023\252I""\327&\243\276\2039V\346d\325w9\315D&\265\047\227\324\342t\351\374\235W\241\326\010\036\364\003\254\007\347C\344\037\004B\300\226JU\241\n\\\310C\002\031%\200\024\205&\030\0040\223\003\014\t1B\303k*Y[-\213\n\331\033%*R\205%\254+al\005\254\200Y[\005\"\024!If\3006F\315\254\251dl4\211H\024\322\205+Cb\300\005\205\260\320!@\024\264\253B\322P\201B\322Z\3106$\3032I2\001\201\230\0202C\002\300\013\ta\230\002Y\0134\003@\321k*YX\203\001\263k\010\331&B\204\013\000\241B\005\ta\231!0\223\n\004\242\020\006 U\000\320\0054\203J\320P\255\001A\231 \031\003\013\010R\024\314\222L\003\002\302\024\205\244\013\002\224\204\260/\267\201&BaI\nKI\n\005(\006\225\243\206\302\026\022\324\211BRil\td\263\362\262\255\200\261\314,\013`\362\206\205(\013\270\340\331\002\312i+J\024\205\336\202\026@\262\331\346(X\022\310X\346+e[\tc\230\211dl\205\216b\215\205,\205\277r\005\204,\245\271h\226P\262\331\375\205\002\300\226[<+\307\2759\233Q\323\013\240\324\203$1\207\271\252\013Y\356\246\311\211\262\"c\026c\272\244\276 ZU\256\260]/\"D\227B\216\034\346\3173\223\305\2672s&\237\313^\314O\031\202\253\014\314\314\323\240w\324\337S~\226\376\206\372\276_\250\371 >\026,\370\272\214\272\036\357\205\216\370\312\204\227_6k\r\367\311\351\235\246g\225\030\374Z\245,\224\2728\366/\335\264\376\026\311\261f\226J\220\305\377\342\356H\247\n\022\t\200\301\\ "; - PyObject *data = __Pyx_DecompressString(cstring, 20704, 2); + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20442 bytes) */ +static const char cstring[] = "BZh91AY&SY\204\277\032T\000 %\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`d\277z+s\347\226\000(\000\003\217\005\200\000\235\t\2654;y5Cl\310\001\317\000[\221\217F\201\323\333W\003\323]J(\273HNL\000\007\327T\353\243\357z\275\363\357\266\307\337}\347\\\251\364ah}G\275\353\310\211\276\334|C\020s\354\033\354\361\317\2468\210\363\307}{\357\260\373\267\226\000\000\000\t\352\363\357\236K\351\334\337^\270\362\252\274m\361\304\002\212\001@7\271\316\363\266\336\235\275\336\367\273\234\236\367v\361\271\357\200\003\332N\276g\335\263\246\222\345\355\271\333^{7m\335\235\354\256s\226\367q\333\316\356\367\251\266\365\347\0013\273\313\256\362\025J\256\262\217N1\332I\244(\240\000\000\000BAJ.\r\214[\243Ux\346\264\013\355\247\336\316\323\257^\370\004T\371\227\302I\010\204\323\t\200\000\021\201\032L\232\233d\032\r&@M#$\323LM\342SL54\014M\250\3312\203\321\036\246\201\246\202h&\200\220\022\r&\224\375452\232=O)\342\237\237\252\n\217\324A\240\001\240i\241\352\031\006\206\2004\0324=@\rS\336\232\244\204h#I\243\"h5?Jz@x\232\230F\000\232hm@\030\001\030 \323F\2001\030&\023C\004\232I\010 \202d\230\3226L\200\324\236F\202aM\352\236MF\215\250\r\006\324\001\246\207\2504\320hd2\003F\200\010\224@\010ji4\047\250\324\325<\325=\252x\321\251\262\2313A<\236\"\017By\243C\"TyO\024?L\021Oh\311\251=\047\345F\311\275\025?T\021$\202\024\311\240\031\250\323L2\t0i\223ML#SM\352\0234i)\266\2244=OOT\315OH\375M&\236(\366\251\232C\324\320\311\241\377\340EE:\274\017\024\344\207\203\313\347\261t\270\362\3238\353\033\252\212\234\326\272\027\341RCa\023v\233j\315:\3373{\367\260\347\224\335*\024\344\2051\353\033\t\256v\354\025\010\326\246\273h\337u\340\213\313\340^\272\250k\304E\221\001\221D\250\rDA\250\n\010H\2020\202\n\004\202\047\347*\224\022\212\224\242F\000\244\202\002\310@j\330\020\013\020\001\031 \024\245\220\006*\302\010\222\245\010\020\252\024*\250QKDE\010/\241|\377\271\276t\361\337P\337_\322/\366\0326\017\333\365\021\375.%I\034\362\007\325!\276\217\254\372\343\001f""\302\217\221kU*\251(\327\260\243\200\300T\275\222V\316\354\022\324Z\244\250\020\365\244\202+e\201E\224\204\245VEB\215\"D\207P\300T\270$\212\330l\276\351kc\022\331\361\324\240a\235\362e[0\377\177\353\342\215?\260Q\037\367\000\376\342X\201\342Pn\020\371F\353\212\370\214\032\216\030Q\nR\224\203p^2\022\032\323&4\200\034\206\004\3236jk$\220\2329oJ\307T\340,$0C\000\326n\023@S\014\305\342\350\316,\262\270\r\344Q\013.\n\"\231\006\355\246\375\247L\370\345\207F\342\227x\270q\276\001\375\220\007\347\362\365\317\226\004\214FV\303\365\202\017e\275e\205\3600\306\366\026\037\333\003j \274\243cl\037\327\265\202\242c\335\350\327M\277\270$\242S#\220\241`\212\353\375\324\340\204\017\271\255\027%dqp\277\336\034\014(\027\021\027\277\217)k\017\314\007\"\232\215g\373\375\"\212\331\302\222DSU\327\374\t\330Z\311\325\202\200\302\021P\245\004\327\374\"\242R\311\321M\033\"\201A\003\235\317\354\n\211\251\326\327DP\256\036\201\235X\002\030\246\237\263B:\234\220\342\340\336\210\256\002\355\376 9\032X\326\340eM\026\0255\377\032t3\256\007$\006\227K\310\257\371\022\270:\021\316\216\003\344\323o\362\312S}\265p7\034e\035\032\204ib\346\254?i+q\231`\232\351\310\315\021\355{\206\006\327_\363\001w\255\306p4\034\203`.\343@+\200H\037\347\255\235S9\034\344\265Bj\224\245l\272\"\203\376\213\010\315\331\002\354\026\333\253X0\326\332\037\333\026\027\314\2026\\p5{\"\214\336\3441\323\375. b\300.\021O\033\331\006\242\302AS\213uZ\001\252\020\250\270\0342\250\250\310\217\342\237\313\306.lwP\230\233\331\262\247\006!S\020\331\023\340O\037\034\010q\035\006pJN\205\007\331\377jJjm\322L\212q\300]\222\314\030H\032\0160\260c\375\333\346\246\010\004\177\276,\0055\n\010\336\265J\314\361\245\317\374\010(\266\002\34528\316\201\200\254\212\346\352\240\213\372\376\340\001\260\226\274\225\014\213\270!\342\221\276X\201{5{\240[\352\352-\301\017aA;\336Y\030\247\374Q\223Z\255\370\006D\211\306Z\314\216?\345W\310*\273\214,\211\023\200E\325~\317\374\354\365\36668\005ckW\047\225P\244U\265\002\201\223{\010O\372`p\244\217\3354\033D\352\226@""\302^*\314@R<\277\353\344\303\3016\325r\230d\270\256\203`\266(\360\251\237\302\235%N\021[D\323\014,\017\375\201\3515\242\205\270d\216p\026\342\210\260\276\346\177y#\301*E06qA\240U\340\377\335\017QE\026a\002\243\2121\377\300^\300N\363\242=\303\t\245\353W\"\027\377(\010\354$\215\255{\306\202\243B\002\343\353\0007\r6\313\215\021\216\035\204\n\376t\350\250\344Rud\263\006\327J\201\362\200y\222\036\243W\0034\255I\261\021\377\244Q\265z\3212\300M1_\323\003\245\021:\364\027\001\223#\2137\343\032\221\026\035>\35207qij\343\270U\273\364\001!n4\020)\250\023\233\047t\315V\204\005\032\272\365\224y\312\031j\216\350\225!\355\315UR\343]\205/\257p0~\031\035%\256\006\177A\210\233\365\220\252*\201\307qB \213\226\221\310\252c\276%\233\027W\3548y\014\302\311\335@\255\257q\204\240\274-J\321@\206\276\311\334\336\215\212*J\356;\224\265\344\t\275\007M\306\204\016\342\202\232\350\357\243\264F9A\337\224\256\240\324]\261A\251\201\247td\347KXz\270\321\304s\t/\277\245\216O6\301#\300<\027\202^\007\232f\326\234\025\371_\343\337\361g\313 \305\216\356\212\247Eh\210ot\334\213Vl\234\332\363\363\347\231\303\246Ugs\360R\356\267\335c\254\346\273rW\037ECr\0346x\271\360\320\253\313\201\334u\354].g\344\245\253Q\247W\005\226\304$\035\250K\275\010\357@\033\300#u!aT\350\025\371\025<\302\274\250\007\225\020\343A\343T\362\nx\324<`\007B\201\344U\346\020:\024yQ|\242\007B\257@\t\234\007\266\003\320\203\312\003\342D< \207\200\027\276\003\320\003\351\024\350A\342\025\341\0208Q=\002\276\370\2478\207(\217*\217(\247 \247 \017 \2078\047 \047B\2572/\244S\231\003\241 \346@s\0025$\227J\026\264#\240A\322\220k\004t\364ttx\270\333\340\374\177%\205\365\033r\255\317\326\020S\226\236\351\010S\241^\324n\240\247d\251\356\300\350\230\360\031\\\370&\032\336\0164\n\231\274|}\300\324\021\200\375\303l\021\303\\\035s\3357IK\217s\264\371H\034\215\025\252\r)\257t\016\235T\202E\266\265!\273\240e\024\314\300\013\334*\2169[\337\212L\036\364\034\013\304\340[A\2131\362\246\324(k\257|:\205\306\206\0052\364\356\236\322\223^\047z\3476\212\253\367I""\310\346\341x\323\251@\371\2011\201_\202Hc\275F\024Ykn\364=\301\342*H\232\305\000\247q9\343\025\275f]b\211G\353\276h!\265\241n&\264\357\337}\215gE\256\263\361\003\235\3525\225\325e;\210\3409\020\334@\203\3359\243\323\211\3422\265\366\367E\035\254\010\214o\326\324j\216\340u\233Q\251~\244yw\n<\0054\251\305\t\035\300>)\230J\356u]k\007\272\016sK\315\305\345J|`s\212\250\235\260\270e\222{\216\004\346\324\265\000s\367\307\002kU\355\334S\233\034U[\272S\201\222v/\334\003\270\267g\356\200\362\233\351\231\356\006\340i\326\303\274qR\365\276\303\275U\3628t\211\047\274\323A\025\343H\331r\375\373\357@f\231\351\355A#\276\243\211Q\303\246\303F\254\207\216\374\305\241\271\371\273\363\210V\374I\263\236\343#\226\256\217\337b\017\214\333B\235\302\345\203*S\345\330\221L\361\336\202\212x\032\216\342\364\321\323\337\252\365\367dV\254\274\247\315]\366\343\335\252\334\376]\227}\216 \021\307\31228\333\201=\351\310\215\023\354}`\017\255>\261\365\374\3359y\360g\245\327\323\301o\246\217\036*|\371\270%s\366L\342\213\216\367\033\370\263n\361\361\341\343\257K%\256,\262unJ\277\237\014E\376\236\323\202s\3564/\317\346\251\035\373\315\305\263k\267&\344\3555/\355oq\365\365d\250\201D\010rA\260\023\354\211\270^\262\207U]Q\363\324:\210\371\312\361\010j\217LT\364\007X\226\301*\000\027\322[\004\266\t^\000\300\221\261\013b\r\200\265\teB\326\205\245\001\214\026\221,\"\014(\016P\016Q.P9Pq\210\343\003\210G\022\016D\034HZ\005\332\007bK\230Gh\215\210\330\006\220\326\006\264\215h5\245\324\203\240F\264\035H:R5\245\324\226\276\257a>p\371\331\005D\214AV\020UI\020\001\221T\010I\002I$\004C\347\270\277>\034\034gZ\223\255%\332\365\252c\326+Q\277\324\367\034}N4\037P`~\243w\270\372\204\262\33364\372>\227\266i\364\214\275\320S\350\035\273\010\266(\022\344\317!\260i\244(l\212i.-\221\033\034G/a\"\\\250D4\315\233\"v\307\363\365cMfm\217\242\342\237L\327z_\351\037@\227\032;|\377?\317\307\322\337B.\376\355\233\007\275\274\033\346\277O^\271\032\346\272GOg\\\307u\033]\216\207[\245\366M\212/!\016\236\275r\233O3sG\325\340\200\357Gz=""\007\241z\217E\351\3748\254:\226\277\047\233\305\307\307\315\216W\243gg\243nv\307\366\366l\2333\223\237\263\242\235\035\235\272\250 \336\234\013\252\352:\206\341\334\273Sbh\006\201\370\223\254\365G\211\352\217Xl%U\026\221X\254\025\203\251\035\253\t\332\273\021l;\021\260\331\261v\206\300\314u\235!\327\260\355\3544v\234f\316\304r-\206\315}\213\254\3556\032\273\273\227\225R\370@It-Z\215/\177\223W?)\313#W\222\r\305\342\361\370\274^>\034\371\277\370\360\027i\340\036\013\301k\257W\266\257\036\256\316x\276 \222\026\356\227\211wK\267\257)\327\213\226\257^\275z\365\353\336\240I+\253\316#\316| WK@h\r\016\203@`^\346\037o\322D\221Add\022BA$\024VE\025\220Y$dE\002A\021\031\021b\250((*\214I\024\212E\213\010*\244PQUDY\010AT\212\022H,\204PE\375\231\003\263$\001\313b\2333>\240\246 \223\222\n\216&\315\316a\232\006{\224\320\r\0014\016\356\253\375\377G\311\017\277\367\272\366~\303\300\361\307\324\247T\306c\354\345\377%\371\214\342.|\371\315}\237\261L\021S\264F) \250\304#\020\013\256\361\317\034\\\003\216\340\275\201\306\274c\232\207\223\021dd\025\324H\2522\250\376}\261A\310\216D\006.\252\246\256\322\232\013`[\242c\344\2444\030d9\267 \227\220TC]\r\020]u/\274\275\225\320\360\234\016\304P\320\270\276H*\216\375\216\231Z\242\027\243\235\352d@\222\004a\030\302K\005F\n\215.t\022\374\213.\002\354\367\356\001\221!\001\315iB\227\346\227\227\373T\243\316$T\021ib\034\034\002\311\016\317\037\207\273\276\367\352O\030\304\337\265MSV\265STK\020R\210\245E\tT\204b\241 b-\302\346\246J\344(\344\t\2750\301\220$\\`\336]\202\337+!4\311\241\222dA\204\221dD\252\225\020\275\253yo\023\177\026`\250\272\267\020\337\226\271Me\000\222\310o!\310\345\274\r\034h6aw\312\266\332\010\\\333zm\277\3472n\316;\310w\236\027\332\340P\34088(Gb\212\342\3544\333\233r\027\350&[J\221\210l\201 [\251\236\312\205\333\304\341\211\220\314\033m%\nF;\224\301w\206\240\352\233\334\003$\202+\217\271\223J\224\r\220\332&\216\200\272h\241i\373\263\0217\230\200\345nB\016NH\230\355Gi\302\267\353\240\206evR\232\322\206\200:\n\216\233\263\332\005""\311va\232\031\331\221Ih\270\241\210\206\324P\332\213\230f\033_\341\246\\\032l&\3016\003\2606\001\261\035\2004\3203123\316*\216`\346)\220\253e\352\203\357\336_J^\016\256\006\30442\320us\350\351\034\335**:#\226Y\001\270\014\307+\304M\334\020\240 b\3567\010\256Y\030\216!\304~\242;\311\251\245N\007`\250\354Q\3232\300\3170\315D2\025\027\370\204\221M\225\264\263!\001\211$a\366\342\2763\236\303\260\031\361\230\342h\327\334\365>I\033\235\022\365\217\203\377<_\034\270\377C\210Ky\374\377\237\363\342\223d@\216&R\375!\372\251A\0210\n~.\177\221\260`\211\000\347b\254?\260!D\366Q\313lB\244\270\375Y\032G\354@\\\013\322\203\362\263`\226Gt\263\244\245!\204\003\343\032\332F\177\255\353aWP/\311|\203\213\031\374\231\264\232U\262\236\"C\363\247\223f\307,\243>*6\202\264:k\r\373E\002\325S\336az\245\215\177Ya\257\253|\030\241A\215U\177t:(<-\263\273\274\r\n\214i\373\321\025\363\226\035\013\216\027\\@\242\303\2567_\347C\252\323o\206\243_\315\374\271\246s\333t\257\364\365\347}\212a\313}:D>\335\205\362\345\013\207\264\300\037\375\032\215\274C\323\366v\032\307\000\372\274\246~\335\277_\323n\000\320\246\017\271\322\241\033\306\334D}\251\323\3120\nbxe\272\376z|d\016\214\362\273\351\346t\245\322\256\3728\247\351*\202\300|w\251q\342\267h,\275\237q\204\322C\311\305\346\032T{Z\355]\005\312\035,!D<>\031\224\261\301\037\232\037\306\177\202\211\253\233\255\307A\310#K K\352\342\026\275C\014\314\3025\366s\364\004HI\"b:\351\220\246PEn[\307\021\305\023\252\207\244\346g\203y\200H\3555H\234hf\271\006D\302\312N7\345p\343T\334\333\205\303\"\253\215\251kf\364\331\326\333\023\211\r\0326@\3435M!\3050\205\362\332\335%%\366]\240\n\230.i\272\031\200)p\002\344\271\006%\200*}S\324\311a3\004\317\342\370\203\213\003aa@\341\212\032\021r\3653h\031\271\210\340\230\227\352Eu]L\3015N\002\327\356\351\366z\263\201\347\237\272\027-\326=\024\351\212H\217\336\255\330\250\017\252P\004\252\225J\240\360\373=bIR\246\r6h\221n_\322\2468\265,\024\311\205\240V\210\005\324\217\343\301\362uZ\240\250\2001hp\307\007\007l\213\200\tV\254\221V""\260\310\252{1\252V\325r\260\364\226\277\356\356\210u\315\023F\271\256*\222\004\215\210\214D\266\306\305\267\366jK\341\300\325\253VJ\230\025QT\337~\034O\256\025\305\201+\002\014\005\221.\305\337D\246\341\326)\272\016\260k\367\332\007\371\177\007\341\331\356=\322cq\345s\211qo\217\335\365\354\221\265\017\207un\233\240\260\027\202\376\352y\201\006\002\370\213\342E\360\314%x\312\n\336\225u\r9\0069\276\206\315\203\243\345\030\013\211$\\\243O\270\202\3644S?\265\262\207\310\251\302\246\324,\304\344N\372\351#\367\322\016{\327S_m\343\373\374\\{\"\341\267\337p\266\256Do\\\022B\270\267m\226\3229zn\211![\r\344\225\302\332?\220\227x|H`\032\270\324\007|\377#]\371j\250\313^\303\314\\w\245^k6Qc3\026R\256\222\026[\n\025\312\347\254\310\027\367q8\361\317\362l\177\252\345\264\305\333j\022\213o>\355\211Q\271|\203=\231\2072\232}\371Mz\002\215\361\240@\232(\027\206y\270\357dnD\t\r\234\275x,\232\206/\002\345\277z\005\342\361\220\257\305aV\236\036\231\313\232Y9\004\304\351\204\314%\305xa\226o\215}\014\014\300\361C\350a\3423u\236\226\252\252\252\253\354{\217\213\305\377y\341\024\2777\347A|H\261\017\224H\036\332x\306\263a\367\362!\264\241\266|\370\252\031\376p\005\"\010\252J\020\354\014\010\305\226\035\205\007\366\317\341\343\360?\204I_\330\t\343\047\027\047\357N\325\324?P\256\030\211\020\354X\227]C\326\021\206j\217\354pC!\254\247-\2545\316\230\3038\263\370y\020z\371x\375o\315\3049\363\262]\254\345\340\265m\272t\342\275\235\347\004;\047\373\364~\251\017\342\010n&\242TJ\007\300\236\007\342\023f\226\211\262\204\"\320\377\274]\272i\t\025UUUu\204\207hA\233h\352C\372\006\335\236\022I\354\220\344\023D;\010s!\204\023\231\305)iKJZR\322\226\224\264\245\245-\360\355\017\027\361S\363B\036\317\213!\266\324\332C\304*\253$\222I?\345\256\320H\216k\270N17)\247\016i\263\245E\245\224\017d\010r\346C\3022_%\350\020\266L\266Kl\226\331-\262[d\266\311m\222\336\322\034\271C\237Zr\330\202C\221\016\300\343hq\3056\334\341\000=\202\034]\367UUxvqZC\270\207\262xp\204C\013\222\375(V%wP\311N\220\232\tD\023~9E\220\255x5\225@K\030E(\004F\025\024\250TR\224XVB\300\204\022\262\025+!I\000c\001+!A\010TR\224\016\320j{\017\313\303\360 \203x\274\347\223\306P\320\034\350q\245\302\047\231\020\362\0367\362s\231\217P\236g\323\360j\352\2358t\343 cD\207k\023\227v\322HM\005\232378\333X\177\353(\226\224\335\036\\\263\031\025\314\310T0.\325\333\212M\231\220\343s~F\354\024\005\006)&\210f\242\034\266\206\306\346\215\207fo\271\277\336\343[\034\365\266\331\266\3673{\254\035\265\261\310\347\002\007\034]ot0\201s[\201!\215\350\376\373\022\271\221y\321\347$\204\t\002JP\347ic\031\030R\363\2245\317\345|>1\"\034\047\332\047\037,\222I$\222I$\235\320F\217\033\214\301(F7\242)N>\016\361\017\342\021\034H\217\221\307\020\217\240\021\264!\216\"X\215\267K\345\020""\311\003\242\242\311o\037\026|\244\377\340\334\376\210\244F\263e\310\203\205\007\204\rO\031\353\366t\2531\341K\203\260\232E8\220\342\010F\022\2018iI\030IK\304RL\206\0323\2118\004\260\232\373\211\275\205\027\004=\273\rqLa\231La\236\232c\014\312c\014\312c\014\375\032c\014\332\230\303?\315La\237\202\230\303>Zc\014\332\230\303<\364\306\031\360S\030g\024\306\031\360\323;l5\253%\325\026\027T\306\031\352\2460\315\251\2143)\2143\266\230\3037\2460\315\251\2143\364\251\233Xk\266\311uE\205\342\231l3\266\311uE\205\342\230\3037\2460\316\224\306\031\316\235\030gu6a\226\213\013\370)\2143\262\230\303;)\2143\272\230\303?\r1\206wS\030gZc\014\312c\014\354\2460\316\312c\014\356\2460\316\352c\014\312c\014\342\230\303:\323\030g\313La\234S\030g}1\206wS\030f\364\306\031\322\230\3039\323\030fS\030gJc\014\312x\210|\223\251\016\211\0166\207\036*ls$\210\004\346\374\2449\020\374$(LUUUU}\232nB\300\316\317\001i\017\016\360!\231\242\343\230\\s\013\216aq\314.9\205\3070\270\346\027\034\302\347R\033\020\361\220\356\355\207w\351S\036L5\344\244\272\247\"\026\3039S\030f\251\327^\014\206\336\3056UU\\vqw!\344$\235!\016\322\037\233\257\315Kii\000\200@ \020\010\004\001\233N\336[m:\266\335<\0239\363\332v\375Jc\014\354\247\227\247\023\247J\3645\223Z\270\314\313\214\314\270\314\313\214\307\271\354\236\367\017a\357v\275\243F\215\244\010\023\213\232\r\001\277\234\316e\360$\032\271\003\344 \037/\254\005\221\020PIHz\312\n-\047\254\310\256\034V-\327\275|D\ndB\037a\260\210\200\"BFA\021\2449\005\323\315\265\010r\337!\357oM\210s\352A\2418\370\364\252\252\252\252\270C\260\017\210\202\004\246\310\242\212(\242\217\243D;D\266A2\233p\313\023S\331B\033\302e\004SR\002\201\004\214\002\006R\014\201\313\327\327\236w\n(\242\212(\242\2131[m\266\333m\266\333m\266\333m\266\336\235\366\235\346|\363\235,\226g\212\232\352 \234\047\022$\204 \020$\241x\251\031A\304\321G\256\337\277\273\250q\276#P\211b.\200\206H\277\231\2707\337\020\221\374 \341\022\370\004\274\352;k\237E\230xHh\307r\355\2718?7\330\345\033-\2711\201\234\322\267\364\243/\342i\006P\352B<2C\343\017\220R#\026)d\237 `\242\210\331>0\300\243\277n\360\234\000\231\367D\210i\027\314$\004\344\022\302P7\211BP\255A\007H\220K\304\300M{\n\334\300\276\014\211\004\031\004\024\024\031\004\024\024\024\037\303\342\330\211\275F\357(\362\354\212\216\316\312r\3676I\376\257\220\266q^\343\262\222,$ *\226\023\315\014\026\"\226\036\344/\233\317\355|\352\252\252\252\253\354RI\367B\027\326A\017\320\367i\366\017\237d\367\205UUUTL\005`\226\235pO\257D\307\032\030\212B\010^& \2300\302\036\212\322\346W\226\360\345\331La\236\212c\014\3734\306\031\252c\014\312c\014\312z\210zz\235:\365\256\0272\270\\\312\341s+\205\314\256\0272\270""\\\312\341s+\351\375\216\277\265\236\244\355>\307\252z\275A\351\204\220\365\272y\347\204\335T\336M\001\002F@\224\241\274%\244!!)46!Z5\316i\235\363\t\270\024\047s\326\371\346\350#\244L\247\250\023\025.\022!\200\234\035!L\302AB\300\224\230\3468D\311\300$k0\220MQ2\\%\002pj\t\252%!\233S\001+k\245\300\225\363\323t\374\177\n(\242\212(\242\212/\204\2044\311\005dddddddd\324Lg\006\333\301 \233\204\372\242`C\302CcdQE\024QE\024yr\345\232!\255kY\231\231\231\231\231\231\231\231\231\231\231\231\231\233\220\334\207X\302\035\010x\210`\177$\206\322\024vl\207\320C\002\026\033\220\362m\244QE\024QE\361\220\346x\366\356!\265\315\210o\345\225\213\026,X\250J\022\204\241\216\005\265\204\241\245wWZ\233A,]E\200AtX\220\201\201\301EUUU^\223\345\353\326tv\353\305\325\346\363\331q\3258\224c1*\353C0K\027Q2\214f%]hf\tb\352&Q\214\304\253\255\014\301,]D\3121\230\225u\241\230%\213\250\231F3\022\256\2643\004\261u\023(\306bU\326\206`\226.\242e\030\314J\272\320\314\022\306\0161\254\377\002fS\336\263js\205\237\227\367p\334|\022\214\321\243B\370\004hB\361\234\002/s\253\337\025\360\257\211\212\306%#\342h\214\214\205\001\342*\020\205<\337K\352\n\007\222\047\3357\273\316\003\347\361\262@6;H\306\003\"H\312W\2466\222$\224\035:g\200\023\243i;\236z \234!\265\300%Hj\033Zi\206|T\373\034H/\004-UUU_\224!\364\220\346\020\320C\353\224\204]\2100\251\024\212E\"\222A\220d\335\330Tu\315u<\347\35176\365\321\r\204L\360\002\2043\210Ti3\244v\335\240N\250\220\023\260$\0016\304\241(O\023[\205\342\\\tn\325\002y\240%\342\301X!1\274\207\332\220\374\204?P\206\3049i\241\013UUUW\334!\323A\0023\335\244,=\354\335\207\275\333f\230g\333\260\306\031\252\\\246\333qO\204\203\0032\333m\266\333m\266\333m\266\020\327)B\t\010$F\002f\022\224\241\007\033\223&\335\032\302k_d\277\206\213\2011\023\254\047\030\233\240\2351.\022\204\200\227\366\"\024\000\223o\006\353w\324K\204\242\220H$\004\377 H&ba\205\330a\035\226\252\252\252\252\252\252\252\253\360\366\365<\223\277\236\224\367y\352\375\177jq\361\236;W\010<.\204\036\001\341\210H\205#\302%A\247\205""\234\047\223\333\367\241\350\365S\312\303>\3757a\232\247\270}\375\275\275\256\320\336\323\337\374\n\252\252\252\253\266Co\255O\237\177:\252\252\252\252\374\034m\0168\247a\331\327\036\234\266\337\251z\020R\031\323\224:zi\301\335\361\342\252\253\263\216+B\244\222I%\313\026$\3313\220\371\314i\200\2512&f&B\244\310\231\230\231\n\223\"fbd*L\213\314\304\310T\231\027\231\211\220\273^XZ\301\355h\265\202\244\310\231\230\231\013\366~)\t\243\250\374` \3748\371\000@G\334\337yA\317\266\233@\336Cl\206\336Zc\014\353N;Hx\262\033x\350\260\266\2340\313EX]\351\2143\272\222\345<=w\266\333m\266\333m\266\333m\264!\354\364\355\354\302\014\016\\\241\317\245<\241\016$\016B\t\003\241\016\224\207:\252\252\252\252\363\372\336\177\220\207@\206\344=_\\\207i$\342C\205\345j\252\252\257xCD:\220\373\274\360\207R\035\372\327u\252\252\252\253\307>\376\360\207\"\031\234\271\020\350C\221\266\312\252\346fff\375\235\236\336\333w\226\333m\266\333m\266\333m\266\333m\250\233\004\320J\010t4\331\r\232\t\264L\306\334D\314\304L\254\330\047\210\371\210&\001\261\0169p\004,\016a\016\336\336\023\267.&e\304\314\270\231\227\0232\342f\\L\313\211\236\177WR\004\t\364\007\303\352\37018\037\233\346\265\256\014\274\047\t\303\366~]\365\016\004\341\202\312\027\201\033P\360\214<""\206\234\340\235\221\2414\t\274]\352+\253\327\3058\262Q\236%\274\224o\t\344\0231\233\315\000\270K\304\336\023W\300\047\010\232\227\246\247\202\213D\266\2324d\322\047\203m\243\th\000\000\000\000\000\001\3256\234{w\332rI\3336\236M\247_)\2319vf[-\266[l\266\331n\353\026\331m\262\2630f\336\341\006\201\005P\\/\032\321\272\010)\361\217\272I\343d\034t\241\212\006\320\2276\227rr\343$\223xs\347\316\365j\032\326\2531Z\314V\263\025\254\305k1Z\314V\360\236\204\363$\311\267\2703.\322m&\336.\222\177.\310\001\264\000m\312\027lX;c\264&E\354\345N\317z\213\224\327\022\000\3734\363\317\303\010\024\234\360v\340\236\373\020\201}\340\010`\264%\300\"\\\000\361\002\036\20528\240\227\335\315\334\344\360\341\231\306\004z\241d9uZe\263\253\266\2637\327a\227$\rK\262;\326\225`\212\305\251kE\212*\305\025d3\216,l\227D\207\001\271\251\247~\035\315\356\371[\213v\233\350\306`kk\344\220\rp6\010\203@\033\010\021v\004\333\344\335\337\255\3219D\342\302\t\332\261\0258\035\230\310-\t2\t\337\023)J\\\302\004A9D\260\203x\255\256\023\244qgP}\341/\014\001 \224%\t\254\363\020\302\031\212\252\252\253\300C\337\354\207\277\224\326\357@\203\003\303\250o\326\235\2143\351\247A\206[%\264\350\020\333\202\035\350\020\346h\204:\020\314\307\356~\267\311\242\0355\321UU\352\374\016+\310\335\212\036Ztz[\354\265\204\010m+\266\303\212\313D\200\220O\023d\\T\240&BP\246\335\023n\332\025\211\\\250K\2202\"\033v\355\331\233\010\020\240m\\Vf&\020\202\001\022\032\\L\314L!\004\002$4\270\231\230\230B\010\004Hiq310\204\020\010\220\322\342fba\010 \021!\245\304\304\315\032\020\202\001\022\032\\L\314L!\004\002$4\270\232\375\007\213W\303\323\356\335\255\213\326\335\007K\240w\373\367\237\231\201\231WH!\025\322!\021\274\225[\026+\357\210\275A\024\254\270\354d>\263\2112N\242O\013\241\266\347D\222\r\261\035\336\350\231ZCTN\230\230^\t\020\351<\227\357\211\270$\022\326\325!j\252\252\252\367t\352C\231\r\254<\036\212x{\010q\212\252\346k\034\271\214\343\223\224\010\004\002\001\000\200@ \020\261-\211u\324+\022\273\250f%\242d&\321/\265/\302\206\227\211""\020\334\2073\324\243\361\020J\243\272U\030\250\305F*1Q\212\214Tb\243\342\335\361\235\335\367;\355\333\211\335\316\035\337E=\276\342\014\017\214\207\217P\337\345\247\336\347a\257\r1\206Zw\220\320\220}0\326\241\267\256\236\311\345!\3677t\252\252\356\312\270\303\003\313\311[eX\322\221\320\001\004A\240\211V\242\254\022TD+B\232\314\302kE\320k\206\366\343.\345\3345\231\204\326\213\240\327 \3137\336\346\366\354\2556\332\346\326\355\207\264\316\204\365\367\047l>C\344\177/\364\361}\037\221\337\351\351\227,\354\336\252\251\232\"]w1\343<|\333\351\272l\037\226>\360\201\341\0209\250_\020\261\225\030/\240Xz\031\350\304\023\021>\243mL\302X\036\0217\371v8 p{\324_z\030\334\004\204\020\357\207C\324C\212CR\030B\375\302\035\304>\035*\252\252\252\252\252\252\252\252\257y\264\220\362\301\037A\010\030b(\243\t\t\t\t@rn{5\020A\335\000]\324\332\3357Ww\305\271\370\216\357`\355\002\336]\007\274\213\272+\0007P n\244\335\355\247\224N\276\354\017Gm>o\237\323B\036\356/2\026\252\252\252\256\244\201\267$9{Bz\034}\237M\266\333m\266\333m\266\333m\266\333m\266\370rm\rrC\227\327\246\240t!\332vs\272!\267$9e\230\206qO\254!\020\020\017:}\277\257\347<\362/\321\004\307oO\307\007^4\247\030\r\300t\325x\325b\356z\321\357M\261\307:\333\264A\316\307\266\2209\346\nK\323\332\376=\227>\327\316-q\227\rW\242\2726\3661\227\336zjp\246^\370\315\367\250\342\257\326\266""\244k\340\324\364\333\237k\336\374\236\257w\333W\216\047\023F\036\"\260\\Kv\017\204\215\355[_F\016\231_O\014\257\237\203\350,<\224]\227[\263\334\273\3151^\326\256=1Qj\343\001\353\253\351\206\232\t\031\355\236\264{\323lq\316\266\355\020s\261\355\244\016y\202\222\364\364\177>\313\237G\316-q\227\rW\242\2726\3661\227\336zjp\246^\370\315\367\250\342\257\326\266\244k\340\324\364\333\237G\275\371=^\357\266\257\034N&\214=\201\300P\272\211\005\251\026\221S\244el\270\306\274E\233\033w\347\206:m\251c\272\234}\034\257\247\213\350,<\324]\227[\263\334\273\3151_\033W\036\270\250\265q\200\365\325\364\303M\004\214\370\347\255\036\364\333\034s\255\273D\034\354{i\003\236`\244\275=_\307\262\347\325\363\213\\e\303U\350\256\215\275\214e\367\236\232\234)\227\2763}\3528\253\365\255\251\032\3705=v\347\325\357\226\371\303\226Vn\333e\274\027\347}\325?\365\343\321p\"\240[\3237\211QzBD@\345\000\010\304%\004\r.n4o \373$v\305o\266\354\0358_g\236W\327\315\364\026\035(\273.\267g\271w\232b\276V\256=\230\250\265q\200\365\325\364\303M\004\214\370\347\255\036\364\333\034s\255\273D\034\354{i\003\236`\244\275=\217\344{g\330\371\305\2562\341\254\364p\305\267\261\214\276\363\323S\2052\367\306o\275G\025~\265\265#\303f\247\263n}\217{\362z\305\337m^8\234M\030x\212\301q-\330>\0227\265m}\030:e}<2\276~\017\240\260\362Qv]n\317r\3574\305{Z\270\364\305E\253\214\007\256\257\246\032h$g\266z\321\357M\261\307:\333\264A\316\307\266\2209\346\nK\323\321\374\317l\372>qk\214\270k=\025\321\267\261\214\276\363\323S\2052\367\306o\275G\025~\265\265#_\006\247\246\334\372=\357\311\352\367}\266\331o\005\371\337uN8\211 \272\202@Y^>\235\202\020\317\ti\225z!\365H\353J\333;0t\335s\343\225\364\361}\005\207\232\213\262\353v{\227y\246+\343j\343\327\025\026\2560\036\272\276\230i\240\221\237\034\365\243\336\233c\216u\267h\203\235\217m s\314\024\227\247\253\370\236\331\365|\342\327\031p\326z+\243oc\031}\347\246\247\ne\357\214\337z\216*\375kjF\276\rO]\271\365{\337\223\325\356\373j\361\304\342h\310\020\017\020\365\016%\273\007\302F\366\255""\257\243\007L\257\247\206W\317\301\364\026\036J.\313\255\331\356]\346\230\257kW\036\230\250\265q\200\365\325\364\303M\004\214\366\317Z=\351\2668\347[v\2109\330\366\322\007<\301Izz?\231\355\226\322\365\267\241\314\007\263\313\206-\275\214e\367\236\232\234)\227\306\232_z\216*\375k4\217\r\232\236\233s\350\367\277\047\254]\366\325\343\211\304\321\220 \036\250\201>\257m\307\027l\235\020t\246f\354\"\3779I\n\022\240\322c$\371\207\273\026)\014\333\030&3B\047\372\314R\323\261\316.\231\213\217T\300\373R\001\366\317\346\357\261\010\021\214\354vS4\013\324\315\316\264|\311)\214+\231\225\346\3170\267\033\3777\253\207\255d\306\301\020m\331i&\233\036\006\241{U\314$\312V\260\002\307=\322\322\333\007\325\210\300\2008\"\257\272X\t\265@\245\235\265\037\251\340\330\226\331\206Hr\204\020H\211\343\027\275\t&\240\201\201/\n\256\201\222\240\254\004TU[\276\364\343K\023\245\206S\037F\021\020\206\321\2654\215\246\022\030\007\314(\367s\235^1\027,\234\302F\004\263\227\236\003\340\274=\177\340y\326\014\220\200\373\340\276\265X/\251Xz\217\2746u\365\317\233\010hU\302\010\022CP\326\364\352\251\325\007X\274\365\236\302\257{]\355q\210t\251B$A\334\003\304\243\0048\2218\215\351\320?-\020\374\217\016Q\214,\221Y\217\351\361C\207^(\305\370\031\020\361[\007\203\022#g\314\243tD\313\370\360\204\343y\016\226\246?\255\300\223\253y\201\231\037\204\304\337\216\t\375\265\307\207\340\352\346\027T\0130\206n\355\325C[\347M6WbS\316\244$8\021\371@\271.\226}\010M\323\222\336V\275\255\37679\350\201\002$F\031\341`\001\016\261U\006@B\006\273\260\351\313\"B\"DKa\272SQ\302\3756\215K\363\224\007\246\242\017\371\047\245\177\242\024\300\254-|q\363\215\260\235\035q\277\243\337\326n\027Li\354\3034\263ID\263Or\273\272\302\24002a0\314\224\300i4\367XF{\255v8\231;L\317/\217\t\313\212\204\366\320\275\307p\252\363<\036\026\274\211\005\027*\242\364o\235\355\271\003f\367\000\033\264\214BU\n\004@\023\047\313QM4\tm\260\266E\337\267\205\255\313\327\334\271Ul\023R\007\004W\321\364>\363\017w\247\353$\257u\352\200R\276\325\005\301D[\305=\310""\036\347&!\034:\316{\251s \322@\337\361D\035(\352\030$\267#\345\3566\343\014\347M\004\217\004\"IB\027B\303\300\370Y\271O\014\323\265\246A\034\032$\337~\027\264\264TpF\354p\212Z6(\225\261\252\225\n\005H\230\210c|hTq-u\370K\313p\000\372\000b\007\240\250\001^\216%~3\277;\225$8\235\363s\314x\220<\254V\365\277\037\025^f\300\217\304\343\323\345N\000\332<\240\206g\004\266\2200\3551@$\201\n\036\031~|V\021\340~\233}\337\033\306N\\t\017\002\033s\270k\261\027\260\030\217t\204\212\3142\2724\0322\345\311s\207\037z\333A\274\257\221\224\210\017c{\035\222\013i\357\335t\270\215\350\204\254\240t\210\301t\253\003Hk\347\317\236\212\033U\025\036\241M\254\220\206\2451\206\002\270Q\320\313\220 J2\020\047\253\350\371\355\343}\317\314^\007\222\375\276\223\345(\203q\247\345\323#2\327es\256;\245\222_\245\330sWb}g\"\226\375>#d\305\372h\336\021~\266\357\257\256\005\371l&\366\233\375\033L\302!y\032\032\020:\375\n\002l\322\272\347\203:\006\2657G\245\rB\322\224\314\n\033(\266\247\010cj[\357\n\315\204(\253\342\024<\\G\022\342\266\220\030\222PyRC\320\020R\253E\355.r5\3458\367\235\230k\332\366N\330\351\363\036\304V\215[\255eFEUQ\005W\216v\2014jg~L\340\324\340\031\251\335\2673\263\337;\047\314\2238z\2315\312\226\232\206\326\264L\323\245#N\223O,\001\002\354\361\314\353-\255A\004s\263\303U\026\007\254\016Z9\242\244\311\034\202\003\225 \031\007(\2069V@=\320\3348\367I\357w\2357]Z\222J\003\310M;\346m\324o.\356\010\203\277\226\240 UO\267\361\250{\020(\002d\001\225`\006\330T\315y\333M\242\023\000|\252\211\327\"DA\034\243q\235\200\304b\022\326 \304\033\001c\000\3529\013\366QAaA|\261\016\036\235:,Sc\2429\3214*A4\003\r\004\3706\320;\360\026n\344*\314I\002@\244\326\003\r\256\354\226j\250;\270\343\274m\006!\365Ht\216#\313A\2343\324\207\240\371\267\373\032\207|\347\330Z%cET\222J\002\322\212|{\333\316\362\366\314\220\357uCj\313\330\337(6\345\025\007`WeV\001\262$\r\220\331\323\332!\341\207\025\022\301-\t\345FV\340\347\n\303\203\265\204H\010\235A\376G\222\235\275*\216\325H\344KQ\2076;`\021D\217z\035G\250\345/K\230Q\006\353\250,w\005\344\025\037\000\217\200<\n\275_A\311D\017F\323\330.]\303R\214)\205\005\007tS\274\002\302.\2415\323^j\211\031\033?\250\361\211=9\305\227\304""\n\331@yy\242:\213\244\206RR\241\314h\2335\242\211\315K\\\267J\031\357\233\214\223\2675\222$\307\t\376\246\010\262\356\206[h\023\207i\324\333zb\212|\344\212\200\305\016L\227\365 k\007\016\257[\210\022#A\341\331\375\304\265\rB\270\374\023c\354\364\010\224\031\007\026\273|\215@\316\336\363z\020\324\005PH\250[\0160>\016\313\275A\024\023\350\327eOR&\320\243\336\372\202\202\017\232\027`S\214q\272\200\270\214~,\267K\356:s&\246\322j\336 b\202a\024\t\047\021w\243il\277\177\221a\302X\350\034D\t\023\\0\357\323\246Bh\340\247\263\327\340\027\000\221\306\005\007\242Q=\253\272yG\260\007\tS5\013\023\224\341\021\025:t\027@\271u9\316py\3059\003\221\344\0219\021\016D=\"\3359\371\006\346\321`\200\263\317NDQ\274h4\031\223<\014B\016@C \344\004\307!(3f\254\221e\204*\242EZ\210\242\002\262ssO*\017T\224\304C\241\270\373M|\333\212\227\322\312\274\"<@\261\016!\047\025\346b#\"\252h\247\263U\332c\272h\323\337\253\236\332\232L\246[*e b\343K\274\222HV\201Z0\210\266\226\023\000+\266h\355\271\271{l\027\310\222\217\201\003\252\032KK\0312\224y\275\035,\031\335\005\357\002\304{\302\303\274m\275\362\022\006\314\2500\202\310\020X\260\000\005\222\002\305\213\366\373\300\373;C\303\r\033\341\3543\350\362x\267Q\205\336\205b\034\255E=>\207\016\304\270&\007\300\\\371\212\336+\366kDJ\212\350\311\242\0043\346\300\013\206\031\370w\246\3105\034\213\362\035B\310\251Q\021B\303n\252U7\005].n\241\3202\0308\207\025}( \346\324\340\343\347\303!0\014\317R\355v\262\341\325\227\007bc\344\255\031\344\267\300\024\271\341\047\215\003`\324\t\t\343#\344\311R\034x\271\\\353\224\014k\211#\030\030\325=\013x\226^\244E\005\342\274L >J{\014\214\"F\220X:Vi;\"\250:\254v$6]\251\324\332/6\273\2712yr\345\363l\330\345\243\217v\361zNk\322\311P\3629\207\002a\201i\047{\010v\236G\276aS\337>\321>\232`\006\233T\217}\006\226\316\337q\255Ak%\320-R\350\227\247ND=\006\t\262v\240\n}\364+\345\373\341|\227p\360\331l\255\2159\207\031h\315|\243wVh<\244\207\277\002 {\340\047\276o\277\271\355\213}\030\215\366\266i.\000\346\031\346\325\323\002ld\010\022""\232l!!\214!t\220\241\020b\367\255W\\\321\214\331\r\235\343SZ\234a\275\000+\337\261\206\367M]\317\231@V\220\354\312)\365\320A\212 \343}\225J\235c}5\245\201\0142\265\310\220\201\021\334\255%:\232\257}\234\000\222\0332D\030\316\td6\211nr4/\206aCu\214\367L\013/\361\255(\031\326>fX\3244\r\366\034S\037$\372f\312\230\304\220 \305Ae\207h\375Fp\370\010x\022\357\302&\334\244\202\006b\n4Na\230\200\347\020\003\243\"|\352\225s\305\226\204\271r\366\304\371\365\002\010\312#\306\262\345\272Y\004o\255\260\311\201\325!a\330\323\202\360\013\022Bd\226$\223\030\225\216\354#\215r5!\323\327\351\325@\226\272\301\265\333\332\300\354=\2104Q\354\231\223\276D;!\307)\002\320\354\0372V\032\200t\032\332\323R\270\265z\303I\360\006\257M\304\305\360\205M\323Xn\022\370)dU\312\315\274[\304A\267bi\350\205\216V\274\021\340\200e!\235+\367/\302=\014\215\246\323\245\345\240\203\217O\350}<\003~v\215\330S\2031\325M\364\330\314\335S\212Z\325!+e\307[\251\224\324p\306\306\273\255\030\336\006\244\340|\211\330k\211\303\014\255\260\346\256>H\2568\334\210\354%n\260\247\265\t\321\315\207+J\363?{\327\267\337\240\261y\374R\325\030\361\300\220m\r\355\240\324\372\255\235G\260\277\272k\203$\031\246\026W]i\322G?\037y\371\205\263\017\370^\024\003\210\213\302bX\325%\317\330\007\324\252>%9\374|\372\306\202e^\310l\350\354\325\025[W\317.=c\345\361\250q\202A8\324\234|\243\2653\346\232\233\265\354:\365\344\231\215\017fh*\343\006\216d\020u\017\000\234L|\047\312\202\014\210 \305\020tc\232\305\203_\016\220\243M\266c\266\3431\267&G\263\325nE\\\216\035\237\311\047E\nl\250\321I\363e\321\204\232E\262\264\227S\241[\336\245\335N\212R\375\220\272\376\236\315J\246\276bn|\210`N\316\235 \343\333[\226C\224:\365\275|\300\220\357Ocs\047\227\310\301\004V+\005\026\000\212\305\213\010\305F\"\274\022{\001\251\300*t|;\001\237\267\232\215)\330g\2156\265\250\253\265(\307\034\205\316`M\n\220M\002D\335Fy\242T:\"\231\001\004Z\r\033\027\007\t\302\207\260\223\000D\002\024I\000\334\266\212\275`\022\341O\300\227\337x\250\340\031p\360\372\235!<\346z\377\0007""\237\302\337\302\270\273\203\234\214\353\303\240\010\216\235\024=t\314\312\2640\002\006b\244 \246>3i\266\213\305*m\375\315\253\300m\t$\016\004\220\340T\250\252#\311HxK-iY\002\252\025\010W\205\004\313\271\246\007\340\244\201\345$<\304\203\0174\031\346\017`\361*\250>\351K\0261\212\326{\251R.gUs#bH\216\217\252\223\356\306\020\251\361\374\337`\366\313\300\302q\371\250\264\n\317\253\241\221!\031:\206~l\363f\016\020\025\007_\264\214H~\271O\267)\037%~\365k)\020)\016\002\311V\373\312?\001\037~\006\347\200\000\374=\002t\320\262\"]\232@4z\356\361\331\016\314-->n\317g\2333\031\361,\033\003\322\267\267f0\351\032\244\304\313\200\257\221\272J$$\213\"/\262|\345\340\r+l\311\343\373\035\372\337`\035\371\264Y\251n\244>\010\214h\304fK\177>\376\203\n\244\022\335b\214)\243\354yY\307\033`\0007\322I\200\337\001\215\362\264\226\375>\235\030\210\276<,\351\333\316\271\006\273\031.U\027\302\034\022\245\307\264\047>)C:\370\021V\027\206\273\301q\n\355\000EG\210{G\304\016o\025\335\262F\377;\325\301\0239\200\356\244\006\254B\321]\226\025\331\315\334\007\r\202\306\212\232\207\363h@\337\013\n-?|\365\226\234p\036\327\366rE>;&sa\264\317\335\t\357j,\214\010\373L\250\252O\261U\314D\027\033r\234s\237=v\t\353\265\277\025\261nj\271i\353\202E|\266\250\325\311\355\275\351\3051S\n\252T\210\320\2521\241]\346\272\2134%\026\355 \034([]idX]Z@Jm\206\232\305\234xV\202K\206\027`\n\241\000-a\355\327\350\217\311\300s\321\275\257\367\000\010\342\232\014 \333\226\240G\3408\333\210\277^l\210\027\300,\346c,\300D\313G.\320\260\334\215<\201\214D\372\203\307)\022l\211,bI\203\030\261\332\2758\302\345U\211\363]~\310\3511\017C\230\036\303+\243I\356\225\022\035k.\257A\036{N\2317a\323\311*\2546\312pC\323\313\221\256\247\010\275\234@5\r\255P\310\310s \344\203#\014\343\014%x\354]\265\016\246#\351\216b\031M\272\334\252w\047M\371\250\35195K\256\353N\265M}\214\034\257D\313\251\023\027D\010\0028n1\233\260\240\272\003P\026\341\034\242*Q\n\201\264\326\375\0340&\350XX\371R#v\312[K\261q<\257\247f\211x\361h\034\004\340\266\357#\355y~6;""\316\200a\014\340\326\260\350\032BE\006\027\261h2O\010)\001\343Y\260 \252\240R\200k\320J\377F\264\275V\2448(\212V\214\302\022!\355\2457\264\023\332\t\002)\010\021:wf\332\342\211\246\225Mb)\240\215\r\004\005E$:\301\nQ\030\246)\343t\260\t\034\226d\340C\030\004\313#\325uo\324\305\253v,\032\375l\271\200x\021\3408\301\341\036\025\032\210\210\242\246\246\335\240\312\252N\014\265D\367\364\021NM&\020$\323\001:\227\213\357\341BY\204&\0032\006\315;~\353\022\307\246y5\002Bqj\006(\346H<;\351\307\014\231c\332)\246^\361j:\016\221u\261\205.\301\337\364\214B\0220\222 \311! \300z\201\273\327/\240\324\320\024^\231\316\337c\013\270|\032\271zw_\305+\030\336\3651\307\204\023\326D$\0202E\203\270DZ\222X\030\204\211\252@\262\021\"D\341D3?\t\276\3518\200}\376|\201\222`x\334v\300\007\356M\037\270G\025%i\224\367\264P\210\036\026\220\226A\003$\341\007cP{\265\027\317\014v;\333U\322I\324>ak\036\257KN\246&H.&\003@\221\264\3675\244\200\263\300\255Y\341H\341\\\342\010\256$\274\366\267\026\047+\202\034Q\320\333M\335\265\344N\371\003&Z\2643{kl@\334P\210n)8\365\207<\325\017\026\335\333ZpB\211\266S)$\357\301,\307\274\376H\211\357\033\200\n\265|\270\247W\231lb\336\033l\240B\270\034\010\222\312\325q\n\312@\311Y\001\236\343\234\340\357y\250\220\340$\270\352\205X\222\315|)+:\271\314\352\211\260\006\204\222\026@2\0102\005\240\025\212\353\0338u\2338af6\250\310\035\322\3652C:\241\334D\210w\004\207p\312\344\355\354\025j\322BI\310]u\336+y\363M\243\301\231\375\037\255TGk\260laM}\\V\370\363_\017\3431\202\256(\030\220\300\230j\036\332:SqCsqSp\035\307sp\035\300\033\341\241\006\t\341v\305\007<}+\354V\201x\326\031$\216.^\004\214\000\003\010\300\t\214\006\024\257\331H\305d2\242\270V\254\010\244\225A\263\265!\207P*=$\204\303\222\272\242\007\\X\207\\Hu\316\252\233[B\233A\326:\313C\047\307a\305\027`{\024\256<\241\006$\\I\222\313\276=Q\020*bC \246!\251\224\300\340b\320\t\024\267D\212b\246\250}\254\255\322\336{@}(B\224j0\252Tv\340\200\242\010d\212 \232\215\001\005\353\001\270\257}\254\211\323ZcV\276\342\322\352\233\367""\323\203\240\332\310Fc5T7\202E\336\204w\273\300\337\323nQ\373w\356\252f\344\036\361\251T\2424\026\344t\301\222a\2232\251r\200\tRI\014\225 \031RT\n\326\217\265Z\n\r9\211\344\366\234P\220WrNS\316\036\257\341\334\352m\301\255@\301\017\276\376\343\212\2333t\r$Qb\273o\206\333Z\233od\306]\177ks4@\034\333Wd\341\343\215\266\335\342@\364>\375\270\226\232\375~Jy\220\352q6\305\346|i\363\047\007\317\361g\322j\235\220\357z\303\257\353\320\322\344\237J\341ln\262T\244\266\302\206\374)\363\377H0\037\210\371\004_\225\025?\254@B*@H\252\021o\247H\200\377p\201\010\212B,\021C\364\221>R(\251\331\365\376\211\342\265@X&\323\362~\306\254\310\377q\321K\341%\242\306\005\361\220\025\030\313\263\334\235\222,g\257\367.\036\332\221DL\245T\306b\025\034\366\276\247\364\263\377\337\226T\373\356\366\200\226\020/\210\3351\213\"\000IP\047 \177!;\322\337\315\024?\\?\303\206\326\304Tx\350y\277<\306~\223\336.\226\242\211u\255_\264XL\240\276\261\r\304+\r\235\010\317\323\342\346\223o\366\037\265\362\331}\177\210?\362\316\020\304\3375\247F\263\003\031F+Z?\273?e\375\350\022\177n\377\355D\220\026E\023\370BA\370\047\375\324<\326\264\014\224\026a\364B\371h\023\374_\325\004W\370\034\331\216z\305\017Z\211t\027\236\204/\025\030\372\026\326\341Q\272\331>\n(8@i\005?\241\367\276\025F\340\023\242\336\374\364\327\367\312\364\242\255\257\206\002O\202]\214jL)\370\025\0235\031o?\267\323\353\373\277:\227\237\337z\000\337\013\nJ\047\337\205\366.\243\367\027\321\370U.?\217\243\332\205:\375{\350u\373A\351\276\232\230\227\301Q\371\2510\310)<5S1Q\370\252&41\274\304Tf-p\370\336\257[\361\337\362~Y\357\010B\000\t[^\300\376T\252\333P\374\302\230v*L\256\257\277\206\000\013\215\237\277\325\376}\276\307c\373Y\371\332]\353R\205\235\233\216\316\300n\262\362)K\331W\263\005\002\266\n\216U\025\034\304\324\206Q>\177\3613\177\0355b\244\237|*\310\177r\325\202\352\025\032\3757r\333\177\255\371\273\036\277\307\231=s\222\377\020\211\311/\306\237\353\212\230~\253\014;\200\370h\025\025q\203\230\225\267\346\016O\237\267\3329-\345\2226\366\377\255mp""\345\357Ski\204\302\035\3442\316\313\034\205(\320Tg\047s\272w\177\374\210\335\000\222F0\222H\222,P_\310\\$\247\014\002\307\3730O\341JU\2342R\341X\251o\255\363rv\371\177\321>8P\273J\377AKi\337\025\034-\0140\266\317\215\307\331\255\201\025R\302\202s,\302\352\010\261\356\376\177\272v\316\327\311\314]k\375\354\346\356\251\0041\205\345y\260p\014/\346N|A+\233@\244\004\273J\201\001\240\245\"\212\303\361rw\250\023\335^E\355[\376\324n\224\245\202\243m,{\341\313N\\\n\004B\320\005)\331\364\373}\303\226\251\357\003,\355\357\253\377\225D\224\234\254;\242\243}\013\002\\\246B\243\177r\305\013}\237C\263\002\034\207\310\206\361Q\247r\235\337@NZ]=\273\251\226G\356T\256?\355\235\245\201s@\017t\3716=\370{\334\324\016\361h\036\002\022A\017\304)\177\200\273\273\317\337\251\337\260\207=\322\210\r\370\202P @\002\320\240&x%\205\224\226\340\013\227\316O\335\316*;\373vv\341\337\004\260\270\177\315N\375\255\241q\336\047>5F\226\005\267\\\026\211\210b%\266\021NL\275\357\355J\376\376\355G\367\247\177\207\357\255\330\332Y\205\345\3549\234A+}\205\005F\373\237\000\245\235\234\300\345\217*\252H~\020yN\375\217\271*N\361\315Nnzs\227\027\211YNa=\275\335\255\207v%;\345\033@\356|\310_g/|\360sx\004\260\014\014\312_b\341\334\356>\321\356s\355(q\022\035\357IO\351\215n\276\365\346,2\245\022\222\026{`\327\025;\201\313\317\367\231\313\334y\351\355V\354\000$\245U\347\210\266{b\224(G\246\205\276\3776\234\264\241\331\004\345(\363\007n\360O\363N\365yp)x\035\331h\222\3327\201i\013T\305\274\206\035\241^D\027\267\312*64\016\330\322\320\247!\333\374\001}\375\2730\037\332(5\203d1\004\362\024\306\362\035\346\374\320\314\366x\205G\220Ejva\310\220\370\003\220\005\371XUO\333AQ\345-\036\356\tL\010I\373NC\244\250\320\317\263\374\250r\220\235\301D;\202\243\025C\305\037\347=\314+Yz\322\270/\303\207|9\314\336\367w\303\315\360\251\250\363\204\t\335P|\362/\320\263\341\213[\3744;\342\363\312s\271\047\047|N_\207\271\273\301\336\0019\302\360\260\201\200?\340]c\340\022\314\2241\310\032\271\n\276\362\031\363\3030\367D\207\301\t\335i""\047\200(r\234\252V{\344\267\3010\205\260\360\210[\036nzV\361\304\313!9\271\3059{\366\010\277\024\002I!\t\010H\022,*~\352\035\353\377\304\370L-\272\026\203\202\027\2471\341\275\356\031\nwH>\354\362\204\234\260\247\350\360[UN`O\260Yw5\327X\262\314(\212\231\024;\274\204\207&JwT\217\265\312)\345\025\270<\322\236\366\024\235\357s\340\317.tm\022\230xT\240\205q\0233\330\360\373\206\3259\324\221N\350\250\363\324-B\202\026\010\363\250R\341O\3439A\372\326}\207\373\350>\305\263P\272\251\207\334\246\333\374LK8+\024\267\372\003\354y@>\230\017\320\rR\037<\260\037D(g\335_\305\203\365\016\311-\202\225z\320}\311\017{\345\022)\356\007\361R}\320Oj\036\352~\354}\317\325vS\021\246\035\357v\027\337\225%\300_\032L\000p\240p\025kX\335\032G\337\373c\353z\252Q\367\377\233\352\326\301\t\332\245=\336\320`\235\250\026\373\330rTB`\206#V\246e)\233J>ry\010z\364NN\307\256\320J\247\347\374ulo,UF\234[\177B\227\334\026R)\017\332O\264\017\237\357=\251\375\002\027?\262\342\377v\n_\3754\025A\032\240\024\242\326\373\033P\221\200c\366\277J\220~p\367)G\342\374w\005\202\360\246\005{\217\245)\270n\022\003I\007\t\365O\257\363?G\322\375\342Z\224\221\367\022\212(\372\255\334p\013\222\361H\267\004o\022~\257\325\373~e\017)\365\263\361\375P\032(\205\252\352m\331;--\013\024\213F\026\212v\275\336\307\314?\224\365D\245\030\311)\373C\327>\253\\\\\260o\211|>\260~\360\356\237*t\037:\223\345%\322\027\014\366\337a\375\0379\3551\304\215\340\304\242\005\370\257\365?\243\360\221\252I\362H\266\370\355oi\330.*\204\002\302=F\340}\323\321\353\205(uS\365\326\263\371\377%\027\324#b\347\025%\023\375\242n\007\302|\201\022\217\3715U\361\304\375!\320B\367\344c\201/>\305?\003\376\177\217l\371\037\266\276+\333\351\265\276KC\345\261s\221%\020\303\021\304\242\232\216\357\307\354\376t}\237\267\342p\265V\025wA\210\233\345\306@\032h\350\t\220\264\032^POG\223\254z^\211S\337\365\216\265\177\214\255\310\236\375Jz\200\2317\337b\271\205)\245~\314\047\224\354\357=\235\337\255\243\375\221\210\374\255\350\2161\3517\235\310\356<\r\215\220f<\253\345""\202^\374\204\202\"\002o\332\235\033/K\037wx\356c\364\177_\230\371\275\361\202\367\010\365\021\017CD\344~\270\235\340z\217o\202\017\276{\276\021\"3\322D\0030{\233\365\372\317\017\362\364\036\203\034B\"HzFr!\357e\340\260\371}\002\007\047$\363\314=3/\311\260\354\374}\307r\271\346>t\302\215\020\005 Btl\022;\026\263\356\335\357\261\340\217\3241#\315$0B\300\225\321\016\336\225;\217\333\010?\234\376E\020\324hO\353_g\214\007\314G\342\372\307=\022l9C\331\177y\344\010t\242\247C\325\002B\035\232;~\307T;\345\235o\303\341\366\0058`\213\350D8b\236\037?\220>\007]EG\027O\325=\220\025?\202\351\341\177\200w\303\376\312\364\3649\224\177\"\020bE\000\352\206\351\357S\317q\273\244\374K\360\230X\371\027\316F\275R\374\234\177\216W\307K\362\237\246\347\201\357\r\363\337\303\347\374\035\353\317\263\333\234\221\355K\020\020e\355^\345\022C\243>\335K\346\255\355\017\230C\233\373\003C#\345\177\312F\230h\375\376\337\210c\345\021\363&He\220h\240\206y\022\353\367\036\357\177\220Gp\203\266\277\305(\302\245\266\205\tZ\222\351\360\376\356\354\364\332O\372\212~\265=\301\250\224\222\304\022\346\212\277\364Q\315\374\337\254#\342S\352\023\342Is\002\305\002\352\226\355\373\330{\037\267?%\251\177\277%\t\376\220\030\024`M2\032.d\265\037\047\340\373\337\264\030\047\362\300h\210\226#w\331]\007\373\276\210ss!Jz\037\334\251@H)q0\302\252k\047\303\355\343\262\276pNZ\004,G\376\002q\304<\260F\210\007\227\346\243\250\370a\202\026YH\235\n\250\343\342\243\033\032\217\210\214\022I\211e\271\026\310)j\226\255\200\330\206J`\336\227\205\355\367\227\211\022$H+E\217\225\023\343\370 ^\341/\362}\217\311\031I\366\200\232k\017\250P\270\0201J\n\310\221#\345@\031\352\243\345D\261CR+\362\245\345\276j\212D*H\n\004s\021\255?\n\344\314o\032\315f\263Y\267\2678ADs\232{9\364\367\"|\351\0219\242z3J:\224hv\231\222$\310\014\024\202\255\014&\035\226L\260j4K\020\315lVm\266\323a\231\276iH\272\321\254\341\303B8o\256\032?\177\215\334$\205\220\362\345ZU\336\217CO\325v\204X\026\230e\252\206GP\000\004\241\376t\047D\223\242C[qtr\326\265\212\2235\261\311\206\255$\017\037\263\201\216?\323\226\353\261\254\240\201\343""\0007P|\210s\207\030\241`K%\"\322\205-\254\211`K- \024%\r\213\000\226\026\301b\3126P\260\332\312\226V\313b\302\266F\311J\224\241Ik\n\331\033\001k \026V\301H\205\010RY\262\r\221\263k*X[\r\nR\0054\241B\320\330\260\001al4\240P\005-*\322\264\224 P\264\226\262\215\205\261k\"\330\002\301k\010\026R\301J\264\215%\254\002Y\0134\003@\321k\000\330X\203\021\311\230\004\310L\205\204\013\000\241B\005\ta\230\022a&\024\tH\010\021\200ZHP\013,\tI(RI@\241\230@2\006\026\020\244)\230I0\014\n)BU\010R\024P\215![\026Q\2626(R\206\251!@\245\002Y%<\230@\302\031B\024\205\207Y\200\226K<\366U\260\026>+\"\3307\226\205(\013\275@\331\002\312z\325\245\nB\357:\026@\262\331\370\224,\td,|@\325V\242T\352\242U\032\241S\252\213TJ\241_8\002\242\025R\277\210\022\252\025Z\277\210\020\250%V\257\022\364\267\3166\264=\344\322J\243$1\207\265\252\013Y\355\246\311\211\262\"c\026c\272\244\331\200csX\032v\0300t\224\360?\246\374\237O\337\317\306\365g_\340\247\352\211\305\003\241\t$\223e\224\366g\263?L\375\023\331\366=\223\236\303\271\016?R\232\341\273\327\362\327\354\224Q-\335|\271l7\357\267\350\231\317\265\341>W{Q\334\315\271\253\217n\375\333/\341l\333v73Q\212?\377\027rE8P\220\204\277\032T"; + PyObject *data = __Pyx_DecompressString(cstring, 20442, 2); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (24964 bytes) */ -static const char cstring[] = "x\332\335}\313_[\267\362\370\005\314\367\322&m\2236I\323\307\3555m^4\t\ri\232\276\037\006\233\340\004l\260\215!\257R\003\006\334\200\r\266IB\232\266w\311\322K/\275\364\322K/Y\262\230\n\215F\007/B\212\331R\271\230\231+\007s\371r\266\270\220\231\313\366\007\243\020*\t<\010\314\317g\347\203\345B\260\224[Y]\316-l\004\327K\271\374\"D\315\347\036\347\346\3273\313\022Wpa=?W\316\025\362\245\340\354Fp\265X\200HL\227\021\210\326\363\271\205\034\340\321\271\004\027\n\305`)[.C\232\317\346\n\371r\261\260\274,\361\256\256\227\203\363\231r\346\212\212\327\250\005\252\325L1\263\222\0054@<\024\244\230-\027s\331\307\230\254\230-\255/\227KP\000\215#\010\250K\271R\271\024,,\0007~\371e>7W\376\345\027\010\t\\\277\374\222__Y\335\000@\246X\314l\224\202\227\200*L\266\n\2503\245\3760\240\030\306\354\360\223\"\302\013\313\231\"\203\367]\t\026\362Y\201M\340\020\005\313f\346\2260\307\302j6\177%\270\224[\\\272\022\\.<\271\022\234[.\224\262\202\356\307\205\345\365\025`\266\250\252\271L>8\233\305\362\006\237\344\312K\002[yI\000f\004Cf$}\227\372\202P\364\245\302|\177pj)\007y<\312n\000WE\344\245R\037x\262P=\010)IF\226\202O\226\262\222os\031\311`\304\253\030\212mD1\037\276\2225\213\td\246y(a\t\353\022\032Ny\243\377u\323\266\346\2263\245Rp1[\306|r\345\\f9\367\014\020 \361\300?\336 \202\210F\224\271\260\212a\240c\003\202\324\300L\341\202\205\331_\263se\321\376d\373\201\314\005\265@]\341\t\222\266Z\314\255d\212\033V[\003n\013D\252\251P\251\375[\3067\262\004W\341?;\347\317R\241\253\n\343U\335\274\020\345\325B~\331\316\r\277\274*qx\353\306\016\364Y\211\324\347\020\265X\272t\337Nv\345a\360\276\310P\304\315\000\325\205\342\314\243\047\030x\330\047\211\r\027\346\240\235\344\313\031\301Jl\\->0\215(\233\227]\020:\033\325\247\3004\254+=_*g\362\320\007\021Y\261\260\010\350V\000\375\234\250\230\307\271\014\265\200\205\302\025\326\016 3""w\007\244\246\221\313\226\372\rk\257\022\273\257B\005\254\027\363v\007\346\034\304l\n\353eQa\252\221\211q\n\007.\331\316\241\371b3\317\346K\353\200T\325\243h\347\231\345\047\330h\036C\323\233\047\204\305\365<\347\357\303\276\340\047\242\341\227<\325\245\232\010P\210\221\313\013\375D\n\341R\334\212\022\263\366Qq,OV\373\273g\252\377;\017\003Q\360R\366\351*t\007\350U\301Y\030sp8\201\236W.\0247\256\0043\345\340r6S*\007M\047[\310\344\226U\017\314\026\213P\265s\205\371l0\230\317fq\000\277\224\301/\304\210\014\330\200\365\031\034\344\203\261L\014\352\030\310\332\240\201\027`\371BY\345\324w\376\322|\256\264\272\234\331\020m\240\017\350:\177i\021f\220\325>h\342\347K\347K\375\231\371\307\310\036\360AQf\212\231\374b\366\"b\231\317\256\026\263s\031\244\037\013\275\224A\304\301\354\302\002\224\351\233\340\245K\347K}\2270[\030g\221\243}}}\257_\t^\t.B\346\375\237\177\023\374\376\307P\020\032D\016\232\000\024|\000\375\320\366W\004\222\322J\241P^\202\242\204\302\323\t\205y\035\353iv9k}\225\303a\377I\376[\360\320\030R\242\246\235\207\356\r\037\367\007\2230\342^\004\337E\321)\200A\375!H7\047;[D\260\361R*4\023\032\035\215\017\315D\022\211\276\301\314|0.\306)\0211\030\n\317\304\007oG\206R\"f\\\017\036*r<\224\010\215\365\r\256//\1776\230\005\306\217g\312\020\235\017^\302P\256\264\024\374.x\355J0\226]\207Yx9\370=\00601\306\374\020\274\3267\224\311cu\254\344\236\006\345\324#\230)g\247p\246\264\004\334\035\315\345\263\341B\271\254\275\353\310\205\310\323U\230\226\36282\007\307\nb\020\014=\316\0263\213\331\3261z\200\210A\226\303BL\300b\014O\306\206fb\361\324\314p|2\026\356\323\251\220\361\231 \210\017\331\314\212\3002\036\345qyw\245\334\302\226\343\302~+\021\237\034\267\320\217@\351]t\311\351\034?\203\312\201\311\335\3147\210 \032\033\237L\t\004PK\020\212\246\2420\375\334\213\364\211\317J\337@\007^_X\310\315\345\240\314\301\021\331\256\351\303\344\344\360pt(\032\211\245fF\242\311T\302\352\001\326\230\312\217\306R\221D,4\212\365\037O@\n1\344\004G\240\022\240d2E\032\262\014\317\214\204b""\341\321\210N1\n\231\005S\033\253<\321(\3444\223\272;n\322\231V\243\371g\177 \232\220\250\205T4\036\363\371j\244\260<\237-\372|3\022\037\rG\022\255\277\360\320f\177\306i4\323\"\204\327\245\370v\047\263\276\260\002\265\034\232\317\300\304\3768\353\252\266\321\334l\021\047k\2548w\245\201| \252\314\252\256\261H2\324\n\325\330p\024dUw\027\177\222\301\031\241\234+\n\301\022\244\216\253\220ep\250?Vp}\036\274\004\262\004\264\370\362F_\014\332>\022\224\\_]-\024\313D\016\222\222\234\034\037\217\047R\221p\037\306g\363\205\365\305%5\016\242\374\213\262\234n\357\255\033\020M\204\211\354\\\0013\007r\277\201\221\030\304+\0301V\n0o\315\252^\\\006\274\231\305L.\337oe\010\2636L\3140W\210I\277\364MP\317\002\220(+\307\355!!\323\313Av97\013\271\224\2630s\003e \334f\305\340\236\017\216G\306\257\336\370\352\006\31588`\301\214\263>+\004\267\254\230Mf\327s\313 \004\313\320\nPh^\010n\024\326\305|\201\305]E\001\317\372\000\006\316\274\020Pq\004\275(\206%1J\316\300\347\300\352\213\301y\250\2079Qw\360\365pf\271\224\355\217\257\203\004\265p5\201\223B0\002\204Da1\361T\360.\016}6><\223\010\305nEf\"\261003\034\231\356c_$\313\231b\271\3257\311T(\2212_\3556B\300w-\206\010\372\220$\047\234\014\241Y\203\344\2032m\226G\346\263\213\031,\035\207\256\026J9/\364Y\266X \210X\204\315\211\241\242\004\"\326#\003V\302p\360R\036\206\005\007\253\036|\340\300\200D\323\3567F\027A\245\202\342gWV\313\033\242\244\3753s0\241\366\257@7\316\221\356E.\202\240\356a$\202\351\335N\266\016k\334%O\212\325\345\365\322\343\034\0249\217.\024;+\326I\350)A\325>\n\342\357|i%\007\253\216\234,Ei\035W\252P;8\205\303o\tU\023\2425\010\037\244/C\357\236\355\247Y\037\353Y\002\0045\322[(B\267\312\316\2436J\002dM\221_\324\225\364\2276\310S^*\312\365\233\014\302R\023W\3262\362\263\031\245\306\353_}\232#\320\\ae\245\220\267\000\270T\264\202\262\337\010\200\032\364,N\227\334s\302E1X\314b\357Y\311\315CW\023^1\300\240/4\024\032\032\032\004\3717\251\334\231\244\310\300\025\354\307\336\203\353\345\231\205\334\362\262\216\024\243Sh(\236\304?\375e\274\325W:\205\177|8\024\306\177*\225\366\271\223\305\223C\342G\0474~w\322\004\374\323\311\022-\022M\343\202\024\377t\312\351\226IM\222\026)t\002\377\370\321\321P<\024W\211\342\376\211\306\343\360O\245\031o\221(\021\217\307\304\017\262\203\\\365\r\017\372|h\047\334%\225\254\337d4\206\177\352\033\343u}\222\n\305\360O\2453^w\272\004\374\323\251Z\260:}+\034I\313_""\225\324\016xR\217\047\242C\021\345\232/\354\240\353\233\345\345!1\371$\245(R\032\024mz\320n\366\203\255\373\300\240\325\003\006#\251\020\376\251\257\214\327\365M|\034\376\251T\332\347JT\230\337\010\027~\315\241;\n\363\016\272\311%\030\363\320\223\316\026\005ph(\n\377\350{\343\343\230\206\302\243\327\207\022\361\251\244\366\250\017\\a\317g\237\017\216\206\206\356\250o\255\220A\340\005z\261\300J+\032\216\030\237\3655\003x\277\034\215\306\"\311T\"z\047\302C\026\006\017\320\213\005V\020\212\000\362Z\337s\210\367c\\\251@SOB\272\021w\330B\343\003\366\342\232\032\211\246\"IX\237G#\211\244\007`a\363\203{\320\205\260\351\305c\221\360`h\360\256;l\220\371\201\275\270\302\351Pl(28\032\207\312\344A\013\223\027\352A4\030\031M\241\006\302\362\032\004.\210\367\343D$t\0474\025\272k\373\255\317] \317\367C\243q\250\203[c\241\304\344`\374\336\244\027bp\371Gx1\306\241\300\241Qd]r\nFm\037\220\205\323?\306\007\351$*\245B\251THp\233\205mt^\260\007W8\224\270\003e\231\014\017\305\323\221\204\007`\260\371\302\275\350\342\267\243\344`\213\266\274\026&\016\361\305\301S\267L\231\010\335\212\307\206G\357\252l\355\260\205\302\007\354\301\025\211\335\232\034\035\206*\265\375\006\207\033\344\375>\035\211A\264Ur\027\304\302\345\033\321\n#\307\346\213i7,\267B\3438>\341\237\030\025|@\006_\213\030/\322D(\r\243&\216\n\222\363\034`!\364\203{\320\215\204\306\306D\343\223\036\3639\013\373|\026\273%\372`\214\005\354\317]0\037\024\211\320X\324x\022\361d\222\207lln`\013t\356OZ\246\216\336\032\231\002\376X^\353S\016\361\371\370\316\235\320\235\210\361\215\305\303,`\243r\301Z!\363|\3222}|\014\370:\036\275\025\211\307\\A\013\207\027\352A\004\r-\226\212\016\205F?WR\202\013b\320\371Gx1\306b\0211*J\217\365\275\035\366\371\014F\265T$\254\233\"\007\330h|\340\036tw\242Cw\344XB\276\301\2738\204\010\021\300\0051\250\375#Z\341\366|\327*=\314\273\341Hb0\236J\305\307\\A\203\303\007\352E\024\217\335\032\215\334\272\025\tS\257\347\000\013\231\037\334\037\035H_\226\327\205\302@<\037[s\264wr~\331\254<\026J\r\215\000\307F\343S<""d\243p\003\375\260\220\244B>\366\365nr\312X<\341\232+\\\020\013\223oD+\214\034\233/\246\335\260\304U\337\211\273\372N|\327\2763\016R\346\220l\355\312k>uA<\037\303\302\352Nr$4%Gq+dPx\201>X\222\221a\020\231>\037\213\000\347\303I\037\220\215\3177\306\2034\031\301\035\261TT\266\304\244\027bP\372Gx1\216\304\343)SOv\320\302\345\205\372!J\244\250\363h?C\301@\336\357\307a8\204KN\336\211\202\030d\373\355\2179\310\373\375Hb2\231\222}A\373\255\357] \357\367\t5\"\220\317\3726\261\353\0100\031\213NLF>OD\245\030o\007\r\016\037\250\027\221\020\001\241\214z\321\357\202X\350|#<\030\247)\225\3259\335 \203\263E\214\013i$:\212\177\3523\343u\245\033\033\206\177*\225\366\271\023\305\341\337$\376\351\224\361\311VIM\022\377\024\361\361q\\\003KG%f!\367\007\211DdT\376\352\344V\300\235:\t\377F\360O\047N\216\264Jj\222\370\247\230\034KN\216\311_\225\324\016\270R\247\243\360O\245K\267\350B\266*\014\r\014\3020\322N\216\246\302\221\261\020\376\321G\226\227\177\037\216&C\2030R\204\243i\370\247RG\375\325ua\020>G\242B;!\\\225\234\007\375\277\221\032\267\360x<\254\025\243\341\026*\322\360\264\326\322\266P\327j\203\320p\241\034\031\216\302?Jf|\374\003(\276\341@+^D\022\221\004L\236\032W\213Q\013\341\2420\272K\267\350\333\221\351q\370\247\322L\373\217a\221\265\365\314\362\360h<\236\020?\224\306\366\363\364\303\320 \207\215\216x\270\225\272x8\021\032\202I\200\034\225\232\205|?\220E\033\316\024\325\006\256r\373gf\320\314nf\306\rX\360I\270\224\235{4SXU6\200b\003\313\212_\314\226w\211Es\000\226\215L&\366\210gJbKM\332HZI\320\212l\331\n\343\306+\303Q*\363\360z>\207\026{\026L\233\016.,g\026\r\356E\227%\243O\004\047\006\341\306hS\203\321\302S\007\226\013\205G\263\231\271G\032 \r\023]Y\023\220\243\047\023F\035.\256\033\316{, Y\214o)J-JQb\245\030\t\215\250>3\342\337y\000,Z\316\310XhD\367\257\221\026=m$5\023\036\032\207\216\024\017[^\365\221\007\342\367\361H(\0311>\366""\251\005\360|\211\221\361\204\366\230\357X\270\305gT\302\324L\022$=r\014\206d+\361O\305\251\257S\211H\014\327\265\021\333o\360\270A\036d\"\301X<\034\261\375\256\357-\220\353\373\334\342\322h\341\211\260\314CS\344\350X4\2525&\321\026\272\023\333\250\217l\372\356\204\306B\370G\351-/\377\364\016\314\315*\315P\213\024\2223w\302\267\341\237J\253}\256\304\000\027\251\221A!\230\266oi\317L\010\027\301\256 !\361\207r\324&\2150A\034\212\214\247|@\036\204\356\230VH\223\243\361\361\210+\350AfC[\"r\177\343\227:6\252\246\343Q\377yy4~k\340\232\370Q\351,\277+i.\237\035\203\372\035\n\343_d:E\016%\346!\376\251\212\023U\206\201\341\35049\326\327&\344\375\032\343\364\327\3267-?P\251\345\377\372\213\026\315SD\320\027\211;\221\324pT\271\372K\026t\177\235LF\305\217Nm\374\356\244\351q\374\323\t\323\343-\322\001\203\246\205\241\235r\365\047,\350\371\314$k\221B\047h\025\217\362#9r\222\316\225\263+33\006$g\3461XX\342\366\254r\025^\036ta\007\306\032\236\266bg\024DB\350O\312U\311y\320\373\215 &\312\211\211\356FL4\006\377$\217\311\325\237\305v\3411|\026\232\226\277\352cw\035y ~(d\274lu\002\300\276\336\345C\375\315dr&\034U\256\371\332\016z\276\307\3101\345\362o\306Z}c\222\371\247\210\217\215i\365\345X\013E\346\030,G\360O%3^\236.\026J%b\306\256 \326\312\304 \026\217Eb\351hL\257\210b-\326F\261l\246\030\037L\303?\2126>\2360.\315\203\302\27194\346\024\326\260\3438\246\307R\321\321\210\361\321\267\036\000GF\321\211P\354\216\345\345\337Z\020\327\307\243\242\n\311Q\037\215\266\256W\0317F\016\373\300\2776`a<\256\327]\343-V`\343\351\350\270f\352x\013\366\216\247\343\360O\047j\205)\005\377t\"\377\232\237\020\032&\371K\tX\200\247N\300\220\254\307\260D\213\321,\021\037\202\177\343\370\247R\032\2577)\376\r\\\273F\216\371\302\ny?\262\222\265Jc\222\370\247HF\023z\276H\264\2309\022\351hBWA\"\335*Q|\024\377t\262\270\377*O4n\034\315\023\331\2140YI\206\022\360\017\346h\371K\037\261\000\307\220\324*\261d\013\345\030\232UDc#\370\247R\032\257\047\251I\342\237\002\246T]\307\311\026\265\235\034\213&\265\350\232l!\304""\"\\\214\237\311\211D\n\377Tz\343u}\220\n\207#i\371\253\322\332\001w\352\370\320\210\370\031\226\277\372\023+\340\363\3110\021EF\342\312\265\277n\3252t\244\301`\177\326\372\033\372`r\020\376\251/\264\317\225\336VP\265RU%\047a`\023\353\016\343\323\237\270\000\255\276$\232\304\362>\271\224\231/\333\014\262\271f\320o\246\031d\363\314\240k\226\031\344s\014\032S\223c\362\300\200\312A\371-\374\010R\330\321opcHc\216\217\313_\203\027\374\n-y-\254\000QH\301kpB@\241\034\032\212\312_\215\022\375\204Ry\rJ\204\020J\364j\224\030\320(\225\255\266\3557\3505De\302\000VV\032\2562\324\000\223\255\006Y\231[v\336\036\200M\206\r6\264\270\241\214 ;\322PeCm\322l\270M\237\264$g\001F\027\201,\232,\010\247\207\",Z\010\302\350 \230M\203\261E""\367\000\030-\026\330\242\307\005\3454Y\221\026]\026\224\321f\301m\372\310\326\235\207\030e\nf\221e\2038M*\306\"H\201\0305\nh\223b\333\313\373\200\030Q,\302\242\314\003\347\344\261h\213F\006g\204\262\030\233Zf\217\357\007c\364\362\030\213`o\004\247\230\307[$\363\010F3\217\262\210fv\377> \233d\036a(\366\302\031\301<\332\320\313\3416\271<\306\246\326:[\340\2050Zm\270E\252\033\314)\265c-Bm0\243\323\216\260\310T\047\030x\310&O\303\014i\014\304\310\3221\206$\r\262\311\321@\233\024u\032\302\025d\304h\240E\r\203qrt\224E\217\2061\2024\324\242\310u\246\302\027hS\347\21624\372\3050J\335\t\014\275\356\030\233jw\234M\273\353\354\206?\224Q\357\216\263\310\367\213\342\364\273SX\005pG\261\022\270#Y\021\254\363\"> N\274\035aS\356\206\273\310\266\243m\232m8\047\330\216\261\250\345\347Q\374`6\275\256\030C\260O\004\243\330\025oHvE\3304\273\242l\242\343\267\243\306\047.\261`!F\262\202Y\304\332 N\246\212\261\010T F\232\002\272\210rg\354\312\324?CWf\236\214X&\366\031\034\037\020#\200EX\224x\340\234$\026m\321\306\340\214H\026cQ\253O\373\270\2026\225\006h(\3440F\235\2112\224\031\230M\225\201\332\024\3613C\276@F\235+\312\242\321\047\206S\352J`\321\353\212aT\273\342\274\264{\350nA\263?\275\273\322\352Og+\032\335\364\271O=\371CmJ=q\206\\\337(F\263\047\205!\334\023eS\357\211\264\213\300\316Y\371\301\030\371<\306\"\336\033\301I\347\361\026\341<\202\221\315\243,\242\345\021\032\333o\023I\020C\234\005`D\021\334\020C\000\233\010\002\261\314\325\3310w\230\023\241\2416!\014\350\"F\307\331\004i \047J\203\031axf\314\366\213#g\036\000\047\323\200m:9\324E\250\211\264)5PN\252\201{h\365R\342!\242U\376\236\254}re\031\322\2518\036b\004(\230E\202\r\342D\250\030\213\014\005b\204( #E\034\221c\201\261x\330\035\346\264i\250M\035\003\272\350\323q6\205\032\310i\324`/\225>TxIh\231\2777s\277\234Y\266\326\331?/\204Qc\303-\222\334`N\227\035k\021g\203\031\205v\204E\246\353L\241/\320&\326\035e\350\365\213a$\273\023\030\252\33516\341\3568\233vq&\313\3663J%\304\"\320\0008]\022n\221#\001\214\n\tb\231\333\247 \375`\234\030""\026c\023\345\211p\021\307\342m\"Y\004\047\226EYD\3239I\026P\207-}\201v\031\334Q\246\020~1\254\024\356\004\246\030\356\030\273\034\3568oA|\310\363\222\325\222\034/\031~\331\333\331\332gD\275\020\233\032\0067$y\300\214.\026k\210c`\233B\026a\223\311N\237\372\301\030\251<\306\"\326\033\301\311\345\361\026\301<\202\221\314\243\334DGc\021\036\362\020\2120\027\211\n\344%\016c\\d!\310C\2206\006\2270\256\177\361S\274\370h\\Z\253Z|t,\276\312\025?\255\212u\n\327\003\340\004\031\260M\023\207\272\3102\2216e\006\312\2113pN\237\321\346\251C\277\234.\227.\317\206\270\351qi\362\024\304E\207[\217\347:!\354\013d4\271\242,\332|b8\215\256\004\026\255\256\030F\263+\316K\273\207\356\0264\373\323\273+\255\376t\266\242\321M_\334\232c\343\23696\356\236c\343-\346\330\270{\216\215{\347\330\270g\216U\047\247y\310&@\303\014\t\014\304\210\3201\206\014\r\262\t\321@\213\024\353\004\266\007`\023d\203\rMn(#\313\2164\224\331P\2338\033\316\350\343\047\272\375\241\234RW\234M\256O\224\213fW\n\233pW\024\247\336\025i\025\301u\202\334\027h\027\300\035e\350\367\213a\344\273\023\030\352\33516\361\3568\233v\353\304\272\027\302\250\266\341\026\311n0\247\327\216\265\210\265\301\214R;\202\223)O\305\273\202.\002\t\310\250\263`n\322(\212\321E0\027Q\004\265)2g\354=\000F\225\005\266\350rA9eV\244E\233\005e\324Yp\233>vn\337\017\306\250\3441\026\241\336\010N+\217\267\310\345\021\214b\036\305\210\266\356\007\360\001q\222\355\010\233b7\334E\260\035m\323k\3039\271v\214E\255\274\217\300\366\333\364\021\304\020f\001\030E\0047\244\020\300\246\201@,s\272\317\300\025\344$(\240M\205\rs\021\242\242lZ\024\214\223\243\2406E\352\206\004W\220Q\244\201\026E\014\306)\322Q\026E\032\306(\322P\233\242\204%W\251K\030lj\022n9\312\206pJ\022n\271IA\030\025\t\217\234d\337\333\340\205\330\3240\270!\311\003ft\261XC\034\003\333\024\262\010\233L~\037\204/\220\021\353\212\262\350\365\211\341$\273\022XT\273b\030\341\2568\213v\367\275\023\376P\233zO\234!\3377\212\321\357Ia\n\340\211\262K\340\211\324E\210DG\3111Db@Q\245\374\026\031\010R\371\242\337d""\204!\215ylX\376\032\274\340Wh\311ka\005\210B\n^\203sl\330B\031\227\277\223\344X\250\343fY\251\3746\362\270YH\242\337B\037\237\264\361\333\030-\204^|\026:\206\315 \223\267w\030\237AMa\205\336\nZY\020TeCA\223\025\001Lvx\373\207\366X\231\211\240\316K\207\354\254\004P\347$BVF\"l\362I\312\337\021r\254\234\222f.T~;\227\244\231\363\320o\345\220\034\261\361\333\030-\204^|\026:\206\315 \023\307>\264\307 \226A\205\333\204,\364\022\250r\220!\223\211\014\353|\322Q\371krH\233\3517\355\231x\323f\312M\333\223m\332L\263x\327\t9\032\251\010\020V\3557h\005\210\360\n\277F,B\032s4-\177\r\336\2506\010V^\013kT\233\002\243\327\340\214\032#`u=\212\3455\310\025@\345`\207\255l\024X\345\245\302&Cv\007\013\002\204M|\330\262\211\017\033\233\370\260\307&>ll\342\303\266M|\330\262\211\027\247\024\254\243\004\346$\201\347 \2019G`\037#\260N\021D\206\243\362WcC?\241S^\203\017!\204\020\275\032#\0064J\321&\354&a\265\010o\203\260\332\003k\016vk\020\222AD\210\222\021K\210\214\030\3611\342\021\034#Fd\214\330\302b\304\022\023-\371\302\210\024\036)\302\010\016\266\254`\211\007\221\351q\371k\260Mk\221Ry-|\323Z\200D\257\3018m\304Eq+\215r5Z\031\"\304&`PK\030!\227\001\215^\006u\006\3620\305\260}\220b\330:D1\354=@1l\035\236\030f\007\047\206\355C\023t\273\215\361\031\374\024VYXA+\027\202\252\214(h\362\262/\317Q\217x\r\217\206pI,n\230I\341\345\376\342\2613\0330\\\314b\352[\3312\202\344\023W&\034\315/\024dH\274\255\245\337\2271\360Q\272FF\206\342\253-\023\3127j<\021\370@\030\243\314@\210\264\221\220\370\321\334\032\321\235f\304\335gFt\227\031\261z\314\210\3510#\242\017\216X}p\304\364\301\021O\037\0341}p\304\356\203#V\037\264\356\212\341!\223\205\005SY\271@V\226V\214\312\332\002\031\022, \047\005\357\236a\001\027!\002\304\350\320\0207\031\"\202Q! .\"\004\314\242A\336Tc\373m\n\010b\010\260\000,\177\202\233\354\t`\347n_\212#!I\251\353Q\027\336X\031\047-\r\217\035d\231&-\275\216\n\332\031&mm\216}S\216+hgl\200&w\016c$\230(C\207\201\331\304\030\250\233\"\274{\307\025\364P$\200.\2124\314K\221\210rQ$`\036\212\004TQ\024""\025v-Q\313b$jlE\242\036+\221\250\261\017\211\332\226!Q\313&D\276\377\247\2066\363\366\027\004\360\016 rt~\"@\031j\277\311Q\200(K\341\327y\336\tY\335\374\316\220\3701X\365\214p\307=\037\334\321\263\301\035k.\270cf\202;\341\333\362\327`\003\277BG^\013\037@\024B\360\032\214\352\"\"\361\274\036\335\305c\373\345MC^\210\316\326\r\047\022\374\300\206\034w,\221\346\006k2\335\021\036\222}\310\3217\032\371Cw\373\302[\010\036\345W\020\223\302S\030\023\345S \023\351-\224\207\214V\231{\262\02470y!>\205\226pON\006\354\227\237\214\365\317\325\257\2202\302[@\237\244:QL\374\030\212\365\002b\324\275t\030\325\213\206Qk\2710j\026\n\342R(\345\032\214\"\244\220\352\200\205W\300\024j\0210\330EPe F\014\274\266\211\234\310t\312\370t\206*LY\332A\223\251\202R\266*\2503fwQQx8:m|,;\014[\331\251 \317\016\241Vv\030d\331\351\313\253(\314r\260\321\373\340\266\021s\254\026Jb\2375\340\216Y\003\356\230w\300\035\263\006\33416\340\216\331\003\256\272\365\312\362Z9\020@\347b\205\355\234\010\254s\243\260\225#AL\256\311dT\271V~\030\322\231\251\200\235\023\302t6\030\260\362H&\355\014\322\343\344X\350\323\343\006{z\334\203<=np\247\307m\324\351q\013\263lH\362n\047\313k\345C\000\235\227\025\266\363#\260\316\223\302V\276\366\005R\022`\347be\340\305m\241e\030-d\026.\203\312\203\311 \262\361\0304t\031\230\3455x\025@a\267\303V\036\n\254rRa\223\237\202\350\\e\213\265\033\253\325N\275M\324j\235\254a\332m\222.\037\263\274\006\271\002\250\034\354\260\225\215\002\253\274T\330d\250 v\256\212}Q7\373\242.\366E\375\331\027u\261/\352a_\324\315>q\376_\335\201fy\255\274c\274\021\333a;\357\030o\304*l\345\035s5bq\301\231\366X\024x{\222\0053t\264\352OV\214\241\306\247W\271of\3230W\276\357%Z\261\255\236G\264\222\210\347\021\335a\350\247\031\013\206\337\270\202\342\321\304P\"\021\272\213\023{$9C\346_\002\224\3440\342=>\241\231\234\241WH!r<\024\013\207\000\000\203\313p\"4\026\321\020J93\036\037\r%x\002\t\321\t6\236\302\037>\3163\023\313>-\047\262\01333db\233\212\306c31\370\010\222\315\314\210\327)\301\311\347\013e\030\202\320?G0\316\370\026\374\236\231[\316\224J\346\335+\365~\204\375p\004\370\221\020t\013s\350 Rt\261\212\304\353\215\376\265ec\225\257h\355RoT]3+\231\\\036\023\256d\313\031I\033\006\n\363\353\313\242p+\305\302L6_\026\037\316P\375\241\233}\202\316j1\273\232)\n\310*p\360\261X3a\010\037\034Ui\325\363\027\352\301\314\231\031|\367Q\305\212\352\237\231\201V\3628[,\t\316A\010Z\005\272\372\001MQ\336y\251:+\211V\017\254)\315\344J\300\276ba\035V\177\331\031|\357r}\0251I\326\227\326\347\346\262P\036\000\010\006\256\303\232n&7\357\016\273\022\024\201\207@1\002\027\215\211\264\025\024\226\313\0246\246\314\004\360\332FS\204\257\335\264\212\363\032NS\014\224\316Z\313*\340:-NgV\305\352\024\3019m#\211\241\242T8B\213\304\325\261\342\033\262],\2231\tV\001E{\300\356\304b\003\335\211V2O}@\236\317$`\025\310\234\317\024\027\361\031S\371fi\2464\227\313eJ\345\215\325l\246\264\221\237\313\025\372u\013+e\312EY\244\314\343E\351\231\235\315.\346\346\237\316\346\312\263\033\320h\257Ck\226\\-\225ss\217\346\226\261]B\377*\0273sY4\242\237C\241G\260k\256\260\274\234\025CEi\0169\221\207\236\200\t\204\277\204\003\301\374|\026\033\277\252=\321\307U\027\230\317\226\346\212\271U\374|>WZ]\316l\210\016\205\235\002\376\200\257\371\262(fve\265\274\001e\004\032\341\267\364$W^\312\346!\032\230\000\230\346\240\225,@a\347a\024\300\022K\277,\031\372\037Y""\376\345\334J\256\214\036\223\224\"sE\355\205\261I\214Or\220\242\016\211\203\231\350_\310e\341\301gj\205\007\371#<\205\331_\2632\225y\035W\207\260d*Pr?\225\353z!\227?\214\273\210\375S\374\224\226D\265,e\227W\261\231.\311\007F\227\263\371%\261\265\225\313!\213r+\253\320*f\262\305b\241\010\215-?\237}\212\244\332\331\231\254\254L[\r\2629\251i\202QJ\324\003\216\315\245G\331\r\370Wz\364\004\271\261\234](\317f\212\340\346\027\313KbDV\257\366B7\202\177\331\242d74\341\334\312\372\n8\222\323+\331\225\302\nd+\003\271\022d\265H\316\014\242\227\003\370Jiq\005ZKnu9\227-\346\221$\321H\312\353\253\220!La\263\363\331\307\342g^\372\327W\3630\332?\005\336 \036\273\330\320fdX\370\364\304#C\362\261`\360\256n\310z,,,\300\230Q\310\027\2638\246gq0\300?T\274\211\241\311\226\\\n80j\204\256)\255dr*\310\367\363\2601A\206\360/S,@\343\207\361G\371\327W\3017\233\315\024W\221o\302\217}\023=\353\313\313\n8\017\177\013\231\225\214pJ\024\204\246\016\356RF\364L\341\303F\"\227_=\201\006JU$\374\262\226T\264\316`\025\3762%1\036\210\037Q\0363<\010_\t*6[\226\263\002|6\007,\312-ge\317\242\tl\265\260\014\235t\265\260*\272\270\370\271&~\007\354>\357\351\377\324\206\005\034~\013X\200\215\">\216\207]\0329!fD1\037\202h\264\014s\004t\017\034\336A\010)\242\"\033\233\260\323\363\026\304\007\2169\307>\254\206\252\023\362\243\215JW\205b^{\273\362\t|\331s\246\222\371\377\325\377B\000\002\307\235\343\237\324\276\256\017\325\2376\200!\257o\236\337\\\253t\354\364\274[yV;\371\277\216\027\201\267\234\267>\251\r\000\2536\0070\370v\345J\025\276:]\231\250\024j\023\022\322_\353\020\020\347\314\305\332\232\0009o_\250ejk\004\275Z\237 (\304\327\337h\334\337:\266=@q\375\365\014\305]o\3646\024\364\353&\346\375\311\271\277.\374\253\373\370\346\267\225L\005p\275\261\231\252\234\251\254U;\320\373\260\332[\375\252\366M=\3258\211\301\311\312\305\352\333\325/k\037\327B;\201\2676\237T\262\325\037\353\037Cu\007\336t\336\374ou\255\326S\207\317N\302\367\305\352\251\352\335\332\243\306\251F\2729\320\214n=t\022I\0479\343\314\374\342\374Rp\n\317\376\372\327\277~\353\030\354\004g\260s\004\235\221\316(:\321\316\333\235\262\334\271\352\232b\307\047\3376\007\376\272t8\032\307\232\047\367D\345}\347\376\003\347\301\222\263\224srO\201\240\215\2160\322\025\356\274\203\316\235\316\tt&:\023\350$:\223\177/\261@\351C\347!P\372\253\363\353\006\020\364\254#\202tE:G\321\0315T\202\223\354Ly\211=w\376\020u\357|p\271~\275>\341\246\364\335jg\365\\5W\373\255q\256\261\320\0145\357n\2558\311\224\223\202\232\3178\231Ug\3657\240\346y\307\020\0225dj\035\234\333\300dI\342\257\330\326\211\304\357\232\241C\360S\022\371\260\331\273\0472\017V\373\177\027\265\263\316\354\2343\007\335\t\230\372\047P\364\223\"\223\350\233Fg\272\363.:w;\357\371Q\353|\00753\371\327\247\207\246\370\352\326\332\236h\206V \333\353c\347\361\023\240\353i\307-$\357\226\242\231\210\235Ag\246\363\027t~\351\314\370\220\376}s\342\320""\214\376\2719\360r\242\363N\n\270<\357\314\003\227\327\200\234bG\010\251\n\251NF\275Ks\031\234{\235\367\275\024\237\277p\250\276v\245>X\317\270\251=\013\311nT7\352\307\0327\032\217\233\023\315\334\326\357P\235\316$t4h\034k\316\332s\240\346w\325\210u\047\023\215d\224H|T;\251I\374\336\371\036\276N\377u\375\220\204\2564\277\337\356\340\304\236rN\235\257M\324\226\260\0200\017\301lW\033\301\231\243E!\344P\001%\370\335\371\375\017\240\367\317\216\030\222\035S|\246\226\261\200\316B\347\":\213\235Et\212\235\277\243\363{\347\355.,n\3278:\343]\023\350Lt=@\347A\327\":\213]Et\212]O\321y\332\265\201\316F\327\263.\306\230o\234\323\347\305\034|\376\207f\346\257+\207\344\314\262\273o\277\254B\237\253is\331Y^qVd\205\322\224\031G\047\3369\211\316dg\032\2354t\026p2\235\313\350,w\226\320)un\240\263\321\371\014\235g\235\277\361\252\377\246\202\305\273p\361P\355\363j=Q\367\014\001\357U?\256\206k\257\325?h\204\233\377\327\31447\266\337\200\346\345\244\345\310Ut\212\277\003=\177\250YK7L\321\257\306\210\310\345Z\257j\237\027~p~\200\257\247p\274zs\363~\265\243*\310IWnVOV{mB\323(\344\034x\274\272`\210\005J\0379\217\200\367O\235\247r\212\245\031+\205N\n::8\367\025\323g\321\231\355\234\363\366\376\213\227\016\305\335\376\372l\303\323X\336\257^\257\246j\357\325/7R\3153\315\265\255\327\266\377\003\314q\246\344pUrJ\262\343\014#Q\303\206\255\340\214u\306\210\304\025#uJ\022\017\314\327\227\014P7\017L\2425@\001\211\237\036\236\213o8o|T\315T\237\242\350l\373\367\314Q\337\366:\205\316\224j\002K\350,u\346\321\311w\026\320)t\256r\246\177]\ta\231~l\256\035j&\303R\275\321\234\330S\353\370\331\371\031F\023\331\242\245\034F\323/\215\256\324\252\365\210\342m$?:?B\027\204\221(\377\327\215C\023}o\353\2313\221\330\t\274\353\274{\251\336Q?\213\351\317:g\373\352\047\353\227\032\275\034\336\242D02\2024\001US\006\222\327\325\334LK\013\222\327\036\240\363@\r\2114K\320\310\370\007:\177tFq\354\217v\335C\347^\327/\350\374\322\225A\047\323\265\214\316r\327\023t\236t\335\n \303\002c\350\214\005b\350\304\002\361\200\315)""\347\330G\316G\260\322\002~]\352;T\277\377\254^lx\326\002\037T\007\253\363\265\276\372\267\215\371\346\205\255\216\255\367\266\257:S\323\31644\321\254\223-;e)\014R\315\352\336$*8NU\232\307Ld\225\002\211\375\355%\261\365\\\357%\3753\347\356=\347\336\202\263\260\350,>F\006\253e!\215\2634\307\215\2433\256\206[\232\366}\047\267\010VSDM\373\367\321\271\257jr\026\235\331\256\271.\306\004=\303_\202\306\r\275}\372P\203\014\362\343\303\346\303\355\336\227W\333\025\047\r#\313\376\345\234%\237J\374\311\371\tV\330\320\263%\026#\216~u\310\262\374\247\271\262\375\2753-[\326\372\301+\032\332(4P()+\346Ct\036v\376\214\316\317\235\277\242\363k\347#t\036\271*t\024\235\321\256\004:\211\256$:\311\256\237\321\371\271+\207N\256\3531:\217\273\236\243\363\274\353wt~\357\032\301\036:\022H\242\223\014\374\214\316\317\201yt\346\003Yt\262\201\205\200\177{\350\373\364P\235\367Z\243\263\341i\005\037V\023\325r\355\353\372\235F\271ys\353\344V\0372\367\256s\027\370\013\235`\035\013\240\0061\222\362t\317\245\216\240\365B\252\356\333C\346\311\312G{\246\322Y\227\202\333\313)$\211\320\330\2515\047bV\234CgN\315\351\217\321y\334\371\034\235\347j\3151\202mnD\265\316]\007\037\252@(-0\341\323\313\207\252\302\201\306\333\r\317R\366?\325\331Z\240\026\255\337o\006\232\303[\275[_o\217\355k\254\235\350$=\341\205\232\256\254\313C[\003\207\022V\2567>n\214my\246\264\217\252\305\332\251\332\335\372\243\346\251fzk`+\272\375\320\271\007T.9K8\352\210^AR\027QG\342\026\037?f:\215\212T\221|\345\352\241X\373y\343z\303#[\375\267\326Y;W\313\325\177k\236k.l\205\266\356n\257\034Ds\344\234\271T\357\260\350\374\364\360t\236\250\274\251\304Y\313\2737\212i\330!5\201n\005\266\0105\217\316|\347\n:+j\376-\243S\356\\g\205:]IW\277F\372L\307?\003%{\\\235\330=\356\330\346w\025To_\0338T\265}\331(z\224\250\316\311s\265\301\332|\275\257\361ms~\353\302v\307""\366{Nb\177\213\353)U\306+u=\365\336\370\342P\224~\333\274\356\021\336\235\223\227\352\235\365s\365\\\343\267\255s[\013\333\241\355\273BT8\230\026\3129s\255\241\233\231T\360\330]\370\365\315\3130\034e\024\2717k\0479\345g\233\357o}\276\2259\254\276\372\2763\016\002\312]1\004I\251G\213<|!\305e\274\335\232\232\255\312\306r\211U\311\247m.\332\177\2662\007*\234\230 \271\360\255\253E\024\220\204\235ut\326\325<2\210\223\304`\327\020:C]\341.O9\177\370\221\265\266C\225p\317\032\374G\316D\312IA\331`\242\226B\\\321)\376\341\374!\027\032\324S\250t\244\n\321\242\252X\007\347\274\032\021\251\311\271\324\336\262\354Iu\356-\315\341[\242]0l\006\355.\330L3\264\357\202\301\242\270\255\005\373)\304\232\336\361\315;\3660\347[\252/\266;\016\337\364\240\241\310\235.\220\\\366\264\320\047A-\207N\316,*\374\n\364i\373\252\2114\240\3578\357\234\253\205j\323X8\030\310?\256\365\326\276\252\017\370kC\2179\311}\027\316W\263\304\227Jqt\342]\223\350Lv\245\321IwMu1}\352\217UTO\3744\rb};\333*2\341wo[}y\321\261\321\271\312\315\227\025$\342Q\245\256\242\263\252\204\360\047\350<\351|\352U\031\343\322B\3566\323\226\322\237\350\374\331I\3028)s\226\320Y\n\344\002L\247uHV\010\025\227\363}\334\211C\371\244\356\230d*\252B\275tx\271\352\356\003\0475\345L\001\253~v~\006\261X\266\022Z\244\020c\326\320Y\353\274\205\005\273\3255\203\316LW\t\235R\327m,\337\355\300\035t\356\004\246\320\231\nL\2433\035XDg1PD\247\030\330@g#\360\047:\177\006~\352\306\001\276;\324\355\321\003\016\016\265s\032\332\243\232\353\2623\t\355U\3520Ap\025KF\\\305\320^2I\334$\n\021[\262\350d\225J\201T\200+^\005\212,\320\033fL\323jp,\305\2275\246\006\237l\\j~\2725\274\335{\300\301\355\354\366c\333\013d)\377e\201t\r\271\246\037\337\032\212\034\270@_\230a\352\350\n$\006\337+\355\355F\037\340\340\373N\345\207\332\311\332\245:\260D\030\016)\335\307K\273\024\314@R\246\243\221\230\313\257\264\330\246\362\321\200\243\307^\334C\355$\301\365\016:w\324\324C\233\256\017\321y\330\3653\327\276\312""\211h(\334\316\361d\217\232\267o\2354\310jr\005\010\253`m\222@\265J\n\007\322\376\320\374A2\223\256U!:\345\275J9W\201\016),\355q\377\017\246\211\366\026\310\032\361\241@\375m\257\241\275m\374\264\247\346HT\242\365\026I\016!l\223!\245\\\246\026:\207\316\\\327<:\363]\005t\n]\317\320y\246\246\322qt\306\003\023\350L\004\022\001\273\376\255\355\237!\020\306q\265\304z\371\233\233\217\354}U_\326}\331zn\221f\004W\266\3666\034\333l\222z4\222\256\370\212\200\333\n\221\200B+\002\022.\177B\006\374\324E\034\033\354\362\214g\341H;\007\350\2274\371I3\200\001\217\245q\331\257\316\257O\234\047R\231EM\200\364\271\244\305\241\335\024Z\233\352\266N\222\264\247\311\3032\316wP\362t\346\323\265\214_\353_\332\376\325\231~(\364\321\2071\236t)\027\362N\036\206\351\rgC\312\265\324\344\271\202Q\353CE\313\247\022\322>\031\325\3430:\303]$/\216x5\rw\245\236\311X\350]?j^\2145?\334\232\330\353\240p8>\361\251\214\306@\2763L\252\2301t\306\36624\220x\255\307\004\254\211\300Ct\036\252\025\306St\236\006\376@\347\017#e\333\274\267F\217{\367\217\264\375\035T\375Sp\ne\247\374\314y&-\010\250\247qcSn\300\307W\2514\202\350\226\047\266L\242]\036\t\026\212\377\351\253(\276\275bg\253\367\243g\005uB\232~\250\251M\2433\255\232\032\265\261ut\326\325\026\347\023\316-)C\335+b\273U\252\036R\202\314w\262]\265\243a\"\332S\241\345!\267\247i\047/\211\211$\245\374\206\316oj\001\255[\2200\341\340\334\243\235ab\342*:\253]\277\241\363[\3270v\277a\325Qi9|\027\235\273\201{\001\306`i\252sO\256\273I!Ac\007)\024`T\275y\344|\236i\306\267\177t\356\241\005\255>V1M2\207\257\377\300l\347[\23640R\307\345\026\225Z\252\027;\361+\350\254(\213J\332\211\037D\236\016\006\206\320\031R&3\304h\032\037\347\320\231S\373\362\005t\n\201g\350`x(6B_=\017\277jv6""{\335<<_K\324\312\365\257\033w\232e\334\320\336\356s\222 w@#\224\246\256\372\320!5BZZ\221\320\306Mm|M\331he\312\245]>\r\323@HJbj\204zU@z\014\347{\213\003\t\3604\366\3613qd\301C\213\007>\004j9FL/\\\"\336M\021*\256\2700|\024\375\342\325\363\361\233\346\307\315\220\233\217\027k\305\372\251\372\335\306\243\255S[\351\355\201\355\2503\t\035\032\220\001\023aF\326\307\265|/D\340\206\005\276vm4\243\350m9\261\262 \006\222$D\203\342\002:\013J\t\252\031(V\026O\025\037?\253[c\3433k%v\351\225O\315\007\265%\363W\236\360K\021\370\006\031\265LZ\244\361\325\031\361\220&gR\254\374\212\316\257]k\350\254\031\036\3221r\267^\352\257\377\373W\367[\316\233\250\030_\303+p\236n\226*\275;=\257\355\004^\333<\271\243\256l\t`\3633\327\265\264\370H\334\250#>;\341\234\300\303W\272\331\277\376\257\3563\342k\247\377\047Xt\275\273\335\201\233\253\047*\035hg\337\275\231\256\014T\"PC=(\336tT\317\000C\273kS\365P}B\215D\316\325\037\200\235kn|\2379\237\rn\365\302\204.z\307\204\013\333\233\233\213P\326\205j\250:Y\273\010B\177\257*\203\244Bi&\377:\376\257\356\023\233\342TB\007\324`\257\264\377\307\200L!\316\002l\2569\047\304Q\026\274\357\246\257:P\r\021X\226\341Mhq=\047*\307DD\317\261\315\033\233\317\252\047\253\027k\047w\216\237\252\000\344\370\346\255\312\200s\352\\m\264\321\361\002H\275+\033\353\277\377\267Fq\025\201\3575\310\322\244\275U\277\3318\t\013\025b\313\177\240\331\246\033\003 \334\364HJ/\324: \003\310\355\213\312kb\327\376\370\211Jg\345|\245T=\017\034\354\000\211\007\247\233/A\036\272\325\034\020\347l\200\37277s\262[@\325^\251\207\033\2575O:\337\214n\017m\257\261\002\275\216\025\212\272\353O*\367`Y4\260s\3744^\033$i\215\302Ri\r\2131U\tUR\325\323\262\035\310\340\204B\323U\271^\231\004n\002\377NU\302\325\356\352\204\354\257\3177.\200Ls\021\246\212\t\273\240\2726NT\002\225\020\253\265\367d\227FJN\374\253\273\347\177\353\233\203\233\031u\361\326\346\300f\010\033lwe\2466\214u\362\035\266\320\235\343X\254\353\242\211\274\352\005W\365\307zo\233,\036\370\001\035Z7\220\344\266\367}\375\024:)%\372\352\225\254\333\032\342oX\231^\361\332\206\034p\237\211\244Z\337#s\\\270\325\306\377b\"\014#7\302j\006\334\325\230\317\354A\035\271\311\302@\233V\353\304\034\276YO\242*\231\006\021;\364\265)\264\353\354^\203\037q\221\373\275\033\216\007\324I\223p\311\367>\250\257\320\206#\231s\362e\342\237\036\333\250#\327\253v\264Q\253J\032\006\256A\344w\006\221j\201\257\352B\036uj+#UO\357o]lT\202\267\271\330\273hU\016k\336\367\362\242\037\314\372s\377\345<\340\235a-\n\360j\026\204{\035\254\\Cx\353\311\216\266\314\371AB\256\013\047\375\0047\331 \375\004\355\016\337E\347\256\231\363v\035\317^\r\247\304\262\223\251\023}7\221\\\r\337g\210\243q|\267e\036\255\237\371\226\034m)\221T0\205\316\224\313\266e\306\263\301\36470j\257]\3076\212\005\221\300g\273\215\332\222o\357\341*\006~\312\212\364\256d\376C\033\341\232Edw\360\017\350|\003r\313\351\243\335nD\270\343L\271\266GZL!4eR\307\343\246:\374\326\022~\036\202\264\323$BQ\307\343\326\031\231.\317=\013\177\213F\277\367\225\353\363\311\232\217XES0\3318\221\276\305\367B\246Y\037E\376\253\347\330\347\r\227\316\324\347\222\205G\316]\020s\344\311\375\025g\005z\341.\333o$\237\320""\022\206\233\244\360\343\031|#\204\314\242\250C\356v\351\210}\341\304\337\300\261\033\r\217v\264\267\366v\355Fm\243q\254y\243\371xkb+\267\375\233s\017D$y\227\025\340\203\376(\3272\374\304\025\035L\242a\236\2264\334d\200\233\367s\031\236\366=\310\362\202\2264\232Wd\342M,\353\253\237\374\373X\366Ec\302\315\262\217!A\270\376Z\343\203fx\353\377\2662[\033\3168\214a0-\312\313y\360ze\347\231T}\362\3430\374f)\232\032\271\360\300O\025s3[\332$\"\031\302\327\036>\253x\366i\275\367\357\343\331\315F\346o\330X\243\365\023\277\017\210\344.R2\320$\251\231%\2665\026|v\324^=\317\276l\254\271y\346sY\n\214e0W\312{y\360vY\347\271\234+\371\255I\374\2566\337\033\314\210Y$\253\362\305&\211`d[@s\245f\226\330\302X\354\362\\\303\362\267l?v\374M\233\217$\334\353\325\271X\264\322\236\017\251ih\306\324\014#\303;\357\256\343\337\261\335x\362o\332l\334\315R\221D\376\335,\025\331.\343\337\261\275\330\3737m.\356f\256B\013\200\335\314U\330\256\342\253\347\333\267\336\315m\237\353\225``\203\tT^\215\312\256\341\363\275=\233\037-\245I\224/\004\270.\225\357\317\222\254F\353\001~V\205\366\026\037uy.o:\334C\r{\320\273Ol-\213\207\032`\300\002i\225t\246\316o\317w\325\206\357\377\346\365=(E2x\361uJ\\\275\016\265K:m\347\371\357\273\252*\366\177!\367\0364\354k\333\307\305F\222\324#\323\306\262\363\373\037\273\352\275\367\177{\366\304\313\267\271;\266?\024\267gK%\021\351>`Q\357\331n>\334M\323{P6\237\304\253K\247\234)\271\331n\353\026B\273k\212\367\177]`\357\313\257\n\234\330^\026\232~\251\351\360[-D:w_0\356\377\262\275\201\227_\t\230\331~.tzR\257\340\047\220\017w\356\276*\333/Yb}\345\272H\316\273\300Zs\306\245\251\204\\\302\373I\275\267:w_\373\034\210\260\227-\374l\272`\350\331\007]\355\273\265e`\337w\266\340\261zu)\010\337n\363UA\376\342\335\370\266\232A\347\233\352\204\365\001\304aF\302@\014\237\314\273q\023\372Uo\363\213\255\216\377I\373&r*\377\306v\"\003eD\254\274h\022\025\222\201\365J\250\222T1\353\225\301\312|\265W\006\236@\263+Cs\032\020A\347\255\363\302\204\353B\243\243!r\047+\"|q\016\212\034CK\266\235\343\037T\277\250\035\257\207\240\227t\300\372\374\370[\302\270\256\037\006\204\023\247*#\325\320\316\251+\365[h\030\367\342\304\245\372\277\353k\215\016M\256Fw\303\2718\270\325\373\327\377\375\35354\365\3539\356\034\377\020><~\2722Y\275Z[\003T\307\337\302\353~\237\324\262\320\006O\251{\002N\274W=\003\260\305\372\004tW\220\013\336\255w\2034\314\2437`\275vQ\330\351\035?!Y\203\224\217\241U\034\032\377\205\235\263 \267\302@\246b\221\206w*\347@(\306\236\322#\006\0311`\212Z\352\251u\327&\244\025\024\324\2160\302:\361.0\014\355\n\217\343\200-l\253\252\217k\023/\000a\027$\272[\313\210\216z\342te\032\276\370Uq@^w\240\2300R\275\003\305<&\315\007\217m\336\254\274\353\234E\005\2560O|\003\232\211\363>JB\030|A4-B\3538\366v\245WDc+\022\206\217;\047N\356\234\n\002\225\367\033\201F\010\373\247b\366\247!\047\204\327\206\355\364\364\326\376#\212\334\363\037@\321\363q\355\212\014\275_\275\002\264>E\357G\325\002\360t\251\221\331\351\371\260z\253\366\205s\351;\020\000\356\213\365\014|\341|\014blc\244\031Bf}\n#\004\202\276\302\332o^\332\352\333\276)\304\204\273\316]X\030\343\326\205}\253\016\277l\206\317\257\264S\341{\255-\031\024E\272\220=_U>\207!\3618\314;N\360\233f\337\326w\333\033\3164\014?\220\037n\230\354\364\234\257\375\334\370\n\206&\321_\036U\337\205\t[x\204q\340S\350\265\327\361n\t`\312\345+\007a""G\375\255\306\032\332\370qF\234\307\366B\240Pc\032\344\245\205\355a\047\001#\243\274-[\213\032|\323\213$\016\337W\033\314\035\270\256R\177\321\270\333\\F\035!,/\001\273\260\014\351\t\302\232\357\2544I=\212R;\227D\025\273\213}\2416!@\320>\033\023\215%\220\262\036o\247\005a\362\205A-\240\360\235+j\010\276W\377\232\331\336U\354\233\215\\\3639\252\370`-\013\330qC\037K\362~\375+\331s\216\246\330_C\273\356u\027\373\"\032U\002\010zi#\323x\n\262\331\377m/\010\302\2402l\213\023\276\236\244\206O\032n.\344\230\353f]\305\376\262\261\261u\0345t\320\255\000;\356\316#\355\227\353\323\230\371Q\025\373\033\230]\006\334\305\276\004\343*\202nB\241\327\232=\260\242?\263\375X\020&_\007\322\267h\361\365*\315\372\276\267\354\352-]w\261\277j\276\266\365!*\330`\330\002\354\270\327\216s\305w\370\024j\263\343\250\212\375\255\0347z\235^|\361\364+d\201\361#\013\372\352\262\353\177\211T4\317\202\\{\301\031O\013*\345}\360Z\362\341\202!)\376\370\216#\347\001\r}\244\235\2471\217v\034\315Ye\027\233\276n\276\267ue;\047F\\ \0007\331wz\316\325\306@\034\024\355\326\237M\003\265\321F\047\254Ip\364,:\023h1{x\246\361\266\322\036Fq\r\251\271\023\263-\\8lc\301iqb\3373\2426\321\342\273_d)\342{\027\250\271]\361\0370\3779\227\276\207\345t\306]\356\313u9J\212\361\262\371\025\254\226\206\205\306\003(\203\352\200\265\210\266\243\345\273Wd\357\341{\253\244\271b\317U\356o\233_o\215:\343\300SXt\000z\334\366\337\351\271P+\300\314+h;\322\202#\203\333Un\032\024\017Q\356\027\320\320\207\353\2376\304:$R9\r2\3743\224X?\000\271t\030\317Y\0349[\344\361\037W{\270R\227\323\207\230H\232#[Q\224\013$\341\362\365Ymm\316w\345H\003\340{\345\242y\017\317\305\227\357`\035\372\300\231\000\236\203<\004\350\321\244a\247\347\242s\361K\230\234\327\266\216l\272\220G\225\\%\357\257\313AA\014\017\315\245\255\034\316\221Pli\275o?\033\300\367\206H\010$\261\200\353\016\364\006\256\273\344?\310\267>\245\030\010\350Q\261\265\323\323\347\364}\013m\021\317^\035m\311\317\325bj\236\324\3366\360\200\033^Rw \315\000\267;&#&\332\214\245\375\261D\327^""\330\364\002\304\211\233\365\367Pbf\035\347}\322\240\276,\372%L\226\027X|\330H@\023|\216\272/9\003\314\036\202\351\362$\226\253\271]o\310\026(jd\353\022\256\013\244\271+d\346\276\274\225kc\310H\205\3374\300_u\320\306\256n\206\016\302\304\006e\222\223-d#\256\256\352\271\352\\\035\332\372j{`\373\310\332\335\2108\236\350b\301\315\206\344\212\340\317\326\022\n\002\322|\016j\032g\\!f\360\351\226\037\337\340\026\231\374\206jm4\347f\3010\264\352\347B\347\265\340,@6\370\242\366N\317\2003pg\373+:\274\3662&\374\200\203\362\001\227\240\307\267B\007X\204\352\343\255|O\2374\306\304\007\337~\267\326\356u\350O8.\037t%\372\241\267#\354a-\332\316\322\037r9z\340\322\243\264=\272\335q\020y\333O\343N\026\221\374L\000\311\235\324\021\2645G\233\305\356\301\255\336W\334\372\3339\363\036\262\365\017:\203@\031\014\233\262R\264J\374\340K\221\007\270\317/\327\030\302\370\302b\317N\317%\251\311\270\204,\277\340\\\370R\254\337;\366\266`\261\207O~Q4\311\253\334H\226_\260B\366xd\303\310o)\243\373\357\350\034<\351\354\351\205\\zxs\022\235I\245\263\247\353\220K\350\224\324\243#\277\241\363[\340y\240\035\253\243\337k\241\332\203\306\333\220\344\033\224(\223N\022\244\026\251\332\220|\3203)U\2428+|\210a\354\001\276d\274\337\221\314\236\323yS\346\227\241q\363\\\232\314\251\232\264\365d\233\0076\340\t\2149hHv\230\361\3555!\315\337\027B\374Wb@;\311\033\261\201\357m\364\023z)~\324\200\337\243\312O\262\020\313H\006\340\027\211\322n\024o\331\324\244i\033\212\256\275\241\373\302|o\014\246\373\302\356\007\332\253\322\371\014G\001\251\221\223\213,9\341i\351\207\252\010\317\215\035\\!zE\030|\355u\204y\251\266\324~\032\345\220{\004d\315JV\231d2M\246qt3\021\335`BW\213\361K\021\251\212\222\201vhaa\271\000\034\235m\3644_\207\n\235u\306\2415\312y\350\261\363\030M\237\260.\3028\221\275J)H\214\035\\A\313\337\354\344\213/\376\374\205y1\253\275\203F\330\t\303W\2506?\270ffy\273\337\231F\303|X\2719\237\334\0202\300\204\355\337\233\272F\350\346\2702\202\033\356scj\276\016\245\005(5?n\247I\315\217.t\242\215j\375\350t[T""\\\177\324&j\313\215\217\241-\334\301\345\256\254\364\237\221\301\021l)\007\341\354\217\3155h\370\036a\353j]\202\204\356\2679\275u\027{\264\324\277\310\327F\245n\207\313\331\374\0009?o\303\317\314\2337\316\\l\371\036\304:\030{\244*A.\275\026i\354\201\251`\353\245r\327\225\0033\002\373\033>\352\271\317\376&\0077_+\021\032\343\370\331I\376B\235>\343\326\336\376v\265\277M\032\357C\t\226\007\327\000\322\232\234\206~~q\0477\310\247\241\237n\377\242\033\374iZ\376\243\353\225K\214\310\370Oj\337\243E\305Q\354B\366\034\335\026\313A\267!\357\325\321\376\340*\014\360\342n\233\003\225~?\222\362S\276#i?\357\304W\274\374n\003~\300\210\337f\241\317}\264\253\023\022O\016<\024ak\270\274\345\352\210\373\333\241\3663F\340\257\266\361+q\250]\320\244G\2035mU\322J\217D/2\3222\317\207\036\221$u\027X\330\317\245\247`\355\ra\r\004\274\234\256\355kP\273\267\005Q\027k\177\210F\224\301y6od\206\335\0072`\246\274\221\007:\274\\\313S;\243i\216\037a\346\247K\271\010\353\313@~ \213\337\034G\227\344>k\3538v\263\371\356\326[\250\330\224*T\\\310\001\247\257\r\034\232\317\3737 \201\311\035\372\360\232\263VrJr\017\215f\n\376\004\004?VOS\004\315\234\324w\351\232\006\363jU\233zr\272\376e\243\267=\354!\213\013{\275{\3369\177S\364\336\265\227Z_\300\272\002fT\340\0234D\271\342#\231\213+\004\370\351p\222d}\037\025\242\306H\307\264h6\365]\344\226\273\332a\273\361[\255\027\022\024\033g\032O\232\005\264\263\225\027,\240\235s{\370{\200\335\372\226]\233\317\035\374,4iK}\237 \3217\317\267k#\277\215\355\357\000\273\372\3209A\322\207U\233\324\256\360\307?\271\221/_B\321\374A\363\353\036M]\016\274\351\337~&\355M)\365J\230\347\273\001J\246\321\244\376\360\2354\350\016{2\215&\235\324\317\350\374\034\370\005\235_\002\231@[\027\245\303\315\213[\377\025\207u\344E\r\300\0006\250\323\200\305\017aL\243\324|mx+\323\226\351g\277\372\222\227M@\\g\310\257\047\241Q\225\006\000j\334t\370U\277\272\323\366y\350\026\n2\207\342\324\201\266W\262N\026\006Kh\317E\247(5(\264\317\352\373\230]\033\030u\320\335\22762JN\331\337m\255\355\313L""\362e\0235\237\241\371\305\032\374e!\272\360\200.\326\320\317V\264\313\220\322p\312\271%\205\364v4+\030=&\216\242eq\271\232_tCW\003\371\336\256\331\373\007\260v\017\246Mwp\332\271\243\036z%\203\312T\240\035\334\337\250u\324>\254\047\352\217\033\223\315\276\255\037\235\204\224 d\321\361\254s\333\353\344@+\231eg\031\206\0134{\267\337\265 \371\212\206\n\332D\242\335p\337K\276\371%l4\320\222q\017\337\2373\027\377\265M\332:\232&\276\377\363\275^\305\025)bH\270\247\366L\323\027Y\354\371\336\004\316\037\312\"\265\214\357\213\317\346>\300\266)\265\216\206\235\264R:\347\234\373Bm!\363\315\273\375\312\237$\014\360\307jH\032%\321\300\367\342pb*i(H\030\340\333\001\273\r\031\364\254;\t\263\346\211\3506\232\250^hvK\033\256#\0372\332\262\343GFI\374\215V\022cI8\363\275""\217\\\337Y!\026\262\244\244\2455\031\277\270Q?\331\335\276M\301\243i\344m\333!$\245$\177_\210\326\004\264\213\357{c91\223\226\273d\047A7J\3736\356\225vn\"\036)S\217nG\361(\230M-\227\236\326\244\375E2\256\243W\261i\354\240;\227\356\242s70\207\316\\`\031\235\345\300St\236\006\376@\347\017\265:\016u\267y\323\361V\373\2303&\007\272\266\256\202\216o\335\331^\333k\375\037\365\n\211k\337\370\213\0354\227\220\274C-\300\327\256\362\026V\350-eRO\032 \252z\322\217\024\320)\250\026\020\306\252\017w\337F\347\266\271u\253\035\253\256\247\325\265\332\361\372`}\241\021\2019\3533gBJ\270\222W%\024\266\025\227h\204\347\357}\362\263\261\213\242\035\304\234\030|.nPm\363\232C\3308\212\367\255\330\r$\257v\355\301\237&\366\275k\215\2443\252\374?\320\371C\365{:OAv\005it\322\352\370\326#t\036)\255\030\235\342*\037\301\202\344\353\355Q1(\202|!\237\203(`\305M\010\003\322\366U\2316\215\267;\354\047\265\037\2405^j\366\276\334J\036\304iyU\236\354\255\374U\017~U\036\365V\032\226\370;\013\332\250M\354r\222\244A\3435]\257M\"\006\2754K\025F\347\355\370\001\230=\032\202\034\310\014\337y\027\337\253=\336\030l,4#[\3579\267\201\023\360!,,\344U\205x:\027\352\351\253qg\034\315\276\332-\237\217m\377\307IO\035V1\274w\301\234\344A\032L\265^NT\017\177\367\210\316A\222(N\243(\031\350D\320\211\004\206\003\355S\014+A\346\353\204\223\220\347\366\333\313\350\030\036\304\271\273\333)\234\243c:\3110\374\360)\355\210\360\267m\350=k2\207\242\233\"i\352\242e\020\251L\036\240\363 0\217\316|\340Wt~U2\314\312\021\254\215\036\271f)\247T6\265\325\372\270p[t\002?l\177\344LA\276\342\346\320]j\360\310T\005|K\213\017cTe$o\352\243S\242\273\220\262+\205NJU\331,:\263\252\346\362\350\344\003O\320y\022\370\023\235?\003\021\2246\"\335\267\320\271\325=\322\335^[\326uyA\252\266y\223\217y\224Tub\023Rr\272\336\034m\267T\361\321\326\037\316$\210\277 \025\024wz\376\353\374\367Z\243\003\033c+\377\221\n\031\244\t\342\372\t\222)\363\350\344\325\252\2026\020I\264\244\036I\3473I\254\240Z\246\311""\212\016\207\223t\261\216\316\272:\034\376;:\277\007\250\226i\353-\205N\252\373\036:\367\272\037\240\363\240\373aw\373\305\221/\361\336{yu\263|\002\r\030\047\3731\177\230\204\024\223\332X\007\232\311\217?\355\332\034\230U\210\330\325\376\207m\031\320\336\236\357\2552\334\202u\357c5\t.t\252z\004\235\021\030\262\333\271\253\360\357\306\263-\234\"\177L\013\221\341Hj\240=\326\203{\030Yi\215\347{\222\2276\303h\177\225v\301\370\353\\\324\037\251\016Hx\244\2112\206NL\215\272\324-\247\002\355T\327\252\252\010\rZ\365\360\222\021r\272>\325\330\227\030\337\341\272\325\355\245\202\273|kUv\003\376\266\034_@\322\250\316\0370\244ST4\325\221\276\205\037\002\322/\212\013\205!\177V\210\344D\232\377\250\033\320\202\213*$\036h\337\301\331t\375f\3434\364\245\265\243\254\204!y\217\026\253\204\201\206\224\022E\005m\235\305\227\304\344 \nb\225|IL>f\"\207R\376\032\026\277^\217:\002\177y\215\246\"\2627 \325\007\311\03541\361\0277\265\242V\350\026\371M\343{\274F \004\242.\314\005\262\017@\031\3445\031W\234+!(\337\311\355\277\273\026\"[\023[\356\013\016?oH\235c\010[\311\326W8\240\312\2255H\266R:\325w\371\363\033I|\237\324%\2259\177\227\214:\002U\001) h=K\022 \237\017h\301D\002\003u\204Ad\372\240\352\010T\00542MzjbH*\t\244^\035\312\001\263\362\312NO\277\323\037\331\232\336\236\330\316\374\31551\274\225\301\251\201\325\304\215\206\334\261\033\204z\030\330\032\301\335DyH\nJ \367P\330\273\252\244O\340/O\361\013\366H\377\313_;\343o\232\323\336\047\237\244\371\223\227\\n\343\313W\337\333|\322\236\332\010oE\361\314\227\324\356BY`\204\315\357\364|\346|vk\353)\276\3602\3617W\307\255\255\265m\367\034\361EC\316\021b\350\202F\003\323\233|\346\026\212\200\217\2019\353\354\321V~\010\331\367a`\232%\370#j\374\276C\232%\310\346\207\204\245=\314\327\244\235\333\343|\035\201\to\331\271\047u\346P\026\324\240\355\364\\s\256E\267\317:\023\tq\367\313\036\352\343E\317\361\315\333\225\225\332M\334s\303{\367O\341\031g\204\345\252k\265@M\260\361\215\315x\365\353\332p](\314\336p\216\177T\235\025\017\212@\272xu\000\221""\320C\001\3076o\210\027\n\236\340\345\375\342\272}p\360E \\\261\274\361v\345\277\265c\365\001\214\371\250\372[\275\027=\037\340\305\372\"\321\307\265^\231\350l\365\277\365\216\372\251:.b\3378Y\351\256\244\253\003\325H\355tm\276\336\013_\237x\327y\027\227A\247\032w\233\231\235\023\377\251\246j\047k\275;\047\336\251\334\250\2549g/\325\273\360\t\202\263\325\016\347\275\313\316ey\031\341\211\323\225\007\220\252\037\032\026\344y\272\222\301\233\037\003\365P\353\034P\332\013\203Ht\322\312\341t\345>\254\031>\302\307\010\010\311\305Z\271> \251\026\341\276\372\007\370\n\300\t_\224\003\215\223\215s\310\365\235\023\037U\347a\3759\200(\047\253\275\370\320G\375\307\3469qG+\275C\000\255[\347\322\207\314\240g\002^\034\3606\266\375\336\304&\337Oa7\321\220\360\304\037\252\247\331\373a{\357^{q\320\353?\366{\365\207|X\214]\000Bb:\365~\322\352\352K\216\332z\311\307\213\203^-\260\337\253\004\344Ce\362\246\005\376\374\255\257\0206\323\336\033\356_\034\364z\373\375^n/\237=\223[\253\374\305Z\376^\224yn\251\2357\332\2778\350]j\373\276\047R\2767.\267H\271L\355+\311e\332{+\344\213\203\336K\303/\303\330\347M4\362\301pv\365\023-\343|\345%\376R\347\036\257\030h\333\3352\017\016\312\245\037\270Y\222\275o\265\247\033\273\345s\327\322\224\216K\225\374QpZf\321]*$N\372\336.\020\357j\317M\336\177B\241\2377\256\303T\363\220Tm8\210\034\224O?zo3\177\351uW\362Yk\251\222\341\"\036\215~$\333i\223\3676_l\365\342\240\267x\357\373\366r|\214Z]\243\312\025\226\374q\013}\200\256\315W\226\037\254\244!\357=\355\237\325\345\274&,p\232O\2676\3048(\311\002\356\243\236\336)\351\027Ji\346\246\261\336\267\301/z\212\372#L\226\307\235\224\234\273\345Vgn\247\347S\347\323\357\241\r\211\245\366Q\025\225\255T\016T\322\335\272\366Q\226\364\300\0273\264\361\356\nb\001?\021\272\007\235E\250\355\227V\274h\357f\320+;#@*\005n\317N\306\2514\007\320V8\331Qk\205g\333\017\007\274h\357\366\366\2533 h\337Y\277C\333\n\274h\257\305\343\2535\"m\337\245\000\207\267\036}q\024{I\373^\203\037\310T\220\246\000\337\233\340H\211NL%e!\251nIg\310oA""\245\273\243hG\2176y\237\267\365\240\025m\034\2758\232\335\273\375.\224\017t\032\205\246[j\300\304k\332\267\240\231\2074\201\264\201\247o\335\023\373xt\356\212\364\263{\274\003\3630\047Uva\271\213\323\177\323h\261\333\346\034\277k\205\337iO-\232\266\205h\312\242\335!\2755\321\326\321\342\365&\237\375\333\247\315\226\243\205}T\305\366\333&?\374\010\313\313F\024\177Y\201\337\352D\374\347/\377\222\276\233\326\2134\260\360K\351hU\315\215\350\370\025\257\276#\nY\317\221\332\233\214\321\311\"\231\214Rs\350\344\324\031\355g\350d\262o\273\331\":Ee>\253\r\223\332\047\251Z;&G\302r\241\037cK\302\227\036\203j=\206\356&\271\356vi<75\241E\000\315T$\177\221}9?\232F\333\273\264\221\365g\033\217I\0355\333\0172w\371\334\236B\355|\267#h\273]\036\316\r\372\351.\025b8\315dd_B[\206tQ I\010t2\360\247@\033\247\267\243f\374\017\236g\032wWn\312\361\245\205%\376n+\214\335^\014\243\235s}y\215\320x\022\303\351X\005\031\364\220\200\346k\236\037\n\264\357\261\303\243g\274P\235\376\263,\251h\245\314\017\262\360\003l$3PK\047S\360\301\2431\241:\"\306\377\3441a\333]\221+\225\022\317\234grF\345\333\223\273\235=\241\345\037M\245\324\324iF%\375\016q\234\304\013n\311F\302\032\2154\334\206\212\014x\206\002\355\323\030\037=\343\367\255m\225\347\213\335\017\363\320\244\352\273\377\275\207\2072\310\236\232XNJ\rb9\235\331\344w7\223|Lm\235\214u\302\201\366\251u\217\236\363\342\3718\306\371ku\251\006\021\017\322n\365\340#RS\342)H ^_\265\365\334y.\025q|\023\327wK~\017\357g\321\266\037?$I,\047u\022\2113$Erk5\262\313\211x8\377\323\326k\370\222\223\\\201\003\361hO\260\323s\331\271\374#4)a\214\364\367q~hk\340\037g\252\271\333\301*\376\032\327\313\016V\265\305F\363\2108\037\366\030\311\276\344\371W)\326\310\006Ob<\337\340\3665^\330\303k\030\264z\342\313&n/Kb\r=x\304\r\321\310j\371V\240}\017\313\036=""\367\305\203\035\377@\343X\322\260j\265\265P\213\220lCZ?\222m\250\321\223\365\376\310\321X\305\27682\223\330\177\254A\354n\247Vh\031\273\307S+\355\261\204}qdf\260\377X#X\322$p\323d~\365\275\357!\317\333Gg\375z$u0\3421D~\311\363\327(\363\010!\237\332?\311\372\334v\203\344\036j\377\374\316Q\2228I\356\241\366O\262>?8DZ\005n\217\314\265g$\367P\373\247c\023w\002\355|\\\333\277\016\016v\201\362\001\224\225\3767\211R\223\327\317\032\210q\177\017R\316\237\235\355S3\212{\223_\034\366V\340=\261\204_\006\372Oe\t\335\003\374\242\r\367H\267\347\026\351\366\275Mv\310\353\243_\264\341\322\330\366\\\031\373\367?\327Fw\305\376\325\363\257\327N\322Q\004\347\330G\325E(\316\361\023\225\327\253\275\325/jo\241\341\376;\225/\252o@?\033xA\336\311z/\373\356\370\346(\036\"8\326\270\331\304\303\013\225\017\253\023\325G\365\223\316\247\250\240\227\026\371\342\346\242<\222\363\206\363\306GU\236/\021\206G)N\343)\210\2676\327*oTSN\357\227\322\204XX\361[\351\361\254\000\036+\370\240\036Bm\320\261\315\233\225w\000~\374T%R\375\240\026\252\335\227\025\353\376\354L%\203G7nU\0060\2132\2600[\035\3309q\266\372\177\325LuM\234\206p\336\375\014ZG7\314<\247\336\023\250R\365\223\365\313\215\264P\271\237\372\270\326\273s\362t%Y\355\256N\250\363\021\347j\031\347\342\327\3153BEIg\023~\200\217.6\316 \361/\200:\310\356=<\325\001y:\357\234#\244\275xHb\002\201\245Jo\345f\365m$\345Te\010\030u\027\332\341:\260\352\024~u\352\335J\021\"?\027$\236\r\342\361\022\250\240\263\037To8\377\375\222\2364\371\260W\260\342~\263\243\371\001\006?\255\367b\276_T\272dQ\327\2100\347\203\313\365\033u}t\004\230\363\372\277^{ks\276r\251z\251v\036\r\305\3610\312\263\352\311\352y\310\354\370\333\225sPqk\212\221\220\366\004p\355+h\026\035\265\223n\300\177\221k\034\330]#\200\273\232c\022?V\363\233\325l\355;`\3711\271\251!s:N\237\274\350\001B/@g,\243\232\373\370\346\320\346\357\325(\264\243,\036\2109U\t;g\373E\227\325\025\177Otm@\374\270\222v>\270\336\370\004j\356&\236G\351\003\216_\202\340\304\316\311w+\217\235\377|\331(5/l\375\037\210\336""\047\256\000\347\246\033I\254\252w\234w>\251\r\340~\360\207\325PU\035\037\371\353M\323A\200=\353\330\322N8\047\202\262Ke\241\250_B\273h\301:\352R\223X\337\357\233.\205\004\377\247\226Q\325\377E\265\013\253\377]a\361[\252\367B-=nL\274\300\0230H\371\371\372\357\342\316\277O\257A\351>\275\3368\007\003\322\033\301\332\277k\353\365\020C\333\002\333\200\027\323@\343\024d\000\375\031\306\221\312\343j\022j\360tm\256\376n\243\303*\360\213\236\017\252\327\253\017\352\247\353\217\344\323\214\300\257\017\203\2657\353\331\306\267\315,jK>\201q$Y\357\256?\200\370\217\005\346s\227 8\331\020\246\327\330\020\006\220o\357V\204\244r\303\271(\264[\3304\003\225p\365\365Zo\355Fm\rO\025\341\220\323U\371\262\332\047\370/\016&\341\353\210\330(O\235~q\002\372\001\360\333\351\305\375\245\013\320\321\336=\273s\352}\347}\024\334\241+\014TC;g?\254F\304\221\243S\357K$/\314p\006\375\3526\364\237\365Z\034VV\307/\002\333\306`\240\022\034\\\363\215|o\253\367\305q<\250tC\216\006\330\233>\337\314l\376\001\214\352\022\024b\013\350\025\371\035\027\207\250\220\345@\305\033\047*\035\225\217\252e\347\023\034\372D\177^\203\341e\256vJ\264\315\000L\021)\034#\337v\336F\r+\224\023\371s\002\233\303\311j/\266\233>\304\003\303\224}b\3149\016\355Q\036*\033\255\276V;)\017\201\205\252\367\353\035\342\360T\317\033\233\223\225^l\274\300MW\272]\306\342\027=8\n\016@\205_\267Z\3707\225\211J\036K\010|\305Z\371w\245\354|p\023Z\334\t\350\036\027j\2130\342\236:+\252\356\007\030dO\341\261\254\213\365\017\201G\344\225\245\302\372\002\356\326;T\243\374\241\366\016V\354i\347\364y\254\021p\241cc#]{q\342\21488\327\261\363\331\315\306\034Tp\377v\347v\357\316\327\337\354\\\273\321\210HK>\354\210\261J/\266\314\3438\236j\356\023svdQ\234\000\214\251\326\210\217\247\317\240\276vz\336\256\\\024\014\026\303\377\327\325\333\265\005lrb@\276\\\037\250\337j\014\250\243jg\200\350c\270\000\227\363\024\347\355\377\003\325\367\022\227"; - PyObject *data = __Pyx_DecompressString(cstring, 24964, 1); + #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (24597 bytes) */ +static const char cstring[] = "x\332\335}\313_[\267\362\370\005\314\367\322&m\2236I\323\307\355\2056i\222&\241!M\323\367\303\200\tn\3006\2661$iJ\0350\340\006l\260M\022\322\264\275\313,\275\364\322K/\275d\311\222\345Y\262\314\237\320?\3417#\215\216f\3169&\367\000\223\225r\345\265\245J\031\n\340\342\350\005\324\345|\271R\356-\316\0037~\375u.?[\371\365W\010)\\\277\376ZX[^Y\007@\266T\312\256\227{\317\003U\230l\005Pg\313\375\303\200b\004\263\303OJ\010/.eK\002~\341Ro\261\220S\330\024\016U\260\\vv\021s,\256\344\n\227z\027\363\013\213\227z\227\212\017/\365\316.\025\3139E\367\203\342\322\33220[U\325l\266\320{/\207\345\355}\230\257,*l\225E\005\230Q\014\231\321\364\235\277\320\013E_,\316\365\367N-\346!\217\373\271u\340\252\212<_\276\000\236\034T\017B\312\232\221\345\336\207\2139\315\267\331\254f0\3425\014\3056b\230\017_\351\232\305\004:\323\002\224\260\214u\t\r\247\262\336\377\252m[\263K\331r\271w!W\301|\362\225|v)\377\030\020 \361\300?\331 z\021\215*sq\005\303@\307:\004\251\201\331\302\365\026\357\375\226\233\255\250\366\247\333\017d\256\250\005\352\212\017\221\264\225R~9[Zgm\r\270\255\020\231\246B\245\016n\031_\353\022\\\206\377x\316\237\246\303\227\r\306\313n\363B\224\227\213\205%\236\033~yY\343\360\327\r\017\\`\211\314\347\020\265P>\177\207\047\273t\267\367\216\312P\305\315\000\325\305\322\314\375\207\030\270{A\023;\\\234\205vR\250d\025+\261q\265\370\3006\242\\AwA\350lT\237\n\323\210[\351\205r%[\200>\210\310J\305\005@\267\014\350gU\305<\310g\251\005\314\027/\211v\000\231y; 5\215|\256\334oY{\231\330}""\031*`\255T\340\035Xr\020\263)\256UT\205\231F\246\306)\034\270t;\207\346\213\315\213\203|o,\033\203:\006\262\326i\340\005X\241X19]8{~._^Y\312\256\2536p\001\350:{~\001f\220\225\013\320\304\317\226\317\226\373\263s\017\220=\340\203\242\314\224\262\205\205\3349\3042\227[)\345f\263H?\026z1\213\210{s\363\363P\246\257{\317\237?[\276p\036\263\205q\0269z\341\302\205W/\365^\352]\200\314\373?\373\272\367\273\037\302\275\320 \362\320\004\240\340\003\350\207\266\277\254\220\224\227\213\305\312\"\024%<<\2354\230\327\260\236\356-\345\330Wy\034\366\037\026\276\001\017\215!ej\332\005\350\336\360q\177o\nF\334s\340;\247:\0050\250?\014\351fug\213(6\236O\207g\302cc\361\241\231H2ya0;\327\033W\343\224\212\030\014\017\317\304\007\177\212\014\245UL\302\035\327;\007\3650\253\352\016\276\036\311.\225s\375\3615\220\240\346/\047qR\350\215\000!QXL;w\246p\211\350\355\273)\3500\205\005\220J\\\032\356\\\276z\345J\177\377\345\201+W\356\302\224G3\341\245\336;\010\351\357W\300\033$\317\273\221W\000H\323$\244\204d\364\265\233P\317\232\020\007\021\230\201B\255\201\027\322@\271\031[a \211?,\364\016\347\346\263 Kz\210M\027\213\275\313(\226\264\356\207\351R\036Z\347\032L\306\336oK\371\225\035g^Jp#\007,\244\346\371\334\331z\262p\277\000\365\240\247#\021PM{2v3\026\237\212)\321$\203\0033\216\210 x\225q\262\313\342\232\023jk)\277\234\257\370cazV\032\001\025=\225\203E*\026Of?\225\307\211""\002X\226R2\227/\3766\264\364\313c\331\205\035JpGJ\344w\263ss30x\344\356\345\026\362s\217z\013\367rK9\344\361\254\026uV\240\223\000G\316\002\313\335\301vQO\265+EX\321`\033\207\001\006\333\242\031\360\241\004j\246\271\244\006\273\271bN\313\260\263\245bY\251@J\305\331\034\370\356\241\314\001\311@\242\305\306\236+\340\357\302\254\226{\365\332\035\373\303\303R\021\210\237\313\003Me\\\262\360\370%\325\222\365\372c.\017\262l\t\213\314\022\340Xjd\3509U\267:vy\rD\001\030\031\262\275J\341@\251\225\262A\013sj-\246%\274\024t\302\\\371\222\302q\266,\326,v\026^\316\227\313ze\273\272\246&@\245\355\270\237[G\r\313\002J\003\017t\205#\251\330\257\260\007A\036\340\273\220/\353\262\317A\327\247\t\356k\273\352\047\332\240\020\271\345\225\312\272\242\267\177f\026\246\256\376e\3500y\322r\350\345\006\324\004\364y\230Hy\2625XM.\372RT\240\311\337\353\247\251\020\031\253\001\352C\355-\226\240\255\345\346PE\243\001\2325\344W\314\321\376\362:y*\213%\275\250\321AX\177\341rSG~:ct[\375+\217\362\004\232-./\027\013\014\200\353\047\026\324\rN\001\314H\300\230R\366\016\224\347\302C\341\241\241A\020\373R\306\235I)\024\236`?J\017\270L\234\231\317/-\205\207\342)\374s\323\306[\245sS\004\307\017\207\207\361\237I\345\372\274\311\342\251!\365\343&\264~o\322$\374s\223%[$\232\306\225\027\376\271)\247[&\265IZ\244p\023\004\307\217\215\205\343\341\270I\024\017N\224\210\303?\223&\321\"Q2\036\217\251\037d\007\271\346\033\031\014\370\220\047\014N\225\212\306\360\317$\264^O\272t8\206\177&\235\365z\323%\341\237\233\252\005\17737\206#\031\375k\222\362\200/u\"\031\035\212\030\327~\301\203\236o\226\226\206\324\360\233\322\023myP\265\353A\336\272\007[7\365\301H:\214\177&\245\365z\322\305\023\360\317\244r}\236D\305\271\365\341\342oyt\307`\224F7\265\010c\013z2\271\222\002\016\rE\341\037}o}\022\323\320\360\330\325\241d|*\345z\314\007\236\260\357\263\317\006\307\302C7\315\267,d\021\370\201~,\260v\210\016G\254\217}-\000\376/\307\242\261H*\235\214\336\214\310\020\303\340\003\372\261\200Ll\010 /\373^B\374\037\243\354\r\315;""\005\351F\275a\206&\000\354\30755\032MGR\260\342\214F\222)\037\200a\013\202\373\320\205\261%\306c\221\341\301\360\340-o\330\"\013\002\373q\rg\302\261\241\310\340X\034*S\006\031&?\324\207h02\226\30655\363Z\004\036\210\377\343d$|3<\025\276\305\375\354s\017\310\367\375\320X\034\352\340\306x899\030\277=\351\207X\\\301\021~\214q(px\014Y\227\232\202\3419\000\304p\006\307\004 \235D5K8\235\016+n\2130G\347\007\373p\r\207\2237\241,\223\303C\361L$\351\003Xl\201p?\272\370OQr\260E3/\303$!\2018d\352\226)\223\341\033\361\330\310\330-\223-\0173\024\001`\037\256H\354\306\344\330\010T)\367[\034^\220\377\373L$\006\321\254\344\036\010\303\025\030\321\n\243\304\026\210i\047,7\302\t\034\237\360O\215\n\001 \213\257E\214\037i2\234\201Q\023G\005\315y\t`\010\203\340>t\243\341\361q\325\370\264\307~.\302\001\237\305n\250>\030\023\001\376\271\007\026\200\"\031\036\217ZO2\236J\311\020\307\346\005\266@\347\375\244e\352\350\215\321)\340\017\363\262O%$\340\343\2337\3037#\3267\036\037\026\001\216\312\003k\205\314\367I\313\364\361q\340k\"z#\022\217y\202\014\207\037\352C\004\r-\226\216\016\205\307>3R\202\007b\321\005G\3701\306b\0215*j\017\373\236\207\003>\203Q-\035\031v\233\242\004p4\001p\037\272\233\321\241\233z,!\337\340-\034B\224\010\340\201X\324\301\021\255p\373\276k\225\036\346\335\341Hr0\236N\307\307=A\213#\000\352G\024\217\335\030\213\334\270\021\031\246^/\001\014Y\020<\030\035H_\314\353Aa!\276\217\331\034\355\237\234\2377+\217\207\323C\243\300\261\261\370\224\014q\024^`\020\026\222T\310\047\276\336IN\031\217\047=s\205\007\3020\005F\264\302(\261\005b\332\tK\334\364\235\270\247\357\304w\354;\t\2202\207tk7^\373\251\007\342\373\030\026S7S\243\341)=\212\263\220E\341\007\006`IEF@d\372l<\002\234\037N\005\2008\276\300\030\037\322T\004\367x\322Q\335\022S~\210E\031\034\341\3078\032\217\247m=\361 \303\345\207\006!J\246\251\363\270~\201B\200\374\337\047`8\204<\322\361\204\0141\034>\240\037K\032\270\030\031N\200\210\031I\306|\000\206+\010\036\200\016+\032V\033S\321\241Qo\230#\363\203}\270\322\341\233\223""\311\250\353\261_\213p\300g\251\311\233Q\020\203\270\237\177,A\376\357G\223\223\251\264\356\013\256\237}\357\001\371\277O\232\021\201|\354\333\344\216#\300d,:1\031\371,\031\325b<\017Z\034\001P?\"%\002B\031\335E\277\007\302\320\005F\3700NS*\3269\275 \213\263E\214\007i$:\206\177\3463\353\365\244\033\037\201\177&\225\353\363&\212\303\277I\374sS\306\047[%\265I\202S\304\023\t\\\003k\307$\026!\357\007\311ddL\377\272\311Y\300\233:\005\377F\361\317M\234\032m\225\324&\tN19\236\232\034\327\277&)\017xRg\242\360\317\244\313\264\350B\\\375\205[\346\3030\322N\216\245\207#\343a\374\243\217\230W~?\034M\205\007a\244\030\216f\340\237I\035\rV\321\r\203\3609\032U\332\t\345\232\3442\350\371&\021\037vu\236\303-\264\237\303\323\256\002\266\205&\3265j\034.V\"#Q\370G\311\254O~\000\005\266enU\372H2\222\204\351\322\305\325b\234r\373n\213N\034\231N\300?\223f:x\260\212\254\256e\227F\306\342\361\244\372\2414\334/\323\217@\313\033\261Z\337\221V\n\340\221dx\010F{rLj\021\362|\220-\231\355F\343\366\317\314\240Q\330\314\214\0270\037\220p17{\177\246\270b,\326\324V\016\213_\310Uv\210\305\315k\221\215N\246v4g\312jsI[\364\261$h\363\264\304\302\270M(p\224+2\274V\310\243}\031\203\271\206n\363K\331\005\213{\301cw\027\020!\211A\27051t\301h\217\350\006\226\212\305\373\367\262\263\367]\2006\243\363dM@\211\236\014\356\334pi\315r\336g\257\047b\002KQnQ\212\262(\305hx\324\364\216\321\340n2:\036\036u{\320h\213\2764\232\236\031\036J@\027\212\0173\257\371\310\007\t\372x4\234\212X\237\370\224\001|_bd<\351z\354w\"\354\373,\005\342\0329\366\223T+\031\016\342\322\311H\014\327\243\021\356\267\237zA\301\337\217\307\207#\334\357\371\236\201<\337\347\027\026\307\212\017\225\215\030\032\305F\307\243QW\323\021m\241\363\340\346ed]v3<\036\306?J\317\274\362\323\2330\247\2324\301\003\317\315\341\237\340\237I\343\372d\"\344G\030f\327\033\256g&\214kUO\220\276\r\206\266\300\250m\337\206\"\211t\000\310\207\320\033\323\nij,\236\210x\202>d\034\332\022\221\367\233\240\324\26113k\216\005O\237c\361\033\003W\324\217I\307\374\236\244\371Bn""\034\252sh\030\377\"\323ir(\261\014\311O1n$:M\016\373\300\206\374\037\260d-\322\350\377\335t-Z\332x8y3\222\036\211\032\327M/\202\336oR\251\250\372qS[\2777i&\201\177n\302L\242E:(\377\264\262\3312\256\373\211\010\372>\263\311Z\244p\023\264\212G\301\215\034=\203\346+\271\345\231\031\013\322\323\3468\254\350p/\324\270\006\257\014z\260\003c-O[\2613\n\222\031\364\020\343\232\3442\350\377F\021\023\225\304Dw\"&\032\203\177\232\307\344\272\237\305v\3401|\026\236\326\277\346co\035\371 A(D\342V\351&S3\303Q\343\332/x0\360\233q\343\312o\306[}c\223\005\247\210\217\217\273\252\301\361\026J\302q\020\365\361\317$\263^\231.\026N\047cv\237>\326j\313>\026\217Eb\231h\314]m\304Z\254;b\271l)>\230\201\177\024m}2a\\\333\315\014\347g\321\364O\331N&p \216\245\243c\021\353\243o}\000\211\214\242\223\341\330M\346\225\3372\210\347\3431U\205\344\230\217\306Z\327\253\216\033\047G|\020\\\033\260\350L\270+\234D\213\265N\"\023M\270LM\264`o\"\023\207\177n\242V\230\322\360\317M\024\\\363\023J{\243\177)\201\010\310\324I\030u\335a*\331b\300J\306\207\340_\002\377LJ\353\365\047\305\277\201+W\310\261_\260\220\377#\226\254U\032\233$8E*\232t\247\204d\213\311!\231\211&\335*HfZ%\212\217\341\237\233,\036\274\260R\215\033\007\354d.\253\314AR\341$\374\203IW\377\322G\" 1\244\\uS\252\205\342\tM\026\242\261Q\3743)\255\327\227\324&\tN\001\263\246[\307\251\026\265\235\032\217\246\\\3612\325B\320LM$\323\370g\222Y\257\047]zx8\222\321\277&-\017xS\307\207F\325\317\210\376u?a\201\200O\240\266\215\313\277h\325\010T$O\030\234jr\020\376\231d\256\317\233\210\251sZ)vR\2230T)i\337\372\334O<\000\317\227j\201\234Z\314\316\025\037\2429\221\366)+#\3555vF6\304\"\313\224\207F\014+\371\342\312\372\314\214\033\234\313\345V< \030\270\327`]>\223\376,\375\031A]\217\244,\035\216\301\277Q\3743\t\303-\332\245\265)ke]\206\207\232\206\324\217\266Sd\336\231\241\245b!\307\001q\370\322\033\016\027\346F\014\036\002\047r\271\373<<\2712\227\255\010D\312\010Y\001\342)rXnq\226S\334\237K\234\345\020\027\330\343\0343Ch\321\371\220YT\034\221E3\254~\350\327""\242\004\277\301I^\206\024 \006+x-Z\010X\274\361\324\220q\031Z\014\271\210M\200\243F\230\213\034\003\014=\006m\006I\375\313\220\047-\352\244\017q\322\242Mr\244I\206rZ\377&\311a\250\247\031\356i?\362i\206}Z\240\237\026\3709F\206\320\217\217\241\023\330\0302\206\313\242\362a\262\2108\036\213&\256~,\256\270\213+\356\305\025wq\305\031\256\270\305\225\210\353_\213-a\321%|\370\022\026a\202cL0\224h\205j\\jQ\306\202\325\315\304\000LN<\314\2623`\223\247\t\333\214\rD\344.\363\021\231\004\345 \320{p[\3040\213\222c\321c\300`7~\206\034A\0067\372-j\014\271\230\325\340\251\034\213\031\003\006\263\3613\314\0102\230\321o1c\310bN\352_\206\327v\212\264\257O\244m\227H\363\036\221f\035BY\360\272\036\213X\007\rn\033b\3505\320\344\240C6\023\035f\371\250u$\363\362\2744\300\346f\303\"?\r\2669\3520\317SCL\256\203f\276\031\224\263\315\240\230k\006\203f\232A1\317\014zf\231A9\307\240\251196\017\014\230\034\214\237\341G\220\301\216~\213\033C.\346xB\377Z\274\3407h\311\313\260\002\304 \005\257\305\t\001\203rh(\252\177]\224\350\047\224\306kQ\"\204P\242\327E\211\001\027\245\261d\346~\213\336\205\230L\004\200e\345\302M\206.\300f\353\202X\346\314\n\332\007\340dp\260\245\305\013\025\004\361HK\025\207r\3228\234\323\247\355\254E@\320E F\023\203Hz(\202\321B\020A\007\3018\r\326R\333\007\020\26400\243\307\003\2254\261HF\027\203\n\332\030\234\323G\226\3402$(30F\026\007I\232L\014#\310\200\0045\006\310I\341\326\344\001 A\224\210`\224\371\340\222<\021\315h\024pA\250\210\341\324\nk\365 \230\240W\3060\202\375\021\222b\031\317H\226\021\202f\031\305\210\026V\361\001 N\262\214\260\024\373\341\202`\031m\351\225pN\256\214\341\3242\313{?D\320\312\341\214T/XR\312c\031\241\034,\350\344\021\214Lc\337/C\234<\027fI\023 A\226\033cIrA\234\034\027\310I1g\005`\302\375\234H\202X\342\030@\020EpK\014\0018\021\004\022\231\233\223S\336\260$\302\205rB\004\320C\214\033\307\tr\201\222(\027,\010\303\023U\334\257\016d\371\000\222L\013\346tJ\250\207P\033\311)\265PI\252\205\373h\365S\342#\242U\376\276\254\003r\025\031\322\2311\031\022\004\030\030#\201\203$\021&\206\221a@\202\020\003\024\244\250\003d\"0\036\037\366\206%m.\224S\047\200\036\372\3348N\241\013\2244\272`?\225\001T\370Ih\231\277?\363\240\234E\266\354d\234\037\"\250\341pF\222\027,\351\342\261\2148\016\026\024\362\010F\246\347\304] \220\023\353\215\262\364\006\305\010\222\275\t,\325\336\030N\2707\216\323\256N,q\277\240TC\030\201\026 \351\322pF\216\006\010*4Hd\316\317\010\006\301$1\"\206\023\345\213\360\020\047\3429\221\"B\022+\242\030\321t\212P\004\314Q\304@ /\2037\312\026\"(F\224\302\233\300\026\303\033\303\313\341\215\363\027$\200B\021\346!\321\200\374\304a\214\207,\004\371\010B #E\352_\202\024/\001\032\227\326\252\226\000\035K\240r%H\253\302\316\250\372\000\222 \013\3464I\250\207,\033\311)\263PI\234\205K\372\2546\317\034\211\225tyty\034\342\245\307\243\3113\020\017\035^=\236\347\374l P\320\344\211b\264\005\304H\032=\t\030\255\236\030A\263\047\316O\273\217\356\0264\007\323\273#\255\301t\266\242\321K_\234\315\261q\337\034\033\367""\316\261\361\026sl\334;\307\306\375sl\3347\307\232s\3052\304\tpa\226\004\001\022D\2701\226\014\027\304\tq\201\214\024v>\331\007\340\004q\260\245\311\013\025d\361HK\031\207r\3428\\\320\047\317;\007C%\245\2368Nn@\224\207fO\nN\270\047JR\357\211dE\360\234\257\016\004\362\002x\243,\375A1\202|o\002K\2757\206\023\357\215\343\264\263\363\334~\210\240\232\303\031\311^\260\244\227\3072b9XP\312#$\231\372\314\270\047\350!\220\200\202:\006\363\222FQ\202.\202y\210\"(\247\310\236@\367\001\004U\014\314\350\362@%e,\222\321\306\240\202:\006\347\364\211S\355A0A\245\214a\204\372#$\2552\236\221+#\004\3052J\020\315N\317\007\200$\311<\202S\354\205{\010\346\321\234^\016\227\344\362\030F\255>\255\317\375\234>\202X\302\030@PDpK\n\0018\r\004\022\231\323i\177OP\222`\200\234\n\016\363\020b\2428-\006&\3111PN\221\271?\300\023\024\024\271@F\221\200I\212\334(F\221\013\023\024\271PNQ\222\311U\346\212\002NM\322+Gq\210\244$\351\225\233\014DP\221\364\311I\374V\003?\204S#\340\226$\037X\320%b-q\002\314)\024\021\234Ly[B P\020\353\211b\364\006\304H\222=\t\030\325\236\030A\270\047\216\321\356\275\225!\030\312\251\367\305Y\362\003\243\004\375\276\024\266\000\276(^\002_\244[\204Ht\214\034K$\006\014U\306\317\310@\220\311\027\3756#\014\271\230\307G\364\257\305\013~\203\226\274\014+@\014R\360Z\234\020\260(\343\372w\222\034\206:n\227\225\306\317\221\307\355B\022\375\014}|\222\343\347\030\031B?>\206N`\263\310\364\335\026\326gQS\330\240gA\226\005AM6\024\264Y\021\300f\207wc\270\036\226\231\n\272y\271!\236\225\002\2729\251\020\313H\205m>)\375;J\016\313)e\347B\343\347\271\244\354\234\207~\226Cj\224\343\347\030\031B?>\206N`\263\310\3241\017\327c\021\353\240\301mC\014\275\006\232\034t\310f\242\303n>\231\250\376\2659d\354\364\233\361M\274\031;\345f\370d\233\261\323,\336\004B\216\213T\005\010\253\353\267h\025\210\360*\277\213X\205\\\314\321\214\376\265x\243\256A\260\3612\254Q\327\024\030\275\026g\324\032\001\233\233E\230\327\"7\000\223\003\017\263l\014\330\344e\3026C\003qsU6\361\303\314&~\330\332\304\017\373l\342\207\255M""\3740\267\211\037f6\361\352\224\002;J`O\022\370\016\022\330s\004\374\030\001;E\020\031\211\352_\027\033\372\t\235\361Z|\010!\204\350u1b\300E\251\332\004o\022\254E\370\033\004k\017\2429\360\326\240$\203\210\022%#L\210\214X\3611\342\023\034#Vd\214pa1\302\304D&_X\221\302\047EX\301\201\313\nL<\210L\047\364\257\3056\355\212\224\306\313\360M\273\002$z-\306i+.\252\253\\\214\353\242\325!Bl\003\026\265\206\021r\035p\321\353\240\233\201>L1\302\017R\214\260C\024#\376\003\024#\354\360\304\210881\302\017M\320u1\326g\361S\330d\301\202,\027\202\232\214(h\363\"\200\233\035>\33242\026\306%\261\272\243%\215\367\326\253\307\2558`\244\224\303\3247r\025\004\351\047\215l8Z\230/\352\220zK\311}O\304\302\307\350\"\026\035\212\257\264L\250\337$\361E\340\203P\2022\013!\322F\303\352\307\345\326\250\333iF\275}f\324\3552\243\254\307\214\332\0163\252\372\340(\353\203\243\266\017\216\372\372\340\250\355\203\243\274\017\216\262>\310n]\221!\233\005\203\231\254< \226%\2131Y3\220%\201\001%)x\213\213\010x\010Q A\207\013\361\222\241\"\004\025\n\342!B\301\030\r\372F\030\356\347\024\020\304\022\300\000\"\177\202\333\354\t\300s\047\020\313<\245u=\346\226\031\226q\212ixxPd\232bz\035\023\344\031\246\2706\207\337G\343\t\362\214-\320\346.a\202\004\033e\351\2600N\214\205z)\302\033n\301\032}\"\023\327\277\014\245\2452\343\2432c\251\314p*3\234\312\264\376e(\323""\026e\332\2072mQ\2469J;\216(\345\255~9\336hk\031\210\324\265\372\342C\327\343\346NA\"\200\205,\r\004$2(\344RBaCLR-<\222LXLZi1\351\023\027\223V^Lr\2011\311$\306d|H\377&\310\261\2501`p\033?C\216 \203\035\375\026=\206\030\376$9\003W\256X\037\317F\205mNnPd\246\2406?\025\344Y*\000\317U\344\300\321\007\340\346\210%V\216\222cd\010\375\370\030:\201\315\"S\013\256$[n%\355b+\351[j%\355B+\311\227YI\266\310J\252\036\232d=4i{h\322\327C\223\266\207&y\017Mf8\312\370\0309\014i|\314b\215\217\371\320\306\307,\336\370\030G\034\267\0335\311\034\336\031\236\323\217L\320\243\344\346\251U|+U\331!\351\373,]\217K\002\005\211\010\026\262d\020\220\010\241\220K\n\205\r1)f\350\224\262\026N)\237iS\312\3324\245\2701S\212Y1\351\313\274\360\356Lr,j\014\030\334\306\317\220#\310`G\277E\217!\206\237cd\010\375\370\030:\201\315\"S\343I\212\215\047);\236\244|\343I\312\216\047)>\236\244\330x\222R\272\357\024\323}\247\254\356;\345\323}\247\254\356;\305u\337)\246\373\306K?\311\261H1`\260\032?C\213 \203\027\375\0261\206\\\314\352\212P\327c\261\353\240\301oC,\007\r4y\350\220\315E\207m>qe\242\251\357\027u=,?\025t\363sC\224Q\2132\312Q\332Q1}+at\212\306k\221\033\200\311\201\207Y6\006l\3622a\233\241\201\230\\\047\307\322\332\250G{\334\034)H\371\261\220\315\215\200\224\027\205\334\234(l\362\311(I-\303$\250\214\225\2402>\t*c%\250\014\227\2402L\202\312\250\0312\303\246\307\214\235\0333\276\2111cg\305\014\237\0223l>\314\304\223i\245\327\324\036\213X\007\rn\033b\3505\320\344\240C6\023\035v\363\231RG\014\320\261yL\331#\005\256\237\341\237\262G\010\224\337\342\236bG\0062S\252\227\242\3030\333>\352\3729f\333C\225\237af\375sJ\335\372<\305\256\020\236\262w\010O\371.\021\236\262\267\010O\361k\204\247\330=\302SCc\246\311\033\257En\000&\007\036f\331\030\260\311\313\204m\206\006\342\346\032\035\033K\032\327\346\247B&37\300rR0\223\215\n\330\317+\203\034\036\364\312 \213\017xe\220\305\266zT\220%Q\217\nz\303\3207\263\014\206\337x\202\352\251\301p2\031\276\205\223y$5C&_\n\224\2220\342=>1\231\232\241w9!2\021\216\r\207\001\000\003\312H2<\036q!\224r&\021\037\013\047e\002\rq\023\254?\202?|Rg&\226{TI\346\346gf\310\2546\035\215\307fb\360\021$\233\231Qo:\202S(\024+0\354\240\177\226`\222\361-\370=3\273\224-\227\355\203T\346\315\010\376X\004\370\221\020t\213\263\350 Rt\261\212\324\233\207\301\265\305\261\352\347\255v\2507\252\256\231\345l\276\200\t\227s\225\254\246\r\003\305\271\265%U\270\345Rq&W\250\250\017g\250""\376\320\315=Dg\245\224[\311\226\024d\0058\370@\255\2230\204/s\232\264\346\311\013\363\314\344\314\014\276\226hbU\365\317\314@+y\220+\225\025\347 \004\255\002]\367\331IU\3369\255.+\253V\017\254)\317\344\313\300\276Rq\rV|\271\031|%rm\0051i\326\227\327fgsP\036\000(\006\256\301:n&?\347\r{\022\224\200\207@1\002\027\254Y4\013*ke\n[\363e\002\370\355\241)\"\320V\332\304\371\215\245)\006J\307\326\257\006\270F\013\322\231\025\265\"Ep\336\265\213\304PI+\031\241E\342\212\330\360\r\331\256\226\306\230\004\253\200\242}`o\236\345\340<\313\264\014\006~/\025\313\271\354\314b~a1\013\325\3600;\203\203S\226\322\226\221\240\354\222\376\275\242\235\001\250\356\342\322\332r.\013u\264\224+e\261\317p?\026\010\204\202\005/\254\214\217\257p\2407\321r\366Q\000\310\367\231\006\254\000\231s\331\322\002>\376\251_\372\314\226g\363\371l\271\262\276\222\313\226\327\013\263\371b\277\333\302\312\331JI\027)\373`A{\356\335\313-\344\347\036\335\313W\356\255C\243\275\n\255Ys\265\\\311\317\336\237]\302v\t\375\253R\312\316\346\320p~\026\005\035\305\256\331\342\322RN\r\025\345Y\344D\001z\002&P\3762\016\004ss9l\374\246\366T\0377]`.W\236-\345W\360\363\271|ye)\273\256:\024v\n\370\003\276\026*\252\230\271\345\225\312:\224\021h\204\337\362\303|e1W\200h`\002`\232\205V2\017\205\235\203Q\000K\254\375\272d\350\277\317\374K\371\345|\005=6)E\346K\256\027\306&5>\351A\212:$\016f\252\177!\227\225\007\037wU\036\344\217\362\024\357\375\226\323\251\354\233\262n\010Kf\002e\357\003\263\236we\345s\262\013\330?\325OyQU\313bni\005\233\351\242~\272s)WXT\333Y\371<\262(\277\274\002\255b&W*\025K\320\330\ns\271GH*\317\316f\3052m5\310\346\265v\tF)U\01786\227\357\347\326\341_\371\376C\344\306Rn\276r/[\002\267\260PYT#\262y\353\026\272\021\374\313\2254\273\241\t\347\227\327\226\301\321\234^\316-\027\227![\035\310\227!\253\005rf\020\275\036\300\227\313\013\313\320Z\362+K\371\\\251\200$\251FRY[\201\014a\n\2737\227{\240~\346\264\177m\245\000\243\375#\340\r\342\341\305\2066\243\303\312\347N<:\244\237\330\005\357\312\272\256\307\342\374<\214""\031\305B)\207cz\016\007\003\374Ce\233\032\232\270\344R\304\201\321E\350\231\322\3126\247\242~\365\016\033\023d\010\377\262\245\"4~\030\177\214\177m\005|\367r\331\322\n\362M\371\261o\242gmi\311\000\347\340o>\273\234UN\231\202\320\324\301]\314\252\236\251|\330H\224\007*A\271\252\0208\014\254,fU\032\252\\\353\233AY\007\202\277\301\037\242[\312e\347\240B0\255\252\311{Pd\360/gg\215\243Z\241\366\226\363\013\005\310\013\003\2126\250i\375\253K\240=&\207\345\374\034\264e\203/_\320\277\224Ryl\312\302Z\371A\036|\205{0\366\341\270\200\325\265D\300\025\305I\367)e\366\2022\177L\231*\230\034\254\231\202\317\365W\017\241\201R\025)\277\256%\023\355f\260\002\177\331\262\032\017\324\217*\217\035\036\224\257\014\025\233\253\350Y\001>\233\005\026\345\227r\272g\321\004\266R\\\202N\272R\\Q]\\\375\\Q\277\003\274\317\373\372?\265a\005\207\337\"\026`\275\204O\332a\227FN\250\031Q\315\207 \032-\301\034\001\335\003\207w\020BJ\250\274\306&\217\0232\216P\013\213j\250(\025g\0074Y\340\273\352\372\310\003\323t\031\244\237\345,N0\005C\177ni^\223\345{\361\332\373\320\265\347}k\371\2545\204\314\374\243E\006,\206\256 =Ji?ez?\2772\243\346\006U\2674\303h?\245\300\272f\360\373\014\256f\033\364\330h\212\304Ir\t\306\225%\360\225*\232\3038\327\315\002\215\213\030\017\323\346\003\223\266tUM\313e\265b*\257k\021\246\002\355\367^?J0\340V\026!j\016\313\222_\316\245*\320N\320\243\277\267\276\001\353\275j\275\237U\2123j\324C\022\361\317\210\224kJ%\241\177\325d\247\032\244\242U\023L\242\356\003=\005kI\010&\204\002\376\241(\006\305\326Y\374\257c;\364\357\377\255=\035z\272\272\335s\254\332]\235\330>\372\332\366\261S\316\251\213\215\201Fx\373ho\375Hc`\273\347\r\210\017\035q\216\274_\013\327&\364G\353\325\256*\305\274\362f\365#\370\262\347T5\373\377\253\377\231\002\204\216:G?\252\177\325\030j\241!\375\365\016\005qN\235\253\257*\220\363\346\307\365l}\225\240\227\033\023\004\205\370\306k\315;\233G\266\006(\256\277\221\245\270\253\315\276\246\201~\265\201y\177t\346\357\217\377\325}\364\3517\325l\025p\275\3664]=U]\255u\240\367n\255\257\366e\375\353F\272y\034\203\223\325s\2657k_\324?\254\207\267Co<}X\315\325~h|\010\325\035z\335y\375\277\265\325zO\003>;\016\337\227j\047j\267\352\367\233\047\232\231\215\201\215\350\346]\047\231rR3\316\314\257\316\257E\247\370\370\357\177\375\353\367\216\301Np\006;G\321\031\355\214\242\023\355\374\251S\227;_[5\354\370\350\233\215\201\277\317\037\214\306\361\215\343\273\242\362\216s\347g\347\347Eg1\357\344\037\001A\353\035\303H\327p\347MtnvN\2403\321\231D\047\331\231z\271\304\002\245w\235\273@\351o\316o\353@\320\343\216\010\322\025\351\034Cg\314R\tN\2523\355\047\366\314\331\003\324\275\363\336\305\306\325\306\204\227\322\267k\235\2653\265|\375\367\346\231\346\374Fx\343\326\346\262\223J;i\250\371\254\223]qV~\007j\236t\014!QC\266\326\301\371\t\230\254I\374\r\333:\221\370\355F\370\000\374\324D\336\335\350\333\025\231\373\253\375\227E\355=\347\336\2543\013\335\t\230\372\027P\364\243!\223\350\233Fg\272\363\026:\267:o\007Q\353|\01353\371\367\047\007\246\370\362\346\352\256h\206V\240\333\353\003\347\301C\240\353Q\307\r$\357\206\241\231\210\235Ag\246\363Wt~\355\314\006\220\376\335\306\304\201\031\375\313\306\300\363\211.8i\340\362\2343\007\\^\005rJ\035a\244*l:\031\365.\227\313\340\334\356\274\343\247\370\354\307\007\352k\227\032\203\215\254\227\332\323\220\354Zm\275q\244y\255\371`cb#\277\371\007T\2473\t\035\r\032\307\252\263\372\004\250\371\3034b\267\223\251F2F$\336\257\037wI\374\316\371\016\276\316\374}\365\200\204.o|\267\325!\211=\341\2348[\237\250/b!`\036\202\331\256>\2123G\213B\350\241\002J\360\207\363\307\237@\357_\0351$;f\370L-c\036\235\371\316\005t\026:K\350\224:\377@\347\217\316\237\272\260\270]\tt\022]\023\350Lt\375\214\316\317]\013\350,t\225\320)u=B\347Q\327::\353]\217\273\004c\276vN\236Us\360\331""\3577\262\177_: g\226\274}\373y\025\372\304L\233K\316\322\262\263\254+\224\246\3148:\361\316It&;3\350d\240\263\200\223\355\\Bg\251\263\214N\271s\035\235\365\316\307\350<\356\374]V\375\327U,\336\307\347\016\324>/7\222\r\337\020\360N\355\303\332p\375\225\306{\315\341\215\377\333\310n\254o\275\006\315\313\311\350\221\253\344\224\376\000z\3764\263\226\3330U\277\032\047\"\227\352}\246}~\374\275\363=|=\205\343\325\353O\357\324:j\212\234L\365z\355x\255\217\023\232A!g\337\343\325\307\226X\240\364\276s\037x\377\310y\244\247X\232\261\322\350\244\241\243\203s\3070\375\036:\367:g\375\275\377\334\371\003q\267\277q\257\351k,\357\326\256\326\322\365w\032\027\233\351\215S\033\253\233\257l\375\007\230\343L\351\341\252\354\224u\307\031A\242F,[\301\031\357\214\021\211\313V\352\324$\356\233\257\317\031\240\256\357\233D6@\001\211\237\034\234\213\2579\257}P\313\326\036\241\350\314\375\273\346h`{\235Bg\3124\201Et\026;\013\350\024:\213\350\024;W$\323\277\252\206\261L?l\254\036h&\303R\275\2661\261\253\326\361\213\363\013\214&\272Ek9\214\246_\032]\251U\273#\212\277\221\374\340\374\000]\020F\242\302\337\327\016L\364\355\315\307\316Dr;\364\266\363\366\371FG\3434\246?\355\234\276\3208\3368\337\354\223\360\026%\202\221\021\244\t\250\232\n\220\274f\346fZZ\220\274\3663:?\233!\221f\t\032\031\377D\347\317\316(\216\375\321\256\333\350\334\356\372\025\235_\273\262\350d\273\226\320Y\352z\210\316\303\256\033!dXh\034\235\361P\014\235X(\036\342\234r\216|\340|\000+-\340\327\371\013\007\352\367\2376JM\337Z\340\275\332`m\256~\241\361Msn\343\343\315\216\315w\266.;S\323\31644\321\234\223\2538\025-\014R\315\272\275IUp\234\252\264\200\231\350*\005\022\373\333Kb\353\271\336O\372\247\316\255\333\316\355yg~\301Yx\200\0146\313B\032gi\216K\240\2230\303-M\373\201\223[\004\253)b\246\375;\350\33415y\017\235{]\263]\202\t\356\014\177\036\0327\364\366\351\003\r2\310\217\3677\356n\365=\277\332.9\031\030Y\366.\347,\006T\342\217\316\217\260\302\206\236\255\261Xq\364\313\003\226\345?\033\313[\3379\323\272e\255\355\277\242\241""\215B\003\205\222\212b\336E\347n\347/\350\374\322\371\033:\277u\336G\347\276\247B\307\320\031\353J\242\223\354J\241\223\352\372\005\235_\272\362\350\344\273\036\240\363\240\353\t:O\272\376@\347\217\256Q\354\241\243\241\024:\251\320/\350\374\022\232Cg.\224C\047\027\232\017\005\267\207\013\237\034\250\363^iv6}\255\340\375Z\262V\251\177\325\270\331\254l\\\337<\276y\001\231{\313\271\005\374\205N\260\206\0050\203\030Iyn\317\245\216\340\352\205L\335\267\207\314\343\325\017vM\245\263\246\005\267\347Sx\252:_\373\251\016\315\243\347\351\277\2357\200\017\250\364Z\255\375\037\252\267\210\372\260\023\206u7\340|\360\367\225\003\026\343\362\306_[E\347\356/\333\250P\353\255w\324O7\216K\177\213\242\271\203\017I\"4v\272\232\0235+\316\2423k\346\364\007\350<\350|\202\316\023\263\346\030\30567jZ\347\216\203\017U \224\026\230\360\311\305\003U\341@\363\315\246o)\373\237\332\275z\250\036m\334\331\010m\214l\366m~\2655\276\247\261v\242\223\364\204\037\327\335\312\2728\2649p a\345j\363\303\346\370\246oJ\373\240V\252\237\250\337j\334\3378\261\221\331\034\330\214n\335un\003\225\213\316\"\216:\252W\220\324E\324\221\270%\307\217\231N\253\"5$_\272| \326~\326\274\332\364\311V\377\255w\326\317\324\363\215\3377\316l\314o\2067om-\357Gs\344\234:\337\350`t~rp:\217U_7\342,\363\356\216b\032vHM\340\266\002.B\315\2413\327\271\214\316\262\231\177+\350T:\327D\241NV3\265\257\220>\333\361OA\311\036\324&v\216;\362\364\333*\252\267\257\014\034\250\332\276h\226|JT\347\370\231\372`}\256q\241\371\315\306\334\346\307[\035[\3578\311\275-\256\247L\031/5\334\251\367\332\347\007\242\364\233\215\253>\341\3359~\276\321\3318\323\3107\177\337<\2639\277\025\336\272\245D\205\375i\241\234SW\232n3\323\n\036\336\205_}z\021\206\243\254!\367z\375\270\244\374\364\306\273\233\237mf\017\252\257\276\343$@@\271\245\206 -\365\270\"\217\\HI\031o\247\246\306U\331X.\265*\371\244\315E\373\317fv_\205S\023\244\024\276\335jQ\005$ag\r\23553\217\014\342$1\3305\204\316P\327p\227\257\234\337\377 Z\333\201J\270k\r\376}g\"\355\244\241l0Qk!\256\344""\224\376t\376\324\013\r\352)T:R\205\270\242\252Z\007\347\375\032\021\255\3119\337\336\262\354Ju\356/\315\301[\"/\0306\203v\027lf#\274\347\202\301\242\270\255\005\3731,\232\336\321\2477\3710\027X\252\317\267:\016\336\364\240\241\350\235.\220\\v\265\320\047A-\217N\336.*\202\n\364I\373\252\2114\240o9o\235\251\207\353\323X8\030\310?\254\367\325\277l\014\004kC\2178\251=\027.P\263$\227Jqt\342]\223\350Lve\320\311tMu\t}\352\0175TO\3748\rb};\333*2\341\017\177[}~\321\261\321y\312-\227\025$\342Q\245\256\240\263b\204\360\207\350<\354|\344W\031\343\322B\3576\323\226\322_\350\374\325I\3028)s\026\321Y\014\345CB\247u@V(\025\227\363]\334\211C\371\264\356\230d*\252Bw\351\360|\325\335{Nz\312\231\002V\375\342\374\002b\261n%\264H!\306\254\242\263\332y\003\013v\243k\006\235\231\2562:\345\256\237\260|?\205n\242s34\205\316Th\032\235\351\320\002:\013\241\022:\245\320::\353\241\277\320\371+\364c7\016\360\335\341n\237\036pp\250\235\323\320.\325\\\027\235Ih\257Z\207\t\202\253Z2\342*\206\366\222I\342&Q\210\330\222C\047gT\n\244\002\\\366+Pt\201^\263c\232\253\006\307R|Q\027j\360\311\346\371\215O6G\266\372\3669\270\235\245\315\235\337\235d{\013\304\0067(\220\\\250\211\002\005\326\320\365\255\203n?\266\275@L\371\257\013\344\326\220g\372\t\254\241\310\276\013\364\271\035\246\016\257@j\360\275\324\336n\364\036\016\276oU\277\257\037\257\237o\000K\224\341\220\321}<\267K\301\014\244e:\032\211\245\374J\213m*\037\r8\356\330\213{\250\235$\270\336D\347\246\231zh\323\365.:w\273~\221\332W=\021\r\r\267s<\331\245\346\355\033\047\003\262\232^\001\302*\3305I\240Z%\205\003i\177h\376 \231\311\255U%:\025\374J9O\201\016(,\355r\377\017\246\211\366\026\210\215\370P\240\376\266\327\320\3566~\332Ss$*\321z\213$\2070\266\311\260Q.S\013\235Eg\266k\016\235\271\256\":\305\256\307\350<6Si\002\235Dh\002\235\211P2\304\353\237m\377\014\2010\216\253%\321\313_\177z\237\357\253\006\262\356\213\326s\2136#\270\264\271\273\341\230\263I\353\321H\272\222+\002i+D\002\n\255\010H\270\374\021\031\360c\027ql\260\3137\236\rG\3329@?\247\311O""\332\001\014x\254\215\313~s~{\350<\324\312,j\002\244\317%-\016\355\246\320\332\324m\353$I\373\232<,\343\002\007%_g>Y\317\006\265\376\305\255\337\234\351\273J\037}\020\343I\217r\241\340\024`\230^w\326\265\\KM^*\030]}\250j\371TB\332\047\243z\034Ag\244\213\344\305Q\277\246\341\226\3263Y\013\275\253\207\315\213\361\215\3677\047v;(\034\214Or*\2431P\356\014\223*f\034\235\361\335\014\r$^\273c\002\326D\350.:w\315\n\343\021:\217B\177\242\363\247\225\2629\357\331\350q\373\316\241\266\277\375\252\177\212N\261\342T\036;\217\265\005\001\3654il*\r\370\344*\225F\020\267\345\251-\223h\227O\202\205\342\177\362\"\212\317W\354b\365~\370\254\240NH\323\0175\265it\246MS\2436\266\206\316\232\331\342|(\271\245e\250\333%l\267F\325CJ\220\271N\261\253v8LD{*\264<\224\3664\355\344%1\221\244\224\337\321\371\335,\240\335\026\244L8$\367hg\230\230\270\202\316J\327\357\350\374\3365\202\335o\304tTZ\016\337B\347V\350vH0X\233\352\334\326\353nRH\320\330A\n\005\030U\257\037:\237g6\342[?8\267\321\202\326=V1M2G\240\177\337l\227[\23640R\307\225\026\225\256T\257v\342\227\321Y6\026\225\264\023?\210<\035\014\r\2413dLf\210\3214>\316\2423k\366\345\213\350\024C\217\321ylF\313aTF\014wG\320\211t\217t\213\n\372\0028\206\247\031\356\374|\310C\346\356\027\302\223\316\244\266\047\3179\271\025g\005\226\216\277;\277\353-&\222J\344\366\262k\354\254\364\347\244\340\242\226Ns\221l\351?\371E\260\237\357\036r\361wi\346\351\321\356\201\010\014\"\372\023\347\211\336\025!\305\22546\223&\224\264\270\244\036N\253J\267\334\312\260\367f\227O\333\367\263^\234\323\034O\263\272\225[\257\036:k\376\332(n\3158?\243\201\335N6\010\373d\030mB\322\300C\212z\342\215\264\213!\365\037\331\261I1\205z#\331\305D\321\211\206\322\350\244C3\350\314\030\235\3402:\313\241\002:\005\350\224\202\337\332p\341\356/\207\017\006R\t\010\025Z\314\047% mc\220\022\220\264\177\322\330X\232\005\320\220\025C\047fXLv\216\362l\025\t\035t\250\352/t\376\352\372\021\331\370c(\034\222vz\372\004\322\303G\317\355\255\236=\254\223\365\005\\\\\266\346%\210\336\260\276\301]\233\027\241\002\241Y\235\3061\332\257\047M\2234Y\047nJ\225\2524Y\247\035jw\256T\353\330\337\374Z\022\020\0219\327\216<\277\375\235\252\257\241\332\321\313\265k\233\217\266\036;\267@\006\205\002j\345Ye\247\246\030\336M\343\003l\372\260\327\222\263\004\223\244V\305\311m~\322W\020\327\002\017T\321V\2324\364\227\nL\352\346\264\014%\256\025\320)\330\325\277\317:\364\357\220\246\343\305s\360z\363\336\206\247\373:\307?\252_\255\247\033\3574/n\2447Om\256n\275\342L\0002\030\031\265\315.\036\236v~\027g\220h%)M\260HY\"\225\233\244x\"\241\226&Rw)\245&R\022\326\250\345\321PIg$]\331\226xx\2611`y\2506B_<\017\277\334\350\334\350\363\362\360l=Y\2574\276j\336\334\250\340\206\366\326\005\047\005r\0074Bm\352\352\036:\244FHK+\022\332\244\251M\240)\033\255L\245\264+\247a\032\010IIL\215\320]\025\220\036\317^\333`\371\250v\256^<\037\277\332xsc\300\313\307\217\353\367\032\241F\264yg3\204\226\016[_9i\230\245\241\047\353\363\333\356a\270\300[\034H\200\247\261O\236\211#\013\036Z<\310!\320\225c\324\364\"%\342\235\024\241\352\212\013\313G\325/^<\037\277\336\370p#\354\345\343\271z\251q\242q\253y\177\363\304ffk`+""\352LB\207\006d\300D\230\221\335\343Z\201\027\"H\303\202@\2736\232Q\334m9\265\262 \006\222$D\203\342<:\363F\t\3522P\255,\036\031>~\332`c\343c\266\022;\377\302\247\346\375\332\222\005+O\344\245\010r\203\214Z&-\322\344\352\214xH\2233)V~C\347\267\256UtV-\017\351\030\271W/\365\367\377\375\253\373\r\347uT\214\257\342\0258\217\236\226\253}\333=\257l\207^yz|\333\\\331\022\302\346g\257ki\361\221\272QG}v\3149\206\207\257\334f\377\352\277\272O\251\257\235\376\037a\321\365\366V\007n\256\036\253v\240\235}\367\323Lu\240\032\201\032\352A\361\246\243v\n\030\332]\237j\204\033\023f$r.\177\017\354\\\365\342\373\324\371tp\263\017&t\325;&<\330^\177\272\000e\235\257\205k\223\365s \364\367\2312h*\214f\362\357\243\377\352>\366T\235J\350\200\032\354\323\366\377\030\320)\324Y\200\247\253\3161u\224\005\357\273\271P\033\250\205\t\254\313\360:\264\270\236c\325#*\242\347\310\323kO\037\327\216\327\316\325\217o\037=Q\005\310\321\2477\252\003\316\2113\365\261f\3073 \365\226n\254\377\376\337*\305U\025\276W K\233\366F\343z\3638,T\210-\377\201f\233i\016\200p\323\243)\375\270\336\001\031@n\237W_Q\273\366G\217U;\253g\253\345\332Y\340`\007H<8\335|\001\362\320\215\215\001u\316\006\250\177\375i^w\013\250\332K\215\341\346+\033\307\235\257\307\266\206\266VE\201^\305\nE\335\365G\325\333\260,\032\330>z\022\257\r\322\264Fa\251\264\212\305\230\252\206\253\351\332I\335\016tp\302\240\351\252^\255N\0027\201\177\047\252\303\265\356\332\204>X\245\004j\344\371\233\325\377\326;\234\276\317\232\003\316\265\341\315\360\346\204=\243\361,\324\215\205\304R\235\201\257z\216\253z\271\206\2471N\327^\251\037\257\237\201\266\325\363n\355\"4\2629\265\230\3539U\2355\251\337\255}\004\231\315A\033\357y\033\230\241>\244,\235\343\2374\372\234\213\337mL8\337\307\266r\352\366\227I\312\027VK\317\364~\n\224IU\3755U\214\201\352\rm\010\361\357\377=|:\2135\364\306\323J\365K\250\352Qh(\257\034\257\276\2055\014\215\237\250\356@\"\217\324\007\352\303\215\236f\207\2331H%\316%h\305\316\017\361\2555u\025F\2062\376\014[U`\306\243\265\221:\020\2453"">Y\235\203\212}T\177\324X\007\361L\0211P\035\302\312\264\031\243\202#\\K\243~\310\315\030\246q\325\340\235\360\2042X\306c\244\224\363\347\315\211\0269\377T\233\307^pBe\020r\336\357o\3145?\006\231\346\034L\025\023\274\240nm\034\253\206\252aQk\357\350.\215\224\034\373Ww\317\377\326\236\016>\315\232\213\267\236\016<\rc\203\355\256\316\324G\260N\276\305\026\272}\024\213uU5\221\027\275\340\252\375\320\350k\223\305\203<\240C\353\006\222\334v\277\257\237F\047mD_w%\353\265\206x\t+\323K~\333\220}\3563\221T\033xdN\n\267\256\361\277\232\010\207\221\033\303f\006\334\321\230\317\356A\035\272\311\302@\233V\353\304\034\271YO\242*\231\006\021;\334kSh\327\331\273\006?\344\"\367\3737\034\367\251\223&\341R\356}P_\241\rG2\347\224\313\304\277|\266Q\207\256W\355h\243V\2254\014R\203(\357\014\"\325\202\\\325\205}\352\324VF\252\276\336\337\272\330\250\004os\261w\320\252\034\324\274\357\371E\337\237\365\347\336\313\271\317;\303Z\024\340\305,\010w;Xy\206\360\326\223\035m\231\313\203\204R\027N\372\ti\262A\372\t\332\035\276\205\316-;\347\3558\236\275\030N\251e\247P\047\006n\"y\032~\300\020G\343\370N\313\244\246\241\031\323e\030\031\336\371w\035_\306v\343\361\227\264\331\270\223\245\"\211\374;Y*\212]\306\227\261\275\330\367\2226\027w2W\241\005\300N\346*bW\361\305\363\355\033\377\346v\300\365J0\260\301\004\252\257F\025\327\360\005\336\236-\217\226\322$*\027\002R\227*\367gIV\243\365\200<\253B{\213\367\273|\2277\035\354\241\206]\350\335\0476\227\324C\r0`\201\264J:S\347\367\047;j\303\367~\363\372.\224\"Y\274\370:\255\256^\207\332%\235\266\363\344\217\035U\025{\277\220{\027\032\366\325\255\243j#I\353\221ic\331\371\343\317\035\365\336{\277={\342\371\333\334\035[\357\253\333\263\265\222\210t\037\260\250\367m7\037\354\246\351](\233\217\343\325\245S\316\224\336l\347\272\205\360\316\232\342\275_\027\330\367\374\253\002\047\266\226\224\246_k:\202V\013\221\316\235\027\214{\277lo\340\371W\002f\267\236(\235\236\326+\004\t\344#\235;\257\312\366J\226Z_y.\222\363/\260V\235\2046\225\320K\370 \251\367F\347\316k\237}\021\366\274\205\037\247\013\206\236=\320\325\276[[\006\366|g\013\036\2537\227\202\310\355\266@\025\344\257\376\315\2436\336\322\262[}3\337)\332\337\025\233\236\002\264\353\320\377nk\340\037[\200\035\247\224\026\227\312\354\263\t\261\251\347`\367U{\316\363=\357\"\347\276\255o\325u\343z\227\321\253/\335\3516|W\266\224\327-+C\204O\016t\375\355qy*\214\337K\035\244\366\ro\375\254l\013\364.B\320H#\327bD\270\\\351\257z\356\307\375\256\206v(W_\260x\253\005;~<\216\373\305I&ql.\320\350\302\263i\016\325\353>{A\023*\351\220\002\257\033\225\3527\271\304\247\245\003\351\220\002\215.h\251J6utX\321=0\200\215+4\206\316\230\271\300\214\016+\272\227x\343\347\346\240\306\023t\236\204F\360\260\360H\367\030:c\335\343\350\214w\307\304}\013O\277\255>\251\177\323\310""\376OY\220\205\267\217\276\205\317^\370\235/\320\366\313u\276\254\r\370\201\237C\315\332\017\276\251e\321\371\2726\301>\2008\314H\031\210\341\223y\327\256C\277\352\333\370|\263\343\177\332\276\211\234\352\277\261\235\350@\005\021\033/\232D\205u`\255\032\256\246L\314Zu\260:W\353\323\201\207\320\354*\320\234\006T\320y\343\2542\341\372\270\331\321T\271\223\025\021\2768\007E\216\241%\333\366\321\367j\237\327\2176\302\320K:`}~\364\re\\\327\017\003\302\261\023\325\321Zx\373\304\245\306\r4\214{v\354|\343\337\215\325f\207K\256\213\356\232snp\263\357\357\377\373\327+h\352\327s\3249\372>|x\364du\262v\271\276\n\250\216\276\201\327\375>\254\347\240\r\2360\367\004\034{\247v\n`\013\215\t\350\256 \027\274\335\350\006iXF\257\303z\355\234\262\323;zL\263\006)\037G\25384\376\033vN\203\334\n\003\231\211E\032\336\252\236\001\241\030{J\217\032d\324\200\251j\251\247\336]\237\320VPP;\312\010\353\330\333\3000\264+<\212\003\266\262\255\252=\250O<\003\204]\220\350V=\253:\352\261\223\325i\370\3427\303\001}\335\201a\302h\355&\024\363\2106\037<\362\364z\365m\3474*p\225y\342k\320L\234wQ\022\302\3403\242i\001Z\307\2217\253}*\032[\2212|\334>v|\373D/Py\247\031j\206\261\177\032f\177\022v\302xm\330vO_\375?\252\310=\377\001\024=\037\326/\351\320\273\265K@\353#\364~P+\002O\027\233\331\355\236\367k7\352\237;\347\277\005\001\340\216Z\317\300\027\316\207 \3066G7\302\310\254O`\204@\320\227X\373\033\3477/l]Wb\302-\347\026,\214q\353\202\337\252#/\233\221\363+\355T\004^kK\006E\221.d\317\227\325\317`H<\n\363\216\323\373\365\306\205\315o\267\326\235i\030~ ?\3340\331\3569[\377\245\371%\014M\252\277\334\257\275\r\023\266\362(\343\300G\320k\257\342\335\022\300\224\213\227\366\303\216\306\033\315U\264\361\223\2148\213\355\205@\341\3464\310K\363[#N\022FF}[\266+j\310M/\2228\002_m\260w\340zJ\375y\363\326\306\022\352\010ay\t\330\225eHO/\254\371Nk\223\324\303(\265s^U\261\267\330\037\327\047\024\010\332gs\242\271\010R\326\203\255\214\"L\2770\350\n(r\347\212\032B\340\325\277v\266\367\024\373z3\277\361\004U|\260\226\005""\354\270\241\217%y\267\361\245\3569\207S\354\257\240]\367y\213}\016\215*\001\004\275\264\231m>\002\331\354\377\266\346\025aP\031\334\342D\256\047\251\341\223\206[\n9\366\272YO\261\277h\256o\036E\r\035t+\300\216\273\363H\373\305\3064f~X\305\376\032f\227\001o\261\317\303\270\212\240\353P\350\325\215\036X\321\237\332z\240\010\323\257\003\271\267h\311\365*\315\372\201\267\354\272[\272\336b\177\271\361\312\346\373\250`\203a\013\260\343^;\316\025\337\342S\250\033\035\207U\354o\364\270\321\347\364\341\213\247_\"\013\254\037Yp\241\241\273\376\027H\305\306i\220k?v\022\031E\245\276\017\336\225|\244`H\212?\271\343(y@C\037i\347i\314\243\035G{V\331\303\246\2576\336\331\274\264\225W#.\020\200\233\354\333=g\352\343 \016\252v\353g\323z\355h}\020d\334|\363\311\346\325\315\351\2556\260K\266\222\366\260H\352F\355m\230\007.\177;\232\tN\210\023{\236\013]\343,\271\357E6\"\201\267\200\332{\025\377\0013\237s\376;XHg\275\345\276\330\320\343\243\032)7\276\204u\322\210\322u\000eP\035\260\nq-h\345\276\025Yz\004\336\047i/\327\363\224\373\233\215\2576\307\234\004\360\024\226\033\200\0367\374\267{>\256\027a\316U\264\035j\301\221\301\355*7\r\207\007(\3673h\350#\215O\232j\005\022\251\236\004\351\3751\312\252\357\201D:\202\047,\016\235-\372\340\217\247=\\j\350\211CM!\033\243\233Q\224\0104\341\372\335Y\327\316\\\356\307\321\332?\360\262E\373\022\236\207/\337\302\n\364gg\002x\016\222\020\240Gc\206\355\236s\316\271/`Z^\335<\264\211B\037R\362\224\274\277\241\007\0055\344\340\332\267z99\0103\332\267\316\224\236e!\033u[U\317e\347\362\320\346\227[\003[\207\326\340F\325\211D\017\013""\25675W\024\1776\027Q\002\320\026sP\3058\325*\371B\316\263\362\304\2064\302\224\227R\273vr^\026\214@s~\242\324\\\363\316\337\367w\204],?\333Y\372\003\256@\367]z\024\263\307\266:\366#h\007)\331\311\010R\036\003 \201\223:\202k\300\321fy{p\263\357\005\267\376vN\271\007l\375\203\316 P\006\303\246\256\024W\013\276\3775\310\317\270\265\257\027\027\312\336\202\261g\273\347\274V^\234G\226\177\354|\374\205Z\262w\354n\245\302\207Oy74\t\252\322.V\336\251B&xd\266(/&\243+\357\350\350;\251\351\351Q\\zks\022\235I\243\246\247\033\220\313\350\224\315;#\277\243\363{\350I\350\340\313\"3[\377\006\355kps\321\211i\r\216\336L^\243jS\007\202\0170p\375\214\317\025\357u\354\342\263\270l\274\362\3063i\203K\3237U\214k\"\331\346\241\014x\002\243\014Z\213\035dD{E\t\356w\224\274\376\245\032\302\216\313fk\341\273\033\357\224\362I\236\047\220\227\245\312\343*\3042\232\365\345m\241\264\345$\33325b\332k\242\273m\350R\260\300k\201\351R\260;\241\366\351m\212\320\353\337DqC/\246@\242F\275\002U\n\036\007\333\277\236\363\222\262\343\332\355(\362\\%(\177\361\344\200\252\1772R%cK\262\204&\2137\272p\210.&\241\033\303\344]\207T)\251\320\301\225\253\317\037/\206q\236z\221B\216\032(\244\312U\276\302)\027U\362A\013\373\006V{G\210ag\030\276BE\370\3765.K[\375\3164\232\332\303\212\314\371\350\232\232\342\047\270\177wj\030\245s\223J\006i\212/\315\243\345\372\222\026\226\324\362\244\345%\265<\272\242\211\266\236\335g\244\333\240\2722\215\355>\264\213\344\346\243-\334\312\273\030\301&\262\037\226\376\260\261\n\215\335\047D]nh\220R\346nLo\336\302^\254\025*\372\341P\255\254\221\362\263<\013.\217\316\310\343\357\366\2712\017?\276\003q\r\306\033\255\033\320K\252\005\032o`\300\337|\2566\347\036WkoG\273\334\337&\025\366\201\004\306\375\253\364h\255M\303\275\274\203S\332\326\323pO\027y\321e\3744""\371\376\331\365\002$Ad\365G\365\357\320\034\3420\266\020{\016o\227d\277{\210\267\0338\342\\\206\261\\]L\263\257\322\357E\002~$\267\023\371\333Lr\355*/&\220\247\203\344U\024\356\241\215vu;\342\311\276\007\037l\r\0277=]oo\333\313A\226\004\362\3115y\237\r\265\013\232\337hx\246}FZ\263\221\200E\026V\366\355\317v\313K[h\365\322/E\244\336\372k\312\210\007\2708]\337\323\000v{\023\242\316\325\377T\315\047\213\223i\301\n\006;\017Z\300F}\221\316C\347\241^\217S\013\243)M\236<\226\207B\245\210\032\310:y\216J^\370Fw\333>n\333\2305\337\270\321\374\001\226\023\367\324\010\202\026\256\300\344+\003\007f\361\336M>`\016\207\216\013k\222\262S\326{_4!\310G\033\344Ax\232\th\202\244\016K\027+\330w\246\332\324}3\215/\232}\355a\017\331H\360\305\353Y\347\354u\325eW\237k/\261\350,\302\304\t|\2026\2505\224$Z\311\325\275<\317M\222j\3403@\324\016\351`\025M\232\201+\326J\327\301\255-\016\267\345\355c\203\275e\207\226s\205<\270Lz\316\300\367B\334k\342\333\265\367\336\306\246\267\217\215x\350\227 \313\303\202LkI\344K\235\322\"W\256\216h\276\240\371t\227v)\373\336\247o?\223v\247\\z!\314\013\334\263$;fRj\004N\025t\341<\3311\223n\351\027t~\t\375\212\316\257\241l\250m\353M_\247\326\266+\342\n\nw5\210U5\262\231m\313\\\263W\345\307\363f\033\251\355\223\267\207\320\020J]\236\2323\235Mu\037\305i\373\244s\003\005\226\003qj_[!9\047\007\303#\264\340\222S\322\352\020\332\023\r|k\256\r\214\332\357NI\033\031\245\347\347o7W\367d\305\370\274YYN\307\362\336\013\371\360\017\335G@\367^\270\257J\264\313\316\321r\312\271\241\305\360v4+\030/&\016\243eI\371Y\336CC7\367\004^\014e\357:js\003\273\372\031c\330\207\365\313\332.\377\360\245\343\203\212|\362\021L\373\242[\333\006\252\257\232\341\366\260g\037\266\241y\047\377\002E\224\375ne\033\036}v\215\361\210iF\366\300\243\275\033\227/8\013/H\312\335\257\316(\323\370\2729A\354q[\016kB\267T\361\332\311\236\177\213\341\373\037\316\236\251F\264]\354\331e\017;\047\027I .\001s\264j\221\2049R\032\311\353!\345\315;\3228]>\244e_\221jS\017sy\024u\242x\266\233\3653\374Z\r\360{\356g""\027\361\244\342\304^;[\353\361\210Z\024\215\322Rf\222\227\371\221@\020x\037\262\275#\262m\335\357\233&\352\330>\233p&\364\273\263$\014\3236\004\035\236\244\315*zF\365\227\320\201\205-\265\243\357\214BM\027Q\013k\232\026Mi4\361\333[b\367:/\024\234B\305\251@Uhc\036y5/mlR\343$\331\224\354Nh;\216\036\351\n<\364YB\247\024\372\021\217y\376\330\035E\047\332\235@\047\321\235A\047\323=\215\316t\367\255\356\366M\"Z\016\271\3669\353\375l\022\331\3030\260K9\344\341\313\230D\366+\207L5~R\255\370\363\237\266\372\332\262\264\374\300\277\016\330\337\322R\236Z\370\347,-\277\3702\210OBt\233R\033\275\207s\304\321\277\016\240}\033\352\251\264OJ\253\002\232b\002\237\212\223\267lI\303\017y\023\236\275\325\255m\213\203\317\361\315\2156s\263=zt\332\005\244\216J\373\3154\264\323nO\340e\374\362\362-\232\203h\221%/\311\263\227\275\265\255i\036*;\271^O\352\362\376\001\254\335\205\211\322M\234vn\232wX\311\3701\035:8\367\215\026/\322|g\343S\264\020\325\327\236h5\346R\333\253c_\213\230%g\tF\n\264N\347/N\220hE\243\004m\026\321Vw\340\365\333\362z4\032c\311HGn\301\331+\371\332&h\035N\353\336\373\311[\277\316\212t0$\327SS\246\231\213\214\356\002\357\350\226OX\221F&\360-f{S_\333\364Y\207\303NZ$\235q\316|nv\211\345&\335^EO\222\003\34432$\210\222T\020x\24571\225\224\023$\007H\335\377N\243\005=\270Nr\254}\274\271Mv\245z\264P\006\240\3726\027\272c\250\355\365\321\226\235=\332}\220\017\247\222\360J\"Y\340%\341\356E\022j\371J\252YZ\211\311\333\024\335w\264\333\267\371w8\355\273m;\201\244\212\224\217\376\320J\2006\352\003\257\021\047f\322\"\227\254 \350\232\347\300v\275\334\316\315\302Ce\352\341\355\034\036\006\263\251\345\322{\227\264\217Hfr\364T5\r\033t\021\322-tn\205f\321\231\r-\241\263\024z\204\316\243\320\237\350\374i\326\304\341\3566n.\006\212%b\215E\334\241\356-\317\307\317\340\216\343\027\343\316\270\036\332\332\272\3449\272ysku\267\325~\330\313!\251j\223\257g\320\354A\022\016U|\240a\344\r\254\307\033\306\016\236\324=T\343\244\014)\242S4\025?\2145>\334\375\023:?\331\033\260\016\276\304jg\365\307""\234\030pX]b\332\346u\205\262TTOL\211K@^\354\372B\276\016\034x\335\031\211aT\347\177\242\363\247\351\345t\366\201\254\0052\350d\314q\252\373\350\3347\232/:UUi\363\242\003g\310\222\232\300uW\230\307:\233P\026\240\355\253-\327\232\235w\321\217\352\337C\373;\277\321\367|\303v\020\231\365Eu\272\177\31275\344Eu\324?I\325+_9p\r\324\324&&\211\02440\323\345\326$K\320;\257TWt\364M\236S\331\245e\307~,\347Y\3758_\377\204\027\361\352\273$\365\233,\313PC_&\234\004\212|\355\226\276\307\267\376\343d\246\016\252\361\335\275\330M\"\037\r\234\256\302MU\214|o\210\016#\222\240M#&\331\332D\320\211\204FB\355\323\370\032Y\345\253\244\223\324\207\347\333\313\350\030\036\227\271\265\323Y\231\303c:\211)\362\004(mu\3107e\350\035i\262l\242\033\032i\232\242E\016\351B~F\347\347\320\034:s\241\337\320\371\315\210)\313m^\371\\\304q_?\036J\327\303\332\212j}\\\267-\213\375\357\267>p\246`\224T\227u\356Py\207\246\003\220\333Tr\354\242\332\"i\322=\333\244z\n)\260\322\350\244Mm\335C\347\236\251\264\002:\205\320Ct\036\206\376B\347\257P\004\205\212H\367\rtnt\217v\267\317\030u\347\232\304\206c\004pw\257\263\335\002\304\007\233\177:\2230\250\202\000P\332\356\371\257\363\337+\315\016l\202\255\374\207*O\220vG\352\034Hj,\240S0\313\005\332\017$\341\221\372!\035\233$\t\202*\230&\047:\227M\202\304\032:k\346\\\366\037\350\374\021\242\n\246\235\2644:\351\356\333\350\334\356\376\031\235\237\273\357v\267W\3628\007\r\047\211\275B\277\000\254\257\342\303\213\346\325p&\037\201\212\241(\371\303\217;6\000a\326\241\266\245\377a:\177\332\234\013\274\302E\032\235\356~L&\321\204\0164\217\2423\nCs;\267\005\376\335|\274\211S\341\017\031%\032\034J\r\264\307\374o\027\303(\255\333\002\317\325\322n\026m\220\3226\226|\375\212z \325\001\211\2074!\306\320\211\231!\226:\342T\250\235JWS\025\341AV\017\317\031\023\247\033S\315=\t\352\035\236\273\323\236+\232\353\267Lu7\220\335\226\272\001i\373h\034\227\017\004\322A\047\232\327Hu\"O\353\270/v+\335\237|\266\207\344A\232\354\250\033\320j\212*$\036j\337i\326L\343z\363$\364\245\325\303\254\204!""}[\225\250\204\201\246\226\006U\005m\236\306\227\272\364\232\000\304\047\375R\227~,D\313?\362\265)y\211\035u\004\371\262\031M>d0@\352\014\0222h*\222/Z\272:W\245&\2247y\357\362<\177\030DZX\332\350>\000e\3207T\\r.\205\241|\307\267^v-D6\0476\275\327\010~\326\324\352\3030\266\222\315/q@\325\217\260\202\004\253\337\260r\357\312\227\227\201\004>YK\332o\371\356\027u\004\252\002\322.\320\212\225\304=9\037\320\302\210D\004\352\010\203\310\364A\323\021\250\nhd\232\364\325\304\320\346W[c\316\264V\221\353c\264\313\333=\375N\177\004\357\034\335\312\276\344\232\030\331\314\342\324 j\342ZS\357\273\rB=\014l\216\342\236\240~\345\025J\240_\305\022\357\226\222\306@\276\354$\257\261#U\256|ML\276\031N;\230r\222\226OJJIM.S\003\257\316\311\370jcx3\212o\027hE-\224\005F\330\302v\317\247\316\2477\360V\001e\027\367R\253\343\306\346\352\226w\216\370\274\251\347\0105tA\243\201\351M?#\013E\300\307\266\2345q\"E\236\023\016|x\227f\t\371H\231\274U\220f\t2\332!ai\027\3635\251\336v9_G`\302[R\022*\254\373\240,\260\354.n\367\\q\256D\267N;\023Iu\t\313.\352\343Y\317\321\247?U\227\353\327q\373\014\357\265?\201\307\220\021\226\257\255\326Cu\305\306\327\236\306k_\325G\032J%\366\232s\364\203\332=\365`\007\244\213\327\006\020\t]\304\177\344\3515\365\002\300C\274\034_]g\017\016\276\270\203k\224\327\336\254\376\267~\2441\2001\037\324~o\364\241\347=\274\270^%\372\260\336\247\023\235\256\375\267\321\3218\321\300\025\353k\307\253\335\325Lm\240\026\251\237\254\3175\372\340\353co;o\343\302\347D\363\326Fv\373\330\177j\351\372\361z\337\366\261\267\252\327\252\253\316\351\363\215.\274\342\377t\255\303y\347\242sQ\337\374w\354d\365gH\325\017\r\013\362\200(\047k}\370\220F\343\207\2153\352&T\272\347\037Z\267\233\313\005d\006]\303\377l\237W\237\355\365\3323\375>\211\270\027\206\204\047\371\020<\315\336w\333{\321\331\263\375\336""\311\261\327\3738\364\303]\342V\016\022\323\251\367\223\336\326\275m\250\2557o<\333\357\351\377\275\236\366\327\017\201\351\313\020\344\363\262\201B\330L{o\220\177\266\337\353\343\367zy\274~VL\357\222\312\027a\345{L\3669\243v\336\030\377l\277\327\230\355\371RF\375\236\267\266\277\2272u\240$\227m\357\025\214\317\366{Y\214\274\257b\217\327\303\350\007\271\305EL\264\214\013\224\227\344K\230\273\274\020\340\300\027\276\340\325\024\317\366{\r6\267*\342[R\273\272\020[\277#\255-\341\2448)_\333\246\365\025\335sBrd\340%\000\361\256v\\\224m\030\264\274\361\355fII&\373\345\320\017\376k\302\237{\355\224~)Zka\244T\047\237\272w\315\324\333|\301\324\263\375^\217\275\347k\301\361}gsM)M\3244\264\313\367\"\334Com\276\013|\177%\r\373/@\377\264\241\2472e?\263\361\010\337\230\317(\251\035\310\002\356C9\361If\363\350\047M\3264\274\0076\365\005_Q\177\200\371\361\250\223\326\3235\340\324;\226\2378\237|\007mH\255\256\017\253\250bq\262\257\222\356\324\251\017\263\244\373\276>\241\2157L\020\013\344)\316]\250)\302m\277Z\342Y{w|^\230]?i\021\244\r:Y\225\322\350O\273\334d\000\355\3528\333n\320\377\254\275;\327/\3166\240}\347\363\016l\006\360\254\275\366\212/\326\004\264}\007\371\017n\373\371\3540\266\217\366\274\354\336\227\305\037M\001\201\367\263\221\336\234\230J\372A\322\326\222\232P^CJ\227;\321&\036\355\344>i\353\341(\332+zv8\033v{]\033\357\353\030\tM\267\324\200\211\327\264UA3\017)\377h\317\316\275\013Om\335\321Y)R\311\356\362.\312\203\0341\331\201\345\036N\277\244\321b\247\3758y?\212\2743\236Z4\355\004\321\224E\033B\356nD[G\213W7\344\354\337>\005\266\036-\370\031\023\356\347&=\362\354\311\363F\224`YA\332\307\022\377\345c\272\244\342\246\225\"\r,\362\3268ZHK\3738y\325j\340\210B\206q\244\351&Sr2,&#\323<:ys\256\3721:\217\215)\371 :\203\306\260x\022\235\311\356\031tf\272s\350\344\272\027\320Y\350^l\243\321\361H\363\254\352\203c\252IC\007\324\202\230> /\005U)E\320@-/\366\225f\272\264e@\0035-\300\345\331\222\273]\207\324\360\366%\201\006\017\232\273\230\247\002\337\010\331\263\035l\t\235\2221""\207u\r\217\332\047\244\262\375\221Ca\271\322\206\211\325\340s\317/\265\036>w\022Zw\272\260]\032\226\220\374O\223\024\211^d*.\217\223\321f.m[\375\325\306\363M\207\315\366\375L[\001\227\235P;\337\351\354\330N\367wK\333|\272\372\204\030N\223\030Y\223\320\006!\335\344G\302\001\235\346\3731\324\306\231\355\260\031\377\275\357\351\303\2355\232z|iaY\277\323\342b\247\307\270h\237\334\275kF\215\262\304p:!A\346;$\233\005\232\333\207C\355{@\360\360\031\257\264\246\377,\273)Z$\3133)\362\344\031\211\013\324\322\311\300{\360p\014\246\016\211\361?\372\014\326v\326\341j}\304c\347\261\236Q\345f\344NgIh\345GS)5u\232QI\265C\034\247\263\355\322n\215\3444\032i\244\305\024\231\353\014\205\332\247,>|\306\357Y\321\252\017\006\377\356\374\256\367\t\344\376h\340n\367.\336\252 {ib9\3513\\QN\035\266\224\367*\223hLm\235Ls\206C\355\323\350\036>\347\325\313l\202\363W\032Z\003\242\036y\335\354\301\327\232\364\221= \336\275\031\353\211\363D\353\340\344\226m\340\006\374.\036\252\242M>y\314\221XN\232$\022gH\212\224\266id\205\023\361q\376\307\315W\360\310\241^|\003\361h=\260\335s\321\271\370\0034)ez\364\3628?\2649\360\2173\314\334\351\270\224|\366\352y\307\245\332b\221yH\234\037\366\231\304>\347eU-\326\350\006Ob\274\334\316\0164U\330\305\363\024\264z\222\313&i\035Kb\r=6$\315\316\310F\371F\250}o\266\036>\367\325\013\032\377@SXR\256\272\032k\245\021!\331\206\024~$\333P\243\047[\375\321\303\261\201}vh\006\260\377X\363\327\235\316\250\3202v\227gT\332c\367\372\354\320\214^\377\261&\257\244I\220\206\310\362n\372\300\243\233?\035\236\255\353\241\324\301\250\317\354\3709/K\243\314\243\204|j\377$\353K\263\r\222{\250\375\313+BI\342$\271\207\332?\311\372\362\230\020i\025\244\365\261\324\236\221\334C\355\237\016I\334\014\265\363\335\352\340:\330\337}\307\373PV\006_\374IM\236\246[\032\367w!\345\374\325\331>5\243\272\346\370\331A/\361\335\025K\344\335\235\377T\226\320\265\275\317\332p\355s{.}n\337ca\007\274\355\371Y\033\356xm\317\r\257/\377\3754\272\332\365\357\236\177\275r\234\016\0368G>\250-@q\216\036\253\276Z""\353\253}^\177\003\315\364\337\252~^{\r\372\331\3003\362N6\372\304wG\237\216\341\221\201#\315\353\033xT\241\372~m\242v\277q\334\371\004\025\364\332\376\276\372g}\002\337\004\333\356y\315y\355\203\232\314\227\010\303\203\023\047\361\314\303\033OW\253\257\325\322N\337\027\332`X\331\354\263\364x2\000\017\021\274\327\010\2436\350\310\323\353\325\267\000~\364D5R{\257\036\256\337\321\025\353\375\354T5\213\0075nT\0070\213\n\2600W\033\330>v\272\366\177\265lmU\235}p\336\376\024ZG7\314<\047\336Q\250\322\215\343\215\213\315\214R\271\237\370\260\336\267}\374d5U\353\256M\230\323\020g\352Y\347\334W\033\247\224\212\222N\"|\017\037\235k\236B\342\237\001u\220\335;x\206\003\362t\336:CH\373\360H\304\004\002\313\325\276\352\365\332\233H\312\211\352\0200\352\026\264\3035`\325\t\374\352\304\333\325\022D~\246H<\335\213\207I\240\202N\277W\273\346\374\367\013z\201\344\375>\305\212;\033\035\033\357a\360\223F\037\346\373y\265K\027u\225\010s\336\273\330\270\326p\017\212\000s^\375\327+o<\235\253\236\257\235\257\237E\263p\271\002\245\373\344j\363\014\014H\257\365\326\377]_k\204\005\332\026\330\006\374\230\006\232\047 \003\350\3170\216T\037\324RP\203\047\353\263\215\267\233\035\254\300\317z\336\253]\255\375\3348\331\270\257\337J\004~\275\337[\177\275\221k~\263\221Cm\311G0\216\244\032\335\215\237!\376C\205\371""\314y\010N6\225\27556\204\001\344\333\333U%\251\\s\316)\355\0266\315Pu\270\366j\275\257~\255\276\212g\210p\310\351\252~Q\273\240\370\257\216!=\206\336\205\215\362\304\311g\307\240\037\000\277\235>\334_\372\030:\332\333\247\267O\274\353\274\213\202;t\205\201Zx\373\364\373\265\210:`t\342]\215\344\231\035\316\240_\375\004\375g\255\036\207\225\325\321s\300\266q\030\250\024\007W\003#\337\331\354{v\024\217%]\323\243\001\366\246\317\236f\237\376\t\214\352R\024b\013\350S\371\035UG\246\220\345@\305k\307\252\035\325\017j\025\347#\034\372T\177^\205\341e\266~B\265\315\020L\021i\034#\337t\336D\r+\224\023\371s\014\233\303\361Z\037\266\233\013\210\007\206)~>\3149\n\355Q\037!\033\253\275R?\256\217|\205kw\032\035\352\250T\317kO\047\253}\330x\201\233\236t;\214\305\317zp\024\034\200\n\277\312Z\370\327\325\211j\001K\010|\305Z\371w\265\342\274w\035Z\3341\350\036\037\327\027`\304=qZU\335\3670\310\236\300CX\347\032\357\003\217\310\253K\205\365\005\334mt\230F\371}\375-\254\330\223\316\311\263X#\340B\307\306F\272\372\354\330)uL\256c\373\323\353\315Y\250\340\376\255\316\255\276\355\257\276\336\276r\255\031\321F|\330\021c\325>l\231Gq 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (36018 bytes) */ -static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notearoo\363nd\330\001\005\002upbe\377gidx nbe\377lementbu\377llpower \257bear\005\002c\211\221\003p\377ickle %s\365:\207\212\007h\211\216\003poin\206\220\234\002to\267\233\002\215\213\005\202 \211\214\002,\356\370\235\002doe\213\224\001t c\367ros\352\227\001proc\337ess b\231\241\001aroydis\216\206\001en\224\206\001\277fastk \002\001dogcha\204\213\002ha\322\236\001\377 halow h\375a\323\236\002inphas\377e quadra/ture\267\236\002 \222\237\003""\376\224\001\377wrong diR\334\000s\247\241\001\024\tl\241\205\002s\277\236\002?differ\273\222\001\305\240\002\310\323\237\003\244\212\001\230\226\005d\263bY\003mu\033st\272\237\001a \310\240\002h\004\304\240\002\370\301\240\003\343\232\002\264\240\002 Serioes, \340\226\001%s\317\237\t\335 \357\234\007mis\336\242\002re\363qu\330\215\002\212\242\001 key\302\240\243\001g\346\217\001\377\216\002\245\003\302\206\001, \3750\310\233\001100)is\376\256#dk d jm\357acd \001\001sig\347nal\006\002\301\230\001mam\371a\316 \004\000in ma\217xmin\367A\007\000\377@n\315o\367\227\005: \203\240\006\276$is\277 empty\262\242\002.\377_core.mu\347lti\365\241\004\377\230\003to \363im\333\216\001\033\tumat\367h f\023\014plus\277vi min\004\001s\347ine\243\231\002\005\001slo\367wk \002\001dsmi\331 \001\000\300\003su\213\241\001re7nd \327\210\001ds\227\240\001\211b\376\005\002lowtali\203b.\357\216\004\217\245\001\013\003\347\243\002\026\003o\013rd\335@d\212\244\001\047\003\353\243\003\005\004\334\340\243\002?\003sysH\003thgrea\274\232\001W\003wa\325\235\002\366\027\003/_\277\246\005.pxizy\002/\231 mmon\006\010@\235\246\001\025\010\263\226\003,\002\355\210\005\244\204\010s\300\231\r\365\047\250\207\002b\267\244\001midd\313le\006\002l\234\206\001\021\001AC\377ACCBANDSZ\000\005_\365\212\001am\000\014.\217\245\001>\345\240\001_fill#\006\267\210\0027ACO;\000OS1\006\002\006p&\rS\006^\004G\014DAD\000\000\355Dz\005DD\020\024OSC\303AD\002\000 \006\002\007B\rRA+DRG\006R`\024X\215\234\001\221\234\001\202q\006X\022\026\031\007\255\024\265\006\316\023L_LAOAO\335%O\363\023\257POAP\033\006P\016\024R\017OONA\001\001\213!\001\004\265E\200\001\013\256L5\001\035\t\3673!\002\332CS\207INA\001\000\222e\001\007\207lT\207ANA\001\000\272e\001\007\030\rR\353AT\215FT\3774VGD\207EVA\001\002\213\204\005\001\t\202\204\014V\177GPRICEA\001\004\270(\007\022\002\331sllC\207\233\002S\006\311\254\003sB\203\205\002\000\003\377\204\004\000\n\366\204\013\246\256\001ICROS\343\214\001\003\010\200\201\t\047\002\037\001\331\214\025@\003#\r\025\026I\007GHW\306 \272\001\004\004\360\010\004\013^\242/IKKA\323\214\002H\004\003\007MODD\002\022\002\n\000?\t\005\014\3705\025\"\016\317\026OMING\037PIGEO\367\"\004\010\262H\374\004\017\310\217\016IDENTI\017CAL3\332\217\005\003\014\341\217\007\003\023.@\017NNE\377\213\002I\004\0025\010\314\004\t$\020VE\373\252\001\202\204\006IN\360\005\t;\t\005\020\240\221\016KICK\014\306\207\003\003\004BY\322\207\001\376\216\002\003\014\303\221\007\360\003\023D\025\047\016""\356\221\025LADD\377ERBOTTOM\207CDL\003\t\277\222\007\003\020\365\222\016L\377ONGLEGGE\201D\351\211\004\003\013B\010\034\n\177\026K\001Ip\253@\221\000\004\0044\014INE\303\223\025\340\231\216\010\247\216\005\214\224\007\003\014\276\224\016MAT\367CHI\312\000OWCD\001L\003\0107\t\032\006i\027\242\220\005M\000\351\261\001X1\n\006\010n\017OR\235\213\014M\004\013\000\300\010\004\022:\025\355\215\004G\004\236\213\013\003\017\326\226\016\325O\264\205\005O\255\205\014O\237\205\032PI\007ERC\264\215\003\003\005\230\227\007\003\014\312\227\016\377RICKSHAW\203MA\302\212\001\003\010\333\227\007\003\0173\020S\377EFALL3MEoTHOD\247\230\001RI\005\013XD\t\005\022\345\230\016SE\274\272\001T\245a\016\304\227\001CDL\003\014\376\230\007\003\023@\017\047HOOL\001\225\221\004S\004\010A\010\034\004\0175\021RTL\267\205\003C\000\006\003\2706\n\006\n\311\017PIN\253\220\001T\203OP\323\001\004\007\310\010\004\016\217/T\377ALLEDPAT\200\240\271\001\234!\004\n\224(\004\021<\020\210aA\337NDWIC\250\231\001ST\360\005\010A\t\005\017\241\234\016TAKU\301R\207\224\001\003\003\250\234\007\003\n$\020SUoKIGA\222!TA\005\004\2701\t\005\013e\017HRU\264\000N\037GCDLT\004\005r\010\004\014\026\245\017RI\261\225\004T\004\003\256\010\004\n\376\222\236\016UNIQUE3\003RI\301\226\003\003\t\245\236\007\003\0207\017\253\223\002\027GAP\354\236\006U\004\013D\010\004\022:\255\237\016X\273\236\001GAP\222\206\010\003\rx\310\237\007\003\024\204\240\014EILC\001\000\370\262\240\005\001\007\254\240\014MFCMF\370\330\240\005\001\006\025\rOCMOUl\000\001!\006OU\276\240\023MO\031\007\016\340\240\023OPP\200\235\001\001\003\322\241\005\001\n~\317\241\014ORRELC\001\002\370&\006\017\001H\024SCOSH\214\000\001S\006SH\023\025\031\007\214\242\023U\037MSUMC\001\002\374\242\005\001\t>\370\242\014VICVI\244\243\005\001\006\370\235\243\014\377\244\t\371\300\001DEFAU?LTDEMA\000\001\220\253\004\374\000\010\205\253\013DISABL\237EDDIV\000\000&\005I\375V\325\252\022DONCHICAN\000\005U\005\020\004\027\032_\253\265\002\257DPOD\232\251\006D\214\251\024D\227XDX""\260\005Xs\023\241\323\005D\037otEFI\000\000\370\254\004\000\007\260\354\254\013\213 \216 \035\005MA\264\254\022E\317RERI\000\000D\005RI\252\020\024I\307\003E\233\254\005E\214\254\023E\323XP\000\000\222\005X\241\247\023Eq\377ualFLOOR\360\000\002\300\256\004\000\t\266\256\013FOSC\365F\273\255\007F\254\255\025FRAC\007TAL\000\004O\005\017\003\262\256\022\"\005\316\323\270\002Far\270\320\005\300\320\005._\215_\320\324\001__\001\r\202\330\005\035\th\177eck_opt\310\325\004\034\300\304\002>\010get\003\030\337\324\001Z\nL\216\326\003\247\302\002_s\316\265\002\233\315\002s\220\010z\302\313\001l\240\010repr\236\n;st\002\013uni\256\316\001\304\010\036\260\323\006flagR\007\250\001\211\327\t\000\207&\017\007\264\326\002\013\n\254\331\007\266&\336\322\001\303&\377lookback\004\324&\223\322\003_m\013\016\004Q\013\274\322\004\216F\027run\232Fs\325 \363\324\n\r\n\340\261\022/\001\364\327\010>\n\362\332\007HAH\342\254\205\005H\247\205\023\035\000\215\275\002HMA\365H\327\205\006H\323\205\024HT_D\177CPERIOD\000\010\360\274\264\004\000\017\270\264\0137\003HASE\240\000\007.\n\027\001\225\264\022t\000P5\000O\201R\000\006i\007\023\003\031\033\276\210\003\272\000S\047INE\000\004\253\007S\246\231\025\"\005\376\232#T_TREND\201L=\003\003\006\363\007\003\r\355\016;\002M\203OD\374\001\003\0061\014\033\001\356\023i\237ghLow\225\316\002\207\330\001I\003MI\000\000\267\267\004\000\007\253\267\013\311\316\t\315\316\004\017KAMA\000\001\361\267\004\000\010\346\267\013/KCKC\034\005C\253\267\022\035\000\316\307\301\002KDJ\000\000H\005DJ\360\027\023\025\000\365\301\002\346\257\001ARRE\rG\000\006_A\252\235\001\000\014\220\271\004\000\023x\220\271\013?\007\376\317\002CEPT\000\020\360@\016$\006\210\271\022\224\007SLOP\001E\000\014\215\016 \002)\035\376\322\002N\010\216\323\002\256\275\014NLN\363\005N\203\023O\017G10L\001\001\233%\001\010\212,\357ineM\354@CDM?ACDEXT\000\004\354\273\004\340\000\013\344\273\013\"\005\250\305\002:\001FIX\000\000\0043\010\022\000\305\273\022\"\0055\006g\010\030\026\200\343\217""\003\254\001\260\001\233\006\335\216\024\037\002\227\004R\177KETFIMA\002\003\030\325\006\002\n\317\rSS.\000\002\000\203&|\002\007\372\rVPMAV\264\267\005h\000\010\242-\236 X\232\316\002MA\002\003\000\337&\002\n&\016\035\007\2664\247F\010\025\271\325\001\367MA_\300\325\001.__g\377etitem__\034\t\007\224\216\003MED\261\272\002\000\005\200eh\020\004\265S\326 F\305\224\005MF\304\221\023\377MIDPOINT\020\000\005\331e\020\004\216sI\206\004\001\004)\010<\326\273\001\035\024NMIN\336#\001\004\370b\006\021\003\036\026AXMIN\000\221E\000\0106\007\247L\201\205\0143\007\241\204\004I\002\3701\na\030+\006US_DI\007MIN\003\002\262\007\003\th\0160\001\025M-\004M&\013M\2175\215\047\213\206\023\257OMMOC\006O0\024U?LTMULT\247\207\005\001\007>\220\304\013NATRN\330\277\007\000\010\376\031\014ONENVIN\372\223\231\006N\205\231\024NearOCBV\000\000\226\305\004\000\007\212\305\013O\231\307\003\177DictOut\273\325\002oPERC\246\255\001LE\000\007\360\334\305\004\000\016\327\305\0133\004RANK0\000\010.\013\031\001\267\305\022PL\325B\000\004\022i\005L\276W+\003M\000\004$\n\277S\343PP\255\235\001\303\005\216\304\024PVIuP\362\233\006P\344\233\024PVO\000\000:\215%V\376\304\023PVT\000\000\034\006\005T\255\307\022Q\364\243\002\000\003\301\310\004\000\n\270\310\013\257RMAR\271\232\006R\265\232\024R\013OC\000\000P\000\001\223\311\004\000\010A\014\234(\000+\001100\000\004(\007R\007100\340\310\022\\\001\034\010\014\025r\007\0360\023SIRS\333\236\005\000\007\341\014\327VIR\377\236\006R\361\236\024RV\003OL\000\001\345\005\014\000\242\023\256\347\001\241\341\001\357Real\236\304\002ARS\037AREXT\000\003\300\313\004\000\n\340\267\313\013+\000\033\007\374\312\022\372\301\001INHaS\001\000G\005\001\007>\014IN\031\007\2567\023MAS\247\236\006S\243\236\024S\023MI\000\000\264\005M\242\236\023\036\001\260\326\002\017SQRT\000\001\344\005\014\000\262\023?TDDEVS\001\002\220%\220\001\t\211,\342\332\001\346\332\002F\000\003*\006O\007CHFJ\024\026\002\217\003\236\333\004\245\333\005\2002\t\202u#\0068\007i\tZ\027\207\242\003S3UB\000""\000\352EUB\267S\242\244\t\373SU\224\213\023SUPER\000\322\230\002\000\007O\006\023\005H\024\026\006\226C\255\325\002?Shadow\302\311\001\004\003 \303\311\002\017\003\302\311\005\004\007\022\010s\377\320\003\205\321\003\336\255\240\001opy_\255\320\005__\337deepc\005\013re\377duce__T3\343T3\274\321\004\000\006\257\321\013TAN\017TANH\000\001!\005\014\000\375\320\022\210\303\315\007\264\315\025\341\354\001C\000\002\300\322\003\000\010_\337Clone\005\tOp\373en\000\rAndFi{ll,\tPeek<\t\037Updat<\n\256\334\002v\002sOS\000\004c\010OS_a\006\334\005\004Z\tOS_Y\006OS\035_S\010OS_P\007\264\010E\007\240T\002\247\tA\007=\t=\007D\202\357\001D\032\000\003D\210\047DD\232\006\004\004\375\010\333DD\230\006DD\225\010DD\006M\010OS\362\"\202\324\002\340&\220\324\002\336%\000\004\006O\t\262\324\001\330%\276\324\002\323\047\315\324\002\321&\253DR\265\002R\251\010R\252\007RV\371\rDR\252\007R\250\tR\201(UX\210\"XT\003XO\tXQ\010UXK\017XS\010XR\nXS\n\252\326(X\327\047X\234\016X\327\047X\002\325)X\256H\242H\242G\346\016\240G\235I\252\275gO\202\363\001O\201\205\007O\222\204\006O\252\274mO\216\204\006O\212\204\010O\211\204\007P\252H\002PC\010PE\007P?\016P\nG\007PF\tPH\010\300\326\001\244\364\001\300\326\004\000\000\010\264\206\007\323\326\005\266\206\005\004\t\263\206\010\372\326\005\266\206\005\000\212\327\005\264\206\007\234\327\005\265\206\006\204\327\002\235\207\006\222\327\002Y\t\310\335\205\r\263\327\002S\t_N\013\263\206\007SI\001N\372\365\001\260\327\001\374\207\006\275\327\001\371\207\005\004\005\362\207\010\200\334\327\001\361\207\005\350\327\001\353\207\007\366\327\001\350\207\006\270\211\002_\000\341\327\002\326\210\006\357\327\001\323\210\005\004\005\314\210\010\216\330\001\313\210\005\240\232\330\001\305\210\007\250\330\001P\007\354\205\002T\346\205\010T\252\347\205\007T\340\205\016T\347\205\007T\345\205\tT\000\346\205\010\276\330\002\203\370\001\300\330\003\207\212\006\317\330\003\206\212\005\004\007\000\201\212\010\362\330\003\202\212\005\200\331\003\376\211\007\220\331\003\375\211""\006\366\330\004\000d\003\353\330\003a\010\374\330\003d\007\006\007c\n\243\331\003\300h\007\263\331\003h\t\305\331\003\364\212\005\250\331\003TA\001_\252\331\004\346\213\005\271\331\004\345\213\004\003\010\340\213\007\334\331\004\340\341\213\004\352\331\004\335\213\006\315\331\t[\001ETA\000\000\004\311\214\006\347\331\002Z\005\351\331\001\326\214\001U\010\374\331\001`V\005\210\332\001R\007\226\332\001\271\006OP\273\001[OPN\007OP\263\214\005B\004\004\306\253\010OP\261\214\005\301\332\001\246\007OP~\256\214\006CCITA_\226\332\001\000\365\215\005\242\332\001\361\215\004\003\005\351\215\007\277\332\001\347\215\004\312\332\001\000\340\215\006\327\332\001\334\215\005\274\332\006U\001\257\332\006V\006\301\332\006\000]\005\004\n`\010\352\332\006i\005\373\332\006m\007\216\333\006\000r\010\200\333\010|\003\202\333\t|\010\231\333\t\202\007\006\r\000\204\n\314\333\t\214\007\342\333\t\217\t\372\333\t\224\t\337\333\003\000\225\004\341\333\004\214\t\364\333\004\211\010\007\010\202\013\237\334\004\000\201\010\261\334\004{\n\305\334\004\230)\245\334\007\235$\247\334\010\000\230)\276\334\010\231(\007\014\226+\361\334\010\231(\207\335\010\000\227*\237\335\010\270I\202\335\004\272D\204\335\005\262I\230\335\005\000\260H\007\t\252K\305\335\005\252H\330\335\005\245J\355\335\005\000\303i\313\335\t\312d\315\335\n\307i\346\335\n\312h\007\016\000\311k\235\336\n\316h\265\336\n\316j\317\336\n\361\204\t\254\336\n\000\371\204\004\256\336\013\367\204\t\310\336\013\373\204\010\007\017\373\204\013\201\337\013\000\201\205\010\232\337\013\202\205\n\265\337\013\244\207\010\222\337\n\260\207\003\224\337\013\000\262\207\010\255\337\013\272\207\007\006\017\276\207\n\344\337\013\310\207\007\374\337\013\000\315\207\t\226\340\013\242\t\366\337\010\246\004\370\337\t\240\t\220\340\t\000\240\010\007\r\234\013\305\340\t\236\010\334\340\t\233\n\365\340\t\000\371\211\010\327\340\005\200\212\003\331\340\006\375\211\010\355\340\006\200\212\007\006\n\000\377\211\n\232\341\006\204\212\007\255\341\006\204\212\t\302\341""\006\177\t\245\341\005\000\205\004\247\341\006\201\t\274\341\006\203\010\007\n\201\013\353\341\006\000\205\010\377\341\006\204\n\225\342\006\226\214\010\360\341\014\244\214\003\362\341\r\000\250\214\010\215\342\r\262\214\007\006\021\270\214\n\310\342\r\304\214\007\342\342\r\000\313\214\t\376\342\r\260\t\332\342\014\266\004\334\342\r\262\t\370\342\r\000\264\010\007\021\262\013\265\343\r\266\010\320\343\r\265\n\355\343\r\000\266\n\314\343\010\270\005\316\343\t\260\n\347\343\t\256\t\010\r\000\250\014\236\344\t\250\t\266\344\t\243\013\320\344\t\303\220\010\253\344\013\000\320\220\003\255\344\014\323\220\010\307\344\014\334\220\007\006\020\341\220\n\200\345\014\340\354\220\007\231\345\014\362\220\t\264\345\014\251\tOJI\010\244\004\233\345\004\000\013_\247\t\237\345\005\242\010\007\t\000\231\013\314\345\005\226\010\337\345\005\216\n\364\345\005\206\014i\rQ_g\013\242\241\014\333\346\004__\013_Y\r\001_\243I\237\346\t\247D\241\346\n\241I\272\346\n\241H\000\007\016\235K\361\346\n\237H\211\347\n\234J\243\347\n\240\225\010\000\204\347\006\250\225\003\206\347\007\246\225\010\233\347\007\252\225\007\006\013\252\225\n\000\312\347\007\260\225\007\336\347\007\261\225\t\364\347\007\206\t\321\347\013\221\004\000\323\347\014\222\t\356\347\014\231\010\007\020\234\013\251\350\014\245\010\000\303\350\014\251\n\337\350\014\252\017\206\361\001\253\n\307\350\002\242\017\000\336\350\002\237\016\r\006\230\021\221\351\002\227\016\247\351\002\221\020\000\277\351\002\216\231\010\223\351\r\235\231\003\225\351\016\242\231\010\261\351\016\255\231\007\000\006\022\264\231\n\356\351\016\301\231\007\211\352\016\311\231\t\246\352\016\267\t\000\204\352\n\272\004\206\352\013\263\t\240\352\013\262\010\007\017\255\013\000\331\352\013\256\010\362\352\013\252\n\215\353\013\206\234\010\361\352\003\213\234\003\000\363\352\004\206\234\010\205\353\004\207\234\007\006\010\204\234\n\256\353\004\207\234\007\000\277\353\004\205\234\t\322\353\004p\n\265\353\005y\005\267\353\006x\n\000\315\353\006}\t\010\n~\014\376\353""\006\205\t\223\354\006\207\013\000\252\354\006\211*\217\354\001\216%\352\353\006\000\016\240\213\t\244\354\t\000\245)\247\354\007\315\240\013\253\355\002\304\354\007\257)\332\354\007\262+\250\362\354\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\254\355\004\256d\256\355\005\000\253i\302\355\005\256h\007\t\255k\357\355\005\262h\202\356\005\000\262j\227\356\005\262\204\t\373\355\003\202\005\357\355\005\000\r\232J\000\241\356\006\225)\007\013\221\014\305\356\006\226\t\332\356\006\226\013@\361\356\006\224\017s\020q\017\222P\337\357\003_l\016\001_g\020\233J\226\357\010\332\206\004\230\357\t\333\206\t\260\357\t\000\342\206\010\007\r\345\206\013\345\357\t\356\206\010\374\357\t\362\206\n\225\360\t\000\210\245\010\360\357\014\226\245\003\362\357\r\232\245\010\215\360\r\244\245\007\006\021\000\252\245\n\310\360\r\266\245\007\342\360\r\275\245\t\376\360\r\260\t\344\360\002\000\254\004\346\360\003\236\t\370\360\003\226\010\007\007\212\013\241\361\003\000\204\010\262\361\003y\n\305\361\003p\n\243\361\t}\005\245\361\n\000\200\n\277\361\n\211\t\010\016\216\014\370\361\n\231\t\221\362\n\000\237\013\254\362\n\366\250\010\216\362\004\374\250\003\211\362\014\000\022\203\226\t\000\246\362\r\237\251\007\006\021\245\251\n\341\362\r\261\251\007\373\362\r\270\251\t\210\227\363\r\267\017\214\020_\206\016\251\226\017\225\364\004_\002v\016_l\020\270\226\t\275\363\t\301\253\003\277\363\n\302\253\010\000\327\363\n\311\253\007\006\016\314\253\n\214\364\n\325\253\007\243\364\n\331\253\t\000\274\364\n\335\254\010\231\364\013\242\004\204\364\013\237\t\236\364\013\242\010\000\007\017\241\013\327\364\013\246\010\360\364\013\246\n\213\365\013\245\r\007INE\244\010\372\364\001\231\r\216\365\001\224\014\000\013\005\213\017\273\365\001\210\014\316\365\001\200\016\343\365\001\235\257\010\000\323\365\005\244\257\003\325\365\006\241\257\010\351\365\006\244\257\007\006\n\243\257\n\000\226\366\006\250\257\007\251\366\006\250\257\t\276\366\006~\n\240\366\006\206\005\000\215\366\007\204\n\244\366\007\210""\t\010\013\210\014\327\366\007\216\t\000\355\366\007\217\013\205\367\007\222\013\365\366\001\223\006\201\367\002\212\013\000\224\367\002\207\n\t\006\200\r\277\367\002\177\n\321\367\002y\014\000\345\367\002\243I\277\367\013\257D\301\367\014\261I\334\367\014\271H\000\007\020\275K\227\370\014\307H\261\370\014\314J\315\370\014\252\017\000\220\233\007\256\370\t\242\017\213\233\014\333\370\t\317\224\016\370\370\t\227\016\250\211\233\016\246\371\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\317\371\005\254\266\003\321\371\006\251\266\010\345\371\006\254\266\007\006\n\000\253\266\n\222\372\006\260\266\007\245\372\006\260\266\t\272\372\006\260\267\010\232\372\010\000\272\267\003\234\372\t\272\267\010\263\372\t\300\267\007\006\r\302\267\n\346\372\t\000\312\267\007\374\372\t\315\267\t\224\373\t\223\n\361\372\013\235\005\363\372\014\000\235\n\217\373\014\243\t\010\020\245\014\314\373\014\255\t\347\373\014\000\260\013\204\374\014\223\272\010\336\373\014\241\272\003\340\373\r\245\272\010\373\373\r\000\257\272\007\006\021\265\272\n\266\374\r\301\272\007\320\374\r\310\272\t\354\374\r\000\260\t\314\374\010\262\004\316\374\t\252\t\346\374\t\250\010\007\r\000\242\013\233\375\t\242\010\262\375\t\235\n\313\375\t\231\013\257\375\003\000\233\006\261\375\004\223\013\306\375\004\221\n\t\010\213\r\365\375\004\000\213\n\211\376\004\206\014\237\376\004\351I\375\375\007\352D\377\375\010\000\341I\226\376\010\336H\007\014\327K\311\376\010\326H\337\376\010\000\320J\367\376\010\211\204\t\324\376\n\215\204\004\326\376\013\207\204\t\360\376\013\000\207\204\010\007\017\203\204\013\251\377\013\205\204\010\302\377\013\202\204\n\335\377\013\000\250\n\274\377\010\254\005\276\377\t\246\n\327\377\t\246\t\010\r\200\242\014\367\377\t\244\t\\\t\241\013v\t\213\302\010T\017AKUR\216\257\004\006\003\371\256\t\013\004\000\214\302\007\006\010\211\302\n4\004\214\302\007E\004\212\302\tX\004\376p\nSUKIGAP\006\220\303\003TA\010\004u\013\r\005z\t\010\t\200z""\014<\005\200\tP\005\201\013f\005\203)H\177RUSTING\213\004\000\007\005\210*\014\006\215(\007\n\215+;\006\223(\260O\006\224*e\006\225IRI\260\254\007T\000\007\003\226J\014\004\231H\007\010\227K7\004\233H\360I\004\232J]\004\260\306\010UNIQ\337UE3RI\362\235\001A_\007CDL\006\t\252\263\t\013\n\303\306\007\006\016\200\306\306\n@\n\317\306\007W\n\323\306\tp\n\233\tP\377SIDEGAP2_CROWS\345\307\003U\007\013\000\240\n\014\014\245\010\007\020\245\013G\014\253\010a\014\350\254\n}\014\223\311\010X\264\0043ME\017THOD\266\004\006\r\225\266\t\013\016\000\262\311\007\006\022\271\311\nH\016\306\311\007c\016\316\311\t\200\016\016\330\312\006EIL\261\313\001\004\000\274\267\007\t\001\000\257\313\005\004\005\255\313\010(\001\261\313\0054\001\260\313\007B\0016\262\313\006MF\212\314\001MF\224\270\007\t\000\000\206\314\005\004\004\203\314\010&\000\206\314\0051\000\204\314\007>\000\274I\007\316\325\001CMOUU\002O\001UP\010\n\000S\006\005\004Q\t)\000U\006@5\000T\010C\000U\010F\t\305\270\006M\237\326\r\204\200\000\275\270\006M\246\326\010\024\001\262\315\006\236\350\001C\001K\216\316\001\004\003\234\272\007\t\004\222\316\005\004\010\223\316\010\300.\004\232\316\005=\004\234\316\007N\004e\007RR\005E\306BO\005\001b\010\n\002c\006\005\006\000_\t-\002a\006;\002^\010K\002\315\007\234\206\0027OSH\325\002SH\314\010\n\000\000\313\006\005\004\305\t)\000\305\0065\000\300\010C\000PU\010F\t\311\273\006\273\336\016C\301\336\007C\276\336\t\005C\276\336\010C\362\342\002\221\321\001\372\342\003\217\321\006\211\343\003\000\223\321\005\004\007\223\321\010\254\343\003\231\321\005\272\343\003\232\321\007\312\343\003\332\236\321\006V\365\321\002VI\200\276\007VI\330\204\275\006\004\004\357\321\010VI\374\274\006VIv\366\274\010VI\373\337\006DEM\366\323\001\000\003\001\303\341\006\010\002\301\341\004\003\006\272\341\007\047\002\271\341\004\3603\002\263\341\006A\002\260\341\005DIVT\263A_\003\000N\007IV\255\341\005D\000\004\004K\010\032\000M\005%\000J\0072\000J\006\337ONCHI\327\343\001_D\000\004\004\253\007\t\005\261\005""\004\t\262\0100\005\271\005\240@\005\273\007R\005\300\006\217\335\002D\211\335\010D\252\212\335\007D\203\335\016D\212\335\007D\210\335\tD\232\211\335\010D\242\340\001DX\350\047\301\337\006D\252\271\337\rD\277\337\006D\274\337\010D\274\337\007E\001F\213\326\001\003\000\203\345\006\010\001\200\345\004\003\005\370\344\007\000%\001\366\344\0040\001\357\344\006=\001\353\344\005\216c\227`\226I\007MA\350\344\005E\004\004H\010M\261A\346\344\0050\001I\007MA\343\344\006E\242\347\342\001E\306\223\002\003\000\241\007R\267\204\006ED\004\004\240\010R\267\204\0060\001\241\007R\266\204\007UE\263\343\007E\263\343\006E\253\343\rE\261\343\0065E\256\343\010E\256\343\007EX\243\331\001\003\000J\273\047X\236\331\006E\004\004\272(X\236\331\006\3640\001\273\047X\235\331\007FLOO\000\334\344\001\003\002\237\350\006\010\003\236\350\004\003\007\230\350\007)\003 \230\350\0046\003\223\350\006E\003\221\350\005F\231\346\003\003\001\000U\007\370\345\001V\005\004\005R\010\220\346\0103\002Q\007|\261\346\001Q\006RACTA\255\216\001\001F\004\003\265\007\t\004\271\005\004\010\270\010.\004\340\275\005=\004\275\007N\004\300\006UNC\337_FLAG\344\351\001Fu\377ncTableA\177llocTA_\010\006wFre\346\352\001Get \001\337Handl\005\010In\337foTA_\033\000In\377putParam\357eter\016\007Loo\337kback \003Op\335t\021\025Out.\021roKup\215\nG\t\006\224\004H\301\336\001\213HA\214\354\006H\254\205\006\003\004\377\353\007H(\252\205\006-\000\364\353\006H\247\205\007H\223\212\002\003\000\024D\007\372\205\007H\363\205\016H\372\205\0070\001H\007\376\371\205\010HT_DCPE\007RIO\256\353\001\003\010\247\007\030\007\327\354\005\001H\004\014\270\010\"\010\310\355\004H\t\313\007J\010\034\315\355\005\205\003HAS\325\340\001\003\007z\014\000\034\001z\013\t\006w\r&\002y\n8\002v\014\004L\002y\010P\177\000\240\206\002\230 \006\003\377\t\000\013\004\313\357\004\031\007\373\341\0131\007\373\007E\004\367\t$X\004\366\010S\313\261\003\223@S\301\261\t\010\005\"m\007S\263\261\017-\005\356\047S\260\261\nM\005\004\345(\355\363\002Lk\006\006\006\361I\013""\007\353\007\000\006\013\362J:\007\366GN\007\365Id\007\202\r\007MOD\375D\216\365\002\013\001\201\016\020\002\000\203\014\013\006\200\017?\002\203\014S\002\201\016i\002\006\341\362\005IM\324\344\001\003\000\314\363\006\010\001\311\363\004\000\003\005\301\363\007%\001\277\363\0040\001\270\363\006=\001J\006\357NPUT\322\210\006Ini\277tializ\255\364\001K\001A\364\221\002\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007@\047\002\262\364\0043\002\254\364\006A\002\251\364\005K\250\365\001kKCL\007C\243\364\005KC\315\363\014\304#\000H\005C\233\364\0079\000C\006DJ?TA_KDJ\232\007\t\000\000\233\005\004\004\227\010&\000\231\0051\000\226\007>\000<\310\365\005\303\343\001ARRE\300\241\001\003\006\037_ANGL\341\350\001\003\014\327\366\006\000\010\r\340\366\004\003\021\344\366\007=\r\356\366\004T\r\363\366\006\370m\r\242\016|\020INTER\177CEPTTA_\305\007\004\r\006\026\031_\264\016-\007\337\352\013E\021\274\016\200j\007\276\020\207\007\303\017\273.e\025\257.S\007LOP\250K\r\002\243P\022\003\245N\020\r\007\242QG\003`\023_\243Pw\003\244OX\316P\205\204\006\301\362\001LN\336gN\215FQN\372\371\014#\000\271eNs\010N\307\372\006\037LOG10\203a\004\001\260\204\007\000\t\002\250\204\005\004\006\233\204\010*\002\224\204\0057\002\210\204\0078F\002\203\374\005\246\232\002MAC\355\372\001\003\001\003EX\362a\003\004\202\375\006\010\005\203\375\004\003\t\200\377\374\007-\005\201\375\004<\005\376\374\006M\005q\007C\007DFI\331\371\001|\001\007\000b\n\014\001\000d\010\007\005a\0131\001d\010@\001b\nQ\001Dc\t\304\n_\303\010\222\375\014\215!_\275\010\t_\270\n\345\375\006M\353\211\003\003\001\240(\316\230\0070\024\002\326\361\013\047\002\231&MAN\t\321\230\010?MARKET\202\232\002\003\005\000\202H\026\003\266\007\005\010\203I \004\207F0\004\330\206HB\004\203gSS\205\362\001MA\000\005\000\362H\n\001\362F\005\005\355I+\001\356F\3208\001\352HG\001\344gV\270\363\001MA\261V\263\363\007\010\002\320fVP\372.Vh\267\363\0063\002\305hV\270\363\007MA\303c\037XINDE\000\010\207\235\007\037\000\004\027\002\355GX\006\007""\272\204\t\020\004\276\204\006 \004\000\275\204\0102\004\272\205\007Y\nV\010\306n\271\376\006\255\000\004\311i\270\376\007M\342\226\007\275i\220\204\016\225\204\007\221\204\t\366\221\204\007ED\315\370\002TA_M\000\004\004\304\206\007\t\005\307\206\005\004\t\305\206\0100\005\311\206\005\240@\005\310\206\007R\005\305\207\006\254\204\003F\304\243\007M\021F\305\243\006\003\005\247\207\010F\305\243\006$\001\240\207\007\375F\304\243\007MIDPOI\001N\221\210\002\004\004\215\210\007\t\005\220\210\005\004\t\216\210\010@0\005\222\210\005@\005\221\210\007R\005\216\211\006I\265\047|\004\004i\nRICE_k\010\000\007\006h\013\"\002k\0102\002i\nD\002l\007\216\374\376\001MIN\274\204\006\004\004\347\010N\006\267\204\013IN\260\204\0220\005\351\0060\004\347\010\030B\004q\010\275\205\004IN\243\205\005\271a\004\007\000y\t\274\205\016\034\010\342\210\0146\010\204\007\204\206\006\205\t\240\231\206\006\206\013i\014\355\047\244\001_Z\021_\362\\\n_U\014\265\212\007INUS\003_D\355\210\002\004\004\335)\027\002c\010\006\007\000\317i=\003g\0101\003\335)C\003\332Hr\001QM\327#\006\002f\rMg\014M\324\017\0202\003\325GB\003f\rM\340\t\271i\272(\320\260/\264(\257*\356\214\007O\271\002OM\n\227\217\007O\252\007O\236\016&\000\215\217\0051\000\032\207\217\007O\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\201\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004""\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\201M`\014\361\206\006\027\005\271\344\013-\005b\nMP\376\357\007M\005\340&\343\257\002P\335\257\010P\336\257\007UP\327\257\016P\336\257\007P\334\257\tP\335\257\010UP\254\263\002P\246\263\010P\247\263\007P\240\263\016\325P\247\263\007P\245\263\tP\246\263\010PVX\231\271\001\003\000\373gVO\356FV\263\270\rD%\001\350eV\270\270\010=\001\331fV\271\235\001WPVTH\010TI\007T\321\362\014\204%\001J\006T\305(>\000\254\204\006\373\252\001H_older\300\253\005P\t\007\036\303\253\004QSTI\265\271\002\003\003\326\364\006\000\010\004\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006TI\004\371\376\005R\336\265\002R\242\223\010R\305\261\007UR\276\261\016R\305\261\007R\350\227\tR\304\261\010\003RO\341\242\001\003\000\230\305\001\003\001\223\366\006\010\002\000\262\377\004\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\346\252\006OC\255\262\001d\000R10\020\320\234\001\003\004[\t\026\001_`\007\006\006`\n\000 \002f\007/\002g\t@\002j\tU\nS\tT\327\366\014\227\001_N\010_I\n_\276\010\200\217)\245\010>\017D\010A\nC\007\354\231\002R\261S\366\271\007\010\001\345%SI\223\rS\250\367\271\0060\001\340\047S\366\271\007R\316\272\002R\252\310\272\010R\311\272\007R\302\272\016R\311\272\007R:\307\272\tR\310\272\010RVO\350\301\001\003\001\000\214g\021\000\243F\004\005\213h\033\001\216e\047\001\370\214g5\001\300\204\006estor\373eC\366\261\002Defau\377ltSettin\177gsTA_SA\341\266\001\000\003\000\222\240\003\003\003\254\373\006\010\004\301\377\004\003\010\261\377\007\000+\004\247\377\0049\004\230\377\006I\004\214\377\005k\000P\t!_O\007\201\373\014%\001I\007_D\t\373\372\006;SI\204\243\001SIN\353\277\001\003\001\000\255\007\021\000S\006\004\005\250\010\033\001\251\005\047\001\030\245\0075\001\244\006INF\tF\010\235\r\250&\000E\007\242\010I\336\243\007S\256\276\002S\252\362\233\010S\225\272\007S\216\272\016S\225\272\007S\212\270\240\tS\224\272\010S\367\254\002\003\000\245GMF\321\277\006SM\312""\204\r%\001\236EM\317\277\010,=\001\227FQR\220\251\001S\004\000\372G\000\t\001\372E\004\005\365H(\001\366E4\001\362G\274B\001\361FTDDE\331\277\001S\000\004\002\330g\t\003\332e\004\007\327h,\003\332e\260:\003\330gJ\003^\007OC\213bT\204\005\000\342\307\001S\004\002e\010\024\001\360fT\000\005\006d\t\036\002g\006,\002e\010<\002c\n\201R\320\242\002e\002\335\207\t\010\006\325\006\231\000R\000\342\207\016/\006f\t\360\207\nQ\006\331\n\306\013\306\n\224\276\205\r\211!_\305\t_\302\013\312\205\007U\rB\221\207\001UB\371\206\007\t\000\370\206\005\004\004\200\362\206\010&\000\362\206\0051\000\355\206\007>\000\353\206\006U\006\206\232\001SU\302\230\007\010\001J\006\353\231\r%\001pJ\006\357\221\010=\001I\007PER\227\265\002\000\250\002\005\005\251\010\n\006\262\006\005\n\266\t5\006`\300\006G\006\305\010[\006\302\210\006et\316\211\003\374\301\211\t\021\000ompati\277bility\334\211\001e\375t\251\274\nIntege\275r\007\020Real+\003U\367nst\312\275\001Peri\373od\241\212\001hutdo\177wnTA_T3\000\002\006\242\372\006T3\222\371\005\003\004\217\377\007\030\000\201\377\004\020\"\000\356\376\006.\000\336\376\005T\221\306\002\003\000\254\312\001\034\003\001L\007ANHO\006\004\005O\010\000\033\001T\005\047\001T\0075\001U\010F\tF\010\224\256\372\014\206\000_E\007_B\t\242\372\006TZ\357\310\003T\326\304\tTE\331\304\007T\322\304\017\340\047\002\373\005\331\304\nA\002\376\006RAN\205G\243\355\001T\004\002\321\047\t\003\250\377\004T\000\004\007\330(,\003\337%:\003\341\047J\003^\007\035I\263\312\002TRI\371\247\010\010\003\\\006\021I\231\306\016)\003Z\006I\307\254\tE\003V\010\016\240\310\001TRI\234\310\007\010\002T\007\232\310\r\240\047\002R\007\243\310\010A\002\241fS\255\322\001T\001S\247\322\007\010\001\222%\024\000\377\376\013%\001\363e\2401\000\362g>\000I\007\237\334\001T\215\222\010T\025S\217\315\006T\207\222\016T\216\222\0070\001H\010\016\216\315\007TYP\213\252\005\003\005\236\205\007\025\004\000\245\205\006\004\t\251\205\010\037\005\262\205\005/\005\266\205\007A\005\016\261\376\005ULT\317\306\003\003""\003\225\376\006\010\004\000\256\377\004\003\010\246\377\007+\004\244\377\0049\004\235\377\006I\004\002\231\377\005V\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\200\342\376\007%\001\375\377\0040\001\363\377\006=\001J\006H\006\204\326\001VH\376\325\007\010\001K\005\024\000\366\354\013\300%\001K\0051\000I\007>\000\235\006OR\005T\232\257\002V\004\002\242\007\t\003\247\005\004\007\200\247\010,\003\255\005:\003\256\007J\003\205&W\002\336\337\002V\004\000\206\047\t\001\211%\004\005\207(\200(\001\213%4\001\212\047B\001P\007\331\321\002V\001W\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\t\014A\002\227\377\005WA\300\306\001\003\000\375\372\006\010\001\000\353\376\004\003\005\331\376\007%\001\315\376\0040\001\365\377\006=\001\026J\006CL\376\257\005W\004\004S\007\t\005\000Z\005\004\t\\\0100\005d\005@\005g\007R\005.\300\006ILL\230\317\001W\004\001\303\007\000\t\002\307\005\004\006\306\010*\002\313\0057\002\313\007PF\002\241&\334\324\002\366)W\303\320\007W\274\320\016\325W\303\320\007W\346\266\tW\302\320\010ZL\000\260\325\003\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\200\240\377\0046\003\222\377\006E\003\211\377\003\217\326\001\371\321\001S\277treamT\001\007.\377open_and\037_fill\335\213\003\342\213\004%\004\000\360\213\0033\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024\331X\364\212\002 \006X_>\022SF,\303\212\001\240\004SF\016\024I\225\212\001\035\005\001I4\023\346\211\005\322\211\005\364\004\001\013\361\013\246\211\003p\242\211\004\245#\000\n\237+VAR\353\210\001\230\315#\000\007\026\014HF\275\210\001\036\004H@\273\023\207\210\003\214\210\004I\004\232\210\003\3431V\340\207\010\340\335\207\001\340\207\002\177\004\354\207\001\037\022WMA\354\256\207\002 \005MA\3532WAD\000\375\206\001\241c\000\007\230k\303\206\005\312\206\006(\004\332\206\005\300\230q\207\206\002\213\206\003V\004\230\206\002\026\022MA\005W\226\006W\222\024\253\205\002\247\205\003\316\204\003\000\t\374\307\204\013\352\322\002tion__\377call_fun\365c\n""\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str__\377ARRAY_TY?PES__I\372\312\002\016\002\371S\006\013\352\272\002_SERI\376%\000DEFAULT\376.\000PANDAS_\377DATAFRAM\347E__\013\004#\004_PO\307LAR\023\013\014\003\030\006yx\377_PyDict_\377NextRef_\375_\301\325\001UNCTIOgN_NS\000\227\000__\331!\375_\004\000nnotat\311e\010\000\353#_\351-\3314_c\337lass_\352 it\273em:\002opyC\001d\217eepc\004\005\205\001d\000d\303oc^\001\312Af\001\237Afl\237ags__\232QJ\ti\247nit\231\001\237V_\251C_\367mai\262`__me\363ta\226\003\334\000modu\375l\330\002mro_enat\354B\365\000\273B\004\001ew\367\001\277prepar\201\"p\362\277 v\257\231\002\220!qual>$\005reduc\245\"+\000\232\351@_\276`t_B\005\372B_=_\243`vers\275\204\002\013\000\373es\271\002unico)d\342!\232\204\001d\265\245\003s\306\212\002\230 \377s_is_cor\277outine\316\000o\347kupF\001\345\204\003succce\351 \376`\274\"unR\000\327id_\001\014s\003\013re\023ti\257\000\215\001g\255\331\003\237\331\001\004\010\000\341\331\002\030\004\301\330\007)\004\263\331\017B\004\243\331\022\024\005\240\247\331\017x\004\333\000\301\234\010\r\005u\226\234\004_Ip\231\234\002\270!i\233\321\006\306!r\353\247\003\013_c\350\332\002_\261$\363!\357\247\002\351!\227set\027\005s\204\250\004\016\006o\350e\014(\001a\020s\214\235\004a_c\377losea_hiwgha\325`wa_\356\215\001\375a\231\004sa_rea\365l\000\0030\007\0031a_v\277olumea\241@l\307era\270\210\001\000\t\274\204\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016B\003\377ppendarg\376\000\000sarrays\377asciiast\377ypeasync\367io.\331fsatr\356\355#avg\366#bbe\377gidxbitb\377ytes2str\376\357#stickcl\376\224\204\001in_trac\331e\301\335\001\247 ne\252\"co\327lle\237\212\002s\010\000um\237n_sta0\000\222!n>\020\000pydde\371\204\001\266E\374\253\212\002\373\204\005descri\375p\356\212\001displa\271y\212\212\002\221\205\001doc\325 n}t\316\"empty\341\000\374\241\000\347\000swithe\371n\364 \356 efact\367orf\352\000d_ma""\260\356\001\006\003\320c\024\001k_\002\007l\217imit)\001!\007\"\004iwrst-\004lag\233\210\002\366\237\210\003lo\214\206\002dictx\275\210\002\342!\306\210\002info\317\210\002<\234!\330\210\002obje \003\300\214\002\020?\003\274\214\005\345\213\001\311\214\005s\243\214\001\273\214\003\253Ch\006\007\213\214\002\302\214\001p\275\340\005sg\371\337\001\366\000\002sh\364\340\002help\366\243\204\001hi\217\256\001ylen\335h\351\264\002iid\304@im\375p\333`_error\177inindex\247\001Pc\t\266\215\003\367\214\001\000\007s\205\215\025i\344\243\003\347is_\203B\356\212\001ske\335y\000\000skw\360ale\277ftbars\205\000g\353th\274\215\002l\350\341\004low\366\000\000er\224Cmaxi\277mummax\356\206\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\273\212\003\377msgmulti?pliern\254\216\001\260\216\001\357dtup\366\000ann\257bdev\000\002d\006\003u\257pno_\361\000s\227\260\001_\010\332)\261`\261\217\003s\006\001\274\217\006\010\003\363\342\002\366\025\001py\302Coffs\277etonre\320\212\001e \373\225\001\377\225\001\365\245\001\226\210\002\203\226\to\315\343\001\215\220\006\372\220\220\014s`\007order\373ed\311aoutou?taroon\217\246\001\004\005\377upoutbea\037rpowe\221\213\001\226\206\003\021\001\367ull\r\005doutofama\002\002st\t\003\377stkoutha\000\304\210\002\005\002\310\210\001\016\002\205@\026\002\300\002\345\213\001\037phase\356\213\002\302\247\002\000\007\375_\350\220\001outjou\036J\002lead\230`(\001\305B\373ba\254\000utmac\360\200\001\003\001\201\204\002\014\003sign\347alo\033\001\227\002max\256\010\002xid\000\006xZ\005m\337iddleH\005in\3063\001in#\004\004\002 \007nu\377svioutnb\277elemen\267!p\365l\016\004p\305\"put_\"\322\217\002o\275\346\002\324\222\002\000\010s\021\003\000\004\365s\265\223\001i\302!quad\237ratur\212!\336\212\001o\205u\366\231\001l\341\t\365\212\001\241\n\206\213\001u\317pper\207$\232$slcow\226A\004\001\207Asm\260\001\374\003\000\217&supert\373re\277\"swing\340\234D\007\002\240C\027\005X\006pan\007das\213\207\002\220\207\002\257\224\002\225\207\007\244\207\002\277spenet\374""\213\003p\377ercentil\371e\325\215\003\333\215\003spola\245r\003\000p\373\224\002\200\225\0020\206\225\0021H\205\225\t\214\225\016\335\225\003s\260\225\002\003\000o\275\001?yrange\333\213\001\220\215\001\372\224\215\0010\231\215\0011repl\377aceresul\307tsr\216\000\305\254\001\357\204\001t_\336\377\220\001righ\246\207\002ro\223c1\362\216\003\007\0002\001\006\014\004u\377nsschema\277second\271\004e\003lf\256\226\003\362\216\001\222\227\006\361\214\001\203\217\001\302\211\tp\006\007\331\226\002\242\217\001\304\211\007set\373\221\005\300\270\270\003\242\215\001\263\204\003\272\213\003\277\204\003\256$ki\007p_f\230\213\001\327B\333\213\004\006\003\320$\017lowk\r\010\346\213\005\210a\351\213\002\234\221aR\004low\205D\241\215\001l\377evelstar\365t\300\230\002s\350\214\001cmet\377hodstdde\255v$\005r2\222\216\002s\215\237\002s\375y\316\256\003talib.\374\356\223\001\005\000thread\377ingtimeS\217tamp\005\001\323\221\003\000\0071\372\013\0072\026\0073to_nOumpy\252\217\001\256\217\001_\334\223\004\277update\000\003_ \351\214\001\355\204\002\354\231\002\253\003\344\224\004v\375\215\003\204\221\003\317warn\000\001\222\273\001wm\375a\326\222\003\200\001\330\004\007\200\377u\210C\210q\330\010\020\377\220\005\220Q\330\014\r\330\377\020\026\320\026+\2501\250\377A\330\014 \240\013\2501\367\330\010\017\035\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\377\021\200\001\340\004\017\320\017\377#\2401\330\004\013\2101\376\013\001\022\220,\230a\330\004\177\025\220Q\220o\240Q\014\003\367.\240\001\r\002\320\026\047\240\375q \002\320\022&\240a\240mq\017\004-\250#\003\320\022\035\000\377\250\r\260[\300\013\3101\356+\004.\250a+\0042\260!\355\260\016\0059\270x\001#$\360\377&\000\005\014\210;\220a\375\220\231\000\r\210T\220\026\220\373q\230\336@\r\210]\230!\377\2308\240:\250T\260\021\377\330\004\r""\210U\220\047\230\377\022\2307\240\"\240A\330\377\004\017\210w\220e\230?\373\250\"\354@\004\016\320\016\037_\230q\240\010\250\225`\021=\000\377r\230\024\230Y\240k\260\377\024\260V\2701\270I\300\377]\320RS\320S_\320\377_`\320`o\320oz\177\360\000\000{\001B\002\004\000wB\002H\003\001H\002I\n\001\357I\002J\002\362\003i\230q~\207%#;\2701\360(f;\363M\270\277\000\203\200 [\320[\\\377\320\\h\320hi\320i\335x\243\000y\001D\242\001D\002\335K\251\001K\002Q\260\001Q\002\235R\267\001R\002S/{\247\000]{\320]\247\000j\320jy\320 wz\001E\317!E\002L\326!\271L\234\007\354 S\002T\310/$\375%\301\2028\320\033+\2502\250\373Q\330\356L\027\230\002\230$\377\230i\240{\260$\260f\377\270A\270Y\300m\320S\367T\320T\367@a\320apw\320p{\372@|\001C\371AIC\354G\217`J\342 \357\204\003j\350\204\001\236\206\205\003$<\270A\302\2028\237\003]\343\270!\202\200\"\310\20236ub\320b\277c\320co\320o\322 \177O\360\000\000@\235\204\005\227\204\004X\334\205\001\367X\002Y\343\205\001Y\002Z\002v\3110\320<\227@U\360*\310\2066\356\330%-\300q\344\202\"`\320`\376\252\204\003v\320vw\360\000\000\227x\001G\202\207\001G\312\205\005\246\004_\356\227\207\001_\002`\236\207\001`\002a\356\250\020=\270Q\326\202>^\2701\356\234\204\037n\320T\343 d\320d\377p\320pq\360\000\000r\253\001A\264\210\001A\335\205\005S\302\210\001S~\334\047\360\000\000Z\002[\333/\373%&\257\205:,\250B\250a\376\334\205\r\030\230\022\2304\230y\377\250\013\2604\260v\270Q\377\270i\300}\320TU\320\357Ua\320a\232`q\320q\337|\360\000\000}\273\210\005J\002~\336\205\004\360\000\000K\002L\342\211\004\367k\240\021\360\213\005%=\320=\316;\000V\3602\325\2028\245\001m\270\367=\310\001\213\207\013\024\320\024%\357\240Q\240h\301\001\022\320\022\337#\2401\240H\266\213\001\021\220\370\260\022\245\207\003\277\000}\320}~\360_\000\000\177\001N\252\213\001N\306\204\005\272\223df\277\213\001f\002g\306\213\001g\273\002r\315\213\001r\002}\324\213\001}\267\002J\003\320\207\001\003P\003\001P\273\003Q\n\001Q\003\\\021\001\\\273\003g\030\001g\003r\037\001r\273\003x&\001x\003y-\001y\347\003z""\003\364\215\003\222$:\320\025\375%\377\215\002%>\270a\360,\242\333\200\353\320>;\000W\254\210\001\016\210[\367\230\001\230\222\220\002V\2206\230\047\021\230!\236\220\001\251\220\005V\341\220\001\235\220\021\372\213\210\"&\243\007b\320bk\320\235k\371 x\320x\335\215\003\241\220\004T\256\271\220\001T\002[\300\220\001[\355%bn\316\220\001b\002c\331\211\017\047(\255\215:\357.\250b\260\302\205\014\021\220\032\377\2302\230T\240\031\250+\377\260T\270\026\270q\300\t\177\310\035\320VW\320W\251\210\003Ws\320s\263\205\003F\343\221\001F\214\217\005]M\361\221\001M\002N\340\221\004m\354\223\007\010\235\003\237\2016\202\210\0346j6\226\210\010\303 \357\2139\376\277$\r\320\r\036\230a\230Ax\267\225\001\000\t\251\201&\337\221\004\242\204\013W\312\224\001\353W\002\374Dh\330\224\001h\002n\356\337\224\001n\002o\346\224\001o\002p\376\347+9\220A\200\001\340\047g?\270q\244\220:\230a\r\270\367\221\016~\211r^\320^_\320_\314\204\003\200\202\222\003\370\215\004\327\211\004\317\204\004\311\207\006\376\227\003\231i?\377\320?V\320Vm\320m\347n\3604\373\2168\257\003Z\300z\377\320QR\330\004\027\320\027\337(\250\001\250\030\343\227\001\030\320\377\030)\250\021\250(\260!\374\n\013\331\204\024`\320`j\320j\377s\320st\360\000\000u(\224\216\005\324\227\004\247\226\004\\\345\227\001\\\213\211\005\237\213\004\272\223\211\004~\201\230\001~\002I\251\213\001I\273\003Z\260\213\001Z\003`\267\213\001`\273\003a\276\213\001a\003l\305\213\001l\373\003w\314\213\001w\003G\004\360\337\000\000G\004M\003\001M\004\275N\n\001N\004O\004\236)""\320\377\013\036\320\0362\260!\200\357\001\340()\245\225:/\250r\375\260\250\230\016\033\230B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310-\320WX\377\320Xd\320de\320e\307t\320t\207\223\003\322\221\004\350\206\006\360\000/\000N\002O\330\231\004n\277\232\001\350\233\003\302\240\000.\305\2228\220\020\322\216\027\251\017/\320\377YZ\320Zf\320fg\177\320gv\360\000\000w\217\233\005\024\211\233\004\335\214\004P\250\233\001P\347\211\005\360\216\004\310\214\022UE\363\216\001E\357\216\005[\201\217\001[\302E\035b\217\217\001b\003c\333\216\004\376\004\331\216\006\037(?\320?W\310 \323\224:\257A\317\034\270]\310\341\227\016\245O,\320oVc\320c\324\223\001\320q\274\220)\375h\262P@\320@S\320Sgk\320k\250\221\003\354\226\006\3608\235\202<\177\035\270m\310=\320X\324c\371u\255\222%\217\204\022d\320dq\320uq\302\222\n]\200\237\001]\002^\207\237\001w^\002j\216\237\001j\002k\225\237\001\351k\246\220\005\312DL\313\222\001L\003R\356\322\222\001R\003S\331\222\001S\003^\356\340\222\001^\003i\347\222\001i\003v\356\356\222\001v\003|\365\222\001|\003}\356\374\222\001}\003H\254\206\001H\004S\356\263\206\001S\004^\272\206\001^\004d\356\301\206\001d\004e\310\206\001e\004f\354\267\206\004\200m)*\342\234:0\260\002\375\260\347\233\016\034\230R\230t\240\3779\250K\260t\2706\300\367\021\300)\331!Y\320Ye\377\320ef\320fu\360\000\003\000v\331\227\005\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005\316aC\021\220\036\270\242\007\207\034\320u\374\263\222\003\200\037\026\220f\230J\240\377a\330\004\010\210\007\320\017w\037\230q\361\244\001q\230\006\333\244\001\376\347\244\003)A\320A[\320[?u\320uv\3600\315\2338\352!\377-\270\177\310o\320]^\375\330\315\245\001 \240\001\240\030\250=\021\000\t\330\004\021\220\3542\364\207\006P\246\221\004\216\234\004\325\232\004\345\222\004c\254\244\001c\314\216\005]v\272\244\001v\002|\301\244\001|\354\227\005\345H\360\227\001H\226\204\005\340\207\032o\240Q\266\354\246\001;\220\227\246\001*+\314\241:1\367\260\022\260\272\234\016\035\230b\240\377\004\240I\250[\270\004""\270\177F\300!\3009\310M\277\211*\235Q\204\246\003\320\026&\274A\224\250\003+\373C\300\317\2459\320\0332\260\"\367\260M\300\373\245\016\036\230r\240\377\024\240Y\250k\270\024\270\377V\3001\300I\310]\320\377Zg\320gh\320ht\203\320t\220\205\003\325\244\004\203\213\004\350\221\004\262\207\013_\331\002\231\251\007\305\251\005,-\247\244:3\260\3732\260\323\244\016\037\240\002\240$\377\240i\250{\270$\270f\277\300A\300Y\310m\204\2471\320\203\026(\255\251\001\357\252\003\245\000\313\2419\241\004\0203\220\016\323\224\005\000\010\021\220\216\200!\321\240\004\350\240\237\004\353\215\004\265\221\013d\257\252\001d\002m\352\266\252\001m\325\233\005t\304\252\001t\002u|\250e\320\002\025\220V\2309\244\253\001\376\357\206\007\026\220a\220v\230Q\274\324\254\001\002\027\013\210<\220\333\254\0010\3351\336\247:7\260r\341\252\016\320\021\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\247\031\320R\216\254\003\265\235%W\214\205\005,\354\362\254\001\250\256\00345\210\251:;\2702\376\254\226\016\320\021(\250\002\250$\377\250i\260{\300$\300f\317\310A\310Y\246\217\002\320\2433\320\026\3410\271\233\001\326\257\003\333\242\003\302\255\t\n\210+/\220Q\220a\267\235\0056\214\243\001\357\256\t\177\030\270\032\3003\300a\346\256\030\376\270\255\"[\320PS\320SY\200\352\222\002\360\220\003\322\242\006\353\236\013\314\235\004\324\242\004\317y\220`\232\257\010\265\244\001\221\230\002\300\250\t\227\200A\035\300\346\245\016\303\026\220\320\260\r\312\020\325\240\002\357\225\013Z\002^\226\247\004\360\000\000[\345\220\005u\202\261\001uu\300\213\005B\261\244\001B\003C\270\244\001oC\003D\003\374\260\016>?\242\262\n\374\200\202:\231\256&k\320QT\320T\277Z\320Z[\320[\277\222\003r\037\320r~\320~\360\253\003\200\244\004\327\004\010\371\243\004\214\246\004\201\235\004i\353\253\017\304\242\003\300\203F\276\256(\250\274\017\310\203?\247\260\010>\340\204\001\360\212\200L_s\270A\307\261\037\230Ls\320s\214\200J;@A\235\267\n\014\210K\234\267\t\243\207\022\3515\203\253\001\356\245\027Q\257\200\"V\320VN\344\264\003f\320f\304""\236\"\242\222\004i\334\267\001ai\313\227\007\313\263\016\316\000\345\206F\320\033\373\250\004\377\023\320\023$\240A\240X\376\226\265\001\021\320\021\"\240!\240\3478\2501\366\223\001\374\250\017\013\320S\320\254\200.\305\243\022\322\252\004\365\234\004O\366\254\001O\003\335U\375\254\001U\003V\204\255\001V\003\331W\320\254\004\311\251\004?\230\233\240\001@X\047\320XY\340\203I\203\253\001}\232\204\017\331\037\017\360\000\000t\257\242\014\353\230\013\234\233\004\316D\255p\270\273\001p\002\376\225\004w\306\273\001wC\002x\241\253\017\327\227\001\350\273\003\314\263\004\177\361\273\001\323\177\002\203\237\004\306\242\004h\320\242\001h\004\343i\004\307\244\n\235\211<\223\246\002\320=O\037\320Of\320f\231\272\003\277\240\004\226\247\004\370\262\227\006\263\271\r\307\252\017\033\320TW\320\377W]\320]^\320^g\243\320g\346\244\003\263\265\004\265\235\004q\312\275\001q\273\002G\362\260\001G\003_\371\260\001_\273\003s\200\261\001s\003J\260\244\001J\273\004K\267\244\001K\004W\276\244\001W\273\004X\305\244\001X\004g\314\244\001g\273\004r\323\244\001r\004y\332\244\001y{\004\177\341\244\001\177\004@\005\323\267\0017\005A\005\367\246\016BC\273\213I\300\244$\277+\320UX\320X\276\250\003h\003\320h\256\233\002\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004%e\341\277\001e\313\237\005\217\261\004m\364\244\017\313\003\261\r\312\210\007\326\257\006\201\301\0017\240\322\257\nU?\260(\270*\300F\340\242\001\250\2102\035%\247\266\004{\320R\203\200K\256\275\010\237@\330\246\301\013\304\n\321\222\0226\310\320\302\024\320\033\200\330\267$\200\200N\223\270\010\313\003\231F\360\213\014\215RE:\230\20065\251\264\004\013\320S\245\203K\305\t\320\370\211\002\306\267\t\217\222<\252\253\001\033\245\217\001\023\220\377>\240\021\240(\250!\330o\004\022\220.\200\241\005\021\220\250\253\017\016\304\205\014s\320s\304\277\003\335\274\004\257\253\013\246\246\004P\314\205\004\352\207\004\363\211\006\312\276\001\002\262\224\004K\370\271\001\351K\363\213\005\356\271\004]\215\272\001]\003^\314\360\251\013\203""\214\003CD\213\224I\323\245$;\320\357VY\320Y\220\310\003i\320i\200\212\300\006\354\306\004\306\305\004\343\266\004\214\300\004\353\273\004\300\207\006\360?\000\000m\002n\002\204\246\016\302\014\034\356\220<\331\266$\033\320T\203\200K\224\267\010\237@\000\233\257\t\272\227<\225\251\004\323\262#\242\251\017\206\2021\376\265\004\351\231\004\232\270\246\004A\241\277\001A\003\326\253\004\233\204\004c\356\266\277\001c\003d\275\277\001d\003o\256\304\277\001o\003z\313\277\001z\303\215\005P\356\202\263\001P\004Q\211\263\001Q\004R\371\004\211\252\t\364\262\010CZ\320Zqw\320qr\253\277\n\016\210k\244\274\t\362\334\235\0227\302\213\027\206\303\001l\270,\300\016\353\302 {\320R\325\204\t\330\253\003\360\315\004\340\275\013\320\236\307\013\267\270\004\266\277\004\257\277\004@\314\301\001@\0032\253$B\230\301\013\263\320\001DE\242\316\001\331\211E\372\324\274\034U\364\264\004+\320UZ\320\375Z\327\313\003j\320jw\320w\000\261\316\003\203\315\004\366\274\004\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\346\334\270\016YZ\326\235\023\351\230\016\025\240a\366\362\277\tT\260\256\241\003h\310j\320\361X\261\222\001\377\320;\253\241\014n\320ns\037\320sy\320y\300\321\003\231\320\004\213\320\013\240\311\261\004\300\311\004\377\273\004\376\302\004\301DF\233\305\001F\025\003\251\223\004H\330\237\017Y\350\310\003\217\322\006\211\307\n|\254\243\006\300\200IM\270\034\300Q\346\272%@\344\241\036\213:\275\214\013\300\307\004\214\273\013\204\242\004M\303\307\001\343M\003\370\206 \330\225\004\213\207\006\360\000\000\267R\004]\253\273\001]\004\333\227\004x.\271\273\001x\004~\300\273\001~\334\225\007\347\324\t\346\262\273\010Z[\243\203Z\307\2425o\320o?t\320tz\320z\304\322\003\355\323\004\200\212\325\006\350\323\002\263\316\013\371\300\004\370\307\004\355\211\004\361f\360?\000\000H\003I\003\352\322\016\374\000 \270\246\022\270\205D\267\324\006\246\236\t\261\236\n\220\272\324\017\373\244\014\320\313\200=\376\205\004\325\270\004\344dX\265\314\001X\003T\377\213\004\370\213\004u\312\314\001u\333""\270\005w\240+\376\307\236\003Zr\360\000\000s\001\014\243\330\004\247\264\004d\002\311\265\n\350\205M\366\322\007\366\317\001C\330\004\320\305\t\200\201I\212\323\004\317\314\004{\266\333\001\201{\364\265\005\356\265\004\274\302\004\260+\223\273\004\275\216\004p\356\217\317\001p\003{\226\317\001{\003F\256\306\302\001F\004R\315\302\001R\207\235\005Y\236\333\302\001Y\004Z\004\375\327\n\245\306\003Z\360\336\303\003\360\315\004\323\233\004\312\237\004@\003\3606\374\274\335\010\222\201S_\270O\310?\320\025Z\356\332\001\330\317\341\005X\303\267\002\335\341\003\000\t\002\023\002\021\213\2045\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\277\360\000\000^\003m\361\321\001mt\312\321\005\203\276\004B\257\305\001B\004C\266\305\001QC\253\305\005\342$\231\211\004c\322\305\001c\220\276\005]o\340\305\001o\004z\347\305\001z\246\211\005\335D\211\240\001D\005E\220\240\001E\005{F\005\236\333\n7\220\047\230\306\341\001s[\\\324\210\\\337\234\047U\320U\310\337\003\377e\320ep\320pu\320\017u{\320{\213\326\003\214\316\004\321\273\013\344\330\006\037\360\000\000a\002\332\244\004\343\204\004\220\257\004\032\334\204\013J\361\221\017\\]\323\212\\\300\322$\312\250\014\377q\320qv\320v|\320\001|\352\322\003\354\332\004\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004H\210\261\004\236\312\004\322\326\004K\303\250\013\265\345\001\\\274\307\003\310\236\342\004\226\327\004\256\224\0072\304\205Z\376\324\001\177\270\037o\310_\320\\\257\323\001\350\277\031\351\252\036\000\2333\333\326\004\314\244\004\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\350\264\230\013\207\206\004\221\305\004I\313\314\001I\004T\256\322\314\001T\004_\331\314\001_\214\247\005m\356\347\314\001m\004n\356\314\001n\004o8\335\314\004\212\326\004\263\300\003]^\360\306\215[\363\324\004\217\020\320\020!\313\240\005\310\255\013\214\251\036r\037\320rw\320w\277\333\006\350\347\004\247\331\013\036\260\326\006\360\000\000c\271\333\014\201\216 \357\210\004z\347\251\004t\365\333\001t\003u\003\261\321\n\342""\321\274\003]\336\314\003\323\275\007\334\200_\016\270n\003\310A\262\253.\2403\335\333\004\200\277\004\274\321\013\377\214\007\017\000\000@\003\375\257\004\312\321\004\303\321\004\360\335\004\275h\226\336\001h\003i\003\316\323\016]\344\216\343\003\302\223\007.\367\214Z\323\331\001\017\270\177\003\310a\225\307\031\252\2034\211\327\004\233\340\004\350\237\013\330\272\013t\314\314\004\230\245\004e\263\340\001e\003k\272\340\001\201k\355\323\014\302\215\004\310\256\004\356\237\023\313\332\004\322\307\003^\371_\343\226\\\204\2563s\320sx\320\301x\270\273\006\364\356\004\272\340\004\302\331\004\266\224\007\000\000\003d\002\240\326\013\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010\363_`\342\230\\\263\2473t\320ty\003\320y\334\251\n\225\346\004\276\333\004\263\352\004\347\305\004\342\212\013\014\272\264\004\245\227\022N\003\214\317\016\200 \346\204[\374\245K\240\327\200A\352\270\022\276\332\013\225\323\004\213\224\004D\317\332\001D\273\004O\326\332\001O\004Z\335\332\001Z\273\004j\344\332\001j\004p\353\332\001p\273\004q\362\332\001q\004r\321\246\025a\302\213\242\002,\245\226Z\243\315\026\360\365\006\265\315\017[\320\357X[\320[\212\353\003k\320k\007v\320v\371\361\003\365\365\004\377\361\004\251\363\004\243\357\004(\307\351\013\273\347\004\340\217\013N\330\351\001N\332\273\005\336\331\004\350\316\351\013\260\251\004\316\351\004\177\211\352\001\177\003@\236\271\335\001@\004A\004\232\316\013\374\347\003w9x\316\245\036\265\264\014\025\240g\375\363\001\234\310\017~\362\245\005e\320eo\320o\330\323\001\000\252\370\023\265\240K\236\334\004\202\352\004\357\337\004\333\330\004\245\334\013\254\315\004\340\305\251\013\243\354\004\254\334\004\245\334\004\243\215\006\360\000\000\267i\003j\224\241\017|}\263\372\n\013\234\301\372\005\210\246\027\026\240u\260\372\001\324\312\r4\377\300x\310z\320Y\\\320/\\d\320d\337\247\003t\2365\303\322\001qA\312\325\001\251\327\010\350r\\\320\\\241\364\003?l\320lw\320w\363\372\003\272\361\004\000\373\253\013\270\354\004\274\351\022\212\333\004""\270\354\013\263\250\013\337\300\004\212\333\004j\333\217\004n\377\356\001n\272\256\005p\003\215\323\016\177\360\004\000A\002B\002\317\200p\3376\260b\270\001\264+\320\021\377#\2402\240T\250\031\260\377+\270T\300\026\300q\310\377\t\320Q\\\320\\`\320\031`\232\341\003\271\371\001\320{\211\361\003\322\254\013\365\311\013\000\267\365\004\364\274\004\235\361\004\375\347\004\226\361\004\360\344\004\302\231\006\217\363\001@\366\344\005\237\341\004\360\344\004\235\361\004\323\224\006\376\377\004+\320\304\001\334\236\372\002\301 C\002D\320\200q8\270\371\002\325\372\001\256\334\t\320\021%\240R\377\240t\2509\260K\270t\377\3006\310\021\310)\320S?^\320^b\320b\317\376\003\354\357\006\000\277\366\004\370\367\004\376\377\004\243\347\013\266\314\022\341\301\004\340\224\013\263\246\013`\336\363\004\271\263\004\376d\215\227\006\244\350\001\003v\204\204\005\271-\276\375\001\300%D\002E\230\203q9\363\270\022\206\371\001\272+&\240b\250\177\004\250I\260[\300\004\346\300\001\377\3109\320T_\320_c\003\320c\352\377\003\326\357\006\344\351\004\214\364\004\227\361\004\373\373\004\000\327\342\004\206\355\013\220\312\004\246\366\004\310\263\013\346\255\004\330\213\004\204\225\013\316\355\250\031\320\026.\232\371\001\210\204\005E\002\275F\340\205q:\270\"\270\207\211\014\320\377\021\047\240r\250\024\250Y\377\260k\300\024\300V\3101\377\310I\320U`\320`d\377\320dj\320jk\320kx\246\352\006\276\304\004\345\261\007\000\000J\002\276\304\013\370\303\314\022\333\366\004\216\266\006\360\000\000B\003h\231\216\004\202\313\004\237\345\004f\215\371\001f\003\376\250\004\224\246\345\004\317\354\004x\224\211\005/\302\366\001\320\206\005z\005\001\314\256\007(\277\250\034\311\215O\224\3135\330\243\023\231\260\004\000\342\270\004\223\265\013\247\362\004\204\326\004\366\325\013\306\315\004\300\373\004\321\311\004]j\330\373\001j\003q\337\373\001q\222\357\005\370\276\373\006\272\373\003\257\370\007\360\006\000\005\017\373\320\016\361\363\001q\330\004\007\200\377x\210s\220!\330\010\t\377\330\004\t\210\021\330\004\022\177""\320\022\047\240q\250\004\213\375\001\267\025\220Q\307\204\002\200\001\036\024\017\273\210q0\004\020\320\020\316\375\001a\276\267\376\004\360\n\000\005\0269\002\320\377.@\300\001\300\027\310\001\356\313\306\001\020\220\001\371\345\001\005\210V\377\2201\220E\230\021\330\010\376\220\253\001\001\230\026\230q\240\005\317\240W\250A\244\320\001q\002-\320\277->\270a\270q@\r/\377\320/B\300!\3001\300\365A\336\371\001Q?\014\016\210g\220\377Q\220f\230A\230U\240\227\047\250\021\357\303\001\025{\010\324\377\005\360\317\014\000\005\020\267\001\215\000\220\031\303\230!\226\337\003\t\001\370\377\003\234\347\002\210q\373\320\020\306\344\002\340\004\022\220)\317\2301\230A\020\004\276\003\016\220\277a\330\010\020\220\013\024\002\010\377\013\2104\210z\230\021\230\377\047\240\021\330\014\024\220A\377\330\010\014\210G\2201\320\377\024$\240L\260\001\340\004\277\r\210Y\220a\220\353\"q\272\025\004\220K\002\t\220\021!\010G\277\2506\260\021\260!\217%\035\177\240g\250V\2601\260L\000\336\244\003&\240\001\240\262 \013\210\3675\220\t\341\373\002\014\020\220\002\377\220%\220s\230%\230q\357\240\001\240\024\352\213\0027\260\"\357\260G\2701\343\345\0021\340\004\347\016\210i\225\325\003\330@,\250D\377\260\t\270\021\320:L\310\327C\310q\304\n\n\202a\013\210\3777\220#\220Z\230t\240\3471\330\014\374@\244\005I\230R\373\230q\303\001W\220A\220T?\230\025\230a\230q\337\374\001\013\001}Q\220%\003\2202\220U\313 \3771\330\004\024\220D\230\005\343\230Q\323\351\003\316\376\002\360!\022\220\037\377\240\001\320!3\2601\320\3174D\300A\333\271\001\336b(\250\262\240 \005\313!\322\001$\230\327 \021\372\223B4\237\352\001\030\230\t\240\021\367\240$\240\355 \032\230+\240\367Q\240d\213\366\002\010\026\220cw\230\021\230)\002\032\230#j\000\227d\240!\315\352\001s\316@6\000\200\375\001n\002\320\021*\250!\320\377+=\270Q\320>N\310\177e\320ST\320TU\222\346\004\3772\260!\340\004\013\2109\374\317\002\230b4\210q\220\003\220\3571\220G\230\365\337\002\007\200w\373\210c\236A\017\210t\2208\376\201`H\240A\330\t\021\220\315\023\336A\017\210""\217 \261\002\001\330\377\010\030\230\013\2401\240D\357\250\010\260\001p\006+\2501\377\320,>\270a\320?O;\310us\000\320UV\213\347\004\377\000\236b\024H\230F\240\222\000s\003\025\373\220d\326@x\240x\250y\271\270a\000\201\0011\220C\344\330\001\3409\004q\005\304\311\001A\230T\331\353\001\351\006\367-\250Q\362\205\002\320AQ\320\353QV\202\376\002X\205\350\0045\260Q\256\334\024J\230f\203\366\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007n\203H\020\220\004\346\204\001\020\220\255F\375\031\315\206\003\021\200\001\360\020\000\377\005\010\200u\210B\210a\373\330\010\242\207\002\013\2101\210A\377\330\014\020\220\005\220_\240\265F\220A<\206\353\001\330\014\330!2\357\220Q\200\001\200\231n\230?\250\000\210\365\016\223\2764\223\367\004\245\374\004\257\343\004\344\372\004\355\224\013\274\276\031\005T\365\372\001T\361\372\005\301\234\006\350\341\r\247\233p\336\347\002\357\016\320\016\037\215\362\007\030\230\022\377\2304\230y\250\013\2604\200\270\323\007\306\263\037\200\375\004\236\355\022\232\342\013\302\352\006\311\375\001\002\005D\221\375\001D\303\252\005\301\333\004\267\316\023\236\322\007\322\277^\0011\330\340.\233\300\023\344\362\004\252\300\013\370\263\004\332\354\004\323\354\004\000\327\335\004\355\273\006\271\337\r\307\301\\\326\224\002\373K\276\2604\315\375\004`\356\260\013\233\331\004\313\335\004\304\335\004\231\233\013\177\002\361\332\r\002\367\250^\001\337\344\r\344\316\036\274\251\027\331\353\004\317\251\013\232\350\004\010\355\306\004\225\311\004\266\260\013A\276\251\016\344\351\025\207\244\016\366\312\027\000\273\334\001\365\243\025\243\356\002\345\206\013\323\200!\273\241\030\323\246\004\246\3166b\237\370\0041\223\213\025\243\357\003\206\357+\320\033\264\2001\007j\320j\230\326\006\230\372\004\354\307\004\260\250\004\345\307\013\001a\202\326\016\264\244p\240\241\002\265\212\013\276\307\022\234\277\014\314\316\020\200\367\376\004\203\374\004\273\357\013\231\257\013\201\343\004\245\302\013\331\324\004S.\233\374\001S\003Y\242\374\001Y\352""\214\007\263\210\032\340\353\246c\362\233\002\366\377\n\227\334\022\243\332\tt\320t\200\305\272\020\254\376\004\313\232\031\221\353\004\373\326\013\264\351\004\347\316\004W6\304\376\001W\003\316\304\013_\003\321\263\r\207\251p\034\373\206%\211\325\tu\320u\334\265\020\321\334\004\251\205\022h\255\355\013\330\351\013\262\323\004Q\246\364\001Q\003\246\314\004p\361\251\004\357\277\006\200\335\r\261\253p1\260\021\223\254\014\377\035\230b\240\004\240I\250\367[\270\004\245\232\0029\310K\320AW\220\261\014\202\266\024\272\327\004\273\366\004\235\306\013j\221\375\001\201j\333\347\005\202\341\013\210\352\004\213\356\004\362\205\004\220\302\013a\226\217\254\005&\240\303\236\006&\300\313\010\352\255e!4\337\255n\207\352\004x\321\377\001x\002\230\330\004\307\316\004\220\336\313\004\271\277\004\302\304\004\300\277\004b\266\256\020\300\200o3\373\2601\363\260\014\037\240\002\240$\377\240i\250{\270$\270f\377\300A\300Y\310k\320Y\377]\320]c\320cd\320\177dm\320mx\320x\344\265\030\000\253\277\004\261\263\004\205\304\013\342\343\013\373\260\013\362\320\004\212\206\004\206\266\004~\242&\360\000\000b\003c\363\260\005g(\250\001\250\243\005\362\202o4\260\215\251\016\377!\240\022\2404\240y\260\377\013\2704\270v\300Q\300\377i\310{\320Z^\320^\377d\320de\320en\320\017ny\320y\256\315\003\327\356\013\322\375\004\260\340\004\000\222\350\004\245\277\013\321\336\013\266\226\013\274\313\004\256\311\004\231\350\004\215\363\004\334\365\342\006\235\270\004)\250\021\271\200w5\260\375Q\225\263\r\"\240\"\240D\250\377\t\260\033\270D\300\006\300\377a\300y\320P[\320[\377_\320_e\320ef\320\177fo\320oz\320z\343\315\003\300\273\350\013\311\365\004\337\272\004\311\365\004\326\277\013\203\341\006\360\000\207\000o\002\331\325\013\315\352\004\275\217\004\226\345\022e\342\332\265\005*\367\353\001\230\263\003\331\207o6\260a\370\346\264p\213\370\004\314\366\006\360\000\000}\002`\321\347\004\336\237\004\226\270\004\321\347\004\342\306\004f\003\300\265\017\356\215\212o7\260q\375\267\r$\240B\377\240d\250)\260;\270d\377\300&""\310\001\310\031\320R\377]\320]a\320ag\320\377gh\320hq\320q|\003\320|\250\357\003\337\345\004\212\370\004\337\370\004\303\272\004\355\345\004\000\307\277\013\270\372\004\255\370\004\206\270\013\352\341\004\267\374\004\302\370\004\244&?\360\000\000f\003g\302\272\005\237\241\002\002\360\202u8\257\272\017\226\267d\242\344\004\276\272\004\314\374\004\215\302\004\200\350\376\004\364\322\004\355\262\004\360\315\006\361\301\004\353\267\010\371\216o9\r\270\212\222\014\320\021\206\267d\312\354\004\225\320\022\354\226\004\010\216\320\031\331\267\n\261\221o:\333\274\017\366\266d\223\304\031\247\344\004\246\223\304\031\320\026\313\267\010\351\223o;\313\274\017(\377\250\002\250$\250i\260{\377\300$\300f\310A\310Y\377\320Va\320ae\320e\006\266\332\001\320l\243\361\003\375\370\004\320\377\004\233\316\004\260\361\004\000\207\367\013\211\325\004\373\226\013\276\251\013\222\272\013\266\231\004\202\236\004\351\363\004\304\245\344\004\325\267\004k\246\304\005\220\243\002\272\215\017\r\210\047T\220\026\340\263\003\364\310\t\021\323\357\026\325\255 \377Q\300l\320RS\320S\277b\320bm\320m\336\352\004\320\303{|\361\254\032[+\361\353\001\237\252 a\300\375|\263\263\002c\320cn\320n\216\265\341\004\320|}\336\251\032Z-\275\255\"q\373\310\014\304\263\002d\320do\320\035o\300\340\004\320}~\354\372\003\341\254\024\344\200-\370\201\303\002\336\256\013\222\337\017\001\310\034\320U\347V\320V\312\343\003\315\334\004\320~\177p\336\273\016\262\233\t\356\201-\310\253\"\021\310,\336\264\002\277f\320fq\320q\277\326\tA\314\214\253\033\374\202-2\260\235\263\016\322\320\017Q\310\377l\320Z[\320[j\320oju\320u\232\227\021E\002\350\312\017\360\351\2009\366\232\002\215\262\013\352\232\017a\310|\320\273[\\\210\343\002v\320v\375\225\021F`\217\005\377\231\024\252\205-\333\231\002\245\263\n\320\021\317\231\017\377q\320P\\\320\\]\320\031]\215\316\003\273\313\021G\002\336\230\033d2\231\312\013\316z\033t\320tm(\352\373\006\r\210\356\224\323\n7\240!\213\372\tU\260(\243\270*\310\310\001\362\322\027\301\263\030%\350\265\007X""\233\320X\302\256\001\320_\315\313\003\333\323\001\360\217\000\000w\001\346\373\004\204\372\004\325\303\022`\341\002\254\263\016\315\305\t\262\014\206\377\0226\310\021\376\214\2002$\260f\270A\270Y\177\300k\320QW\320W\223\374\001;\320^\305\226\003t\320t\225\377\003\256\375\004\004\227\344\004\233\267\022_\254\022\255\376E\224\255\032\367((\226\376\230\272\0325\270\006\270a\270y\017\310\013\320S\200\203@\350\271\010\233\371\t\337\215-\374\354\312\002\333\273\t\022\320\022#\2401\363\240H\240\327\001\347\300\001B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310!\310<\320\377WX\320Xg\320gr\303\320r\271\340\r\304\333\004\367\344\004\345\316\022j\002\360\234\342\n\246\304\003\207\2009\344\252\003\320\021\"\240w!\2408\224\324\001\024\320\024\227\311\001\355h\220\317\001\021\220\345\252\017A\310\\\007\320YZ\304\365\002\323\207\024\373\322\013\254\320\004\300\374\004X\264\234\006\276\334\004\261\252\004=\230\204\304\0012\313\251l\370\313\301\003\223\355\t\237\355\t\017\320\017 \240\315\001\246\304\001\330\004\251\355\013\340\301\022T\320\363TZ\306\215\002\347\220\003r\320rx\377\320xy\360\000\000z\001\000\243\337\004\275\243\004\263\364\004\252\337\004\210\264\004\244\346\013\325\236\013\376\361\004P\253\346\004\340\301\022\230\320\004\315\315\004z\201\375\001z\247\337\007\277\360\000\000A\004L\256\372\001L\253\004W\265\372\001W\245\360\005e\303\372\001e\253\004f\312\372\001f\241\342\005|\330\372\001|\273\004F\260\367\001F\005L\267\367\001L{\005M\276\367\001M\005N\005\321\302\n\377<\220|\240;\250a\200\376\275\313\002A\330\014\023\2206\2309\021\000\004\003\0107\230!\030\001\000\004\3478\2301\003\010\025\0045\230\001\3564\010;\230aI\001:\230Q\340P\001*\004X\000e\001\234\313\002\330\014\r\377\33046\260d\270!\270w5\300\001|\001\017\210q\000\0043\220\007\275\313\001\016\003t\220V\000\003\005\372\217\311\001A&\003u\220A\220S\375\2302\004u\220B\220d\230\375!@\003w\220a\220t\230\2678\2401P\002\320\017\244\317\001d?\250&\260\001\260\021\343\001\277\307\004\327#\2401\261\315\001N""\306\314\001\330\014\377\033\2305\240\014\250A\250\237[\270\001\270\021\237\307\001\331\315\001.\377\250\001\330\020\024\220H\230\277A\330\024,\250G\225\315\001\340\177\020(\250\007\250q\260\231\311\002\375qB\n4\320\047B\300!\357\360\006\000\t\347\316\001\010\014\320\357\014\034\230A\321\314\001U\230-\367\240q\250\232 \017\320\017\037\377\230w\240e\2501\330\024\376\213\321\001x\240q\330\020\031\230\375\026\021\000g\250Q\250a\330\377\021!\240\027\250\005\250Q\276\020\014y\250\002\250\047\243\316\002\014\311\020\225#\353\316\001M\222\315\001\371\316\001D\320\177\030.\250a\250q\330\026\005\376\200\001\023\220$\220l\240\"\377\240A\330\010\013\210:\220\363Q\220\240\304\001\333@5\230\010\240\307\005\240Q\200\311\003\233@\200\312\002\020\027\274\256 \355\317\001\014\021\220\030\336\314\003\230\377v\240Q\340\014\020\220\003\277\220:\230Y\240a\260\341\002\020\177\025\220X\230Q\230j\372\005\277\r\320\r\036\230a\314%H\277\230K\240q\250\013\271\317\003\013?\2106\220\027\320\030\275\252\001\232\320\002?\r\023\2207\320\032\377\254\001\252\320\001\365\340\215\004g\233`\013\022\220!\361\330\033\001\336a\364\320\002\330\020\021\330\377\024 \240\005\240[\260\004\277\260A\260V\2701\315\312\002\200\377A\330*A\320AX\320\177XY\330\010!\240\035\356\002{\010\035\336`\010\"\240,\010\003\367\032\230,\251\000x\250q\330\357\010\036\230o\321 h\260a\377\330\010\034\230G\2405\320\277(<\270A\270[\313\230\002\330\377\010\"\320\"3\2601\260wH\270A\255A*\250\021\016\002\3758\372A\270(\300)\3106~\242\217\002Y\320Ya\320a\267\260\001\037\360\000\000y\001\357\337\004\332\371\004\330\332\013\300\314\325\004\316\262\004\352\360\004\272\372\004\271\374\004\312\307\004E\003\376\217A8\2203\220a\330\014\377\037\230q\320 :\270)\377\300<\310y\320XZ\320\357Za\320a\255\261\001\330\010%\377\240^\2608\2701\270A\377\330\010\016\210k\230\027\240\365\001\003\003\021\333\314\001x\220|\240\3772\240X\250Q\200A\330{+,\333\2001\250\017\260q\340\316\001\362\373\013%\254a\225$A\260X\270\377Y\300f\310F\320RT\377\320T\\\320""\\h\320h\300\243\221\006\267\344\013\312\366\004\273\351\004\346\250\013\327\327\004i\002\276\346\r5\260Y\270l\235\340\001U\337\320U\\\320\\\225\303\002\010 \317\240\t\250\030\215\324\003\242\200Q\320(\\\336B\360M&\240Q\216b4\354`\377Q\260h\270i\300v\310\377V\320SU\320U]\320\017]i\320i\333\224\006\253\353\013\343\375\004\211\300\004\370\242\341\013\273\273\006\335M6\260i\270|\376\314\337\001V\320V]\320]_w\320_`\313\204\001\032\2508\363\325\003\276\241\200S9\270\021\270!\347\204\r\047\376\337\324\001\"\320\"5\260Q\260\377a\260x\270y\310\006\310\377f\320TV\320V^\320\001^\346\303\t\360\263\013\231\370\004\245\350\004\321\340\013\205\273\006\324\204\r\3377\260y\300\014\373\336\001W\320\377W^\320^`\320`a\177\330\010\"\240+\250Xy\001>\216\204S\320(:\270!\272\207\001\340\206\013\327(\240q\374\206\0026\362\000q\270\377\010\300\t\310\026\310v\320\377UW\320W_\320_k?\320kw\320wx\353\206\002\263\263\013\320\207\340\004\322\354\004\200\340\013\234\352\004l\324\204\0168\270\367\t\300\034\335\245\001X\320X_\373\320_\207\360\001\330\010#\240<\323\250x\371\205\003\217\204S;\262\207\003!\320o!2\260!\302\207\001\330\010\002\007\256\236\214\001)\250\001\377\210\0027\201\207\001\270\377\030\300\031\310&\320PV\377\320VX\320X`\320`\007l\320l\361\220\006\334\351\013\373\305\004\344\267\013\314\344\004\300\240\354\004\345\372\004\334\351\004\276\321\004\343\351\004\242\370\007\010\013\375\210\366\210\t9\270\031\300,\310\377i\320WY\320Y`\320\375`\261\355\001\330\010$\240M\260\371\030\262\204\003\354\210\0231\240L\260\002\373\260(\271\211\002r\320QY\320\033YZ\327\2106\320(\256$\214\213\013\343\200CD\224\251\013\305\274\006\330\301\200B\312\212;\221\215\003Q\341\214.\036\355\366\002\000\000{\001\360\264\013\211\330\004\332\343\004\360\265\372\004\272\360\004\212\274\006\374\213\201\320(=\2707Q\270a\372\216\r+\250\240\211\003\253\211\002\257\2708\3009\373\214\001X\225\216\002b\377\320bn\320nz\320z\000\276\367\003\255\355\013\267\376\004\365\357\004\275\367\004\333\302\004\316\273\006\350\216""\r\377;\2709\300L\320PY\377\320Y[\320[b\320b\376\363\276\001\330\010&\240o\260X\000\226\003\255\214S\362\004\335\217\001\371\220\006\271\200<\347\366\004\275\2008\177\340\010$\240F\250*\367\343\001\377\014\210E\220\025\220a\220\035z\330\344\001\033\2301\236\340\001\264\200`\371\346\003\316\213\223\014,\2501\250\223\002\304\213\002\270H\363\300I\224\217\001\253Cc\320co\037\320o{\320{\234\302\003\365\356\013\347\333\004\340\244\311\004\340\333\004\321\331\004\300\235\006\370\222\r<\270I\377\300\\\320QZ\320Z\\\337\320\\c\320c\317\300\001\330\010\377\047\320\0477\260x\270q\323\300\001\316\214U\255\351\001\021\204\225\r.\250|\216\221\003\262\225\001Q\270h\300i\240\215\001\377[\320[]\320]e\320\177eq\320q}\320}\207\366\003\300\216\263\013\300\375\004\357\360\004\256\237\013\225\322\006\362\224\r>\270\271i\357\260\001\201\223\003e\320e\341\275\001\330\177\010)\320);\2708\367\351\002v\257\224R\320(\363\004$\240N\240\215\005\000\002\006\305\232\001\305\200<\203\370\004\331\355\004\327\303\004\343\333\004\317\335\004\260\375\374\004\276\310\004\253\360\004\326\317\004R\003\203\201!\340?\010#\2406\250\031\301\352\001\254\205\n\307\032\230!\317\347\002\000\034\305=\320\027\377(\250\001\250\034\260R\260\047x\270|\370\244\001\216\231\003b\256\2158\204\352\003f\364\231\0142\260\375\231\003\207\204\002\300(\265\370\001\356\351\324\003a\320a\376\225\001\360\000\000\003v\001\361\225\013\313\306\004\367\372\004\334\377\013\274\340\004\230\363\004\234\344\324\006\352\231\rB\300)\314\246\001\355\217\003i\373\320i\375\270\001\330\010-\320-\277C\3008\3101\310\245\231T\3203(H\232\360\002\367\233\0146\260\200\230\003\245\354\002\363\300h\213\221\001\271\315\003e\320em\003\320m\204\244\003\337\303\013\261\342\013\253\372\004\213\322\004\244\372\004\270\314\340\004\265\377\006\355\233\rF\300i\247\262\001d\377\320df\320fm\320m\377o\320op\330\0101\320O1K\3108\266\354\004\341\233\035>\304\215\001\234\340\235/\376\233\002\014\300A\376\235\r\342\233 |\203\320|\336\312\003\243\367\013\330\364\004""\263\374\004\343\205\022q\342\270\233M@\224\212\001\333\2371\351\237\001\034\300Q\340\331\2330\262\200I\320\233<\305\2006\237\230\001L\310\001\000\372\241\r\365\227!\360\311\003\231\300\004\334\342\004\213\321\004\201\355\004\215\337\004\330\217\232\004\215\337\004\244\373\004t\002\250\225LB\300\341!\310\2416\310\2043\256\215I\307\241\373\207J6\270\027\300\017\200\334\001\374\367\003>\305\232\001\200A\33001\260\307\010\262\2013\376\217\303/f\320fk\320kq\037\320qs\320s\373\370\003\245\263\004\375\377\004\240\327\375\004\311\375\013\347\321\004\227\373\004\336\354\004E\362\377\001E\355\003\320\375\004H\003\224\303EV\2507\343\260!\331\200C\353\301\004\316\234\007\330\010%;\320%\347\301\001x\270q\231\315\001\341\301\032\277h\320hm\320m\245 u\003\320u\277\366\003\362\347\004\203\237\013\220\373\013\301\361\004\335\370\004@\261\242\004\365\363\004\220\357\004\240\352\004\273\375\004\320\234\022t\206\312\016\376\210\3021{\240!\240<\250r\277\260\026\260w\270o\344\325\001[\037\320[a\320a\247\335\001\271\203C\212\266\002\200\222\314+\302\206\026\256\213\013\376\370\013\246\357\004\312\366\004\245\237\022L\370\200\314F\265\203H\243\2760k\320kp\320\017pv\320v\360\306\003\362\354\004\335\375\004\327\326\013\000\312\300\004\310\366\004\222\357\004\272\366\004\304\304$\274\2766\323\200O\231\206\t\240\316\251\t\207\244\013\365\300\033\366\200D\354\270\022[\202\331\001[)\003\253\373\004\240\213\022C\220\331\001C\223\331\005\215\244\004\335^\245\331\001^\004`\254\331\001`\004\373a\004\310\233JF\270\047\300\037\376\300\347\002^\320^d\320dkc\320k\310\212\n\243\361\004\270\343\013X\002\371\213\001\001F\364\231\001\261\324\006\305\2137\206\263-\341\213\035\257\304\004\245\374\004>\303\314\006\360\000\000l\002\241\274\004\264\247\004\272\301\312\004P\233\334\001P\003R\242\334\001R\213\003S\266\213OG\305\220\001\355\200:\250\2672e\377\320ej\320jp\320p\017r\320rz\275\241\002\316\376\004\353\336\004\330\200Np\314\3245\250\216\006\347\200?\237\321\003<\300q\205\331\r\370\354\215:\224\216\013\371\310\006\360\000\000o\002\324\254\256\004\332\261\004M\347\340\001M\302`\360\000\027\000S\003\341\261\004V\310\215B\240\331\001\240\047\363\320G\357\323\003\223\203AL\320PQ`\212""\274*\263\203$\312\225\013\253\276\006\200\344\001\002H\220\343\001\303H\003\266\371\004\362\373\004\212\264\004\330\225\004a\003\354\235\331E\212\223\00523\341\335\010\"\240-\200\365\340\003\354\227*\374\2242\306\222=\352\373\004\267\266\004\330\305\004J\306\346\224H9\260\204\344\001\334\200@\304\3230i\320yi\306\217h\346\32532\240V\250\236#\30334\244\342\010\253\243\010\261\234(\214\334/g\320\361g\271\234\023\243\224N\241\3345V\250:\260\020\273\342\001\233!\320\205\006\327\205\010Y\230\336\002\264\344\"\266\336$\335\007\334\334\007h\320h\200\200\234W\250\351I\327\200E\262\332$\047\350\346\010j\320j?q\320qw\320w\241\275\n\370\356\004\000\352\356\004\371\340\004\345\326\004\334\322\004\360\334\013\251\236\004\361\356\004\343\214\004sN\003\260\332E\233&I\320I\321\374\001D\214\351\010\270\335\001\021\220\317\001\227\243*\214\246\003[\312\214\020\016\216\343\032g\320g\247\231\027\202\373\004\230\361\004\317\223\013D\377\265\006\334\250\001\002\353\301\004\376\320\004\363\245\004\\\206\361\001\333\\\003\362\301\004_\003\220\343EV\250\373;\260\362\360\0013Q\320Qt\237\360\000\000u\001\325\340\004\254\260\004Z\352\376\361\001Z\330\264\005]\367\361\001]\004^\371\004\376\242>\363\310\002\320HY\320Y\037o\360\000\000p\313\320\005\347\373\004\244\333\004\366\267\214\004B\003\361\310+i\320in\337\320nt\320t\225\272\001\360\000\007\000\177\001\234\277\004\305\374\004\204\352\004\224\342\004\276\226\004\264\305\304\004\273\266\004O\340\363\001O\004\301\363\022r\356\374\363\001r\004@\322\363\001@\005I\356\331\363\001I\005P\340\363\001P\005V\356\347\363\001V\005X\356\363\001X\005Y\031\005\223\340E\222\244\00545\252\347\001\370\217\004\360\257\010\304\373\210(\323\352$w\371\350\007\333\212g\335\3525W\250\275J\301\204\0025J\310!\225\250B\036`\366\226\017\200\355\032\303\250\026\203\341\013\321\232\20778\356\252\021\002\315\224\nW\220\273\002\260\363 \221\3610\320\233\017\336\353\004\306\306\004\340\363\375\004\333\373\004\334\355\004\270\337\004\270\320\006\360\000\000\373t\002\306\262""\006\360\000\000@\003\320\243\303\013\240\314\004\261\303\004\324\373\004g\322\226H5\260\003\t\270\311\371\001\202\201I\350\3611\311\255\017\235\366\004\220\323\004\000\235\366\004\260\354\004\264\356\004\213\364\004\367\262\004\244\366\004\234\376\004\261\227\004\264\202\336\004\260\253\004_\212\376\001_\003\357\316\004g\016\230\376\001g\003h\263\255H\362\200Z\377\255\t\341\313\013\350\253\206,\207\201Q\270\310 K\315\321\001K\004Q\332\324\321\001Q\311\321\005T\004\224\365Ay\240\377\001\240\034\250R\250v\260\177U\270)\300?\320R\224\364\003\234\253\262\003\350\370\001\200A\330\225\204K\225\2302l\377\320lr\320rt\320t\000\344\347\003\353\355\004\354\330\004\220\364\004\362\355\004\223\362\004\367\367\004\357\340\006\372\272\341\001\002\315\217\006\360\000\000B\003\350\275\246\004\326\306\004\222\266\013h\325\324\001h\003i\000\243\221H\334\206S\256\366/\320\263\017\302\356\004\307\343\004\333\364\004\311\356\004\000\317\376\004\317\370\004\307\304\004\313\341\004\317\376\004\316\321\004\255\346\004\260\223\004t\342\263\004\244\207\004i\244\327\001i\003j\212\244H<\253\211S\261\367\004$\320$5\273\273\005\257\266\013\000\232\367\033\356\223\017\216\355\004\234\346\004\226\363\004\225\355\004\245\361\004\264\371\004@\375\226\013\243\324\004\267\367\004\341\253\004\201\257\013\362\320\031I\200\332\001\323I\004\306\224\004\263\207\004R\326\323J&\270\001\005\276\312\003\322\206^\255\266B\241\345\004\234\321\004\247\364\004\250\345\004\220\236\360\004\220\370\004\243\312\006\377\374\001\002\271\372\004\362\273\004S\326\355\334\001S\003\215\232\004c\373\334\001c\003\004\327\204\004\206\335\004l\312\266H\220\217S\331\266F\361\360\004\344\326\004\000\353\362\004\370\360\004\204\352\004\354\370\004\273\252\013\277\276\004\332\337\004\342\303\004m]\310\337\001]\003\326\326\022m\003\361\366FCV\250\370\200Z\370\266W\231\201Q\221\212\004o\303\342\001So\003\355\334\004\326\315\004D\303\342\001D\356\217\005\335W\321\342\001W\004Y\330\342\001Y\004\335c\337\342\001c\004l\346\342\001l\004]x""\355\342\001x\004~\364\342\001~\226\235\005\373A\005\246\267L%\270y\310\017\003\320W\220\367\003\254\274\003\213\357\003\223\301\013\373\354\004\371\375\004\370\356\241\004\350\377\006\313\220\001M\320Mb\320\373bc\267\230L\014\300K\310q\300\277\340%\304\356\032\337\230@\312\312\004\332\205\013\314\365\006\360\000G\000R\003\211\310\004\223\216\004\303\321\022G\305\346\001\241G\313\335\005\373\242\004\364D\231\241\004o\350\346\001o\272\372ED\225\241\001D\005J\234\241\001J{\005L\243\241\001L\005M\005\317\261A\377x\230q\240\014\250B\250\377f\260E\270\031\300/\320\177Q]\320]_\320_\252\270\003\201s\214\233\001\226\317\005\376\334\004\222\363\004\212\361\004\216\365\013g\376\211\274\0017N\320Ne\320e\350\274\336\001\307\234G\275\232\003\034\301\374\001]\320]\177^\330\010!\320!2\322\371\005\300\216\227k\322\371\004\200\307\004\307\246\004\312\277\004\210\235\006\360\000\327\000g\003\316\325\004~\311\352\001~\003t\361\206\004\311\341\004L\311\352\001L\004V\320\352\001uV\267\352\005k\336\352\001k\004q\345\352\001\365q\276\352\005t\276\227P9\310L\320\377XZ\320Z`\320`e\277\320en\320no\214\230\001Q\230\346\351\002\265\277\017\216\2403\320(\222\335\006\321\355\t#\377\240>\260\021\260(\270!\374\203\375\001\210\335\033m\320mr\320r\007x\320x\254\275\003\372\344\004\221\362\004\226\350\004\216\377\004\340\230\362\004\205\253\004\215\342\004\302\352\004\314\314\006\360\000\000iH\207\273\005\377\321\004b\345\355\001b\003\351\355\004\rx\363\355\001x\003\252D\351\355\004\363\344\013\342\302$\376\322\3352\320\027\047\240q\250\014\377\260B\260f\270E\300\031\377\320JZ\320Zf\320f\377h\320hn\320ns\320\375s\230\370\001\200A\3308P\320\361P\363\312\001\222\205I\261\365\001M\310\035\320\003VW\331\252=\357\225\047\265\336\004\364\317\004\352\302\006\251\276\002\036\215\256\006\360\000\000_\200\361\005\222\350\004\256\353\004z\232\306\004E\222\361\001E\004F\004\317\252G\036\374\243\0059R\320R\262\376\003\312\204G\232\370\001\005N\205\346\001Y\352\345\031\264\230W\247\376\004\357\363\013\205\330\004T""\276\320\004\215\205\004p\200\364\001p\274\325\005A\371\363\001\243A\004\264\214\004\200\231\004\375\363\004\\\225\364\001\\\273\004d\234\364\001d\004j\243\364\001j\352\274\220\005m\311\230Pk\227\214\014\320st\007\200A\330\247D\225\367\027\365\330\006\230\2105\376\323\001\377>\310\036\320We\320e\001sr\000\254\351\031\336\323,\201\237\047\353\344\004\326\226\013\245K|\335\361\004\262\351\006\360\000\000}\003\346\244\004\255T\301\367\001T\004\254Db\317\367\001b\272\262En\335\367\001n\004w\344\367\001w\273\004\177\353\367\001\177\004E\221\262\001E;\005G\230\262\001G\005H\357\261\016\216\324;\337u\270I\300[\351\314\010i\320\237ir\320rs\307E\245\313\001\001\370\211\376\004\224\271\006\206\217M\036\300~\320U\377c\320cq\320qr\330\377\010\037\320\0370\260\001\260\007\030\270\021\000\t\014\t\221\373\001\210\250V\321\350\0044\222\240\013\335\334\004n\222\373\001n\003\317\227\004\232\355\004\000\254\346\004\222\240\004\274\365\004\320\217\004\222\206\004\257\320\004\226\373\004\327\217\004\325u\312\373\001u\225\373\005}\330\373\001}\004t\337D\364\265\004T\214\266\001T\005Z\223\266\001\367Z\005\\\232\266\001\\\005]\005\376\316\250O7\310,\320VX\320\377X^\320^c\320cl\037\320ls\320s\361\376\003\307\373\004\320\334\004|\372\341\004\273\372\006\200A\330?@\331\261\032\370\211\303\n\365\276\002\352\266\001,\250a\250q\377\330\010\032\230,\240a\240\375x\007\001\036\230o\250Q\250\377h\260a\330\010\034\230G\003\2405\312\256f\373\373\004\336\356\004\225\331\004\202\374\004\373\373\004|\317\371\004\270\314\006\360\000\000V\003\220\212\031\364\242\377\004\317\371\004H\263\377\001H\004I\004~\212\336G5\260\007\260z\300\243\262\001\003?V\256\217\002\231\223\030\310\2017\355\336\001\374\316?\342\251 \000\325\350\004\265\366\022\325\350\004\314\374\004\260\371\004\231\244\004\267\371\004\337\236\004h\251\215\004\347\226\004\335\232\004N\326\374\001N\004\357\211\004\302\347\226\004W\302\374\016\335\3361\376\317\003\201GAB|\305\377\010\246\226\034X\250W\260A\342\204%\376\336\364\001\001\330\010%""\240^\260\3371\260H\270A\224\226\"s\320\017sy\320y\217\344\003\306\371\004\270\351\004\263\233\013\000\354\304\004\367\346\004\233\327\004\277\351\004\326\362\004\370\341\004\306\360\004\272\374\004x\273\332\004\276\302\004\261\265\006\360\000\000h\271\374\005\260\264\367\004\326\377\004\352\231\004\212DO\004\357\364GV\177\2506\260\025\260i\270\304\356\001\316\254\201VC\3001\205\375\001\370*1\260\371\001\336\377\002\234B\300\030\310\031\320\375R\277\211\003`\320`h\320h\016\342\307\003}\320}\360\351\003\224\347\004\271\377\004\366\351\004\000\276\354\004\207\260\004\272\372\004\314\374\004\334\365\004\344\367\004\305\354\004\376\344\004\000\232\332\004\271\270\004\375\351\004\240\252\006\334\332\001\271\372\005\261\231\022\240\214\004\356\265\377\017A\300\031\210\213\001_\320_\374\326\344\003\332\351\001\330\010,\320,A\342\335\000\021\207\300\001\247\370\025\241\201bE\300Q\364\336\370\001\376\204\n3\211\311\001\"\320\"A~\333\371\001\3008\3109\320T\324\235\003?b\320bj\320j\203\205\003\301\214\n\000\363\347\004\364\332\004\313\245\013\346\370\004\312\305\004\304\375\004\337\370\004\310\357\004\320\313\375\004\257\326\004\310\357\004\256\226\013m\300\375\001m\003\024\252\217\004\275\375\004B\316\340\001B\312\340\005\243\217\004\211\223\004\355U\272\340\016C\300\240\237\002a\320a\377c\320cj\320jl\320\377lm\330\010.\320.E\377\300X\310Q\310a\330\010\316\215\201zF\300a\217\360\001\210\210\n4\260\3751\371\373\002B\300!\3001\300\337H\310I\320U\237\351\003c\320\177ck\320kt\320t\365\335\003\000\201\346\004\311\237\004\303\310\004\254\355\004\350\364\004\262\340\004\225\360\004\364\373\004\000\326\362\004\326\371\004\357\364\004\211\327\004\227\216\013\320\237\004\301\260\004\252\222\013\252\261\234\013M\343\343\001M\365\273\005U\361\343\001U\273\004V\310\343\016D\300I\360\352\001b\373\320b\223\343\003m\320mn\330\377\010/\320/G\300x\310yq\257\333\002\234\204zG\300q\310\224\213\r\3155\336\213\002\320\"\266\210\002\262`Y\320\357V\\\320\\\275\003l\320l\007u\320u\256\360\003\327""\365\004\367\367\013\264\360\004\213\321\004\000\374\376\004\235\363\004\256\271\004\302\353\004\227\356\004\340\301\004\354\374\004\310\343\004\360\336\365\004\215\216 \217\256\004\211\216$E\300Y\310wl\320Z\256\255\003l\320l\276\245\001\377\330\0100\3200I\310\030\277\320QR\320RS\372\204\"\340\377\010\014\210J\220m\2406\367\250\021\330\010\000M\230\024\230\375Q\005\001J\220i\230q\240\373\004\240\346\215\002\r\210O\2309\367\240F\250\254\245\002\r\320\014\036\277\230b\240\010\250\001-\001O\377\2301\200A\340\010\020\220\367\004\220A\247\376\0014\210w\220\377a\220w\230a\330\014\021\357\220\030\230\021\004\000\320\021!\377\240\021\360\006\000\r\022\220\337\037\240\013\2501\026\001\036\230\367{\250!\037\001\033\230K\240\335q \002\"\240!\037\003\030\230\277\037\250\001\250\024\250\325\366\001\r\377\021\220\005\220V\2301\230\177E\240\025\240d\250!;\000\357\020\027\320\027\233\231\001\024\260Y\377\270a\330\020\035\230T\240\377\021\240!\330\020\023\2204\177\220q\320\030(\250\003`\000\377\024\030\230\001\320\031+\320\377+H\310\001\310\021\330\020w\025\220\\#\000.\260\001\223\001\377\025\220a\320\027(\250\004\371\250\304\217\001K\0243\2601\260D\357\270\t\300\021W\010\025\220[\277\240\001\240\036\250q<\006\047\317\240t\2501\325\003P\002)\250\277\033\260A\330\014\020\240\0221\357\260\021\260$\241\216\001\330\020\036\277\230d\240!\2401\224\001U\357\230!\230?\326\000?\270$\357\270a\270q\247\001X\230Q\364\210\227\001\242\006)\211!\330\010\017\210)q\347!\333\351\006\035\246A\"\244\312$\244\342*&\316\362\001\320i\240\303\001\330\301\001\001\257\221\013\322\366\004\354\242\327\004\374\373\004]\002\325\341EX\250Q\360\260\2003\336\311\002\324\375\r\303\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\327\311\004\325\375\004\262\370\004\202\331\004\364\303\004\323^\002\230\377E\254\20089\224\237\001\"\320\343\"3\202\225\007\245\330\032\233\373\001\320kv\027\320vw\206\330\001\001\333\305\004\260\300\004\360\221\022s_\002\302\327E\223\2028:\270!\211\352*>\243\251\001\320lw\320w\344\364""\003\326\354\004\300\235\360\013\273\307\004\213\357\006\324\373\r\315\2305\372\2038;\270\3711\333\330+\202\221\001\320mx\320x\230\271\336\003\306\225\013\265\222\022a\002\315\335E\342\2058<\373\270A\316\372\t\330\010&\320&\1777\260q\270\010\300\001\266\375\001\335*\374\213\001\"\320\"\375\377\002\270(\317\300)\3106\250\340\010\350\217\001\320n\007y\320y\263\360\003\352\302\004\372\320\004\233\221\022\342\362\004\374\277\370\004\274\377$:\270)\300<\310\351y\223\264\002\360\223\003d\357\233\0038\2701\374\273\001\345\226\021}\240A\240\\\260\337\022\2608\270:\227\267\001S\320\337S[\320[\\\213\2105>\270\315a\310\377\t\330\010\261\370\007\334\377\001,\250\374\331\223\003\226\313\002\270H\300I\310V\377\320SY\320Y[\320[\377c\320co\320op\320\017p{\320{\305\315\003\310\223\013\347\312\004\202\375\004\226\336\372\004p\002\244\336\001\002\205\356\004\311\377\022O\356\252\377\016<\270I\201\271\001Z\320Z\327\\\320\\\256\276\003f\231\275\0027\260\337x\270q\300\001\201\226\023\177\240\377a\240|\2602\260X\2701]\344\245\004\256\360\001\263\2125?\270\302\362\016\253\266\033\277p\320pq\320q\273\264\001\360\017\000\000~\001\274\325\004\322\317\004\265\325\004\321\362\004\270\243\377\006\326\235G\232\2148@\300\001\255\364\r.y\250\232\362\003\270\311\002\270h\300i\370\350\001\377[\320[]\320]e\320\375e\300\253\001\320r}\320}~\300\241\341\002\243\250\013\274\321\004\252\344\004\351\376\006\265\373\r>\270\377i\300|\320S\\\320\\\377^\320^e\320eg\320\377gh\330\010)\320);\343\2708\200\237\003\354\234\025\204\2168A\300\021\316\227\366\r/\250a\265\366\002\322\310\002\270x\337\300y\320PV\276\226\002^\320o^f\320f\244\256\001\320s\343\276\001\242\244\333\001\002\274\350\004\350\343\004\334\204\022g\227\220\016\077\077\270y\310\014\320T\356\277\003\345\270\003\377i\330\010*\320*=\270\001X\345\235\003\223\200U\301\244\n\265\2002\317\346\004yn\250\3763\033=\270\306\367\016+\250\336\216\003\377\360\002\330`\3679\310F\274\243\002Z\320Zb;\320b\204\307\003v\320v\314\216\003\376\261\004\240\224\327\004""\251\354\004\214\314\004\260\354\004\221\240 A\244\313I7s\260!\206\226\n\237\266>8\270\001\226\224*\000\350\3369\301\331\004\235\337\013\353\326\004\324\303\004\215\321\004\301\331\004\350\250\006\014\373\255I\347\341\002\340\010\222\274J\327\276g\321\323\004\251\356@\200\320\3677\251\344\004\370\200I\344\205D\233\323\047\225\357\004\322\376@;?\2709\300L\320P\217\221\003\247\244\003\377e\330\010&\240o\260X\007\270Q\270\227\247\032\245\201!\226\2665\313\351\001\327\235*\000\230\3512\327\222\004\347\330\004\275\260\004\205\347\004\276\255\004\255\252\004\257\377\004\350\232\326\004\322\266\004\356\330\004l\223\364\001l\003s\022\232\364\001s\366\301\005\264\323\004|\234\351J\275\266\004\342\206\032\034\206\2717\371\234-g\320g\334\343/\234\371\004\326\364\004\000\361\351\004\341\365\004\206\364\004\203\247\004\243\371\004\365\366\004\301\266\004\233\364\004\004\321\275\004\227\322\022~\335\343J\3308\233\274\014\365\265&\340\206K\000\201\266\031\274\367\004\326\315\004\217\266\004\335\315\004\235\274\004\311\341\004\364\346\004\030\327\354\004\316\307\006\237\333J\n\270\360\216\013\250\270G\250\207\003\374\237\344\t\253\344\t#\320#4\260A\360\314\210\001\240\233\t\311\320\001\335\327\035k\320kq\037\320qs\320s\220\271\003\311\357\004\345\336\004\000\320\325\013\202\377\004\324\374\004\236\347\004\251\233\004\226\271\004\217\271\004\324\374\004\000\335\320\004\267\315\013\245\347\004\311\344\004\275\207\022\267\315\004\240\274\004\206\334\004\272\215\374\004_\227\374\001_\004i\236\374\001iU\004\235\372\004z\254\374\001z\243\372\005B\256\372\001uB\212\330\005U\274\372\001U\005_\303\372\001w_\005e\312\372\001e\005g\321\372\001wg\005h\337\327LF\270%\266\227\003?`\320`b\320b\232\321\007\351\310\001\001\001\216\344\004\211\347\013\361\231\013\324\265\013\222\212\013\267\257\004\301\374\004\014\251\377\004\227\347\013e\003\202\253\n\244\275I\324\2230\262\356\023@\336\366\031\204\240\004\235\351\004\341\267\004\201\367\004\207\325.r\303\364\001\003r\003\270\325\004\220\310\006""\247\303G\330\275\006\241\224\010\227\300I\370\233\245\002\324\300\n\365\244\033j\320jp\320\001p\215\231\r\260\346\004\370\353\031\233\367\004\310\303 \331\333\004\353\303\004@\251\367\004\352\371\004\235\217\004\211\325\004\341\316\004\340\333\004\177\334\350H\000\227\201]\341\2331\320\300\003\234\344\003\227\313\004\333\374\004\347\353\031\260\364\004\320\354\245\004\350\361\004\212\354\004\303\336\013M\217\372\001M\003\320\232\372\004\276\364\004\223\372\004\214\325\004w\262\372\001w\003z\201\330\004\177\300\372\001\177\003@\004\200\351H\000\220\204]\344\250\003\305\306\t\277\250\033\242\367\003\363\335\024\213\354\031\331\364\004\000\301\300\004\331\364\004\256\354\004\213\375\004\352$\341\377\004\257\367\004\347\364\004\010\250\367\004\362\320\004\212\336\022A\237\372\016\355\2503\311\311\003\211\207]4\266\251\002\274\310\213O\362\377\001O\003\273\344\013\263\354\013My\262\372\001y\003\343\204\004\204\333\004B\355\310Sp\213\212T\305\252\002\266\314\n\253\252\033n\320n\254\303\001\003\320z\224\375\003\221\270\013\340\343\031\346\364\004\303\322\004\231\362\004\000\203\344\004\313\372\004\353$\241\375\004\274\314\013\366\367\004\366\335\004\335\326\004\014\203\344\004\272\306\004C\004\350\252G\261\314\010\204\215T\324\253\002\356\302\251)o\320o\227\303\001\320{}\000\250\257\002\244\271\013\353\274\022\320\261\004\214\365\004\357\263\004\257\317\004\267\314\004\000\351\372\004\313\222\004\314\375\004\347\367\004\232\365\004\340\367\004\237\362\013\360\340\004\342\345\343\004D\330\372\016\207\2547\230\201_B\300!\326\247\322\0140\250\263\262\003>\351\300\001\300\010s\310\t\341\266\002\354\356\003g\320g\315\220\003\007|\320|\267\260\003\267\272\013\376\275\022\267\330\004\272\243\004\000\260\330\004\360\351\004\267\330\004\332\372\004\227\361\013\215\370\004\337\346\004\354\240\004\350\277\223\004\240\314\013\247\365\004E\322\375\016@\300\t\357\310\034\320U\237\375\003g\320g\376\314\277\001\330\010+\320+?\270qx\207\310\003\207\317 \370\222TC\3001\241\325\014\200\251""\321\177\333\375\004\304\351\022\346\243\004\262\351$\337\321B\362\225TD\366\224\325\0162\260\323\264\003@\300\001\300\037\021\300(\310)\257\272\002\333\323\003\350\343\003\007x\320x\250\266\003\342\343\004\323\274\013\367\375\004\257\300\013\000\253\333\004\273\272\004\372\253\004\250\336\004\253\333\004\357\357\004\276\256\004\205\376\0044\242\325\013\311\342\004t\235\376\001t\003\231\363\013\266\336\004\375G\354\362\016B\300)\310<\320\335W\361\234\003i\320i\233\354\003-\320\377-C\3008\3101\310A8\322\313$\335\362\006\336\332IE\300Q\231\333\014\227\324\203\000\264\341\004\224\372\004\340\354\004\226\376\004\233\372\004\277\226\004\307\357\004\233\372\004\tH\300\324S\356\233TF\212\330\016\207\324\207\306\357\031\320\362\004\010\217\344$\304\324C\361\236TG\203\330\016\373\323\207\265\344\004\215\330\013\210\244\357\004\313\234\004\320\362\022J\357\373\016\265\324F\260\207RH\366\370\327\0166\260\255\302\003D\300A\300\377Q\300h\310i\320W]\373\320]\267\326\003m\320mv\320\001v\256\306\003\332\373\004\204\320\004\337\353\013\332\373\004\212\333\004\341\373\004\000\332\310\013\350\373\004\212\333\004\305\272\004\253\347\013\300\242\004\262\347\013\260\245\013\350\237\336\004\257\352\004\247\377\004K\363\376\016F\300i\377\310|\320[d\320df\337\320fm\320m\373\307\001\330\010\3771\3201K\3108\320SOT\320TU\331\212-\236\355\nQ\374\354(\034\204\275-\325\231\003v\320v\236\305\003\371\335\004\320\376\004\350\271\303\004\216\341\004\356\343 \177\315\322FV\250:q\260\372\324\002\227\367\006\236\367\010Y\240a\306\200J\377w\310f\320TV\320V?^\320^g\320g{\225\255\361\002\350\337\333\001\324\200<\221\325\"\007\306\311\001W\320W\277_\320_h\320h\201\233\003w\003\320w\313\372\003\255\313\004\373\362\004\255\345\004\246\342\004\353\221 \301@\376\265F\201/\331\363\010\310\202[\263\200]6\260wi\270|\274\350\001V\320V\215\312\003\375`\350\371\001\032\2508\2601\260\376\276\223\030W\250J\260a\200A\337\360\010\000\t\021\204\340\004\320\013\337\036\230g\240Q\212\336\001\n\230\337!\2305\240\017\265\336""\001\023\220\3775\230\r\240V\2501\340\335\014\005\003U\250!+\n\014\210\275L\301\337\001\013\2606\270\271\340\001\220\377\034\230Q\230k\250\021\320\375*\275\324\001\014\021\220\025\220a\277\220~\240Q\240n\272\360\001\r\217\320\r\036\230j\013\231\353\001\304\341\004\025\376\202\341\001\017\210q\220\r\230T\013\320!\351\324\001\001\277\336\004\235\010\250\337\001\323\337\001\367\033\250A\323\316\001\013\2106\220\377\023\220A\330\014\024\220E\377\230\033\240A\240[\260\001\270\273\227\001\370\336\002\324\010\026\220a\267\342\001G\377\2201\330\014\017\210t\220\3773\220e\2301\330\020\030\277\230\006\230a\230q\211\341\002\320\377\027/\250q\260\005\260Q\367\330\024\031F\002T\250\021\250\367+\260V\307\324\002\024\"\240!\377\330\021\025\220S\230\005\230\375Q\230\341\005$\240a\320\0479\273\270\026\301\322\002\020\025\220\230\340\001>\3762\000\047\260\026\260q\270\001\377\340\010\013\2101\330\014\031\374\322\342\001q\000\320\023$\240A\240\362Q\001!\203\342\001\347 \017\210s\220\337!\2206\230\022\207\001\024\220\375C\246 Y\250a\250u\260\375A\177\001\021\330\024\027\220r\232\032\0003\236\002\030 \333\343\001\236@\030\337\033\2304\320\037\210\327\001\014\300\337A\330\034!\240\207![\270w\001\270\033\013\001*\250!t\001\3275\220\003\345\003q\256\341\004\320\033\317+\2504\250\262\343\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\207\344\003z\230\021\373\230%\215 \014\022\220$\220\247a\220q\370%)\000\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN|Z\003\343A\016\230e\240<\360 \351\013\250\327\003\255C\014\213\204\004\340\010\021\237\320\021&\240a\256\343\001\346\345\001C\257\210}\230I\305`e\215\345\001\024\237\220D\320\030.\216\373\002\360FZ\372\272@\001\331Av\220V\320\033W2\260#\267@6\214\344\001)\304@\375(\014\000Q\330\021\027\220v\377\320\0357\260s\270&\300\277\006\300a\330\020,\302`X\373\260S\247A\023\320\023#\240\2271\240A\312\373\001A\320\346\001\274c\016\336\227\205\007\2104\210u\346a\020\320\367\020 \240\261\326\002e\2208\230\3277""\240!\2435\013\315\205\003U\250\317!\330\020\032\311\205\007\246\204\001\035\240\271a\204\204\001\373A5\230\003\206\204\001\027\335\220\356\326\001s\250!\243@v\260\363Q\340\263\346\001\266\001%\250}\270\377A\270Q\330*0\260\001\377\330*2\260$\260a\330\377\r \240\007\240u\250A\350J\n\307c=\01618\0171\260\024\376^\000\014\023\2203\220a\220\377v\230S\240\001\240\025\240\377c\250\027\260\001\200A\360\376\351\005\340\010\033\2302\230\\\377\250\025\250k\270\021\270+\376\301\361\002\034 \240\016\250e\260\367;\270e\252\241\001#\2402\240_S\250\005\250\\\035\000\"\237\002\233$(\014\000U\260\362\350\002\253a1\372\340\350\001\027\302a#\2404\320\047\376\331\244\002\013\2105\220\004\220D\377\230\n\240!\2404\240q|\322\347\001\375\346\001\003\2207\230)\373\"\356\224\350\002z\240\021\220\204\002\024\025\340o\020\021\330\024\355 \320!\361\320\001\377&\300\001\330\027\030\330\024\367\032\320\032\265\226\001\030\033\2301\177\230A\330\030\034\230E\320\350\002\333\024\032?\003\340\010\365$Q\330\377\020\024\220J\230a\230u\177\240O\2601\330\014\047\264 \327M\270\021\274#q\010\022\031\300\213!\340%\000t\252\205\001\212\207\001\302\206\0013\257\210a\210~\246 \003\235b\014\212\377@!\300\351\002\014\300\351\002\275A\203\000\r\377\020\220\001\220\036\230t\320\371#\270\336\001u\000C\220q\230\006\337\230c\240\024\240\230\204\001\004\260wA\260T\240\211\001\022\320\022\267\326\001\347\020\023\220\234!\235\000E\230\021\177\230!\330\014\022\220)\312\001\367\340\010\014\246\353\t\320\014\034\230\336\316\353\004L\230\t\240\337\211\002\033\230\337A\230[\250\001\270\351\002\010\r\217\210U\220!\271\204\001\313 \344\372\001\r\331\210\037\006\361\211\030\340\010\202\211\0011\200\367A\3602\327\204\010:\220Q\220\237n\240A\330\014\325 \223\352\001\007\337\220t\320\0336\357`\020\023\377\320\023&\240g\250Q\330\373\024\030\266B>\260\021\330\024~\223\352\001\047\250\034\260Q\340\004\004U\021\323\353\0011\254A\007\330@\001\333\204\005\377>\240\023\240A\330\020\025\357\320\025%\240\271\211\001\320\025&\357\240a\330""\020\227`\340\020\026~\264\355\002\001\330/6\260c\346`\377.\310\002\310!\3309:_\33004\260E\366`!\302\352\003\027N\220!\226\204\001\014\314\211\001\365&\245!\372\232 \330\305\003\320\004\035\230Q\370\306\214\010\372\353\001\255@\330\010\022\220\047\376\334\"\010\014\210G\2209\230\337J\240f\250A\200\213\002\320\023?+\2501\250G\260\323\353\002\247\354\001\237\026\240q\250\013\216\364\001\242\214\003\330\000\317*"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 36018, 111589); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35509 bytes) */ +static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notebegi\377dx nbele\337mentc\345\220\003pi\377ckle %s:z\343\211\007h\345\215\003poin\354\233\002Cto\223\233\002\351\212\005\336\000\345\213\002,\324\235\002\367doe\347\223\001t cr\373os\306\227\001proce\357ss b\365\240\001ary\267dis\352\205\001en\360\205\001g\345c\333\235\002 \266\236\003\242\224\001wro_ng di\221\000s\313\240\001\352\024\tl\305\204\002s\343\235\002dif\007fer\337\221\001\351\237\002\367\236\003\310\211\001\274\225\005yd\327B""Y\003must\336\236\001\003a \354\237\002h\004\350\237\002\345\237\003\207\232\002\330\237\002\377 Series,\255 \204\226\001%s\363\236\t \223\234\007m{is\202\242\002requ\374\214\002^\256\241\001 key\304\242\001g\212\217\001\270\243\216\002\245\003\346\205\001, 0\354\232\0011\33700)is\366\003dn\315o\341\226\005: \355\236\006\204$is\277 empty\234\241\002.\377_core.mu\347lti\337\240\004\351\227\003to \363im\305\215\001\033\tumat\367h f\023\014tali\203b.\204\215\004\244\243\001\013\003\374\241\002\026\003o\013rd\316 d\237\242\001\047\003\200\242\003\005\004\334\365\241\002?\003sysH\003thgrea\321\230\001W\003wa\352\233\002\366\027\003/_\324\244\005.pxizy\002/\304\000mmon\006\010@\262\244\001\025\010\310\224\003,\002\202\207\005\225hs\325\227\r\377\047ACACCBA\327NDS\000\005_\354\210\001am\362\000\014.\206\243\001\334\236\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\366\231\001\004\372\231\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\345\230\002S\247\252\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\370\225\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?""\010<\004\017\331nBELT\207\236\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\343\241\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\361\233\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\307\236\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\370\253\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\315\250\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\273\257\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014""\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\216\270\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\362\266\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\313\276\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\345\320\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\346\315\005n\356\315\005.__\376\321\001__\001\r\374\260\325\005\035\theck_o\343pt\366\322\004\356\301\002>\010get`\003\030\215\322\001Z\n\274\323\003\325\277\002_s\330\263\002\322\311\312\002s\220""\010\360\310\001l\240\010re\333pr\236\nst\002\013un\361i\334\313\001\304\010\336\320\006flag\000R\007\250\001\267\324\t\207&\017\007\342\323\002\013\n\332\326\007\370\266&\214\320\001\303&lookb\047ack\324&\301\317\003_m\013\016\004\270Q\013\352\317\004\216Frun\232Fs\000\325 \241\322\n\r\n\261\022/\001\242\325\010>\n\240\330\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\237\313\002\221\325\001IMI\300\000\000\312\266\004\000\007\276\266\013\323\313\t\327\313\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\367\314\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\207\320\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\345\312\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\204\322\001MA_\376\213\322\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007""\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\351\321\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\334\343\001\317\335\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\207\327\001\213\327\002F\000\003*\006O\007CHFJ\024\270\327\003\276\327\005&\t\355U\370\355\327\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\321\350\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\236\330\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\362\352\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323""\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\362\356\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\224\360\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\352\361\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\363\363\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003""\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352""\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245""\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371""\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313""\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331""\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017""\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010""\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004""\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010""\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%""\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\300\237\205\002\233\205\003\302\204\003\000\t\273\204\013\336\322\002ti\377on__call__func\n\002F\001\005\377_check_o\357pt_i\332\322\001_vawlue-\010get\003\030\376.\003price_s\377eries_naYm\003\000W\007lox\000_\001\014\217data\222\0100\001\000\014s\377tr__ARRA\377Y_TYPES_\223_I\356\312\002\016\002S\006\013\336\272\002_\357SERI%\000DEF\357AULT.\000PAN\377DAS_DATA\177FRAME__\013\004~#\004_POLAR\023\013\374\014\003\030\006yx_PyD\377ict_Next\337Ref__\265\325\001UN\177CTION_NS\000\326\227\000__\331!_\004\000nn\237otate\010\000\353#_\374\351-\3314_class\275_\352 item:\002o\373pyC\001deepc8\004\005\205\001d\000doc^\001\312A\374f\001\237Aflags_y_\232QJ\tinit\231\001z\237V_\251C_mai\262`?__meta\226\003\334\000\337modul\330\002mr\037o_ent\354B\365\000\273B\366\004\001ew\367\001prep+ar\201\"p\277 v\243\231\002\220!\357qual$\005red""\243uc\245\"+\000\351@_\276`t\331_B\005\372B__\243`ve\263rs\275\204\002\013\000es\271\002u\237nicod\342!\232\204\001d\362\251\245\003s\272\212\002\230 s_is\377_corouti{ne\316\000okupF\001>\345\204\003succe\351 \376`v\274\"unR\000id_\001\014=s\003\013reti\257\000\215\001\001g\241\331\003\223\331\001\004\010\325\331\002\030\004\265\330\007)\004\000\247\331\017B\004\227\331\022\024\005\233\331\017x\004\333\000\265\234\010\232\r\005u\212\234\004_p\215\234\002\270!i\264\217\321\006\306!r\337\247\003_c\334\332\002_p\261$\363!\343\247\002\351!set\027\005\211s\370\247\004\016\006oe\014(\001a\020s\376\200\235\004a_close\177a_higha\325`\327wa_\342\215\001a\231\004sa__real\000\0030\007\003\3771a_volum{ea\241@lera\270\210\001\274\000\t\274\204\001long\004\rs\317hort)\t\025\rma\361x\000\020&\016B\003ppen\357darg\000\000sar\377raysasci\377iastypea\177syncio.\331f\357satr\355#avg\376\366#bbegidx\377bitbytes\3572str\357#sti\357ckcl\224\204\001in_\237trace\265\335\001\247 n}e\252\"colle\237\212\002\375s\010\000umn_st\351a0\000\222!n\020\000pyd\303de\371\204\001\266E\253\212\002\373\204\005de\337scrip\356\212\001di\237splay\212\212\002\221\205\001d\333oc\325 nt\316\"em\307pty\341\000\241\000\347\000sw\237ithen\364 \356 e\177factorf\352\000\017d_ma\356\001\006\003\320c\024\001\373k_\002\007limitx)\001!\007\"\004irst-\004glag\233\210\002\237\210\003lo\214\206\002\217dict\275\210\002\342!\306\210\002i\307nfo\317\210\002\234!\330\210\002ob\003je \003\300\214\002?\003\274\214\005\345\213\001\311\214\005\201s\243\214\001\273\214\003\253C\006\007\213\214\002\302\214\001pf\261\340\005sg\355\337\001\000\002sh\350\340\002ohelp\243\204\001hi\203\256\001\337ylenh\335\264\002ii\335d\304@imp\333`_e\377rrorinin\007dex\247\001c\t\266\215\003\367\214\001\000\007us\205\215\025i\330\243\003is_\203B\336\356\212\001skey\000\000sk\375w\360aleftba\273rs\205\000gth\274\215\002ln\334\341\004low\000\000er\224C\377maximumm\373ax\356\206\003memom\333in\006\004is\200\000gm\362\001\003_[\001\273\212\003msgm\377ul""tiplie\363rn\254\216\001\260\216\001dtup\376\366\000annbdev\372\000\002d\006\003upno_\212\361\000s\213\260\001_\332)\261`\261\217\003s`\006\001\274\217\006\010\003\347\342\002\025\001py\302C\377offseton\013re\320\212\001e\357\225\001\363\225\001\351\245\001\226\210\002\242\367\225\to\301\343\001\215\220\006\220\220\014s`\007o\277rdered\311ao\377utoutaro\363on\203\246\001\004\005upou\377tbearpowqe\221\213\001\226\206\003\021\001ull\r\005\377doutfama\366\002\002st\t\003stko\017utha\304\210\002\005\002\310\210\001\016\002\360\205@\026\002\300\002\345\213\001phas\321e\356\213\002\266\247\002\000\007_\350\220\001ou\357tjouJ\002lea\261d\230`(\001\305Bba\254\000u\017tmac\200\001\003\001\201\204\002\014\003\177signalo\033\001\356\227\002max\010\002xid\372\000\006xZ\005middlmeH\005in3\001in#\004\374\004\002 \007nusvio\377utnbelem[en\267!pl\016\004p\305\"/put_\322\217\002o\261\346\002\324\222\002R\000\010s\021\003\000\004s\265\223\001i\302!\377quadratuYr\212!\336\212\001ou\352\231\001l\341\t\370\365\212\001\241\n\206\213\001upper<\207$\232$slow\226A\004\001\306\207Asm\260\001\003\000\217&su\277pertre\277\"s\017wing\234D\007\002\240C\027\005~X\006pandas\213\207\002\360\220\207\002\257\224\002\225\207\007\244\207\002spen\373et\374\213\003perce\237ntile\325\215\003\333\215\003s_polar\003\000p\373\224\002\212\200\225\0020\206\225\0021\205\225\t\214\225\016\335\225\003s\364\260\225\002\003\000o\275\001yran\243ge\333\213\001\220\215\001\224\215\0010\231\215\0011\377replacer\177esultsr\216\000\354\271\254\001\357\204\001t_\377\220\001rig=h\246\207\002roc1\362\216\003\007\000\3712\001\006\014\004unssc\377hemaseco;nd\271\004elf\256\226\003\362\216\001\000\222\227\006\361\214\001\203\217\001\302\211\t\006\007\331\226\002\242\217\001\304\211\007\007set\373\221\005\254\270\003\242\215\001\263\204\003\272\213\003|\277\204\003\256$kip_f\230\213\001\360\327B\333\213\004\006\003\320$lowk\300\r\010\346\213\005\210a\351\213\002\221aR\004lo\371w\205D\241\215\001level_start\300\230\002s\350\214""\001\377cmethods\337tddev$\005r2\332\222\216\002s\201\237\002sy\302\256\003ta\317lib.\356\223\001\005\000th\377readingt\377imeStamp\250\005\001\323\221\003\000\0071\013\0072\026\0073\377to_numpy\364\252\217\001\256\217\001_\334\223\004upda\013te\000\003_\351\214\001\355\204\002\354\231\002\253\003\362\344\224\004v\375\215\003\204\221\003warn\334\000\001\206\273\001wma\326\222\003\200\001\377\330\004\007\200u\210C\210\377q\330\010\020\220\005\220Q\377\330\014\r\330\020\026\320\026\377+\2501\250A\330\014 \177\240\013\2501\330\010\017\035\000\377\004\013\320\013\034\230A\230\275Q/\003y\220\003\220\023\004\t\367\022\220#7\000\010\026\220aA\330\000\t\000\025\000-\000]\235\200 \340\330\002\377\004\014\320\014#\2409\250\377C\250x\260q\330\004\n\377\210%\210q\220\001\330\010\377\027\220z\240\021\200\001\340\377\004\017\320\017#\2401\330\357\004\013\2101\013\001\022\220,\377\230a\330\004\025\220Q\220wo\240Q\014\003.\240\001\r\002\337\320\026\047\240q \002\320\022\337&\240a\240q\017\004-\250\366#\003\320\022\035\000\250\r\260[\357\300\013\3101+\004.\250a\336+\0042\260!\260\016\0059\270\376x\001#$\360&\000\005\014\337\210;\220a\220\231\000\r\210\277T\220\026\220q\230\336@\r\377\210]\230!\2308\240:\377\250T\260\021\330\004\r\210\377U\220\047\230\022\2307\240\377\"\240A\330\004\017\210w\277\220e\230?\250\"\354@\004\377\016\320\016\037\230q\240\010\365\250\225`\021=\000r\230\024\230\377Y\240k\260\024\260V\270\3771\270I\300]\320RS\377\320S_\320_`\320`\377o\320oz\360\000\000{w\001B\002\004\000B\002H\003\001\367H\002I\n\001I\002J\002\356\362\003i\230q\207%#;\27071\360(f;M\270\277\000\203\200 \377[\320[\\\320\\h\320\337hi\320ix\243\000y\001\335D\242\001D\002K\251\001K\002\335Q\260\001Q\002R\267\001R\002\271S/{\247\000]\320]\247\000jw\320jy\320 z\001E\317!\227E\002L\326!L\234\007\354 S\333\002T\310/$%\301\2028\320\033\277+\2502\250Q\330\356L\027\377\230\002\230$\230i\240{\377\260$\260f\270A\270Y\177\300m\320ST\320T\367@\177a\320ap\320p{\372@\227|\001C\371AC\354G\217`J\344\342 \357""\204\003j\350\204\001\206\205\003$<\2709A\302\2028\237\003]\270!\202\200\"\310\2023\3766ub\320bc\320co\373\320o\322 \177\360\000\000@t\235\204\005\227\204\004X\334\205\001X\002Y\343\205\001oY\002Z\002\3110\320<\227@\347U\360*\310\2066\330%-\300q\356\344\202\"`\320`\252\204\003v\320v\177w\360\000\000x\001G\202\207\001\351G\312\205\005\246\004_\227\207\001_\002`\356\236\207\001`\002a\250\020=\270Q\356\326\202>^\2701\234\204\037n\320T\376\343 d\320dp\320pq\277\360\000\000r\001A\264\210\001A\352\335\205\005S\302\210\001S\334\047\360\000\000\267Z\002[\333/%&\257\205:,\357\250B\250a\334\205\r\030\230\022\377\2304\230y\250\013\2604\377\260v\270Q\270i\300}\377\320TU\320Ua\320a\376\232`q\320q|\360\000\000\355}\273\210\005J\002\336\205\004\360\000\000wK\002L\342\211\004k\240\021\360\213\005\357%=\320=;\000V\3602|\325\2028\245\001m\270=\310\001\213\207\013\377\024\320\024%\240Q\240h\376\301\001\022\320\022#\2401\240\215H\266\213\001\021\220\260\022\245\207\003\277\000}\377\320}~\360\000\000\177\001\245N\252\213\001N\306\204\005\223df\277\213\001f\273\002g\306\213\001g\002r\315\213\001r{\002}\324\213\001}\002J\003\320\207\001\273\003P\003\001P\003Q\n\001Q\273\003\\\021\001\\\003g\030\001g\273\003r\037\001r\003x&\001x{\003y-\001y\003z\003\364\215\003\336\222$:\320\025%\377\215\002%>/\270a\360,\333\200\320>;\000W~\254\210\001\016\210[\230\001\230\222\220\002\177V\2206\230\021\230!\236\220\001\242\251\220\005V\341\220\001\235\220\021\213\210\"&\243\007b\337\320bk\320k\371 x\320\351x\335\215\003\241""\220\004T\271\220\001T\002[\352\300\220\001[\355%b\316\220\001b\002c\366\331\211\017\047(\255\215:.\250b\260\376\302\205\014\021\220\032\2302\230T\377\240\031\250+\260T\270\026\377\270q\300\t\310\035\320VwW\320W\251\210\003s\320s\263\205\003\325F\343\221\001F\214\217\005M\361\221\001M\002\205N\340\221\004m\354\223\007\235\003\237\2016\202\210\0346\340j6\226\210\010\303 \357\2139\277$\r\320\r\037\036\230a\230x\267\225\001\000\t\251\201&\264\337\221\004\242\204\013W\312\224\001W\002\374Dh\356\330\224\001h\002n\337\224\001n\002o\356\346\224\001o\002p\347+9\220A\177\200\001\340\047?\270q\244\220:\346\230a\r\270\367\221\016\211r^\320^\007_\320_\314\204\003\202\222\003\370\215\004\327\211\004\317\204\004\370\311\207\006\376\227\003\231i?\320?V\320\177Vm\320mn\3604\373\2168\376\257\003Z\300z\320QR\330\377\004\027\320\027(\250\001\250\375\030\343\227\001\030\320\030)\250\021\317\250(\260!\n\013\331\204\024`\320\377`j\320js\320st\217\360\000\000u\224\216\005\324\227\004\247\226\004\\\242\345\227\001\\\213\211\005\237\213\004\223\211\004~\201\230\001~\273\002I\251\213\001I\003Z\260\213\001Z\273\003`\267\213\001`\003a\276\213\001a\273\003l\305\213\001l\003w\314\213\001w\377\003G\004\360\000\000G\004\335M\003\001M\004N\n\001N\004\373O\004\236)\320\013\036\320\036\3772\260!\200\001\340()\336\245\225:/\250r\260\250\230\016\033\230\377B\230d\240)\250;\260\377d\270&\300\001\300\031\310\377-\320WX\320Xd\320\177de\320et\320t\207\223\003\374\322\221\004\350\206\006\360\000\000N\002O\"\330\231\004n\277\232\001\350\233\003\240\000.\305\2228\220\020\374\322\216\027\251\017/\320YZ\320Z\377f\320fg\320gv\360G\000\000w\217\233\005\211\233\004\335\214\004P\250\233\001QP\347\211\005\360\216\004\310\214\022E\363\216\001E\357\216\005\325[\201\217\001[\302Eb\217\217\001b\003\361c\333\216\004\376\004\331\216\006(?\320?\361W\310 \323\224:\257A\034\270]\310\374\341\227\016\245O,\320Vc\320c\326\324\223\001\320q\274\220)h\262P@\320\177@S\320Sk\320k\250\221\003\366\354\226\006\3608\235\202<\035\270m""\310\227=\320X\324cu\255\222%\217\204\022d_\320dq\320q\302\222\n]\200\237\001w]\002^\207\237\001^\002j\216\237\001\227j\002k\225\237\001k\246\220\005\312DL\356\313\222\001L\003R\322\222\001R\003S\356\331\222\001S\003^\340\222\001^\003i\356\347\222\001i\003v\356\222\001v\003|\356\365\222\001|\003}\374\222\001}\003H\356\254\206\001H\004S\263\206\001S\004^\356\272\206\001^\004d\301\206\001d\004e\316\310\206\001e\004f\267\206\004\200m)*\336\342\234:0\260\002\260\347\233\016\034\230\377R\230t\2409\250K\260\177t\2706\300\021\300)\331!\377Y\320Ye\320ef\320?fu\360\000\000v\331\227\005\222\241\004\340\362\224\004\200\205\006\217\243\006\247\243\005aC\021\220\036\314\270\242\007\207\034\320u\263\222\003\200\037\026\220\377f\230J\240a\330\004\010\177\210\007\320\017\037\230q\361\244\001\347q\230\006\333\244\001\347\244\003)A\320\377A[\320[u\320uv\363\3600\315\2338\352!-\270\177\310\337o\320]^\330\315\245\001 \240\337\001\240\030\250\021\000\t\330\004\003\021\220\3542\364\207\006\246\221\004\216\234\004\325\232\004\345\222\004\325c\254\244\001c\314\216\005v\272\244\001v\002U|\301\244\001|\354\227\005H\360\227\001H\226\204\005n\340\207\032o\240Q\354\246\001;\220\227\246\001{*+\314\241:1\260\022\260\272\234\016\377\035\230b\240\004\240I\250\377[\270\004\270F\300!\300\3279\310M\277\211*Q\204\246\003\320\026\271&\274A\224\250\003+C\300\317\2459\320\177\0332\260\"\260M\300\373\245\016\377\036\230r\240\024\240Y\250\377k\270\024\270V\3001\300\377I\310]\320Zg\320g?h\320ht\320t\220\205\003\325\244\004\230\203\213\004\350\221\004\262\207\013_\002\231\251\007\305\251\005,\275-\247\244:3\2602\260\323\244\016\037\377\240\002\240$\240i\250{\377\270$\270f\300A\300Y;\310m\204\2471\320\026(\255\251\001\357\252\0038\245\000\313\2419\241\004\020\220\016\323\224\005\000\010\203\021\220\216\200!\321\240\004\240\237\004\353\215\004\265\221\013d\256\257\252\001d\002m\266\252\001m\325\233\005t\316\304\252\001t\002u\250e\320\002\025\220\347V\2309\244\253\001\357\206\007\026\220a\317\220v\230Q\324\254""\001\002\027\013\210\333<\220\333\254\00101\336\247:7\260\375r\341\252\016\320\021$\240B\240\377d\250)\260;\270d\300\177&\310\001\310\031\320R\216\254\003\312\265\235%W\214\205\005,\362\254\001\250\256\00345\356\210\251:;\2702\254\226\016\320\021(\377\250\002\250$\250i\260{\377\300$\300f\310A\310Y\034\246\217\002\320\2433\320\0260\271\233\001\326\257\003\333\242\003\376\302\255\t\n\210+\220Q\220a\362\267\235\0056\214\243\001\357\256\t\030\270\032\300\3473\300a\346\256\030\270\255\"[\320P\017S\320SY\352\222\002\360\220\003\322\242\006\353\236\013\010\314\235\004\324\242\004\317y\220\232\257\010\265\244\001\221\230\002\300\250\t6\227\200A\035\300\346\245\016\026\220\320\260\r\312\020\354\325\240\002\357\225\013Z\002\226\247\004\360\000\000U[\345\220\005u\202\261\001u\300\213\005B\261\244\001\367B\003C\270\244\001C\003D\003\306\374\260\016>?\242\262\n\200\202:\231\256&k\320\377QT\320TZ\320Z[\373\320[\277\222\003r\320r~\320\201~\360\253\003\200\244\004\327\004\371\243\004\214\246\004\201\235\004i\200\353\253\017\304\242\003\300\203F\276\256(\274\017\310\203?\247\260\010>:\340\204\001\360\212\200L_\270A\307\261\037\230L\267s\320s\214\200J@A\235\267\n\014\223\210K\234\267\t\243\207\0225\203\253\001\356\245\027Q\356\257\200\"V\320V\344\264\003f\320f\024\304\236\"\242\222\004i\334\267\001i\313\227\007\313\263\016\316\000\366\345\206F\320\033\373\250\004\023\320\023$\357\240A\240X\226\265\001\021\320\021\177\"\240!\2408\2501\366\223\001\016\374\250\017\013\320S\254\200.\305\243\022\322\252\004\365\234\004\335O\366\254\001O\003U\375\254\001U\003\235V\204\255\001V\003W\320\254\004\311\251\004?}\230\233\240\001@X\320XY\340\203I\362\203\253\001}\232\204\017\331\037\360\000\000t\320\257\242\014\353\230\013\234\233\004\316Dp\270\273\001p\002:\376\225\004w\306\273\001w\002x\241\253\017\327\227\0014\350\273\003\314\263\004\177\361\273\001\177\002\203\237\004\306\242\004=h\320\242\001h\004i\004\307\244\n\235\211<\376\223\246\002\320=O\320Of\320\201f\231\272\003\277\240\004\226\247""\004\262\227\006\263\271\r\307\252\017\033\377\320TW\320W]\320]?^\320^g\320g\346\244\003\263\265\004\272\265\235\004q\312\275\001q\002G\362\260\001G\273\003_\371\260\001_\003s\200\261\001s\273\003J\260\244\001J\004K\267\244\001K\273\004W\276\244\001W\004X\305\244\001X\273\004g\314\244\001g\004r\323\244\001r\273\004y\332\244\001y\004\177\341\244\001\177w\004@\005\323\267\001\005A\005\367\246\016\363BC\273\213I\300\244$+\320UX;\320X\276\250\003h\320h\256\233\002\256\243\001P\305\273\004\243\276\004\212\266\004\314\237\004e\341\277\001e\313\237\005\022\217\261\004m\364\244\017\313\003\r\312\210\007\326\257\006\201\301\001\3737\240\322\257\nU\260(\270*\323\300F\340\242\001\250\2102%\247\266\004{\320\201R\203\200K\256\275\010\237@\246\301\013\304\n\321\222\0226\r\310\320\302\024\320\033\330\267$\200\200N\223\270\010\313\003\250\231F\360\213\014\215RE\230\20065\251\264\004\013\003\320S\245\203K\305\t\370\211\002\306\267\t\217\222<\252\253\001\375\033\245\217\001\023\220>\240\021\240\377(\250!\330\004\022\220.\346\200\241\005\021\220\250\253\017\304\205\014s\320s\000\304\277\003\335\274\004\257\253\013\246\246\004\314\205\004\352\207\004\363\211\006\312\276\001\225\002\262\224\004K\370\271\001K\363\213\005\356\271\004]\316\215\272\001]\003^\360\251\013\203\214\003CD\374\213\224I\323\245$;\320VY\320Y\016\220\310\003i\320i\212\300\006\354\306\004\306\305\004\343\266\004\370\214\300\004\353\273\004\300\207\006\360\000\000m\002\303n\002\204\246\016\302\014\356\220<\331\266$\033\320\001T\203\200K\224\267\010\237@\233\257\t\272\227<\225\251\004\323\262#\240\242\251\017\206\2021\376\265\004\351\231\004\270\246\004A\241\277\001A\351\003\326\253\004\233\204\004c\266\277\001c\003d\356\275\277\001d\003o\304\277\001o\003z\352\313\277\001z\303\215\005P\202\263\001P\004Q\236\211\263\001Q\004R\004\211\252\t\364\262\010C\177Z\320Zq\320qr\253\277\n\047\016\210k\244\274\t\334\235\0227\302\213\027\206\303\001\357l\270,\300\353\302 {\320R\000\325\204\t\330\253\003\360\315\004\340\275\013\236""\307\013\267\270\004\266\277\004\257\277\004-@\314\301\001@\003\253$B\230\301\013\263\320\001\243DE\242\316\001\331\211E\324\274\034U\364\264\004+\337\320UZ\320Z\327\313\003j\320\017jw\320w\261\316\003\203\315\004\366\274\004\234\301\004`\311\307\004\250\303\004\277\244\004\233\272\006\334\270\016YZ\326\235\023n\351\230\016\025\240a\362\277\tT\260\256\241\003\037h\310j\320X\261\222\001\377\320;\253\241\014\377n\320ns\320sy\320\001y\300\321\003\231\320\004\213\320\013\311\261\004\300\311\004\377\273\004\376\302\004Z\301DF\233\305\001F\003\251\223\004H\330\237\017\301Y\350\310\003\217\322\006\211\307\n\254\243\006\300\200IM\270\007\034\300Q\346\272%\344\241\036\213:\275\214\013\300\307\0044\214\273\013\204\242\004M\303\307\001M\003\370\206 \330\225\004~\213\207\006\360\000\000R\004]\253\273\001\353]\004\333\227\004x\271\273\001x\004~b\300\273\001~\334\225\007\347\324\t\262\273\010Z[\243\203Z\376\307\2425o\320ot\320tz\003\320z\304\322\003\355\323\004\212\325\006\350\323\002\263\316\013\371\300\004\370\370\307\004\355\211\004\361f\360\000\000H\003\003I\003\352\322\016\374\000\270\246\022\270\205D\267\324\006\246\236\t\002\261\236\n\220\272\324\017\373\244\014\313\200=\376\205\004\325\270\004\344dMX\265\314\001X\003\377\213\004\370\213\004u\312\314\001\345u\333\270\005w\240+\307\236\003Zr\360\317\000\000s\001\243\330\004\247\264\004d\0020\311\265\n\350\205M\366\322\007\366\317\001\330\004\320\305\t\200\201I\024\212\323\004\317\314\004{\266\333\001{\364\265\005\356\265\004\274\302\004\350\260+\223\273\004\275\216\004p\217\317\001p\003{\356\226\317\001{\003F\306\302\001F\004R\352\315\302\001R\207\235\005Y\333\302\001Y\004Z\t\004\375\327\n\245\306\003Z\336\303\003\360\315\004\323\233\004\312\237\004\317@\003\3606\274\335\010\222\201S_\270_O\310?\320Z\356\332\001\330\317\341\005!X\303\267\002\335\341\003\000\t\023\002\021\213\2045\345\270\013\360\322\321\004\246\221\004\304\321\013\315\226\006\360\000\000^K\003m\361\321\001m\312\321\005\203\276\004B\257\305\001\027B\004C""\266\305\001C\253\305\005\342$\231\211\004\325c\322\305\001c\220\276\005o\340\305\001o\004\325z\347\305\001z\246\211\005D\211\240\001D\005\275E\220\240\001E\005F\005\236\333\n77\220\047\230\306\341\001[\\\324\210\\\337\234\047\367U\320U\310\337\003e\320ep\377\320pu\320u{\320{\360\213\326\003\214\316\004\321\273\013\344\330\006\360\000\000a\241\002\332\244\004\343\204\004\220\257\004\334\204\013J\361\221\017\\\361]\323\212\\\300\322$\312\250\014q\320qv\037\320v|\320|\352\322\003\354\332\004\337\313\013\200\261\324\004\274\321\004\307\244\004\327\275\004\210\261\004\236\312\004\322\326\004K\204\303\250\013\265\345\001\\\274\307\003\236\342\004\226\327\004\256\224\0072\374\304\205Z\376\324\001\177\270o\310_\320\001\\\257\323\001\350\277\031\351\252\036\2333\333\326\004\314\244\004\360\271\004\200\244\263\004\212\305\013\370\246\004\301\314\004\264\230\013\207\206\004\221\305\004I\356\313\314\001I\004T\322\314\001T\004_\352\331\314\001_\214\247\005m\347\314\001m\004n\216\356\314\001n\004o\335\314\004\212\326\004\263\300\003]\363^\360\306\215[\363\324\004\020\320\020!\370\313\240\005\310\255\013\214\251\036r\320rw\320\341w\277\333\006\350\347\004\247\331\013\260\326\006\360\000\000\241c\271\333\014\201\216 \357\210\004\347\251\004t\365\333\001t\047\003u\003\261\321\n\321\274\003]\336\314\003\323\275\007>\334\200_\016\270n\310A\262\253.\2403\360\335\333\004\200\277\004\274\321\013\377\214\007\000\000@\003\320\375\257\004\312\321\004\303\321\004\360\335\004h\226\336\001h\003Ki\003\316\323\016]\216\343\003\302\223\007.\367\214Z>\323\331\001\017\270\177\310a\225\307\031\252\2034@\211\327\004\233\340\004\350\237\013\330\272\013\314\314\004\230\245\004e\263\340\001\027e\003k\272\340\001k\355\323\014\302\215\004\310\256\004\230\356\237\023\313\332\004\322\307\003^_\343\226\\\204\2563s\037\320sx\320x\270\273\006\364\356\004\272\340\004<\302\331\004\266\224\007\000\000d\002\240\326\013\335\322\0040\337\247\004\265\225\006\254\361\003\320\324\010_`\342\230\\\263\2473?t\320ty\320y""\334\251\n\225\346\004\300\276\333\004\263\352\004\347\305\004\342\212\013\272\264\004\245\227\022N\003\000\214\317\016\200 \346\204[\374\245K\327\200A\352\270\022\276\332\013\225\323\004\272\213\224\004D\317\332\001D\004O\326\332\001O\273\004Z\335\332\001Z\004j\344\332\001j\273\004p\353\332\001p\004q\362\332\001q+\004r\321\246\025a\213\242\002,\245\226Z\243\315\026\374\360\365\006\265\315\017[\320X[\320[~\212\353\003k\320kv\320v\371\361\003\200\365\365\004\377\361\004\251\363\004\243\357\004\307\351\013\273\347\004\340\217\013N\202\330\351\001N\332\273\005\336\331\004\316\351\013\260\251\004\316\351\004\177\356\211\352\001\177\003@\271\335\001@\004A\231\004\232\316\013\374\347\003wx\316\245\036\265\264\014\025\343\240g\375\363\001\234\310\017\362\245\005e\320e\007o\320o\330\323\001\252\370\023\265\240K\236\334\004\202\352\004\000\357\337\004\333\330\004\245\334\013\254\315\004\305\251\013\243\354\004\254\334\004\245\334\004~\243\215\006\360\000\000i\003j\224\241\017\313|}\263\372\n\013\301\372\005\210\246\027\026\240\371u\260\372\001\324\312\r4\300x\310z\377\320Y\\\320\\d\320d\022\337\247\003t\2365\303\322\001A\312\325\001\251\327\010\350r\367\\\320\\\241\364\003l\320lw\003\320w\363\372\003\272\361\004\373\253\013\270\354\004\274\351\022\212\333\004\240\270\354\013\263\250\013\337\300\004\212\333\004\333\217\004n\377\356\001n\366\272\256\005p\003\215\323\016\360\004\000A\367\002B\002\317\200p6\260b\270\375\001\264+\320\021#\2402\240\377T\250\031\260+\270T\300\377\026\300q\310\t\320Q\\\237\320\\`\320`\232\341\003\271\371\001\320\001{\211\361\003\322\254\013\365\311\013\267\365\004\364\274\004\235\361\004\375\347\004\000\226\361\004\360\344\004\302\231\006\217\363\001\366\344\005\237\341\004\360\344\004\235\361\004\304\323\224\006\376\377\004+\320\304\001\236\372\002\301 C\002\235D\320\200q8\270\002\325\372\001\256\334\t\320\377\021%\240R\240t\2509\377\260K\270t\3006\310\021\377\310)\320S^\320^b\003\320b\317\376\003\354\357\006\277\366\004\370\367\004\376\377\004""\243\347\013\000\266\314\022\341\301\004\340\224\013\263\246\013\336\363\004\271\263\004\376d\215\227\006\226\244\350\001\003v\204\204\005-\276\375\001\300%D;\002E\230\203q9\270\022\206\371\001\272+\377&\240b\250\004\250I\260\367[\300\004\346\300\001\3109\320T?_\320_c\320c\352\377\003\326\357\006\000\344\351\004\214\364\004\227\361\004\373\373\004\327\342\004\206\355\013\220\312\004\246\366\004\340\310\263\013\346\255\004\330\213\004\204\225\013\355\250\031\320\026.\334\232\371\001\210\204\005E\002F\340\205q:\270\373\"\270\207\211\014\320\021\047\240r\377\250\024\250Y\260k\300\024\377\300V\3101\310I\320U\377`\320`d\320dj\320\217jk\320k\246\352\006\276\304\004\345\261\007\000\207\000J\002\276\304\013\303\314\022\333\366\004\216\266\006\360\217\000\000B\003\231\216\004\202\313\004\237\345\004fF\215\371\001f\003\376\250\004\246\345\004\317\354\004x\224\211\005Y/\302\366\001\320\206\005z\001\314\256\007(\277\250\034\000\311\215O\224\3135\330\243\023\231\260\004\342\270\004\223\265\013\247\362\004\204\326\004\320\366\325\013\306\315\004\300\373\004\321\311\004j\330\373\001j\003\205q\337\373\001q\222\357\005\276\373\006\272\373\003\257\370\007\360\277\006\000\005\017\320\016\361\363\001q\377\330\004\007\200x\210s\220\377!\330\010\t\330\004\t\210\377\021\330\004\022\320\022\047\240wq\250\004\213\375\001\025\220Q\307\204\002\273\200\001\036\024\017\210q0\004\020\353\320\020\316\375\001a\267\376\004\360\n\000\373\005\0269\002\320.@\300\001\357\300\027\310\001\313\306\001\020\220\001\376\371\345\001\005\210V\2201\220E\357\230\021\330\010\220\253\001\001\230\026\377\230q\240\005\240W\250A\374\244\320\001q\002-\320->\270a\373\270q@\r/\320/B\300_!\3001\300A\336\371\001Q?\014\377\016\210g\220Q\220f\230\177A\230U\240\047\250\021\357\303\001\371\025{\010\324\377\005\360\014\000\005\020<\267\001\215\000\220\031\230!\226\337\003\t\001\274\370\377\003\234\347\002\210q\320\020\306\344\002\340\377\004\022\220)\2301\230A\374\020\004\276\003\016\220a\330\010\020\373\220\013\024\002\010""\013\2104\210\377z\230\021\230\047\240\021\330\377\014\024\220A\330\010\014\210\377G\2201\320\024$\240L\377\260\001\340\004\r\210Y\220\253a\220\353\"q\025\004\220K\002\t\373\220\021!\010G\2506\260\021\373\260!\217%\035\240g\250V\347\2601\260L\000\244\003&\240\001}\240\262 \013\2105\220\t\341\373\002\377\014\020\220\002\220%\220s\377\230%\230q\240\001\240\024\376\352\213\0027\260\"\260G\2701~\343\345\0021\340\004\016\210i\225\325\003\376\330@,\250D\260\t\270\021\177\320:L\310C\310q\304\n\375\n\202a\013\2107\220#\220\177Z\230t\2401\330\014\374@\276\244\005I\230R\230q\303\001W\377\220A\220T\230\025\230a\323\230q\337\374\001\013\001Q\220%\003\220\3672\220U\313 1\330\004\024?\220D\230\005\230Q\323\351\003\316\376\002\376\360!\022\220\037\240\001\320!\3773\2601\3204D\300A,\333\271\001\336b(\250\240 \005\313!\322\001\253$\230\327 \021\223B4\237\352\001\030\177\230\t\240\021\240$\240\355 \177\032\230+\240Q\240d\213\366\002\177\010\026\220c\230\021\230)\002w\032\230#j\000d\240!\315\352\001\331s\316@6\000\200\001n\002\320\021\377*\250!\320+=\270Q\377\320>N\310e\320ST\367\320TU\222\346\0042\260!\340\317\004\013\2109\317\002\230b4\210\377q\220\003\2201\220G\230\276\365\337\002\007\200w\210c\236A\017\357\210t\2208\201`H\240A\337\330\t\021\220\023\336A\017\210\374\217 \261\002\001\330\010\030\230\013\377\2401\240D\250\010\260\001\376p\006+\2501\320,>\270\277a\320?O\310us\000\320\343UV\213\347\004\377\000b\024H\230F\271\240\222\000s\003\025\220d\326@x\237\240x\250y\270a\000\201\0011\233\220C\344\330\001\340\004q\005\304\311\001As\230T\331\353\001\351\006-\250Q\362\205\002\277\320AQ\320QV\202\376\002X\356\205\350\0045\260Q\334\024J\230f\372\203\366\001\024\\\002\004\320\034.\250\377d\260&\270\002\270\047\300\347\024\300Qf\007\203H\020\220\004\326\346\204\001\020\220\255F\031\315\206\003\021\200\377\001\360\020\000\005\010\200u\277\210B\210a\330\010\242\207\002\013\377\2101\210A\330\014\020\220_\005\220_\240F\220A<\206\353\001\373\330\014\330!2\220Q\200\001\016\200\231n\230?\250""\210\365\016\223\2764\223\367\004\245\374\004P\257\343\004\344\372\004\355\224\013\274\276\031T\365\372\001T\361\372\005\360\301\234\006\350\341\r\247\233p\336\347\002\016\320\016\037\376\215\362\007\030\230\022\2304\230y\017\250\013\2604\270\323\007\306\263\037\200\375\004\236\355\022X\232\342\013\302\352\006\311\375\001\002D\221\375\001D\303\252\005\020\301\333\004\267\316\023\236\322\007\322\277^1\330\340.\233\300\023\344\362\004\000\252\300\013\370\263\004\332\354\004\323\354\004\327\335\004\355\273\006\271\337\r\307\301\\\000\326\224\002\373K\276\2604\315\375\004\356\260\013\233\331\004\313\335\004\304\335\004&\231\233\013\177\002\361\332\r\367\250^\001\337\344\r\344\316\036\200\274\251\027\331\353\004\317\251\013\232\350\004\355\306\004\225\311\004\266\260\013A\000\276\251\016\344\351\025\207\244\016\366\312\027\273\334\001\365\243\025\243\356\002\345\206\013 \323\200!\273\241\030\323\246\004\246\3166\237\370\0041\223\213\025\243\357\003v\206\357+\320\033\264\2001j\320j\230\326\006\020\230\372\004\354\307\004\260\250\004\345\307\013a\202\326\016\264\244p\240\241\002\000\265\212\013\276\307\022\234\277\014\314\316\020\367\376\004\203\374\004\273\357\013\231\257\013\350\201\343\004\245\302\013\331\324\004S\233\374\001S\003Y\002\242\374\001Y\352\214\007\263\210\032\353\246c\362\233\002\366\377\n\227\334\022\016\243\332\tt\320t\305\272\020\254\376\004\313\232\031\221\353\004h\373\326\013\264\351\004\347\316\004W\304\376\001W\003\316\304\013\303_\003\321\263\r\207\251p\373\206%\211\325\tu\320\201u\334\265\020\321\334\004\251\205\022\255\355\013\330\351\013\262\323\004Q\006\246\364\001Q\003\246\314\004\361\251\004\357\277\006\200\335\r\261\253p\3671\260\021\223\254\014\035\230b\240\177\004\240I\250[\270\004\245\232\002\0379\310K\320W\220\261\014\202\266\024\272\327\004\024\273\366\004\235\306\013j\221\375\001j\333\347\005\202\341\013\210\352\004h\213\356\004\362\205\004\220\302\013a\217\254\005&\240\303\236\006I&\300\313\010\352\255e!\337\255n\207\352\004x\321\377""\001\003x\002\230\330\004\307\316\004\336\313\004\271\277\004\302\304\004\300\277\004\271b\266\256\020\300\200o3\2601\363\260\014\037\377\240\002\240$\240i\250{\377\270$\270f\300A\300Y\377\310k\320Y]\320]c\377\320cd\320dm\320m\007x\320x\344\265\030\253\277\004\261\263\004\205\304\013\342\343\013\340\373\260\013\362\320\004\212\206\004\206\266\004\242&\360\000\000wb\003c\363\260\005(\250\001\250\243\005\366\362\202o4\260\215\251\016!\240\022\240\3774\240y\260\013\2704\270\377v\300Q\300i\310{\320\377Z^\320^d\320de\377\320en\320ny\320y\000\256\315\003\327\356\013\322\375\004\260\340\004\222\350\004\245\277\013\321\336\013\266\226\013\300\274\313\004\256\311\004\231\350\004\215\363\004\365\342\006\235\270\004)\250\335\021\271\200w5\260Q\225\263\r\"\240\377\"\240D\250\t\260\033\270\377D\300\006\300a\300y\320\377P[\320[_\320_e\377\320ef\320fo\320o\007z\320z\343\315\003\273\350\013\311\365\004\337\272\004\311\365\004|\326\277\013\203\341\006\360\000\000o\002\331\325\013(\315\352\004\275\217\004\226\345\022e\332\265\005*\367\353\001\230\263\003\216\331\207o6\260a\346\264p\213\370\004\314\366\006\360\017\000\000}\002\321\347\004\336\237\004\226\270\004\321\347\004\346\342\306\004f\003\300\265\017\215\212o7\260q\376\375\267\r$\240B\240d\250)\377\260;\270d\300&\310\001\377\310\031\320R]\320]a\377\320ag\320gh\320h?q\320q|\320|\250\357\003\337\345\004\000\212\370\004\337\370\004\303\272\004\355\345\004\307\277\013\270\372\004\255\370\004\206\270\013\360\352\341\004\267\374\004\302\370\004\244&\360\000\000f#\003g\302\272\005\237\241\002\360\202u8\257\272\017\226\267d\000\242\344\004\276\272\004\314\374\004\215\302\004\350\376\004\364\322\004\355\262\004\360\315\006\330\361\301\004\353\267\010\371\216o9\270\212\222\014\320\021\200\206\267d\312\354\004\225\320\022\354\226\004\216\320\031\331\267\n\261\221o:`\333\274\017\366\266d\223\304\031\247\344\004\223\304\031\320\026\313\267\010\372\351\223o;\313\274\017(\250\002\250$\377\250i\260{\300$\300f\377\310A\310Y\320Va\320oae\320e""\266\332\001\320l\243\361\003\000\375\370\004\320\377\004\233\316\004\260\361\004\207\367\013\211\325\004\373\226\013\276\251\013@\222\272\013\266\231\004\202\236\004\351\363\004\245\344\004\325\267\004k\246\304\005|\220\243\002\272\215\017\r\210T\220\026\340\263\003\362\364\310\t\021\323\357\026\325\255 Q\300l\320\377RS\320Sb\320bm;\320m\336\352\004\320{|\361\254\032[+\334\361\353\001\237\252 a\300|\263\263\002c\320\357cn\320n\265\341\004\320|}\270\336\251\032Z-\275\255\"q\310\014\304\263\002d\337\320do\320o\300\340\004\320}\201~\354\372\003\341\254\024\344\200-\201\303\002\336\256\013\222\337\017\001\177\310\034\320UV\320V\312\343\003\016\315\334\004\320~\177\336\273\016\262\233\t\356\201-\310\253\"\367\021\310,\336\264\002f\320fq\313\320q\277\326\tA\214\253\033\374\202-2\260\374\235\263\016\322\320\017Q\310l\320Z[\377\320[j\320ju\320u\006\232\227\021E\002\350\312\017\351\2009\366\232\002\215\262\013\352\232\017\277a\310|\320[\\\210\343\002v\013\320v\375\225\021F\217\005\377\231\024\252\205-\333\231\002\366\245\263\n\320\021\317\231\017q\320P\\\237\320\\]\320]\215\316\003\273\313\021G\341\002\336\230\033d2\231\312\013z\033t\320t\354m(\352\373\006\r\210\224\323\n7\240!>\213\372\tU\260(\270*\310\310\001\362\322\027\272\301\263\030%\350\265\007X\320X\302\256\001\320\371_\315\313\003\333\323\001\360\000\000w\001\030\346\373\004\204\372\004\325\303\022`\002\254\263\016\315\305\t\262\014\356\206\377\0226\310\021\214\2002$\260f\377\270A\270Y\300k\320Q\267W\320W\223\374\001\320^\305\226\003tC\320t\225\377\003\256\375\004\227\344\004\233\267\022_\254\022\340\255\376E\224\255\032\367((\226\230\272\0325\270\006\377\270a\270y\310\013\320S\300\200\203@\350\271\010\233\371\t\337\215-\354\312\002\333\273\t\022\320?\022#\2401\240H\240\327\001\347\300\001\377B\230d\240)\250;\260\377d\270&\300\001\300\031\310\377!\310<\320WX\320X?g\320gr\320r\271\340\r\304\333\004\014\367\344\004\345\316\022j\002\234\342\n\246\304\003\207\2009\344\252\003\177\320\021\"\240!\2408\224\324\001\327""\024\320\024\227\311\001h\220\317\001\021\220~\345\252\017A\310\\\320YZ\304\365\002\200\323\207\024\373\322\013\254\320\004\300\374\004\264\234\006\276\334\004\261\252\004=\205\230\204\304\0012\313\251l\313\301\003\223\355\t\237\355\t\017\337\320\017 \240\001\246\304\001\330\004<\251\355\013\340\301\022T\320TZ\306\215\002\347\220\003\377r\320rx\320xy\360\017\000\000z\001\243\337\004\275\243\004\263\364\004\252\337\004\000\210\264\004\244\346\013\325\236\013\376\361\004\253\346\004\340\301\022\230\320\004\315\315\004\365z\201\375\001z\247\337\007\360\000\000A\273\004L\256\372\001L\004W\265\372\001W\272\245\360\005e\303\372\001e\004f\312\372\001f\272\241\342\005|\330\372\001|\004F\260\367\001F\273\005L\267\367\001L\005M\276\367\001M\367\005N\005\321\302\n<\220|\240\357;\250a\200\275\313\002A\330\014\237\023\2206\230\021\000\004\003\0107s\230!\030\001\000\0048\2301\003\010\356\025\0045\230\0014\010;\230a\016I\001:\230QP\001*\004X\000e\001\376\234\313\002\330\014\r\33046\260\177d\270!\2705\300\001|\0017\017\210q\000\004\220\007\275\313\001\016\003\243t\220V\000\003\005\217\311\001A&\003u\337\220A\220S\2302\004u\220\337B\220d\230!@\003w\220\177a\220t\2308\2401P\002\373\320\017\244\317\001d\250&\260\001s\260\021\343\001\277\307\004#\2401\261\315\001\375N\306\314\001\330\014\033\2305\240\377\014\250A\250[\270\001\270\371\021\237\307\001\331\315\001.\250\001\330\020\377\024\220H\230A\330\024,\373\250G\225\315\001\340\020(\250\007\327\250q\260\231\311\002qB\n4\320\377\047B\300!\360\006\000\t\376\347\316\001\010\014\320\014\034\230A~\321\314\001U\230-\240q\250\232 \377\017\320\017\037\230w\240e\357\2501\330\024\213\321\001x\240q\337\330\020\031\230\026\021\000g\250\377Q\250a\330\021!\240\027\357\250\005\250Q\020\014y\250\002\233\250\047\243\316\002\014\020\225#\353\316\001M\374\222\315\001\371\316\001D\320\030.\250a\347\250q\330\026\005\200\001\023\220$\377\220l\240\"\240A\330\010?\013\210:\220Q\220\240\304\001\333@\1775\230\010\240\005\240Q\200\311\003\314\233@\200\312\002""\020\027\256 \355\317\001\014\021\373\220\030\336\314\003\230v\240Q\340\377\014\020\220\003\220:\230Y\373\240a\260\341\002\020\025\220X\230\367Q\230j\372\005\r\320\r\036\373\230a\314%H\230K\240q\373\250\013\271\317\003\013\2106\220\027\363\320\030\275\252\001\232\320\002\r\023\2207S\320\032\377\254\001\252\320\001\340\215\004g\233`\037\013\022\220!\330\033\001\336a\364\320\002\377\330\020\021\330\024 \240\005\377\240[\260\004\260A\260V\373\2701\315\312\002\200A\330*A\377\320AX\320XY\330\010\267!\240\035\356\002\010\035\336`\010w\"\240,\010\003\032\230,\251\000\377x\250q\330\010\036\230o\376\321 h\260a\330\010\034\230\377G\2405\320(<\270A\373\270[\313\230\002\330\010\"\320\"\1773\2601\260H\270A\255A\327*\250\021\016\0028\372A\270(\357\300)\3106\242\217\002Y\320Y\367a\320a\267\260\001\360\000\000y\001\001\357\337\004\332\371\004\330\332\013\314\325\004\316\262\004\352\360\004\272\372\004\354\271\374\004\312\307\004E\003\217A8\2203\377\220a\330\014\037\230q\320\377 :\270)\300<\310y\377\320XZ\320Za\320a\376\255\261\001\330\010%\240^\2608\377\2701\270A\330\010\016\210_k\230\027\240\001\003\003\021\333\314\001\377x\220|\2402\240X\250\277Q\200A\330+,\333\2001\250\047\017\260q\340\316\001\373\013%\254a\225$\377A\260X\270Y\300f\310\377F\320RT\320T\\\320\017\\h\320h\243\221\006\267\344\013\312\366\004\273\351\004\354\346\250\013\327\327\004i\002\346\r5\260Y\373\270l\235\340\001U\320U\\\320\375\\\225\303\002\010 \240\t\250\030\314\215\324\003\242\200Q\320(\336B\360M&\240\365Q\216b4\354`Q\260h\270\377i\300v\310V\320SU\377\320U]\320]i\320i\200\333\224\006\253\353\013\343\375\004\211\300\004\242\341\013\273\273\006\335M6\357\260i\270|\314\337\001V\320V\177]\320]_\320_`\313\204\001\347\032\2508\363\325\003\241\200S9\270\021\353\270!\347\204\r\047\337\324\001\"\320\"\3775\260Q\260a\260x\270\377y\310\006\310f\320TV\037\320V^\320^\346\303\t\360\263\013\231\370\004\360\245\350\004\321\340\013\205\273\006\324\204\r7\260y\300\375\014\373\336\001W\320W^\320^\377`\320`a\330\010\"\240\347+""\250Xy\001\216\204S\320(:s\270!\272\207\001\340\206\013(\240q\374\206\002\3756\362\000q\270\010\300\t\310\377\026\310v\320UW\320W\377_\320_k\320kw\320\003wx\353\206\002\263\263\013\207\340\004\322\354\004\200\340\013\234\352\004}l\324\204\0168\270\t\300\034\335\245\001\277X\320X_\320_\207\360\001\330?\010#\240<\250x\371\205\003\217\204S\375;\262\207\003!\320!2\260!\346\302\207\001\330\010\002\007\236\214\001)\250\001\372\377\210\0027\201\207\001\270\030\300\031\310\377&\320PV\320VX\320\177X`\320`l\320l\361\220\006\000\334\351\013\373\305\004\344\267\013\314\344\004\240\354\004\345\372\004\334\351\004\276\321\004\334\343\351\004\242\370\007\010\013\210\366\210\t9\270\377\031\300,\310i\320WY\337\320Y`\320`\261\355\001\330\010\237$\240M\260\030\262\204\003\360\210\017y\377\230\014\240B\240h\250i\177\260|\3002\300X\310\320\2107\203\320(\250$\206\213\013\335\200C\216\251\013\277\274\006\330\310\277\200>\300\212?\213\215\003Q\333\214.\347\366\002\000\000\003{\001\352\264\013\203\330\004\324\343\004\257\372\004\264\360\004\204\274\006\376\366\213\201\320(=\270Q\270a\346\364\216\r+\250\232\211\003\245\211\002\2708\300\3659\365\214\001X\217\216\002b\320bn\037\320nz\320z\270\367\003\247\355\013\261\376\004\340\357\357\004\267\367\004\325\302\004\310\273\006\342\216\r;\2709\377\300L\320PY\320Y[\337\320[b\320b\355\276\001\330\010\037&\240o\260X\226\003\247\214S\362\004\340\327\217\001\363\220\006\271\200<\341\366\004\275\2008\340\010$\357\240F\250*\361\343\001\014\210E\277\220\025\220a\220z\322\344\001\033\303\2301\230\340\001\264\200`\363\346\003\205\223\014,\250y1\242\223\002\276\213\002\270H\300I\216\217\001\376\253Cc\320co\320o{\003\320{\226\302\003\357\356\013\341\333\004\236\311\004\332\333\004\313\331\004\374\272\235\006\362\222\r<\270I\300\\\320\377QZ\320Z\\\320\\c\373\320c\311\300\001\330\010\047\320\047\1777\260x\270q\300\001\310\214U\232\247\351\001\021\376\224\r.\250\210\221\003\254\225\001Q\357\270h\300i\232\215\001[\320[\377]\320]e\320eq\320\017q}\320}\201\366""\003\210\263\013\272\375\004\351\360\0048\250\237\013\217\322\006\354\224\r>\270i\351\260\001\373\222\003\367e\320e\333\275\001\330\010)\320\317);\2708\361\351\002\251\224R\320(\016\363\004$\240N\232\215\005\002\006\277\232\001\305\200<\000\375\367\004\323\355\004\321\303\004\335\333\004\311\335\004\367\374\004\270\310\004\245\360\004\366\320\317\004R\003\203\201!\340\010#\240\3476\250\031\273\352\001\254\205\n\032\230!\360\311\347\002\000\034\306<\331\215\005l\270,\300\037b\310\010\320P\246\2159\367\351\003\347\231\01432\260\360\231\003\200\204\002\300(\250\370\001\334\324\003\367a\320a\361\225\001\360\000\000v\001\001\344\225\013\276\306\004\352\372\004\317\377\013\257\340\004\213\363\004\327\324\006\316\335\231\rB\300)\277\246\001\340\217\003i\320\375i\360\270\001\330\010-\320-C\337\3008\3101\310\230\231T\320(\231H\215\360\002\352\233\0146\260\363\227\003\230\354\002\300\371h\376\220\001\254\315\003e\320em\320\001m\367\243\003\322\303\013\244\342\013\236\372\004\376\321\004\227\372\004\277\340\004\334\250\377\006\340\233\rF\300i\232\262\001d\320\377df\320fm\320mo\377\320op\330\0101\3201\047K\3108\251\354\004\324\233\035>\275\215\001\323\235/\316\361\233\002\014\300A\361\235\r\325\233 |\320A|\321\312\003\226\367\013\313\364\004\246\374\004\334\205\022q\253\233Mq@\215\212\001\316\2371\334\237\001\034\300Q\314\2330p\262\200I\303\233<\305\2006\222\230\001L\310\001\355\241\r\000\350\227!\343\311\003\214\300\004\317\342\004\376\320\004\364\354\004\200\337\004\202\232\004\354\200\337\004\227\373\004t\002\241\225LB\300!\360\273\2416\310\2043\247\215I\272\241\236\310\006\360\000\000o\002\346\255\004\206\261\004\365M\206\340\001M\302`\360\000\000S\305\003\215\261\004V\267\215@\275\330\003\240\047\320G<\216\323\003\223\203AL\320PQ\266\273*\263\203$\330\262\225\013\327\275\006\237\343\001\002H\257\342\001H\0030\325\370\004\221\373\004\266\263\004\300\225\004a\003\274\330E\367\222\005;23\200\335\010\"\240-\224\340\003\324\227*\240\351\2242\263\222=\211\373\004\343\265\004\375\304\004J\323\224H9q\260\243\343\001\334\200@\351\3220i\320i\270\217h\030\211\325/\362\205\005\236#34\303\341\010\215\243\010\231\234(\216\253\333/g\320g\241\234\023\225\224N\300\3335V\207\250:\260\332\341\001\233!\320\205\006\327\205\010Y\350\267\335\002\323\343\"\325\335$\007\373\333\007h\320hN\200\200\234W\250I\327\200E\327\331$\047\207\346\010\377j\320jq\320qw\320\001w\230\356\003\217\342\004\227\356\004\211\356\004\230\340\004\212\326\004\201\322\0040\217\334\013\226\236\004\220\356\004\343\214\004N\003\325\331E\233&GI\320I\360\373\001\253\350\010\327\334\001\021\265\316\001\344\377\242*\356\245\003[\312\214\020\255\342\032g\320g@\231\231\027\241\372\004\267\360\004\317\223\013\314\265\006\276\250\001\002\227\301\004\264\243\320\004\325\245\004\\\245""\360\001\\\003\236\301\004_\275\003\257\342EV\250;\260\221\360\0013\377Q\320Qt\360\000\000u\251\001\364\337\004\200\260\004Z\235\361\001Z\245\264\005]\236\226\361\001]\004^\004\353\242>\237\310\002\320\377HY\320Yo\360\000\000ap\367\317\005\206\373\004\311\332\004\267\214\004B\003\235\310+\377i\320in\320nt\320\017tv\320v\362\377\003\326\276\004\344\373\004\243\351\004\320\263\341\004\276\226\004\361\303\004\210\266\004O\377\362\001O\004\272\340\362\022r\233\363\001r\004@\361\362\001@\273\005I\370\362\001I\005P\377\362\001P\273\005V\206\363\001V\005X\215\363\001Xg\005Y\005\270\337E\377\243\00545\311\346\001\020\370\217\004\322\257\010\373\210(\362\351$w\230\350\007\333\212g\374\3515\367W\250J\301\204\0025J\310!\202\202\250B\036\366\226\017\237\354\032\260\250\026\250\340\013\321\232\2077\t8\333\252\021\315\224\nW\344\272\002\317\362 \260\3600\320\233\017\200\375\352\004\200\306\004\222\375\004\372\372\004\373\354\004\335\336\004\344\317\006\360\357\000\000t\002\250\262\006\360\000\000C@\003\353\302\013\314\313\004\371\302\004\363\372\004g\322\226H\0175\260\t\270\350\370\001\202\201I\207\3611\266\255\017\000\274\365\004\274\322\004\274\365\004\317\353\004\323\355\004\252\363\004\331\262\004\303\365\004\320\273\375\004\261\227\004\247\335\004\235\253\004_\251\375\001_\003:\233\316\004g\267\375\001g\003h\240\255H\362\200Z\240\354\255\t\233\313\013\253\206,\207\201Q\200\310 K\375\377\001Kk\004Q\375\377\001Q\365\320\005T\004\265\364?\276\223\256\005E\260\031\270/\236\323\001W\377\320W]\320]b\320b\316\257\336\001\200A\330\220\204K\220\2302l\320\177lr\320rt\320t\204\347\003\000\213\355\004\223\330\004\252\363\004\222\355\004\255\361\004\221\367\004\226\340\006\341\340\001}\002\310\217\006\360\000\000B\003\270\246\004t\236\306\004\365\265\013h\374\323\001h\003i\236\221H\000\327\206S\310\365/\270\263\017\342\355\004\356\342\004\365\363\004\351\355\004\351\375\004\000\351\367\004\226\304\004\362\340\004\351\375\004\203\321\004\315\345\004\253\223\004\312\263\004:\237\207\004i""\313\326\001i\003j\205\244H\246\211S\036\313\366\004$\320$5\236\273\005\227\266\013\264\366\033\000\351\223\017\256\354\004\303\345\004\266\362\004\265\354\004\305\360\004\316\370\004\370\226\013\240\330\323\004\321\366\004\334\253\004\356\256\013\265\320\031I\247\331\001Ii\004\301\224\004\256\207\004R\217\323Ff\250\252\207\001\376\374\322\002T\320TZ\320Z_?\320_h\320hi\335\206N\225\266B\000\303\344\004\337\320\004\302\363\004\312\344\004\271\357\004\253\367\004\355\311\006\224\374\001i\002\316\371\004\325\273\004S\217\334\001S\003\203\232\004Mc\235\334\001c\003\322\204\004\250\334\004l\262\266H\000\206\217S\301\266F\214\360\004\242\326\004\206\362\004\223\360\004\246\351\004\207\370\004\320\261\252\013\242\276\004\374\336\004\272\303\004]\352\336\001]\0036\224\326\022m\003\214\366FV\250\370\200Z\340\266W4\231\201Q\214\212\004o\345\341\001o\003\235\334\004\240\315\004\325D\345\341\001D\344\217\005W\363\341\001W\004\335Y\372\341\001Y\004c\201\342\001c\004\335l\210\342\001l\004x\217\342\001x\0045~\226\342\001~\214\235\005A\005\222\267H\202\220\022\260\240\303\n\227\365\004\276\330\004\222\375\013_\002\275\220\001M\277\320Mb\320bc\244\230L\014\017\300K\310q\346\337%\335\355\032\314\230@\231\312\004|\321\205\013\336\364\006\360\000\000R\003\336\307\004\024\205\216\004\204\321\022G\336\345\001G\200\335\005\350\242\004\353D\252\206\241\004o\201\346\001o\361ED\202\241\001D\273\005J\211\241\001J\005L\220\241\001L\307\005M\005\276\261?\371\223\032\320\202,N\320\377Ne\320e~\320~\177\344\253\234G\241\232\003\034\312\373\001\276\311\001\330\010!\007\320!2\333\370\005\362\226k\333\370\004\321\306\004\253\246\004|\240\277\004\354\234\006\360\000\000g\003\206\325\004M~\331\351\001~\003\337\206\004\365\340\004L\331\351\001WL\004V\340\351\001V\307\351\005k\356\351\001Wk\004q\365\351\001q\316\351\005t\246\227L\337)\300<\310r\361\253\002\\\320\211\\\216\376\001\360\227\001Q\377\350\002\224\277\017\355\2373\320\371(\305\334\006\334\354\t#\240>\260\021\317\260(\270!\207\374\001\273\334""\033m\320\177mr\320rx\320x\213\275\003\000\241\344\004\234\361\004\257\347\004\222\376\004\243\361\004\344\252\004\271\341\004\333\351\004\236\230\314\006\360\000\000H\346\272\005\300\321\004b\326\360\354\001b\003\364\354\004x\376\354\001x\003\300\245D\364\354\004\232\344\013\263\302$\206\3351\212\233\010\320:\377J\310,\320VX\320X\377^\320^c\320cl\320\377lm\200A\3308P\320\361P\357\222\001\207\205I\266\364\001M\310\035\320\003VW\262\252=\315\225\047\342\335\004\272\317\004\303\302\006\202\276\002\036\346\255\006\360\000\000_\205\360\005\263\347\004\301\352\004z\345\305\004E\227\360\001E\004F\004\250\252G\036\325\243\0059R\320R\267\375\003\304\204G\237\367\001\005N\253\345\001Y\220\345\031\222\230W\254\375\004\364\362\013\300\327\004T\204\320\004\207\205\004p\205\363\001p\375\324\005A\376\362\001\243A\004\240\214\004\336\230\004\202\363\004\\\232\363\001\\\273\004d\241\363\001d\004j\250\363\001j\352\237\220\005m\253\230L+\364\212\001S\320S\377Y\320Y^\320^g\320\037gh\200A\330\242D\225\366\027\261\330\006\374\215\2105\277\323\001>\310\036\320We?\320es\320st\315\350\031\237\323,\300\332\236\047\223\344\004\264\226\013\240K\353\360\004\323\350\006\360\000\327\000}\003\272\244\004T\301\366\001T\004\252\247Db\317\366\001b\255En\335\366\001n\273\004w\344\366\001w\004\177\353\366\001\177\273\004E\345\261\001E\005G\354\261\001G\203\005H\303\261\016\323\3237\356\244\001\260W\364\312\001\001\370\204\375\004\343\270\006\361\216M\036\300~\320U\377c\320cq\320qr\330\377\010\037\320\0370\260\001\260\007\030\270\021\000\t\014\t\214\372\001\327\247V\364\347\0044\346\237\013\224\334\004n\215\372\001n\003\250\227\004\266\354\004\000\317\345\004\346\237\004\305\364\004\273\217\004\210\206\004\360\317\004\221\372\004\302\217\004\325u\305\372\001u\220\372\005}\323\372\001}\004t\332D\303\265\004T\333\265\001T\005Z\342\265\001\367Z\005\\\351\265\001\\\005]\005\276\241\250K\047\300\034\310R\301\343\001Z\377\320Zc\320cj\320j\306\355\324\001\320x\260\267\003\235\361\004\242\341\006\200A\207\330?""@\232\261\032\312\302\n\266\276\002\253\266\001,\377\250a\250q\330\010\032\230\337,\240a\240x\007\001\036\230\377o\250Q\250h\260a\330?\010\034\230G\2405\213\256f\366\372\004\300\363\355\004\310\330\004\375\372\004\366\372\004\312\370\004\371\313\006\360\000G\000V\003\370\211\031\217\376\004\312\370\004H\240\376\001\357H\004I\004\270\335G5\260\0077\260z\300\344\261\001?V\226\217\002\373\222\030\000\310\2017\233\336\001\275\316?\250\251 \370\347\004\303\365\022\370\347\004\307\373\004\200\271\370\004\344\243\004\300\370\004\252\236\004\221\215\004\304\226\004\261\232\004N&\321\373\001N\004\334\211\004\304\226\004W\275\373\016\215\336/\314\275\317\005\201GAB\300\376\010\210\226\034X\250\347W\260A\342\204%\363\363\001\001\330\010\377%\240^\2601\260H\270=A\366\225\"s\320sy\353\327\005\251\206\013\000\364\264\004\373\352\004\255\304\004\240\346\004\334\326\004\342\350\004\353\361\004\246\341\004\340\333\357\004\303\373\004\356\331\004\377\301\004\362\264\006\360\000\000\301h\302\373\005\302\366\004\321\376\004\307\231\004\212DO\004\376\204\364GV\2506\260\025\260i9\270\331\366\001\254\201VC\3001\223\374\001\370*\3471\260\001\347\376\002\234B\300\030\310\367\031\320R\216\227\003`\320`h;\320h\243\307\003}\320}\231\351\003\302\346\004\000\302\376\004\237\351\004\341\353\004\315\257\004\310\371\004\332\373\004\361\364\004\371\366\004\000\350\353\004\254\344\004\333\331\004\372\267\004\246\351\004\353\251\006\235\332\001\307\371\005\270\223\231\022\222\214\004\276\376\017A\300\031\327\230\001_\377\320_a\320ah\320h\377j\320jk\330\010,\320\213,A\335\000\021\310\277\001\274\367\025\241\201bE\323\300Q\363\367\001\376\204\n3\312\310\001\"\320{\"A\360\370\001\3008\3109\372\255\002\377`\320`b\320bj\320\001j\203\205\003\234\354\003\344\356\004\241\347\004\265\332\004\204\361\004\320\262\004\000\373\367\004\213\305\004\322\374\004\364\367\004\353\356\004\331\374\004\360\325\004\353\356\004\232\226\226\013m\316\374\001m\003\234\217\004\313\374\004B\242\201\340\001B\375\337\005\225\217""\004\366\222\004U\355\337\016C?\3009\310L\320X\204@\202\216\003\376\341\233\001\330\010.\320.E\300\177X\310Q\310a\330\010\215\201z\347F\300a\270\357\001\210\210\n4\2601\376\216\373\002B\300!\3001\300H\177\310I\320U[\320[\274\003?k\320kt\320t\266\335\003\264\345\004\000\253\237\004\204\310\004\332\354\004\213\364\004\363\337\004\276\357\004\211\373\004\371\361\004\000\353\370\004\222\364\004\312\326\004\227\216\013\262\237\004\214\260\004\234\222\013\231\234\013\325M\226\343\001M\266\273\005U\244\343\001U\004\375V\373\342\016D\300I\310\\\320\377Yb\320bd\320dk\377\320km\320mn\330\010\217/\320/G\322\377\001\360\332\002\234\204zG\327\300q\310\224\213\r5\336\213\002\320\"\374\266\210\002\262`Y\320V\\\320\\~\275\003l\320lu\320u\205\344\n\000\232\367\013\342\357\004\314\320\004\221\376\004\306\362\004\364\270\004\365\352\004\305\355\004\200\241\301\004\201\374\004\211\343\004\201\365\004\215\216 \332\255\004\211\216$E\357\300Y\310l\235\224\002e\320e\377l\320ln\320no\330\377\0100\3200I\310\030\320\337QR\320RS\372\204\"\340\010\377\014\210J\220m\2406\250\373\021\330\010\000M\230\024\230Q\376\005\001J\220i\230q\240\004\375\240\346\215\002\r\210O\2309\240\373F\250\216\245\002\r\320\014\036\230\337b\240\010\250\001-\001O\230\3771\200A\340\010\020\220\004\373\220A\274\375\0014\210w\220a\377\220w\230a\330\014\021\220\367\030\230\021\004\000\320\021!\240\377\021\360\006\000\r\022\220\037\357\240\013\2501\026\001\036\230{\373\250!\037\001\033\230K\240q\356 \002\"\240!\037\003\030\230\037\337\250\001\250\024\250\376\365\001\r\021\377\220\005\220V\2301\230E\277\240\025\240d\250!;\000\020\367\027\320\027\215\231\001\024\260Y\270\377a\330\020\035\230T\240\021\377\240!\330\020\023\2204\220\277q\320\030(\250\003`\000\024\377\030\230\001\320\031+\320+\377H\310\001\310\021\330\020\025\273\220\\#\000.\260\001\223\001\025\377\220a\320\027(\250\004\250\374\304\217\001K\0243\2601\260D\270\367\t\300\021W\010\025\220[\240\337\001\240\036\250q<\006\047\240\347t\2501\325\003P\002)\250\033\337\260A""\330\014\020\240\0221\260\367\021\260$\241\216\001\330\020\036\230\337d\240!\2401\224\001U\230\367!\230?\326\000?\270$\270wa\270q\247\001X\230Q\210\227\001\372\242\006)\211!\330\010\017\210q\024\347!\234\351\006\035\246A\"\345\311$\345\341*\262\272\001\037\320it\320t\240\373\003\346\230\013\200\366\004\354\343\326\004\237\373\004]\002\226\341EX\250Q\360\260\2003\237\311\002\367\374\r\204\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\230\311\004\370\374\004\340\367\004\303\330\004\272\303\004\323^\002\273\376E\254\20089\206\237\001\"\320\343\"3\202\225\007\346\327\032\275\220\001\320kv\027\320vw\307\327\001\001\241\305\004\366\277\004\360\221\022s_\002\203\327E\223\2028:\270!\312\351*>\225\310\001\320lw\320w\227\364\003\227\354\004\200\331\276\004\275\327\004\201\307\004\314\356\006\202\373\r\315\2305\372\2038;\363\2701\234\330+\347\255\001\320mx\3201x\372\335\003\306\225\013\265\222\022a\002\216\335E\342\2058\367<\270A\201\372\t\330\010&\320\377&7\260q\270\010\300\001\272\344\374\001*\374\213\001\"\320\"\253\377\002\270\237(\300)\3106\351\337\010\350\217\001\320\017ny\320y\364\357\003\263\363\004\273\320\004\233\221\022\330\243\362\004\362\367\004\352\376$:\270\363\263\001y\320\257XZ\320Z\360\223\003d\357\233\0038\343\2701\273\001\347\226\017\275\374\003h\250j\377\270\014\300B\300h\310an\204\2105>\270a\357\376\t\330\010\335\367\007\346\203\377\001,\250\322\223\003\253\377\002\270H\300\367I\310V\344\253\002[\320[c\377\320co\320op\320p\007{\320{\204\315\003\301\223\013\246\312\004\256\374\004\212\372\004Kp\002\336\335\001\002\277\355\004\360\376\022O\321\376\016\367<\270I\327\270\001Z\320Z\\\237\320\\c\320c\223\266\001\346\274\0027?\260x\270q\300\001\374\225\021\231%\237m\270<\300r\225\220\002\246\2125?\371\270\366\361\016\200\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\360\324\004\213\317\004\351\324\004\205\362\004\311\376\006\311\235Gn\215\2148@\300\001\341\363\r.\250\316\361\003\336\366\310\002\270h\300i\254\350\001[\320\177[]\320]e\320e\245\253\001""\037\320r}\320}\324\340\003\212\376\004\340\333\004\360\365\320\004\336\343\004\217\376\006\333\372\r>\270i\300\377|\320S\\\320\\^\320\357^e\320e\274\260\001\330\010)\037\320);\2708\363\236\003\337\234\025\367\2158wA\300\021\313\365\r/\250a\351\365\002\376\220\310\002\270x\300y\320PV\376\261\226\002^\320^f\320fr\237\320rs\320s\263\276\001\330\332\001\002\350\360\347\004\234\343\004\326\204\022g\212\220\016?\270y\377\310\014\320T]\320]_\337\320_f\320f\254\270\003*\320\017*=\270X\330\235\003\223\200U\264\244\n\265\2002\330\203\346\004yn\334\3753=\270\372\366\016+\250\270\321\216\003\263\360\002\330`9\310F\257\243\002Z\003\320Z\330\327\003\245\362\027\335\353\004\312\313\004\344\353\004\204\240 \235A\342\312I7\260!\371\225\n\377\265>8\003\270\001\211\224*\234\3369\372\330\004\321\336\013\244\326\004\244\303\004`\313\320\004\372\330\004\333\250\006\356\255I\233\341\002\340\010\355\273J\000\262\276g\217\323\004\335\355@\204\3677\335\343\004\370\200I\344\205D\331\322\047\374\311\356\004\206\376@;\2709\300L\320\177PY\320Y[\320[\232\244\003\377e\330\010&\240o\260X\007\270Q\270\212\247\032\245\201!\211\2665\377\350\001\312\235*\000\314\3502\321\222\004\245\330\004\260\260\004\271\346\004\261\255\004\240\252\004\343\376\004\350\330\325\004\305\266\004\254\330\004l\307\363\001l\003s\022\316\363\001s\321\301\005\362\322\004|\320\350J\260\266\004\342\206\032\034\371\2707\354\234-g\320g\225\343/\320\370\004\212\364\004\000\245\351\004\225\365\004\272\363\004\366\246\004\327\370\004\251\366\004\264\266\004\317\363\004\004\266\275\004\336\321\022~\226\343J\3308\216\274\014\350\265&\340\206K\000\364\265\031\360\366\004\253\315\004\202\266\004\262\315\004\220\274\004\202\341\004\255\346\004\030\213\354\004\251\307\006\335\332J\n\270\360\216\013\233\270G\250\207\003\374\330\343\t\344\343\t#\320#4\260A\360\314\210\001\232\233\t\236\320\001\244\327\035k\320kq\037\320qs\320s\231\331\003\375\356\004\221\331\013\000\204\357\004\266\376\004\210\374\004\327\346\004\243\233\004\211\271\004""\202\271\004\210\374\004\000\262\320\004\222\315\013\336\346\004\202\344\004\275\207\022\222\315\004\223\274\004\304\333\004\272\301\373\004_\313\373\001_\004i\322\373\001iU\004\321\371\004z\340\373\001z\327\371\005B\342\371\001uB\321\327\005U\360\371\001U\005_\367\371\001w_\005e\376\371\001e\005g\205\372\001\367g\005h\252\327HF\260%\260\367y\300\014\216\264\001Z\320Z`\003\320`\332\366\003\233\375\003\214\307\004\366\353\004\313\346\013\243\364\004\300\341\366\004\365\221\013\245\257\013\311\265\004\252\364\004\316\343\013]\003\000\360\252\n\222\275I\317\2230\346\355\023\215\366\031\371\237\004\321\350\004\317\267\0044\260\366\004\327\324.r\376\377\001r\003\210\325\004\360\307\006\200\225\303G\306\275\006\234\224\010\205\300I\211\245\002\302\300\n\343\244\033j\003\320j\205\231\020\351\345\004\254\353\031\312\366\004\266\303 \244\333\004\200\331\303\004\330\366\004\231\371\004\230\217\004\337\324\004\274\316\004\253\333\004\177\000\225\350H\227\201]\334\2331\276\300\003\347\251\003\267\275\004\212\374\004\240\353\031\240\344\363\004\341\245\004\234\361\004\303\353\004\216\336\013M\276\371\001M\241\003\311\371\004\362\363\004\302\371\004\342\324\004w\341\371\001w\365\003\327\327\004\177\357\371\001\177\003@\004\000\271\350H\220\204]\331\250\003\263\306\t\264\250\033\326\366\003\303\335\024\304\353\031\000\215\364\004\257\300\004\215\364\004\347\353\004\272\374\004\352$\220\377\004\343\366\004\020\233\364\004\334\366\004\322\320\004\332\335\022A\316\371\016\344\2501\265\311\005@\211\207]\261\251\002\252\310\213\272\377\004\206\344\013\354\353\013y\322\377\001\023y\003\343\204\004\332\332\004B\333\310S\213\212T\300\252\002\334\244\314\n\246\252\033n\320n\232\303\001\320z\000\310\374\003\377\267\013\260\343\031\237\364\004\261\322\004\322\361\004\323\343\004\377\371\004\000\353$\325\374\004\252\314\013\252\367\004\314\335\004\275\326\004\323\343\004\250\306\004\203C\004\343\252G\237\314\010\204\215T\317\253\002\275\251)o\033\320o\205\303\001\320{\242\257\003\222\271\013""\331\274\022\000\305\261\004\305\364\004\335\263\004\235\317\004\245\314\004\235\372\004\310\377\004\200\375\004@\240\367\004\323\364\004\231\367\004\330\361\013\306\340\004\273\343\004D\214\372\016\334\202\2547\230\201_B\300!\225\322\0140\250z\256\262\003>\327\300\001\300\010\310\t\315\352\002\356\363\255\003g\320g\345\252\003|\320|\000\326\331\003\245\272\013\354\275\022\245\330\004\265\243\004\236\330\004\300\351\004\245\330\004\000\223\372\004\331\360\013\306\367\004\265\346\004\347\240\004\277\223\004\216\314\013\340\364\004\375E\206\375\016@\300\t\310\034\320\377U^\320^`\320`g\373\320g\272\277\001\330\010+\320+\307?\270x\365\307\003\365\316 \370\222TC\300\0011\217\325\014\227\321\177\224\375\004\232\351\022\341\243\004\210\351$\315\321B\332\362\225TD\202\325\0162\260\316\264\003@\300\177\001\300\021\300(\310)\215\347\002\016\311\323\003i\320i\253\357\003\307\337\003\302\343\004\301\274\013\000\226\300\022\231\333\004\260\272\004\365\253\004\226\336\004\231\333\004\277\357\004\271\256\004h\276\375\004\220\325\013\251\342\004t\326\375\001t\003\344\362\013\372\244\336\004G\267\362\016B\300)\310<\273\320W\310\323\003i\320i\361\353\003-\377\320-C\3008\3101\310qA\300\313$\255\362\006\314\332IE\300Q\207\333\014\000\205\324\203\242\341\004\326\371\004\266\354\004\317\375\004\335\371\004\277\226\004\235\357\004\022\335\371\004H\256\324S\356\233TF\370\327\016\365\323\207\234\357\031\020\246\362\004\375\343$\262\324C\361\236TG\361\327\016\351\323\207\243\344\004\020\373\327\013\377\356\004\313\234\004\246\362\022J\272\373\016\243\324F\260\207R\355H\346\327\0166\260\250\302\003D\300A\377\300Q\300h\310i\320W\367]\320]\254\305\003m\320mv\003\320v\243\306\003\252\373\004\362\317\004\251\302\013\252\373\004\370\332\004\000\261\373\004\310\310\013\270\373\004\370\332\004\300\272\004\231\347\013\300\242\004\240\347\013\320\260\245\013\215\336\004\235\352\004\362\376\004K\276\376\016F\300\377i\310|\320[d\320d\277f\320fm\320m\360\307\001\330\377\0101\3201K\3108\320\237ST\320TU""\331\212-\214\355\nQ8\352\354(\377\274-\325\231\003v\320v\275\356\003\347\335\004\320\240\376\004\223\317\004\205\347\004\334\343 \177\273\322FV\250\343:\260\350\324\002\362\366\006\371\366\010Y\240a\376\306\200Jw\310f\320TV\320\201V\225\370\003{\225\233\361\002\315\333\001\324\200<\377\324\"\007\376\342\362\001W\320W_\320_h;\320h\201\233\003w\320w\246\372\003\250\313\004\020\342\362\004\244\353\004\224\342\004\353\221 @\371\265F\201/\307\363\010|\310\202[\263\200]6\260i\270|\252\350\001\327V\320V\210\312\003`\310\371\001\032\250\3578\2601\260\276\223\030W\250J\377\260a\200A\360\010\000\t\375\021\362\337\004\320\013\036\230g\240\375Q\370\335\001\n\230!\2305\240\375\017\243\336\001\023\2205\230\r\240\337V\2501\340\014\005\003U\250\335!+\n\014\210L\257\337\001\013\260\3736\270\247\340\001\220\034\230Q\230\337k\250\021\320*\253\324\001\014\021\377\220\025\220a\220~\240Q\373\240n\250\360\001\r\320\r\036\230\350j\013\207\353\001\262\341\004\025\360\340\001\017\210q\277\220\r\230T\320!\327\324\001\001p\255\336\004\235\010\226\337\001\301\337\001\033\250A\316\316\001\377\013\2106\220\023\220A\330\377\014\024\220E\230\033\240A\217\240[\260\001\273\227\001\346\336\002\324\010\026\373\220a\245\342\001G\2201\330\014\377\017\210t\2203\220e\230\3771\330\020\030\230\006\230a\373\230q\367\340\002\320\027/\250q\177\260\005\260Q\330\024\031F\002\177T\250\021\250+\260V\265\324\002\377\024\"\240!\330\021\025\220\337S\230\005\230Q\206\341\005$\240\277a\320\0479\270\026\266\322\002\020\353\025\220\206\340\001>2\000\047\260\026\377\260q\270\001\340\010\013\210\3171\330\014\031\300\342\001q\000\320\023\311$\235\000Q\001!\361\341\001\347 \017\210\177s\220!\2206\230\022\207\001\367\024\220C\246 Y\250a\250\367u\260A\177\001\021\330\024\027k\220r\032\0003\236\002\030 \311\343\001~\236@\030\033\2304\320\037\366\326\001\177\014\300A\330\034!\240\207!\337[\270\001\270\033\013\001*\250]!t\0015\220\003\345\003q\234\341\004?\320\033+\2504\250\240\343\006\371@\377\n\000\t\017\210d\220(\277\230(\240%""\240q\365\343\003z\357\230\021\230%\215 \014\022\220\237$\220a\220q\370%)\000\020:\263 8\224`\001\240\0217\003\007\0079\037\262!\007\013\005\240Q]\003\330d\362\336FNZ\003\343A\016\230e\240\245<\360 \013\226\327\003\255C\014\213\204\004\340\177\010\021\320\021&\240a\234\343\001\276\324\345\001C\210}\230I\305`e~\373\344\001\024\220D\320\030.\374\372\002\352\360FZ\272@\001\331Av\220V_\320\0332\260#\267@6\372\343\001\365)\304@(\014\000Q\330\021\027\377\220v\320\0357\260s\270\377&\300\006\300a\330\020,\356\302`X\260S\247A\023\320\023_#\2401\240A\270\373\001A\276\346\001z\274c\016\227\205\007\2104\210u\346a\337\020\320\020 \240\246\326\002e\220_8\2307\240!\2435\013\315\205\003?U\250!\330\020\032\311\205\007\246\204\001\347\035\240a\204\204\001\373A5\230\003\376\206\204\001\027\220\177\240a\240s{\250!\243@v\260Q\340\241\346\001\376\266\001%\250}\270A\270Q\377\330*0\260\001\330*2\377\260$\260a\330\r \240\037\007\240u\250AJ\n\307c=\016\33518\0171\260\024^\000\014\023\377\2203\220a\220v\230S\377\240\001\240\025\240c\250\027\337\260\001\200A\360\351\005\340\010\377\033\2302\230\\\250\025\250\337k\270\021\270+\257\361\002\034 \377\240\016\250e\260;\270e\376\252\241\001#\2402\240S\250\005k\250\\\035\000\"\237\002$(\014\000SU\260\340\350\002\253a1\316\350\001\027\302a\337#\2404\320\047\331\244\002\013\210\3775\220\004\220D\230\n\240\237!\2404\240q\300\347\001\353\346\001\003\317\2207\230)\373\"\202\350\002z\240\375\021\220\204\002\024\025\340\020\021\330\355\024\355 \320!\354\320\001&\300\001\377\330\027\030\330\024\032\320\032\376\265\226\001\030\033\2301\230A\330o\030\034\230E\276\350\002\024\032?\003\373\340\010\365$Q\330\020\024\220\377J\230a\230u\240O\260\3571\330\014\047\264 M\270\021z\274#q\010\022\031\300!\340%\000\361t\252\205\001\212\207\001\302\206\0013\210a\210U~\246 \003\235b\014\377@!\256\351\002\361\014\256\351\002\275A\203\000\r\020\220\001?\220\036\230t\320#\246\336\001u\000\377C\220q\230\006\230c\240\373\024\240\230\204\001\004\260A\260T\356\240\211\001\022\320""\022\262\326\001\020\023\220\374\234!\235\000E\230\021\230!\330\357\014\022\220)\312\001\340\010\014\336\224\353\t\320\014\034\230\274\353\004L\230\373\t\240\337\211\002\033\230A\230[\373\250\001\246\351\002\010\r\210U\2201!\271\204\001\313 \322\372\001\r\210\037\006\361\211\030\373\340\010\202\211\0011\200A\3602\376\327\204\010:\220Q\220n\240A\363\330\014\325 \201\352\001\007\220t\320\373\0336\357`\020\023\320\023&\177\240g\250Q\330\024\030\266B\337>\260\021\330\024\201\352\001\047\250\257\034\260Q\340\004\004\021\301\353\0011\352\254A\007\330@\001\333\204\005>\240\023\377\240A\330\020\025\320\025%\375\240\271\211\001\320\025&\240a\330\335\020\227`\340\020\026\242\355\002\001\330\357/6\260c\346`.\310\002\377\310!\3309:\33004\353\260E\366`!\260\352\003N\220!B\226\204\001\014\314\211\001\365&\245!\232 \330\305\003\037\320\004\035\230Q\306\214\010\350\353\001\255@\337\330\010\022\220\047\334\"\010\014\377\210G\2209\230J\240f\373\250A\200\213\002\320\023+\2501\347\250G\260\301\353\002\225\354\001\026\240q\023\250\013\374\363\001\242\214\003\330\317*"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35509, 110871); #define __Pyx_DecompressString_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (111589 bytes) */ + #else /* compression: none (110871 bytes) */ #ifdef _MSC_VER -static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','a','r','o','o','n','d','o','w','n',' ','a','r','o','o','n','u','p','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','b','u','l','l','p','o','w','e','r',' ','b','e','a','r','p','o','w','e','r','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','f','a','s','t','k',' ','f','a','s','t','d','g','c','h','a','o','p','e','n',' ','h','a','h','i','g','h',' ','h','a','l','o','w',' ','h','a','c','l','o','s','e','i','n','p','h','a','s','e',' ','q','u','a','d','r','a','t','u','r','e','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','k',' ','d',' ','j','m','a','c','d',' ','m','a','c','d','s','i','g','n','a','l',' ','m','a','c','d','h','i','s','t','m','a','m','a',' ','f','a','m','a','m','i','n',' ','m','a','x','m','i','n','i','d','x',' ','m','a','x','i','d','x','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','p','l','u','s','v','i',' ','m','i','n','u','s','v','i','s','i','n','e',' ','l','e','a','d','s','i','n','e','s','l','o','w','k',' ','s','l','o','w','d','s','m','i',' ','s','m','i','s','i','g','n','a','l','s','u','p','e','r','t','r','e','n','d',' ','t','r','e','n','d','s','w','i','n','g','h','i','g','h',' ','s','w','i','n','g','l','o','w','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','u','p','p','e','r','b','a','n','d',' ','m','i','d','d','l','e','b','a','n','d',' ','l','o','w','e','r','b','a','n','d','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','C','B','A','N','D','S','_','V','a','l','u','e','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','V','a','l','u','e','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','B','A','N','D','S','_','V','a','l','u','e','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','_','V','a','l','u','e','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','I','_','V','a','l','u','e','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','_','V','a','l','u','e','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','A','_','V','a','l','u','e','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','_','V','a','l','u','e','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','_','V','a','l','u','e','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','_','V','a','l','u','e','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','E','X','T','_','V','a','l','u','e','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','_','V','a','l','u','e','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','V','a','l','u','e','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','_','V','a','l','u','e','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','V','a','l','u','e','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','_','V','a','l','u','e','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','F','_','V','a','l','u','e','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','_','V','a','l','u','e','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','V','a','l','u','e','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','_','V','a','l','u','e','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','_','A','R','R','A','Y','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\320','\017','\037','\230','w','\240','e','\250','1','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021','!','\240','\027','\250','\005','\250','Q','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270',')','\300','<','\310','r','\320','Q','Y','\320','Y','Z','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','(','\250','\001','\250','\034','\260','R','\260','x','\270','|','\310','<','\320','W','Y','\320','Y','a','\320','a','b','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','(','\270','/','\310','\034','\320','U','W','\320','W','_','\320','_','o','\320','o','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','G','\002','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','h','\320','h','t','\320','t','v','\320','v','~','\320','~','\177','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','H','\270','K','\300','|','\320','S','U','\320','U',']','\320',']','^','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','k','\320','k','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','C','\002','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','z','\240','\021','\240',',','\250','b','\260','\010','\270','\n','\300',',','\310','b','\320','P','X','\320','X','Y','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','6','\270','\027','\300','\017','\310','|','\320','[',']','\320',']','c','\320','c','j','\320','j','k','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','w','\270','o','\310','\\','\320','Y','[','\320','[','a','\320','a','h','\320','h','i','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','\047','\300','\037','\320','P','\\','\320','\\','^','\320','^','d','\320','d','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002','X','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','?','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','l','\320','R','^','\320','^','`','\320','`','f','\320','f','k','\320','k','t','\320','t','u','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','~','\240','Q','\240','l','\260','\"','\260','F','\270','%','\270','y','\310','\017','\320','W','c','\320','c','e','\320','e','k','\320','k','p','\320','p','y','\360','\000','\000','z','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','E','\270','\031','\300','/','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\360','\000','\000','t','\001','D','\002','\360','\000','\000','D','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','g','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','9','\310','L','\320','X','Z','\320','Z','`','\320','`','e','\320','e','n','\320','n','o','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\320','\027','\047','\240','q','\250','\014','\260','B','\260','f','\270','E','\300','\031','\320','J','Z','\320','Z','f','\320','f','h','\320','h','n','\320','n','s','\320','s','|','\320','|','}','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','1','\240','L','\260','\002','\260','&','\270','\005','\270','Y','\300','k','\320','Q',']','\320',']','_','\320','_','e','\320','e','j','\320','j','s','\320','s','t','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','{','\240','!','\240','<','\250','r','\260','\026','\260','u','\270','I','\300','[','\320','P','\\','\320','\\','^','\320','^','d','\320','d','i','\320','i','r','\320','r','s','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','y','\240','\001','\240','\034','\250','R','\250','v','\260','U','\270',')','\300','7','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','s','\320','s','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','W','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','H','\310','\001','\310','\021','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','}','\240','A','\240','\\','\260','\022','\260','8','\270',':','\300','\\','\320','Q','S','\320','S','[','\320','[','\\','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','\177','\240','a','\240','|','\260','2','\260','X','\270',']','\310',',','\320','V','X','\320','X','`','\320','`','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','x','\230','q','\240','\014','\250','B','\250','f','\260','F','\270','%','\270','y','\310','\014','\320','T','`','\320','`','b','\320','b','h','\320','h','n','\320','n','s','\320','s','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','V','\003','\360','\000','\000','V','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','e','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\036','\230','g','\240','U','\250','!','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','4','\250','v','\260','Q','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','0','\260','\001','\330','*','2','\260','$','\260','a','\330','\r',' ','\240','\007','\240','u','\250','A','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','1','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','1','\260','\024','\260','Q','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r',' ','\240','\007','\240','q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','&','\240','g','\250','Q','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; +static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','_','A','R','R','A','Y','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\320','\017','\037','\230','w','\240','e','\250','1','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021','!','\240','\027','\250','\005','\250','Q','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','H','\310','\001','\310','\021','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\036','\230','g','\240','U','\250','!','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','4','\250','v','\260','Q','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','0','\260','\001','\330','*','2','\260','$','\260','a','\330','\r',' ','\240','\007','\240','u','\250','A','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','1','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','1','\260','\024','\260','Q','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r',' ','\240','\007','\240','q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','&','\240','g','\250','Q','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; #else -static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notearoondown aroonupbegidx nbelementbullpower bearpowercannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablefastk fastdgchaopen hahigh halow hacloseinphase quadratureinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledk d jmacd macdsignal macdhistmama famamin maxminidx maxidxno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importplusvi minusvisine leadsineslowk slowdsmi smisignalsupertrend trendswinghigh swinglowtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047upperband middleband lowerbandACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACCBANDS_ValueACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillAROON_ValueASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_St""ream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBBANDS_ValueBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CROWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHA""NGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.open_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCD""LSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDLUNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDONCHIAN_ValueDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillERI_ValueER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFRACTAL_ValueFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_a""rgsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHA_ValueHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_PHASOR_ValueHT_SINEHT_SINE_StreamHT_SINE_Stream.open_and_fillHT_SINE_ValueHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKC_ValueKDJKDJ_StreamKDJ_Stream.open_and_fillKDJ_ValueLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDEXT_ValueMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACDFIX_ValueMACD_StreamMACD_Stream.open_and_fillMACD_ValueMAMAMAMA_StreamMAMA_Stream.open_and_fillMAMA_ValueMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAXINDEX_ValueMINMAX_StreamMINMAX_Stream.open_and_fillMINM""AX_ValueMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Stream.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSMI_ValueSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHF_ValueSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCHRSI_ValueSTOCH_StreamSTOCH_Stream.open_and_fillSTOCH_ValueSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSUPERTREND_ValueSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_AC""TA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA""_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LINESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenA""ndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenAndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CD""LHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMOD_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_Pe""ekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_O""penTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAndFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenT""A_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_UpdateTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_Clon""eTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillT""A_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MAMA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_Peek""TA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR""_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_OpenAndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateT""A_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_PeekTA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_S""treamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVORTEX_ValueVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.open_and_fill_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr__ARRAY_TYPES__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTS__PANDAS_DATAFRAME__PANDAS_SERIES__POLARS_DATAFRAME__POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackc""loneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallookbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_""numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330""\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360""\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R""\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r""\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&""\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q""\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)""A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220""\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320""\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~""\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c""\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000""\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330""\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005""\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000""\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320y""z\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S""\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p""\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002""\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004""\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004""\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y""\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A""\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000""\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S""\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005""\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021""\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q""\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302""\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:""\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002""\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a""\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!""\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307""\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)""\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002""\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220""\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021""\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260""\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360""\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q""\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004""\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270""\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330""\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260(\270)\300<\310r\320QY\320YZ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^""\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H""\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025""\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027(\250\001\250\034\260R\260x\270|\310<\320WY\320Ya\320ab\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014""\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330""\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608""\270:\300\\\320QS\320S[\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330""\010\017\210x\220|\2401\240L\260\002\260(\270/\310\034\320UW\320W_\320_o\320o{\320{}\360\000\000~\001F\002\360\000\000F\002G\002\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320Xh\320ht\320tv\320v~\320~\177\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k""\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260H\270K\300|\320SU\320U]\320]^\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a""\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[k\320kw\320wy\360\000\000z\001B\002\360\000\000B\002C\002\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002""\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k""\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220z\240\021\240,\250b\260\010\270\n\300,\310b\320PX\320XY\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2606\270\027\300\017\310|\320[]\320]c\320cj\320jk\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A""\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260w\270o\310\\\320Y[\320[a\320ah\320hi\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270\047\300\037\320P\\\320\\^\320^d\320dk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002W\002\360\000\000W\002X\002\200A\3300F\300a""\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q""\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360""\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-""\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y""\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o""\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S""\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R""\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\300?\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010""\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300l\320R^\320^`\320`f\320fk\320kt\320tu\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x""\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h""\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220~\240Q\240l\260\"\260F\270%\270y\310\017\320Wc\320ce\320ek\320kp\320py\360\000\000z\001J\002\360\000\000J\002V\002\360\000\000V\002X\002\360\000\000X\002^\002\360\000\000^\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360""\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260E\270\031\300/\320Q]\320]_\320_e\320ej\320js\360\000\000t\001D\002\360\000\000D\002P\002\360\000\000P\002R\002\360\000\000R\002X\002\360\000\000X\002]\002\360\000\000]\002f\002\360\000\000f\002g\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027""\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3009\310L\320XZ\320Z`\320`e\320en\320no\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\320\027\047\240q\250\014\260B\260f\270E\300\031\320JZ\320Zf\320fh\320hn\320ns\320s|\320|}\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R""\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2401\240L\260\002\260&\270\005\270Y\300k\320Q]\320]_\320_e\320ej\320js\320st\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st""\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220{\240!\240<\250r\260\026\260u\270I\300[\320P\\\320\\^\320^d\320di\320ir\320rs\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004""\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220y\240\001\240\034\250R\250v\260U\270)\3007\310,\320VX\320X^\320^c\320cl\320ls\320s\177\360\000\000@\002B\002\360\000\000B\002H\002\360\000\000H\002M\002\360\000\000M\002V\002\360\000\000V\002W\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,""\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!""\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a""\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000""\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d""\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I""\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360""\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220}\240A\240\\\260\022\2608\270:\300\\\320QS\320S[\320[\\\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220\177\240a\240|\2602\260X\270]\310,\320VX\320X`\320`a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034""\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002""\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S""\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320""\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U""\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220x\230q\240\014\250B\250f\260F\270%\270y\310\014\320T`\320`b\320bh\320hn\320ns\320s|\360\000\000}\001I\002\360\000\000I\002U\002\360\000\000U\002W\002\360\000\000W\002]\002\360\000\000]\002c\002\360\000\000c\002h\002\360\000\000h\002q\002\360\000\000q\002|\002\360\000\000|\002H\003\360\000\000H\003J\003\360\000\000J\003P\003\360\000\000P\003V\003\360\000\000V\003[\003\360\000\000[\003d\003\360\000\000d\003e\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW""\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"""\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k""\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000""\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002""\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ""\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-""\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d""\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H""\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330""\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016""\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033""\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; +static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CR""OWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.ope""n_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDL""UNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_Str""eamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Str""eam.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR""_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LIN""ESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenA""ndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMO""D_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_""CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAn""dFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_Upda""teTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_""PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MA""MA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI""_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_Open""AndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_Peek""TA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.op""en_and_fill_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr__ARRAY_TYPES__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTS__PANDAS_DATAFRAME__PANDAS_SERIES__POLARS_DATAFRAME__POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslength""locallookbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010""\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q""\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X""\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016""\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005""\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T""\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000""\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n""\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A""\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{""\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]""\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177""\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC""\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000""\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230""\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330""\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q""\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q""\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u""\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:""\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330""\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330""\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230""\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021""\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000""\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F""\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014""\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e""\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B""\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002""\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e""\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a""\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004""\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004""\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004""\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004""\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A""\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046""\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006""\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240""\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003""\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F""\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330""\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300""\021\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a""\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014""\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360""\000\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002""\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003""\360\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o""\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002""\360\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003""\360\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013""\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010""\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402""\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601""\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002""\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330""\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,""\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330""\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330""\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a""\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330""\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240""\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~""\004@\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330""\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003""\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H""\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330""\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320""\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021""\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J""\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002""\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O""\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010""\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G""\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300""\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a""\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU""\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002""\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^""\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#""\320#4\260A\260X\270Q\330\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002""\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(""=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240""\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S""\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360""\000\000]\003^\003\360\000\000^\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R""\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a""\330\010\034\230G\2405\320(F\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x""\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260""\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360""\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021""\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330""\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330""\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED @@ -351462,10 +348926,10 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 2603; i++) { + for (int i = 0; i < 2563; i++) { Py_ssize_t bytes_length = str_length_index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); - if (likely(string) && i >= 144) PyUnicode_InternInPlace(&string); + if (likely(string) && i >= 127) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) @@ -351473,8 +348937,8 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 stringtab[i] = string; pos += bytes_length; } - for (int i = 2603; i < 2872; i++) { - Py_ssize_t bytes_length = bytes_length_index[i-2603].length; + for (int i = 2563; i < 2832; i++) { + Py_ssize_t bytes_length = bytes_length_index[i-2563].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; pos += bytes_length; @@ -351484,14 +348948,14 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 2872; i++) { + for (Py_ssize_t i = 0; i < 2832; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 2603; + PyObject **table = stringtab + 2563; for (Py_ssize_t i=0; i<269; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); @@ -352854,1002 +350318,1002 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { __pyx_mstate_global->__pyx_codeobj_tab[252] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_G5_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[252])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2686}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2684}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[253] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[253])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2790}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2788}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[254] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[254])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2887}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2885}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[255] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[255])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2986}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2984}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[256] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[256])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3087}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3085}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[257] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[257])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3187}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3185}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[258] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_8_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[258])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3286}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3284}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[259] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[259])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3386}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3384}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[260] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[260])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3486}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3484}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[261] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[261])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3585}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3583}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[262] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[262])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3686}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3682}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[263] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_1_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[263])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3788}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3784}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[264] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[264])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3883}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3879}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[265] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[265])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3977}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3973}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[266] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[266])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4075}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4071}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[267] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[267])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4173}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4169}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[268] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[268])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4270}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4266}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[269] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[269])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4378}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4372}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[270] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_G5_1L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[270])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4484}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4478}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[271] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_9_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[271])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4582}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4576}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[272] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[272])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4683}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4677}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[273] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[273])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4782}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4776}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[274] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[274])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4882}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4876}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[275] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[275])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4982}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4976}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[276] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[276])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5082}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5076}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[277] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[277])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5182}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5176}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[278] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[278])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5282}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[279] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[279])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5382}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5376}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[280] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[280])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5484}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5478}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[281] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[281])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5584}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5578}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[282] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[282])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5684}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5678}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[283] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[283])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5784}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5778}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[284] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[284])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5884}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5878}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[285] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[285])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5984}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5978}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[286] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[286])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6084}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6078}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[287] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[287])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6186}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6180}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[288] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[288])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6286}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6280}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[289] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[289])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6386}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6380}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[290] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[290])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6486}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6480}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[291] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[291])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6586}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6580}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[292] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[292])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6688}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6682}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[293] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[293])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6790}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6784}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[294] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[294])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6890}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6884}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[295] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[295])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6990}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6984}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[296] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[296])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7090}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7084}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[297] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[297])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7190}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7184}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[298] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[298])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7290}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7284}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[299] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[299])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7390}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7384}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[300] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[300])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7490}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7484}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[301] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[301])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7590}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7584}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[302] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[302])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7690}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7684}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[303] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[303])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7790}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7784}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[304] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[304])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7890}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7884}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[305] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[305])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7990}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7984}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[306] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[306])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8090}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8084}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[307] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[307])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8190}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8184}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[308] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[308])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8290}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8284}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[309] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[309])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8390}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8384}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[310] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[310])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8490}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8484}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[311] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[311])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8590}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8584}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[312] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[312])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8690}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8684}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[313] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[313])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8790}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8784}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[314] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[314])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8892}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8886}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[315] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[315])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8994}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8988}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[316] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[316])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9096}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9090}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[317] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[317])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9196}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9190}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[318] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[318])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9296}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9290}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[319] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[319])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9396}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9390}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[320] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[320])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9496}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9490}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[321] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[321])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9596}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9590}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[322] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[322])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9696}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9690}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[323] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[323])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9796}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9790}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[324] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[324])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9896}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9890}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[325] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[325])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9996}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 9990}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[326] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[326])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10096}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10090}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[327] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[327])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10196}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10190}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[328] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[328])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10296}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10290}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[329] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[329])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10396}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10390}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[330] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[330])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10496}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10490}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[331] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[331])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10596}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10590}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[332] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[332])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10696}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10690}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[333] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[333])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10796}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10790}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[334] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[334])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10893}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10887}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[335] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[335])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10992}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 10986}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[336] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[336])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11091}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11085}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[337] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[337])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11187}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11181}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[338] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[338])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11285}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11279}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[339] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[339])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11383}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11377}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[340] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_G5_1A_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[340])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11478}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11472}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[341] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[341])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11572}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11566}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[342] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[342])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11666}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11660}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[343] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[343])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11764}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11758}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[344] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_G5_8_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[344])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11861}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11855}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[345] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[345])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11957}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 11951}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[346] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[346])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12061}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12053}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[347] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[347])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12166}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12158}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[348] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[348])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12264}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12256}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[349] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[349])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12363}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12355}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[350] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[350])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12460}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12452}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[351] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[351])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12556}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12548}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[352] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[352])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12658}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12648}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[353] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_8_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[353])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12758}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12748}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[354] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[354])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12852}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12842}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[355] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[355])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12948}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 12938}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[356] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[356])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13050}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13038}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[357] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_G5_AZq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[357])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13160}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13146}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[358] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_G5_15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[358])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13271}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13257}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[359] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[359])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13365}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13351}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[360] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[360])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13459}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13445}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[361] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[361])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13557}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13541}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[362] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_a_6axq_9_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[362])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13659}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13641}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[363] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[363])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13757}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13739}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[364] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_31HA_a_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[364])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13851}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13833}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[365] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_A_1HA_a_Qa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[365])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13948}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 13930}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[366] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_8_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[366])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14045}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14027}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[367] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[367])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14151}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14131}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outupperband, __pyx_mstate->__pyx_n_u_outmiddleband, __pyx_mstate->__pyx_n_u_outlowerband, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[368] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[368])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14269}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 24, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14247}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[369] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[369])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14375}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14353}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[370] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_aq_31HA_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[370])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14471}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14449}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[371] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[371])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14567}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14545}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[372] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_H_31HA_6Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[372])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14663}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14641}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[373] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_DAQ_31HA_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[373])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14757}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14735}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[374] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[374])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14851}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14829}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[375] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_q_6aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[375])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14948}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 14926}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[376] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_G5_q_A_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[376])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15052}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15028}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[377] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_G5_9_lRS_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[377])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15167}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15141}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[378] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[378])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15277}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15249}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[379] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[379])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15386}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15356}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[380] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_9_Q_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[380])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15486}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15456}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[381] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_G5_Q_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[381])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15586}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15556}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[382] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_G5_q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[382])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15687}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15657}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_periods, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[383] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_G5_9_PQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[383])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15784}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15754}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[384] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[384])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15880}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15850}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[385] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[385])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15979}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 15949}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[386] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_G5_Q_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[386])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16079}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16049}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[387] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[387])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16178}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16148}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[388] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_31HA_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[388])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16275}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16245}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[389] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[389])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16372}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16342}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[390] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[390])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16468}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16438}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[391] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_Qa_1HA_9_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[391])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16572}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16540}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[392] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1A_2_81_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[392])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16676}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16642}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outminidx_data, __pyx_mstate->__pyx_n_u_outmaxidx_data, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[393] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_N_81_N_81, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[393])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16785}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16751}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[394] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[394])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16884}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16850}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[395] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_Qa_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[395])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16981}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16947}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[396] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[396])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17077}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17043}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[397] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[397])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17176}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17142}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[398] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[398])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17273}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17239}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[399] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[399])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17370}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17336}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[400] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[400])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17468}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17434}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[401] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_q_A_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[401])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17564}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17530}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[402] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_31HA_Q_AQh_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[402])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17662}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17628}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[403] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[403])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17761}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17727}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[404] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_G5_AQ_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[404])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17860}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17826}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[405] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_G5_8_QR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[405])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17955}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17921}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[406] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[406])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18054}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18020}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[407] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_G5_8_QR_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[407])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18149}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18115}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[408] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[408])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18247}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18213}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_open, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[409] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_G5_1A_31, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[409])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18344}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18310}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[410] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[410])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18440}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18406}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[411] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[411])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18536}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18502}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[412] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[412])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18632}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18598}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[413] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[413])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18728}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18694}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[414] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_AQ_31HA_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[414])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18824}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18790}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[415] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[415])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18921}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18887}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[416] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_G5_8_Q_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[416])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19017}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 18983}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[417] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_aq_axq_oQha_G5_9_31HA_a_5Qax, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[417])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19115}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19081}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[418] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_G5_8_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[418])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19220}; + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19186}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[419] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[419])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19315}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19281}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[420] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[420])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19409}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19375}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[421] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[421])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19505}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19471}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[422] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[422])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19610}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 22, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19574}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[423] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_G, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[423])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19710}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19674}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[424] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[424])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19807}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19771}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[425] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1L_31HA_7q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[425])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19913}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 23, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19875}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[426] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[426])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20023}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 21, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19983}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[427] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[427])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20132}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20090}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[428] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_G5_Ql, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[428])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20232}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20190}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_a_real0, __pyx_mstate->__pyx_n_u_a_real1, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[429] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[429])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20329}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20287}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[430] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[430])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20432}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20388}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outsupertrend, __pyx_mstate->__pyx_n_u_outtrend, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[431] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_G5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[431])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20535}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20491}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[432] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_G5_q_A_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[432])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20629}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20585}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[433] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[433])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20723}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20679}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[434] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[434])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20819}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20775}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[435] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[435])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20915}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20871}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[436] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_1_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[436])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21013}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 20969}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[437] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[437])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21109}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21065}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[438] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_9_31HA_a_5_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[438])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21205}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21161}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[439] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[439])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21302}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21258}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[440] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_G5_8_a_31H, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[440])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21398}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21354}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[441] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[441])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21500}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 20, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21456}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[442] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[442])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21599}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21555}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[443] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_Q_31HA_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[443])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21695}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21651}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[444] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[444])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21797}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21751}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[445] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[445])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21900}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 19, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21854}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[446] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_G5_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[446])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22001}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 21955}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_a_volume, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[447] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_G5_9_31HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[447])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22098}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22052}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[448] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_8_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[448])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22196}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22150}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[449] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_G5_Q_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[449])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22296}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22250}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_high, __pyx_mstate->__pyx_n_u_a_low, __pyx_mstate->__pyx_n_u_a_close, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[450] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_G5_1_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[450])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22394}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22348}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[451] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_8_31HA_Q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[451])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22490}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 22444}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_a_real, __pyx_mstate->__pyx_n_u_arrays, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_historylen, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_handle, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_stream}; __pyx_mstate_global->__pyx_codeobj_tab[452] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__stream_pxi, __pyx_mstate->__pyx_n_u_open_and_fill, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_1_31HA_q_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[452])) goto bad; } diff --git a/talib/stream.py b/talib/stream.py index 0030729cf..7d315dc7b 100644 --- a/talib/stream.py +++ b/talib/stream.py @@ -45,9 +45,9 @@ s, rsi = stream.RSI.open_and_fill(history, timeperiod=14) -A multi-output function answers with a named tuple whose fields are the output -names in the function's docstring; a single-output one with a bare float (or -int). Handles cannot be pickled. +A multi-output function answers with a plain tuple, in the order the Function +API returns and named by ``abstract.Function(name).output_names``; a +single-output one with a bare float (or int). Handles cannot be pickled. """ import talib._ta_lib as _ta_lib from talib._ta_lib import OutRange, Stream, __TA_FUNCTION_NAMES__ @@ -57,9 +57,3 @@ for func_name in __TA_FUNCTION_NAMES__: globals()[func_name] = getattr(_ta_lib, '%s_Stream' % func_name) __all__.append(func_name) - # the named tuple a multi-output handle answers with - value_name = '%s_Value' % func_name - value_type = getattr(_ta_lib, value_name, None) - if value_type is not None: - globals()[value_name] = value_type - __all__.append(value_name) diff --git a/talib/stream.pyi b/talib/stream.pyi index 3c24ecafc..b7fddf4b1 100644 --- a/talib/stream.pyi +++ b/talib/stream.pyi @@ -25,19 +25,14 @@ class AC(Stream): def value(self) -> float: ... def copy(self) -> "AC": ... -class ACCBANDS_Value(NamedTuple): - upperband: float - middleband: float - lowerband: float - class ACCBANDS(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20) -> Tuple["ACCBANDS", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> ACCBANDS_Value: ... - def peek(self, high: float, low: float, close: float) -> ACCBANDS_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float, float]: ... @property - def value(self) -> ACCBANDS_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "ACCBANDS": ... class ACOS(Stream): @@ -130,18 +125,14 @@ class APO(Stream): def value(self) -> float: ... def copy(self) -> "APO": ... -class AROON_Value(NamedTuple): - aroondown: float - aroonup: float - class AROON(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 14) -> Tuple["AROON", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float) -> AROON_Value: ... - def peek(self, high: float, low: float) -> AROON_Value: ... + def update(self, high: float, low: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float) -> Tuple[float, float]: ... @property - def value(self) -> AROON_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "AROON": ... class AROONOSC(Stream): @@ -204,19 +195,14 @@ class AVGPRICE(Stream): def value(self) -> float: ... def copy(self) -> "AVGPRICE": ... -class BBANDS_Value(NamedTuple): - upperband: float - middleband: float - lowerband: float - class BBANDS(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], timeperiod: int = 20, nbdevup: float = 2.0, nbdevdn: float = 2.0, matype: int = 0) -> Tuple["BBANDS", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> BBANDS_Value: ... - def peek(self, real: float) -> BBANDS_Value: ... + def update(self, real: float) -> Tuple[float, float, float]: ... + def peek(self, real: float) -> Tuple[float, float, float]: ... @property - def value(self) -> BBANDS_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "BBANDS": ... class BETA(Stream): @@ -979,19 +965,14 @@ class DIV(Stream): def value(self) -> float: ... def copy(self) -> "DIV": ... -class DONCHIAN_Value(NamedTuple): - upperband: float - middleband: float - lowerband: float - class DONCHIAN(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 20) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], timeperiod: int = 20) -> Tuple["DONCHIAN", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float) -> DONCHIAN_Value: ... - def peek(self, high: float, low: float) -> DONCHIAN_Value: ... + def update(self, high: float, low: float) -> Tuple[float, float, float]: ... + def peek(self, high: float, low: float) -> Tuple[float, float, float]: ... @property - def value(self) -> DONCHIAN_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "DONCHIAN": ... class DPO(Stream): @@ -1044,18 +1025,14 @@ class ER(Stream): def value(self) -> float: ... def copy(self) -> "ER": ... -class ERI_Value(NamedTuple): - bullpower: float - bearpower: float - class ERI(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13) -> Tuple["ERI", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> ERI_Value: ... - def peek(self, high: float, low: float, close: float) -> ERI_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float]: ... @property - def value(self) -> ERI_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "ERI": ... class EXP(Stream): @@ -1088,34 +1065,24 @@ class FOSC(Stream): def value(self) -> float: ... def copy(self) -> "FOSC": ... -class FRACTAL_Value(NamedTuple): - swinghigh: int - swinglow: int - class FRACTAL(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], leftbars: int = 2, rightbars: int = 2) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], leftbars: int = 2, rightbars: int = 2) -> Tuple["FRACTAL", Tuple[NDArray[np.int32], NDArray[np.int32]]]: ... - def update(self, high: float, low: float) -> FRACTAL_Value: ... - def peek(self, high: float, low: float) -> FRACTAL_Value: ... + def update(self, high: float, low: float) -> Tuple[int, int]: ... + def peek(self, high: float, low: float) -> Tuple[int, int]: ... @property - def value(self) -> FRACTAL_Value: ... + def value(self) -> Tuple[int, int]: ... def copy(self) -> "FRACTAL": ... -class HA_Value(NamedTuple): - haopen: float - hahigh: float - halow: float - haclose: float - class HA(Stream): def __init__(self, open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> None: ... @staticmethod def open_and_fill(open: NDArray[np.float64], high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64]) -> Tuple["HA", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, open: float, high: float, low: float, close: float) -> HA_Value: ... - def peek(self, open: float, high: float, low: float, close: float) -> HA_Value: ... + def update(self, open: float, high: float, low: float, close: float) -> Tuple[float, float, float, float]: ... + def peek(self, open: float, high: float, low: float, close: float) -> Tuple[float, float, float, float]: ... @property - def value(self) -> HA_Value: ... + def value(self) -> Tuple[float, float, float, float]: ... def copy(self) -> "HA": ... class HMA(Stream): @@ -1148,32 +1115,24 @@ class HT_DCPHASE(Stream): def value(self) -> float: ... def copy(self) -> "HT_DCPHASE": ... -class HT_PHASOR_Value(NamedTuple): - inphase: float - quadrature: float - class HT_PHASOR(Stream): def __init__(self, real: NDArray[np.float64]) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_PHASOR", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> HT_PHASOR_Value: ... - def peek(self, real: float) -> HT_PHASOR_Value: ... + def update(self, real: float) -> Tuple[float, float]: ... + def peek(self, real: float) -> Tuple[float, float]: ... @property - def value(self) -> HT_PHASOR_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "HT_PHASOR": ... -class HT_SINE_Value(NamedTuple): - sine: float - leadsine: float - class HT_SINE(Stream): def __init__(self, real: NDArray[np.float64]) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64]) -> Tuple["HT_SINE", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> HT_SINE_Value: ... - def peek(self, real: float) -> HT_SINE_Value: ... + def update(self, real: float) -> Tuple[float, float]: ... + def peek(self, real: float) -> Tuple[float, float]: ... @property - def value(self) -> HT_SINE_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "HT_SINE": ... class HT_TRENDLINE(Stream): @@ -1216,34 +1175,24 @@ class KAMA(Stream): def value(self) -> float: ... def copy(self) -> "KAMA": ... -class KC_Value(NamedTuple): - upperband: float - middleband: float - lowerband: float - class KC(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20, atrperiod: int = 10, nbdev: float = 2.0) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 20, atrperiod: int = 10, nbdev: float = 2.0) -> Tuple["KC", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> KC_Value: ... - def peek(self, high: float, low: float, close: float) -> KC_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float, float]: ... @property - def value(self) -> KC_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "KC": ... -class KDJ_Value(NamedTuple): - k: float - d: float - j: float - class KDJ(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 9, slowk_period: int = 3, slowk_matype: int = 13, slowd_period: int = 3, slowd_matype: int = 13) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 9, slowk_period: int = 3, slowk_matype: int = 13, slowd_period: int = 3, slowd_matype: int = 13) -> Tuple["KDJ", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> KDJ_Value: ... - def peek(self, high: float, low: float, close: float) -> KDJ_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float, float]: ... @property - def value(self) -> KDJ_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "KDJ": ... class LINEARREG(Stream): @@ -1316,63 +1265,44 @@ class MA(Stream): def value(self) -> float: ... def copy(self) -> "MA": ... -class MACD_Value(NamedTuple): - macd: float - macdsignal: float - macdhist: float - class MACD(Stream): def __init__(self, real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, signalperiod: int = 9) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], fastperiod: int = 12, slowperiod: int = 26, signalperiod: int = 9) -> Tuple["MACD", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> MACD_Value: ... - def peek(self, real: float) -> MACD_Value: ... + def update(self, real: float) -> Tuple[float, float, float]: ... + def peek(self, real: float) -> Tuple[float, float, float]: ... @property - def value(self) -> MACD_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "MACD": ... -class MACDEXT_Value(NamedTuple): - macd: float - macdsignal: float - macdhist: float - class MACDEXT(Stream): def __init__(self, real: NDArray[np.float64], fastperiod: int = 12, fastmatype: int = 0, slowperiod: int = 26, slowmatype: int = 0, signalperiod: int = 9, signalmatype: int = 0) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], fastperiod: int = 12, fastmatype: int = 0, slowperiod: int = 26, slowmatype: int = 0, signalperiod: int = 9, signalmatype: int = 0) -> Tuple["MACDEXT", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> MACDEXT_Value: ... - def peek(self, real: float) -> MACDEXT_Value: ... + def update(self, real: float) -> Tuple[float, float, float]: ... + def peek(self, real: float) -> Tuple[float, float, float]: ... @property - def value(self) -> MACDEXT_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "MACDEXT": ... -class MACDFIX_Value(NamedTuple): - macd: float - macdsignal: float - macdhist: float - class MACDFIX(Stream): def __init__(self, real: NDArray[np.float64], signalperiod: int = 9) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], signalperiod: int = 9) -> Tuple["MACDFIX", Tuple[NDArray[np.float64], NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> MACDFIX_Value: ... - def peek(self, real: float) -> MACDFIX_Value: ... + def update(self, real: float) -> Tuple[float, float, float]: ... + def peek(self, real: float) -> Tuple[float, float, float]: ... @property - def value(self) -> MACDFIX_Value: ... + def value(self) -> Tuple[float, float, float]: ... def copy(self) -> "MACDFIX": ... -class MAMA_Value(NamedTuple): - mama: float - fama: float - class MAMA(Stream): def __init__(self, real: NDArray[np.float64], fastlimit: float = 0.5, slowlimit: float = 0.05) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], fastlimit: float = 0.5, slowlimit: float = 0.05) -> Tuple["MAMA", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> MAMA_Value: ... - def peek(self, real: float) -> MAMA_Value: ... + def update(self, real: float) -> Tuple[float, float]: ... + def peek(self, real: float) -> Tuple[float, float]: ... @property - def value(self) -> MAMA_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "MAMA": ... class MARKETFI(Stream): @@ -1485,32 +1415,24 @@ class MININDEX(Stream): def value(self) -> int: ... def copy(self) -> "MININDEX": ... -class MINMAX_Value(NamedTuple): - min: float - max: float - class MINMAX(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MINMAX", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> MINMAX_Value: ... - def peek(self, real: float) -> MINMAX_Value: ... + def update(self, real: float) -> Tuple[float, float]: ... + def peek(self, real: float) -> Tuple[float, float]: ... @property - def value(self) -> MINMAX_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "MINMAX": ... -class MINMAXINDEX_Value(NamedTuple): - minidx: int - maxidx: int - class MINMAXINDEX(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 30) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], timeperiod: int = 30) -> Tuple["MINMAXINDEX", Tuple[NDArray[np.int32], NDArray[np.int32]]]: ... - def update(self, real: float) -> MINMAXINDEX_Value: ... - def peek(self, real: float) -> MINMAXINDEX_Value: ... + def update(self, real: float) -> Tuple[int, int]: ... + def peek(self, real: float) -> Tuple[int, int]: ... @property - def value(self) -> MINMAXINDEX_Value: ... + def value(self) -> Tuple[int, int]: ... def copy(self) -> "MINMAXINDEX": ... class MINUS_DI(Stream): @@ -1803,18 +1725,14 @@ class SMA(Stream): def value(self) -> float: ... def copy(self) -> "SMA": ... -class SMI_Value(NamedTuple): - smi: float - smisignal: float - class SMI(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13, fastperiod: int = 2, slowperiod: int = 25, signalperiod: int = 9) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 13, fastperiod: int = 2, slowperiod: int = 25, signalperiod: int = 9) -> Tuple["SMI", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> SMI_Value: ... - def peek(self, high: float, low: float, close: float) -> SMI_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float]: ... @property - def value(self) -> SMI_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "SMI": ... class SQRT(Stream): @@ -1837,46 +1755,34 @@ class STDDEV(Stream): def value(self) -> float: ... def copy(self) -> "STDDEV": ... -class STOCH_Value(NamedTuple): - slowk: float - slowd: float - class STOCH(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0) -> Tuple["STOCH", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> STOCH_Value: ... - def peek(self, high: float, low: float, close: float) -> STOCH_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float]: ... @property - def value(self) -> STOCH_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "STOCH": ... -class STOCHF_Value(NamedTuple): - fastk: float - fastd: float - class STOCHF(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> Tuple["STOCHF", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> STOCHF_Value: ... - def peek(self, high: float, low: float, close: float) -> STOCHF_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float]: ... @property - def value(self) -> STOCHF_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "STOCHF": ... -class STOCHRSI_Value(NamedTuple): - fastk: float - fastd: float - class STOCHRSI(Stream): def __init__(self, real: NDArray[np.float64], timeperiod: int = 14, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> None: ... @staticmethod def open_and_fill(real: NDArray[np.float64], timeperiod: int = 14, fastk_period: int = 5, fastd_period: int = 3, fastd_matype: int = 0) -> Tuple["STOCHRSI", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, real: float) -> STOCHRSI_Value: ... - def peek(self, real: float) -> STOCHRSI_Value: ... + def update(self, real: float) -> Tuple[float, float]: ... + def peek(self, real: float) -> Tuple[float, float]: ... @property - def value(self) -> STOCHRSI_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "STOCHRSI": ... class SUB(Stream): @@ -1899,18 +1805,14 @@ class SUM(Stream): def value(self) -> float: ... def copy(self) -> "SUM": ... -class SUPERTREND_Value(NamedTuple): - supertrend: float - trend: int - class SUPERTREND(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, multiplier: float = 3.0) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 10, multiplier: float = 3.0) -> Tuple["SUPERTREND", Tuple[NDArray[np.float64], NDArray[np.int32]]]: ... - def update(self, high: float, low: float, close: float) -> SUPERTREND_Value: ... - def peek(self, high: float, low: float, close: float) -> SUPERTREND_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, int]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, int]: ... @property - def value(self) -> SUPERTREND_Value: ... + def value(self) -> Tuple[float, int]: ... def copy(self) -> "SUPERTREND": ... class T3(Stream): @@ -2043,18 +1945,14 @@ class VHF(Stream): def value(self) -> float: ... def copy(self) -> "VHF": ... -class VORTEX_Value(NamedTuple): - plusvi: float - minusvi: float - class VORTEX(Stream): def __init__(self, high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> None: ... @staticmethod def open_and_fill(high: NDArray[np.float64], low: NDArray[np.float64], close: NDArray[np.float64], timeperiod: int = 14) -> Tuple["VORTEX", Tuple[NDArray[np.float64], NDArray[np.float64]]]: ... - def update(self, high: float, low: float, close: float) -> VORTEX_Value: ... - def peek(self, high: float, low: float, close: float) -> VORTEX_Value: ... + def update(self, high: float, low: float, close: float) -> Tuple[float, float]: ... + def peek(self, high: float, low: float, close: float) -> Tuple[float, float]: ... @property - def value(self) -> VORTEX_Value: ... + def value(self) -> Tuple[float, float]: ... def copy(self) -> "VORTEX": ... class VWAP(Stream): diff --git a/tests/test_stream.py b/tests/test_stream.py index f029b92e1..558caf5f0 100644 --- a/tests/test_stream.py +++ b/tests/test_stream.py @@ -204,7 +204,14 @@ def test_open_and_fill_matches_batch(name, datasets): assert repr(got) == repr(want[-1].item()) assert handle.out_range == (lookback(name), len(data['close']) - lookback(name)) if len(expected) > 1: - assert handle.value._fields == tuple(abstract.Function(name).output_names) + # a multi-output handle answers with a plain tuple, the type and arity + # the batch tier already returns; the loops above pin the order + assert type(handle.value) is tuple + assert len(handle.value) == len(expected) + assert type(filled) is tuple + assert len(filled) == len(expected) + else: + assert not isinstance(handle.value, tuple) @pytest.mark.parametrize('name', FUNCTIONS) @@ -286,11 +293,19 @@ def test_the_corpus_is_what_the_library_says_streams(): assert all(isinstance(getattr(stream, name), type) for name in FUNCTIONS) -def test_multi_output_is_a_named_tuple(datasets): - handle = stream.MACD(datasets[0]['close']) - macd, macdsignal, macdhist = handle.value - assert (handle.value.macd, handle.value.macdsignal, handle.value.macdhist) \ - == (macd, macdsignal, macdhist) +def test_multi_output_is_a_plain_tuple(datasets): + """A handle answers with the tuple the Function API returns: same type, same + arity, same order. Order is the whole contract of a positional result, so + pin it against the batch tier rather than against a field name.""" + close = datasets[0]['close'] + value = stream.MACD(close).value + assert type(value) is tuple + macd, macdsignal, macdhist = value + batch = talib.MACD(close) + assert type(batch) is tuple + assert len(value) == len(batch) + for got, want in zip(value, batch): + assert repr(got) == repr(want[-1].item()) def test_single_output_is_a_scalar(datasets): diff --git a/tools/generate_stream.py b/tools/generate_stream.py index d768655f8..6edc14f42 100644 --- a/tools/generate_stream.py +++ b/tools/generate_stream.py @@ -265,8 +265,8 @@ def emit(func, docstring): # An index output counts from the first bar the stream opened on; the batch # tier reports it in the caller's coordinates, so shift it back the same way. shift = ' + self._begidx' if 'INDEX' in name else '' - value = (outputs[0][1] + shift if len(outputs) == 1 else '%s_Value(%s)' % ( - name, ', '.join(py + shift for _, py in outputs))) + value = (outputs[0][1] + shift if len(outputs) == 1 + else '(%s)' % ', '.join(py + shift for _, py in outputs)) live = '<%s*>self._handle' % handle lookback_args = ', '.join(py for _, py, _ in params) out = [] @@ -294,9 +294,6 @@ def opened(*tail): return (['&handle'] + ['a_%s.data + begidx' % py for py in inputs] + ['historylen'] + [py for _, py, _ in params] + list(tail)) - if len(outputs) > 1: - out.append('%s_Value = namedtuple("%s_Value", "%s", module=__name__)\n' - % (name, name, ' '.join(py[3:] for _, py in outputs))) out.append('cdef class %s(Stream):' % cls) out.append(' """%s"""' % docstring) out.append('') @@ -345,8 +342,7 @@ def opened(*tail): out.append(' stream._begidx = begidx') filled = ['_stream_like((%s,), %s)' % (', '.join(inputs), py) for _, py in outputs] out.append(' return stream, %s' % ( - filled[0] if len(outputs) == 1 - else '%s_Value(%s)' % (name, ', '.join(filled)))) + filled[0] if len(outputs) == 1 else '(%s)' % ', '.join(filled))) for verb in ('Update', 'Peek'): out.append('') out.append(' @cython.binding(False)') @@ -412,10 +408,8 @@ def emit_stub(func, documented): for ctype, _ in outputs] out = [] if len(outputs) > 1: - out.append('class %s_Value(NamedTuple):' % name) - out.extend(' %s: %s' % (py[3:], t) for (_, py), t in zip(outputs, scalars)) - out.append('') - value, filled = '%s_Value' % name, 'Tuple[%s]' % ', '.join(arrays) + value = 'Tuple[%s]' % ', '.join(scalars) + filled = 'Tuple[%s]' % ', '.join(arrays) else: value, filled = scalars[0], arrays[0] bars = ', '.join('%s: float' % py for py in inputs) From b935396cac6cd87762804e8189a92056b95b60ad Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 6 Sep 2026 17:42:18 -0400 Subject: [PATCH 05/12] fix(abstract): stop relying on Cython resolving __NAME from class scope Cython emitted 58 warnings, all of the form Global name __PANDAS_SERIES matched from within class scope in contradiction to Python 'class private name' rules. This may change in a future release. The Function class reads seven module globals whose leading double underscore makes them mangling-eligible, so Python's own rules say those references should resolve to _Function__PANDAS_SERIES and fail. Cython resolves them to the module global instead and warns that it may stop. Dropping one underscore makes the code mean what it already did. The seven are private by every convention -- absent from __all__, undocumented -- and __TA_FUNCTION_NAMES__ is untouched: its trailing underscores put it outside the mangling rule. tools/generate_stream.py referenced them too, so _stream.pxi is regenerated. Nothing else moves. dir() of talib, talib._ta_lib, talib.abstract and talib.stream differs only by those seven names, and the generated C, normalised for the rename, differs only in the interned string table -- no function body, no ABI, no code path. --- talib/_abstract.pxi | 100 +++++++++++++++++++-------------------- talib/_stream.pxi | 14 +++--- talib/_ta_lib.c | 62 ++++++++++++------------ tools/generate_stream.py | 14 +++--- 4 files changed, 95 insertions(+), 95 deletions(-) diff --git a/talib/_abstract.pxi b/talib/_abstract.pxi index cec5c03c3..f06a1ec8e 100644 --- a/talib/_abstract.pxi +++ b/talib/_abstract.pxi @@ -17,22 +17,22 @@ cimport _ta_lib as lib np.import_array() # Initialize the NumPy C API # lookup for TALIB input parameters which don't define expected price series inputs -__INPUT_PRICE_SERIES_DEFAULTS = {'price': 'close', - 'price0': 'high', - 'price1': 'low', - 'periods': 'periods', # only used by MAVP; not a price series! - } +_INPUT_PRICE_SERIES_DEFAULTS = {'price': 'close', + 'price0': 'high', + 'price1': 'low', + 'periods': 'periods', # only used by MAVP; not a price series! + } -__INPUT_ARRAYS_TYPES = [dict] -__ARRAY_TYPES = [np.ndarray] +_INPUT_ARRAYS_TYPES = [dict] +_ARRAY_TYPES = [np.ndarray] # allow use of pandas.DataFrame for input arrays try: import pandas - __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) - __ARRAY_TYPES.append(pandas.Series) - __PANDAS_DATAFRAME = pandas.DataFrame - __PANDAS_SERIES = pandas.Series + _INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + _ARRAY_TYPES.append(pandas.Series) + _PANDAS_DATAFRAME = pandas.DataFrame + _PANDAS_SERIES = pandas.Series except ImportError as import_error: try: if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': @@ -42,16 +42,16 @@ except ImportError as import_error: except NameError: pass - __PANDAS_DATAFRAME = None - __PANDAS_SERIES = None + _PANDAS_DATAFRAME = None + _PANDAS_SERIES = None # allow use of polars.DataFrame for input arrays try: import polars - __INPUT_ARRAYS_TYPES.append(polars.DataFrame) - __ARRAY_TYPES.append(polars.Series) - __POLARS_DATAFRAME = polars.DataFrame - __POLARS_SERIES = polars.Series + _INPUT_ARRAYS_TYPES.append(polars.DataFrame) + _ARRAY_TYPES.append(polars.Series) + _POLARS_DATAFRAME = polars.DataFrame + _POLARS_SERIES = polars.Series except ImportError as import_error: try: if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': @@ -61,11 +61,11 @@ except ImportError as import_error: except NameError: pass - __POLARS_DATAFRAME = None - __POLARS_SERIES = None + _POLARS_DATAFRAME = None + _POLARS_SERIES = None -__INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) -__ARRAY_TYPES = tuple(__ARRAY_TYPES) +_INPUT_ARRAYS_TYPES = tuple(_INPUT_ARRAYS_TYPES) +_ARRAY_TYPES = tuple(_ARRAY_TYPES) if sys.version >= '3': @@ -147,7 +147,7 @@ class Function(object): info = _ta_getInputParameterInfo(self.__name, i) input_name = info['name'] if info['price_series'] is None: - info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name] + info['price_series'] = _INPUT_PRICE_SERIES_DEFAULTS[input_name] local.input_names[input_name] = info local.info['input_names'] = self.input_names @@ -217,8 +217,8 @@ class Function(object): Returns a copy of the dict of input arrays in use. """ local = self.__local - if __POLARS_DATAFRAME is not None \ - and isinstance(local.input_arrays, __POLARS_DATAFRAME): + if _POLARS_DATAFRAME is not None \ + and isinstance(local.input_arrays, _POLARS_DATAFRAME): return local.input_arrays.clone() else: return local.input_arrays.copy() @@ -249,11 +249,11 @@ class Function(object): return False """ local = self.__local - if isinstance(input_arrays, __INPUT_ARRAYS_TYPES): + if isinstance(input_arrays, _INPUT_ARRAYS_TYPES): missing_keys = [] for key in self.__input_price_series_names(): - if __POLARS_DATAFRAME is not None \ - and isinstance(input_arrays, __POLARS_DATAFRAME): + if _POLARS_DATAFRAME is not None \ + and isinstance(input_arrays, _POLARS_DATAFRAME): missing = key not in input_arrays.columns else: missing = key not in input_arrays @@ -376,22 +376,22 @@ class Function(object): ret = local.outputs.values() if not isinstance(ret, list): ret = list(ret) - if __PANDAS_DATAFRAME is not None and \ - isinstance(local.input_arrays, __PANDAS_DATAFRAME): + if _PANDAS_DATAFRAME is not None and \ + isinstance(local.input_arrays, _PANDAS_DATAFRAME): index = local.input_arrays.index if len(ret) == 1: - return __PANDAS_SERIES(ret[0], index=index) + return _PANDAS_SERIES(ret[0], index=index) else: - return __PANDAS_DATAFRAME(numpy.column_stack(ret), - index=index, - columns=self.output_names) - elif __POLARS_DATAFRAME is not None and \ - isinstance(local.input_arrays, __POLARS_DATAFRAME): + return _PANDAS_DATAFRAME(numpy.column_stack(ret), + index=index, + columns=self.output_names) + elif _POLARS_DATAFRAME is not None and \ + isinstance(local.input_arrays, _POLARS_DATAFRAME): if len(ret) == 1: - return __POLARS_SERIES(ret[0]) + return _POLARS_SERIES(ret[0]) else: - return __POLARS_DATAFRAME(numpy.column_stack(ret), - schema=self.output_names) + return _POLARS_DATAFRAME(numpy.column_stack(ret), + schema=self.output_names) else: return ret[0] if len(ret) == 1 else ret @@ -425,9 +425,9 @@ class Function(object): args = list(args) input_arrays = {} input_price_series_names = self.__input_price_series_names() - if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): + if args and not isinstance(args[0], _INPUT_ARRAYS_TYPES): for i, arg in enumerate(args): - if not isinstance(arg, __ARRAY_TYPES): + if not isinstance(arg, _ARRAY_TYPES): break try: @@ -438,11 +438,11 @@ class Function(object): ', '.join(input_price_series_names)) raise TypeError(msg) - if __PANDAS_DATAFRAME is not None \ - and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + if _PANDAS_DATAFRAME is not None \ + and isinstance(local.input_arrays, _PANDAS_DATAFRAME): no_existing_input_arrays = local.input_arrays.empty - elif __POLARS_DATAFRAME is not None \ - and isinstance(local.input_arrays, __POLARS_DATAFRAME): + elif _POLARS_DATAFRAME is not None \ + and isinstance(local.input_arrays, _POLARS_DATAFRAME): no_existing_input_arrays = local.input_arrays.is_empty() else: no_existing_input_arrays = not bool(local.input_arrays) @@ -451,7 +451,7 @@ class Function(object): self.set_input_arrays(input_arrays) args = args[len(input_arrays):] elif len(input_arrays) or (no_existing_input_arrays and ( - not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + not len(args) or not isinstance(args[0], _INPUT_ARRAYS_TYPES))): msg = 'Not enough price arguments: expected %d (%s)' % ( len(input_price_series_names), ', '.join(input_price_series_names)) @@ -481,7 +481,7 @@ class Function(object): if isinstance(price_series, list): # TALIB-supplied input names for name in price_series: input_price_series_names.append(name) - else: # name came from __INPUT_PRICE_SERIES_DEFAULTS + else: # name came from _INPUT_PRICE_SERIES_DEFAULTS input_price_series_names.append(price_series) return input_price_series_names @@ -493,11 +493,11 @@ class Function(object): args = [] for price_series in input_price_series_names: series = local.input_arrays[price_series] - if __PANDAS_SERIES is not None and \ - isinstance(series, __PANDAS_SERIES): + if _PANDAS_SERIES is not None and \ + isinstance(series, _PANDAS_SERIES): series = series.values.astype(float) - elif __POLARS_SERIES is not None and \ - isinstance(series, __POLARS_SERIES): + elif _POLARS_SERIES is not None and \ + isinstance(series, _POLARS_SERIES): series = series.to_numpy().astype(float) args.append(series) for opt_input in local.opt_inputs: diff --git a/talib/_stream.pxi b/talib/_stream.pxi index 6ebf6bce8..f69c6217e 100644 --- a/talib/_stream.pxi +++ b/talib/_stream.pxi @@ -6,8 +6,8 @@ from collections import namedtuple cimport _ta_lib as lib from _ta_lib cimport TA_RetCode, TA_MAType, TA_BAD_PARAM # NOTE: _ta_check_success and InsufficientHistory come from _common.pxi, -# check_array / make_*_array from _func.pxi, and __PANDAS_SERIES / -# __POLARS_SERIES from _abstract.pxi. +# check_array / make_*_array from _func.pxi, and _PANDAS_SERIES / +# _POLARS_SERIES from _abstract.pxi. np.import_array() # Initialize the NumPy C API @@ -2459,7 +2459,7 @@ cdef np.ndarray _stream_input(object values): """What the Function API accepts, through the same checks.""" if isinstance(values, np.ndarray): return check_array(values) - for series in (__PANDAS_SERIES, __POLARS_SERIES): + for series in (_PANDAS_SERIES, _POLARS_SERIES): if series is not None and isinstance(values, series): return check_array(values.to_numpy().astype(float)) raise TypeError("input must be a numpy array or a pandas or polars Series, " @@ -2484,15 +2484,15 @@ cdef _stream_open_failed(str function_name, TA_RetCode retCode, int historylen, cdef _stream_like(tuple sources, object result): pandas = [s for s in sources - if __PANDAS_SERIES is not None and isinstance(s, __PANDAS_SERIES)] + if _PANDAS_SERIES is not None and isinstance(s, _PANDAS_SERIES)] polars = [s for s in sources - if __POLARS_SERIES is not None and isinstance(s, __POLARS_SERIES)] + if _POLARS_SERIES is not None and isinstance(s, _POLARS_SERIES)] if pandas and polars: raise Exception("Cannot mix polars and pandas") if pandas: - return __PANDAS_SERIES(result, index=pandas[0].index) + return _PANDAS_SERIES(result, index=pandas[0].index) if polars: - return __POLARS_SERIES(result) + return _POLARS_SERIES(result) return result diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index 5b8a34185..d67ab581b 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -16587,15 +16587,15 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_n_u_ZLEMA __pyx_string_tab[2218] #define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2219] #define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2220] -#define __pyx_n_u_Function__call_function __pyx_string_tab[2221] -#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2222] -#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2223] -#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2224] -#define __pyx_n_u_Function__local __pyx_string_tab[2225] -#define __pyx_n_u_Function__localdata __pyx_string_tab[2226] -#define __pyx_n_u_Function__name __pyx_string_tab[2227] -#define __pyx_n_u_Function__namestr __pyx_string_tab[2228] -#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2229] +#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2221] +#define __pyx_n_u_Function__call_function __pyx_string_tab[2222] +#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2223] +#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2224] +#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2225] +#define __pyx_n_u_Function__local __pyx_string_tab[2226] +#define __pyx_n_u_Function__localdata __pyx_string_tab[2227] +#define __pyx_n_u_Function__name __pyx_string_tab[2228] +#define __pyx_n_u_Function__namestr __pyx_string_tab[2229] #define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2230] #define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2231] #define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2232] @@ -17068,7 +17068,7 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2699] #define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2700] #define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2701] -#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a __pyx_string_tab[2702] +#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a __pyx_string_tab[2702] #define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2703] #define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_G5_A_TU __pyx_string_tab[2704] #define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_G5_q_31HA_A_3 __pyx_string_tab[2705] @@ -17182,7 +17182,7 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_8_31HA_Q __pyx_string_tab[2813] #define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_G5_9_31HA_a __pyx_string_tab[2814] #define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_G5_8_31HA_Q_4 __pyx_string_tab[2815] -#define __pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U __pyx_string_tab[2816] +#define __pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U __pyx_string_tab[2816] #define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2817] #define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2818] #define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2819] @@ -17193,9 +17193,9 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2824] #define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2825] #define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2826] -#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s __pyx_string_tab[2827] +#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s __pyx_string_tab[2827] #define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2828] -#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A __pyx_string_tab[2829] +#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A __pyx_string_tab[2829] #define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2830] #define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[2831] #define __pyx_float_0_2 __pyx_number_tab[0] @@ -348882,43 +348882,43 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { int __pyx_clineno = 0; CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{16},{105},{7},{6},{2},{32},{33},{30},{64},{48},{35},{9},{36},{39},{34},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{2},{8},{15},{29},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{7},{14},{28},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{3},{10},{24},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{7},{14},{28},{11},{25},{4},{11},{25},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{13},{27},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{8},{15},{29},{12},{26},{3},{10},{24},{3},{10},{24},{10},{17},{31},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{24},{32},{30},{35},{16},{20},{15},{18},{13},{20},{29},{18},{15},{18},{15},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; - const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{261},{104},{277},{246},{247},{247},{247},{303},{248},{248},{249},{279},{250},{250},{366},{259},{261},{253},{254},{259},{253},{439},{276},{405},{391},{262},{346},{265},{262},{363},{248},{276},{317},{357},{287},{347},{288},{293},{427},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{399},{335},{335},{400},{336},{341},{494},{511},{436},{418},{361},{425},{458},{537},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{287},{290},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{633},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; + const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{16},{105},{7},{6},{2},{32},{33},{30},{64},{48},{35},{9},{36},{39},{34},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{2},{8},{15},{29},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{7},{14},{28},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{3},{10},{24},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{7},{14},{28},{11},{25},{4},{11},{25},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{13},{27},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{8},{15},{29},{12},{26},{3},{10},{24},{3},{10},{24},{10},{17},{31},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{12},{24},{32},{30},{35},{16},{20},{15},{18},{19},{28},{17},{14},{17},{14},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; + const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{260},{104},{277},{246},{247},{247},{247},{303},{248},{248},{249},{279},{250},{250},{366},{259},{261},{253},{254},{259},{253},{439},{276},{405},{391},{262},{346},{265},{262},{363},{248},{276},{317},{357},{287},{347},{288},{293},{427},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{399},{335},{335},{400},{336},{341},{494},{511},{436},{418},{361},{425},{458},{537},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{287},{290},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{633},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20442 bytes) */ -static const char cstring[] = "BZh91AY&SY\204\277\032T\000 %\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`d\277z+s\347\226\000(\000\003\217\005\200\000\235\t\2654;y5Cl\310\001\317\000[\221\217F\201\323\333W\003\323]J(\273HNL\000\007\327T\353\243\357z\275\363\357\266\307\337}\347\\\251\364ah}G\275\353\310\211\276\334|C\020s\354\033\354\361\317\2468\210\363\307}{\357\260\373\267\226\000\000\000\t\352\363\357\236K\351\334\337^\270\362\252\274m\361\304\002\212\001@7\271\316\363\266\336\235\275\336\367\273\234\236\367v\361\271\357\200\003\332N\276g\335\263\246\222\345\355\271\333^{7m\335\235\354\256s\226\367q\333\316\356\367\251\266\365\347\0013\273\313\256\362\025J\256\262\217N1\332I\244(\240\000\000\000BAJ.\r\214[\243Ux\346\264\013\355\247\336\316\323\257^\370\004T\371\227\302I\010\204\323\t\200\000\021\201\032L\232\233d\032\r&@M#$\323LM\342SL54\014M\250\3312\203\321\036\246\201\246\202h&\200\220\022\r&\224\375452\232=O)\342\237\237\252\n\217\324A\240\001\240i\241\352\031\006\206\2004\0324=@\rS\336\232\244\204h#I\243\"h5?Jz@x\232\230F\000\232hm@\030\001\030 \323F\2001\030&\023C\004\232I\010 \202d\230\3226L\200\324\236F\202aM\352\236MF\215\250\r\006\324\001\246\207\2504\320hd2\003F\200\010\224@\010ji4\047\250\324\325<\325=\252x\321\251\262\2313A<\236\"\017By\243C\"TyO\024?L\021Oh\311\251=\047\345F\311\275\025?T\021$\202\024\311\240\031\250\323L2\t0i\223ML#SM\352\0234i)\266\2244=OOT\315OH\375M&\236(\366\251\232C\324\320\311\241\377\340EE:\274\017\024\344\207\203\313\347\261t\270\362\3238\353\033\252\212\234\326\272\027\341RCa\023v\233j\315:\3373{\367\260\347\224\335*\024\344\2051\353\033\t\256v\354\025\010\326\246\273h\337u\340\213\313\340^\272\250k\304E\221\001\221D\250\rDA\250\n\010H\2020\202\n\004\202\047\347*\224\022\212\224\242F\000\244\202\002\310@j\330\020\013\020\001\031 \024\245\220\006*\302\010\222\245\010\020\252\024*\250QKDE\010/\241|\377\271\276t\361\337P\337_\322/\366\0326\017\333\365\021\375.%I\034\362\007\325!\276\217\254\372\343\001f""\302\217\221kU*\251(\327\260\243\200\300T\275\222V\316\354\022\324Z\244\250\020\365\244\202+e\201E\224\204\245VEB\215\"D\207P\300T\270$\212\330l\276\351kc\022\331\361\324\240a\235\362e[0\377\177\353\342\215?\260Q\037\367\000\376\342X\201\342Pn\020\371F\353\212\370\214\032\216\030Q\nR\224\203p^2\022\032\323&4\200\034\206\004\3236jk$\220\2329oJ\307T\340,$0C\000\326n\023@S\014\305\342\350\316,\262\270\r\344Q\013.\n\"\231\006\355\246\375\247L\370\345\207F\342\227x\270q\276\001\375\220\007\347\362\365\317\226\004\214FV\303\365\202\017e\275e\205\3600\306\366\026\037\333\003j \274\243cl\037\327\265\202\242c\335\350\327M\277\270$\242S#\220\241`\212\353\375\324\340\204\017\271\255\027%dqp\277\336\034\014(\027\021\027\277\217)k\017\314\007\"\232\215g\373\375\"\212\331\302\222DSU\327\374\t\330Z\311\325\202\200\302\021P\245\004\327\374\"\242R\311\321M\033\"\201A\003\235\317\354\n\211\251\326\327DP\256\036\201\235X\002\030\246\237\263B:\234\220\342\340\336\210\256\002\355\376 9\032X\326\340eM\026\0255\377\032t3\256\007$\006\227K\310\257\371\022\270:\021\316\216\003\344\323o\362\312S}\265p7\034e\035\032\204ib\346\254?i+q\231`\232\351\310\315\021\355{\206\006\327_\363\001w\255\306p4\034\203`.\343@+\200H\037\347\255\235S9\034\344\265Bj\224\245l\272\"\203\376\213\010\315\331\002\354\026\333\253X0\326\332\037\333\026\027\314\2026\\p5{\"\214\336\3441\323\375. b\300.\021O\033\331\006\242\302AS\213uZ\001\252\020\250\270\0342\250\250\310\217\342\237\313\306.lwP\230\233\331\262\247\006!S\020\331\023\340O\037\034\010q\035\006pJN\205\007\331\377jJjm\322L\212q\300]\222\314\030H\032\0160\260c\375\333\346\246\010\004\177\276,\0055\n\010\336\265J\314\361\245\317\374\010(\266\002\34528\316\201\200\254\212\346\352\240\213\372\376\340\001\260\226\274\225\014\213\270!\342\221\276X\201{5{\240[\352\352-\301\017aA;\336Y\030\247\374Q\223Z\255\370\006D\211\306Z\314\216?\345W\310*\273\214,\211\023\200E\325~\317\374\354\365\36668\005ckW\047\225P\244U\265\002\201\223{\010O\372`p\244\217\3354\033D\352\226@""\302^*\314@R<\277\353\344\303\3016\325r\230d\270\256\203`\266(\360\251\237\302\235%N\021[D\323\014,\017\375\201\3515\242\205\270d\216p\026\342\210\260\276\346\177y#\301*E06qA\240U\340\377\335\017QE\026a\002\243\2121\377\300^\300N\363\242=\303\t\245\353W\"\027\377(\010\354$\215\255{\306\202\243B\002\343\353\0007\r6\313\215\021\216\035\204\n\376t\350\250\344Rud\263\006\327J\201\362\200y\222\036\243W\0034\255I\261\021\377\244Q\265z\3212\300M1_\323\003\245\021:\364\027\001\223#\2137\343\032\221\026\035>\35207qij\343\270U\273\364\001!n4\020)\250\023\233\047t\315V\204\005\032\272\365\224y\312\031j\216\350\225!\355\315UR\343]\205/\257p0~\031\035%\256\006\177A\210\233\365\220\252*\201\307qB \213\226\221\310\252c\276%\233\027W\3548y\014\302\311\335@\255\257q\204\240\274-J\321@\206\276\311\334\336\215\212*J\356;\224\265\344\t\275\007M\306\204\016\342\202\232\350\357\243\264F9A\337\224\256\240\324]\261A\251\201\247td\347KXz\270\321\304s\t/\277\245\216O6\301#\300<\027\202^\007\232f\326\234\025\371_\343\337\361g\313 \305\216\356\212\247Eh\210ot\334\213Vl\234\332\363\363\347\231\303\246Ugs\360R\356\267\335c\254\346\273rW\037ECr\0346x\271\360\320\253\313\201\334u\354].g\344\245\253Q\247W\005\226\304$\035\250K\275\010\357@\033\300#u!aT\350\025\371\025<\302\274\250\007\225\020\343A\343T\362\nx\324<`\007B\201\344U\346\020:\024yQ|\242\007B\257@\t\234\007\266\003\320\203\312\003\342D< \207\200\027\276\003\320\003\351\024\350A\342\025\341\0208Q=\002\276\370\2478\207(\217*\217(\247 \247 \017 \2078\047 \047B\2572/\244S\231\003\241 \346@s\0025$\227J\026\264#\240A\322\220k\004t\364ttx\270\333\340\374\177%\205\365\033r\255\317\326\020S\226\236\351\010S\241^\324n\240\247d\251\356\300\350\230\360\031\\\370&\032\336\0164\n\231\274|}\300\324\021\200\375\303l\021\303\\\035s\3357IK\217s\264\371H\034\215\025\252\r)\257t\016\235T\202E\266\265!\273\240e\024\314\300\013\334*\2169[\337\212L\036\364\034\013\304\340[A\2131\362\246\324(k\257|:\205\306\206\0052\364\356\236\322\223^\047z\3476\212\253\367I""\310\346\341x\323\251@\371\2011\201_\202Hc\275F\024Ykn\364=\301\342*H\232\305\000\247q9\343\025\275f]b\211G\353\276h!\265\241n&\264\357\337}\215gE\256\263\361\003\235\3525\225\325e;\210\3409\020\334@\203\3359\243\323\211\3422\265\366\367E\035\254\010\214o\326\324j\216\340u\233Q\251~\244yw\n<\0054\251\305\t\035\300>)\230J\356u]k\007\272\016sK\315\305\345J|`s\212\250\235\260\270e\222{\216\004\346\324\265\000s\367\307\002kU\355\334S\233\034U[\272S\201\222v/\334\003\270\267g\356\200\362\233\351\231\356\006\340i\326\303\274qR\365\276\303\275U\3628t\211\047\274\323A\025\343H\331r\375\373\357@f\231\351\355A#\276\243\211Q\303\246\303F\254\207\216\374\305\241\271\371\273\363\210V\374I\263\236\343#\226\256\217\337b\017\214\333B\235\302\345\203*S\345\330\221L\361\336\202\212x\032\216\342\364\321\323\337\252\365\367dV\254\274\247\315]\366\343\335\252\334\376]\227}\216 \021\307\31228\333\201=\351\310\215\023\354}`\017\255>\261\365\374\3359y\360g\245\327\323\301o\246\217\036*|\371\270%s\366L\342\213\216\367\033\370\263n\361\361\341\343\257K%\256,\262unJ\277\237\014E\376\236\323\202s\3564/\317\346\251\035\373\315\305\263k\267&\344\3555/\355oq\365\365d\250\201D\010rA\260\023\354\211\270^\262\207U]Q\363\324:\210\371\312\361\010j\217LT\364\007X\226\301*\000\027\322[\004\266\t^\000\300\221\261\013b\r\200\265\teB\326\205\245\001\214\026\221,\"\014(\016P\016Q.P9Pq\210\343\003\210G\022\016D\034HZ\005\332\007bK\230Gh\215\210\330\006\220\326\006\264\215h5\245\324\203\240F\264\035H:R5\245\324\226\276\257a>p\371\331\005D\214AV\020UI\020\001\221T\010I\002I$\004C\347\270\277>\034\034gZ\223\255%\332\365\252c\326+Q\277\324\367\034}N4\037P`~\243w\270\372\204\262\33364\372>\227\266i\364\214\275\320S\350\035\273\010\266(\022\344\317!\260i\244(l\212i.-\221\033\034G/a\"\\\250D4\315\233\"v\307\363\365cMfm\217\242\342\237L\327z_\351\037@\227\032;|\377?\317\307\322\337B.\376\355\233\007\275\274\033\346\277O^\271\032\346\272GOg\\\307u\033]\216\207[\245\366M\212/!\016\236\275r\233O3sG\325\340\200\357Gz=""\007\241z\217E\351\3748\254:\226\277\047\233\305\307\307\315\216W\243gg\243nv\307\366\366l\2333\223\237\263\242\235\035\235\272\250 \336\234\013\252\352:\206\341\334\273Sbh\006\201\370\223\254\365G\211\352\217Xl%U\026\221X\254\025\203\251\035\253\t\332\273\021l;\021\260\331\261v\206\300\314u\235!\327\260\355\3544v\234f\316\304r-\206\315}\213\254\3556\032\273\273\227\225R\370@It-Z\215/\177\223W?)\313#W\222\r\305\342\361\370\274^>\034\371\277\370\360\027i\340\036\013\301k\257W\266\257\036\256\316x\276 \222\026\356\227\211wK\267\257)\327\213\226\257^\275z\365\353\336\240I+\253\316#\316| WK@h\r\016\203@`^\346\037o\322D\221Add\022BA$\024VE\025\220Y$dE\002A\021\031\021b\250((*\214I\024\212E\213\010*\244PQUDY\010AT\212\022H,\204PE\375\231\003\263$\001\313b\2333>\240\246 \223\222\n\216&\315\316a\232\006{\224\320\r\0014\016\356\253\375\377G\311\017\277\367\272\366~\303\300\361\307\324\247T\306c\354\345\377%\371\214\342.|\371\315}\237\261L\021S\264F) \250\304#\020\013\256\361\317\034\\\003\216\340\275\201\306\274c\232\207\223\021dd\025\324H\2522\250\376}\261A\310\216D\006.\252\246\256\322\232\013`[\242c\344\2444\030d9\267 \227\220TC]\r\020]u/\274\275\225\320\360\234\016\304P\320\270\276H*\216\375\216\231Z\242\027\243\235\352d@\222\004a\030\302K\005F\n\215.t\022\374\213.\002\354\367\356\001\221!\001\315iB\227\346\227\227\373T\243\316$T\021ib\034\034\002\311\016\317\037\207\273\276\367\352O\030\304\337\265MSV\265STK\020R\210\245E\tT\204b\241 b-\302\346\246J\344(\344\t\2750\301\220$\\`\336]\202\337+!4\311\241\222dA\204\221dD\252\225\020\275\253yo\023\177\026`\250\272\267\020\337\226\271Me\000\222\310o!\310\345\274\r\034h6aw\312\266\332\010\\\333zm\277\3472n\316;\310w\236\027\332\340P\34088(Gb\212\342\3544\333\233r\027\350&[J\221\210l\201 [\251\236\312\205\333\304\341\211\220\314\033m%\nF;\224\301w\206\240\352\233\334\003$\202+\217\271\223J\224\r\220\332&\216\200\272h\241i\373\263\0217\230\200\345nB\016NH\230\355Gi\302\267\353\240\206evR\232\322\206\200:\n\216\233\263\332\005""\311va\232\031\331\221Ih\270\241\210\206\324P\332\213\230f\033_\341\246\\\032l&\3016\003\2606\001\261\035\2004\3203123\316*\216`\346)\220\253e\352\203\357\336_J^\016\256\006\30442\320us\350\351\034\335**:#\226Y\001\270\014\307+\304M\334\020\240 b\3567\010\256Y\030\216!\304~\242;\311\251\245N\007`\250\354Q\3232\300\3170\315D2\025\027\370\204\221M\225\264\263!\001\211$a\366\342\2763\236\303\260\031\361\230\342h\327\334\365>I\033\235\022\365\217\203\377<_\034\270\377C\210Ky\374\377\237\363\342\223d@\216&R\375!\372\251A\0210\n~.\177\221\260`\211\000\347b\254?\260!D\366Q\313lB\244\270\375Y\032G\354@\\\013\322\203\362\263`\226Gt\263\244\245!\204\003\343\032\332F\177\255\353aWP/\311|\203\213\031\374\231\264\232U\262\236\"C\363\247\223f\307,\243>*6\202\264:k\r\373E\002\325S\336az\245\215\177Ya\257\253|\030\241A\215U\177t:(<-\263\273\274\r\n\214i\373\321\025\363\226\035\013\216\027\\@\242\303\2567_\347C\252\323o\206\243_\315\374\271\246s\333t\257\364\365\347}\212a\313}:D>\335\205\362\345\013\207\264\300\037\375\032\215\274C\323\366v\032\307\000\372\274\246~\335\277_\323n\000\320\246\017\271\322\241\033\306\334D}\251\323\3120\nbxe\272\376z|d\016\214\362\273\351\346t\245\322\256\3728\247\351*\202\300|w\251q\342\267h,\275\237q\204\322C\311\305\346\032T{Z\355]\005\312\035,!D<>\031\224\261\301\037\232\037\306\177\202\211\253\233\255\307A\310#K K\352\342\026\275C\014\314\3025\366s\364\004HI\"b:\351\220\246PEn[\307\021\305\023\252\207\244\346g\203y\200H\3555H\234hf\271\006D\302\312N7\345p\343T\334\333\205\303\"\253\215\251kf\364\331\326\333\023\211\r\0326@\3435M!\3050\205\362\332\335%%\366]\240\n\230.i\272\031\200)p\002\344\271\006%\200*}S\324\311a3\004\317\342\370\203\213\003aa@\341\212\032\021r\3653h\031\271\210\340\230\227\352Eu]L\3015N\002\327\356\351\366z\263\201\347\237\272\027-\326=\024\351\212H\217\336\255\330\250\017\252P\004\252\225J\240\360\373=bIR\246\r6h\221n_\322\2468\265,\024\311\205\240V\210\005\324\217\343\301\362uZ\240\250\2001hp\307\007\007l\213\200\tV\254\221V""\260\310\252{1\252V\325r\260\364\226\277\356\356\210u\315\023F\271\256*\222\004\215\210\214D\266\306\305\267\366jK\341\300\325\253VJ\230\025QT\337~\034O\256\025\305\201+\002\014\005\221.\305\337D\246\341\326)\272\016\260k\367\332\007\371\177\007\341\331\356=\322cq\345s\211qo\217\335\365\354\221\265\017\207un\233\240\260\027\202\376\352y\201\006\002\370\213\342E\360\314%x\312\n\336\225u\r9\0069\276\206\315\203\243\345\030\013\211$\\\243O\270\202\3644S?\265\262\207\310\251\302\246\324,\304\344N\372\351#\367\322\016{\327S_m\343\373\374\\{\"\341\267\337p\266\256Do\\\022B\270\267m\226\3229zn\211![\r\344\225\302\332?\220\227x|H`\032\270\324\007|\377#]\371j\250\313^\303\314\\w\245^k6Qc3\026R\256\222\026[\n\025\312\347\254\310\027\367q8\361\317\362l\177\252\345\264\305\333j\022\213o>\355\211Q\271|\203=\231\2072\232}\371Mz\002\215\361\240@\232(\027\206y\270\357dnD\t\r\234\275x,\232\206/\002\345\277z\005\342\361\220\257\305aV\236\036\231\313\232Y9\004\304\351\204\314%\305xa\226o\215}\014\014\300\361C\350a\3423u\236\226\252\252\252\253\354{\217\213\305\377y\341\024\2777\347A|H\261\017\224H\036\332x\306\263a\367\362!\264\241\266|\370\252\031\376p\005\"\010\252J\020\354\014\010\305\226\035\205\007\366\317\341\343\360?\204I_\330\t\343\047\027\047\357N\325\324?P\256\030\211\020\354X\227]C\326\021\206j\217\354pC!\254\247-\2545\316\230\3038\263\370y\020z\371x\375o\315\3049\363\262]\254\345\340\265m\272t\342\275\235\347\004;\047\373\364~\251\017\342\010n&\242TJ\007\300\236\007\342\023f\226\211\262\204\"\320\377\274]\272i\t\025UUUu\204\207hA\233h\352C\372\006\335\236\022I\354\220\344\023D;\010s!\204\023\231\305)iKJZR\322\226\224\264\245\245-\360\355\017\027\361S\363B\036\317\213!\266\324\332C\304*\253$\222I?\345\256\320H\216k\270N17)\247\016i\263\245E\245\224\017d\010r\346C\3022_%\350\020\266L\266Kl\226\331-\262[d\266\311m\222\336\322\034\271C\237Zr\330\202C\221\016\300\343hq\3056\334\341\000=\202\034]\367UUxvqZC\270\207\262xp\204C\013\222\375(V%wP\311N\220\232\tD\023~9E\220\255x5\225@K\030E(\004F\025\024\250TR\224XVB\300\204\022\262\025+!I\000c\001+!A\010TR\224\016\320j{\017\313\303\360 \203x\274\347\223\306P\320\034\350q\245\302\047\231\020\362\0367\362s\231\217P\236g\323\360j\352\2358t\343 cD\207k\023\227v\322HM\005\232378\333X\177\353(\226\224\335\036\\\263\031\025\314\310T0.\325\333\212M\231\220\343s~F\354\024\005\006)&\210f\242\034\266\206\306\346\215\207fo\271\277\336\343[\034\365\266\331\266\3673{\254\035\265\261\310\347\002\007\034]ot0\201s[\201!\215\350\376\373\022\271\221y\321\347$\204\t\002JP\347ic\031\030R\363\2245\317\345|>1\"\034\047\332\047\037,\222I$\222I$\235\320F\217\033\214\301(F7\242)N>\016\361\017\342\021\034H\217\221\307\020\217\240\021\264!\216\"X\215\267K\345\020""\311\003\242\242\311o\037\026|\244\377\340\334\376\210\244F\263e\310\203\205\007\204\rO\031\353\366t\2531\341K\203\260\232E8\220\342\010F\022\2018iI\030IK\304RL\206\0323\2118\004\260\232\373\211\275\205\027\004=\273\rqLa\231La\236\232c\014\312c\014\312c\014\375\032c\014\332\230\303?\315La\237\202\230\303>Zc\014\332\230\303<\364\306\031\360S\030g\024\306\031\360\323;l5\253%\325\026\027T\306\031\352\2460\315\251\2143)\2143\266\230\3037\2460\315\251\2143\364\251\233Xk\266\311uE\205\342\231l3\266\311uE\205\342\230\3037\2460\316\224\306\031\316\235\030gu6a\226\213\013\370)\2143\262\230\303;)\2143\272\230\303?\r1\206wS\030gZc\014\312c\014\354\2460\316\312c\014\356\2460\316\352c\014\312c\014\342\230\303:\323\030g\313La\234S\030g}1\206wS\030f\364\306\031\322\230\3039\323\030fS\030gJc\014\312x\210|\223\251\016\211\0166\207\036*ls$\210\004\346\374\2449\020\374$(LUUUU}\232nB\300\316\317\001i\017\016\360!\231\242\343\230\\s\013\216aq\314.9\205\3070\270\346\027\034\302\347R\033\020\361\220\356\355\207w\351S\036L5\344\244\272\247\"\026\3039S\030f\251\327^\014\206\336\3056UU\\vqw!\344$\235!\016\322\037\233\257\315Kii\000\200@ \020\010\004\001\233N\336[m:\266\335<\0239\363\332v\375Jc\014\354\247\227\247\023\247J\3645\223Z\270\314\313\214\314\270\314\313\214\307\271\354\236\367\017a\357v\275\243F\215\244\010\023\213\232\r\001\277\234\316e\360$\032\271\003\344 \037/\254\005\221\020PIHz\312\n-\047\254\310\256\034V-\327\275|D\ndB\037a\260\210\200\"BFA\021\2449\005\323\315\265\010r\337!\357oM\210s\352A\2418\370\364\252\252\252\252\270C\260\017\210\202\004\246\310\242\212(\242\217\243D;D\266A2\233p\313\023S\331B\033\302e\004SR\002\201\004\214\002\006R\014\201\313\327\327\236w\n(\242\212(\242\2131[m\266\333m\266\333m\266\333m\266\336\235\366\235\346|\363\235,\226g\212\232\352 \234\047\022$\204 \020$\241x\251\031A\304\321G\256\337\277\273\250q\276#P\211b.\200\206H\277\231\2707\337\020\221\374 \341\022\370\004\274\352;k\237E\230xHh\307r\355\2718?7\330\345\033-\2711\201\234\322\267\364\243/\342i\006P\352B<2C\343\017\220R#\026)d\237 `\242\210\331>0\300\243\277n\360\234\000\231\367D\210i\027\314$\004\344\022\302P7\211BP\255A\007H\220K\304\300M{\n\334\300\276\014\211\004\031\004\024\024\031\004\024\024\024\037\303\342\330\211\275F\357(\362\354\212\216\316\312r\3676I\376\257\220\266q^\343\262\222,$ *\226\023\315\014\026\"\226\036\344/\233\317\355|\352\252\252\252\253\354RI\367B\027\326A\017\320\367i\366\017\237d\367\205UUUTL\005`\226\235pO\257D\307\032\030\212B\010^& \2300\302\036\212\322\346W\226\360\345\331La\236\212c\014\3734\306\031\252c\014\312c\014\312z\210zz\235:\365\256\0272\270\\\312\341s+\205\314\256\0272\270""\\\312\341s+\351\375\216\277\265\236\244\355>\307\252z\275A\351\204\220\365\272y\347\204\335T\336M\001\002F@\224\241\274%\244!!)46!Z5\316i\235\363\t\270\024\047s\326\371\346\350#\244L\247\250\023\025.\022!\200\234\035!L\302AB\300\224\230\3468D\311\300$k0\220MQ2\\%\002pj\t\252%!\233S\001+k\245\300\225\363\323t\374\177\n(\242\212(\242\212/\204\2044\311\005dddddddd\324Lg\006\333\301 \233\204\372\242`C\302CcdQE\024QE\024yr\345\232!\255kY\231\231\231\231\231\231\231\231\231\231\231\231\231\233\220\334\207X\302\035\010x\210`\177$\206\322\024vl\207\320C\002\026\033\220\362m\244QE\024QE\361\220\346x\366\356!\265\315\210o\345\225\213\026,X\250J\022\204\241\216\005\265\204\241\245wWZ\233A,]E\200AtX\220\201\201\301EUUU^\223\345\353\326tv\353\305\325\346\363\331q\3258\224c1*\353C0K\027Q2\214f%]hf\tb\352&Q\214\304\253\255\014\301,]D\3121\230\225u\241\230%\213\250\231F3\022\256\2643\004\261u\023(\306bU\326\206`\226.\242e\030\314J\272\320\314\022\306\0161\254\377\002fS\336\263js\205\237\227\367p\334|\022\214\321\243B\370\004hB\361\234\002/s\253\337\025\360\257\211\212\306%#\342h\214\214\205\001\342*\020\205<\337K\352\n\007\222\047\3357\273\316\003\347\361\262@6;H\306\003\"H\312W\2466\222$\224\035:g\200\023\243i;\236z \234!\265\300%Hj\033Zi\206|T\373\034H/\004-UUU_\224!\364\220\346\020\320C\353\224\204]\2100\251\024\212E\"\222A\220d\335\330Tu\315u<\347\35176\365\321\r\204L\360\002\2043\210Ti3\244v\335\240N\250\220\023\260$\0016\304\241(O\023[\205\342\\\tn\325\002y\240%\342\301X!1\274\207\332\220\374\204?P\206\3049i\241\013UUUW\334!\323A\0023\335\244,=\354\335\207\275\333f\230g\333\260\306\031\252\\\246\333qO\204\203\0032\333m\266\333m\266\333m\266\020\327)B\t\010$F\002f\022\224\241\007\033\223&\335\032\302k_d\277\206\213\2011\023\254\047\030\233\240\2351.\022\204\200\227\366\"\024\000\223o\006\353w\324K\204\242\220H$\004\377 H&ba\205\330a\035\226\252\252\252\252\252\252\252\253\360\366\365<\223\277\236\224\367y\352\375\177jq\361\236;W\010<.\204\036\001\341\210H\205#\302%A\247\205""\234\047\223\333\367\241\350\365S\312\303>\3757a\232\247\270}\375\275\275\256\320\336\323\337\374\n\252\252\252\253\266Co\255O\237\177:\252\252\252\252\374\034m\0168\247a\331\327\036\234\266\337\251z\020R\031\323\224:zi\301\335\361\342\252\253\263\216+B\244\222I%\313\026$\3313\220\371\314i\200\2512&f&B\244\310\231\230\231\n\223\"fbd*L\213\314\304\310T\231\027\231\211\220\273^XZ\301\355h\265\202\244\310\231\230\231\013\366~)\t\243\250\374` \3748\371\000@G\334\337yA\317\266\233@\336Cl\206\336Zc\014\353N;Hx\262\033x\350\260\266\2340\313EX]\351\2143\272\222\345<=w\266\333m\266\333m\266\333m\264!\354\364\355\354\302\014\016\\\241\317\245<\241\016$\016B\t\003\241\016\224\207:\252\252\252\252\363\372\336\177\220\207@\206\344=_\\\207i$\342C\205\345j\252\252\257xCD:\220\373\274\360\207R\035\372\327u\252\252\252\253\307>\376\360\207\"\031\234\271\020\350C\221\266\312\252\346fff\375\235\236\336\333w\226\333m\266\333m\266\333m\266\333m\250\233\004\320J\010t4\331\r\232\t\264L\306\334D\314\304L\254\330\047\210\371\210&\001\261\0169p\004,\016a\016\336\336\023\267.&e\304\314\270\231\227\0232\342f\\L\313\211\236\177WR\004\t\364\007\303\352\37018\037\233\346\265\256\014\274\047\t\303\366~]\365\016\004\341\202\312\027\201\033P\360\214<""\206\234\340\235\221\2414\t\274]\352+\253\327\3058\262Q\236%\274\224o\t\344\0231\233\315\000\270K\304\336\023W\300\047\010\232\227\246\247\202\213D\266\2324d\322\047\203m\243\th\000\000\000\000\000\001\3256\234{w\332rI\3336\236M\247_)\2319vf[-\266[l\266\331n\353\026\331m\262\2630f\336\341\006\201\005P\\/\032\321\272\010)\361\217\272I\343d\034t\241\212\006\320\2276\227rr\343$\223xs\347\316\365j\032\326\2531Z\314V\263\025\254\305k1Z\314V\360\236\204\363$\311\267\2703.\322m&\336.\222\177.\310\001\264\000m\312\027lX;c\264&E\354\345N\317z\213\224\327\022\000\3734\363\317\303\010\024\234\360v\340\236\373\020\201}\340\010`\264%\300\"\\\000\361\002\036\20528\240\227\335\315\334\344\360\341\231\306\004z\241d9uZe\263\253\266\2637\327a\227$\rK\262;\326\225`\212\305\251kE\212*\305\025d3\216,l\227D\207\001\271\251\247~\035\315\356\371[\213v\233\350\306`kk\344\220\rp6\010\203@\033\010\021v\004\333\344\335\337\255\3219D\342\302\t\332\261\0258\035\230\310-\t2\t\337\023)J\\\302\004A9D\260\203x\255\256\023\244qgP}\341/\014\001 \224%\t\254\363\020\302\031\212\252\252\253\300C\337\354\207\277\224\326\357@\203\003\303\250o\326\235\2143\351\247A\206[%\264\350\020\333\202\035\350\020\346h\204:\020\314\307\356~\267\311\242\0355\321UU\352\374\016+\310\335\212\036Ztz[\354\265\204\010m+\266\303\212\313D\200\220O\023d\\T\240&BP\246\335\023n\332\025\211\\\250K\2202\"\033v\355\331\233\010\020\240m\\Vf&\020\202\001\022\032\\L\314L!\004\002$4\270\231\230\230B\010\004Hiq310\204\020\010\220\322\342fba\010 \021!\245\304\304\315\032\020\202\001\022\032\\L\314L!\004\002$4\270\232\375\007\213W\303\323\356\335\255\213\326\335\007K\240w\373\367\237\231\201\231WH!\025\322!\021\274\225[\026+\357\210\275A\024\254\270\354d>\263\2112N\242O\013\241\266\347D\222\r\261\035\336\350\231ZCTN\230\230^\t\020\351<\227\357\211\270$\022\326\325!j\252\252\252\367t\352C\231\r\254<\036\212x{\010q\212\252\346k\034\271\214\343\223\224\010\004\002\001\000\200@ \020\261-\211u\324+\022\273\250f%\242d&\321/\265/\302\206\227\211""\020\334\2073\324\243\361\020J\243\272U\030\250\305F*1Q\212\214Tb\243\342\335\361\235\335\367;\355\333\211\335\316\035\337E=\276\342\014\017\214\207\217P\337\345\247\336\347a\257\r1\206Zw\220\320\220}0\326\241\267\256\236\311\345!\3677t\252\252\356\312\270\303\003\313\311[eX\322\221\320\001\004A\240\211V\242\254\022TD+B\232\314\302kE\320k\206\366\343.\345\3345\231\204\326\213\240\327 \3137\336\346\366\354\2556\332\346\326\355\207\264\316\204\365\367\047l>C\344\177/\364\361}\037\221\337\351\351\227,\354\336\252\251\232\"]w1\343<|\333\351\272l\037\226>\360\201\341\0209\250_\020\261\225\030/\240Xz\031\350\304\023\021>\243mL\302X\036\0217\371v8 p{\324_z\030\334\004\204\020\357\207C\324C\212CR\030B\375\302\035\304>\035*\252\252\252\252\252\252\252\252\257y\264\220\362\301\037A\010\030b(\243\t\t\t\t@rn{5\020A\335\000]\324\332\3357Ww\305\271\370\216\357`\355\002\336]\007\274\213\272+\0007P n\244\335\355\247\224N\276\354\017Gm>o\237\323B\036\356/2\026\252\252\252\256\244\201\267$9{Bz\034}\237M\266\333m\266\333m\266\333m\266\333m\266\370rm\rrC\227\327\246\240t!\332vs\272!\267$9e\230\206qO\254!\020\020\017:}\277\257\347<\362/\321\004\307oO\307\007^4\247\030\r\300t\325x\325b\356z\321\357M\261\307:\333\264A\316\307\266\2209\346\nK\323\332\376=\227>\327\316-q\227\rW\242\2726\3661\227\336zjp\246^\370\315\367\250\342\257\326\266""\244k\340\324\364\333\237k\336\374\236\257w\333W\216\047\023F\036\"\260\\Kv\017\204\215\355[_F\016\231_O\014\257\237\203\350,<\224]\227[\263\334\273\3151^\326\256=1Qj\343\001\353\253\351\206\232\t\031\355\236\264{\323lq\316\266\355\020s\261\355\244\016y\202\222\364\364\177>\313\237G\316-q\227\rW\242\2726\3661\227\336zjp\246^\370\315\367\250\342\257\326\266\244k\340\324\364\333\237G\275\371=^\357\266\257\034N&\214=\201\300P\272\211\005\251\026\221S\244el\270\306\274E\233\033w\347\206:m\251c\272\234}\034\257\247\213\350,<\324]\227[\263\334\273\3151_\033W\036\270\250\265q\200\365\325\364\303M\004\214\370\347\255\036\364\333\034s\255\273D\034\354{i\003\236`\244\275=_\307\262\347\325\363\213\\e\303U\350\256\215\275\214e\367\236\232\234)\227\2763}\3528\253\365\255\251\032\3705=v\347\325\357\226\371\303\226Vn\333e\274\027\347}\325?\365\343\321p\"\240[\3237\211QzBD@\345\000\010\304%\004\r.n4o \373$v\305o\266\354\0358_g\236W\327\315\364\026\035(\273.\267g\271w\232b\276V\256=\230\250\265q\200\365\325\364\303M\004\214\370\347\255\036\364\333\034s\255\273D\034\354{i\003\236`\244\275=\217\344{g\330\371\305\2562\341\254\364p\305\267\261\214\276\363\323S\2052\367\306o\275G\025~\265\265#\303f\247\263n}\217{\362z\305\337m^8\234M\030x\212\301q-\330>\0227\265m}\030:e}<2\276~\017\240\260\362Qv]n\317r\3574\305{Z\270\364\305E\253\214\007\256\257\246\032h$g\266z\321\357M\261\307:\333\264A\316\307\266\2209\346\nK\323\321\374\317l\372>qk\214\270k=\025\321\267\261\214\276\363\323S\2052\367\306o\275G\025~\265\265#_\006\247\246\334\372=\357\311\352\367}\266\331o\005\371\337uN8\211 \272\202@Y^>\235\202\020\317\ti\225z!\365H\353J\333;0t\335s\343\225\364\361}\005\207\232\213\262\353v{\227y\246+\343j\343\327\025\026\2560\036\272\276\230i\240\221\237\034\365\243\336\233c\216u\267h\203\235\217m s\314\024\227\247\253\370\236\331\365|\342\327\031p\326z+\243oc\031}\347\246\247\ne\357\214\337z\216*\375kjF\276\rO]\271\365{\337\223\325\356\373j\361\304\342h\310\020\017\020\365\016%\273\007\302F\366\255""\257\243\007L\257\247\206W\317\301\364\026\036J.\313\255\331\356]\346\230\257kW\036\230\250\265q\200\365\325\364\303M\004\214\366\317Z=\351\2668\347[v\2109\330\366\322\007<\301Izz?\231\355\226\322\365\267\241\314\007\263\313\206-\275\214e\367\236\232\234)\227\306\232_z\216*\375k4\217\r\232\236\233s\350\367\277\047\254]\366\325\343\211\304\321\220 \036\250\201>\257m\307\027l\235\020t\246f\354\"\3779I\n\022\240\322c$\371\207\273\026)\014\333\030&3B\047\372\314R\323\261\316.\231\213\217T\300\373R\001\366\317\346\357\261\010\021\214\354vS4\013\324\315\316\264|\311)\214+\231\225\346\3170\267\033\3777\253\207\255d\306\301\020m\331i&\233\036\006\241{U\314$\312V\260\002\307=\322\322\333\007\325\210\300\2008\"\257\272X\t\265@\245\235\265\037\251\340\330\226\331\206Hr\204\020H\211\343\027\275\t&\240\201\201/\n\256\201\222\240\254\004TU[\276\364\343K\023\245\206S\037F\021\020\206\321\2654\215\246\022\030\007\314(\367s\235^1\027,\234\302F\004\263\227\236\003\340\274=\177\340y\326\014\220\200\373\340\276\265X/\251Xz\217\2746u\365\317\233\010hU\302\010\022CP\326\364\352\251\325\007X\274\365\236\302\257{]\355q\210t\251B$A\334\003\304\243\0048\2218\215\351\320?-\020\374\217\016Q\214,\221Y\217\351\361C\207^(\305\370\031\020\361[\007\203\022#g\314\243tD\313\370\360\204\343y\016\226\246?\255\300\223\253y\201\231\037\204\304\337\216\t\375\265\307\207\340\352\346\027T\0130\206n\355\325C[\347M6WbS\316\244$8\021\371@\271.\226}\010M\323\222\336V\275\255\37679\350\201\002$F\031\341`\001\016\261U\006@B\006\273\260\351\313\"B\"DKa\272SQ\302\3756\215K\363\224\007\246\242\017\371\047\245\177\242\024\300\254-|q\363\215\260\235\035q\277\243\337\326n\027Li\354\3034\263ID\263Or\273\272\302\24002a0\314\224\300i4\367XF{\255v8\231;L\317/\217\t\313\212\204\366\320\275\307p\252\363<\036\026\274\211\005\027*\242\364o\235\355\271\003f\367\000\033\264\214BU\n\004@\023\047\313QM4\tm\260\266E\337\267\205\255\313\327\334\271Ul\023R\007\004W\321\364>\363\017w\247\353$\257u\352\200R\276\325\005\301D[\305=\310""\036\347&!\034:\316{\251s \322@\337\361D\035(\352\030$\267#\345\3566\343\014\347M\004\217\004\"IB\027B\303\300\370Y\271O\014\323\265\246A\034\032$\337~\027\264\264TpF\354p\212Z6(\225\261\252\225\n\005H\230\210c|hTq-u\370K\313p\000\372\000b\007\240\250\001^\216%~3\277;\225$8\235\363s\314x\220<\254V\365\277\037\025^f\300\217\304\343\323\345N\000\332<\240\206g\004\266\2200\3551@$\201\n\036\031~|V\021\340~\233}\337\033\306N\\t\017\002\033s\270k\261\027\260\030\217t\204\212\3142\2724\0322\345\311s\207\037z\333A\274\257\221\224\210\017c{\035\222\013i\357\335t\270\215\350\204\254\240t\210\301t\253\003Hk\347\317\236\212\033U\025\036\241M\254\220\206\2451\206\002\270Q\320\313\220 J2\020\047\253\350\371\355\343}\317\314^\007\222\375\276\223\345(\203q\247\345\323#2\327es\256;\245\222_\245\330sWb}g\"\226\375>#d\305\372h\336\021~\266\357\257\256\005\371l&\366\233\375\033L\302!y\032\032\020:\375\n\002l\322\272\347\203:\006\2657G\245\rB\322\224\314\n\033(\266\247\010cj[\357\n\315\204(\253\342\024<\\G\022\342\266\220\030\222PyRC\320\020R\253E\355.r5\3458\367\235\230k\332\366N\330\351\363\036\304V\215[\255eFEUQ\005W\216v\2014jg~L\340\324\340\031\251\335\2673\263\337;\047\314\2238z\2315\312\226\232\206\326\264L\323\245#N\223O,\001\002\354\361\314\353-\255A\004s\263\303U\026\007\254\016Z9\242\244\311\034\202\003\225 \031\007(\2069V@=\320\3348\367I\357w\2357]Z\222J\003\310M;\346m\324o.\356\010\203\277\226\240 UO\267\361\250{\020(\002d\001\225`\006\330T\315y\333M\242\023\000|\252\211\327\"DA\034\243q\235\200\304b\022\326 \304\033\001c\000\3529\013\366QAaA|\261\016\036\235:,Sc\2429\3214*A4\003\r\004\3706\320;\360\026n\344*\314I\002@\244\326\003\r\256\354\226j\250;\270\343\274m\006!\365Ht\216#\313A\2343\324\207\240\371\267\373\032\207|\347\330Z%cET\222J\002\322\212|{\333\316\362\366\314\220\357uCj\313\330\337(6\345\025\007`WeV\001\262$\r\220\331\323\332!\341\207\025\022\301-\t\345FV\340\347\n\303\203\265\204H\010\235A\376G\222\235\275*\216\325H\344KQ\2076;`\021D\217z\035G\250\345/K\230Q\006\353\250,w\005\344\025\037\000\217\200<\n\275_A\311D\017F\323\330.]\303R\214)\205\005\007tS\274\002\302.\2415\323^j\211\031\033?\250\361\211=9\305\227\304""\n\331@yy\242:\213\244\206RR\241\314h\2335\242\211\315K\\\267J\031\357\233\214\223\2675\222$\307\t\376\246\010\262\356\206[h\023\207i\324\333zb\212|\344\212\200\305\016L\227\365 k\007\016\257[\210\022#A\341\331\375\304\265\rB\270\374\023c\354\364\010\224\031\007\026\273|\215@\316\336\363z\020\324\005PH\250[\0160>\016\313\275A\024\023\350\327eOR&\320\243\336\372\202\202\017\232\027`S\214q\272\200\270\214~,\267K\356:s&\246\322j\336 b\202a\024\t\047\021w\243il\277\177\221a\302X\350\034D\t\023\\0\357\323\246Bh\340\247\263\327\340\027\000\221\306\005\007\242Q=\253\272yG\260\007\tS5\013\023\224\341\021\025:t\027@\271u9\316py\3059\003\221\344\0219\021\016D=\"\3359\371\006\346\321`\200\263\317NDQ\274h4\031\223<\014B\016@C \344\004\307!(3f\254\221e\204*\242EZ\210\242\002\262ssO*\017T\224\304C\241\270\373M|\333\212\227\322\312\274\"<@\261\016!\047\025\346b#\"\252h\247\263U\332c\272h\323\337\253\236\332\232L\246[*e b\343K\274\222HV\201Z0\210\266\226\023\000+\266h\355\271\271{l\027\310\222\217\201\003\252\032KK\0312\224y\275\035,\031\335\005\357\002\304{\302\303\274m\275\362\022\006\314\2500\202\310\020X\260\000\005\222\002\305\213\366\373\300\373;C\303\r\033\341\3543\350\362x\267Q\205\336\205b\034\255E=>\207\016\304\270&\007\300\\\371\212\336+\366kDJ\212\350\311\242\0043\346\300\013\206\031\370w\246\3105\034\213\362\035B\310\251Q\021B\303n\252U7\005].n\241\3202\0308\207\025}( \346\324\340\343\347\303!0\014\317R\355v\262\341\325\227\007bc\344\255\031\344\267\300\024\271\341\047\215\003`\324\t\t\343#\344\311R\034x\271\\\353\224\014k\211#\030\030\325=\013x\226^\244E\005\342\274L >J{\014\214\"F\220X:Vi;\"\250:\254v$6]\251\324\332/6\273\2712yr\345\363l\330\345\243\217v\361zNk\322\311P\3629\207\002a\201i\047{\010v\236G\276aS\337>\321>\232`\006\233T\217}\006\226\316\337q\255Ak%\320-R\350\227\247ND=\006\t\262v\240\n}\364+\345\373\341|\227p\360\331l\255\2159\207\031h\315|\243wVh<\244\207\277\002 {\340\047\276o\277\271\355\213}\030\215\366\266i.\000\346\031\346\325\323\002ld\010\022""\232l!!\214!t\220\241\020b\367\255W\\\321\214\331\r\235\343SZ\234a\275\000+\337\261\206\367M]\317\231@V\220\354\312)\365\320A\212 \343}\225J\235c}5\245\201\0142\265\310\220\201\021\334\255%:\232\257}\234\000\222\0332D\030\316\td6\211nr4/\206aCu\214\367L\013/\361\255(\031\326>fX\3244\r\366\034S\037$\372f\312\230\304\220 \305Ae\207h\375Fp\370\010x\022\357\302&\334\244\202\006b\n4Na\230\200\347\020\003\243\"|\352\225s\305\226\204\271r\366\304\371\365\002\010\312#\306\262\345\272Y\004o\255\260\311\201\325!a\330\323\202\360\013\022Bd\226$\223\030\225\216\354#\215r5!\323\327\351\325@\226\272\301\265\333\332\300\354=\2104Q\354\231\223\276D;!\307)\002\320\354\0372V\032\200t\032\332\323R\270\265z\303I\360\006\257M\304\305\360\205M\323Xn\022\370)dU\312\315\274[\304A\267bi\350\205\216V\274\021\340\200e!\235+\367/\302=\014\215\246\323\245\345\240\203\217O\350}<\003~v\215\330S\2031\325M\364\330\314\335S\212Z\325!+e\307[\251\224\324p\306\306\273\255\030\336\006\244\340|\211\330k\211\303\014\255\260\346\256>H\2568\334\210\354%n\260\247\265\t\321\315\207+J\363?{\327\267\337\240\261y\374R\325\030\361\300\220m\r\355\240\324\372\255\235G\260\277\272k\203$\031\246\026W]i\322G?\037y\371\205\263\017\370^\024\003\210\213\302bX\325%\317\330\007\324\252>%9\374|\372\306\202e^\310l\350\354\325\025[W\317.=c\345\361\250q\202A8\324\234|\243\2653\346\232\233\265\354:\365\344\231\215\017fh*\343\006\216d\020u\017\000\234L|\047\312\202\014\210 \305\020tc\232\305\203_\016\220\243M\266c\266\3431\267&G\263\325nE\\\216\035\237\311\047E\nl\250\321I\363e\321\204\232E\262\264\227S\241[\336\245\335N\212R\375\220\272\376\236\315J\246\276bn|\210`N\316\235 \343\333[\226C\224:\365\275|\300\220\357Ocs\047\227\310\301\004V+\005\026\000\212\305\213\010\305F\"\274\022{\001\251\300*t|;\001\237\267\232\215)\330g\2156\265\250\253\265(\307\034\205\316`M\n\220M\002D\335Fy\242T:\"\231\001\004Z\r\033\027\007\t\302\207\260\223\000D\002\024I\000\334\266\212\275`\022\341O\300\227\337x\250\340\031p\360\372\235!<\346z\377\0007""\237\302\337\302\270\273\203\234\214\353\303\240\010\216\235\024=t\314\312\2640\002\006b\244 \246>3i\266\213\305*m\375\315\253\300m\t$\016\004\220\340T\250\252#\311HxK-iY\002\252\025\010W\205\004\313\271\246\007\340\244\201\345$<\304\203\0174\031\346\017`\361*\250>\351K\0261\212\326{\251R.gUs#bH\216\217\252\223\356\306\020\251\361\374\337`\366\313\300\302q\371\250\264\n\317\253\241\221!\031:\206~l\363f\016\020\025\007_\264\214H~\271O\267)\037%~\365k)\020)\016\002\311V\373\312?\001\037~\006\347\200\000\374=\002t\320\262\"]\232@4z\356\361\331\016\314-->n\317g\2333\031\361,\033\003\322\267\267f0\351\032\244\304\313\200\257\221\272J$$\213\"/\262|\345\340\r+l\311\343\373\035\372\337`\035\371\264Y\251n\244>\010\214h\304fK\177>\376\203\n\244\022\335b\214)\243\354yY\307\033`\0007\322I\200\337\001\215\362\264\226\375>\235\030\210\276<,\351\333\316\271\006\273\031.U\027\302\034\022\245\307\264\047>)C:\370\021V\027\206\273\301q\n\355\000EG\210{G\304\016o\025\335\262F\377;\325\301\0239\200\356\244\006\254B\321]\226\025\331\315\334\007\r\202\306\212\232\207\363h@\337\013\n-?|\365\226\234p\036\327\366rE>;&sa\264\317\335\t\357j,\214\010\373L\250\252O\261U\314D\027\033r\234s\237=v\t\353\265\277\025\261nj\271i\353\202E|\266\250\325\311\355\275\351\3051S\n\252T\210\320\2521\241]\346\272\2134%\026\355 \034([]idX]Z@Jm\206\232\305\234xV\202K\206\027`\n\241\000-a\355\327\350\217\311\300s\321\275\257\367\000\010\342\232\014 \333\226\240G\3408\333\210\277^l\210\027\300,\346c,\300D\313G.\320\260\334\215<\201\214D\372\203\307)\022l\211,bI\203\030\261\332\2758\302\345U\211\363]~\310\3511\017C\230\036\303+\243I\356\225\022\035k.\257A\036{N\2317a\323\311*\2546\312pC\323\313\221\256\247\010\275\234@5\r\255P\310\310s \344\203#\014\343\014%x\354]\265\016\246#\351\216b\031M\272\334\252w\047M\371\250\35195K\256\353N\265M}\214\034\257D\313\251\023\027D\010\0028n1\233\260\240\272\003P\026\341\034\242*Q\n\201\264\326\375\0340&\350XX\371R#v\312[K\261q<\257\247f\211x\361h\034\004\340\266\357#\355y~6;""\316\200a\014\340\326\260\350\032BE\006\027\261h2O\010)\001\343Y\260 \252\240R\200k\320J\377F\264\275V\2448(\212V\214\302\022!\355\2457\264\023\332\t\002)\010\021:wf\332\342\211\246\225Mb)\240\215\r\004\005E$:\301\nQ\030\246)\343t\260\t\034\226d\340C\030\004\313#\325uo\324\305\253v,\032\375l\271\200x\021\3408\301\341\036\025\032\210\210\242\246\246\335\240\312\252N\014\265D\367\364\021NM&\020$\323\001:\227\213\357\341BY\204&\0032\006\315;~\353\022\307\246y5\002Bqj\006(\346H<;\351\307\014\231c\332)\246^\361j:\016\221u\261\205.\301\337\364\214B\0220\222 \311! \300z\201\273\327/\240\324\320\024^\231\316\337c\013\270|\032\271zw_\305+\030\336\3651\307\204\023\326D$\0202E\203\270DZ\222X\030\204\211\252@\262\021\"D\341D3?\t\276\3518\200}\376|\201\222`x\334v\300\007\356M\037\270G\025%i\224\367\264P\210\036\026\220\226A\003$\341\007cP{\265\027\317\014v;\333U\322I\324>ak\036\257KN\246&H.&\003@\221\264\3675\244\200\263\300\255Y\341H\341\\\342\010\256$\274\366\267\026\047+\202\034Q\320\333M\335\265\344N\371\003&Z\2643{kl@\334P\210n)8\365\207<\325\017\026\335\333ZpB\211\266S)$\357\301,\307\274\376H\211\357\033\200\n\265|\270\247W\231lb\336\033l\240B\270\034\010\222\312\325q\n\312@\311Y\001\236\343\234\340\357y\250\220\340$\270\352\205X\222\315|)+:\271\314\352\211\260\006\204\222\026@2\0102\005\240\025\212\353\0338u\2338af6\250\310\035\322\3652C:\241\334D\210w\004\207p\312\344\355\354\025j\322BI\310]u\336+y\363M\243\301\231\375\037\255TGk\260laM}\\V\370\363_\017\3431\202\256(\030\220\300\230j\036\332:SqCsqSp\035\307sp\035\300\033\341\241\006\t\341v\305\007<}+\354V\201x\326\031$\216.^\004\214\000\003\010\300\t\214\006\024\257\331H\305d2\242\270V\254\010\244\225A\263\265!\207P*=$\204\303\222\272\242\007\\X\207\\Hu\316\252\233[B\233A\326:\313C\047\307a\305\027`{\024\256<\241\006$\\I\222\313\276=Q\020*bC \246!\251\224\300\340b\320\t\024\267D\212b\246\250}\254\255\322\336{@}(B\224j0\252Tv\340\200\242\010d\212 \232\215\001\005\353\001\270\257}\254\211\323ZcV\276\342\322\352\233\367""\323\203\240\332\310Fc5T7\202E\336\204w\273\300\337\323nQ\373w\356\252f\344\036\361\251T\2424\026\344t\301\222a\2232\251r\200\tRI\014\225 \031RT\n\326\217\265Z\n\r9\211\344\366\234P\220WrNS\316\036\257\341\334\352m\301\255@\301\017\276\376\343\212\2333t\r$Qb\273o\206\333Z\233od\306]\177ks4@\034\333Wd\341\343\215\266\335\342@\364>\375\270\226\232\375~Jy\220\352q6\305\346|i\363\047\007\317\361g\322j\235\220\357z\303\257\353\320\322\344\237J\341ln\262T\244\266\302\206\374)\363\377H0\037\210\371\004_\225\025?\254@B*@H\252\021o\247H\200\377p\201\010\212B,\021C\364\221>R(\251\331\365\376\211\342\265@X&\323\362~\306\254\310\377q\321K\341%\242\306\005\361\220\025\030\313\263\334\235\222,g\257\367.\036\332\221DL\245T\306b\025\034\366\276\247\364\263\377\337\226T\373\356\366\200\226\020/\210\3351\213\"\000IP\047 \177!;\322\337\315\024?\\?\303\206\326\304Tx\350y\277<\306~\223\336.\226\242\211u\255_\264XL\240\276\261\r\304+\r\235\010\317\323\342\346\223o\366\037\265\362\331}\177\210?\362\316\020\304\3375\247F\263\003\031F+Z?\273?e\375\350\022\177n\377\355D\220\026E\023\370BA\370\047\375\324<\326\264\014\224\026a\364B\371h\023\374_\325\004W\370\034\331\216z\305\017Z\211t\027\236\204/\025\030\372\026\326\341Q\272\331>\n(8@i\005?\241\367\276\025F\340\023\242\336\374\364\327\367\312\364\242\255\257\206\002O\202]\214jL)\370\025\0235\031o?\267\323\353\373\277:\227\237\337z\000\337\013\nJ\047\337\205\366.\243\367\027\321\370U.?\217\243\332\205:\375{\350u\373A\351\276\232\230\227\301Q\371\2510\310)<5S1Q\370\252&41\274\304Tf-p\370\336\257[\361\337\362~Y\357\010B\000\t[^\300\376T\252\333P\374\302\230v*L\256\257\277\206\000\013\215\237\277\325\376}\276\307c\373Y\371\332]\353R\205\235\233\216\316\300n\262\362)K\331W\263\005\002\266\n\216U\025\034\304\324\206Q>\177\3613\177\0355b\244\237|*\310\177r\325\202\352\025\032\3757r\333\177\255\371\273\036\277\307\231=s\222\377\020\211\311/\306\237\353\212\230~\253\014;\200\370h\025\025q\203\230\225\267\346\016O\237\267\3329-\345\2226\366\377\255mp""\345\357Ski\204\302\035\3442\316\313\034\205(\320Tg\047s\272w\177\374\210\335\000\222F0\222H\222,P_\310\\$\247\014\002\307\3730O\341JU\2342R\341X\251o\255\363rv\371\177\321>8P\273J\377AKi\337\025\034-\0140\266\317\215\307\331\255\201\025R\302\202s,\302\352\010\261\356\376\177\272v\316\327\311\314]k\375\354\346\356\251\0041\205\345y\260p\014/\346N|A+\233@\244\004\273J\201\001\240\245\"\212\303\361rw\250\023\335^E\355[\376\324n\224\245\202\243m,{\341\313N\\\n\004B\320\005)\331\364\373}\303\226\251\357\003,\355\357\253\377\225D\224\234\254;\242\243}\013\002\\\246B\243\177r\305\013}\237C\263\002\034\207\310\206\361Q\247r\235\337@NZ]=\273\251\226G\356T\256?\355\235\245\201s@\017t\3716=\370{\334\324\016\361h\036\002\022A\017\304)\177\200\273\273\317\337\251\337\260\207=\322\210\r\370\202P @\002\320\240&x%\205\224\226\340\013\227\316O\335\316*;\373vv\341\337\004\260\270\177\315N\375\255\241q\336\047>5F\226\005\267\\\026\211\210b%\266\021NL\275\357\355J\376\376\355G\367\247\177\207\357\255\330\332Y\205\345\3549\234A+}\205\005F\373\237\000\245\235\234\300\345\217*\252H~\020yN\375\217\271*N\361\315Nnzs\227\027\211YNa=\275\335\255\207v%;\345\033@\356|\310_g/|\360sx\004\260\014\014\312_b\341\334\356>\321\356s\355(q\022\035\357IO\351\215n\276\365\346,2\245\022\222\026{`\327\025;\201\313\317\367\231\313\334y\351\355V\354\000$\245U\347\210\266{b\224(G\246\205\276\3776\234\264\241\331\004\345(\363\007n\360O\363N\365yp)x\035\331h\222\3327\201i\013T\305\274\206\035\241^D\027\267\312*64\016\330\322\320\247!\333\374\001}\375\2730\037\332(5\203d1\004\362\024\306\362\035\346\374\320\314\366x\205G\220Ejva\310\220\370\003\220\005\371XUO\333AQ\345-\036\356\tL\010I\373NC\244\250\320\317\263\374\250r\220\235\301D;\202\243\025C\305\037\347=\314+Yz\322\270/\303\207|9\314\336\367w\303\315\360\251\250\363\204\t\335P|\362/\320\263\341\213[\3744;\342\363\312s\271\047\047|N_\207\271\273\301\336\0019\302\360\260\201\200?\340]c\340\022\314\2241\310\032\271\n\276\362\031\363\3030\367D\207\301\t\335i""\047\200(r\234\252V{\344\267\3010\205\260\360\210[\036nzV\361\304\313!9\271\3059{\366\010\277\024\002I!\t\010H\022,*~\352\035\353\377\304\370L-\272\026\203\202\027\2471\341\275\356\031\nwH>\354\362\204\234\260\247\350\360[UN`O\260Yw5\327X\262\314(\212\231\024;\274\204\207&JwT\217\265\312)\345\025\270<\322\236\366\024\235\357s\340\317.tm\022\230xT\240\205q\0233\330\360\373\206\3259\324\221N\350\250\363\324-B\202\026\010\363\250R\341O\3439A\372\326}\207\373\350>\305\263P\272\251\207\334\246\333\374LK8+\024\267\372\003\354y@>\230\017\320\rR\037<\260\037D(g\335_\305\203\365\016\311-\202\225z\320}\311\017{\345\022)\356\007\361R}\320Oj\036\352~\354}\317\325vS\021\246\035\357v\027\337\225%\300_\032L\000p\240p\025kX\335\032G\337\373c\353z\252Q\367\377\233\352\326\301\t\332\245=\336\320`\235\250\026\373\330rTB`\206#V\246e)\233J>ry\010z\364NN\307\256\320J\247\347\374ulo,UF\234[\177B\227\334\026R)\017\332O\264\017\237\357=\251\375\002\027?\262\342\377v\n_\3754\025A\032\240\024\242\326\373\033P\221\200c\366\277J\220~p\367)G\342\374w\005\202\360\246\005{\217\245)\270n\022\003I\007\t\365O\257\363?G\322\375\342Z\224\221\367\022\212(\372\255\334p\013\222\361H\267\004o\022~\257\325\373~e\017)\365\263\361\375P\032(\205\252\352m\331;--\013\024\213F\026\212v\275\336\307\314?\224\365D\245\030\311)\373C\327>\253\\\\\260o\211|>\260~\360\356\237*t\037:\223\345%\322\027\014\366\337a\375\0379\3551\304\215\340\304\242\005\370\257\365?\243\360\221\252I\362H\266\370\355oi\330.*\204\002\302=F\340}\323\321\353\205(uS\365\326\263\371\377%\027\324#b\347\025%\023\375\242n\007\302|\201\022\217\3715U\361\304\375!\320B\367\344c\201/>\305?\003\376\177\217l\371\037\266\276+\333\351\265\276KC\345\261s\221%\020\303\021\304\242\232\216\357\307\354\376t}\237\267\342p\265V\025wA\210\233\345\306@\032h\350\t\220\264\032^POG\223\254z^\211S\337\365\216\265\177\214\255\310\236\375Jz\200\2317\337b\271\205)\245~\314\047\224\354\357=\235\337\255\243\375\221\210\374\255\350\2161\3517\235\310\356<\r\215\220f<\253\345""\202^\374\204\202\"\002o\332\235\033/K\037wx\356c\364\177_\230\371\275\361\202\367\010\365\021\017CD\344~\270\235\340z\217o\202\017\276{\276\021\"3\322D\0030{\233\365\372\317\017\362\364\036\203\034B\"HzFr!\357e\340\260\371}\002\007\047$\363\314=3/\311\260\354\374}\307r\271\346>t\302\215\020\005 Btl\022;\026\263\356\335\357\261\340\217\3241#\315$0B\300\225\321\016\336\225;\217\333\010?\234\376E\020\324hO\353_g\214\007\314G\342\372\307=\022l9C\331\177y\344\010t\242\247C\325\002B\035\232;~\307T;\345\235o\303\341\366\0058`\213\350D8b\236\037?\220>\007]EG\027O\325=\220\025?\202\351\341\177\200w\303\376\312\364\3649\224\177\"\020bE\000\352\206\351\357S\317q\273\244\374K\360\230X\371\027\316F\275R\374\234\177\216W\307K\362\237\246\347\201\357\r\363\337\303\347\374\035\353\317\263\333\234\221\355K\020\020e\355^\345\022C\243>\335K\346\255\355\017\230C\233\373\003C#\345\177\312F\230h\375\376\337\210c\345\021\363&He\220h\240\206y\022\353\367\036\357\177\220Gp\203\266\277\305(\302\245\266\205\tZ\222\351\360\376\356\354\364\332O\372\212~\265=\301\250\224\222\304\022\346\212\277\364Q\315\374\337\254#\342S\352\023\342Is\002\305\002\352\226\355\373\330{\037\267?%\251\177\277%\t\376\220\030\024`M2\032.d\265\037\047\340\373\337\264\030\047\362\300h\210\226#w\331]\007\373\276\210ss!Jz\037\334\251@H)q0\302\252k\047\303\355\343\262\276pNZ\004,G\376\002q\304<\260F\210\007\227\346\243\250\370a\202\026YH\235\n\250\343\342\243\033\032\217\210\214\022I\211e\271\026\310)j\226\255\200\330\206J`\336\227\205\355\367\227\211\022$H+E\217\225\023\343\370 ^\341/\362}\217\311\031I\366\200\232k\017\250P\270\0201J\n\310\221#\345@\031\352\243\345D\261CR+\362\245\345\276j\212D*H\n\004s\021\255?\n\344\314o\032\315f\263Y\267\2678ADs\232{9\364\367\"|\351\0219\242z3J:\224hv\231\222$\310\014\024\202\255\014&\035\226L\260j4K\020\315lVm\266\323a\231\276iH\272\321\254\341\303B8o\256\032?\177\215\334$\205\220\362\345ZU\336\217CO\325v\204X\026\230e\252\206GP\000\004\241\376t\047D\223\242C[qtr\326\265\212\2235\261\311\206\255$\017\037\263\201\216?\323\226\353\261\254\240\201\343""\0007P|\210s\207\030\241`K%\"\322\205-\254\211`K- \024%\r\213\000\226\026\301b\3126P\260\332\312\226V\313b\302\266F\311J\224\241Ik\n\331\033\001k \026V\301H\205\010RY\262\r\221\263k*X[\r\nR\0054\241B\320\330\260\001al4\240P\005-*\322\264\224 P\264\226\262\215\205\261k\"\330\002\301k\010\026R\301J\264\215%\254\002Y\0134\003@\321k\000\330X\203\021\311\230\004\310L\205\204\013\000\241B\005\ta\230\022a&\024\tH\010\021\200ZHP\013,\tI(RI@\241\230@2\006\026\020\244)\230I0\014\n)BU\010R\024P\215![\026Q\2626(R\206\251!@\245\002Y%<\230@\302\031B\024\205\207Y\200\226K<\366U\260\026>+\"\3307\226\205(\013\275@\331\002\312z\325\245\nB\357:\026@\262\331\370\224,\td,|@\325V\242T\352\242U\032\241S\252\213TJ\241_8\002\242\025R\277\210\022\252\025Z\277\210\020\250%V\257\022\364\267\3166\264=\344\322J\243$1\207\265\252\013Y\355\246\311\211\262\"c\026c\272\244\331\200csX\032v\0300t\224\360?\246\374\237O\337\317\306\365g_\340\247\352\211\305\003\241\t$\223e\224\366g\263?L\375\023\331\366=\223\236\303\271\016?R\232\341\273\327\362\327\354\224Q-\335|\271l7\357\267\350\231\317\265\341>W{Q\334\315\271\253\217n\375\333/\341l\333v73Q\212?\377\027rE8P\220\204\277\032T"; - PyObject *data = __Pyx_DecompressString(cstring, 20442, 2); + #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20444 bytes) */ +static const char cstring[] = "BZh91AY&SY\323\324\023\267\000 %\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`d\277z+\357\047,\000t\000\001\343\2277\000\001\315\t\2654;y\264BX\330\003\236\000\317#\217E\003\262V\340\346\254qN\211[=p \000>\276\251\327G\275\343\337>W\307\337}\347q\264\321\010\355\217\036\343\241^\237l\347\306\304!\317\273\207l\272\347\246\233\261h\313\271\317\2477Fi\334\034\322\253\273\243~\247u\316\353=g=\353\262\270\375\033&\3048-qtb\245[\227\013\270\354Y\274]\315\311SF\203\233F\375\246\310$\035\250K\301\010\360@\030\300F\322B\304\251\325\025\365\025<\361_9\000\346\242\034\304\036b\247\232)\346(y\200\007U@\363U}\001\003\252\243\347\"\363D\016\252\257T\004\260\002\262\002\357@\271\000Y\320\203|\020o\002Y@]\340.\201O\261\007\274WX\201\255\023\334+\364\n{D=B>\245\037P\247\244S\322\003\351\020\366\202zA>\305_b/\322)\354@\373\0249\350\034\360Nr\257I\036\232\047DC\244\241\323\004\351tz=\0377\233=_w\340\250\266\203^\021x\372A\np\261\334\234\214\271\023\322\213\313\231t)>\352\017\005~\243)\236\245u\257V\030\010Y\263\372\373\201\2401p\335\302\352\t\202\330\036\231\356[\024\025\207\261\322<`\016\006\021d\035)\247r\014\\\311\2031]kG^\344\025\0053\016\002w\010\203~\022\326\336\220\347\336\203qg\213\212\340^\252~4\326\206G:w\273 K\340\334S-N\345\3512\211\3366\234\346\257(\335\31228\260M\361\314\020l\270\207\270\237T\030S\332E\320U&\275\350}\301\356\362f\"^\200S\270\214\357y\264\3042=\n\215\317|\320:\351C]\342i\337\276\332\234\306\022t\217x\036v""\221\244&\211\005\334>\341\214:\356\341\317\271qF\246\361\273\345\047\323\334\220t\2500\367\333\235h\262;\201\316kE\245\271\201\343\334 \352)\211;\320\314w\000\374\013.S\261\350\232K\237r\034f\226\213\013B\031z\300\342\362\2025\272]R\014\373\215\304f\264\255\000c\373\003q\023)\323\270\247\025;\312/r\246\343&z\233w\000\366\025\350\335\310\037\005\2663\035\300\330\014s\250\356\373\311\264\333Q\336Q\2627bx3\357\024\300y\337\017\252e\273\367\332\200\342\231\345\253A\003\276\203xA\273\026\243\0130\031\373\360\365u\343\357w\342\356\213\360\226\254}\306G\0138n\372\230?\010\256\014\273\204\312\205B\247\311\251\230\246w\357AD=\306\203\270\2650\305\355\312s\357\300\231T\340\276\364\355\256\376\314\245\217\343\3256\324\356\340\306\377 \310\337]\304w\247\001\360_S\351\000}%\364\217\247\357t\356\364a\315S\257\247~\347M><\225z2\357\312\350\354\235\305\027\035\3767\361e\332\343\343\305\307b\246\345\276-\331:6%`\315\212#\007Oi\277A\367Z\030(\363\354\307\202\373qj\227\333\271\261C\233g\004\274|}}[\233(\024@\207$\032\201<\3215\013\324P\333WZ<\325\017-\036b\2768\206\264|\221TP\035bZ\204\251\000`Ij\022\324%|\003\nF\244-H5\002\320%\272\205\245\013\231\001\266\013\230K\020\203\022\003\224\003\224K\224\016T\034b8\300\342\021\304\203\221\007\022\026qv\201\330\222\347\021\332#R5\001\314\032@\322\221\245\006\224\272\220z\004iA\324\203\245#J]Ii\352\374I\364\207\322\310*$b\n\260\202\252H\200\014\212\240BH\022I \"\037M\305\371r\260sN\245\047RK\265\365*f\352\025\221\267\320\326\033\375\0140>\200\240\376\203\263X}\002\025+\232\235>o\235\253\232|\343-b\024\371\207n\242-J\004\3114Hj\032y\nZ\242\236L\213TF\247\021\314\324H\231*\021\r;V\250\235\251\374}\027\306\221\025\277\315aO\236\047j[\347\0370\206\030e\371~_\227\177\235~bM\275\232\255\317\275z\257\336\267O^\231\032g\272GOg\\\347u\022\373\035\016\267L\354\237\024^r\035=ze77;s\307\325\255\001\340\217\004x\257\025\344x\337\243\301\222\313\252i\363\372xx\370\371\366\345x\352\354\361\233CS\373{5O\235\311\321\331\350\253OWn\212H6&\322\353]c\2545\016""\245\322\232\0238\031\303\357\247Q\333\037\035\333\036\240\331J\262-\242\271\\+\207R;V#\265v\"\340v#Q\253R\355\rA\224\353:C\257Q\333\330g\3558\315]\210\344Z\215Z{\027Y\332j4ww.\365S\344\001%\350Z4\034\317\177\237GG)\313#G\236\r\305\303\346\341\341\363pf\313\377\306\261v\232\303Y\255i\261[\266\267\036\216\316\210\276\370I\013\227\213\344\313\305\353\367\325\013\345\333w\357\337\277~\375\377 I+\313\324#\324|\200XK\254:\303\254\353:\303\002\3670\376\307\342\"H\240\2622\t! \222\n+\"\212\310,\2222\"\201 \210\214\210\261T\024\024\025F$\212E\"\305\204\025R((\252\242,\204 \252E\t$\026B(\"\377\026`t\346@\034\332T\323\234\326)\224\022~\324\025\034\246\235NA\222\006Z\224\316\006pL\341\332\326\277\333\362\374\220\350s\375;?Q\334~\254}Jm\230\314~\036\257\332\2771\304\"\361qq\034\034\277\215L\021S|\214RAQ\210F \030a\310r\013\2208\360\014X\034k\3069\3249\342,\214\202\272\022*\214\252?\315\320(9\021\310\200\305\322\251\247\231L\342\330\026\347L\337\336\220\3160\304rnA/ \250\206\274\346t\027^\262\373\313\331\\\347t\332t\"\206r\342\371 \252;49\361\265D/\007+\324\304\201$\010\3021\204\226\n\214\025\032\0279\304\277\022\340.\313f\240\031\022\020\034\226\224)vIy\177\355\245\035\014\031 BJ)\201\213\212\216\215\315\255\215U\252\345\334#\0144\251\244\323ZSH\226 \245\021J\212\022\251\010\305B@\312-\302\344\246*\342(\342\t\2610\301\220$\\\320o.\301o\230\243\335\326S\254:\211\021Y\026\020\311\014 q2p[\304\337\313\230*.\255\3047\347\\\315e\000\222\310o!\311\316\3604q\240\331\205\337*\333h!sa5\267\3472l\315\374D\332\232J\024\371s\026T 2$\214^\354\230\006s\330v\0236\331\267\023F\276_\047\311#s\242^\301\360\177\363E\363\314\217\342\342\023\036~\377\337\373\370\244\333\020#\211\224\317X~\252\220DL\004\177\017\037\233\250PD\340\363\251\242\217\325\016\202: \341u0\205\014?J\006\037\366\334%\305\251A\361\252\334\315I\230\252\305\005GP\340\374\037J\300\317\351\371\324K \026\340\333 \357S\217\2135\203\244\256K\300@n1\342\271\251\345Pg\301\006\256iC\306\216\277\210\310$\241{J-%S\237\326G[h\276\253\320\310_DO\345\014H\017t\256vfq\203A|\1773\274\371B\216E\206\351\245\334Q\035\222\373\047\347;\"S_rF\237\207\373\361L\347\246\305?\345\323\215\2652\273\032\374\370wmz\013e\214\215\203V\034\017\376\215\006\276\001\251\373\232\215\037p~m\005\237\253_\327\355\256\340`\312\347\354r\204cg\327w\177\310\214x\275\301\225\343uK\047\343\247\254\300\344\343\204\333\036G\212X\245\233\014)\371\210\200\324\017]\244\330x%\225\315S\243l.X\200\320w\264:\302\017J\331g\002\306G\212\207@\354\355uT5;\230\374.\336\021\366\210\276/\217\357P\352y\302s\242\013\374\371\203\351s\210I \236\226\337C\242\026\242\251\2412\014E1\202+r\336\031\2072&\332\037y\310\313\006\363\000\221\265\262\2218\320\315r\031\023\013)8\337\233\207\032\246\346\334.\031\025\\mK[7\246\316\266\330\234Hh\321\262\007\031\252i\016)\210\337Kkt%%\366]\234\005L\027$\323\014\200\024\270\001q\\C1`\n\237\352z\230\254&@\231|?\010x\330\032\013\n\007*(g\"\343\352d\3202r\021\3013\027\353\"\272\327[\222\206\264\332-}\034\376g\337\324\017=Z\241r\335s\306\255QI\021\366\253\226vA\365\212\364\301*\345`p}\336\301$\252U\006\237s\304\355jm[V\3215+\250\324\246\373\253\317\362|\3015\232\365\231\002\017\344>\246\263X\032\320\002\327X&\263Z\360\206\267\305\226\241MF\240u\007\332C\306\007Y\254u\242.\2454\203\365\270\203\316\326x\270\335ji\313\310\331\253P\250\330\006\245Q\362\003X\246\2647W81\r0f\205\361\205\361\225\324\0363\364!\2505&\255A\250\035A\305\262\246\244\337\200\354\306mRm\003\262\246\310\006\310\217\237\341\315^\310}S\254\206\352\356\273\202\243\270m\272\207jM\2241\177\375\360)\025r\345\312$\244J\021)""\214\203\271BbE\245L\007P\232\246\001,%\240\371I\231\017d\245]\341\022\355\r\313\243\311&\235*it\256x\031t\271SGn\200\266}\022M\303\233I;4\357U\007\023f\004\355\274?\232\203\230\246\247\244X\236LF\t\323Ut\370T\375\036\324\t\177\342\026!\363\211\003\331O\250k\232\016\206$4\2244\317\2472\241\227\353\000\220`BI\006\200\231\302\240\306F\211\234\240N\371\377\267\364^\220\222\277\250\023\352\047\217\275\356&\355\324?@\256\031\204\210u\254K\256\241\353\211\022\266P\177/\0042\032\312s\265\206\272S\030g\026\177\333\222\017oG\037\265\3718\207N\226K\265\234\370\355[n\2358\257w\210\340\207t\375\355\037\210\207\360\0047!\343!\204(~\210\177V~\361\016\376\355\210w\321\031)\371\331<;\273\221UUd\222I,\250\246\200H\333a\220\233\205\271\366\205yb`\r\202g!\320\206\020N\207\024\245\245-)iKJZR\322\226\224\267\311\264<\277\301O\311\010{>\\\206\333Si\017(\252\252\252\254\356\331\330\004\210\347]Bq\211\251M\033\231\323O\005-]A\300\002d\312C\3102_=\352\020\266L\266Kl\226\331-\262[d\266\311m\222\336\362\034\363\016\235\251\316\304\022\034\220\356\0166\207\034Sm\316\020\003\330!\305\337uUW\207g\025\244<\010{\047\223\01009\336\030\350\242\321-\252\214\312p\t\240JA6\362\346\213!kwjU\001,a\024\240\021\030TR\241QJQaQJB\020J\310T\254\205$\001\214\004\254\205\010\tU)@\337\r\037\003\362k\373\350 \336/\264\371~B\206\200\366\241\350K\204O=@\363O1\340\373\246\047DO=\350t\364h4\303Ld\013\350)\2420\347\303i$&\202\315\031\233\234m\254?\365\224KJn\217<\3462+\231\220\250`]\253\267\024\2333!\306\346\374\233\260P\024\030\230\"`AX\214\tr\016(\030872\245\005>\352\301\270\253;\253\321\025w\267H\354\353c\222\235 @\343\213\267\027C\010\026f\266\002C\215\221\376{\022\275\210\276\324}\244\220\201 IJ\036\326\2261\221\205/\264\241\257o\314\371\276A\"\032\317\312\047\243\325$\222I$\222I\047\306\344\363\372h\360\014\242wY/\313G\257\355\022\336\2010\2750\365Q\350\023\376`\231\204\207\240\316&\212\317\363\211\024*\375\310\275\207\354\371;\315\237\350\237O\335~8>\035\372\320\326\203\254\r\037!\365|3\326c\314\227\006\352v""\nw\241\336\020\214%\002k\245$a%/yI2\030u\361\t;\204\260\234\035)\343\302\213\201=\273\rqLa\231La\237\r1\206e1\206e1\206\177\n\230\3036\2460\317\361\323\030g\334\2460\317\216\230\3036\2460\317~\230\303=t\306\031\3051\206}:g}\206\265d\272\242\302\352\230\303=T\306\031\2651\206e1\206w\323\030f\364\306\031\2651\206~\2653k\rw\331.\250\260\274S-\206w\331.\250\260\274S\030f\364\306\031\326\230\303:S\253\014\360\246\3142\321a~\3451\206wS\030gu1\206xS\030g\335\2460\317\nc\014\355La\231La\235\324\306\031\335La\236\024\306\031\341La\231La\234S\030gjc\014\370\351\2143\212c\014\361S\030g\2051\206oLa\235i\2143\2451\206e1\206u\2460\314\247\224\207\305;\020\352\220\343hq\345\246\307BH\200N\217\306C\222\037t\205\t\212\252\252\252\257\263M\310X\031\335\343-!\344\336\00434\\s\013\216aq\314.9\205\3070\270\346\027\034\302\343\230\\\354Cb\036b\036\035\360\360\375jc\313\ry\351.\251\311\013a\234\323\030f\251\333^<\206\336\3056UU\\vqw!\347$\235a\016\362\037\223\267\315Kim\000\200@ \020\010\004\001\232\235\374\365\251\331\256\023\3133\257\257S\263\317La\235\324\364u\342u\353^\246\262kW\031\231q\231\227\031\231q\231\225\354\236\367\017a\357v\231f|\362\320 N.\3473\206\366c1\273\254\220h\344\014\244\003\343\371\000Y\021\005\004\224\207\310PQi>C\"\321\305r\345\213\370\004@\252D!\366[\020\210\002$$n\010\215!\310/\026\366\241\016w\310~\226\364\330\207N\304\032\023\217\253\245UUUU\302\035\300}B\010\022\233\"\212(\242\212>\235\020\357!l\202e:!\226&\217\205\010x\304\312\010\246\210\n\004\022(\0202\220d\016~N\3353\300QE\024QE\024QV\333m\266\333m\266\333m\266\333m\267\253\215N\256D\311\251\3354nCo\021\r\241\277\2056\322\252\252\252\252\357\324\203\003\223q\021\210\210\210\210\210\210\210\211zk\027\273m\202$?N\316\310N\252\252\257g\357\270\273u\316\275W\257]v\255\335\337u\337}9\273\231\273\260\241Q)C:Q\234\335\314\335\331\315\334\315\335\234\335\314\335\331\316(\231\242\212\036y\275e\335\237\307\354\264\317P\310s%\314ni\003NS\345\315\232\203\246\023\014\321UTP&\263\275\022B\020\010\022P\275\364\214""\240\357h\243\352\267\363\370\276\202\217(\237@\231\304\347\001\"\235>\023\315\345\265\342\237\321u\t\237\314%\204\260\226\023\326\047\254L\247\253\312\236\177-\027\002b&\240\023\034\245\332\204\273~\007\27752I\277\256\316}\275\031\226\333m\266\333m\267\256\333\361m\273\266\333\\M\202fT\266-\200\234\240K\304\270\023Q\247`\232\265\211\205\302_\234H&m\204\274\022\3011\023^|[D\320\232\356\241z\221\241\016z\016$7 \340\343F\264kF\264wh\364\353pvh\333\341\242\035\010]\2102\035:\024\254\035\374\207\177>7\247L\344\337\276\205\332\262\314\\V:\353B`&@\226V\373\201\"\205\"\272t\246\254i\251\340\370\325UUUV\330\261b\305\213\026,a.k\252\35050\370\264\204\312\0036\203\255VEL<\326BU\t\240\353U\221S\0175\220\225A\2407\223\265\226\242\306\036\266\220\226B3h:\325dT\303\315d%P\232\016\265Y\0250\363Y\tT&\203\255VEL<\326BU\t\241\245J|\222S\021I\225$t\247\027\25027Yr,\002\312\031r\240\313\223V\336\333\367\t\207Hnv\250\353\016\361#\030B%(w\322\2220\224:\322\311\356\337\263\223^\307\2733\344\313\354\337\252\232\226\336\271\251m\000\000\000\000\000\277\014\367\030z\275T\364\220\325\206\277J\2060\316\264\372\207\334\350\372\227Aq\306\265\255k_\234\313\215kZ\326\277C\247\331\201\002S\3743\326~\307\326\235\206(tpZ\206\271\r\030\356Y\256N\017\345\373\234\243e6L`o\033\313{\231\033\277\225\244\033\241\324\204\332T\357\017\002A\204dd)_\000\261!!\tK\336\026\n<-\316\047p\047\027P\221\016\301}b@OH\226\022\201\274J\022\205j\010=\202A/\023\0018,+s\002\370I\022\0102\010((2\010(((?w\313\260\230\304\343\017 \271-\211![\266\216K\\w\007}\036\003\354\211+j\342\031\222a\230AT\260\236\3540X\212X{\220\276\357\247\333\373\n\252\252\252\253\347\244\223\355\204/\312A\017\233\351S\354\237cd\367\305UUU\222\t\220V\ty\361\004\363Re\313FQHA\014D\312\t\314\206\020\370+K\231^w\207=\324\306\031\360S\030g\317La\232\2460\314\2460\314\247\254\207\253\261\327\267j\341s+\205\314\256\0272\270\\\312\341s+\205\314\256\0272\276\257\313\333\3673\326\235\347\331\365\317_\254=P\221<\317a\346:U:\223\306\020$d\tJ\035BZB\022\022\223""\306\330\205x\367\317d\341}bt\005\t\307\365?<\351\004z\304\312}\340LT\270H\206\002v\347\024\314$\024,\tI\216c\270L\235\242F\263\t\004\322&K\204\240N\335\002i\022\220\315\243\001+\305\237\265/\327\246\351\370=h\242\212(\242\212(\276B\020\323$\026,X\261b\305\213\027\306C\243\344\360\340 \220\361\020\372\2049!\344!\261\262(\242\212(\242\212<\363\316h\206\265\246\333m\266\333m\266\333m\266\333x\232\234MN\255f\246\247L\324\360\211`\373D\275J%\362\224\364\211`JL\004\336\276\350HHDQE\027\314C\241\346\333\300\206\3276!\277\242V,X\261b\305\213\026;y\016\236\033M\335\371\361\335^^\233.:\247@\207Yv\340\203\003\202\212\252\252\252\275g\305\333\264\352\355\333\213\253\321\351\262\343\252\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\366\203\214\213/\336L\312\213\326\356\2078Yy\177\267=\327\301(\315\375\375\365\367\204o\241q\233\342:=\252\370\n\371\227\316\305c\022\221\363\264FFB\200\363\225\010B\274\377\rb\201\316\047\264\333v\315\243\3738\263 \032]\2021\200\310\2222\225\330\033I\022J\r\212g\224\023\354\346NOe\020Ma\315\334%\220\3246\264\323\014\372\224\373\034H/\004-UUU_\214\023\336&PK\201<\305\010\311x\221*\014\203 \3102\014\203 \311\325\302\250\360\034\n{\017\316t\364p\"\034(\234P\002\2048\204*4\234I\036\207\230\023hH\t\272$\001:\004\241(O;]%\342\\\tm\372\004\365\300K\305\202\260Bc\261\017\323\220\374$?`\206\3049\323B\026\252\252\252\257\321!\327@\203\037\025\tI\321l\"ti\246\350\226\365\322Z%\256\242\255E\367\342Orjf\244\264\000\000\000\000\000\003SQ\345\242ML\211\004\210\300L\302R\224 \343rd\350\243P\232\257\262_\256\213\2011\023lO@\235@\233\002\\%\t\001/\335\210P\002M;Z\255\331Q.\022\212A \220\023\320\004\202d&\030]\207,t\265UUUUUUU_\225\257{\333\236\031\361\047\311\317\177\375]\347\243\320|\226\255`\353z\320{\207\\BD)\035bT\032u\263Y\275\307\320\235]\224o\304\267\272\214\"Z\3529\017u\374w""\325\351\205Q\343\372d\222H\252\252\256\331\r\275\352}}\375\365UUUU\365\361\2648\342\235\307wlz\363\266\375\213\324\202\220\316\274\303\257\303N\017\017\253\212\252\256\3168\231\320\320\314\314\314\314\330\324\324\314\352Y\310l\345\361p\205\020\"!\342\002\024@\210\207\210\010Q\002\"\036 !D\013D<@B\210\026\210x\200\232\332\024V\241\253W\255B\024@\210\207\210\t\356\373\320\013\014\203\356\200C\356_\340\000\201\217\255\266\320\231t\321z\030)}\222\375\372-\022\331\350\307H\233vK\367(\221*\250\341\206Z*\302\357La\236\024\227)\344\355\275\266\333m\266\333m\266\333m\241\017g\257\177v\020`s\314:u\247\240!\304\201\307\226C\243ky\336\034\370\251\276\333\326\366\231r\266\266\266\266\266\266\266\266\312\251U*\245T\257\247\274_\033\330\217\314\2771\333\373\375\275J\235\212\035\244d\241{P\2504=\243\333\366\033}{\325\315\277\305rqaE\330KP\224$\023\200h\304\000\236 H\254\200\022\t\020\241\023\240\022\360J$\001`\220@\270R\204\202J\022!\004CD\022\t\006\000b\252\252\252\252\244.\352\252\252\252\252\252\252\252\252\253\261\r\310j;\020\367p\220\341UUUUR\035i\016\204\373z\220\233\352\322\275\0364^HY\016\241\005 \210\220\203\314;e>\214\351\234\025\350\364\324=\275\313a\233\315\260B\030\342\301\010c\213\004!\216,\020\2068\260B\030\342\301\010c\213\017Zvd\347\317\345\3747S\033\236\377m\362\371w\370/Z\022.\t\027\\\200\272\047\262C\225\320u,\264\264\262,\374(\355U\342\302I$\222I$\222M|\210\005\242\322\234\227yA3\025UUUx7!\261\017\250H\002n\037\021\004\201\324\207ZC\245UUUUz{\336\377\304C\250Cr\036\257\224\207y$\342C\205\346\325UU_\020CD;\020\373}0\207b\036-k\302\325UUU\343\247\213\304\020\344\206g<\220\352C\223m\225\\\314\314\314\314\343\273\273\343\333o\022\333m\266\333m\266\333m\266\333m\266\270M\"h\022\2047ti\206\235\002l\t\234o\312&s(\231\256\322C\312|\304\023\000\330\207\034\360\004,\016\201\016\376\376\023\277.&e\304\314\270\231\227\0232\342f\\L\313\211\236\377\253\261\002\004\371\303\351\372\275v\207s\370\177\r\255pe\326k5\376?\311\332\241\334\232\340\262\205\356F\324:\306\034&;\000""\212\242p\215\241\030\210z\007lS\220\215\331.,2\037\302\343\020\216\021\031\214\336\270\005\302^\047\214M>Q5\211\242\364\321\345\242\321-\331G^N\303S\313\255F\022\320\000\000\000\000\000\003\262jr\357\343S\232N\371\251\355\352v\363\231\223\237ve\262\333e\266\313m\226\360\261m\226\332\025UB\256\326\0040\010I\013\004\337J/ \205=c\3373=\365!\277(\024\310^\262\\\324\274\023\237)$\234C\257\257\256\366n\033\336\3531Z\314V\263\025\254\305k1Z\314V\364Ojy\344\311\257\220f]I\2515\350\352\243\363r\200\034\300\007D\241z\005\203\320<\302d]\354\251\275\317E\312p\t\000~\035\236\331\372\220\201I\355\203\321\004\372\030\204\013\357\000C\005\240n\001\022\340\007\274\020\367)\221\305\004\276\357g\047\247\315\206g\030\013\331\013!\317e\246[;;k3}w\031r@\324\273#\275iV\010\254Z\226\264X\242\254QVC8\342\306\311tHp\033\232\232w\341\337{\270\345\035\267\303\034\r\266\276y\000\366@\341\"\r\000p\240E\341\023\243\323\325\333]Bz\204\357\302\t\277b*w<\261\220Z\022d\023\300L\245)s\010\021\004\365\ta\006\361[\\&s\277\211A\362\tx`\t\004\241(K\255\312C\010f*\252\252\257\001\017\203\272\037\006S[\275B\014\017&\223\014\364h\211o}\031\210\226\252Z\2523\002_\210\232\240\t\224\270Hu!\231\217\332\375\257\213D:\353\252\252\253\331\365\270\257&\354P\365\303\310\345\354\262\326\020!\244\256\233\017\036\313D\200\220O\023d\\\312P\023\022\024\276\035\320\360\360\2460\316\264w\200u\030\036\036\036\035\375\242 \233\231\243\t\210xr0`\030\200\260\302\"\036\034\214\030\006 ,0\210\207\207$A83\215\034q\306\334m\021\004\340\3164q\307\033q\264D\023\203!\204m\217\025\332\261v\372\201\354z\307\267\302\363\367\330\031\225{\001\010\257`\204N\304\253Y\263cxE\372H\251i\307c!\365\334I\222u\022x\035\t\256tI \232\"\345\3012\264\206\2216\004\302\360H\206w\323\177h\235\"A-m\"UUUU_\016\275\210t!\265\207\217\323O\047q\0161UU\333\034\271\214\345\223\234\010\004\002\001\000\200@ \020\263Sq.\272\205bWU\014\204\264LD\322%\366\245\370P\317x\221\013\210t=J?P\202U\035""\322\250\305F*1Q\212\214Tb\243\025\037.\357\230\360\361\\\361[\267\023\303\244<>z{~\004\030\035\342n\\\230y(\3722\322]\265E\242Z\250\324%\304\022u\245\327%\377%=\223\320C\355n\351UU\335\225q\206y\254\346\000}\242\014 ^\207\324x\370\242\352\210\370\243\362\000 a\334\350\036\021]\021\314\315\003\272+\242o\320\333\214\343\202\3547\313\213q\227\202\360\033\314\302oe\330o\2442\315\367\271\275\273+M\266\271\265\273a\324\237\047\202w\303\342>\047\361~\336/\247\360\273\375\356\275:M\353\325U3DK\256\366\037!\362{;S\250\340?$|\202\007\230@\366P\276qby\306}\357^\320\356y\350\333?\027\213\254N\263\314&\\\036\261)\013\265\345\207o\226\237\006\325UU\323\216/\020\010t!\333\246~?w\237\277Mj\353A\227\n{\221\024\234\"\223\316\212O\177{\273\331\253\226\222\345\247\315\317wf\366E\024\362s\335\336\315\\\264\233E\"\212NH\244\367\321I\330\212t\314\354\331\275\223\275\024\237V\212O\214\212N\204R(\244\346\212E\024\212)<\250\244\341\024\237`\212O\201\024\236(\244\341\024\237d\212OQ\024\234\221I\344E;7\273\275\232\271i6\212O\201\024\234\"\221E\047j):\021I\302)68\247\233\326\335\336\315\\\264\235\250\244\352E\0474Ry\221N^\276\356\366NH\246\256ZO\220\212O2)=(\244\355\370>^\377#\3179|L\345\276g\217~\356\366j\345\244\361E\047$Rm\024\236\272)<\021I\340\212NH\244\364\"\236\277\007\253\301\307\004\346\212N\224RzQI\326\212s\317.\315\354\233E\047J):\021H\242\214\324\365\346\247\247\273\226\265=\2362O\207\320O\035MOX\207\022\034\020@\357!\360\372hC\267EUUUUHkJ\252\252\252\273NHw\004\022\016\344=$,\017A\346\354&\3569\360U\322$\0238\220\260\232\016}[\2206\266\250\314&\315\002w\220\352B\360\207\033S\251\007Hk\276\233H\026\351\rz)\334BY\002\315\2241\315\230Mx\347\263Mn\270M\202y\352\246d\317\003>\272\026\000\001\306\231\266s\225\317`\010@\221\001\221@\232<\312\303\243\273\253\310!\020\321\020\261\000\204\303DB\303\243\273\253\300\0047\206\210\205\207GwW\261{\237\304f\314\345\321\227|}\227\260\306\301\320\317\324\0024\006\204\226\200\353\022\005\316\013Q\017!\376<\276\212\0362\226\036f\305\036\202\214\027\236,9\354\347\336\tx\235\203\241L\302X\035bv\372\270{\240wy(\276\3641\270\t\010!\340\031\217Q\016)\rHa\013\366\210x\020\372zUUUUUUUUU_\021\264\220\364A\037I\010\030b(\242\214\3030\3143\200\363`\353\232\201\002\302\000\226\024]\302aK\016|\036\242\345Cd\026\362\350<\350\275B\260\003\251\002\007RN\2564\371\204\334\352\201\351\357\247\315\365\376\032\020\367qz\020\265UUUu$\r\271C\237M\236\327/\254\352\266\333m\266\333m\266\333m\266\333m\266\3376MC|\2609\371i\250\035Hw\235\335.\210m\312\034\345\230\206qO~\020\206\374\362@ \020\010\004\002\001\000\272u&\244\327\327\373\026O\217\367\260\236\310u\047H\203\322\364\243\344O\211\177\305\023\257\356\375s\200\036\326\350Rv\nH\247\260\302\007\214@\355P\"\235\250\300\355\036\036h\034\335\224h\023\326\047\260N\221;\257\311\003\047E\023\334$C0\226\276\005\375\224d\0235M\232\252\256\316\234^\204!\364\241\010\200\200{\351\372\237/\276|\263\322\000u\002f\325\305\312\016\327\"W \016\000q*\362*\304y\021\211\310\223\313\237\210\217\000&\271bE,\247\312$.\272\342J\204""\200\233\360\000\321\231\244m\302\334F\334-\304m\302\334F\334-\304m\302\334F\334-\304m\302\334F\335HOI\354@\003tQ\335\007\261\027\260\016\304\315\361\360\341\007\257\200\242\252\216\000O\300_\035\340\023\204O\214E\2448\220\217\023\305\224\311\247\210J\023\220X%\244\340\003\362AB\326\222I$\220\222JT-\315\302\201\302<\047\n\225\320\005t\214\251\025\321\227*C\221b\313\005:N Y\0223\231\230,\000\362\002\300y\024\2529\031\311\320\353\360\201\341\342\243\300\023\230\036b(\232\340\321\327\314\034\246\370\235\301\007\203\212\215\344J\370\201\350\206\350\016\372\214\022\254\222\255\233\251\212T\220R`\021\005\374\356\210c\"E@\311T\310\214\212\266D\366\273\317__u%\203\267\267\222\307\030\277:\235Dy\020yPb<\252\305m6J\342-\262H\006\256W\255\262l\201\262\257\212\255S%A\025\302%\204\254Q\274<\000\220\341\352\036v@\214w\300x\220b\203\252\373!\256O\350\361\232\347\262\206/4\365{YOO\203`TuAeM,\255cf\212^|k7\365^Ef\367\r:6.\261A\003>\326y\303Z\232\337~4\257Gs\316\247\323\0168\341\314\241\251\352o\016\211\237Sf\365\260\313\005\226\2421.\3257\313m\034\2557C\206\265\363m\244o-""\316\225\243\351\325i\333^=Mkp|\332\315\256\214\373\305\342\212<\004\271\260\205\350\032\344\373Vkl(b\312v\353\224\362\352\330\025\036(,\251\245\225\254l\321K\317J\315\373^Ef\367\r:6.\261A\003=3\316\032\324\326\373\361\245z;\236u>\230q\307\016e\rN\315\345\3213\331\263z\330e\202\313Q\030\227j\233\345\266\216V\233\241\303Z\371\266\3227\226\347J\321\364\352\264\355\257\035\232\326\340\371\265\233]\031\367\213\305\024x+\000\240\213`@\301\0232\021)\221\020QW:\t^\201\260O\275\246\267\312\206-\023\267\\\247\227V\300\250\361AeM,\255cf\212^z\326o\332\362+7\270i\321\261u\212\010\031\353\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jvo\016\211\236\315\233\326\303,\026Z\210\304\273T\337-\264r\264\335\016\032\327\315\266\221\274\267:V\217\247U\247mx\354\330\343\262r\261\306\315Zl\267j\374\257\272\247\375\371T\\\010\250\026\371&\301*/,H\202\014d\000%0T\0161c\260\302\370\206\324\237\245\346\332\354\241\213t\364ye<\374\233\002\243\224\026T\322\312\3266h\245\347\306\263\177E\344Vop\323\243b\353\024\0203\341\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jz\033\304\372g\320\331\275l2\301j\324`\246\273T\337-\264r\264\335\016\032\327\315\266\221\274\267:V\217\327U\247\243^=\rkp|\336\315\256\214\373\305\342\212<\004\271\260\205\350\032\344\373Vkl(b\312v\353\224\362\352\330\025\036(,\251\245\225\254l\321K\317J\315\373^Ef\367\r:6.\261A\003=3\316\032\324\326\373\361\245z;\236u>\230q\307\016e\rN\315\344}3\331\263z\330e\202\325\250\214K\265M\362\333G+M\320\341\255|\333i\033\313s\245h\372uZv\327\216\315kp|\332\315\253M\226\355_\225\367T\372\261\022Au\202@Y_\253\344\330!\014\260\226\230\327\3006\204\374\342k\235T1l\231\360\312v\360l\n\217$\026T\322\312\3266h\245\347\302\263\177;\310\254\336\341\247F\305\326( g\303<\341\255Mo\277\032W\243\271\347S\351\207\034p\346P\324\363o\003\351\2376\315\353a\226\013V\2421.\3257\313m\034\2557C\206\265\363m\244o-\316\225\243\351\325i\347\257\036mkp|\332\315\256\214\373\305\342\212@\200\360\r!\204/@\327\047\332\263[aC\026S\267\\\247\227V""\300\250\361AeM,\255cf\212^zVo\332\362+7\270i\321\261u\212\010\031\351\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jvo#\351\225\305\246\275\217.\032\255\014\024\327j\233\345\266\216V\233\241\303_\030\266\3227\226\347H\243\365\325i\333^;5\255\301\363{6\2723\357\027\212)\002\003\314\210\027\246\345\322\367\241\366\373\010\177d\224\205\t0i\021\222=#\335\223$\206mL\023Y\241\023\375\203\331\207Q\242[\032\2726\222\323<,\036\245\003\326~,/\021\0061\320\351\254\350\004\021\013\225\325\013\3373J\230[\213@\317\276\036\261\371\277\336\237\300\307V\004\010\002|\270\223>\207i\250^\325r\t1\225\254\000\261\313T\264\266\301\353\304\251\000\334\304\266\305P\"\262\005*\313\240\374\035V\360\272\250\311\20620`\314\243\340U\356\377?\000\3048*\210\221\007P\016\362\214\020\336D\3366\323t\375jC\374V\017\234c\023$Wc\370\270a\301\247$b\374L\210p\334\007\203\022#g\316\247xD\350\270\243a\275\017\244\317\243\037\320\340I\265y\201\231\037y\211\333\034\023\371\353\321\207\340\332\314.\220.\311\014\356\255VCg\031\302\232m\245+\321P\220\332G\372\300\3010\227sA\302\031$\254\225SL\257\253+\324\202\014\030D\266\324@\004\316\311\024\031\001\010\032\365a\344\313\"B\"DKa\252SX\341~}#R\374\245\003\302\242\017\261>\030\373\302\262\026\205\357 \372\r\210M\375\234\270\357\376\346\316\307\216\264\315\231\t3\236\323p\344\336\332\342\257\200o\204\010\301\204\213\244&M\356\270B>&\273\034L\235\346g\243\315\204\347\212\204\366\320\276\007\200\252\364<~G\237)\300\222e\020Z\213\362\265v05_`\001\262\300\273\224\221\220\"\000\262~:\004\306\000;m\205\262.\315<\246\267/\247\251q\252\330&\262\006\324W\322\347s\330vz\033\204\224\354\332\250\005\025\353\240-\312\"\332)\331@\354\270^\027Y\367\216\213\311s\240\346 op\304\035(\352\030$""\267#\346l6\303\014\347O\004\212(LIB\027B\303\306\371\031\271O$\323\265\246A\034\032#\345\343\236%-\025\034\021\2736\021KF\305\022\2665R\241@\251\022\361\014o\215\n\2166.\277\tyn\340\037p\014@\367\025\000+\335\336\257\304\360\234\225$;\336\323\247\326y\320>f+z\337\217\236\2573`G\353\243\365\376\306\200%\235\340\206g\004\306\220[\313\2238\373\353\360\362p\245\317\035C\306\206\335.\032\356E\356\006#\341!\"\263\014\256\217\254}o\253\365V\345\336\r\277\0055\0065\200\214\250@{\030\366\355\020R\336\375\247L\210\307\020\225\244\013\030\214\027\261X\035\201\301\305\305\305E\r\252\212\216\311M\254\220\205\315\026a\200\256\024t2\344\010\022\214\204\t\352\371\376\275\274o\271\374\223\2009\337_\003\343Q\007\003G\353h\314g/t\333=\262\352\227I\216\2142~\355\264\247\203\230\253\3737\2153+\330\216!\027\303W\227g!\216m$\333ko\337y\234\"\030\221\243A\003\343\273@\232t[g>Fn\23365G\202\033!yU\234\n4\322\332\234!\215\251o\274+6\020\242\257\210P\367\367\235\350\367\257\247\300O\234\327\355\344S\3015\236\"\301\344w`%\313\335V%\217,\260<\242\272\325`\032\3200n\003{z\355\342\310\366\3358\367Y\352\r\2665(A\321z6\350\216y\027$\034)r\036\265\004\246a=\353\313R\347\026C\275\204\006\016H\250\371\020\240\360\014+\242^\343\241\350\3435o\034t\000\031\200\000\001\000\000\000\314 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000f\020\000\000\000\000\000\0003\010\000f\020\000\000\0003\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006a\000\000\000\000\000\000\000\014\302\000\000\000\001\355\361\212\200\000\000\000\000\000\177\325\264\000\000 \001\230\000f\000\000\000\000@\314 ""\000\000\000\001\231\230@ \000\000\000\000\000\000\000\000\000\000\000\003m\014\314\302\001\000\000\000\000\014\302\000\000\000\006`\004\000\000\000\014\302\000\000\000\000\000\000\000\000\000\000\000\000\000\000\034I2twu\357\233\326\016o\211\275\362\350\302tMf\272z\263:\047\373`]\230\220:\244@\021\365z\321\331n9\350a\177(4\353\322g\371\360\233y\022(\252\013n\014\352wPf_f\360>\n\217\n\245M\300f\352\335C\220\330\177h\200A\306\333\315\255\032\316\251br\356\315\227\232\264\256\t\3446\005~\274\273M\211\255\004\023\024\036$Z\226:\3721\000\311v\300\306\237\225\263D\211\235\021\010\210\210\020\030[CA\370\354>\217\300\313BL\003\224\355p{\261lC\212\263ncm\305JZ\021\200U\334J\272e\315\241\233\000\250\355]\315\226\314\266\257T\2707nhp,\256\031\267\264.S(JW%\316{\210s\224R\200\364\026\230\005>T\200\251\242\354\010\253V\220\212l\303\025\005\361\027>\337\334\331Tyn\333\t\254\000\246fdL\021n\355\004\247\355\010\327\314\350\350v\005\024\373\211\025\001\212\036\234\227\354\300\324\032\364\355\367\222\027\340u\350\336\301V\207!\030}\250\251\372;\002*\014\203\275l\277\002\320+/\264\275\214-\001\241\010\022\022\243{\217WD\332A\212\010\354\266T/3\021WA\355}\001\001\203\373f\032\2058\307\033\250\013\210\307\353\313t\276\343bd\321\314\232o\0201A2E\002I\274a\357\274\276c\267\313q\270\\\350\r\342\004\211\263\223\047\356W\t\t\242\342<\234}&`\220\332\316`q8=\025\262\360_\310\027\016I\216B\257\307K\264\255&\305\005\320.]\036\323\332\017\264S\322\036\227\322\"zQ\017J\037H\274\347\323\352\047\273\317\306\\>M\226\222\374,K\245\3222\300v\210z\201\"\036\240a\310J\014\271k\244Za\n\260\221[e\024\300V\216~z&\310\365QNC\025(\036\246\336|\013\030\325\326w\004w\201b\033\302M\354L\342#\"\252u\323\275U\276\307\250\353\354\360\253\2365;\014\246[*e b\343K\343UEl\025\263\020\213\211b0\202\275j\234\3277/m\223\001\022Q\357\240v\311\314=\236d\312Q\353\367g\301\236 ^pX\2178\260\347:\037\002\022\007,\250\021\022E\004\221\221\000\002EBFFO?P\034\333Sj\0327\303\330g\317\347\362\356\243\013\275\n\3049\265\024\370}.\035\323\250\256=F\307\344&\317>\354\320\212D\341K\004\010\343\311@\026\n3\356mMH`\244\213\3556K\"\245DE\013\r\266\222\251\270*\351su\017X\310`\342\035\365\370\220A\315\243\273\321\355\303!0\014\316\315\334\re\303j\\\033\263\037\226\256-\275U\262\024U\266\207r\001x\\\202\216\340\315\3535\004\307o%[?x\035\313\211#l\r\265W:\306L/\324\"\202\341\276N >J{\014\214BF0J\017b\316\303xU\007K\036\031\016W\232l\363\027\234\336,\231>l\271}|\2662\\c\356\336/Y\321z\331*\036w0\340L0-$\3610\207y\347\327^\375\251{g\351\021\333\027\001b\262c\333!\212\347_\254\265\240\255J\304\022J\304V\247,\034)\006\031\362e\300\025\034\010X\003\006\000\300L\272k\325p\257\266\234\303\215\332s\337(\332\203\224\003|S\306\203\000\361\201\017\031\206\034\234d\225\325hJ\342""\276P\325\200\231\206{\232\272`M\214\201\002SM\204$1\204.\222\024\202\014^{U\3274c9C\227\306h\325N0\361\300\n\372,a\343\330WS\344\240+HnJ)\377\010 \305\020s_eR\247P\331Mt\260\023\014\255r$ Dw+IN\306\253\342\263\200\022CfH\203\031\301,\206\321-\316M\013\344\230P\335c=\323\003\\{[\024;c>>\2750;\203\313\243\316\364\367\217Q\337\207F\n\t\031 ,\260\357\037\240\316\037\031\017\032]\370D\333\231 \201\230\202\215%Fb\003\234@\017F\342}\r\232\331\242\335\2452d\311\242}\035\220\2027Dy\226\356\355\342\320\047\225\320\032\372\253~\356:\356h:\000{Tb\275\252\303\265\343\370\370\3128\010\324\206\307\006\305T\tk\254\034\334|\330\033\256\354\032(\370L\311\340D7\203\321)\002\320\335?\nV\032\000\373\rZ\246\212\357\323\2664\237|4\3548\230\276`\261\252k\206\241/\202\226E\\l\323\343\354\021\006\335\t\237\322\013\034mv\243\265\000\226\314Ls\371dIeRY<\236V\310\201\002\225^\3569!JdB\216K\266\345\233\t\332\2349\233\252w\313Z\244%r\270\352\331\312hp\306\307\003\2521\274\r\032\202\322(b\260\047\0142\270\303\232\300\371\"\272\343b#\260\225\264\302\242\324\250G>\034\255*\273g\263\323\354PT\332>\030Y\027\360\270\200uu\364\320h~iVA\3506\366Nnp`\317\022\326\331\331\256\004s\362m\237p\267d\350\304(\r\342.\341\224\271\262L\0370?yR\026t\216n\016j\006\320\322\222\252\026\366\252\271\303\235v&\343\221H\327\300\220q\002\030OB\223\321\352\036i\305\232h\352\257\201\271_,\314u\273\323\254\253\214\032=\210 \350<\242w\261\363\037\252\202\014\210 \305\020z\361\315b\301\301\206q\301i\246\335\307\031I\262d{|\256H\255\270\341\331\274\362s\322\252\312\2354\237>e8I\250\\+\311s\252>C\342\303\305\276\225\216\230a\217\016\235\222\311\263\344MO,2\023\366tp\007\036\305\260Y\014\211\333\265\355\356\002C\304\236\306\346OG\235\202\010\254V\n,\001\025\213\026\021\212\214Ex$\366\003S\200T\352\3716\003\332\366\372\321\330\233\254\371\023\233U\025v\2121\307!s\230\023\255R\t\326$N\264\315\347\225\334q\266\020\003y$\230\r\340\030\336+\311o\323\353\317\220\213\347\304\316\241\215\327`\327\243&J\246\370C~T\310\345\211\317\212P\320uV\022\242\316\266g6\016\214\256\003\310\360\rW\367\201\346\317;.Lm\362\264\2601\021\331\270\246Iyog\003M\215s\245\221\227\253.pk\266>{\275K\355QD\247\365\232ab\373\206\255\275\034\030\247\256\245\234\324k\021\357\202\366\264\025%\006?!P\221\014\375\010\214n\356l5\340\267\343>Zj\013\317Z\3745\275x\224\312\307;\231\211\361\326F\214g\323kSz^M\321\020\320\303\340\320\224\350i\264N\202\252\345D\262\300\007t\t[%*H\351\242\300\005Mn\261/V\035f\202\r\202\213(\006\204`\004\227j\363\366G\305\270c\344\355[}`\0010\246\005\310k\302\320\023n\030k\273\333\237%\"\005\366\301f7&\202&\3329e\013\r\310\323\310\031\004P\252\243\252\235\370l\354WG\031Y/,\225\002\320\21712|r\336\222\353\255W^\242=6\235rn\303\257\236UXm\224\340\207\301\317&\273\034\"\367q\000\271/\252\220,\3052\211,\244X\226\306\305\206\246:\027\235A\264\002\370\314\254\014T{i\351D/I\350_}\005\312r\031\270>\020\374|\250Uj\026Y!}\270\250\203a]\254\264cR\343\024\230\0051\033\"\321\271\224\003I\2560S \3650\301\213\352\031\220*e\035)R\250\372\236\353`\204\002\353\2007\007\273\323\330\365vqe""\3337C$3\301\265\241\272h\204\212\0141b\320\311\216\322ay\255\2748\350#l+\003\303\314N\177o\235\372\363yM\014\225\273\346\010H\207\266\224\336\320Oh$\010\244 D\353\341\233k\212\047ww3\303m\267\3566\356w6,\252j\354\225\223\031\333\177GY\320&\336W2z\340p\2012\310\355:o\321\213V\335\260pm\345\314\003\332\217i\350\007\320:\324\372\013\310\242\252\247\336\244\312\262N\r\332\302{\375\004T\023I\204\t5@N\251\303\370q!,\242\023\001\225\003e\241\275y\211\203\323<\236\201!8\267\003$s\244\032\374*\262\216L\246w\312i\227\275\372\036\2639u\261\205/\t\341\364\214B\0220\222 \311! \300vC\253p\276\203GXQzq\034{\270]\257\313\247.\305\327\367\312\3067\2738\343\254\023\352\"\022\010\031\"\301\351\"-I,\014BD\322@\262\021\"D\326\210f}\347k\330w\200\375\036\334\201\257Hzh\372\356\002\333[\005\266\214/\335yc\263i}\327\205\203\225\027X\204SX<:\007\305Q~xc\303\317\315Y\322l\237\204Z\307k?f\214L\220\\L\tq\216k9\255\244\005\255\365o\201#\201t\010!q%\352\265Edr\270!\305,\351\370\341a/22\214\022e9\354K\362u\341\001} d\027\322\033\212\200\253\264\340\317z\027:\360B\211\316S)$\360\202Y\2173\375\330\211\344:\000\027\227\241\346uX\235pb\346\033\214\240B\300\033\350\222\312\335\201\n\322@\311Z\001\225\245`\311{\327D\207i%\306\320U\211,\327\275%q+\304q*\047\010\036uQ\363\201\254CXr\200\361\361=\322\212\344\344\361\335\311\204\337\210W\325fd\207\022\241\310\211\020\344\022\034\206W\047\037\tV\256\302\022OIu\327y\355\323k\245P\360f\177;\336\252#\265\33060\246\276\226+|\331\257\247\370\014`\3118\200bC\002a\240\375\2123\316\225\016\236\225N\220z^\236\220z@zC\316\206\032!z\315\047<}L\014W\201|\322\033\222G\027o\202F\020\001\204a\004\307Q\343^\236E;y\003\2758\203\207\204\023uw\311\344\233\244+l\337s\244&\036\232\332\0207\005\210n\t\r\303iNnaN`\3336\327o_\355\361\321\271]V\206\3575\215\273\241\2172\305\357\362\226w\004\035\341H\206\360\223x\336\003}\213`$T\332\022*\212\252\245\373\231\\\251\215\355\001\365!\n\221\250\302\261\262\355\201\001\270\t\024\334\006nm\210tq\233OG\365\304\325\2614\316\036\232/0\261""\267\267[[\255\354\204fY\262\250m\202E\333B;n\330\033|)\315\271\375~^wx\332\272\326&\356\376\341.v\260\336\010\260\214\216\3776\330\013\272\251\027t\010\252*u\355\237\271[\nMA\212%\026\240R\220XrNTN\016\257\363\356uV\337\204\020<`\375W\375.*l\315\3204\221E\212\355\276\033mjm\275\223\031u\375}\314\321\000sm]\223\207\2166\333w\211\003\322\374\026\342Zk\372\\\251\313\0039\213}\244\312w\303\344\206\047\313\256\336\362\3524&\251\2353\377z\203F\t:\260\026\306\353%JKl(l\302\237O\305\006\003\360\237 \213\363\242\247\315\020\020\212\220\022*\204[\351\313 > \201\010\212B,\021C\363\021>r(\251\271\330\372\347\212\325\001`\232N\017}\245Y\037\352>\312_1-\0260/\214\200\250\306]\305W&\361$c\345\375\027\017mH\242&R\252c1\n\216{_C\371\371\377\357\307,?w_\262\0040\200l\302i\341\221`\000\265\007\347\017\312>\363\237\335d\017\321\017\376k\265\261\025\037E\017\263\370&3\363\236B\351j(\227Z\325\374\202\243j\005\371\0047\020\2546t#?_\213\232M\277\326~\347\307e\371>\370\177\345\234!\211\276kN\215f\0062\214V\264\177D\374\317\356\300\223\373\027\377r\020PY\024O\226\022\017N|\212\036}k\003\n\005Xu\241l\254\t\364=\370\"\277)\350b}\332^\207ID\262\013\367h!h\250\307\235mn\025\033\255\223\340\242\203\204\006\220S\3429\376\005F\340\023\253^|\350S\373JtQV\266\302\341\047NY|i%\324zj\211\215\205L\337\313\241\322\366\177*\227\237\332\324\001\266\025\024\224\047\206\353jYC\300[C\250\251a\373\375-\330S\323\364\357\241\351\356\207U\352\251\230\276\n\217\321I\206!I\335\252\231\n\217\303Q3P\315y\230Tff\270|n\337S\360_\362z\323\367\010B\000\t[^\260\372\311U\266\241\370E0\353T\230\335_\177\014\000\0275\236\347_\303\277\326\353\177K;-.\365\351B\315\313\215\315\000\335e\344R\227\262\256\344\024\n\330*8\324Tq&xe\023\356\377\351\233\373\364\325\212\222\177,*\310\177R\325\202\352\025\032\376\034?\035\370\376/\273\255\330\370\362\047`\336\277\304\"oK\363S\371fS\017\321a\207\000=\332U\214\025sA\310J\333\364\006\367\323\277\272o[\303$m\337\371\253k\207\017\0254\266\230L!\304\2069Y\364\344)F\341Q\233\374\3359\013K\204\254\247\030\236\326\235\315\363\207JW\210\243p\034\037B\030v\255\355q\035\272\031\373bP\014\306r\227\330\271\2708\036\377&\222\207\216Hv\272j|T\302\352_z\323\214\315(\224\220\263\331\006\271\224\337\016\016Ns87\331\311\373n\300\002J+\311\021k\354\212P\241\036Z\030nqg\337\245\016\300&\371G\2107o\004\351\047\rw\360\266V\3608%\302K\250\334\005\244-S3y\014;\"\273\210.\356\370\250\330\3207F\226\2057\r\336\200_K\207\330\024\035\3509\241\230\023\312S5\3448[\362C#\366x\342\243\272\"\265;0\335H|\001\272\002\374\354*\247\261\301QQ\205\243\303\202S\002T\224\237\260\3359j\215\014\273?\302\207\001\t\276(\206\370\250\305P\361G\303?n\025\254\274\n`\276\0148\203\027\207\331\356\361\370\024\324<\201\002p\250<\302/\227\340\265k};\2258\205\344\224\344qM\316!7\374\033\332\273| \047\030^\026\0200\007\356\027X\366\304\263\025\014\330\203W\021W\266\206\\p\310=\221!\374!8ZI\333\n\034\007\002\225\236\361-\355\314!l\356\010[\036>JV\361\314c\210\234|\202\234\034V\010\277\014\002I!\t\010H""\022,*w\350v\257\363\317\200\302\333\241h8!zq\235\333\335\363\021N\022\017\263>\300\223\202\024\374\235\273j\251\306\t\366\313.\343\2737&\027,\273\032\"\246E\016\326\361!\275\235N\322\221\3668E>\311[\203\314)\332\366\263V\177\014sr#x\224\277\270\245\004+\200\230\235\336\347\3554)\310\244\212p\212\215\002\3049\004,\021\343P\245\202\234\207\234\017eg\001\373(\034\013V\220\262\224a\336S\373\336\363\022\255\312\305+\334\016\027\316\000\354@z\300\322\210~\031P:\320\240\316\3657\356{\003\345\022\267)KV\201\336H}\257\300$S\262\017\255D\357A:\350vh\367\257\354\275\2133\030\2150\347\376\336\027\337\225%\300_\032L\000p\240p\025mh\341\032G\335\363\207\327\353\251G\335\360\275z\330!7iOkt0M\330\026\370p\336\250\204\301\014\303V\246E)\223J<\304\362\220\354Q7\275\363\257\331j%\211\271\275J\341iR\224\215\034\032\373J[`UH\2443\023\363\201\353~\024\353\210U\367|%\275\213\224\267\277@\245\0024h\002\224+]\306\264\0220\013\3773\353\251\007\360\207\274\245\017[v\300\250Z\024\201N\311\353\245\033\006\301 4H7N\304\334\374o[\327|\"V\212H\366IB\205\016\305\177\271\270,KE\"\330\021\264I\337\357\370}U\016i\270\315\336\304\006\205\010V\226Q\256\341\270\322\320\261H\264ah\246\357\177\255\364\017\254u\304\245\030\311)\336\016\301\330\255\205\213\005\023\"&>\370/\357\013\206\264w\236)\r\254h3\020\023yD\361~\217\023\310\221y\033A\211B\005\267\257\270\376\276\241\032Q\047\251\"\327\323\255z\347X\270\252\020\013\210\370\234\001\3763\337\361\n\243\353O\315kO\345\375*/\332F\305\316*J\047\371D\351\017y\366\204J?KU_\030\237\234>\302\027\277k\034\ty\370\324\374\017\356\374z\017\265\374\265\365\336\337M\255\366\332\037\253b\347\"J!\206#\211E5\034=\335\177\024.\277\331\332\243{\235\033\241\336H\021\220\201$\004\344\343\274\032I\020\047H\034#\253\3465\035}C\317\257\330j\177\354g\306\204}o\035\340\010\226\244H\202NaJi_^.\363\263\300\366\367~\266\215\276\270\304~v\361\216!\3517\251\310\3565\232\233pf;\317\246\t|7\t\004D\004\337\261:6^\266>lgs\037\037\343\364\237W\3020^\361\036DC\320\3219\037\256\047k<\217v""\264\037\204\367\374\202Dg\254\210\006`\367\267\353\366\032\377\257\304\3616\342\021\022C\3223\021\017{-k\027\177\210\201\311\311<\364\217L\313\3715\035\237Gq\334\256\372O\2610\243D\001H\020\235\033\004\216\305\244\371\257xY\326\217\3241#\323$#@\360C\273\330\263\215\"\322\3700\302\367\036\364\204\023S\220}\251u\360\000\263!\177\206S\267D\232\016\020\366\037p\362\2049qS\306\353\211\035\312:~\336\330q\226u:]\337\304)\312\202/:!\312\212wy\273\301\360:\365\212\216g?\350\236\300\n\236\362\347\356\276\360q\207\353W\311\316r(\372\250A\211\024\003l>\311\371\335g\346>\317\335?*\374\206&?\002\373\010\327\224\317?\037\321+\347\251\371\317\323wY\360\r\343\341\301\352\374^\013\325\253\335\230\221\356K \020e\356^\365\022C\243?v\205\365W\367\007\324!\315\371\203;#\351\177\322F\230h\376\036\357\276C\374b\177\241\212GY/\271%\213\337\207\360\237\303\371}\202|D?m\177\221)\205Km\n\022\265%\323\301\355\366\247U\244\374\342\237\245Ohj%\022T\202\\\321W\377\222\217g\361~\200\217\235O\355\t\365\244\271\201b\201n\242\252\377\370\330\335\3767\343U\n\374\313@\377\264\010\205\021\006\350\245\305Z\322\324}\277\203\371_\312\014\023\364\300hDJ\221\263\206\235S\275\326\207\241\350!E9\357\201R\200H)a.\272\224\232\223\322\353\363*\257\242\t\347P\020\251\037lNdC\233\004h@9\276\255\ro\333\204\373\224E\204G2\250{\362\360_j\002\207\357\004\013\020C\350\020\017\\\024\333A|\"\247\300\210\037B\241\351\021?\230W\356\024:\304NtC\205\024\337\025\335E\346\252\033\021\177\222\001\370\000\016\240\017\302\"\3764\023\242\210z\n\007\276\003\356+\366\224>\312\237aO\256\047@C\320\003G\007\025\nz\262\2349\371)\351v6\374i\t6fC\217\352]c\271\317\047\033\351\242\034o\254\340\343Hte\243R\217FXZ\"A\235)BHJQ\251\021\021\021\006q\020\314\300\311\250\\nm\306\047\034q\270C-\337[q\257s\203\207\036\002\214\2206\2238\262MN^\036_r\361\220\002\223\253n\371oku\323J\034a\232si\216\3339\213\272T\312^.`\243~\236\256h\266\343\023)P`\2623\244\326\344a\023\016l\201`\201\021\002\014&H\035\201\354\020\310l\006\333\377\021\311\266\333\332w""\034\315\265\230\271\273\2233F\363\226\246\256\227\013\37266y9iUy\312\335o\227\235\376\206\266$\204\367\272\367\352u\333\234\351tt\323\024\352\311\264I\r\322kT\026\246\351]5\n2\242\307\232k\215e\333t\343\215\270w\337\21635&\310m\306\327!/\0252\361\266\343x5;\007\357\317?\357\231!\202\372,\317\317\254\006{4\250\237\354\325\303d\254\312\331E\257\206\026)\205+\321\243\215N\353F/zgw~\036$\335\363}\357\267\307=\236A\376e<\300\366\036\353sl\316\301\334\036#\303$\301\0229\205&F\211L\270\324\311\205P\251PR\346fV\322\210\226\321\005\221\332r\366\340\271\317L\326\\;;\335\267\276-\353\265\337%$\204]\366r\345\271Zd\316\217\230\313\275\333m\273\337{\034\337\031\013\200d\0034am\262\206\265Q\025u\2543#.7,\271\230\340\253\231o<^zm\255\353\307\006p\316\030\222B\047|\332\316\\sG\027~6\340\344\201]\363.\306;\312I\t\252I\t@\341\213\t,\322a\2651$\020\264\201\001$\221\270T|v8\304\262\013\350\024\372\361\311Y%T\231\006\344r\2137\241\372*8\334i,\023\347Ri\356~\313\2501\354\373\314[\232\341\233\207\013\225\311`\237\275\360\375\344\376c\363}\355Z\366w\024\266\360H\311#UI!\030QTRF\320P\266\306\"\221\030\242*\252\253\025X\262/c$\201\355\207%\017\315\261\r\337\207\352\347<\355\231\230zjkY\210\347\221\351\243Z}\243k\306T\343\271\264\362z\367\307\243\311\353N\310\257C[u-\220R\325-[\001\261\014T\301\275/\013\333\357/////\"Q\037\344\"\365\372\234Z\300\255\360}O\211\362Q\351\000\261\243\266\201\002\\8\275(&\004\010:P>\022\\t\245)\223IbOJ\227!\372d\221\305\023\224\200pG9\032S\361.L\2463I\244\322i&\315\240 \2469\315E\234\372\273\021>\204\210\234\321=4\210\3363\047B\213\021\006 \340\005\010`\321]D;*A\302\205\242\274)\242\033\222+\002\"\004\214\016\206\364d\014\324\2429\301\252+1\243\303\272\177v\026\200\240\034\313\24378\272\326\333\233o\37576\233S\247\034e\346\230\230\200\032a\376T\047T\"\251\202\rJ#\tfe30J\316$\3102 \"\003\237\032,G\342\253)\337\224\020>@\003\251\007\345C\332\036\201B\300\226JE\245\n[Y\022\300\226Z@(J\033\026\001,-\202\305\224l\241a\265\225,\255\226\305\205l\215\222\225)B\222\326""\025\2626\002\326@,\255\202\221\n\020\244\263d\033#f\326T\260\266\032\024\244\niB\205\241\261`\002\302\330i@\240\nZU\245i(@\241i-e\033\013b\326E\260\005\202\326\020,\245\202\225i\032KX\010d\014\224\tBS0\t\204\214\010\302d\314\002b6JD)\002\202\201\n\006\222\326\005\260\266(\006\220\020#\000\264\220\240\026X\022\222P\244\222\201C0\200d\014,!HS0\222`\030\024\220\244-\020\244(\241\032B\270l\243dlP\245\rP\245\001E\000\322\264oXB\302Z\201(JL\355\201,\226}\266U\260\026>\273\"\330\213\203|o,\033\203:\006\262\326i\340\005X\241X19]8{~._^Y\312\256\2536p\001\350:{~\001f\220\225\013\320\304\317\226\317\226\373\263s\017\220=\340\203\242\314\224\262\205\205\3349\3042\227[)\345f\263H?\026z1\213\210{s\363\363P\246\257{\317\237?[\276p\036\263\205q\0269z\341\302\205W/\365^\352]\200\314\373?\373\272\367\273\037\302\275\320 \362\320\004\240\340\003\350\207\266\277\254\220\224\227\213\305\312\"\024%<<\2354\230\327\260\236\356-\345\330Wy\034\366\037\026\276\001\017\215!ej\332\005\350\336\360q\177o\nF\334s\340;\247:\0050\250?\014\351fug\213(6\236O\207g\302cc\361\241\231H2ya0;\327\033W\343\224\212\030\014\017\317\304\007\177\212\014\245UL\302\035\327;\007\3650\253\352\016\276\036\311.\225s\375\3615\220\240\346/\047qR\350\215\000!QXL;w\246p\211\350\355\273)\3500\205\005\220J\\\032\356\\\276z\345J\177\377\345\201+W\356\302\224G3\341\245\336;\010\351\357W\300\033$\317\273\221W\000H\323$\244\204d\364\265\233P\317\232\020\007\021\230\201B\255\201\027\322@\271\031[a \211?,\364\016\347\346\263 Kz\210M\027\213\275\313(\226\264\356\207\351R\036Z\347\032L\306\336oK\371\225\035g^Jp#\007,\244\346\371\334\331z\262p\277\000\365\240\247#\021PM{2v3\026\237\212)\321$\203\0033\216\210 x\225q\262\313\342\232\023jk)\277\234\257\370cazV\032\001\025=\225\203E*\026Of?\225\307\211""\002X\226R2\227/\3766\264\364\313c\331\205\035JpGJ\344w\263ss30x\344\356\345\026\362s\217z\013\367rK9\344\361\254\026uV\240\223\000G\316\002\313\335\301vQO\265+EX\321`\033\207\001\006\333\242\031\360\241\004j\246\271\244\006\273\271bN\313\260\263\245bY\251@J\305\331\034\370\356\241\314\001\311@\242\305\306\236+\340\357\302\254\226{\365\332\035\373\303\303R\021\210\237\313\003Me\\\262\360\370%\325\222\365\372c.\017\262l\t\213\314\022\340Xjd\3509U\267:vy\rD\001\030\031\262\275J\341@\251\225\262A\013sj-\246%\274\024t\302\\\371\222\302q\266,\326,v\026^\316\227\313ze\273\272\246&@\245\355\270\237[G\r\313\002J\003\017t\205#\251\330\257\260\007A\036\340\273\220/\353\262\317A\327\247\t\356k\273\352\047\332\240\020\271\345\225\312\272\242\267\177f\026\246\256\376e\3500y\322r\350\345\006\324\004\364y\230Hy\2625XM.\372RT\240\311\337\353\247\251\020\031\253\001\352C\355-\226\240\255\345\346PE\243\001\2325\344W\314\321\376\362:y*\213%\275\250\321AX\177\341rSG~:ct[\375+\217\362\004\232-./\027\013\014\200\353\047\026\324\rN\001\314H\300\230R\366\016\224\347\302C\341\241\241A\020\373R\306\235I)\024\236`?J\017\270L\234\231\317/-\205\207\342)\374s\323\306[\245sS\004\307\017\207\207\361\237I\345\372\274\311\342\251!\365\343&\264~o\322$\374s\223%[$\232\306\225\027\376\271)\247[&\265IZ\244p\023\004\307\217\215\205\343\341\270I\024\017N\224\210\303?\223&\321\"Q2\036\217\251\037d\007\271\346\033\031\014\370\220\047\014N\225\212\306\360\317$\264^O\272t8\206\177&\235\365z\323%\341\237\233\252\005\17737\206#\031\375k\222\362\200/u\"\031\035\212\030\327~\301\203\236o\226\226\206\324\360\233\322\023myP\265\353A\336\272\007[7\365\301H:\214\177&\245\365z\322\305\023\360\317\244r}\236D\305\271\365\341\342oyt\307`\224F7\265\010c\013z2\271\222\002\016\rE\341\037}o}\022\323\320\360\330\325\241d|*\345z\314\007\236\260\357\263\317\006\307\302C7\315\267,d\021\370\201~,\260v\210\016G\254\217}-\000\376/\307\242\261H*\235\214\336\214\310\020\303\340\003\372\261\200Ll\010 /\373^B\374\037\243\354\r\315;""\005\351F\275a\206&\000\354\30755\032MGR\260\342\214F\222)\037\200a\013\202\373\320\205\261%\306c\221\341\301\360\340-o\330\"\013\002\373q\rg\302\261\241\310\340X\034*S\006\031&?\324\207h02\226\30655\363Z\004\036\210\377\343d$|3<\025\276\305\375\354s\017\310\367\375\320X\034\352\340\306x899\030\277=\351\207X\\\301\021~\214q(px\014Y\227\232\202\3419\000\304p\006\307\004 \235D5K8\235\016+n\2130G\347\007\373p\r\207\2237\241,\223\303C\361L$\351\003Xl\201p?\272\370OQr\260E3/\303$!\2018d\352\226)\223\341\033\361\330\310\330-\223-\0173\024\001`\037\256H\354\306\344\330\010T)\367[\034^\220\377\373L$\006\321\254\344\036\010\303\025\030\321\n\243\304\026\210i\047,7\302\t\034\237\360O\215\n\001 \213\257E\214\037i2\234\201Q\023G\005\315y\t`\010\203\340>t\243\341\361q\325\370\264\307~.\302\001\237\305n\250>\030\023\001\376\271\007\026\200\"\031\036\217ZO2\236J\311\020\307\346\005\266@\347\375\244e\352\350\215\321)\340\017\363\262O%$\340\343\2337\3037#\3267\036\037\026\001\216\312\003k\205\314\367I\313\364\361q\340k\"z#\022\217y\202\014\207\037\352C\004\r-\226\216\016\205\307>3R\202\007b\321\005G\3701\306b\0215*j\017\373\236\207\003>\203Q-\035\031v\233\242\004p4\001p\037\272\233\321\241\233z,!\337\340-\034B\224\010\340\201X\324\301\021\255p\373\276k\225\036\346\335\341Hr0\236N\307\307=A\213#\000\352G\024\217\335\030\213\334\270\021\031\246^/\001\014Y\020<\030\035H_\314\353Aa!\276\217\331\034\355\237\234\2377+\217\207\323C\243\300\261\261\370\224\014q\024^`\020\026\222T\310\047\276\336IN\031\217\047=s\205\007\3020\005F\264\302(\261\005b\332\tK\334\364\235\270\247\357\304w\354;\t\2202\207tk7^\373\251\007\342\373\030\026S7S\243\341)=\212\263\220E\341\007\006`IEF@d\372l<\002\234\037N\005\2008\276\300\030\037\322T\004\367x\322Q\335\022S~\210E\031\034\341\3078\032\217\247m=\361 \303\345\207\006!J\246\251\363\270~\201B\200\374\337\047`8\204<\322\361\204\0141\034>\240\037K\032\270\030\031N\200\210\031I\306|\000\206+\010\036\200\016+\032V\033S\321\241Qo\230#\363\203}\270\322\341\233\223""\311\250\353\261_\213p\300g\251\311\233Q\020\203\270\237\177,A\376\357G\223\223\251\264\356\013\256\237}\357\001\371\277O\232\021\201|\354\333\344\216#\300d,:1\031\371,\031\325b<\017Z\034\001P?\"%\002B\031\335E\277\007\302\320\005F\3700NS*\3269\275 \213\263E\214\007i$:\206\177\3463\353\365\244\033\037\201\177&\225\353\363&\212\303\277I\374sS\306\047[%\265I\202S\304\023\t\\\003k\307$\026!\357\007\311ddL\377\272\311Y\300\233:\005\377F\361\317M\234\032m\225\324&\tN19\236\232\034\327\277&)\017xRg\242\360\317\244\313\264\350B\\\375\205[\346\3030\322N\216\245\207#\343a\374\243\217\230W~?\034M\205\007a\244\030\216f\340\237I\035\rV\321\r\203\3609\032U\332\t\345\232\3442\350\371&\021\037vu\236\303-\264\237\303\323\256\002\266\205&\3265j\034.V\"#Q\370G\311\254O~\000\005\266enU\372H2\222\204\351\322\305\325b\234r\373n\213N\034\231N\300?\223f:x\260\212\254\256e\227F\306\342\361\244\372\2414\334/\323\217@\313\033\261Z\337\221V\n\340\221dx\010F{rLj\021\362|\220-\231\355F\343\366\317\314\240Q\330\314\214\0270\037\220p17{\177\246\270b,\326\324V\016\213_\310Uv\210\305\315k\221\215N\246v4g\312jsI[\364\261$h\363\264\304\302\270M(p\224+2\274V\310\243}\031\203\271\206n\363K\331\005\213{\301cw\027\020!\211A\27051t\301h\217\350\006\226\212\305\373\367\262\263\367]\2006\243\363dM@\211\236\014\356\334pi\315r\336g\257\047b\002KQnQ\212\262(\305hx\324\364\216\321\340n2:\036\036u{\320h\213\2764\232\236\031\036J@\027\212\0173\257\371\310\007\t\372x4\234\212X\237\370\224\001|_bd<\351z\354w\"\354\373,\005\342\0329\366\223T+\031\016\342\322\311H\014\327\243\021\356\267\237zA\301\337\217\307\207#\334\357\371\236\201<\337\347\027\026\307\212\017\225\215\030\032\305F\307\243QW\323\021m\241\363\340\346ed]v3<\036\306?J\317\274\362\323\2330\247\2324\301\003\317\315\341\237\340\237I\343\372d\"\344G\030f\327\033\256g&\214kUO\220\276\r\206\266\300\250m\337\206\"\211t\000\310\207\320\033\323\nij,\236\210x\202>d\034\332\022\221\367\233\240\324\26113k\216\005O\237c\361\033\003W\324\217I\307\374\236\244\371Bn""\034\252sh\030\377\"\323ir(\261\014\311O1n$:M\016\373\300\206\374\037\260d-\322\350\377\335t-Z\332x8y3\222\036\211\032\327M/\202\336oR\251\250\372qS[\2777i&\201\177n\302L\242E:(\377\264\262\3312\256\373\211\010\372>\263\311Z\244p\023\264\212G\301\215\034=\203\346+\271\345\231\031\013\322\323\3468\254\350p/\324\270\006\257\014z\260\003c-O[\2613\n\222\031\364\020\343\232\3442\350\377F\021\023\225\304Dw\"&\032\203\177\232\307\344\272\237\305v\3401|\026\236\326\277\346co\035\371 A(D\342V\351&S3\303Q\343\332/x0\360\233q\343\312o\306[}c\223\005\247\210\217\217\273\252\301\361\026J\302q\020\365\361\317$\263^\231.\026N\047cv\237>\326j\313>\026\217Eb\231h\314]m\304Z\254;b\271l)>\230\201\177\024m}2a\\\333\315\014\347g\321\364O\331N&p \216\245\243c\021\353\243o}\000\211\214\242\223\341\330M\346\225\3372\210\347\3431U\205\344\230\217\306Z\327\253\216\033\047G|\020\\\033\260\350L\270+\234D\213\265N\"\023M\270LM\264`o\"\023\207\177n\242V\230\322\360\317M\024\\\363\023J{\243\177)\201\010\310\324I\030u\335a*\331b\300J\306\207\340_\002\377LJ\353\365\047\305\277\201+W\310\261_\260\220\377#\226\254U\032\233$8E*\232t\247\204d\213\311!\231\211&\335*HfZ%\212\217\341\237\233,\036\274\260R\215\033\007\354d.\253\314AR\341$\374\203IW\377\322G\" 1\244\\uS\252\205\342\tM\026\242\261Q\3743)\255\327\227\324&\tN\001\263\246[\307\251\026\265\235\032\217\246\\\3612\325B\320LM$\323\370g\222Y\257\047]zx8\222\321\277&-\017xS\307\207F\325\317\210\376u?a\201\200O\240\266\215\313\277h\325\010T$O\030\234jr\020\376\231d\256\317\233\210\251sZ)vR\2230T)i\337\372\334O<\000\317\227j\201\234Z\314\316\025\037\2429\221\366)+#\3555vF6\304\"\313\224\207F\014+\371\342\312\372\314\214\033\234\313\345V< \030\270\327`]>\223\376,\375\031A]\217\244,\035\216\301\277Q\3743\t\303-\332\245\265)ke]\206\207\232\206\324\217\266Sd\336\231\241\245b!\307\001q\370\322\033\016\027\346F\014\036\002\047r\271\373<<\2712\227\255\010D\312\010Y\001\342)rXnq\226S\334\237K\234\345\020\027\330\343\0343Ch\321\371\220YT\034\221E3\254~\350\327""\242\004\277\301I^\206\024 \006+x-Z\010X\274\361\324\220q\031Z\014\271\210M\200\243F\230\213\034\003\014=\006m\006I\375\313\220\047-\352\244\017q\322\242Mr\244I\206rZ\377&\311a\250\247\031\356i?\362i\206}Z\240\237\026\3709F\206\320\217\217\241\023\330\0302\206\313\242\362a\262\2108\036\213&\256~,\256\270\213+\356\305\025wq\305\031\256\270\305\225\210\353_\213-a\321%|\370\022\026a\202cL0\224h\205j\\jQ\306\202\325\315\304\000LN<\314\2623`\223\247\t\333\214\rD\344.\363\021\231\004\345 \320{p[\3040\213\222c\321c\300`7~\206\034A\0067\372-j\014\271\230\325\340\251\034\213\031\003\006\263\3613\314\0102\230\321o1c\310bN\352_\206\327v\212\264\257O\244m\227H\363\036\221f\035BY\360\272\036\213X\007\rn\033b\3505\320\344\240C6\023\035f\371\250u$\363\362\2744\300\346f\303\"?\r\2669\3520\317SCL\256\203f\276\031\224\263\315\240\230k\006\203f\232A1\317\014zf\231A9\307\240\251196\017\014\230\034\214\237\341G\220\301\216~\213\033C.\346xB\377Z\274\3407h\311\313\260\002\304 \005\257\305\t\001\203rh(\252\177]\224\350\047\224\306kQ\"\204P\242\327E\211\001\027\245\261d\346~\213\336\205\230L\004\200e\345\302M\206.\300f\353\202X\346\314\n\332\007\340dp\260\245\305\013\025\004\361HK\025\207r\3228\234\323\247\355\254E@\320E F\023\203Hz(\202\321B\020A\007\3018\r\326R\333\007\020\26400\243\307\003\2254\261HF\027\203\n\332\030\234\323G\226\3402$(30F\026\007I\232L\014#\310\200\0045\006\310I\341\326\344\001 A\224\210`\224\371\340\222<\021\315h\024pA\250\210\341\324\nk\365 \230\240W\3060\202\375\021\222b\031\317H\226\021\202f\031\305\210\026V\361\001 N\262\214\260\024\373\341\202`\031m\351\225pN\256\214\341\3242\313{?D\320\312\341\214T/XR\312c\031\241\034,\350\344\021\214Lc\337/C\234<\027fI\023 A\226\033cIrA\234\034\027\310I1g\005`\302\375\234H\202X\342\030@\020EpK\014\0018\021\004\022\231\233\223S\336\260$\302\205rB\004\320C\214\033\307\tr\201\222(\027,\010\303\023U\334\257\016d\371\000\222L\013\346tJ\250\207P\033\311)\265PI\252\205\373h\365S\342#\242U\376\276\254\003r\025\031\322\2311\031\022\004\030\030#\201\203$\021&\206\221a@\202\020\003\024\244\250\003d\"0\036\037\366\206%m.\224S\047\200\036\372\3348N\241\013\2244\272`?\225\001T\370Ih\231\277?\363\240\234E\266\354d\234\037\"\250\341pF\222\027,\351\342\261\2148\016\026\024\362\010F\246\347\304] \220\023\353\215\262\364\006\305\010\222\275\t,\325\336\030N\2707\216\323\256N,q\277\240TC\030\201\026 \351\322pF\216\006\010*4Hd\316\317\010\006\301$1\"\206\023\345\213\360\020\047\3429\221\"B\022+\242\030\321t\212P\004\314Q\304@ /\2037\312\026\"(F\224\302\233\300\026\303\033\303\313\341\215\363\027$\200B\021\346!\321\200\374\304a\214\207,\004\371\010B #E\352_\202\024/\001\032\227\326\252\226\000\035K\240r%H\253\302\316\250\372\000\222 \013\3464I\250\207,\033\311)\263PI\234\205K\372\2546\317\034\211\225tyty\034\342\245\307\243\3113\020\017\035^=\236\347\374l P\320\344\211b\264\005\304H\032=\t\030\255\236\030A\263\047\316O\273\217\356\0264\007\323\273#\255\301t\266\242\321K_\234\315\261q\337\034\033\367""\316\261\361\026sl\334;\307\306\375sl\3347\307\232s\3052\304\tpa\226\004\001\022D\2701\226\014\027\304\tq\201\214\024v>\331\007\340\004q\260\245\311\013\025d\361HK\031\207r\3428\\\320\047\317;\007C%\245\2368Nn@\224\207fO\nN\270\047JR\357\211dE\360\234\257\016\004\362\002x\243,\375A1\202|o\002K\2757\206\023\357\215\343\264\263\363\334~\210\240\232\303\031\311^\260\244\227\3072b9XP\312#$\231\372\314\270\047\350!\220\200\202:\006\363\222FQ\202.\202y\210\"(\247\310\236@\367\001\004U\014\314\350\362@%e,\222\321\306\240\202:\006\347\364\211S\355A0A\245\214a\204\372#$\2552\236\221+#\004\3052J\020\315N\317\007\200$\311<\202S\354\205{\010\346\321\234^\016\227\344\362\030F\255>\255\317\375\234>\202X\302\030@PDpK\n\0018\r\004\022\231\323i\177OP\222`\200\234\n\016\363\020b\2428-\006&\3111PN\221\271?\300\023\024\024\271@F\221\200I\212\334(F\221\013\023\024\271PNQ\222\311U\346\212\002NM\322+Gq\210\244$\351\225\233\014DP\221\364\311I\374V\003?\204S#\340\226$\037X\320%b-q\002\314)\024\021\234Ly[B P\020\353\211b\364\006\304H\222=\t\030\325\236\030A\270\047\216\321\356\275\225!\030\312\251\367\305Y\362\003\243\004\375\276\024\266\000\276(^\002_\244[\204Ht\214\034K$\006\014U\306\317\310@\220\311\027\3756#\014\271\230\307G\364\257\305\013~\203\226\274\014+@\014R\360Z\234\020\260(\343\372w\222\034\206:n\227\225\306\317\221\307\355B\022\375\014}|\222\343\347\030\031B?>\206N`\263\310\364\335\026\326gQS\330\240gA\226\005AM6\024\264Y\021\300f\207wc\270\036\226\231\n\272y\271!\236\225\002\2729\251\020\313H\205m>)\375;J\016\313)e\347B\343\347\271\244\354\234\207~\226Cj\224\343\347\030\031B?>\206N`\263\310\3241\017\327c\021\353\240\301mC\014\275\006\232\034t\310f\242\303n>\231\250\376\2659d\354\364\233\361M\274\031;\345f\370d\233\261\323,\336\004B\216\213T\005\010\253\353\267h\025\210\360*\277\213X\205\\\314\321\214\376\265x\243\256A\260\3612\254Q\327\024\030\275\026g\324\032\001\233\233E\230\327\"7\000\223\003\017\263l\014\330\344e\3026C\003qsU6\361\303\314&~\330\332\304\017\373l\342\207\255M""\3740\267\211\037f6\361\352\224\002;J`O\022\370\016\022\330s\004\374\030\001;E\020\031\211\352_\027\033\372\t\235\361Z|\010!\204\350u1b\300E\251\332\004o\022\254E\370\033\004k\017\2429\360\326\240$\203\210\022%#L\210\214X\3611\342\023\034#Vd\214pa1\302\304D&_X\221\302\047EX\301\201\313\nL<\210L\047\364\257\3056\355\212\224\306\313\360M\273\002$z-\306i+.\252\253\\\214\353\242\325!Bl\003\026\265\206\021r\035p\321\353\240\233\201>L1\302\017R\214\260C\024#\376\003\024#\354\360\304\210881\302\017M\320u1\326g\361S\330d\301\202,\027\202\232\214(h\363\"\200\233\035>\33242\026\306%\261\272\243%\215\367\326\253\307\2558`\244\224\303\3247r\025\004\351\047\215l8Z\230/\352\220zK\311}O\304\302\307\350\"\026\035\212\257\264L\250\337$\361E\340\203P\2022\013!\322F\303\352\307\345\326\250\333iF\275}f\324\3552\243\254\307\214\332\0163\252\372\340(\353\203\243\266\017\216\372\372\340\250\355\203\243\274\017\216\262>\310n]\221!\233\005\203\231\254< \226%\2131Y3\220%\201\001%)x\213\213\010x\010Q A\207\013\361\222\241\"\004\025\n\342!B\301\030\r\372F\030\356\347\024\020\304\022\300\000\"\177\202\333\354\t\300s\047\020\313<\245u=\346\226\031\226q\212ixxPd\232bz\035\023\344\031\246\2706\207\337G\343\t\362\214-\320\346.a\202\004\033e\351\2600N\214\205z)\302\033n\301\032}\"\023\327\277\014\245\2452\343\2432c\251\314p*3\234\312\264\376e(\323""\026e\332\2072mQ\2469J;\216(\345\255~9\336hk\031\210\324\265\372\342C\327\343\346NA\"\200\205,\r\004$2(\344RBaCLR-<\222LXLZi1\351\023\027\223V^Lr\2011\311$\306d|H\377&\310\261\2501`p\033?C\216 \203\035\375\026=\206\030\376$9\003W\256X\037\317F\205mNnPd\246\2406?\025\344Y*\000\317U\344\300\321\007\340\346\210%V\216\222cd\010\375\370\030:\201\315\"S\013\256$[n%\355b+\351[j%\355B+\311\227YI\266\310J\252\036\232d=4i{h\322\327C\223\266\207&y\017Mf8\312\370\0309\014i|\314b\215\217\371\320\306\307,\336\370\030G\034\267\0335\311\034\336\031\236\323\217L\320\243\344\346\251U|+U\331!\351\373,]\217K\002\005\211\010\026\262d\020\220\010\241\220K\n\205\r1)f\350\224\262\026N)\237iS\312\3324\245\2701S\212Y1\351\313\274\360\356Lr,j\014\030\334\306\317\220#\310`G\277E\217!\206\237cd\010\375\370\030:\201\315\"S\343I\212\215\047);\236\244|\343I\312\216\047)>\236\244\330x\222R\272\357\024\323}\247\254\356;\345\323}\247\254\356;\305u\337)\246\373\306K?\311\261H1`\260\032?C\213 \203\027\375\0261\206\\\314\352\212P\327c\261\353\240\301oC,\007\r4y\350\220\315E\207m>qe\242\251\357\027u=,?\025t\363sC\224Q\2132\312Q\332Q1}+at\212\306k\221\033\200\311\201\207Y6\006l\3622a\233\241\201\230\\\047\307\322\332\250G{\334\034)H\371\261\220\315\215\200\224\027\205\334\234(l\362\311(I-\303$\250\214\225\2402>\t*c%\250\014\227\2402L\202\312\250\0312\303\246\307\214\235\0333\276\2111cg\305\014\237\0223l>\314\304\223i\245\327\324\036\213X\007\rn\033b\3505\320\344\240C6\023\035v\363\231RG\014\320\261yL\331#\005\256\237\341\237\262G\010\224\337\342\236bG\0062S\252\227\242\3030\333>\352\3729f\333C\225\237af\375sJ\335\372<\305\256\020\236\262w\010O\371.\021\236\262\267\010O\361k\204\247\330=\302SCc\246\311\033\257En\000&\007\036f\331\030\260\311\313\204m\206\006\342\346\032\035\033K\032\327\346\247B&37\300rR0\223\215\n\330\317+\203\034\036\364\312 \213\017xe\220\305\266zT\220%Q\217\nz\303\3207\263\014\206\337x\202\352\251\301p2\031\276\205\223y$5C&_\n\224\2220\342=>1\231\232\241w9!2\021\216\r\207\001\000\003\312H2<\036q!\224r&\021\037\013\047e\002\rq\023\254?\202?|Rg&\226{TI\346\346gf\310\2546\035\215\307fb\360\021$\233\231Qo:\202S(\024+0\354\240\177\226`\222\361-\370=3\273\224-\227\355\203T\346\315\010\376X\004\370\221\020t\213\263\350 Rt\261\212\324\233\207\301\265\305\261\352\347\255v\2507\252\256\231\345l\276\200\t\227s\225\254\246\r\003\305\271\265%U\270\345Rq&W\250\250\017g\250""\376\320\315=Dg\245\224[\311\226\024d\0058\370@\255\2230\204/s\232\264\346\311\013\363\314\344\314\014\276\226hbU\365\317\314@+y\220+\225\025\347 \004\255\002]\367\331IU\3369\255.+\253V\017\254)\317\344\313\300\276Rq\rV|\271\031|%rm\0051i\326\227\327fgsP\036\000(\006\256\301:n&?\347\r{\022\224\200\207@1\002\027\254Y4\013*ke\n[\363e\002\370\355\241)\"\320V\332\304\371\215\245)\006J\307\326\257\006\270F\013\322\231\025\265\"Ep\336\265\213\304PI+\031\241E\342\212\330\360\r\331\256\226\306\230\004\253\200\242}`o\236\345\340<\313\264\014\006~/\025\313\271\354\314b~a1\013\325\3600;\203\203S\226\322\226\221\240\354\222\376\275\242\235\001\250\356\342\322\332r.\013u\264\224+e\261\317p?\026\010\204\202\005/\254\214\217\257p\2407\321r\366Q\000\310\367\231\006\254\000\231s\331\322\002>\376\251_\372\314\226g\363\371l\271\262\276\222\313\226\327\013\263\371b\277\333\302\312\331JI\027)\373`A{\356\335\313-\344\347\036\335\313W\356\255C\243\275\n\255Ys\265\\\311\317\336\237]\302v\t\375\253R\312\316\346\320p~\026\005\035\305\256\331\342\322RN\r\025\345Y\344D\001z\002&P\3762\016\004ss9l\374\246\366T\0377]`.W\236-\345W\360\363\271|ye)\273\256:\024v\n\370\003\276\026*\252\230\271\345\225\312:\224\021h\204\337\362\303|e1W\200h`\002`\232\205V2\017\205\235\203Q\000K\254\375\272d\350\277\317\374K\371\345|\005=6)E\346K\256\027\306&5>\351A\212:$\016f\252\177!\227\225\007\037wU\036\344\217\362\024\357\375\226\323\251\354\233\262n\010Kf\002e\357\003\263\236we\345s\262\013\330?\325OyQU\313bni\005\233\351\242~\272s)WXT\333Y\371<\262(\277\274\002\255b&W*\025K\320\330\ns\271GH*\317\316f\3052m5\310\346\265v\tF)U\01786\227\357\347\326\341_\371\376C\344\306Rn\276r/[\002\267\260PYT#\262y\353\026\272\021\374\313\2254\273\241\t\347\227\327\226\301\321\234^\316-\027\227![\035\310\227!\253\005rf\020\275\036\300\227\313\013\313\320Z\362+K\371\\\251\200$\251FRY[\201\014a\n\2737\227{\240~\346\264\177m\245\000\243\375#\340\r\342\341\305\2066\243\303\312\347N<:\244\237\330\005\357\312\272\256\307\342\374<\214""\031\305B)\207cz\016\007\003\374Ce\233\032\232\270\344R\304\201\321E\350\231\322\3126\247\242~\365\016\033\023d\010\377\262\245\"4~\030\177\214\177m\005|\367r\331\322\n\362M\371\261o\242gmi\311\000\347\340o>\273\234UN\231\202\320\324\301]\314\252\236\251|\330H\224\007*A\271\252\0208\014\254,fU\032\252\\\353\233AY\007\202\277\301\037\242[\312e\347\240B0\255\252\311{Pd\360/gg\215\243Z\241\366\226\363\013\005\310\013\003\2126\250i\375\253K\240=&\207\345\374\034\264e\203/_\320\277\224Ryl\312\302Z\371A\036|\205{0\366\341\270\200\325\265D\300\025\305I\367)e\366\2022\177L\231*\230\034\254\231\202\317\365W\017\241\201R\025)\277\256%\023\355f\260\002\177\331\262\032\017\324\217*\217\035\036\224\257\014\025\233\253\350Y\001>\233\005\026\345\227r\272g\321\004\266R\\\202N\272R\\Q]\\\375\\Q\277\003\274\317\373\372?\265a\005\207\337\"\026`\275\204O\332a\227FN\250\031Q\315\207 \032-\301\034\001\335\003\207w\020BJ\250\274\306&\217\0232\216P\013\213j\250(\025g\0074Y\340\273\352\372\310\003\323t\031\244\237\345,N0\005C\177ni^\223\345{\361\332\373\320\265\347}k\371\2545\204\314\374\243E\006,\206\256 =Ji?ez?\2772\243\346\006U\2674\303h?\245\300\272f\360\373\014\256f\033\364\330h\212\304Ir\t\306\225%\360\225*\232\3038\327\315\002\215\213\030\017\323\346\003\223\266tUM\313e\265b*\257k\021\246\002\355\367^?J0\340V\026!j\016\313\222_\316\245*\320N\320\243\277\267\276\001\353\275j\275\237U\2123j\324C\022\361\317\210\224kJ%\241\177\325d\247\032\244\242U\023L\242\356\003=\005kI\010&\204\002\376\241(\006\305\326Y\374\257c;\364\357\377\255=\035z\272\272\335s\254\332]\235\330>\372\332\366\261S\316\251\213\215\201Fx\373ho\375Hc`\273\347\r\210\017\035q\216\274_\013\327&\364G\353\325\256*\305\274\362f\365#\370\262\347T5\373\377\253\377\231\002\204\216:G?\252\177\325\030j\241!\375\365\016\005qN\235\253\257*\220\363\346\307\365l}\225\240\227\033\023\004\205\370\306k\315;\233G\266\006(\256\277\221\245\270\253\315\276\246\201~\265\201y\177t\346\357\217\377\325}\364\3517\325l\025p\275\3664]=U]\255u\240\367n\255\257\366e\375\353F\272y\034\203\223\325s\2657k_\324?\254\207\267Co<}X\315\325~h|\010\325\035z\335y\375\277\265\325zO\003>;\016\337\227j\047j\267\352\367\233\047\232\231\215\201\215\350\346]\047\231rR3\316\314\257\316\257E\247\370\370\357\177\375\353\367\216\301Np\006;G\321\031\355\214\242\023\355\374\251S\227;_[5\354\370\350\233\215\201\277\317\037\214\306\361\215\343\273\242\362\216s\347g\347\347Eg1\357\344\037\001A\353\035\303H\327p\347MtnvN\2403\321\231D\047\331\231z\271\304\002\245w\235\273@\351o\316o\353@\320\343\216\010\322\025\351\034Cg\314R\tN\2523\355\047\366\314\331\003\324\275\363\336\305\306\325\306\204\227\322\267k\235\2653\265|\375\367\346\231\346\374Fx\343\326\346\262\223J;i\250\371\254\223]qV~\007j\236t\014!QC\266\326\301\371\t\230\254I\374\r\333:\221\370\355F\370\000\374\324D\336\335\350\333\025\231\373\253\375\227E\355=\347\336\2543\013\335\t\230\372\027P\364\243!\223\350\233Fg\272\363\026:\267:o\007Q\353|\01353\371\367\047\007\246\370\362\346\352\256h\206V\240\333\353\003\347\301C\240\353Q\307\r$\357\206\241\231\210\235Ag\246\363Wt~\355\314\006\220\376\335\306\304\201\031\375\313\306\300\363\211.8i\340\362\2343\007\\^\005rJ\035a\244*l:\031\365.\227\313\340\334\356\274\343\247\370\354\307\007\352k\227\032\203\215\254\227\332\323\220\354Zm\275q\244y\255\371`cb#\277\371\007T\2473\t\035\r\032\307\252\263\372\004\250\371\3034b\267\223\251F2F$\336\257\037wI\374\316\371\016\276\316\374}\365\200\204.o|\267\325!\211=\341\2348[\237\250/b!`\036\202\331\256>\2123G\213B\350\241\002J\360\207\363\307\237@\357_\0351$;f\370L-c\036\235\371\316\005t\026:K\350\224:\377@\347\217\316\237\272\260\270]\tt\022]\023\350Lt\375\214\316\317]\013\350,t\225\320)u=B\347Q\327::\353]\217\273\004c\276vN\236Us\360\331""\3577\262\177_: g\226\274}\373y\025\372\304L\233K\316\322\262\263\254+\224\246\3148:\361\316It&;3\350d\240\263\200\223\355\\Bg\251\263\214N\271s\035\235\365\316\307\350<\356\374]V\375\327U,\336\307\347\016\324>/7\222\r\337\020\360N\355\303\332p\375\225\306{\315\341\215\377\333\310n\254o\275\006\315\313\311\350\221\253\344\224\376\000z\3764\263\226\3330U\277\032\047\"\227\352}\246}~\374\275\363=|=\205\343\325\353O\357\324:j\212\234L\365z\355x\255\217\023\232A!g\337\343\325\307\226X\240\364\276s\037x\377\310y\244\247X\232\261\322\350\244\241\243\203s\3070\375\036:\367:g\375\275\377\334\371\003q\267\277q\257\351k,\357\326\256\326\322\365w\032\027\233\351\215S\033\253\233\257l\375\007\230\343L\351\341\252\354\224u\307\031A\242F,[\301\031\357\214\021\211\313V\352\324$\356\233\257\317\031\240\256\357\233D6@\001\211\237\034\234\213\2579\257}P\313\326\036\241\350\314\375\273\346h`{\235Bg\3124\201Et\026;\013\350\024:\213\350\024;W$\323\277\252\206\261L?l\254\036h&\303R\275\2661\261\253\326\361\213\363\013\214&\272Ek9\214\246_\032]\251U\273#\212\277\221\374\340\374\000]\020F\242\302\337\327\016L\364\355\315\307\316Dr;\364\266\363\366\371FG\3434\246?\355\234\276\3208\3368\337\354\223\360\026%\202\221\021\244\t\250\232\n\220\274f\346fZZ\220\274\3663:?\233!\221f\t\032\031\377D\347\317\316(\216\375\321\256\333\350\334\356\372\025\235_\273\262\350d\273\226\320Y\352z\210\316\303\256\033!dXh\034\235\361P\014\235X(\036\342\234r\216|\340|\000+-\340\327\371\013\007\352\367\2376JM\337Z\340\275\332`m\256~\241\361Msn\343\343\315\216\315w\266.;S\323\31644\321\234\223\2538\025-\014R\315\272\275IUp\234\252\264\200\231\350*\005\022\373\333Kb\353\271\336O\372\247\316\255\333\316\355yg~\301Yx\200\0146\313B\032gi\216K\240\2230\303-M\373\201\223[\004\253)b\246\375;\350\33415y\017\235{]\263]\202\t\356\014\177\036\0327\364\366\351\003\r2\310\217\3677\356n\365=\277\332.9\031\030Y\366.\347,\006T\342\217\316\217\260\302\206\236\255\261Xq\364\313\003\226\345?\033\313[\3379\323\272e\255\355\277\242\241""\215B\003\205\222\212b\336E\347n\347/\350\374\322\371\033:\277u\336G\347\276\247B\307\320\031\353J\242\223\354J\241\223\352\372\005\235_\272\362\350\344\273\036\240\363\240\353\t:O\272\376@\347\217\256Q\354\241\243\241\024:\251\320/\350\374\022\232Cg.\224C\047\027\232\017\005\267\207\013\237\034\250\363^iv6}\255\340\375Z\262V\251\177\325\270\331\254l\\\337<\276y\001\231{\313\271\005\374\205N\260\206\0050\203\030Iyn\317\245\216\340\352\205L\335\267\207\314\343\325\017vM\245\263\246\005\267\347Sx\252:_\373\251\016\315\243\347\351\277\2357\200\017\250\364Z\255\375\037\252\267\210\372\260\023\206u7\340|\360\367\225\003\026\343\362\306_[E\347\356/\333\250P\353\255w\324O7\216K\177\213\242\271\203\017I\"4v\272\232\0235+\316\2423k\346\364\007\350<\350|\202\316\023\263\346\030\30567jZ\347\216\203\017U \224\026\230\360\311\305\003U\341@\363\315\246o)\373\237\332\275z\250\036m\334\331\010m\214l\366m~\2655\276\247\261v\242\223\364\204\037\327\335\312\2728\2649p a\345j\363\303\346\370\246oJ\373\240V\252\237\250\337j\334\3378\261\221\331\034\330\214n\335un\003\225\213\316\"\216:\252W\220\324E\324\221\270%\307\217\231N\253\"5$_\272| \326~\326\274\332\364\311V\377\255w\326\317\324\363\215\3377\316l\314o\2067om-\357Gs\344\234:\337\350`t~rp:\217U_7\342,\363\356\216b\032vHM\340\266\002.B\315\2413\327\271\214\316\262\231\177+\350T:\327D\241NV3\265\257\220>\333\361OA\311\036\324&v\216;\362\364\333*\252\267\257\014\034\250\332\276h\226|JT\347\370\231\372`}\256q\241\371\315\306\334\346\307[\035[\3578\311\275-\256\247L\031/5\334\251\367\332\347\007\242\364\233\215\253>\341\3359~\276\321\3318\323\3107\177\337<\2639\277\025\336\272\245D\205\375i\241\234SW\232n3\323\n\036\336\205_}z\021\206\243\254!\367z\375\270\244\374\364\306\273\233\237mf\017\252\257\276\343$@@\271\245\206 -\365\270\"\217\\HI\031o\247\246\306U\331X.\265*\371\244\315E\373\317fv_\205S\023\244\024\276\335jQ\005$ag\r\23553\217\014\342$1\3305\204\316P\327p\227\257\234\337\377 Z\333\201J\270k\r\376}g\"\355\244\241l0Qk!\256\344""\224\376t\376\324\013\r\352)T:R\205\270\242\252Z\007\347\375\032\021\255\3119\337\336\262\354Ju\356/\315\301[\"/\0306\203v\027lf#\274\347\202\301\242\270\255\005\3731,\232\336\321\2477\3710\027X\252\317\267:\016\336\364\240\241\350\235.\220\\v\265\320\047A-\217N\336.*\202\n\364I\373\252\2114\240o9o\235\251\207\353\323X8\030\310?\254\367\325\277l\014\004kC\2178\251=\027.P\263$\227Jqt\342]\223\350Lve\320\311tMu\t}\352\0175TO\3748\rb};\333*2\341\017\177[}~\321\261\321y\312-\227\025$\342Q\245\256\240\263b\204\360\207\350<\354|\344W\031\343\322B\3576\323\226\322_\350\374\325I\3028)s\026\321Y\014\345CB\247u@V(\025\227\363]\334\211C\371\264\356\230d*\252Bw\351\360|\325\335{Nz\312\231\002V\375\342\374\002b\261n%\264H!\306\254\242\263\332y\003\013v\243k\006\235\231\2562:\345\256\237\260|?\205n\242s34\205\316Th\032\235\351\320\002:\013\241\022:\245\320::\353\241\277\320\371+\364c7\016\360\335\341n\237\036pp\250\235\323\320.\325\\\027\235Ih\257Z\207\t\202\253Z2\342*\206\366\222I\342&Q\210\330\222C\047gT\n\244\002\\\366+Pt\201^\263c\232\253\006\307R|Q\027j\360\311\346\371\215O6G\266\372\3669\270\235\245\315\235\337\235d{\013\304\0067(\220\\\250\211\002\005\326\320\365\255\203n?\266\275@L\371\257\013\344\326\220g\372\t\254\241\310\276\013\364\271\035\246\016\257@j\360\275\324\336n\364\036\016\276oU\277\257\037\257\237o\000K\224\341\220\321}<\267K\301\014\244e:\032\211\245\374J\213m*\037\r8\356\330\213{\250\235$\270\336D\347\246\231zh\323\365.:w\273~\221\332W=\021\r\r\267s<\331\245\346\355\033\047\003\262\232^\001\302*\3305I\240Z%\205\003i\177h\376 \231\311\255U%:\025\374J9O\201\016(,\355r\377\017\246\211\366\026\210\215\370P\240\376\266\327\320\3566~\332Ss$*\321z\213$\2070\266\311\260Q.S\013\235Eg\266k\016\235\271\256\":\305\256\307\350<6Si\002\235Dh\002\235\211P2\304\353\237m\377\014\2010\216\253%\321\313_\177z\237\357\253\006\262\356\213\326s\2136#\270\264\271\273\341\230\263I\353\321H\272\222+\002i+D\002\n\255\010H\270\374\021\031\360c\027ql\260\3137\236\rG\3329@?\247\311O""\332\001\014x\254\215\313~s~{\350<\324\312,j\002\244\317%-\016\355\246\320\332\324m\353$I\373\232<,\343\002\007%_g>Y\317\006\265\376\305\255\337\234\351\273J\037}\020\343I\217r\241\340\024`\230^w\326\265\\KM^*\030]}\250j\371TB\332\047\243z\034Ag\244\213\344\305Q\277\246\341\226\3263Y\013\275\253\207\315\213\361\215\3677\047v;(\034\214Or*\2431P\356\014\223*f\034\235\361\335\014\r$^\273c\002\326D\350.:w\315\n\343\021:\217B\177\242\363\247\225\2629\357\331\350q\373\316\241\266\277\375\252\177\212N\261\342T\036;\217\265\005\001\3654il*\r\370\344*\225F\020\267\345\251-\223h\227O\202\205\342\177\362\"\212\317W\354b\365~\370\254\240NH\323\0175\265it\246MS\2436\266\206\316\232\331\342|(\271\245e\250\333%l\267F\325CJ\220\271N\261\253v8LD{*\264<\224\3664\355\344%1\221\244\224\337\321\371\335,\240\335\026\244L8$\367hg\230\230\270\202\316J\327\357\350\374\3365\202\335o\304tTZ\016\337B\347V\350vH0X\233\352\334\326\353nRH\320\330A\n\005\030U\257\037:\237g6\342[?8\267\321\202\326=V1M2G\240\177\337l\227[\23640R\307\225\026\225\256T\257v\342\227\321Y6\026\225\264\023?\210<\035\014\r\2413dLf\210\3214>\316\2423k\366\345\213\350\024C\217\321ylF\313aTF\014wG\320\211t\217t\213\n\372\0028\206\247\031\356\374|\310C\346\356\027\302\223\316\244\266\047\3179\271\025g\005\226\216\277;\277\353-&\222J\344\366\262k\354\254\364\347\244\340\242\226Ns\221l\351?\371E\260\237\357\036r\361wi\346\351\321\356\201\010\014\"\372\023\347\211\336\025!\305\22546\223&\224\264\270\244\036N\253J\267\334\312\260\367f\227O\333\367\263^\234\323\034O\263\272\225[\257\036:k\376\332(n\3158?\243\201\335N6\010\373d\030mB\322\300C\212z\342\215\264\213!\365\037\331\261I1\205z#\331\305D\321\211\206\322\350\244C3\350\314\030\235\3402:\313\241\002:\005\350\224\202\337\332p\341\356/\207\017\006R\t\010\025Z\314\047% mc\220\022\220\264\177\322\330X\232\005\320\220\025C\047fXLv\216\362l\025\t\035t\250\352/t\376\352\372\021\331\370c(\034\222vz\372\004\322\303G\317\355\255\236=\254\223\365\005\\\\\266\346%\210\336\260\276\301]\233\027\241\002\241Y\235\3061\332\257\047M\2234Y\047nJ\225\2524Y\247\035jw\256T\353\330\337\374Z\022\020\0219\327\216<\277\375\235\252\257\241\332\321\313\265k\233\217\266\036;\267@\006\205\002j\345Ye\247\246\030\336M\343\003l\372\260\327\222\263\004\223\244V\305\311m~\322W\020\327\002\017T\321V\2324\364\227\nL\352\346\264\014%\256\025\320)\330\325\277\317:\364\357\220\246\343\305s\360z\363\336\206\247\373:\307?\252_\255\247\033\3574/n\2447Om\256n\275\342L\0002\030\031\265\315.\036\236v~\027g\220h%)M\260HY\"\225\233\244x\"\241\226&Rw)\245&R\022\326\250\345\321PIg$]\331\226xx\2611`y\2506B_<\017\277\334\350\334\350\363\362\360l=Y\2574\276j\336\334\250\340\206\366\326\005\047\005r\0074Bm\352\352\036:\244FHK+\022\332\244\251M\240)\033\255L\245\264+\247a\032\010IIL\215\320]\025\220\036\317^\333`\371\250v\256^<\037\277\332xsc\300\313\307\217\353\367\032\241F\264yg3\204\226\016[_9i\230\245\241\047\353\363\333\356a\270\300[\034H\200\247\261O\236\211#\013\036Z<\310!\320\225c\324\364\"%\342\235\024\241\352\212\013\313G\325/^<\037\277\336\370p#\354\345\343\271z\251q\242q\253y\177\363\304ffk`+""\352LB\207\006d\300D\230\221\335\343Z\201\027\"H\303\202@\2736\232Q\334m9\265\262 \006\222$D\203\342<:\363F\t\3522P\255,\036\031>~\332`c\343c\266\022;\377\302\247\346\375\332\222\005+O\344\245\010r\203\214Z&-\322\344\352\214xH\2233)V~C\347\267\256UtV-\017\351\030\271W/\365\367\377\375\253\373\r\347uT\214\257\342\0258\217\236\226\253}\333=\257l\207^yz|\333\\\331\022\302\346g\257ki\361\221\272QG}v\3149\206\207\257\334f\377\352\277\272O\251\257\235\376\037a\321\365\366V\007n\256\036\253v\240\235}\367\323Lu\240\032\201\032\352A\361\246\243v\n\030\332]\237j\204\033\023f$r.\177\017\354\\\365\342\373\324\371tp\263\017&t\325;&<\330^\177\272\000e\235\257\205k\223\365s \364\367\2312h*\214f\362\357\243\377\352>\366T\235J\350\200\032\354\323\366\377\030\320)\324Y\200\247\253\3161u\224\005\357\273\271P\033\250\205\t\254\313\360:\264\270\236c\325#*\242\347\310\323kO\037\327\216\327\316\325\217o\037=Q\005\310\321\2477\252\003\316\2113\365\261f\3073 \365\226n\254\377\376\337*\305U\025\276W K\233\366F\343z\3638,T\210-\377\201f\233i\016\200p\323\243)\375\270\336\001\031@n\237W_Q\273\366G\217U;\253g\253\345\332Y\340`\007H<8\335|\001\362\320\215\215\001u\316\006\250\177\375i^w\013\250\332K\215\341\346+\033\307\235\257\307\266\206\266VE\201^\305\nE\335\365G\325\333\260,\032\330>z\022\257\r\322\264Fa\251\264\212\305\230\252\206\253\351\332I\335\016tp\302\240\351\252^\255N\0027\201\177\047\252\303\265\356\332\204>X\245\004j\344\371\233\325\377\326;\234\276\317\232\003\316\265\341\315\360\346\204=\243\361,\324\215\205\304R\235\201\257z\216\253z\271\206\2471N\327^\251\037\257\237\201\266\325\363n\355\"4\2629\265\230\3539U\2355\251\337\255}\004\231\315A\033\357y\033\230\241>\244,\235\343\2374\372\234\213\337mL8\337\307\266r\352\366\227I\312\027VK\317\364~\n\224IU\3755U\214\201\352\rm\010\361\357\377=|:\2135\364\306\323J\365K\250\352Qh(\257\034\257\276\2055\014\215\237\250\356@\"\217\324\007\352\303\215\236f\207\2331H%\316%h\305\316\017\361\2555u\025F\2062\376\014[U`\306\243\265\221:\020\2453"">Y\235\203\212}T\177\324X\007\361L\0211P\035\302\312\264\031\243\202#\\K\243~\310\315\030\246q\325\340\235\360\2042X\306c\244\224\363\347\315\211\0269\377T\233\307^pBe\020r\336\357o\3145?\006\231\346\034L\025\023\274\240nm\034\253\206\252aQk\357\350.\215\224\034\373Ww\317\377\326\236\016>\315\232\213\267\236\016<\rc\203\355\256\316\324G\260N\276\305\026\272}\024\213uU5\221\027\275\340\252\375\320\350k\223\305\203<\240C\353\006\222\334v\277\257\237F\047mD_w%\353\265\206x\t+\323K~\333\220}\3563\221T\033xdN\n\267\256\361\277\232\010\207\221\033\303f\006\334\321\230\317\356A\035\272\311\302@\233V\353\304\034\271YO\242*\231\006\021;\334kSh\327\331\273\006?\344\"\367\3737\034\367\251\223&\341R\356}P_\241\rG2\347\224\313\304\277|\266Q\207\256W\355h\243V\2254\014R\203(\357\014\"\325\202\\\325\205}\352\324VF\252\276\336\337\272\330\250\004os\261w\320\252\034\324\274\357\371E\337\237\365\347\336\313\271\317;\303Z\024\340\305,\010w;Xy\206\360\326\223\035m\231\313\203\204R\027N\372\ti\262A\372\t\332\035\276\205\316-;\347\3558\236\275\030N\251e\247P\047\006n\"y\032~\300\020G\343\370N\313\244\246\241\031\323e\030\031\336\371w\035_\306v\343\361\227\264\331\270\223\245\"\211\374;Y*\212]\306\227\261\275\330\367\2226\027w2W\241\005\300N\346*bW\361\305\363\355\033\377\346v\300\365J0\260\301\004\252\257F\025\327\360\005\336\236-\217\226\322$*\027\002R\227*\367gIV\243\365\200<\253B{\213\367\273|\2277\035\354\241\206]\350\335\0476\227\324C\r0`\201\264J:S\347\367\047;j\303\367~\363\372.\224\"Y\274\370:\255\256^\207\332%\235\266\363\344\217\035U\025{\277\220{\027\032\366\325\255\243j#I\353\221ic\331\371\343\317\035\365\336{\277={\342\371\333\334\035[\357\253\333\263\265\222\210t\037\260\250\367m7\037\354\246\351](\233\217\343\325\245S\316\224\336l\347\272\205\360\316\232\342\275_\027\330\367\374\253\002\047\266\226\224\246_k:\202V\013\221\316\235\027\214{\277lo\340\371W\002f\267\236(\235\236\326+\004\t\344#\235;\257\312\366J\226Z_y.\222\363/\260V\235\2046\225\320K\370 \251\367F\347\316k\237}\021\366\274\205\037\247\013\206\236=\320\325\276[[\006\366|g\013\036\2537\227\202\310\355\266@\025\344\257\376\315\2436\336\322\262[}3\337)\332\337\025\233\236\002\264\353\320\377nk\340\037[\200\035\247\224\026\227\312\354\263\t\261\251\347`\367U{\316\363=\357\"\347\276\255o\325u\343z\227\321\253/\335\3516|W\266\224\327-+C\204O\016t\375\355qy*\214\337K\035\244\366\ro\375\254l\013\364.B\320H#\327bD\270\\\351\257z\356\307\375\256\206v(W_\260x\253\005;~<\216\373\305I&ql.\320\350\302\263i\016\325\353>{A\023*\351\220\002\257\033\225\3527\271\304\247\245\003\351\220\002\215.h\251J6utX\321=0\200\215+4\206\316\230\271\300\214\016+\272\227x\343\347\346\240\306\023t\236\204F\360\260\360H\367\030:c\335\343\350\214w\307\304}\013O\277\255>\251\177\323\310""\376OY\220\205\267\217\276\205\317^\370\235/\320\366\313u\276\254\r\370\201\237C\315\332\017\276\251e\321\371\2726\301>\2008\314H\031\210\341\223y\327\256C\277\352\333\370|\263\343\177\332\276\211\234\352\277\261\235\350@\005\021\033/\232D\205u`\255\032\256\246L\314Zu\260:W\353\323\201\207\320\354*\320\234\006T\320y\343\2542\341\372\270\331\321T\271\223\025\021\2768\007E\216\241%\333\366\321\367j\237\327\2176\302\320K:`}~\364\re\\\327\017\003\302\261\023\325\321Zx\373\304\245\306\r4\214{v\354|\343\337\215\325f\207K\256\213\356\232snp\263\357\357\377\373\327+h\352\327s\3249\372>|x\364du\262v\271\276\n\250\216\276\201\327\375>\254\347\240\r\2360\367\004\034{\247v\n`\013\215\t\350\256 \027\274\335\350\006iXF\257\303z\355\234\262\323;zL\263\006)\037G\25384\376\033vN\203\334\n\003\231\211E\032\336\252\236\001\241\030{J\217\032d\324\200\251j\251\247\336]\237\320VPP;\312\010\353\330\333\3000\264+<\212\003\266\262\255\252=\250O<\003\204]\220\350V=\253:\352\261\223\325i\370\3427\303\001}\335\201a\302h\355&\024\363\2106\037<\362\364z\365m\3474*p\225y\342k\320L\234wQ\022\302\3403\242i\001Z\307\2217\253}*\032[\2212|\334>v|\373D/Py\247\031j\206\261\177\032f\177\022v\302xm\330vO_\375?\252\310=\377\001\024=\037\326/\351\320\273\265K@\353#\364~P+\002O\027\233\331\355\236\367k7\352\237;\347\277\005\001\340\216Z\317\300\027\316\207 \3066G7\302\310\254O`\204@\320\227X\373\033\3477/l]Wb\302-\347\026,\214q\353\202\337\252#/\233\221\363+\355T\004^kK\006E\221.d\317\227\325\317`H<\n\363\216\323\373\365\306\205\315o\267\326\235i\030~ ?\3340\331\3569[\377\245\371%\014M\252\277\334\257\275\r\023\266\362(\343\300G\320k\257\342\335\022\300\224\213\227\366\303\216\306\033\315U\264\361\223\2148\213\355\205@\341\3464\310K\363[#N\022FF}[\266+j\310M/\2228\002_m\260w\340zJ\375y\363\326\306\022\352\010ay\t\330\225eHO/\254\371Nk\223\324\303(\265s^U\261\267\330\037\327\047\024\010\332gs\242\271\010R\326\203\255\214\"L\2770\350\n(r\347\212\032B\340\325\277v\266\367\024\373z3\277\361\004U|\260\226\005""\354\270\241\217%y\267\361\245\3569\207S\354\257\240]\367y\213}\016\215*\001\004\275\264\231m>\002\331\354\377\266\346\025aP\031\334\342D\256\047\251\341\223\206[\n9\366\272YO\261\277h\256o\036E\r\035t+\300\216\273\363H\373\305\3064f~X\305\376\032f\227\001o\261\317\303\270\212\240\353P\350\325\215\036X\321\237\332z\240\010\323\257\003\271\267h\311\365*\315\372\201\267\354\272[\272\336b\177\271\361\312\346\373\250`\203a\013\260\343^;\316\025\337\342S\250\033\035\207U\354o\364\270\321\347\364\341\213\247_\"\013\254\037Yp\241\241\273\376\027H\305\306i\220k?v\022\031E\245\276\017\336\225|\244`H\212?\271\343(y@C\037i\347i\314\243\035G{V\331\303\246\2576\336\331\274\264\225W#.\020\200\233\354\333=g\352\343 \016\252v\353g\323z\355h}\020d\334|\363\311\346\325\315\351\2556\260K\266\222\366\260H\352F\355m\230\007.\177;\232\tN\210\023{\236\013]\343,\271\357E6\"\201\267\200\332{\025\377\0013\237s\376;XHg\275\345\276\330\320\343\243\032)7\276\204u\322\210\322u\000eP\035\260\nq-h\345\276\025Yz\004\336\047i/\327\363\224\373\233\215\2576\307\234\004\360\024\226\033\200\0367\374\267{>\256\027a\316U\264\035j\301\221\301\355*7\r\207\007(\3673h\350#\215O\232j\005\022\251\236\004\351\3751\312\252\357\201D:\202\047,\016\235-\372\340\217\247=\\j\350\211CM!\033\243\233Q\224\0104\341\372\335Y\327\316\\\356\307\321\332?\360\262E\373\022\236\207/\337\302\n\364gg\002x\016\222\020\240Gc\206\355\236s\316\271/`Z^\335<\264\211B\037R\362\224\274\277\241\007\0055\344\340\332\267z99\0103\332\267\316\224\236e!\033u[U\317e\347\362\320\346\227[\003[\207\326\340F\325\211D\017\013""\25675W\024\1776\027Q\002\320\026sP\3058\325*\371B\316\263\362\304\2064\302\224\227R\273vr^\026\214@s~\242\324\\\363\316\337\367w\204],?\333Y\372\003\256@\367]z\024\263\307\266:\366#h\007)\331\311\010R\036\003 \201\223:\202k\300\321fy{p\263\357\005\267\376vN\271\007l\375\203\316 P\006\303\246\256\024W\013\276\3775\310\317\270\265\257\027\027\312\336\202\261g\273\347\274V^\234G\226\177\354|\374\205Z\262w\354n\245\302\207Oy74\t\252\322.V\336\251B&xd\266(/&\243+\357\350\350;\251\351\351Q\\zks\022\235I\243\246\247\033\220\313\350\224\315;#\277\243\363{\350I\350\340\313\"3[\377\006\355kps\321\211i\r\216\336L^\243jS\007\202\0170p\375\214\317\025\357u\354\342\263\270l\274\362\3063i\203K\3237U\214k\"\331\346\241\014x\002\243\014Z\213\035dD{E\t\356w\224\274\376\245\032\302\216\313fk\341\273\033\357\224\362I\236\047\220\227\245\312\343*\3042\232\365\345m\241\264\345$\33325b\332k\242\273m\350R\260\300k\201\351R\260;\241\366\351m\212\320\353\337DqC/\246@\242F\275\002U\n\036\007\333\277\236\363\222\262\343\332\355(\362\\%(\177\361\344\200\252\1772R%cK\262\204&\2137\272p\210.&\241\033\303\344]\207T)\251\320\301\225\253\317\037/\206q\236z\221B\216\032(\244\312U\276\302)\027U\362A\013\373\006V{G\210ag\030\276BE\370\3765.K[\375\3164\232\332\303\212\314\371\350\232\232\342\047\270\177wj\030\245s\223J\006i\212/\315\243\345\372\222\026\226\324\362\244\345%\265<\272\242\211\266\236\335g\244\333\240\2722\215\355>\264\213\344\346\243-\334\312\273\030\301&\262\037\226\376\260\261\n\215\335\047D]nh\220R\346nLo\336\302^\254\025*\372\341P\255\254\221\362\263<\013.\217\316\310\343\357\366\2712\017?\276\003q\r\306\033\255\033\320K\252\005\032o`\300\337|\2566\347\036WkoG\273\334\337&\025\366\201\004\306\375\253\364h\255M\303\275\274\203S\332\326\323pO\027y\321e\3744""\371\376\331\365\002$Ad\365G\365\357\320\034\3420\266\020{\016o\227d\277{\210\267\0338\342\\\206\261\\]L\263\257\322\357E\002~$\267\023\371\333Lr\355*/&\220\247\203\344U\024\356\241\215vu;\342\311\276\007\037l\r\0277=]oo\333\313A\226\004\362\3115y\237\r\265\013\232\337hx\246}FZ\263\221\200E\026V\366\355\317v\313K[h\365\322/E\244\336\372k\312\210\007\2708]\337\323\000v{\023\242\316\325\377T\315\047\213\223i\301\n\006;\017Z\300F}\221\316C\347\241^\217S\013\243)M\236<\226\207B\245\210\032\310:y\216J^\370Fw\333>n\333\2305\337\270\321\374\001\226\023\367\324\010\202\026\256\300\344+\003\007f\361\336M>`\016\207\216\013k\222\262S\326{_4!\310G\033\344Ax\232\th\202\244\016K\027+\330w\246\332\324}3\215/\232}\355a\017\331H\360\305\353Y\347\354u\325eW\237k/\261\350,\302\304\t|\2026\2505\224$Z\311\325\275<\317M\222j\3403@\324\016\351`\025M\232\201+\326J\327\301\255-\016\267\345\355c\203\275e\207\226s\205<\270Lz\316\300\367B\334k\342\333\265\367\336\306\246\267\217\215x\350\227 \313\303\202LkI\344K\235\322\"W\256\216h\276\240\371t\227v)\373\336\247o?\223v\247\\z!\314\013\334\263$;fRj\004N\025t\341<\3311\223n\351\027t~\t\375\212\316\257\241l\250m\353M_\247\326\266+\342\n\nw5\210U5\262\231m\313\\\263W\345\307\363f\033\251\355\223\267\207\320\020J]\236\2323\235Mu\037\305i\373\244s\003\005\226\003qj_[!9\047\007\303#\264\340\222S\322\352\020\332\023\r|k\256\r\214\332\357NI\033\031\245\347\347o7W\367d\305\370\274YYN\307\362\336\013\371\360\017\335G@\367^\270\257J\264\313\316\321r\312\271\241\305\360v4+\030/&\016\243eI\371Y\336CC7\367\004^\014e\357:js\003\273\372\031c\330\207\365\313\332.\377\360\245\343\203\212|\362\021L\373\242[\333\006\252\257\232\341\366\260g\037\266\241y\047\377\002E\224\375ne\033\036}v\215\361\210iF\366\300\243\275\033\227/8\013/H\312\335\257\316(\323\370\2729A\354q[\016kB\267T\361\332\311\236\177\213\341\373\037\316\236\251F\264]\354\331e\017;\047\027I .\001s\264j\221\2049R\032\311\353!\345\315;\3228]>\244e_\221jS\017sy\024u\242x\266\233\3653\374Z\r\360{\356g""\027\361\244\342\304^;[\353\361\210Z\024\215\322Rf\222\227\371\221@\020x\037\262\275#\262m\335\357\233&\352\330>\233p&\364\273\263$\014\3236\004\035\236\244\315*zF\365\227\320\201\205-\265\243\357\214BM\027Q\013k\232\026Mi4\361\333[b\367:/\024\234B\305\251@Uhc\036y5/mlR\343$\331\224\354Nh;\216\036\351\n<\364YB\247\024\372\021\217y\376\330\035E\047\332\235@\047\321\235A\047\323=\215\316t\367\255\356\366M\"Z\016\271\3669\353\375l\022\331\3030\260K9\344\341\313\230D\366+\207L5~R\255\370\363\237\266\372\332\262\264\374\300\277\016\330\337\322R\236Z\370\347,-\277\3702\210OBt\233R\033\275\207s\304\321\277\016\240}\033\352\251\264OJ\253\002\232b\002\237\212\223\267lI\303\017y\023\236\275\325\255m\213\203\317\361\315\2156s\263=zt\332\005\244\216J\373\3154\264\323nO\340e\374\362\362-\232\203h\221%/\311\263\227\275\265\255i\036*;\271^O\352\362\376\001\254\335\205\211\322M\234vn\232wX\311\3701\035:8\367\215\026/\322|g\343S\264\020\325\327\236h5\346R\333\253c_\213\230%g\tF\n\264N\347/N\220hE\243\004m\026\321Vw\340\365\333\362z4\032c\311HGn\301\331+\371\332&h\035N\353\336\373\311[\277\316\212t0$\327SS\246\231\213\214\356\002\357\350\226OX\221F&\360-f{S_\333\364Y\207\303NZ$\235q\316|nv\211\345&\335^EO\222\003\34432$\210\222T\020x\24571\225\224\023$\007H\335\377N\243\005=\270Nr\254}\274\271Mv\245z\264P\006\240\3726\027\272c\250\355\365\321\226\235=\332}\220\017\247\222\360J\"Y\340%\341\356E\022j\371J\252YZ\211\311\333\024\335w\264\333\267\371w8\355\273m;\201\244\212\224\217\376\320J\2006\352\003\257\021\047f\322\"\227\254 \350\232\347\300v\275\334\316\315\302Ce\352\341\355\034\036\006\263\251\345\322{\227\264\217Hfr\364T5\r\033t\021\322-tn\205f\321\231\r-\241\263\024z\204\316\243\320\237\350\374i\326\304\341\3566n.\006\212%b\215E\334\241\356-\317\307\317\340\216\343\027\343\316\270\036\332\332\272\3449\272ysku\267\325~\330\313!\251j\223\257g\320\354A\022\016U|\240a\344\r\254\307\033\306\016\236\324=T\343\244\014)\242S4\025?\2145>\334\375\023:?\331\033\260\016\276\304jg\365\307""\234\030pX]b\332\346u\205\262TTOL\211K@^\354\372B\276\016\034x\335\031\211aT\347\177\242\363\247\351\345t\366\201\254\0052\350d\314q\252\373\350\3347\232/:UUi\363\242\003g\310\222\232\300uW\230\307:\233P\026\240\355\253-\327\232\235w\321\217\352\337C\373;\277\321\367|\303v\020\231\365Eu\272\177\31275\344Eu\324?I\325+_9p\r\324\324&&\211\02440\323\345\326$K\320;\257TWt\364M\236S\331\245e\307~,\347Y\3758_\377\204\027\361\352\273$\365\233,\313PC_&\234\004\212|\355\226\276\307\267\376\343d\246\016\252\361\335\275\330M\"\037\r\234\256\302MU\214|o\210\016#\222\240M#&\331\332D\320\211\204FB\355\323\370\032Y\345\253\244\223\324\207\347\333\313\350\030\036\227\271\265\323Y\231\303c:\211)\362\004(mu\3107e\350\035i\262l\242\033\032i\232\242E\016\351B~F\347\347\320\034:s\241\337\320\371\315\210)\313m^\371\\\304q_?\036J\327\303\332\212j}\\\267-\213\375\357\267>p\246`\224T\227u\356Py\207\246\003\220\333Tr\354\242\332\"i\322=\333\244z\n)\260\322\350\244Mm\335C\347\236\251\264\002:\205\320Ct\036\206\376B\347\257P\004\205\212H\367\rtnt\217v\267\317\030u\347\232\304\206c\004pw\257\263\335\002\304\007\233\177:\2230\250\202\000P\332\356\371\257\363\337+\315\016l\202\255\374\207*O\220vG\352\034Hj,\240S0\313\005\332\017$\341\221\372!\035\233$\t\202*\230&\047:\227M\202\304\032:k\346\\\366\037\350\374\021\242\n\246\235\2644:\351\356\333\350\334\356\376\031\235\237\273\357v\267W\3628\007\r\047\211\275B\277\000\254\257\342\303\213\346\325p&\037\201\212\241(\371\303\217;6\000a\326\241\266\245\377a:\177\332\234\013\274\302E\032\235\356~L&\321\204\0164\217\2423\nCs;\267\005\376\335|\274\211S\341\017\031%\032\034J\r\264\307\374o\027\303(\255\333\002\317\325\322n\026m\220\3226\226|\375\212z \325\001\211\2074!\306\320\211\231!\226:\342T\250\235JWS\025\341AV\017\317\031\023\247\033S\315=\t\352\035\236\273\323\236+\232\353\267Lu7\220\335\226\272\001i\373h\034\227\017\004\322A\047\232\327Hu\"O\353\270/v+\335\237|\266\207\344A\232\354\250\033\320j\212*$\036j\337i\326L\343z\363$\364\245\325\303\254\204!""}[\225\250\204\201\246\226\006U\005m\236\306\227\272\364\232\000\304\047\375R\227~,D\313?\362\265)y\211\035u\004\371\262\031M>d0@\352\014\0222h*\222/Z\272:W\245&\2247y\357\362<\177\030DZX\332\350>\000e\3207T\\r.\205\241|\307\267^v-D6\0476\275\327\010~\326\324\352\3030\266\222\315/q@\325\217\260\202\004\253\337\260r\357\312\227\227\201\004>YK\332o\371\356\027u\004\252\002\322.\320\212\225\304=9\037\320\302\210D\004\352\010\203\310\364A\323\021\250\nhd\232\364\325\304\320\346W[c\316\264V\221\353c\264\313\333=\375N\177\004\357\034\335\312\276\344\232\030\331\314\342\324 j\342ZS\357\273\rB=\014l\216\342\236\240~\345\025J\240_\305\022\357\226\222\306@\276\354$\257\261#U\256|ML\276\031N;\230r\222\226OJJIM.S\003\257\316\311\370jcx3\212o\027hE-\224\005F\330\302v\317\247\316\2477\360V\001e\027\367R\253\343\306\346\352\226w\216\370\274\251\347\0105tA\243\201\351M?#\013E\300\307\266\2345q\"E\236\023\016|x\227f\t\371H\231\274U\220f\t2\332!ai\027\3635\251\336v9_G`\302[R\022*\254\373\240,\260\354.n\367\\q\256D\267N;\023Iu\t\313.\352\343Y\317\321\247?U\227\353\327q\373\014\357\265?\201\307\220\021\226\257\255\326Cu\305\306\327\236\306k_\325G\032J%\366\232s\364\203\332=\365`\007\244\213\327\006\020\t]\304\177\344\3515\365\002\300C\274\034_]g\017\016\276\270\203k\224\327\336\254\376\267~\2441\2001\037\324~o\364\241\347=\274\270^%\372\260\336\247\023\235\256\375\267\321\3218\321\300\025\353k\307\253\335\325Lm\240\026\251\237\254\3175\372\340\353co;o\343\302\347D\363\326Fv\373\330\177j\351\372\361z\337\366\261\267\252\327\252\253\316\351\363\215.\274\342\377t\255\303y\347\242sQ\337\374w\354d\365gH\325\017\r\013\362\200(\047k}\370\220F\343\207\2153\352&T\272\347\037Z\267\233\313\005d\006]\303\377l\237W\237\355\365\3323\375>\211\270\027\206\204\047\371\020<\315\336w\333{\321\331\263\375\336""\311\261\327\3738\364\303]\342V\016\022\323\251\367\223\336\326\275m\250\2557o<\333\357\351\377\275\236\366\327\017\201\351\313\020\344\363\262\201B\330L{o\220\177\266\337\353\343\367zy\274~VL\357\222\312\027a\345{L\3669\243v\336\030\377l\277\327\230\355\371RF\375\236\267\266\277\2272u\240$\227m\357\025\214\317\366{Y\214\274\257b\217\327\303\350\007\271\305EL\264\214\013\224\227\344K\230\273\274\020\340\300\027\276\340\325\024\317\366{\r6\267*\342[R\273\272\020[\277#\255-\341\2448)_\333\246\365\025\335sBrd\340%\000\361\256v\\\224m\030\264\274\361\355fII&\373\345\320\017\376k\302\237{\355\224~)Zka\244T\047\237\272w\315\324\333|\301\324\263\375^\217\275\347k\301\361}gsM)M\3244\264\313\367\"\334Com\276\013|\177%\r\373/@\377\264\241\2472e?\263\361\010\337\230\317(\251\035\310\002\356C9\361If\363\350\047M\3264\274\0076\365\005_Q\177\200\371\361\250\223\326\3235\340\324;\226\2378\237|\007mH\255\256\017\253\250bq\262\257\222\356\324\251\017\263\244\373\276>\241\2157L\020\013\344)\316]\250)\302m\277Z\342Y{w|^\230]?i\021\244\r:Y\225\322\350O\273\334d\000\355\3528\333n\320\377\254\275;\327/\3166\240}\347\363\016l\006\360\254\275\366\212/\326\004\264}\007\371\017n\373\371\3540\266\217\366\274\354\336\227\305\037M\001\201\367\263\221\336\234\230J\372A\322\326\222\232P^CJ\227;\321&\036\355\344>i\353\341(\332+zv8\033v{]\033\357\353\030\tM\267\324\200\211\327\264UA3\017)\377h\317\316\275\013Om\335\321Y)R\311\356\362.\312\203\0341\331\201\345\036N\277\244\321b\247\3758y?\212\2743\236Z4\355\004\321\224E\033B\356nD[G\213W7\344\354\337>\005\266\036-\370\031\023\356\347&=\362\354\311\363F\224`YA\332\307\022\377\345c\272\244\342\246\225\"\r,\362\3268ZHK\3738y\325j\340\210B\206q\244\351&Sr2,&#\323<:ys\256\3721:\217\215)\371 :\203\306\260x\022\235\311\356\031tf\272s\350\344\272\027\320Y\350^l\243\321\361H\363\254\352\203c\252IC\007\324\202\230> /\005U)E\320@-/\366\225f\272\264e@\0035-\300\345\331\222\273]\207\324\360\366%\201\006\017\232\273\230\247\002\337\010\331\263\035l\t\235\2221""\207u\r\217\332\047\244\262\375\221Ca\271\322\206\211\325\340s\317/\265\036>w\022Zw\272\260]\032\226\220\374O\223\024\211^d*.\217\223\321f.m[\375\325\306\363M\207\315\366\375L[\001\227\235P;\337\351\354\330N\367wK\333|\272\372\204\030N\223\030Y\223\320\006!\335\344G\302\001\235\346\3731\324\306\231\355\260\031\377\275\357\351\303\2355\232z|iaY\277\323\342b\247\307\270h\237\334\275kF\215\262\304p:!A\346;$\233\005\232\333\207C\355{@\360\360\031\257\264\246\377,\273)Z$\3133)\362\344\031\211\013\324\322\311\300{\360p\014\246\016\211\361?\372\014\326v\326\341j}\304c\347\261\236Q\345f\344NgIh\345GS)5u\232QI\265C\034\247\263\355\322n\215\3444\032i\244\305\024\231\353\014\205\332\247,>|\306\357Y\321\252\017\006\377\356\374\256\367\t\344\376h\340n\367.\336\252 {ib9\3513\\QN\035\266\224\367*\223hLm\235Ls\206C\355\323\350\036>\347\325\313l\202\363W\032Z\003\242\036y\335\354\301\327\232\364\221= \336\275\031\353\211\363D\353\340\344\226m\340\006\374.\036\252\242M>y\314\221XN\232$\022gH\212\224\266id\205\023\361q\376\307\315W\360\310\241^|\003\361h=\260\335s\321\271\370\0034)ez\364\3628?\2649\360\2173\314\334\351\270\224|\366\352y\307\245\332b\221yH\234\037\366\231\304>\347eU-\326\350\006Ob\274\334\316\0164U\330\305\363\024\264z\222\313&i\035Kb\r=6$\315\316\310F\371F\250}o\266\036>\367\325\013\032\377@SXR\256\272\032k\245\021!\331\206\024~$\333P\243\047[\375\321\303\261\201}vh\006\260\377X\363\327\235\316\250\3202v\227gT\332c\367\372\354\320\214^\377\261&\257\244I\220\206\310\362n\372\300\243\233?\035\236\255\353\241\324\301\250\317\354\3709/K\243\314\243\204|j\377$\353K\263\r\222{\250\375\313+BI\342$\271\207\332?\311\372\362\230\020i\025\244\365\261\324\236\221\334C\355\237\016I\334\014\265\363\335\352\340:\330\337}\307\373PV\006_\374IM\236\246[\032\367w!\345\374\325\331>5\243\272\346\370\331A/\361\335\025K\344\335\235\377T\226\320\265\275\317\332p\355s{.}n\337ca\007\274\355\371Y\033\356xm\317\r\257/\377\3754\272\332\365\357\236\177\275r\234\016\0368G>\250-@q\216\036\253\276Z""\353\253}^\177\003\315\364\337\252~^{\r\372\331\3003\362N6\372\304wG\237\216\341\221\201#\315\353\033xT\241\372~m\242v\277q\334\371\004\025\364\332\376\276\372g}\002\337\004\333\356y\315y\355\203\232\314\227\010\303\203\023\047\361\314\303\033OW\253\257\325\322N\337\027\332`X\331\354\263\364x2\000\017\021\274\327\010\2436\350\310\323\353\325\267\000~\364D5R{\257\036\256\337\321\025\353\375\354T5\213\0075nT\0070\213\n\2600W\033\330>v\272\366\177\265lmU\235}p\336\376\024ZG7\314<\047\336Q\250\322\215\343\215\213\315\214R\271\237\370\260\336\267}\374d5U\353\256M\230\323\020g\352Y\347\334W\033\247\224\212\222N\"|\017\037\235k\236B\342\237\001u\220\335;x\206\003\362t\336:CH\373\360H\304\004\002\313\325\276\352\365\332\233H\312\211\352\0200\352\026\264\3035`\325\t\374\352\304\333\325\022D~\246H<\335\213\207I\240\202N\277W\273\346\374\367\013z\201\344\375>\305\212;\033\035\033\357a\360\223F\037\346\373y\265K\027u\225\010s\336\273\330\270\326p\017\212\000s^\375\327+o<\235\253\236\257\235\257\237E\263p\271\002\245\373\344j\363\014\014H\257\365\326\377]_k\204\005\332\026\330\006\374\230\006\232\047 \003\350\3170\216T\037\324RP\203\047\353\263\215\267\233\035\254\300\317z\336\253]\255\375\3348\331\270\257\337J\004~\275\337[\177\275\221k~\263\221Cm\311G0\216\244\032\335\215\237!\376C\205\371""\314y\010N6\225\27556\204\001\344\333\333U%\251\\s\316)\355\0266\315Pu\270\366j\275\257~\255\276\212g\210p\310\351\252~Q\273\240\370\257\216!=\206\336\205\215\362\304\311g\307\240\037\000\277\235>\334_\372\030:\332\333\247\267O\274\353\274\213\202;t\205\201Zx\373\364\373\265\210:`t\342]\215\344\231\035\316\240_\375\004\375g\255\036\207\225\325\321s\300\266q\030\250\024\007W\003#\337\331\354{v\024\217%]\323\243\001\366\246\317\236f\237\376\t\214\352R\024b\013\350S\371\035UG\246\220\345@\305k\307\252\035\325\017j\025\347#\034\372T\177^\205\341e\266~B\265\315\020L\021i\034#\337t\336D\r+\224\023\371s\014\233\303\361Z\037\266\233\013\210\007\206)~>\3149\n\355Q\037!\033\253\275R?\256\217|\205kw\032\035\352\250T\317kO\047\253}\330x\201\233\236t;\214\305\317zp\024\034\200\n\277\312Z\370\327\325\211j\001K\010|\305Z\371w\265\342\274w\035Z\3341\350\036\037\327\027`\304=qZU\335\3670\310\236\300CX\347\032\357\003\217\310\253K\205\365\005\334mt\230F\371}\375-\254\330\223\316\311\263X#\340B\307\306F\272\372\354\330)uL\256c\373\323\353\315Y\250\340\376\255\316\255\276\355\257\276\336\276r\255\031\321F|\330\021c\325>l\231Gq\253\260)\034\252`\331\314\334\022\346XX\315\346/\366,\345\026\227.\366,\027\036^\354\231[.\224\262\212\356\007\205\345\365\025`\266\252\252\271L\276\347^\026\313\333\3630W^R\330\312K\n0\253\0302\253\351;\337\327\003E_*\314\367\367L/\345 \217\373\331\r\340\252\212<_\352\003O\026\252\007!%\315\310R\317\303\245\254\346\333\\F3\030\361\032\206b\0331\314\207\257t\315b\002\235i\036JX\302\272\204\206S\336\350\177\305\266\255\271\345L\251\324\263\230-c>\271r.\263\234{\014\010\220x\340\237l\020=\210F\225\271\260\212a\240c\003\202\324\300l\341z\n\367~\313\316\225U\373\323\355\0072W\324\002u\205\207H\332j1\267\222)n\260\266\006\334V\210LS\241R\007\267\214ot\t.\301\177<\347\317R\341K\006\343%\267y!\312K\205\3742\317\r\277\274\244q\370\353\206\007\372X\"\3639D-\226\316\337\341\311.\336\355\271\2432Tq\263@u\2418{\377!\006\356\366ib\207\013s\320N\362\345\214b%6\256&\037\330F\224\315\353.\010\235\215\352Sa\032q+=_*g\362\320\007\021Y\261\260\010\350V\000\375\234\252\230\007\271\014\265\200\205\302E\321\016 3o\007""\244\246\221\313\226\372-k/\021\273/A\005\254\027\363\274\003K\016b6\205\365\262\2520\323\310\3248\205\003\227n\347\320|\261\231g\363\245u@j\352Q\265\363\314\362Cl4\017\240\351\315\023\302\342z^\362\367n_\317\307\252\341\227|\325e\232\010P\210\221\313\013\375D\n\3412\334\212\022\263\366Qq\"OQ\373\273g\352\376w\026\006\242\236\363\331G\253\320\035\240W\365\334\2031\007\207\023\350y\345Bq\343bO\246\334\263\234\315\224\312=\266\223-dr\313\246\007f\213E\250\332\271\302|\266\247\047\237\315\342\000~>\203_\250\021\031\260\001\35338\310\367\30421\250c k\203\006^\200\345\013e\223S\337\331\363\363\271\322\352rfC\265\201>\240\353\354\371E\230AV\373\240\211\237-\235-\365g\346\037 {\300\007E\231-f\362\213\331s\210e>\273Z\314\316e\220~,\364R\006\021\367d\027\026\240L\337\364\234?\177\266\324w\036\263\205q\0269\332\327\327\367\312\305\236\213=\213\220y\377\347\337\364|\377c\270\007\032D\016\232\000\024|\000\375\320\366W\024\222\322J\241P^\202\242\204\207g\022\006\363:\326\323\275\345,\373*\207\303\376\303\374\267\340\2411\244DM;\017\335\033>\356\357I\302\210{\016|\347T\247\000\006\365\207!\335\234\356l\021\305\306\363\251\360lxl,>4\033I$\372\0063\363=q5N\251\210\301\360\360l|\360Fd(\245b&\334\301\303DN\204\023\341\361\276\301\365\345\345\317\006\263\300\370\211L\031\242\363=\3471\224+-\365|\327s\371bO,\273\016\263\360r\317\367\030\300\304\030\363C\317\345\276\241L\036\253c%\367\250GO=\212\231zv\032\316\224\226\200\273c\271|v\270P.\273\336u\344B\344\321*LKy\034\231{\306\013j\020\014?\310\0263\213\331\3461\356\000\021\203,G\224\230\200\305\030\231\212\r\315\306\342\251\331\221\370Tl\270\317M\205\214\317\364\200\370\220\315\254(,\023Q\031\227\367V\312ul9\036\354\327\023\361\251\t\206~\024J\357\241KO\347\370\031T\016L\356v\276A\004\321\330\304TJ!\200Z\202P4\025\205\351\347v\244O}V\372\006:\360\372\302Bn.\007e\356\031\325\355\232>LN\215\214D\207\242\221Xjv4\232L\305\023\267\340#\254\036`\215\255\374h,\025I\304\302cX\377\361\004\244PCN\317(T\002\224L\247HC\226\303\263\243\341\330\360X""\304M1\006\231\365\2446Ve\2421\310i6uk\302\246\263\255\306\345\037\377@5!U\013\251h<\026\360\325hay>[\014\370f4>6\034I4\377\302G\033\377L\322h\247E\010\257k\361\355ff}a\005j9<\237\201\211\375A\326Smc\271{E\234\254\261\342\274\225\006\362\201\2522V]\343\221d\270\031\252\361\221(\310\252\336.\3760\2033B9WT\202%H\035\227 \313\236\241\376X\301\363y\317y\220%\240\305\2277\372b\320\366\221\240\344\372\352j\241X&r\220\224\344\324\304D<\221\212\014\367a|6_X_\\2\343 \312\277(\313\271\355\275y\003\242\2110\221\235+`\346@\35670\022\203x\005#\306J\001\346\255{\246\027\227\001of1\223\313\367\263\014a\326\206\211\031\346\n5\351\227\276\351qg\001H\224\325\343\366\220\222\351\365 \273\234\273\007\271\224\2630s\003e \334f\325\340\236\357\231\210L\\\272\372\325U\232qp\300\202\031g\375\236\022\334\262j6\271\267\236[\006\001\241\247\014\255\000\205\346\205\236\215\302\272\232/\260\270\253(\340\261\017`\340\314+\001\025G\320sjXR\243\344,|\016\254>\3273\017\3650\247\352\016\276\036\311,\227\262\375\361u\220\240\026.%pR\350\211\000!QXLMp\337\330U?\321\006\205\310\256\254\2267\024\275\375\263s0u\365\257@\207\311\221\226C/7\240&\240\317\303D\312\223\255\303jr\311\227\242\014M\376^?M\205\310X\rP\037jo\241\010m-;\217*\032\r\320\254!\277b\216\366\2276\310S^*\352E\215\016\302\372\013\227\233:\362\263Y\243\333\352_}\224#\320\\ae\245\220g\000\\?\261\240np\n`F\002\306\224\222w\240<\027\036\n\017\r\r\202\330\2274\356lR\241\360\004\373Qz\300e\342\354Bny9<\024O\342\237\2336\336,\235\233\"8~8<\214\377L*\327\347M\026O\016\251\0377\241\365{\223&\340\237\233,\321$\321\014\256\274\360\317M9\3234\251M\322$\205\233 8~l,\034\017\307M\242xp\242\2118\3743i&\232$J\304\3431\365\203\354 \327|#\203\001\037\362\204\301\251\222\321\030\376\231\204\326\353I\227\n\307\360\317\244\263^o\272\004\374sS5\341o\372\372p$\255\177MR\036\360\245\236HD\207\"\306\265_\360\240\347\233\345\345!5\374&\365D[\032T\355z\220\267\356\301\346M}0\222\n\343\237Ii\275\236t\361\t\370gR\271>O\242\302\374\306p\341\267\034\272c0J\243\233\\\202\261\005=\351lQ\001\207\206\242\360\217\276\267>\211ihx\354\312P\">\235t=\346\003O\330\367\331\347\203c\341\241\233\346[\026\262\010\374@?\026X;D\207#\326\307\276\026\000\377\227c\321X$\231JDoFd\210a\360\001\375X@&6\004\220\227}/!\376\217Q\366\206\346\235\204t\243\3360C\023\000\366\343\232\036\215\246\"IXqF#\211\244\017\300\260\005\301}\350\302\330\022\343\261\310\360`""x\360\2267l\221\005\201\375\270\206\323\341\330Pdp,\016\225)\203\014\223\037\352C4\030\031K\341\232\232y-\002\017\304\377q\"\022\276\031\236\016\337\342~\366\271\007\344\373~h,\016up}<\234\230\032\214\337\236\362C,\256\340\010?\3068\0248<\206\254KN\303\360\034\000b8\203c\002\220N\241\232%\234J\205\025\267E\230\243\363\203}\270\206\303\211\233P\226\251\341\241x:\222\360\001,\266@\270\037]\374F\224\034l\321\314\3130IH \016\231\272i\312D\370z<62v\313d\313\303\014E\000\330\207+\022\273>56\002U\312\375\026\207\027\344\377>\035\211A4+\271\007\302p\005F4\303(\261\005b\332\r\313\365\360\004\216O\370\247F\205\000\220\305\327$\306\2174\021N\303\250\211\243\202\346\274\0040\204Ap\037\272\321\360\370\270j|\332c?\027\341\200\317b\327U\037\214\211\000\377\334\003\013@\221\010\217G\255\047\021O&e\210c\363\002\233\240\363~\3224u\364\372\3504\360\207y\331\247\022\022\360\361\315\233\341\233\021\353\033\217\017\213\000G\345\2015C\346\373\244i\372\3708\360u\"z=\022\217y\202\014\207\037\352C\004\r-\226\212\016\205\307>7R\202\007b\321\005G\3701\306b\0215*j\017\373\236\207\003>\203Q-\025\031v\233\242\004p4\001p\037\272\233\321\241\233z,!\337\340-\034B\224\010\340\201X\324\301\021\315p\373\276k\226\036\346\335\341Hb0\236J\305\307=A\213#\000\352G\024\217]\037\213\\\277\036\031\246^/\001\014Y\020<\030\035H_\314\353Aa!\276\217\331\034\355\237\234\2377+\217\207SC\243\300\261\261\370\264\014q\024^`\020\026\222T\310\047\276\336MN\031\217\047\244\311\010\356\361\244\242\272%&\375\020\21328\302\217q4\036O\331z\342A\206\313\017\rB\224HQ\347q\375\002\205\000\371\277\237\200\341\020\362H\305\047d\210\341\360\001\375XR\300\305\310\360\004\210\230\221D\314\007`\270\202\340\001\350\260\242a\2651\035\035\032\365\20692?\330\207+\025\2769\225\210\272\036\373\265\010\007|\226\234\272\031\0051""\210\373\371\307\022\344\377~41\225L\351\276\340\372\331\367\036\220\377\373\204\031\021\310\307\276M\354:\002L\305\242\223S\221\317\023Q-\306\363\240\305\021\000\365#R\" \224\321]\364{ \014]`\204\017\343\014\245b\235\323\013\2628\233\304x\220F\242c\370g>\263^O\272\361\021\370gR\271>o\2428\374\233\302?7e|\252YR\233$8E|b\002\327\300\3321\211E\310\373A\"\021\031\323\277nr\026\360\246N\302\277Q\374s\023\047G\233%\265I\202SL\215\047\247\306\365\257I\312\003\236\324\351(\3743\351\322M\272\020W\177\341\226\3710\214\264Sc\251\341\310x\030\377\350#\346\225\337\017G\223\341A\030)\206\243i\370gRG\203Ut\303 |\216F\225vB\271&\271\014z\276\231\210\017\273:\317\341&\332\317\341\031W\001\333D\023\353\0325\016\027\312\221\221(\374\243d\326\047?\200\002\33327+}$\021I\300t\351\342j2N\271}\267I\047\216\314L\300?\223f&x\260\212\254\255g\226G\306\342\361\204\372\2414\334/\323\217@\313\033\261Z\337\221f\n\340\221Dx\010F{rLj\021\362|\220)\232\355F\343\366\317\316\242Q\330\354\254\027\260\020\220p);w\177\266\260j,\326\324V\016\213_\314\226w\211\305\315k\221\215N\246v4gKjsI[\364\261$h\363\264\314\302\270M(p\224\3122\274\236\317\241}\031\203\271\206n\013\313\231E\213{\321cw\027\020!\211A\27051t\301h\217\350\006\226\013\205\373\3672s\367]\2006\243\363dM@\211\236\014\356\334pq\335r\336g\257\047b\002KQjR\212\222(\305hx\324\364\216\321\340n2:\036\036u{\320h\223\2764\232\232\035\036\232\200.\024\037f^\363\221\017\022\364\361h8\031\261>\361)\003\370\276\304\310x\302\365\330\357D\330\367Y\022\3045r\354\047\311f2\034\304\245\022\221\030\256G#\334o?\365\202\202\277\037\217\017G\270\337\363=\003y\276\317-.\215\025\036*\03314\212\215\216G\243\256\246#\332D\347\301\315\313\310\272\354fx<\214\177\224\236y\345\2477aN5i\202\007\236\233\3037\340\237I\343\372d\"\344G\030f\327\353\256g6\214kUO\220\276\r\2066\301\250m\337\206\"\023\251\000\220\017\2417\246\031\322\344X|\"\342\t\372\220qhSD\336o\202R\307\306\314\2549\026<}\216\305\257\017\\V?&\035\363{\222\346\362\331q\250\316\241a\374\213\314\244\310\241\3042$""?\305\270\221\350\0149\354\003\033\362\177\300\2225I\243\377w\3235ii\343\341\304\315Hj$j\\7\275\010z\277I&\243\352\307Mm\375\336\244\351\t\374s\023\246\047\232\244\203\362\317(\233-\343\272\237\210\240\3573\233\254I\n7A\263x\024\334\310\3213h\256\234]\231\235\265 =m\216\303\212\016\367B\215k\360\312\240\007;0\326\362\264\031;\243 \231A\0171\256I.\203\376o\0241QILt7b\2421\370\247yL\256\373Yl\027\036\303g\341\031\375k>\366\326\221\017\022\204B$n\226n*9;\0345\256\375\202\007\003\277\0317\256\374f\274\33176Yp\212\370\370\270\253\032\034o\242$\034\007Q\037\377L2\353\225\351b\341T\"f\367\351c\315\266\354c\361X$\226\216\306\334\325F\254\311\272#\226\315\024\343\203i\370G\321\326\047\023\306\265\335\314pn\016M\377\224\355\344\004\016\304\261Tt,b}\364\255\017 \221Qt\"\034\273\311\274\362[\006\361|<\246\252\220\034\363\321X\363z\325q\343\344\210\017\202k\003\026\235\023\356\ng\242\311Zg\"\035\235p\231:\321\204\275\023\3518\374s\0235\303\224\202\177n\242\340\232\237T\332\033\375K\tD@\246N\300\250\353\016S\211&\003V\">\004\377&\360\317\244\264^\177R\374\033\270|\231\034\373\005\013\371?b\311\232\245\261I\202S$\243\twJH4\231\034\022\351h\302\255\202D\272Y\242\370\030\376\271\311\342\301\013+\325\270q\300Nd3\312\034$\031N\300?\230t\365/}$\002\022C\322U7%\233(\236\320d!\032\033\305?\223\322z}Im\222\340\0240k\272u\234lR\333\311\361h\322\025/\223M\004\315\344d\"\205\177&\231\365z\322\245\206\207#i\375k\322\362\2007u|hT\375\214\350_\367\023\026\010\370\004j\333\270\374\213f\215@E\362\204\301\251\246\006\341\237I\346\372\274\211\230:\247\231b\0479\005C\225\222\366\255\317\375\304\003\360|\251\026\310\311\245\314|\341!\232\023i\237\2622\322^cgdC,\262Dyh\304\260\222/\254n\314\316\272\301\371lv\325\003\202\201{\035\326\345\263\251\317S\237\023\324\365H\312R\341\030\374\033\305?\2230\334\244]Z\233\262f\326ex\250iH\375h;E\346\235\035Z.\344\263\034\020\207/\275\341p~~\304\340!\360D6{\237\207\247V\3473e\201H\031!+@\303\260\317\010\3643\002?\307\310\020\372\3611t\002\033C\306pYT>L\026\021\307c\321\304\325\217\305\025wq\305\275\270\342.\2568\303\025\267\270&\342\372\327b\233\260\350&|\370&,\302\t\216q\202\241D+T\343R\2132\026\254n&\006`r\342a\226\235\001\233\272\233\320\034L\357\256\264\006\323\331\214F/}\3363A\301PN\251/\316\222\033\030%h\366\245\260\204\373\2428\365\276H^\004q\n)\010&\310\2271\214x\177\204$]\3063\302e\204 [F1\242\365\001\023\356\347D\022\304\022\307\000\202(\202[b\010\300\211 \220\310\334\234\234\362\206%\021.\224\023\"\200\036b\3348N\220\013\224D\271`A\030\236\250\342~u \313\007\220dZ0\247SB=\204\332HN\251\205JR-\334G\253\237\022\037\021\315\362\367e\035\220\253\310\220\316\214\311\220 \300\300\030\t\034$\21101\214\014\003\022\204\030\240 E\035 \023\201\361\370\2607,is\241\234:\001\364\320\347\306q\n]\240\244\321\005\373\251\014\240\302OB\323\374\375\231\007\345,\262e\047\343\374\020A\r\2073\222\274`I\027\217e\304q\260\240\220G02=\047\356\002\201\234Xo\224\2457(F\220\354M`\251\366\306p\302\275q\234vub\211\373\005\245\032\302\010\264\000I\227\2063r4@P\241A\"s~F0\010&\211\0211\234(_\204\2078\021\317\211\024\021\222X\021\305\210\246S\204\"`\216\"\006\002y\031\274Q\266\020A1\242\024\336\004\266\030\336\030^\016o\234\277 \001\344\371\311jJ\216\237\214\240\354y\266\374\004\245\037\302\251\021pK\222\017,\350\022\261\2268\001\346\024\212\010N\2468\233\031\004\023\244\312\030F\254?B\222+\343\031\3012B\220,\243\274DGc\021\031\362\021\2120\017\211\006\344\047\016c\000\047\210\203-M^\250 \213GZ\3128\224\023\307\341\202>y\3369\030*)\365\304qr\003\242<4{Rp\302=Q\222zO$+\202\347|u \220\027\300\033e\351\017\212\021\344{\023X\352\2751\234xo\034\247\235\235\347\366C\004\325\034\316H\366\202%\275<\226\021\313\301\202R\036!\311\324g\306=A\017\201\004\024\3241\230\2274\212\022t\021\314C\024A9E\366\004\272\017 \250b`F\227\007*)c\221\2146\006\025\32418\247O\234j\017\202\t*e\014#\324\037!i\225\361\214\\\031!(\226Q\202hvz>\000$I\346\021\234b/\334C0\217\346\364r\270$\227\3070j\365i}\356\347\364\021\304\022\306\000\202\"\202[R\010\300i \220\310\234N\373{\202\222\004\003\344Tp\230\207\020\023\305i10I\216\201r\212\314\375\001\236\240\240\310\0052\212\004LR\344F1\212\\\230\240\310\205r\212\022L\2562W\024pj\022^9\212C$%\t\257\334d \202\212\204ON\342\267\032\370!\234\032\001\267$\371\300\202.\021k\211\023`N\241\210\340d\312\333\022\002\201\202XO\024\2437 F\222\354I\300\250\366\304\010\302=q\214v\357\255\014\301PN\275/\316\222\037\030%\350\367\245\260\005\360E\361\022\370\"\335\"D\242c\344X\"1`\2502~F\006\202L\276\350\267\031a\310\305<>\242\177-^\360\033\264\344eX\001b\220\202\327\342\204\200E\031\327\277S\3440\324q\273\2544~\216\213\232\302\006=\013\262,\010j\262\241\240\315\212\0006;\274\033\303\365\260\314T\320\315\313\r\361\254\024\320\315I\205XF*l\363I\352\337QrXNI;\027\032?\317%i\347<\364\263\034\222\243\034?\307\310\020\372\3611t\002\233E\246\216y\270\036\213X\007\rn\033b\3505\320\344\240C6\023\035v\363IG\365\257\315!m\247\337\264o\342M\333)7\315\047\333\264\235f\361&\020r\\\244*@X]\277E\253@\204W\371]\304*\344b\216\246\365\257\305\033u\r\202\215\227a\215\272\246\300\350\2658\243\326\010\330\334,\302\274\026\271\001\230\034x\230ec\300&/\023\266\031\032\210\233\253\262\211\037f6\361\303\326&~\330g\023?lm\342\207\271M\3740\263\211W\247\024\330Q\002{""\222\300w\220\300\236#\340\307\010\330)\202\310HT\377\272\330\320O\350\214\327\342C\010!D\257\213\021\003.J\325&x\223`-\302\337 X{\020\315\201\267\006%\031D\224(\031aBd\304\212\217\021\237\340\030\261\"c\204\013\213\021&&2\371\302\212\024>)\302\n\016\\V`\342AdfB\377Zl3\256Hi\274\014\337\214+@\242\327b\234\261\342\242\272\312\305\270.Z\035\"\3046`Qk\030!\327\001\027\275\016\272\031\350\303\024#\374 \305\010;D1\342?@1\302\016O\214\210\203\023#\374\320\004]\027c}\026?\205M\026,\310r!\250\311\210\2026/\002\270\331\341\243M#ca\\\022\253;ZRxo\275z\334\212\003F\212YL}=[F\220~\322\310\206\243\371\205\202\016\251\267\224\334\367D,|\214.b\321\241\370j\323\204\372M\022_\004>\010%(\263\020\"m4\254~\\n\215\272\235f\324\333gF\335.3\312z\314\250\3550\243\252\017\216\262>8j\373\340\250\257\017\216\332>8\312\373\340(\353\203\354\326\025\031\262Y0\230\311\312\003bY\262\030\2235\003Y\022\030P\222\202\267\270\210\200\207\020\005\022t\270\020/\031*BP\241 \036\"\024\214\321\240o\204\341~N\001A,\001\014 \362\047\270\315\236\000+\221\250\265\017\211r\313\220(\263\t\321\357\275\231\241\315\276\365\004\001\274i\207\0347?\025\240\014]\277\315Q\201(K\345w\363T!\223\351\315!\365c\261\2723\302M\357|p\323\235\rn\262\271\340\246\235\tn\016\337\320\277\026\033\370\r:\3622|\0001\010\301k1B\300\240t\257\300\341~}\301\217\037\342f\353\205\023\tA`K\2167\226H\363\202]2\275\021>\222\003\310q/\022\n\206\356\366\205\277\0202*\250 6\205\25706*\240@6\322_(\037\031\3152\367e\251.>\362C\002\n\255\341\276\234,8(?\035\033\234kP!u\204\277\200\001I\335D1\365c)v\027\020c\336\245\303\230\273h\030c\313\2051\273PPw1\031\327bT!\203\324\r0\274\nfP\253\200\305\256\202&\0035b\340\005K\344DfR\326\347fh\302\224%\017\332L\r\224\2625A7c\003\260Y\253\333\237\254Od\207a""\226\235\t\312\354\020\312\262\303\240\310\016\001<;\221\003G\037\200\233#\226X\031Jb\037\033p\307\331\200;\356\037p\307\331\200;.\006\334q>\340\232\253\251\230\227\345@\0007\027\026\3469\021\330\315\215\302,G\202\330\\\223\311\250qY~\030r33\001\236\023\302\334l0\300\362\300\240\315 =A\016C\237\236\260\330\323\023>\344\351\t\213;=\301Q\247\047\030f\335\220\364\005M\314\313\362!\200\233\027\013\363\374\010\354\346Ia\226/AX\336<\027\226\201\0377C+02d\014\227E\345\303d\021q<\026\r\335\330\305\274\026\257\001\030\354<\314\3620`\223\223\t\333\374\014\304\315U\267X\336XY;\3657Q\326:E\303\344m\222n\010c^\213\334\000L\016<\314\2621`\223\227\t\333\014\r\204\347j\330\027\365\262/\352a_4\230}Q\017\373\242>\366E\275\354S\347\377\315Ee\314\313\362\216\311F\314\303<\357\230l\304&\314\362\216y\032\261\272\261\314\3650\n\374=\211\301,\035\315\372\023\213\261\324\004\364*\006\2244y\362\225Y\006\346&3\362\346\301\321\253\253\271\230\227\347\245\00167\033\026\371i\260\315Q\207y\236\032\342\311u\234y\275\271\216{r\035\017\316u\334\223\353\270/\327q\236+\317\205e\340\307\315\320\n\214\026\2312\207\034g&\220\343\326\354q\334g\3528n\315\033\307\271I\34383c\304{\345\310\261H1`\260\032?C\213 \203\027\375\0261\206\014\346\230\276\242\"\306\357\250\210\261K*b\376[*b\354\232\212\230\270\247\"\306/\252\210)\335y\214\351\316cVw\036\363\351\316cVw\036\343\272\363\030\323\235\307\007\323\372\327E\211~Bi\274\026%B\010%z]\224\030pQ\352\347\177\315\212\321\336\177\047\002n~\014D\331z 6w\026AD0\210K\013\203\031\222\330=z2\344\245B\301$\031.\310G\207\212\221\204(\220\227\022\005tI\0313C\200\271\247\317%aL\014\000<\310\262\036\023\335\337\004m\226c\262\363\323\335~\326\347\311n\\f7\036\230\335\270\314n\334\233\235\355U\023j\237a\202\3553L\330}\206\t\337>\303\204\335g\230\340\373\014\023l\237aB5\372\t\326\350\047l\243\237\3605\372\t\333\350\047x\243\237`\215~\"\035\327\277\014\245\2452\355\2432m\251Ls*\323\234\312\224\376e(S\026e\312\2072eQ\2468J;\216(\345\255~9\336hk\031\210\324\265\372\342C\327\343""\346NA\"\200\205,\r\004$2(\344RBaCLB-<\022LXLXi1\341\023\027\023V^Lp\2011\301$\306D|H\377N\220cQc\300\3406~\206\034A\006;\372-z\0141\374\tr\006._\266>\236\215\n\333\234\334\240\310LAm~*\310\263T\000\236\253\310\201\243\017\300\315\021K\254\034%\307\310\020\372\3611t\002\233E\246\026\\\t\266\334J\330\305V\302\267\324J\330\205V\202/\263\022l\221\225P=4\301zh\302\366\320\204\257\207&l\017M\360\036\232Hs\224\3611r\030\322\370\230\305\032\037\363\241\215\217Y\274\3611\2168n7j\022Y\2743<\253\037\231\240G\311\315S\253\370V\252\262C\322\367Y\272\036\227\004\n\022\021,d\311 \021B!\227\024\n\033b\222\314\320)i-\234\222>\323\246\244\265iJrc\246$\263b\322\227y\341\335\231\344X\324\0300\270\215\237!G\220\301\216~\213\036C\014?\307\310\020\372\3611t\002\233E\246\306\223$\033O\222vW?nQ\301KE$\237-\032\000\250H\340s\213\002~S\004}g\241\276\363U9\026k\330\016\240\256\237a\016\333\001T\371-\3660\033@\371e\210\354.D\377U\210\354&Dq\021\"\277\0071\245\r\\R\334\302%\305L\\R~\033\227\0243rI\t+\227\0247s\301\365\312\365\210\353\261\330u\320\340\267!\226\203\006\232\317\213\203\034\036\364\342 \213\017xq\220\3056{`\220%Q\017\014z\303\320O3\014\206\337x\202\370\354\2406\370R\345IR\2014\210\030\217\357K&g\351Q\316\344\354D86\034\2060\014&#\211\360x\304\000(\335D|,\234\020\321\032@\321\263\023\033\217\340\017\337\322\231\215e\037\225\023\331\205\331Y\262\247ME\343\261\331\030|\003\311fg\325c\216\340\344\363\2052\2147\350\237#\230\344r\023\346\316\316-gJ%\373\022\225y,\202\277\022\001~$\004\335\302\034:\210\024]\254\017\365\330ap\325p\254\372]\253]*\211\352fv%\223\313c\302\225l9\243i\303@a~}Y\025n\245X\230\315\346\313\352\303Y\252,t""\263\017\321Y-fW3E\005Y\005\016>P\013$\014\341\223\234&\255y\353\302\274/9;\213\317$\232X\365\304\344\354,4\211\007\331bIq\016B\320\004\320u\337\233T\345\235\327z\262\222j\356\300\232\322l\256\004\354+\026\326a\251\227\235\305\347!\327W\021\223f}i}n.\013\345\001\200b\340:,\340fs\363\336\260\047A\021x\010\024#p\321\332C\263\2402S\246\260\265[&\200\337\020\232\"\002\215\244M\234\337J\232b\240tl\341j\200\353\264\022\235]UKQ\004\347\\\203H\014\025\265v\021Z$.\205\r\337\220\355jM\214I\260\n(\332\007\366\346Y\n\316\263D\353_\340\367r\241\224\315\314.\345\026\2272P\r\0173\2638*e(m\t\t\312,\353\337\313\332\031\200\352.,\257\257d3PG\313\331b\006\373\014\367c\201@\032X\364\302J\370\352\n\007z\023\255d\036\005\200|\237i\300*\2209\237).\342\253\237\372\211\317Li.\227\313\224\312\033\253\331Li#?\227+\364\273-\254\224)\027u\2212\017\026\265\347\336\275\354bn\376\321\275\\\371\336\0064\332+\320\2325WK\345\334\334\375\271el\227\320\277\312\305\314\\\026-\346\347P\302Q\354\232+,/g\325PQ\232CN\344\241\047`\002\345/\341@0?\237\305\306ojO\365q\323\005\346\263\245\271bn\025?\237\317\225V\2273\033\252Ca\247\200?\340k\276\254\212\231]Y-o@\031\201F\370-=\314\225\227\262y\210\006&\000\2469h%\013P\330y\030\005\260\304\332\257K\206\376\373\314\277\234[\311\225\321c\223Rd\256\350zalR\343\223\036\244\250C\342`\246\372\027rYy\360UW\345A\376(O\341\336oY\235\312>&\353\206\260d&P\362\276,\353yPV\276#\273\210\375S\375\224\226T\265,e\227W\261\231.\3517;\227\263\371%\265\217\225\313!\213r+\253\320*f\263\305b\241\010\215-?\237}\204\244\362\354lV,\323f\203lN\253\225`\224R\365\200cs\351~v\003\376\225\356?Dn,g\027\312\3672Ep\363\213\345%5\"\233Gn\241\033\301\277lQ\263\033\232pne}\005\034\315\351\225\354Ja\005\262\325\201\\\t\262Z$g\026\321\353\001|\245\264\270\002\255%\267\272\234\313\026\363H\222j$\345\365U\310\020\246\260{\363\331\007\352g^\373\327W\3630\332?\002\336 \036^lh3:\254|\356\304\243C\372m]\360\256n\350z,,,\300\230Q\310\027\2638\246gq0\300?\324\262\251\241\211\213,\005\034\030]\204\236)\255ds*""\350\347\356\2601A\206\360/S,@\343\207\361\307\370\327W\301w/\233)\256\"\337\224\037\373&z\326\227\227\rp\036\376\0262+\031\345\224(\010M\035\334\245\214\352\231\312\207\215Dy\240\022\224\253\n\201\303\300\352RF\245\241\312\265\276Y\024l \370\033\374!\272\345lf\036*\004\323\252\232\274\007E\006\377Jf\3168\252\025jo)\267\230\207\2740\240h\203\232\326\277\272\004\332crX\311\315C[6\370ry\375K)\225\307\246\314\257\227\036\344\300\227\277\007c\037\216\013X]\313\004\\U\234t\337PfO\047\363W\224\251\202\311\301\232\311a\3060\307\317\3038\262^\304\3048\250\223\303\013\213aA-\002\326a\3305\t\210A%\370h\236\\\344]i%\247\177]\276\224\326\341#\370\\\177\365\020\032(U\221\362\353Z2\321n\006\253\360\227)\251\361@\375\250\362\330\341A\371JP\261\331\262\236\025\340\2639`Qn9\253{\026M`\253\205e\350\244\253\205U\325\305\325\317e\365;\300\373\274\257\377S\033Vp\370-`\0016\212\370\226\035vi\344\204\232\021\325|\010\242\3212\314\021\320=px\007!\244\210Zkl\3628!\343\010\265\270\244\206\212ban@\223\005\276+\256\217<0M\227@\372Y\311\340\004\2237\364g\227\0274Y\276\247\256\275/\\{\036\266\226\357YC\310\314?Zd\300b\350\n\322\243\224\366S\246\367s\253\263jnPuK3\214\366S\n\254k\006\277\317\340j\266A\217\215\246H\234$\227a\\Y\006_\261\2549\214s\335\034\320\270\204\3610m>0i\213W\324\264\\RK\245\322\206\026a\312\320~\357\365\243\004\003ny\t\242\346\261,\271\225l\262\014\355\004=\372{\353\033\260\336+\326\373y\2710\253F=$\021\377\214H\271\256t\021\372WMv\252A*Z5\301$\352>\320S\260\226\204`B\310\343\037\212bPl\235\305\377\332vB/\375o\375\351\320\323\265\235\256\023\225\316\312\344\316\361WwN\274\345\274u\241>P\017\357\034\357\251\035\253\017\354t\275\016\361\241c\316\261\367\253\341\352\244\376h\243\322Q\241\230\227\337\250|\014_v\275U\311\374\377\352\177\246\000\241\343\316\361\217k_\327\207\352\217\032\300\220W\236\236}\272Vi\333\351z\273\362\270\326\375\277\266g\241\327\235\327?\256\r\000\253\236\016`\360\215\312\305*|u\2522Y)\324&5\244\277\326\246 \316[\347jk\n\344\274\361I-S[#\350\245\372$A!""\276\376j\343\316\326\261\355\001\212\353\257g(\356J\243\267a\240_ob\336\037\237\371\373\223\377t\036\177\372m%S\001\\\257>MU\336\252\254U\333\320{\267\332[\375\252\366M=\325\350\306\340T\345\\\365\215\352\227\265\217j\341\235\320\353O\037V\262\325\037\353\037Au\207^s^\373ou\255\326U\207\317\272\341\373b\365d\365V\355~\343d#\2759\260\031\335\272\353$\222Nr\326\231\375\325\371\265\340\024\036\377\375\237\377\374\3366\330\016\316`\373(:\243\355Qt\242\3557\332u\271s\3255\303\216\217\277\335\034\370\373\374\341h\034\337\354\336\023\225w\234;?;?/9K9\047\367\010\010\332h\033F\272\206\333o\242s\263}\022\235\311\366\004:\211\366\344?K,Pz\327\271\013\224\376\346\374\266\001\004=n\213 ]\221\3661t\306,\225\340$\333S~b\317\234=D\335;\357]\250_\251Oz)}\273\332^=S\315\325~o\234i,l\2067om\2558\311\224\223\202\232\3178\231Ug\365w\240\346I\333\020\0225dk\035\234\033\300dM\342o\330\326\211\304\3576\303\207\340\247&\362\356f\357\236\310p\036<\004\272\036\265]G\362\256\033\232\211\330Ytf\333\177E\347\327\366L\000\351\337oN\036\232\321\277l\016<\237\350\274\223\002.\317;\363\300\3455 \247\330\026F\252\302\246\223Q\357r\271\014\316\355\366;~\212\317~r\250\276v\261>X\317x\251=\r\311\256V7\352\307\032W\033\0176\0477s[\177@u:S\320\321\240q\2549kO\200\232?L#v;\231j$cD\342\375Z\267K\342\367\316\367\360u\372\357+\207$te\363\373\3556I\354I\347\344\331\332dm\t\013\001\363\020\314v\265Q\2349\232\024B\017\025P\202?\234?\376\004z\377j\213!\3311\303gj\031\013\350,\264/\242\263\330^D\247\330\376\007:\177\264\337\350\300\342vL\2403\3211\211\316d\307\317\350\374\334\261\210\316bG\021\235b\307#t\036ul\240\263\321\361\270C0\346\033\347\324Y5\007\237\375a3\363\367\305Crf\331\333\267\237W\241O\314\264\271\354,\2578+\272Bi\312\214\243\023o\237Bg\252=\215N\032:\0138\231\366et\226\333K\350\224\3327\320\331h\177\214\316\343\366\337e\325\177S\301\342}r\356P""\355\363R=Q\367\r\001\357T?\252\016\327^\256\277\327\030\336\374\277\315\314\346\306\366\253\320\274\234\264\036\271\212N\361\017\240\347O3k\271\rS\365\253q\"r\271\326k\332\347\047?8?\300\327\3238^\275\366\364N\265\255\252\310IW\256U\273\253\275\234\3204\n9\007\036\257>\261\304\002\245\367\235\373\300\373G\316#=\305\322\214\225B\047\005\035\035\234;\206\351\367\320\271\327>\347\357\375\347\316\037\212\273\375\365{\r_cy\267z\245\232\252\275S\277\320Hm\276\265\271\266\365\362\366\007\300\034gZ\017W%\247\244;\316\010\0225b\331\n\316x{\214H\\\261R\247&\361\300|}\316\000u\355\300$\262\001\nH\374\364\360\\|\325y\365\303j\246\372\010Eg\356\3373G\003\333\3534:\323\246\t,\241\263\324\236G\047\337^@\247\320\276*\231\376u%\214e\372qs\355P3\031\226\352\325\315\311=\265\216_\234_`4\321-Z\313a4\375\322\350J\255\332\035Q\374\215\344G\347G\350\2020\022\345\377\276zh\242oo=v&\023;\241\267\235\267\317\327\333\352\2471\375i\347t_\275\273~\276\321+\341MJ\004##H\023P5e y\335\314\315\264\264 y\355gt~6C\"\315\02242\376\211\316\237\355Q\034\373\243\035\267\321\271\335\361+:\277vd\320\311t,\243\263\334\361\020\235\207\035\327C\310\260\3208:\343\241\030:\261P<\3049\345\034\373\320\371\020VZ\300\257\363}\207\352\367\237\325\213\r\337Z\340\275\352`u\276\326W\377\2661\277\371\311V\333\326;\333\227\234\351\031g\006\232h\326\311\226\235\262\026\006\251f\335\336\244*8NU\232\307Lt\225\002\211\375\255%\261\371\\\357\047\3753\347\326m\347\366\202\263\260\350,>@\006\233e!\215\2634\307M\2403a\206[\232\366\003\047\267\010VS\304L\373w\320\271cj\362\036:\367:\346:\004\023\334\031\376<4n\350\3553\207\032d\220\037\357o\336\335\356}~\265]t\3220\262\354_\316Y\n\250\304\237\234\237`\205\r=[c\261\342\350W\207,\313\007\233+\333\337;3\272e\255\037\274\242\241\215B\003\205\222\212b\336E\347n\373/\350\374\322\376\033:\277\265\337G\347\276\247B\307\320\031\353H\240\223\350H\242\223\354\370\005\235_:r\350\344:\036\240\363\240\343\t:O:\376@\347\217\216Q\354\241\243\241$:\311\320/\350\374\022\232Gg>\224E\047\033Z\010""\005\267\207\276O\017\325y/7\332\033\276V\360~5Q-\327\276\256\337l\2247\257muo\365!so9\267\200\277\320\t\326\261\000f\020#)\317\355\271\324\021\\\275\220\251\373\326\220\331]\371p\317T:\353Zp{>\205oU\026\2527j\320<\272\236\276\344\274\016|@\245\327Z\365\377P\275E\324\207\2350\254\273\001\347\203\277/\037\262\030\2276\377\332.8w\177\331A\205ZO\255\255v\272\336-\375M\212\346\016>$\211\320\330\351jN\324\2548\207\316\234\231\323\037\240\363\240\375\t:O\314\232c\024\333\334\250i\235\273\016>T\201PZ`\302\247\027\016U\205\003\2157\032\276\245\354\007\325{\265P-Z\277\263\031\332\034\331\352\335\372z{|_c\355d;\351\t?\251\271\225uahk\340P\302\312\225\306G\215\361-\337\224\366a\265X;Y\273U\277\277yr3\2755\260\025\335\276\353\334\006*\227\234%\034uT\257 \251\213\250#qK\216\037\263\355VEjH\276x\351P\254\375\274q\245\341\223\255\376[k\257\235\251\345\352\277o\236\331\\\330\no\335\332^9\210\346\310y\353|\275\215\321\371\351\341\351\214\361\244G\271\220w\3620Lo8\033Z\256\245&/\025\214\256>T\265|*!\355\223Q=\216\2403\322A\362\342\250_\323pK\353\231\254\205\336""\225\243\346\305\370\346\373[\223{\035\024\016\307\0479\225\321\030(w\206I\0253\216\316\370^\206\006\022\257\3351\001k\"t\027\235\273f\205\361\010\235G\241?\321\371\323J\331\234\367l\364\270}\347H\333\337A\325?\005\247Pv\312\217\235\307\332\202\200z\23246\225\006|r\225J#\210\333\362\324\226I\264\303\047\301B\361?}\021\305\347+v\261z?zVP\047\244\351\207\232\332\014:3\246\251Q\033[Gg\335lq>\224\334\3222\324\355\"\266[\243\352!%\310|\273\330U;\032&\242=\025Z\036J{\232V\362\222\230HR\312\357\350\374n\026\320n\013R&\034\222{\2643LL\\Eg\265\343wt~\357\030\301\3567b:*-\207o\241s+t;$\030\254Mun\353u7)$h\354 \205\002\214\252\327\216\234\317\263\233\361\355\037\235\333hA\353\036\253\230!\231#\320\177`\266\313-O\032\030\251\343J\213JW\252W;\361+\350\254\030\213J\332\211\037D\236\016\206\206\320\0312&3\304h\032\037\347\320\2313\373\362\005t\n\241\307\350<6\243\3450*#\206;#\350D:G:E\005}\t\034\303\323\014w~>\342!s\357\013\341)gJ\333\223g\235\354\252\263\nK\307\337\235\337\365\026\023I%r{\3315vV\372sRpQK\247\271H\266\364\033~\021\354\347\273G\\\374=\232yz\264{ \002\203\210\376\304y\242wEHq%\215\315\244\t%-.\251\207\323\252\322-\2672\354\275\331\341\323\366\375\254\027\3474\307\323\254n\345\326+G\316\232\2776\013\333\263\316\317h`\267\233\r\302\001\031F\233\2204\360\220\242\236x#\355bH\375GvlRL\241\336Hv1Qt\242\241\024:\251\320,:\263F\047\270\202\316J(\217N\036:\245\340\2676\\\270\373\313\021\317\321\264\0148\341\234\3505*\r\251U\177\256\262\264\350\024aU\340\356\204\320\366\256\334\327u\rw\371pG6\035{\230\243i\324#mk\031\2352\314\330bA\241\267\265\357\352\026j7\327\217\236{\257m\346\267\303\373V1\007s\215\330Ef\000R^\266\023!v7\332\203 \203J2\201!\263\373%t\226`n\366\255\270\356\352e\274\025\240\372\217\234=\257o\376\265\235\331\255\263\036\220Ud\240B\203\220\324:\310]^\352\2724\221f\321\311v\334G\347\276\307\366\224\272\356\256:\010\342\246\356\236\277\314\036\361|p0\315=\254\313\0369\217\334\rdZb\2726\026\212qV~\305\246&\255ui\237\213\264\214n\317\364)\365g\177=\342\342\037L""\321\010\362\026,K\205\242\225\214n\250\354\244\215\241\262\313\361\236\272Y\340\250\024\353\360\351!\201\005\375/\202\005-\322\344\265\2025\201\333\237\322\226\233lCI\"\035Fg8\024G\047\016\242?\016Y\241\337\320\371-\264\212\316jh\r\235\265P\261\231\242/\243\364\014\027\217\224\323Mm\347v1\243\273\343\314\200\020\252\317\203\201T\002B\205\026\363I\tH\333\030\244\004$\355\23746\226f\0014d\305\320\211\031\026\223\235\243<[EB\007\035\252\372\013\235\277:~B6\376\024\n\207\244\235\236>\201\364\360\321s{\253g\017\353Tm\021\027\227\315y\t\2427\254op\327\346E\250@hV\247q\214\366\353I\323$M\326\211\233R\245*M\326i\207\332\235+\325:\3667\277\226\004DD\316\265c\317o\177o\325\326Q\355\350\345\332\325\255G\333\217\235[ \203B\001\265\362\254\274[S\014\357\245\361\0016}\330k\331Y\206IR\253\342\3446?\351+\210k\201\007\252h+M\032\372K\005&usZ\206\022\327\362\350\344\355\352\337g\035\372wH\323\361\3429x\255qo\323\323}\235\356\217kWj\251\372;\215\013\233\251\255\267\266\326\266_v&\001\031\214\214\332f\027\017O;\277\2133H\264\222\224&X\244,\221\312MR<\221PK\023\251\273\224R\023)\tk\324\362h\250\2443\222\256lK<\274P\037\260\252\235\253\027\317\307\2577\337\330\034\360\362\361\223\332\275z\250\036m\334\331\n\241\245\303\366\327N\nfi\350\311\372\374\266{\030.\360\026\007\022\340i\354\223g\342\310\202\207\026\017r\010t\345\0305\275H\211x7E\250\272\342\302\362Q\365\213\027\317\307o6?\332\014{\371x\256V\254\237\254\337j\334\337:\271\225\336\036\330\216:S\320\241\001\0310\021fd\367\270V\340\205\010\322\260 \320\256\215f\024w[N\255,\210\201$\t\321\240\270\200\316\202Q\202\272\014T+\213G\206\217\237\325\331\330\370\230\255\304\316\277\360\251\371\240\266d\301\312\023y)\202\334 \243\226I\2134\271:#\036\322\344L\212\225\337\320\371\255c\r\2355\313C:F\356\325K\375\375\177\377\351|\335y\r\025\343kx""\005\316\243\247\245J\357N\327\313;\241\227\237v\357\230+[B\330\374\354u-M>R7\352\250\317N8\047\360\360\225\333\354_\371O\347[\352k\247\377\047Xt\275\275\335\206\233\253\047*mhg\337\3714]\031\250D\240\206\272P\274i\253\276\005\014\355\254M\327\303\365I3\0229\227~\000v\256y\361}\346|6\270\325\013\023\272\352\035\223\036l\257=]\204\262.T\303\325\251\3329\020\372{M\0314\025F3\371\367\361\377t\236x\252N%\264A\r\366j\373\177\014\350\024\352,\300\3235\347\204:\312\202\367\335\364U\007\252a\002\3532\274\006-\256\353D\345\230\212\350:\366\364\352\323\307\325\356\352\271Z\367\316\361\223\025\200\034\177z\2752\340\234X\245\004j\344\371\033\225\377\326\332\234\336\317\033\003\316\325\341\255\360\326\244=\243\361,\324\211\205\304R\235\201\257\272\272U\275\\\305\323\030\247\253/\327\272kg\240mu\275[\275\000\215l^-\346\272\336\252\314\231\324\357V?\206\314\346\241\215w\275\r\314P\037R\226N\367\247\365^\347\302\367\233\223\316\017\261\355\254\272\375e\212\362\205\325\3223\275\237\002eRU\177U\025c\240r]\033B\274\364\277\207O\347\260\206^\177Z\256|\005U=\n\r\345\345\356\312\233X\303\320\370\211\3526$\362Xm\2406\\\357j\264\271\031\203T\342\\\204V\354\374\030\337^WWa\244)\343\317\261U\005f\023I\265\201G\346\244p\353\032\377\253\211p\030\2711lf\300]\215\371\354\036\324\221\233,\014\264h\265N\314\221\233\365$\252\222i\020\261\303\2756\205v\235\275k\360#.r\277\177\303\361\200:i\022.\345\336\007\365\025\332p$sN\271L\374\313g\033u\344z\325\266\026jUI\303 5\210\362\316 R-\310U]\330\247Nmf\244\352\353\375\315\213\215J\360\026\027{\027\255\312a\315\373\236_\364\203Y\177\356\277\234\007\2743\254I\001^\314\202p\257\203\225g\010o>\331\321\226\271Y\363\021\253h\n&\033\047\322\267\004^\310t/@\221\377\3429\366y\303\2433\r\270d\341\276s\013\304\034}r\177\305Y\201^\270\313\366\033\311\047\264\204\221&)\362x\206\334\010!\263(\352\220\273]:\302/\234\370\0078v\265\341\323\216\366\326\336\250]\255m4\216m^\335|\2605\271\225\333\376\335\271\r\"\222\276\313\n\360A\177\324k\031y\342\212\016&\3210OK\032i2 \315\373\245\014O\373\036dyAK\032\227Wd\342M,\353\253w\377s,\373\2421\351e\331G\220`\270\376r\343\275\315\341\255\377\333\312lm8\0230\206\301\264\250/\347\301\353\225\235\307Z\365)\217\303\310\233\245hj\224\302\203 \222\273H\311@\223\244\313,\265\255\261\020\260\243\366\342y\366ec\315\313\263\200\313R`,\203\271R\337\313\203\267\313:O\364\\)oM\222w\265\005\336`F\314\"YU.6I\004#\333\002\232+]f\251-\214\305\016\3375,\377\310""\366c\333?\264\371H\302\275\273:W\213V\332\363!5\r\315\230.\303\310\360\316\277\353\370Ol7v\377C\233\215\273Y*\222\310\277\233\245\242\330e\374\047\266\027{\377\241\315\305\335\314Uh\001\260\233\271\212\330U|\361|\373\326\277\271\035p\275\022\014l0\201\352\253Q\3055|\201\267g\313\243\2454\211\312\205\200\324\245\312\375Y\222\325h= \317\252\320\336\342\375\016\337\345M\207{\250a\017z\367\311\255e\365P\003\014X \255\222\316\324\371\375\311\256\332\360\375\337\274\276\007\245H\006/\276N\251\253\327\241vI\247\355<\371cWU\305\376/\344\336\203\206}m\373\270\332H\322zd\332Xv\376\370sW\275\367\376o\317\236|\3766w\333\366\373\352\366l\255$\"\335\007,\352}\333\315\207\273iz\017\312\346n\274\272t\332\231\326\233\355\\\267\020\336]S\274\377\353\002{\237\177U\340\344\366\262\322\364kMG\320j!\322\276\373\202q\377\227\355\r<\377J\300\314\366\023\245\323\323z\205 \201|\244}\367U\331~\311R\353+\317Er\376\005\326\2323\241M%\364\022>H\352\275\336\276\373\332\347@\204=o\341\307\351\202\241g\037t\265\356\326\226\201}\337\331\202\307\352\315\245 r\273-P\005\371\253\177\363\250\205\267\264\354U\337\314w\212\016v\305\246\247\000\255:\364\277\327\032\370\327\026`\327)\245\311\2452\007lBl\3529\334}\325\236\363|\317\273\310\271w\373;u\335\270\336e\364\352Kw\273\r\337\225-\345u\313\312\020\341\323C]\177\333-O\205\361{\251\203\324\276\341\355\237\225m\201\336E\010\032i\344Z\214\010\227+\3755\317\375\270\337W\321\016\345\312\013\026o\265`\307\217\307q\2778\311$\216\315\005\032]x6\315\241z\335g/hB%\035R\340u\243R\375&\227\370\264t \035R\240\321\005-U\311\246\216\016+\272\007\006\260q\205\306\320\0313\027\230\321aE\367\022o\374\334\034\324x\202\316\223\320\010\036\026\036\351\034Cg\254s\034\235\361\316\230\270o\341\351w\225\047\265o\353\231\377)\013\262\360\316\3617\361\331\013\277\363%\332~\271\316W\325\001?\360\013\250Y\373\301\267\325\014:\337T\047\331\007\020\207\031)\0031|2\357\3525\350W\275\233_l\265\375O\3337\221Sy\t\333\211\016\224\021\261\361\242ITX\007\326+\341J\322\304\254W\006+\363""\325^\035x\010\315\256\014\315i@\005\235\327\317*\023\256O\032m\r\225;Y\021\341\213sP\344\030Z\262\355\034\177\257\372E\355x=\014\275\244\r\326\347\307_W\306u\3750 \2348Y\031\255\206wN^\254_G\303\270g\047\316\327_\252\2575\332\\r]tW\235s\203[\275\177\377\337\177^FS\277\256\343\316\361\367\341\303\343\247*S\325K\2655@\005X\377\252.\326\246\240i\2364\327\004\234x\247\372V\365!\232\313@o\355\356\251\275\244z\204\214\336\200\345\3329e\246w\374\204\346\014\022>\216Fqh\3737\354\234\006\261\025\3061\023\213$\274Y9\00321v\224.5\306\250\361RURW\255\2636\251\215\240\240r\224\r\326\211\267\201_hVx\034\307keZU}P\233|\006\010; \321\255ZFQu\342Te\006\276\370\3150@\337v`x0Z\275\t\245<\246\255\007\217=\275Vy\3339\215\372[e\235\370*\264\022\347]\024\2040\370\214hZ\204\306q\354\215J\257\212\306F\244\354\036wNt\357\234\354\001*\3574B\2150vO\303\353O\303N\030o\r\333\351\352\255}\240\212\334\365\001\240\350\372\250vQ\207\336\255^\004Z\037\241\367\303j\001x\272\324\310\354t\275_\275^\373\3029\377\035\314\377w\324r\006\276p>\002)\2661\272\031Ff}\n\003\004\202\276\302\312\337<\277\325\267}MI\t\267\234[\260.\306\235\013~\251\216\274kFN\257\264Q\021x\253-\331\023E:\220=_U>\207\021\3618L;N\3177\233}[\337mo830\372@~\270_\262\323u\266\366K\343+\030\231Tw\271_}\033\346k\345Q\266\201\217\240\323^\301\253%\200)\027.\036\204\035\365\327\033kh\342\047\031q\026\333\013\201\302\215\031\020\227\026\266G\234\004\014\214\372\262lW\322\220{^$p\004>\332`\257\300\365\224\372\213\306\255\315eT\021\302\352\022\260+\303\220\256\036X\362\235\326\026\251GQj\347\274\252bo\261?\251M*\020\264\317\306dc\t\204\254\007\333iE\230~`\320\225O\344\306\0255\204\300\233\177\355d\357)\366\265Fn\363\tj\370`)\013\330q?\037K\362n\375+\335s\216\246\330_C\273\356\365\026\373\034\332T\002\010zi#\323x\004\242\331\377m/(\302\2402\270\301\211\\NR\303\047\005\267\224q\354m\263\236b\177\331\330\330:\216\n:\350V\200\0357\347\221\366\013\365\031\314\374\250\212\375\rL.\003\336b\237\207q\025A\327\240\320k\233]\260\240\177k\373\201\"L?""\016\344^\242%\227\2534\351\007^\262\353\356\350z\213\375\325\346\313[\357\243~\r\206-\300\216[\3558U|\207/\241n\266\035U\261\277\325\343F\257\323\213\017\236~\205,\260~dA_]w\375/\221\212\315\323 \326~\342L\244\025\225\372:xW\360\221r!\351\375\344\206\243\344\001\r}\244\234\2471\2176\034\355Qe\017\233\276\336|g\353\342vN\215\270@\000\356\261\357t\235\251\215\2034\250\332\255\237M\033\325\343\265A\020qs\215\047[W\266f\266[\300.\331JZ\303\"\251\032\265\227a\036\272\374\255h&8!N\356{.tm\263\344\266\027\231\210\004^\002j\257U\374\027\314|\316\371\357a\035\235\361\226\373B]\217\217j\244\334\374\n\226I#J\325\001\224Au\300\"\3045\240\225\333Vd\350\021x\235\244\275[\317S\356o7\277\336\032s&\200\247\260\332\000\364\270\337\277\323\365I\255\000s\256\242\355H\013\216\014nU\271i8\345\325\320$\250J\263Xy\245\nY\340\221\325\242\274\227\214n\274\243\223\357\244\245\2477q\351\251\315)t\246\214\226\236.@.\241S2\317\214\374\216\316\357\241\047\241\303/\213\314l\375\033\264\257\301\255%\047\24658z/y\235\252M\235\007>\304\300\3653\276V\274\337\261\213\317\342\262\361\312\013\317\244\t.M\337T1\256\205d\213\2072\340\t\2142h,v\230\021\355e%\270\337Q\362\372Wj\010\353\226\315\326\302\3676\336)\345\223\330\032.ly\272\336\376\266\227\203,\t\344\213k\362:\033j\0274\277\321\360L\373\214\264f#\001\213\014\254\354\323\237\255\226\227\266\321\352\245_\212H=\265W\225\021""\017pq\246\266\257\001\354\366\026D\235\253\375\251\232O\006\047\323\274\025\014v\037\264\200\215\372\036\235\207\316C\275\036\247\026FS\232\237t&\365\263\263$\014\3236\004\235\235\244\315*zE\365\227\320\241\205-\265\243\357\214BM\027P\013k\232\026Mi4\361\333Kb\367;/\344""\235|\331)CUhc\036y3/mlR\343$\331\224\354Nh;\216\336\350\n<\363YD\247\030\372\tOy\376\324\031E\047\3329\201\316Dg\032\235t\347\014:3\235\267:[7\211h9\344\352\027\254\367\263Id\037\303\300\036\345\220\207\377\304$rP9d\272~C\265\342/nl\367\266di\371\241\177\035p\260\245\245<\265\360\357YZ~\371U\020\237\204\3506\2556z\217\346\210\243\177\035@\3736\324Si\237\224V\0054\305\004\276\024\047/\331\222\206\037\362\"<{\251[\313\026\007_\340\223\033-\346fk\364\350\264\013H\035\225\366\233ih\247\335\236\300\273\370\345\335[4\007\321\"K\336\221g\357zkY\3237D\207\021I\320\246\021\223lm\"\350DB#\241\326i|\215\254\362u\302I\350\303\363\255et\014\217\313\334\332\355\254\314\3211\235\304\024y\002\224\266:\344\2232\364\2144Y6\321\005\2154M\321\"\207t!?\243\363sh\036\235\371\320o\350\374f\304\224\225\026\257|.\340\270\257\337\016\245\333amE5?\256\333\222\305\376\017\333\037:\3230J\252\273:w\251\274#\323\001\310m*9vQm\2214\351\236mR=\205\024X)tR\246\266\356\241s\317TZ\036\235|\350!:\017C\177\241\363W(\202BE\244\363::\327;G;[g\214\272{Mb\3031\002\270\273\327\331j\001\342\303\255?\235)\030TA\000(\356t\375\327\371\357\345F\0336\301f\376#\225\047H\273#u\016$5\346\321\311\233\345\002\355\007\222\360H\375\220\216M\222\004A\025L\223\023\235\313&Ab\035\235us.\373\017t\376\010Q\005\323NZ\n\235T\347mtnw\376\214\316\317\235w;[+y\234\203\206\223\300^\241\037\000\326W\361\341=\363j8\223o@\305P\224\374\361\247]\033\2000\353P\333\322\3772\235?m\316\005^\341\"\215N\367>&\223hB\007\232G\321\031\205\241\271\225\333\002/5\036o\341T\370cZ\211\006GR\003\2551\377\333\3030J\353\266\300s\265\264\233E\033\244\264\215%\037\277\242\036Hu@\342!M\2101tbf\210\245\2168\035j\245\322\325TEx\220\325\303s\306\304\231\372tc_\202z\233\347\356\264\347\212\346\372)S\335\rd\267\245n@\332>\032\307\345\373\200t\320\211\3465R\235\310\323:\356\203\335J\367\047_\355!y\220&;\352\006\264\232\242\n\211\207Zw\2325]\277\3268\005}i\355(+aH\337V%*a\240\241\245AUA[\247\361\241.\275&\000\361I?\324\245\337\n\321\362\217|lJ^bG\035A>lF\223\017\031\014\220:\203\204\014\232\212\344\203\226\256\316U\251\t\345E\336{<\317\037\006\221\026\2266\272\017@\031\364\r\025\027\235\213a(_\367\366?]\013\221\255\311-\3575\202\2377\264\3720\214\255d\353+\034P\365\033""\254 \301\352\047\254\334\253\362\345e \201/\326\222\366[>\373E\035\201\252\200\264\013\264b%qO\316\007\2640\"\021\201:\302 2}\320t\004\252\002\032\231\246|51\264\365\365\366\2303\243U\344\372\030\355\312NW\277\323\037\301;G\2673\377pM\214lepj\0205q\265\241\367\335\006\241\036\006\266FqOP?\362\n%\320\217b\211gKIc \037v\222\327\330\221*W>&&\237\014\247\035L9I\313\027%\245\244&\227\251\201W\347\244}\2651\274\025\305\247\013\264\242\026\312\002#l~\247\3533\347\263\353x\253\200\262\213\373G\253\343\372\326\332\266w\216\370\242\241\347\0105tA\243\201\351M\277\"\013E\300\267\266\234uq\"E\236\023\016|w\227f\t\371F\231\274U\220f\t2\332!ai\017\3635\251\336\3668_G`\302[V\022*\254\373\240,\260\354.\354t]v.G\267O;\223\tu\t\313\036\352\343Y\327\361\2477*+\265k\270}\206\367\332\237\304c\310\010\313U\327j\241\232b\343\253O\343\325\257k#u\245\022{\3259\376a\365\236z\257\003\322\305\253\003\210\204\356\341?\366\364\252z\000\340!^\216\257\256\263\007\007\037\334\3015\312\253oT\376[;V\037\300\230\017\253\277\327{\321\363\036^\\\257\022}T\353\325\211NW\377[o\253\237\254\343\212\365\325\356Jg%]\035\250Fj\247j\363\365^\370\372\304\333\316\333\270\3609\331\270\265\231\3319\361A5U\353\256\365\356\234x\263r\265\262\346\234>_\357\200D\047OW\333\234w.8\027t\2538q\252\3623\244\352\207\206\005y\236\252d\234\267\317\327C\365p\363\034P\332\033\006\221\250\233\345p\252r\247\326V\373\020/\373\047$\347j\345\372\200\246Z\205\373\352\357\341-\373\047\002Q\0164\272\033g\220\353;\047>\254\316\327zk\003\210r\252\332\213\357h\324\177\334<\243nB\245{\376\241u\273\271\364!3\350\032\376g\007\274\372l\277\327\236\351\347I\304\2750$<\311w\340i\366\276\333\332\213\316\236\035\364N\216\375\336\307\241\337\355\022\267r\220\230N\275\237\364\266\356mC-\275y\343\331AO\377\357\367\264\277~\007L_\206 _\227\r\024\302f[{\203\374\263\203^\037\277\337\313\343\365\253bz\227T>\010+\237c\262\257\031\265\362\306\370g\007\275\306l\337\2272\352\347\274\265\375\275\224\251\003%\271Lk\257`|v\320\313b\344}\025\373\274\036F\277""\307-.b\242e\\\240\274$\037\302\334\343\205\000\207\276\360\005\257\246xv\320k\260\271U\021\337\222\332\323\205\330\372\031im\t\047\305I\371\3306\255\257\350\236\023\222#\003/\001\210w\264\342\242l\303\240\225\315\357\266\212J29(\207~\364_\023\376\334k\247\364C\321Z\013#\245:\371\322\275k\246\336\342\013\246\236\035\364z\354}_\013\216\317;\233kJi\242\246\241]\276\027\341\036zk\361]\340\007+i\330\177\001\372gu=\225)\373\231\315G\370\304|ZI\355@\026p\037\312\211/2\2337?i\262\246\341=\260\251/\372\212\372#\314\217\307\235\224\236\256\001\247\336\261\374\324\371\364{hCju}TE\025\213\223\003\225t\267N}\224%=\360\365\t-\274a\202X Oq\356AM\021n\371\325\022\317Z\273\343\363\302\354\372I\213 m\320\311\252\224F\177\332\345&\003hW\307\331r\203\376g\255\335\271~q\266\001\255;\237wh3\200g\255\265W|\261&\240\255;\310\177x\333\317gG\261}\264\357e\367\201,\376h\n\010\274\237\215\364\346\304T\322\017\222\266\226\324\204\362\032R\272\334\2116\361h\047\367IK\017G\321^\321\263\243\331\260\333\357\332\370@\307Hh\272\245\006L\274\246\255\n\232yH\371G{v\356]xj\353\216\316J\221Jv\217wQ\036\346\210\311.,\367p\372\037\032-v\333\217\223\367\243\310;\343\251E\323N\020MY\264!\344\356F\264t\264xeS\316\376\255S`\353\321\202\2371\341~n\322#\317\2368\246\2324t@-\210\351\003\362RP\225R\004\r\324\362b_i\246K[\0064P\323\002\\\236-\271\333qD\r\357@\022h\360\240\271\207y*\360\215\220}\333\301\026\321)\032sX\327\360\250uB*\333\0379\022\226+m\230X\r>\367\374R\363\341s7\241u\267\013\333\245a\t\311\3774I\221\350E\246\342\3628\031m\346\322\266\325_-<\337t\324l?\310\264\025p\331\t\265\363\335\316\216\355v\177\267\264\315\247\253O\210\3414\211\2215\tm\020\322M~$\034\320i\276\237B-\234\331\216\232\361?\370\236>\334]\243\251\307\227&\226\365\273-.v{\214\213""\366\311\335\273f\324(K\014\247\023\022d\276C\262Y\240\271}8\324\272\007\004\217\236\361Jk\372\357\262\233\242E\262<\223\"O\236\221\270@-\235\014\274\007\217\306`\352\210\030\377\223\317`mw\035\256\326G\303\025\345\324aKy\2572\211\306\324\326\3114g8\324:\215\356\321s^\275\314&8\177\271\2565 \352\221\327\255.|\255I\037\331\003\342\335\233\261\2368O\264\016Nn\331\006n\300\357\341\241*\332\344\223\307\034\211\345\244I\"q\206\244Hi\233FV8\021\037\347\177\332z\031\217\034\352\3057\020\217\326\003;]\027\234\013?B\223R\246G\377\034\347\207\266\006\376u\206\231\273\035\227\222\317^=\357\270TK,2\217\210\363\303>\223\330\347\274\254\252\305\032\335\340I\214\227\333\331\201\246\n{x\236\202VOr\331$\255cI\254\241\307\206\244\331\031\331(_\017\265\356\315\326\243\347\276zA\343_h\nK\312UWc\2554\"$\333\220\302\217d\033j\364d\253?z46\260\317\216\314\000\366_k\376\272\333\031\025Z\306\356\361\214Jk\354^\237\035\231\321\353\277\326\344\2254\t\322\020Y\336M\037xt\363\306\321\331\272\036I\035\214\372\314\216\237\363\2624\312\267\346\322\347\326=\026v\310\333\236\237\265\340\216\327\326\334\360\372\317\277\237FW\273\376\335\365\237\227\273\351\340\201s\354\203\352tM\331\336\277R\355\255~Q{\035\315\364\337\254|Q}\025\372\331\3003\362N\325{\305w\307\237\216\341\221\201c\215k\233xT\241\362~u\262z\277\336\355|\212\nzm\177_\371\2636\211o\202\355t\275\352\274\372aU\346K\204\341\301\211Sx\346\341\365\247k\225W\253)\247\367Km0\254l\366Yz<\031\200\207\010\336\253\207Q\033t\354\351\265\312\233\000?~""\262\022\251\276W\013\327\356\350\212\365~\366V%\203\0075\256W\0060\2132\2600[\035\3309q\272\372\177\325LuM\235}p\336\376\014ZG\047\314<\047\337Q\250R\365\356\372\205FZ\251\334O~T\353\335\351>UIV;\253\223\3464\304\231Z\3069\367\365\346[JEI\047\021~\200\217\3165\336B\342\237\001u\220\335;x\206\003\362t\336\376t\350\351\037\325(\264\243,\036\1779Y\031vN\367\253.\353V\374m\325\265\001\361\203J\332y\357J\343c\250\271kx\372\244\0178~\036\202\223;\335oW\0368\037|\331(m~\262\365\177 z\237\270\010\234\233i$\261\252\336t\336\374\2706\200[\301\357W\303UsX\344\357\327l\007\001\366\254cK;\341\234\350\321]*\013E\375\022\332E\023\326Q\227\212\324\201\210wm\227B\202?\250eL\365\177Q\355\300\352\177[\365\2229\240\365L}\241\021~\206\347]\316\327\333\352\247\352+\212=}\3208w\372\006\032\047\241\034\257\376\267\372P1\202\243m\202\255\327\217\351r#\004\031@\177\206q\244\362\240\232\204\032<\005i\337n\264\261\002?\353z\257z\245\3723|u_\277\225\010\374z\277\247\366Z=\333\370v3\213\332\222\217a\034I\326;\353?C\374G\352B\3013\347!8\325P\366\326\330\020\006\220ooW\224\244r\3259\247\264[\3304C\225\341\352+\265\336\332\325\332\032\236!\302!\247\243\362e\265O\361_\035Cz\014\275\013\033\345\311S\317N@?\000~;\275\270\277\364\tt\264\267O\357\234|\327y\027\005w\350\n\003\325\360\316\351\367\253\021u\300\350\344\273\032\3113;\234A\277\272\001\375g\275\026\207\225\325\361s\265\365\3728\014T\212\203\231\300\310w\266z\237\035\307cIW\365h\200\275\351\363\247\231\247\177\002\243:\024\205\330\002zU~\307""\325\221)d9P\361\352\211J[\345\303j\331\371\030\207>\325\237\327`x\231\253\235Tm\023x\336H\341\030\371\206\363\006jX\241\234\310\237\023\330\034\272\253\275\330n\372\020\017\014S\374|\230s\034\332\243>B6V}\271\326\255\217|\205\253w\240F\337Sc\352\323\251J/6^\340\246\047\335.c\361\263.\034\005\007\240\302\257\260\026\376Me\262\222\307\022\002_\261V^\252\224\235\367\256\301\024x\002\272\307Ye\336r\362\264\252\272\037`\220=\211\207\260\316\325\337\007\036\221W\227\n\353\353%\250\3326\323(\177\250\275\2115q\3129u\2666\251\334O\220\371\3202\236\235xK\035\223k\333\371\354Zc\016*\270\177\273}\273w\347\353ov._mD\264\021\037v\304X\245\027[\346q\034O]\356\023svtQ\234\020\214\251l\304\307\263fP_;]oT\316)\006\253\341\377\353\352\215\332\002695 _\250\017\324\2577\006\314\301\264\267\200\350c\270\000\327\363\224\344\355\377\003\006\004\377\235"; + PyObject *data = __Pyx_DecompressString(cstring, 24589, 1); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35509 bytes) */ -static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notebegi\377dx nbele\337mentc\345\220\003pi\377ckle %s:z\343\211\007h\345\215\003poin\354\233\002Cto\223\233\002\351\212\005\336\000\345\213\002,\324\235\002\367doe\347\223\001t cr\373os\306\227\001proce\357ss b\365\240\001ary\267dis\352\205\001en\360\205\001g\345c\333\235\002 \266\236\003\242\224\001wro_ng di\221\000s\313\240\001\352\024\tl\305\204\002s\343\235\002dif\007fer\337\221\001\351\237\002\367\236\003\310\211\001\274\225\005yd\327B""Y\003must\336\236\001\003a \354\237\002h\004\350\237\002\345\237\003\207\232\002\330\237\002\377 Series,\255 \204\226\001%s\363\236\t \223\234\007m{is\202\242\002requ\374\214\002^\256\241\001 key\304\242\001g\212\217\001\270\243\216\002\245\003\346\205\001, 0\354\232\0011\33700)is\366\003dn\315o\341\226\005: \355\236\006\204$is\277 empty\234\241\002.\377_core.mu\347lti\337\240\004\351\227\003to \363im\305\215\001\033\tumat\367h f\023\014tali\203b.\204\215\004\244\243\001\013\003\374\241\002\026\003o\013rd\316 d\237\242\001\047\003\200\242\003\005\004\334\365\241\002?\003sysH\003thgrea\321\230\001W\003wa\352\233\002\366\027\003/_\324\244\005.pxizy\002/\304\000mmon\006\010@\262\244\001\025\010\310\224\003,\002\202\207\005\225hs\325\227\r\377\047ACACCBA\327NDS\000\005_\354\210\001am\362\000\014.\206\243\001\334\236\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\366\231\001\004\372\231\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\345\230\002S\247\252\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\370\225\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?""\010<\004\017\331nBELT\207\236\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\343\241\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\361\233\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\307\236\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\370\253\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\315\250\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\273\257\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014""\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\216\270\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\362\266\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\313\276\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\345\320\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\346\315\005n\356\315\005.__\376\321\001__\001\r\374\260\325\005\035\theck_o\343pt\366\322\004\356\301\002>\010get`\003\030\215\322\001Z\n\274\323\003\325\277\002_s\330\263\002\322\311\312\002s\220""\010\360\310\001l\240\010re\333pr\236\nst\002\013un\361i\334\313\001\304\010\336\320\006flag\000R\007\250\001\267\324\t\207&\017\007\342\323\002\013\n\332\326\007\370\266&\214\320\001\303&lookb\047ack\324&\301\317\003_m\013\016\004\270Q\013\352\317\004\216Frun\232Fs\000\325 \241\322\n\r\n\261\022/\001\242\325\010>\n\240\330\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\237\313\002\221\325\001IMI\300\000\000\312\266\004\000\007\276\266\013\323\313\t\327\313\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\367\314\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\207\320\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\345\312\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\204\322\001MA_\376\213\322\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007""\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\351\321\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\334\343\001\317\335\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\207\327\001\213\327\002F\000\003*\006O\007CHFJ\024\270\327\003\276\327\005&\t\355U\370\355\327\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\321\350\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\236\330\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\362\352\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323""\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\362\356\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\224\360\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\352\361\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\363\363\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003""\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352""\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245""\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371""\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313""\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331""\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017""\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010""\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004""\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010""\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%""\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\300\237\205\002\233\205\003\302\204\003\000\t\273\204\013\336\322\002ti\377on__call__func\n\002F\001\005\377_check_o\357pt_i\332\322\001_vawlue-\010get\003\030\376.\003price_s\377eries_naYm\003\000W\007lox\000_\001\014\217data\222\0100\001\000\014s\377tr__ARRA\377Y_TYPES_\223_I\356\312\002\016\002S\006\013\336\272\002_\357SERI%\000DEF\357AULT.\000PAN\377DAS_DATA\177FRAME__\013\004~#\004_POLAR\023\013\374\014\003\030\006yx_PyD\377ict_Next\337Ref__\265\325\001UN\177CTION_NS\000\326\227\000__\331!_\004\000nn\237otate\010\000\353#_\374\351-\3314_class\275_\352 item:\002o\373pyC\001deepc8\004\005\205\001d\000doc^\001\312A\374f\001\237Aflags_y_\232QJ\tinit\231\001z\237V_\251C_mai\262`?__meta\226\003\334\000\337modul\330\002mr\037o_ent\354B\365\000\273B\366\004\001ew\367\001prep+ar\201\"p\277 v\243\231\002\220!\357qual$\005red""\243uc\245\"+\000\351@_\276`t\331_B\005\372B__\243`ve\263rs\275\204\002\013\000es\271\002u\237nicod\342!\232\204\001d\362\251\245\003s\272\212\002\230 s_is\377_corouti{ne\316\000okupF\001>\345\204\003succe\351 \376`v\274\"unR\000id_\001\014=s\003\013reti\257\000\215\001\001g\241\331\003\223\331\001\004\010\325\331\002\030\004\265\330\007)\004\000\247\331\017B\004\227\331\022\024\005\233\331\017x\004\333\000\265\234\010\232\r\005u\212\234\004_p\215\234\002\270!i\264\217\321\006\306!r\337\247\003_c\334\332\002_p\261$\363!\343\247\002\351!set\027\005\211s\370\247\004\016\006oe\014(\001a\020s\376\200\235\004a_close\177a_higha\325`\327wa_\342\215\001a\231\004sa__real\000\0030\007\003\3771a_volum{ea\241@lera\270\210\001\274\000\t\274\204\001long\004\rs\317hort)\t\025\rma\361x\000\020&\016B\003ppen\357darg\000\000sar\377raysasci\377iastypea\177syncio.\331f\357satr\355#avg\376\366#bbegidx\377bitbytes\3572str\357#sti\357ckcl\224\204\001in_\237trace\265\335\001\247 n}e\252\"colle\237\212\002\375s\010\000umn_st\351a0\000\222!n\020\000pyd\303de\371\204\001\266E\253\212\002\373\204\005de\337scrip\356\212\001di\237splay\212\212\002\221\205\001d\333oc\325 nt\316\"em\307pty\341\000\241\000\347\000sw\237ithen\364 \356 e\177factorf\352\000\017d_ma\356\001\006\003\320c\024\001\373k_\002\007limitx)\001!\007\"\004irst-\004glag\233\210\002\237\210\003lo\214\206\002\217dict\275\210\002\342!\306\210\002i\307nfo\317\210\002\234!\330\210\002ob\003je \003\300\214\002?\003\274\214\005\345\213\001\311\214\005\201s\243\214\001\273\214\003\253C\006\007\213\214\002\302\214\001pf\261\340\005sg\355\337\001\000\002sh\350\340\002ohelp\243\204\001hi\203\256\001\337ylenh\335\264\002ii\335d\304@imp\333`_e\377rrorinin\007dex\247\001c\t\266\215\003\367\214\001\000\007us\205\215\025i\330\243\003is_\203B\336\356\212\001skey\000\000sk\375w\360aleftba\273rs\205\000gth\274\215\002ln\334\341\004low\000\000er\224C\377maximumm\373ax\356\206\003memom\333in\006\004is\200\000gm\362\001\003_[\001\273\212\003msgm\377ul""tiplie\363rn\254\216\001\260\216\001dtup\376\366\000annbdev\372\000\002d\006\003upno_\212\361\000s\213\260\001_\332)\261`\261\217\003s`\006\001\274\217\006\010\003\347\342\002\025\001py\302C\377offseton\013re\320\212\001e\357\225\001\363\225\001\351\245\001\226\210\002\242\367\225\to\301\343\001\215\220\006\220\220\014s`\007o\277rdered\311ao\377utoutaro\363on\203\246\001\004\005upou\377tbearpowqe\221\213\001\226\206\003\021\001ull\r\005\377doutfama\366\002\002st\t\003stko\017utha\304\210\002\005\002\310\210\001\016\002\360\205@\026\002\300\002\345\213\001phas\321e\356\213\002\266\247\002\000\007_\350\220\001ou\357tjouJ\002lea\261d\230`(\001\305Bba\254\000u\017tmac\200\001\003\001\201\204\002\014\003\177signalo\033\001\356\227\002max\010\002xid\372\000\006xZ\005middlmeH\005in3\001in#\004\374\004\002 \007nusvio\377utnbelem[en\267!pl\016\004p\305\"/put_\322\217\002o\261\346\002\324\222\002R\000\010s\021\003\000\004s\265\223\001i\302!\377quadratuYr\212!\336\212\001ou\352\231\001l\341\t\370\365\212\001\241\n\206\213\001upper<\207$\232$slow\226A\004\001\306\207Asm\260\001\003\000\217&su\277pertre\277\"s\017wing\234D\007\002\240C\027\005~X\006pandas\213\207\002\360\220\207\002\257\224\002\225\207\007\244\207\002spen\373et\374\213\003perce\237ntile\325\215\003\333\215\003s_polar\003\000p\373\224\002\212\200\225\0020\206\225\0021\205\225\t\214\225\016\335\225\003s\364\260\225\002\003\000o\275\001yran\243ge\333\213\001\220\215\001\224\215\0010\231\215\0011\377replacer\177esultsr\216\000\354\271\254\001\357\204\001t_\377\220\001rig=h\246\207\002roc1\362\216\003\007\000\3712\001\006\014\004unssc\377hemaseco;nd\271\004elf\256\226\003\362\216\001\000\222\227\006\361\214\001\203\217\001\302\211\t\006\007\331\226\002\242\217\001\304\211\007\007set\373\221\005\254\270\003\242\215\001\263\204\003\272\213\003|\277\204\003\256$kip_f\230\213\001\360\327B\333\213\004\006\003\320$lowk\300\r\010\346\213\005\210a\351\213\002\221aR\004lo\371w\205D\241\215\001level_start\300\230\002s\350\214""\001\377cmethods\337tddev$\005r2\332\222\216\002s\201\237\002sy\302\256\003ta\317lib.\356\223\001\005\000th\377readingt\377imeStamp\250\005\001\323\221\003\000\0071\013\0072\026\0073\377to_numpy\364\252\217\001\256\217\001_\334\223\004upda\013te\000\003_\351\214\001\355\204\002\354\231\002\253\003\362\344\224\004v\375\215\003\204\221\003warn\334\000\001\206\273\001wma\326\222\003\200\001\377\330\004\007\200u\210C\210\377q\330\010\020\220\005\220Q\377\330\014\r\330\020\026\320\026\377+\2501\250A\330\014 \177\240\013\2501\330\010\017\035\000\377\004\013\320\013\034\230A\230\275Q/\003y\220\003\220\023\004\t\367\022\220#7\000\010\026\220aA\330\000\t\000\025\000-\000]\235\200 \340\330\002\377\004\014\320\014#\2409\250\377C\250x\260q\330\004\n\377\210%\210q\220\001\330\010\377\027\220z\240\021\200\001\340\377\004\017\320\017#\2401\330\357\004\013\2101\013\001\022\220,\377\230a\330\004\025\220Q\220wo\240Q\014\003.\240\001\r\002\337\320\026\047\240q \002\320\022\337&\240a\240q\017\004-\250\366#\003\320\022\035\000\250\r\260[\357\300\013\3101+\004.\250a\336+\0042\260!\260\016\0059\270\376x\001#$\360&\000\005\014\337\210;\220a\220\231\000\r\210\277T\220\026\220q\230\336@\r\377\210]\230!\2308\240:\377\250T\260\021\330\004\r\210\377U\220\047\230\022\2307\240\377\"\240A\330\004\017\210w\277\220e\230?\250\"\354@\004\377\016\320\016\037\230q\240\010\365\250\225`\021=\000r\230\024\230\377Y\240k\260\024\260V\270\3771\270I\300]\320RS\377\320S_\320_`\320`\377o\320oz\360\000\000{w\001B\002\004\000B\002H\003\001\367H\002I\n\001I\002J\002\356\362\003i\230q\207%#;\27071\360(f;M\270\277\000\203\200 \377[\320[\\\320\\h\320\337hi\320ix\243\000y\001\335D\242\001D\002K\251\001K\002\335Q\260\001Q\002R\267\001R\002\271S/{\247\000]\320]\247\000jw\320jy\320 z\001E\317!\227E\002L\326!L\234\007\354 S\333\002T\310/$%\301\2028\320\033\277+\2502\250Q\330\356L\027\377\230\002\230$\230i\240{\377\260$\260f\270A\270Y\177\300m\320ST\320T\367@\177a\320ap\320p{\372@\227|\001C\371AC\354G\217`J\344\342 \357""\204\003j\350\204\001\206\205\003$<\2709A\302\2028\237\003]\270!\202\200\"\310\2023\3766ub\320bc\320co\373\320o\322 \177\360\000\000@t\235\204\005\227\204\004X\334\205\001X\002Y\343\205\001oY\002Z\002\3110\320<\227@\347U\360*\310\2066\330%-\300q\356\344\202\"`\320`\252\204\003v\320v\177w\360\000\000x\001G\202\207\001\351G\312\205\005\246\004_\227\207\001_\002`\356\236\207\001`\002a\250\020=\270Q\356\326\202>^\2701\234\204\037n\320T\376\343 d\320dp\320pq\277\360\000\000r\001A\264\210\001A\352\335\205\005S\302\210\001S\334\047\360\000\000\267Z\002[\333/%&\257\205:,\357\250B\250a\334\205\r\030\230\022\377\2304\230y\250\013\2604\377\260v\270Q\270i\300}\377\320TU\320Ua\320a\376\232`q\320q|\360\000\000\355}\273\210\005J\002\336\205\004\360\000\000wK\002L\342\211\004k\240\021\360\213\005\357%=\320=;\000V\3602|\325\2028\245\001m\270=\310\001\213\207\013\377\024\320\024%\240Q\240h\376\301\001\022\320\022#\2401\240\215H\266\213\001\021\220\260\022\245\207\003\277\000}\377\320}~\360\000\000\177\001\245N\252\213\001N\306\204\005\223df\277\213\001f\273\002g\306\213\001g\002r\315\213\001r{\002}\324\213\001}\002J\003\320\207\001\273\003P\003\001P\003Q\n\001Q\273\003\\\021\001\\\003g\030\001g\273\003r\037\001r\003x&\001x{\003y-\001y\003z\003\364\215\003\336\222$:\320\025%\377\215\002%>/\270a\360,\333\200\320>;\000W~\254\210\001\016\210[\230\001\230\222\220\002\177V\2206\230\021\230!\236\220\001\242\251\220\005V\341\220\001\235\220\021\213\210\"&\243\007b\337\320bk\320k\371 x\320\351x\335\215\003\241""\220\004T\271\220\001T\002[\352\300\220\001[\355%b\316\220\001b\002c\366\331\211\017\047(\255\215:.\250b\260\376\302\205\014\021\220\032\2302\230T\377\240\031\250+\260T\270\026\377\270q\300\t\310\035\320VwW\320W\251\210\003s\320s\263\205\003\325F\343\221\001F\214\217\005M\361\221\001M\002\205N\340\221\004m\354\223\007\235\003\237\2016\202\210\0346\340j6\226\210\010\303 \357\2139\277$\r\320\r\037\036\230a\230x\267\225\001\000\t\251\201&\264\337\221\004\242\204\013W\312\224\001W\002\374Dh\356\330\224\001h\002n\337\224\001n\002o\356\346\224\001o\002p\347+9\220A\177\200\001\340\047?\270q\244\220:\346\230a\r\270\367\221\016\211r^\320^\007_\320_\314\204\003\202\222\003\370\215\004\327\211\004\317\204\004\370\311\207\006\376\227\003\231i?\320?V\320\177Vm\320mn\3604\373\2168\376\257\003Z\300z\320QR\330\377\004\027\320\027(\250\001\250\375\030\343\227\001\030\320\030)\250\021\317\250(\260!\n\013\331\204\024`\320\377`j\320js\320st\217\360\000\000u\224\216\005\324\227\004\247\226\004\\\242\345\227\001\\\213\211\005\237\213\004\223\211\004~\201\230\001~\273\002I\251\213\001I\003Z\260\213\001Z\273\003`\267\213\001`\003a\276\213\001a\273\003l\305\213\001l\003w\314\213\001w\377\003G\004\360\000\000G\004\335M\003\001M\004N\n\001N\004\373O\004\236)\320\013\036\320\036\3772\260!\200\001\340()\336\245\225:/\250r\260\250\230\016\033\230\377B\230d\240)\250;\260\377d\270&\300\001\300\031\310\377-\320WX\320Xd\320\177de\320et\320t\207\223\003\374\322\221\004\350\206\006\360\000\000N\002O\"\330\231\004n\277\232\001\350\233\003\240\000.\305\2228\220\020\374\322\216\027\251\017/\320YZ\320Z\377f\320fg\320gv\360G\000\000w\217\233\005\211\233\004\335\214\004P\250\233\001QP\347\211\005\360\216\004\310\214\022E\363\216\001E\357\216\005\325[\201\217\001[\302Eb\217\217\001b\003\361c\333\216\004\376\004\331\216\006(?\320?\361W\310 \323\224:\257A\034\270]\310\374\341\227\016\245O,\320Vc\320c\326\324\223\001\320q\274\220)h\262P@\320\177@S\320Sk\320k\250\221\003\366\354\226\006\3608\235\202<\035\270m""\310\227=\320X\324cu\255\222%\217\204\022d_\320dq\320q\302\222\n]\200\237\001w]\002^\207\237\001^\002j\216\237\001\227j\002k\225\237\001k\246\220\005\312DL\356\313\222\001L\003R\322\222\001R\003S\356\331\222\001S\003^\340\222\001^\003i\356\347\222\001i\003v\356\222\001v\003|\356\365\222\001|\003}\374\222\001}\003H\356\254\206\001H\004S\263\206\001S\004^\356\272\206\001^\004d\301\206\001d\004e\316\310\206\001e\004f\267\206\004\200m)*\336\342\234:0\260\002\260\347\233\016\034\230\377R\230t\2409\250K\260\177t\2706\300\021\300)\331!\377Y\320Ye\320ef\320?fu\360\000\000v\331\227\005\222\241\004\340\362\224\004\200\205\006\217\243\006\247\243\005aC\021\220\036\314\270\242\007\207\034\320u\263\222\003\200\037\026\220\377f\230J\240a\330\004\010\177\210\007\320\017\037\230q\361\244\001\347q\230\006\333\244\001\347\244\003)A\320\377A[\320[u\320uv\363\3600\315\2338\352!-\270\177\310\337o\320]^\330\315\245\001 \240\337\001\240\030\250\021\000\t\330\004\003\021\220\3542\364\207\006\246\221\004\216\234\004\325\232\004\345\222\004\325c\254\244\001c\314\216\005v\272\244\001v\002U|\301\244\001|\354\227\005H\360\227\001H\226\204\005n\340\207\032o\240Q\354\246\001;\220\227\246\001{*+\314\241:1\260\022\260\272\234\016\377\035\230b\240\004\240I\250\377[\270\004\270F\300!\300\3279\310M\277\211*Q\204\246\003\320\026\271&\274A\224\250\003+C\300\317\2459\320\177\0332\260\"\260M\300\373\245\016\377\036\230r\240\024\240Y\250\377k\270\024\270V\3001\300\377I\310]\320Zg\320g?h\320ht\320t\220\205\003\325\244\004\230\203\213\004\350\221\004\262\207\013_\002\231\251\007\305\251\005,\275-\247\244:3\2602\260\323\244\016\037\377\240\002\240$\240i\250{\377\270$\270f\300A\300Y;\310m\204\2471\320\026(\255\251\001\357\252\0038\245\000\313\2419\241\004\020\220\016\323\224\005\000\010\203\021\220\216\200!\321\240\004\240\237\004\353\215\004\265\221\013d\256\257\252\001d\002m\266\252\001m\325\233\005t\316\304\252\001t\002u\250e\320\002\025\220\347V\2309\244\253\001\357\206\007\026\220a\317\220v\230Q\324\254""\001\002\027\013\210\333<\220\333\254\00101\336\247:7\260\375r\341\252\016\320\021$\240B\240\377d\250)\260;\270d\300\177&\310\001\310\031\320R\216\254\003\312\265\235%W\214\205\005,\362\254\001\250\256\00345\356\210\251:;\2702\254\226\016\320\021(\377\250\002\250$\250i\260{\377\300$\300f\310A\310Y\034\246\217\002\320\2433\320\0260\271\233\001\326\257\003\333\242\003\376\302\255\t\n\210+\220Q\220a\362\267\235\0056\214\243\001\357\256\t\030\270\032\300\3473\300a\346\256\030\270\255\"[\320P\017S\320SY\352\222\002\360\220\003\322\242\006\353\236\013\010\314\235\004\324\242\004\317y\220\232\257\010\265\244\001\221\230\002\300\250\t6\227\200A\035\300\346\245\016\026\220\320\260\r\312\020\354\325\240\002\357\225\013Z\002\226\247\004\360\000\000U[\345\220\005u\202\261\001u\300\213\005B\261\244\001\367B\003C\270\244\001C\003D\003\306\374\260\016>?\242\262\n\200\202:\231\256&k\320\377QT\320TZ\320Z[\373\320[\277\222\003r\320r~\320\201~\360\253\003\200\244\004\327\004\371\243\004\214\246\004\201\235\004i\200\353\253\017\304\242\003\300\203F\276\256(\274\017\310\203?\247\260\010>:\340\204\001\360\212\200L_\270A\307\261\037\230L\267s\320s\214\200J@A\235\267\n\014\223\210K\234\267\t\243\207\0225\203\253\001\356\245\027Q\356\257\200\"V\320V\344\264\003f\320f\024\304\236\"\242\222\004i\334\267\001i\313\227\007\313\263\016\316\000\366\345\206F\320\033\373\250\004\023\320\023$\357\240A\240X\226\265\001\021\320\021\177\"\240!\2408\2501\366\223\001\016\374\250\017\013\320S\254\200.\305\243\022\322\252\004\365\234\004\335O\366\254\001O\003U\375\254\001U\003\235V\204\255\001V\003W\320\254\004\311\251\004?}\230\233\240\001@X\320XY\340\203I\362\203\253\001}\232\204\017\331\037\360\000\000t\320\257\242\014\353\230\013\234\233\004\316Dp\270\273\001p\002:\376\225\004w\306\273\001w\002x\241\253\017\327\227\0014\350\273\003\314\263\004\177\361\273\001\177\002\203\237\004\306\242\004=h\320\242\001h\004i\004\307\244\n\235\211<\376\223\246\002\320=O\320Of\320\201f\231\272\003\277\240\004\226\247""\004\262\227\006\263\271\r\307\252\017\033\377\320TW\320W]\320]?^\320^g\320g\346\244\003\263\265\004\272\265\235\004q\312\275\001q\002G\362\260\001G\273\003_\371\260\001_\003s\200\261\001s\273\003J\260\244\001J\004K\267\244\001K\273\004W\276\244\001W\004X\305\244\001X\273\004g\314\244\001g\004r\323\244\001r\273\004y\332\244\001y\004\177\341\244\001\177w\004@\005\323\267\001\005A\005\367\246\016\363BC\273\213I\300\244$+\320UX;\320X\276\250\003h\320h\256\233\002\256\243\001P\305\273\004\243\276\004\212\266\004\314\237\004e\341\277\001e\313\237\005\022\217\261\004m\364\244\017\313\003\r\312\210\007\326\257\006\201\301\001\3737\240\322\257\nU\260(\270*\323\300F\340\242\001\250\2102%\247\266\004{\320\201R\203\200K\256\275\010\237@\246\301\013\304\n\321\222\0226\r\310\320\302\024\320\033\330\267$\200\200N\223\270\010\313\003\250\231F\360\213\014\215RE\230\20065\251\264\004\013\003\320S\245\203K\305\t\370\211\002\306\267\t\217\222<\252\253\001\375\033\245\217\001\023\220>\240\021\240\377(\250!\330\004\022\220.\346\200\241\005\021\220\250\253\017\304\205\014s\320s\000\304\277\003\335\274\004\257\253\013\246\246\004\314\205\004\352\207\004\363\211\006\312\276\001\225\002\262\224\004K\370\271\001K\363\213\005\356\271\004]\316\215\272\001]\003^\360\251\013\203\214\003CD\374\213\224I\323\245$;\320VY\320Y\016\220\310\003i\320i\212\300\006\354\306\004\306\305\004\343\266\004\370\214\300\004\353\273\004\300\207\006\360\000\000m\002\303n\002\204\246\016\302\014\356\220<\331\266$\033\320\001T\203\200K\224\267\010\237@\233\257\t\272\227<\225\251\004\323\262#\240\242\251\017\206\2021\376\265\004\351\231\004\270\246\004A\241\277\001A\351\003\326\253\004\233\204\004c\266\277\001c\003d\356\275\277\001d\003o\304\277\001o\003z\352\313\277\001z\303\215\005P\202\263\001P\004Q\236\211\263\001Q\004R\004\211\252\t\364\262\010C\177Z\320Zq\320qr\253\277\n\047\016\210k\244\274\t\334\235\0227\302\213\027\206\303\001\357l\270,\300\353\302 {\320R\000\325\204\t\330\253\003\360\315\004\340\275\013\236""\307\013\267\270\004\266\277\004\257\277\004-@\314\301\001@\003\253$B\230\301\013\263\320\001\243DE\242\316\001\331\211E\324\274\034U\364\264\004+\337\320UZ\320Z\327\313\003j\320\017jw\320w\261\316\003\203\315\004\366\274\004\234\301\004`\311\307\004\250\303\004\277\244\004\233\272\006\334\270\016YZ\326\235\023n\351\230\016\025\240a\362\277\tT\260\256\241\003\037h\310j\320X\261\222\001\377\320;\253\241\014\377n\320ns\320sy\320\001y\300\321\003\231\320\004\213\320\013\311\261\004\300\311\004\377\273\004\376\302\004Z\301DF\233\305\001F\003\251\223\004H\330\237\017\301Y\350\310\003\217\322\006\211\307\n\254\243\006\300\200IM\270\007\034\300Q\346\272%\344\241\036\213:\275\214\013\300\307\0044\214\273\013\204\242\004M\303\307\001M\003\370\206 \330\225\004~\213\207\006\360\000\000R\004]\253\273\001\353]\004\333\227\004x\271\273\001x\004~b\300\273\001~\334\225\007\347\324\t\262\273\010Z[\243\203Z\376\307\2425o\320ot\320tz\003\320z\304\322\003\355\323\004\212\325\006\350\323\002\263\316\013\371\300\004\370\370\307\004\355\211\004\361f\360\000\000H\003\003I\003\352\322\016\374\000\270\246\022\270\205D\267\324\006\246\236\t\002\261\236\n\220\272\324\017\373\244\014\313\200=\376\205\004\325\270\004\344dMX\265\314\001X\003\377\213\004\370\213\004u\312\314\001\345u\333\270\005w\240+\307\236\003Zr\360\317\000\000s\001\243\330\004\247\264\004d\0020\311\265\n\350\205M\366\322\007\366\317\001\330\004\320\305\t\200\201I\024\212\323\004\317\314\004{\266\333\001{\364\265\005\356\265\004\274\302\004\350\260+\223\273\004\275\216\004p\217\317\001p\003{\356\226\317\001{\003F\306\302\001F\004R\352\315\302\001R\207\235\005Y\333\302\001Y\004Z\t\004\375\327\n\245\306\003Z\336\303\003\360\315\004\323\233\004\312\237\004\317@\003\3606\274\335\010\222\201S_\270_O\310?\320Z\356\332\001\330\317\341\005!X\303\267\002\335\341\003\000\t\023\002\021\213\2045\345\270\013\360\322\321\004\246\221\004\304\321\013\315\226\006\360\000\000^K\003m\361\321\001m\312\321\005\203\276\004B\257\305\001\027B\004C""\266\305\001C\253\305\005\342$\231\211\004\325c\322\305\001c\220\276\005o\340\305\001o\004\325z\347\305\001z\246\211\005D\211\240\001D\005\275E\220\240\001E\005F\005\236\333\n77\220\047\230\306\341\001[\\\324\210\\\337\234\047\367U\320U\310\337\003e\320ep\377\320pu\320u{\320{\360\213\326\003\214\316\004\321\273\013\344\330\006\360\000\000a\241\002\332\244\004\343\204\004\220\257\004\334\204\013J\361\221\017\\\361]\323\212\\\300\322$\312\250\014q\320qv\037\320v|\320|\352\322\003\354\332\004\337\313\013\200\261\324\004\274\321\004\307\244\004\327\275\004\210\261\004\236\312\004\322\326\004K\204\303\250\013\265\345\001\\\274\307\003\236\342\004\226\327\004\256\224\0072\374\304\205Z\376\324\001\177\270o\310_\320\001\\\257\323\001\350\277\031\351\252\036\2333\333\326\004\314\244\004\360\271\004\200\244\263\004\212\305\013\370\246\004\301\314\004\264\230\013\207\206\004\221\305\004I\356\313\314\001I\004T\322\314\001T\004_\352\331\314\001_\214\247\005m\347\314\001m\004n\216\356\314\001n\004o\335\314\004\212\326\004\263\300\003]\363^\360\306\215[\363\324\004\020\320\020!\370\313\240\005\310\255\013\214\251\036r\320rw\320\341w\277\333\006\350\347\004\247\331\013\260\326\006\360\000\000\241c\271\333\014\201\216 \357\210\004\347\251\004t\365\333\001t\047\003u\003\261\321\n\321\274\003]\336\314\003\323\275\007>\334\200_\016\270n\310A\262\253.\2403\360\335\333\004\200\277\004\274\321\013\377\214\007\000\000@\003\320\375\257\004\312\321\004\303\321\004\360\335\004h\226\336\001h\003Ki\003\316\323\016]\216\343\003\302\223\007.\367\214Z>\323\331\001\017\270\177\310a\225\307\031\252\2034@\211\327\004\233\340\004\350\237\013\330\272\013\314\314\004\230\245\004e\263\340\001\027e\003k\272\340\001k\355\323\014\302\215\004\310\256\004\230\356\237\023\313\332\004\322\307\003^_\343\226\\\204\2563s\037\320sx\320x\270\273\006\364\356\004\272\340\004<\302\331\004\266\224\007\000\000d\002\240\326\013\335\322\0040\337\247\004\265\225\006\254\361\003\320\324\010_`\342\230\\\263\2473?t\320ty\320y""\334\251\n\225\346\004\300\276\333\004\263\352\004\347\305\004\342\212\013\272\264\004\245\227\022N\003\000\214\317\016\200 \346\204[\374\245K\327\200A\352\270\022\276\332\013\225\323\004\272\213\224\004D\317\332\001D\004O\326\332\001O\273\004Z\335\332\001Z\004j\344\332\001j\273\004p\353\332\001p\004q\362\332\001q+\004r\321\246\025a\213\242\002,\245\226Z\243\315\026\374\360\365\006\265\315\017[\320X[\320[~\212\353\003k\320kv\320v\371\361\003\200\365\365\004\377\361\004\251\363\004\243\357\004\307\351\013\273\347\004\340\217\013N\202\330\351\001N\332\273\005\336\331\004\316\351\013\260\251\004\316\351\004\177\356\211\352\001\177\003@\271\335\001@\004A\231\004\232\316\013\374\347\003wx\316\245\036\265\264\014\025\343\240g\375\363\001\234\310\017\362\245\005e\320e\007o\320o\330\323\001\252\370\023\265\240K\236\334\004\202\352\004\000\357\337\004\333\330\004\245\334\013\254\315\004\305\251\013\243\354\004\254\334\004\245\334\004~\243\215\006\360\000\000i\003j\224\241\017\313|}\263\372\n\013\301\372\005\210\246\027\026\240\371u\260\372\001\324\312\r4\300x\310z\377\320Y\\\320\\d\320d\022\337\247\003t\2365\303\322\001A\312\325\001\251\327\010\350r\367\\\320\\\241\364\003l\320lw\003\320w\363\372\003\272\361\004\373\253\013\270\354\004\274\351\022\212\333\004\240\270\354\013\263\250\013\337\300\004\212\333\004\333\217\004n\377\356\001n\366\272\256\005p\003\215\323\016\360\004\000A\367\002B\002\317\200p6\260b\270\375\001\264+\320\021#\2402\240\377T\250\031\260+\270T\300\377\026\300q\310\t\320Q\\\237\320\\`\320`\232\341\003\271\371\001\320\001{\211\361\003\322\254\013\365\311\013\267\365\004\364\274\004\235\361\004\375\347\004\000\226\361\004\360\344\004\302\231\006\217\363\001\366\344\005\237\341\004\360\344\004\235\361\004\304\323\224\006\376\377\004+\320\304\001\236\372\002\301 C\002\235D\320\200q8\270\002\325\372\001\256\334\t\320\377\021%\240R\240t\2509\377\260K\270t\3006\310\021\377\310)\320S^\320^b\003\320b\317\376\003\354\357\006\277\366\004\370\367\004\376\377\004""\243\347\013\000\266\314\022\341\301\004\340\224\013\263\246\013\336\363\004\271\263\004\376d\215\227\006\226\244\350\001\003v\204\204\005-\276\375\001\300%D;\002E\230\203q9\270\022\206\371\001\272+\377&\240b\250\004\250I\260\367[\300\004\346\300\001\3109\320T?_\320_c\320c\352\377\003\326\357\006\000\344\351\004\214\364\004\227\361\004\373\373\004\327\342\004\206\355\013\220\312\004\246\366\004\340\310\263\013\346\255\004\330\213\004\204\225\013\355\250\031\320\026.\334\232\371\001\210\204\005E\002F\340\205q:\270\373\"\270\207\211\014\320\021\047\240r\377\250\024\250Y\260k\300\024\377\300V\3101\310I\320U\377`\320`d\320dj\320\217jk\320k\246\352\006\276\304\004\345\261\007\000\207\000J\002\276\304\013\303\314\022\333\366\004\216\266\006\360\217\000\000B\003\231\216\004\202\313\004\237\345\004fF\215\371\001f\003\376\250\004\246\345\004\317\354\004x\224\211\005Y/\302\366\001\320\206\005z\001\314\256\007(\277\250\034\000\311\215O\224\3135\330\243\023\231\260\004\342\270\004\223\265\013\247\362\004\204\326\004\320\366\325\013\306\315\004\300\373\004\321\311\004j\330\373\001j\003\205q\337\373\001q\222\357\005\276\373\006\272\373\003\257\370\007\360\277\006\000\005\017\320\016\361\363\001q\377\330\004\007\200x\210s\220\377!\330\010\t\330\004\t\210\377\021\330\004\022\320\022\047\240wq\250\004\213\375\001\025\220Q\307\204\002\273\200\001\036\024\017\210q0\004\020\353\320\020\316\375\001a\267\376\004\360\n\000\373\005\0269\002\320.@\300\001\357\300\027\310\001\313\306\001\020\220\001\376\371\345\001\005\210V\2201\220E\357\230\021\330\010\220\253\001\001\230\026\377\230q\240\005\240W\250A\374\244\320\001q\002-\320->\270a\373\270q@\r/\320/B\300_!\3001\300A\336\371\001Q?\014\377\016\210g\220Q\220f\230\177A\230U\240\047\250\021\357\303\001\371\025{\010\324\377\005\360\014\000\005\020<\267\001\215\000\220\031\230!\226\337\003\t\001\274\370\377\003\234\347\002\210q\320\020\306\344\002\340\377\004\022\220)\2301\230A\374\020\004\276\003\016\220a\330\010\020\373\220\013\024\002\010""\013\2104\210\377z\230\021\230\047\240\021\330\377\014\024\220A\330\010\014\210\377G\2201\320\024$\240L\377\260\001\340\004\r\210Y\220\253a\220\353\"q\025\004\220K\002\t\373\220\021!\010G\2506\260\021\373\260!\217%\035\240g\250V\347\2601\260L\000\244\003&\240\001}\240\262 \013\2105\220\t\341\373\002\377\014\020\220\002\220%\220s\377\230%\230q\240\001\240\024\376\352\213\0027\260\"\260G\2701~\343\345\0021\340\004\016\210i\225\325\003\376\330@,\250D\260\t\270\021\177\320:L\310C\310q\304\n\375\n\202a\013\2107\220#\220\177Z\230t\2401\330\014\374@\276\244\005I\230R\230q\303\001W\377\220A\220T\230\025\230a\323\230q\337\374\001\013\001Q\220%\003\220\3672\220U\313 1\330\004\024?\220D\230\005\230Q\323\351\003\316\376\002\376\360!\022\220\037\240\001\320!\3773\2601\3204D\300A,\333\271\001\336b(\250\240 \005\313!\322\001\253$\230\327 \021\223B4\237\352\001\030\177\230\t\240\021\240$\240\355 \177\032\230+\240Q\240d\213\366\002\177\010\026\220c\230\021\230)\002w\032\230#j\000d\240!\315\352\001\331s\316@6\000\200\001n\002\320\021\377*\250!\320+=\270Q\377\320>N\310e\320ST\367\320TU\222\346\0042\260!\340\317\004\013\2109\317\002\230b4\210\377q\220\003\2201\220G\230\276\365\337\002\007\200w\210c\236A\017\357\210t\2208\201`H\240A\337\330\t\021\220\023\336A\017\210\374\217 \261\002\001\330\010\030\230\013\377\2401\240D\250\010\260\001\376p\006+\2501\320,>\270\277a\320?O\310us\000\320\343UV\213\347\004\377\000b\024H\230F\271\240\222\000s\003\025\220d\326@x\237\240x\250y\270a\000\201\0011\233\220C\344\330\001\340\004q\005\304\311\001As\230T\331\353\001\351\006-\250Q\362\205\002\277\320AQ\320QV\202\376\002X\356\205\350\0045\260Q\334\024J\230f\372\203\366\001\024\\\002\004\320\034.\250\377d\260&\270\002\270\047\300\347\024\300Qf\007\203H\020\220\004\326\346\204\001\020\220\255F\031\315\206\003\021\200\377\001\360\020\000\005\010\200u\277\210B\210a\330\010\242\207\002\013\377\2101\210A\330\014\020\220_\005\220_\240F\220A<\206\353\001\373\330\014\330!2\220Q\200\001\016\200\231n\230?\250""\210\365\016\223\2764\223\367\004\245\374\004P\257\343\004\344\372\004\355\224\013\274\276\031T\365\372\001T\361\372\005\360\301\234\006\350\341\r\247\233p\336\347\002\016\320\016\037\376\215\362\007\030\230\022\2304\230y\017\250\013\2604\270\323\007\306\263\037\200\375\004\236\355\022X\232\342\013\302\352\006\311\375\001\002D\221\375\001D\303\252\005\020\301\333\004\267\316\023\236\322\007\322\277^1\330\340.\233\300\023\344\362\004\000\252\300\013\370\263\004\332\354\004\323\354\004\327\335\004\355\273\006\271\337\r\307\301\\\000\326\224\002\373K\276\2604\315\375\004\356\260\013\233\331\004\313\335\004\304\335\004&\231\233\013\177\002\361\332\r\367\250^\001\337\344\r\344\316\036\200\274\251\027\331\353\004\317\251\013\232\350\004\355\306\004\225\311\004\266\260\013A\000\276\251\016\344\351\025\207\244\016\366\312\027\273\334\001\365\243\025\243\356\002\345\206\013 \323\200!\273\241\030\323\246\004\246\3166\237\370\0041\223\213\025\243\357\003v\206\357+\320\033\264\2001j\320j\230\326\006\020\230\372\004\354\307\004\260\250\004\345\307\013a\202\326\016\264\244p\240\241\002\000\265\212\013\276\307\022\234\277\014\314\316\020\367\376\004\203\374\004\273\357\013\231\257\013\350\201\343\004\245\302\013\331\324\004S\233\374\001S\003Y\002\242\374\001Y\352\214\007\263\210\032\353\246c\362\233\002\366\377\n\227\334\022\016\243\332\tt\320t\305\272\020\254\376\004\313\232\031\221\353\004h\373\326\013\264\351\004\347\316\004W\304\376\001W\003\316\304\013\303_\003\321\263\r\207\251p\373\206%\211\325\tu\320\201u\334\265\020\321\334\004\251\205\022\255\355\013\330\351\013\262\323\004Q\006\246\364\001Q\003\246\314\004\361\251\004\357\277\006\200\335\r\261\253p\3671\260\021\223\254\014\035\230b\240\177\004\240I\250[\270\004\245\232\002\0379\310K\320W\220\261\014\202\266\024\272\327\004\024\273\366\004\235\306\013j\221\375\001j\333\347\005\202\341\013\210\352\004h\213\356\004\362\205\004\220\302\013a\217\254\005&\240\303\236\006I&\300\313\010\352\255e!\337\255n\207\352\004x\321\377""\001\003x\002\230\330\004\307\316\004\336\313\004\271\277\004\302\304\004\300\277\004\271b\266\256\020\300\200o3\2601\363\260\014\037\377\240\002\240$\240i\250{\377\270$\270f\300A\300Y\377\310k\320Y]\320]c\377\320cd\320dm\320m\007x\320x\344\265\030\253\277\004\261\263\004\205\304\013\342\343\013\340\373\260\013\362\320\004\212\206\004\206\266\004\242&\360\000\000wb\003c\363\260\005(\250\001\250\243\005\366\362\202o4\260\215\251\016!\240\022\240\3774\240y\260\013\2704\270\377v\300Q\300i\310{\320\377Z^\320^d\320de\377\320en\320ny\320y\000\256\315\003\327\356\013\322\375\004\260\340\004\222\350\004\245\277\013\321\336\013\266\226\013\300\274\313\004\256\311\004\231\350\004\215\363\004\365\342\006\235\270\004)\250\335\021\271\200w5\260Q\225\263\r\"\240\377\"\240D\250\t\260\033\270\377D\300\006\300a\300y\320\377P[\320[_\320_e\377\320ef\320fo\320o\007z\320z\343\315\003\273\350\013\311\365\004\337\272\004\311\365\004|\326\277\013\203\341\006\360\000\000o\002\331\325\013(\315\352\004\275\217\004\226\345\022e\332\265\005*\367\353\001\230\263\003\216\331\207o6\260a\346\264p\213\370\004\314\366\006\360\017\000\000}\002\321\347\004\336\237\004\226\270\004\321\347\004\346\342\306\004f\003\300\265\017\215\212o7\260q\376\375\267\r$\240B\240d\250)\377\260;\270d\300&\310\001\377\310\031\320R]\320]a\377\320ag\320gh\320h?q\320q|\320|\250\357\003\337\345\004\000\212\370\004\337\370\004\303\272\004\355\345\004\307\277\013\270\372\004\255\370\004\206\270\013\360\352\341\004\267\374\004\302\370\004\244&\360\000\000f#\003g\302\272\005\237\241\002\360\202u8\257\272\017\226\267d\000\242\344\004\276\272\004\314\374\004\215\302\004\350\376\004\364\322\004\355\262\004\360\315\006\330\361\301\004\353\267\010\371\216o9\270\212\222\014\320\021\200\206\267d\312\354\004\225\320\022\354\226\004\216\320\031\331\267\n\261\221o:`\333\274\017\366\266d\223\304\031\247\344\004\223\304\031\320\026\313\267\010\372\351\223o;\313\274\017(\250\002\250$\377\250i\260{\300$\300f\377\310A\310Y\320Va\320oae\320e""\266\332\001\320l\243\361\003\000\375\370\004\320\377\004\233\316\004\260\361\004\207\367\013\211\325\004\373\226\013\276\251\013@\222\272\013\266\231\004\202\236\004\351\363\004\245\344\004\325\267\004k\246\304\005|\220\243\002\272\215\017\r\210T\220\026\340\263\003\362\364\310\t\021\323\357\026\325\255 Q\300l\320\377RS\320Sb\320bm;\320m\336\352\004\320{|\361\254\032[+\334\361\353\001\237\252 a\300|\263\263\002c\320\357cn\320n\265\341\004\320|}\270\336\251\032Z-\275\255\"q\310\014\304\263\002d\337\320do\320o\300\340\004\320}\201~\354\372\003\341\254\024\344\200-\201\303\002\336\256\013\222\337\017\001\177\310\034\320UV\320V\312\343\003\016\315\334\004\320~\177\336\273\016\262\233\t\356\201-\310\253\"\367\021\310,\336\264\002f\320fq\313\320q\277\326\tA\214\253\033\374\202-2\260\374\235\263\016\322\320\017Q\310l\320Z[\377\320[j\320ju\320u\006\232\227\021E\002\350\312\017\351\2009\366\232\002\215\262\013\352\232\017\277a\310|\320[\\\210\343\002v\013\320v\375\225\021F\217\005\377\231\024\252\205-\333\231\002\366\245\263\n\320\021\317\231\017q\320P\\\237\320\\]\320]\215\316\003\273\313\021G\341\002\336\230\033d2\231\312\013z\033t\320t\354m(\352\373\006\r\210\224\323\n7\240!>\213\372\tU\260(\270*\310\310\001\362\322\027\272\301\263\030%\350\265\007X\320X\302\256\001\320\371_\315\313\003\333\323\001\360\000\000w\001\030\346\373\004\204\372\004\325\303\022`\002\254\263\016\315\305\t\262\014\356\206\377\0226\310\021\214\2002$\260f\377\270A\270Y\300k\320Q\267W\320W\223\374\001\320^\305\226\003tC\320t\225\377\003\256\375\004\227\344\004\233\267\022_\254\022\340\255\376E\224\255\032\367((\226\230\272\0325\270\006\377\270a\270y\310\013\320S\300\200\203@\350\271\010\233\371\t\337\215-\354\312\002\333\273\t\022\320?\022#\2401\240H\240\327\001\347\300\001\377B\230d\240)\250;\260\377d\270&\300\001\300\031\310\377!\310<\320WX\320X?g\320gr\320r\271\340\r\304\333\004\014\367\344\004\345\316\022j\002\234\342\n\246\304\003\207\2009\344\252\003\177\320\021\"\240!\2408\224\324\001\327""\024\320\024\227\311\001h\220\317\001\021\220~\345\252\017A\310\\\320YZ\304\365\002\200\323\207\024\373\322\013\254\320\004\300\374\004\264\234\006\276\334\004\261\252\004=\205\230\204\304\0012\313\251l\313\301\003\223\355\t\237\355\t\017\337\320\017 \240\001\246\304\001\330\004<\251\355\013\340\301\022T\320TZ\306\215\002\347\220\003\377r\320rx\320xy\360\017\000\000z\001\243\337\004\275\243\004\263\364\004\252\337\004\000\210\264\004\244\346\013\325\236\013\376\361\004\253\346\004\340\301\022\230\320\004\315\315\004\365z\201\375\001z\247\337\007\360\000\000A\273\004L\256\372\001L\004W\265\372\001W\272\245\360\005e\303\372\001e\004f\312\372\001f\272\241\342\005|\330\372\001|\004F\260\367\001F\273\005L\267\367\001L\005M\276\367\001M\367\005N\005\321\302\n<\220|\240\357;\250a\200\275\313\002A\330\014\237\023\2206\230\021\000\004\003\0107s\230!\030\001\000\0048\2301\003\010\356\025\0045\230\0014\010;\230a\016I\001:\230QP\001*\004X\000e\001\376\234\313\002\330\014\r\33046\260\177d\270!\2705\300\001|\0017\017\210q\000\004\220\007\275\313\001\016\003\243t\220V\000\003\005\217\311\001A&\003u\337\220A\220S\2302\004u\220\337B\220d\230!@\003w\220\177a\220t\2308\2401P\002\373\320\017\244\317\001d\250&\260\001s\260\021\343\001\277\307\004#\2401\261\315\001\375N\306\314\001\330\014\033\2305\240\377\014\250A\250[\270\001\270\371\021\237\307\001\331\315\001.\250\001\330\020\377\024\220H\230A\330\024,\373\250G\225\315\001\340\020(\250\007\327\250q\260\231\311\002qB\n4\320\377\047B\300!\360\006\000\t\376\347\316\001\010\014\320\014\034\230A~\321\314\001U\230-\240q\250\232 \377\017\320\017\037\230w\240e\357\2501\330\024\213\321\001x\240q\337\330\020\031\230\026\021\000g\250\377Q\250a\330\021!\240\027\357\250\005\250Q\020\014y\250\002\233\250\047\243\316\002\014\020\225#\353\316\001M\374\222\315\001\371\316\001D\320\030.\250a\347\250q\330\026\005\200\001\023\220$\377\220l\240\"\240A\330\010?\013\210:\220Q\220\240\304\001\333@\1775\230\010\240\005\240Q\200\311\003\314\233@\200\312\002""\020\027\256 \355\317\001\014\021\373\220\030\336\314\003\230v\240Q\340\377\014\020\220\003\220:\230Y\373\240a\260\341\002\020\025\220X\230\367Q\230j\372\005\r\320\r\036\373\230a\314%H\230K\240q\373\250\013\271\317\003\013\2106\220\027\363\320\030\275\252\001\232\320\002\r\023\2207S\320\032\377\254\001\252\320\001\340\215\004g\233`\037\013\022\220!\330\033\001\336a\364\320\002\377\330\020\021\330\024 \240\005\377\240[\260\004\260A\260V\373\2701\315\312\002\200A\330*A\377\320AX\320XY\330\010\267!\240\035\356\002\010\035\336`\010w\"\240,\010\003\032\230,\251\000\377x\250q\330\010\036\230o\376\321 h\260a\330\010\034\230\377G\2405\320(<\270A\373\270[\313\230\002\330\010\"\320\"\1773\2601\260H\270A\255A\327*\250\021\016\0028\372A\270(\357\300)\3106\242\217\002Y\320Y\367a\320a\267\260\001\360\000\000y\001\001\357\337\004\332\371\004\330\332\013\314\325\004\316\262\004\352\360\004\272\372\004\354\271\374\004\312\307\004E\003\217A8\2203\377\220a\330\014\037\230q\320\377 :\270)\300<\310y\377\320XZ\320Za\320a\376\255\261\001\330\010%\240^\2608\377\2701\270A\330\010\016\210_k\230\027\240\001\003\003\021\333\314\001\377x\220|\2402\240X\250\277Q\200A\330+,\333\2001\250\047\017\260q\340\316\001\373\013%\254a\225$\377A\260X\270Y\300f\310\377F\320RT\320T\\\320\017\\h\320h\243\221\006\267\344\013\312\366\004\273\351\004\354\346\250\013\327\327\004i\002\346\r5\260Y\373\270l\235\340\001U\320U\\\320\375\\\225\303\002\010 \240\t\250\030\314\215\324\003\242\200Q\320(\336B\360M&\240\365Q\216b4\354`Q\260h\270\377i\300v\310V\320SU\377\320U]\320]i\320i\200\333\224\006\253\353\013\343\375\004\211\300\004\242\341\013\273\273\006\335M6\357\260i\270|\314\337\001V\320V\177]\320]_\320_`\313\204\001\347\032\2508\363\325\003\241\200S9\270\021\353\270!\347\204\r\047\337\324\001\"\320\"\3775\260Q\260a\260x\270\377y\310\006\310f\320TV\037\320V^\320^\346\303\t\360\263\013\231\370\004\360\245\350\004\321\340\013\205\273\006\324\204\r7\260y\300\375\014\373\336\001W\320W^\320^\377`\320`a\330\010\"\240\347+""\250Xy\001\216\204S\320(:s\270!\272\207\001\340\206\013(\240q\374\206\002\3756\362\000q\270\010\300\t\310\377\026\310v\320UW\320W\377_\320_k\320kw\320\003wx\353\206\002\263\263\013\207\340\004\322\354\004\200\340\013\234\352\004}l\324\204\0168\270\t\300\034\335\245\001\277X\320X_\320_\207\360\001\330?\010#\240<\250x\371\205\003\217\204S\375;\262\207\003!\320!2\260!\346\302\207\001\330\010\002\007\236\214\001)\250\001\372\377\210\0027\201\207\001\270\030\300\031\310\377&\320PV\320VX\320\177X`\320`l\320l\361\220\006\000\334\351\013\373\305\004\344\267\013\314\344\004\240\354\004\345\372\004\334\351\004\276\321\004\334\343\351\004\242\370\007\010\013\210\366\210\t9\270\377\031\300,\310i\320WY\337\320Y`\320`\261\355\001\330\010\237$\240M\260\030\262\204\003\360\210\017y\377\230\014\240B\240h\250i\177\260|\3002\300X\310\320\2107\203\320(\250$\206\213\013\335\200C\216\251\013\277\274\006\330\310\277\200>\300\212?\213\215\003Q\333\214.\347\366\002\000\000\003{\001\352\264\013\203\330\004\324\343\004\257\372\004\264\360\004\204\274\006\376\366\213\201\320(=\270Q\270a\346\364\216\r+\250\232\211\003\245\211\002\2708\300\3659\365\214\001X\217\216\002b\320bn\037\320nz\320z\270\367\003\247\355\013\261\376\004\340\357\357\004\267\367\004\325\302\004\310\273\006\342\216\r;\2709\377\300L\320PY\320Y[\337\320[b\320b\355\276\001\330\010\037&\240o\260X\226\003\247\214S\362\004\340\327\217\001\363\220\006\271\200<\341\366\004\275\2008\340\010$\357\240F\250*\361\343\001\014\210E\277\220\025\220a\220z\322\344\001\033\303\2301\230\340\001\264\200`\363\346\003\205\223\014,\250y1\242\223\002\276\213\002\270H\300I\216\217\001\376\253Cc\320co\320o{\003\320{\226\302\003\357\356\013\341\333\004\236\311\004\332\333\004\313\331\004\374\272\235\006\362\222\r<\270I\300\\\320\377QZ\320Z\\\320\\c\373\320c\311\300\001\330\010\047\320\047\1777\260x\270q\300\001\310\214U\232\247\351\001\021\376\224\r.\250\210\221\003\254\225\001Q\357\270h\300i\232\215\001[\320[\377]\320]e\320eq\320\017q}\320}\201\366""\003\210\263\013\272\375\004\351\360\0048\250\237\013\217\322\006\354\224\r>\270i\351\260\001\373\222\003\367e\320e\333\275\001\330\010)\320\317);\2708\361\351\002\251\224R\320(\016\363\004$\240N\232\215\005\002\006\277\232\001\305\200<\000\375\367\004\323\355\004\321\303\004\335\333\004\311\335\004\367\374\004\270\310\004\245\360\004\366\320\317\004R\003\203\201!\340\010#\240\3476\250\031\273\352\001\254\205\n\032\230!\360\311\347\002\000\034\306<\331\215\005l\270,\300\037b\310\010\320P\246\2159\367\351\003\347\231\01432\260\360\231\003\200\204\002\300(\250\370\001\334\324\003\367a\320a\361\225\001\360\000\000v\001\001\344\225\013\276\306\004\352\372\004\317\377\013\257\340\004\213\363\004\327\324\006\316\335\231\rB\300)\277\246\001\340\217\003i\320\375i\360\270\001\330\010-\320-C\337\3008\3101\310\230\231T\320(\231H\215\360\002\352\233\0146\260\363\227\003\230\354\002\300\371h\376\220\001\254\315\003e\320em\320\001m\367\243\003\322\303\013\244\342\013\236\372\004\376\321\004\227\372\004\277\340\004\334\250\377\006\340\233\rF\300i\232\262\001d\320\377df\320fm\320mo\377\320op\330\0101\3201\047K\3108\251\354\004\324\233\035>\275\215\001\323\235/\316\361\233\002\014\300A\361\235\r\325\233 |\320A|\321\312\003\226\367\013\313\364\004\246\374\004\334\205\022q\253\233Mq@\215\212\001\316\2371\334\237\001\034\300Q\314\2330p\262\200I\303\233<\305\2006\222\230\001L\310\001\355\241\r\000\350\227!\343\311\003\214\300\004\317\342\004\376\320\004\364\354\004\200\337\004\202\232\004\354\200\337\004\227\373\004t\002\241\225LB\300!\360\273\2416\310\2043\247\215I\272\241\236\310\006\360\000\000o\002\346\255\004\206\261\004\365M\206\340\001M\302`\360\000\000S\305\003\215\261\004V\267\215@\275\330\003\240\047\320G<\216\323\003\223\203AL\320PQ\266\273*\263\203$\330\262\225\013\327\275\006\237\343\001\002H\257\342\001H\0030\325\370\004\221\373\004\266\263\004\300\225\004a\003\274\330E\367\222\005;23\200\335\010\"\240-\224\340\003\324\227*\240\351\2242\263\222=\211\373\004\343\265\004\375\304\004J\323\224H9q\260\243\343\001\334\200@\351\3220i\320i\270\217h\030\211\325/\362\205\005\236#34\303\341\010\215\243\010\231\234(\216\253\333/g\320g\241\234\023\225\224N\300\3335V\207\250:\260\332\341\001\233!\320\205\006\327\205\010Y\350\267\335\002\323\343\"\325\335$\007\373\333\007h\320hN\200\200\234W\250I\327\200E\327\331$\047\207\346\010\377j\320jq\320qw\320\001w\230\356\003\217\342\004\227\356\004\211\356\004\230\340\004\212\326\004\201\322\0040\217\334\013\226\236\004\220\356\004\343\214\004N\003\325\331E\233&GI\320I\360\373\001\253\350\010\327\334\001\021\265\316\001\344\377\242*\356\245\003[\312\214\020\255\342\032g\320g@\231\231\027\241\372\004\267\360\004\317\223\013\314\265\006\276\250\001\002\227\301\004\264\243\320\004\325\245\004\\\245""\360\001\\\003\236\301\004_\275\003\257\342EV\250;\260\221\360\0013\377Q\320Qt\360\000\000u\251\001\364\337\004\200\260\004Z\235\361\001Z\245\264\005]\236\226\361\001]\004^\004\353\242>\237\310\002\320\377HY\320Yo\360\000\000ap\367\317\005\206\373\004\311\332\004\267\214\004B\003\235\310+\377i\320in\320nt\320\017tv\320v\362\377\003\326\276\004\344\373\004\243\351\004\320\263\341\004\276\226\004\361\303\004\210\266\004O\377\362\001O\004\272\340\362\022r\233\363\001r\004@\361\362\001@\273\005I\370\362\001I\005P\377\362\001P\273\005V\206\363\001V\005X\215\363\001Xg\005Y\005\270\337E\377\243\00545\311\346\001\020\370\217\004\322\257\010\373\210(\362\351$w\230\350\007\333\212g\374\3515\367W\250J\301\204\0025J\310!\202\202\250B\036\366\226\017\237\354\032\260\250\026\250\340\013\321\232\2077\t8\333\252\021\315\224\nW\344\272\002\317\362 \260\3600\320\233\017\200\375\352\004\200\306\004\222\375\004\372\372\004\373\354\004\335\336\004\344\317\006\360\357\000\000t\002\250\262\006\360\000\000C@\003\353\302\013\314\313\004\371\302\004\363\372\004g\322\226H\0175\260\t\270\350\370\001\202\201I\207\3611\266\255\017\000\274\365\004\274\322\004\274\365\004\317\353\004\323\355\004\252\363\004\331\262\004\303\365\004\320\273\375\004\261\227\004\247\335\004\235\253\004_\251\375\001_\003:\233\316\004g\267\375\001g\003h\240\255H\362\200Z\240\354\255\t\233\313\013\253\206,\207\201Q\200\310 K\375\377\001Kk\004Q\375\377\001Q\365\320\005T\004\265\364?\276\223\256\005E\260\031\270/\236\323\001W\377\320W]\320]b\320b\316\257\336\001\200A\330\220\204K\220\2302l\320\177lr\320rt\320t\204\347\003\000\213\355\004\223\330\004\252\363\004\222\355\004\255\361\004\221\367\004\226\340\006\341\340\001}\002\310\217\006\360\000\000B\003\270\246\004t\236\306\004\365\265\013h\374\323\001h\003i\236\221H\000\327\206S\310\365/\270\263\017\342\355\004\356\342\004\365\363\004\351\355\004\351\375\004\000\351\367\004\226\304\004\362\340\004\351\375\004\203\321\004\315\345\004\253\223\004\312\263\004:\237\207\004i""\313\326\001i\003j\205\244H\246\211S\036\313\366\004$\320$5\236\273\005\227\266\013\264\366\033\000\351\223\017\256\354\004\303\345\004\266\362\004\265\354\004\305\360\004\316\370\004\370\226\013\240\330\323\004\321\366\004\334\253\004\356\256\013\265\320\031I\247\331\001Ii\004\301\224\004\256\207\004R\217\323Ff\250\252\207\001\376\374\322\002T\320TZ\320Z_?\320_h\320hi\335\206N\225\266B\000\303\344\004\337\320\004\302\363\004\312\344\004\271\357\004\253\367\004\355\311\006\224\374\001i\002\316\371\004\325\273\004S\217\334\001S\003\203\232\004Mc\235\334\001c\003\322\204\004\250\334\004l\262\266H\000\206\217S\301\266F\214\360\004\242\326\004\206\362\004\223\360\004\246\351\004\207\370\004\320\261\252\013\242\276\004\374\336\004\272\303\004]\352\336\001]\0036\224\326\022m\003\214\366FV\250\370\200Z\340\266W4\231\201Q\214\212\004o\345\341\001o\003\235\334\004\240\315\004\325D\345\341\001D\344\217\005W\363\341\001W\004\335Y\372\341\001Y\004c\201\342\001c\004\335l\210\342\001l\004x\217\342\001x\0045~\226\342\001~\214\235\005A\005\222\267H\202\220\022\260\240\303\n\227\365\004\276\330\004\222\375\013_\002\275\220\001M\277\320Mb\320bc\244\230L\014\017\300K\310q\346\337%\335\355\032\314\230@\231\312\004|\321\205\013\336\364\006\360\000\000R\003\336\307\004\024\205\216\004\204\321\022G\336\345\001G\200\335\005\350\242\004\353D\252\206\241\004o\201\346\001o\361ED\202\241\001D\273\005J\211\241\001J\005L\220\241\001L\307\005M\005\276\261?\371\223\032\320\202,N\320\377Ne\320e~\320~\177\344\253\234G\241\232\003\034\312\373\001\276\311\001\330\010!\007\320!2\333\370\005\362\226k\333\370\004\321\306\004\253\246\004|\240\277\004\354\234\006\360\000\000g\003\206\325\004M~\331\351\001~\003\337\206\004\365\340\004L\331\351\001WL\004V\340\351\001V\307\351\005k\356\351\001Wk\004q\365\351\001q\316\351\005t\246\227L\337)\300<\310r\361\253\002\\\320\211\\\216\376\001\360\227\001Q\377\350\002\224\277\017\355\2373\320\371(\305\334\006\334\354\t#\240>\260\021\317\260(\270!\207\374\001\273\334""\033m\320\177mr\320rx\320x\213\275\003\000\241\344\004\234\361\004\257\347\004\222\376\004\243\361\004\344\252\004\271\341\004\333\351\004\236\230\314\006\360\000\000H\346\272\005\300\321\004b\326\360\354\001b\003\364\354\004x\376\354\001x\003\300\245D\364\354\004\232\344\013\263\302$\206\3351\212\233\010\320:\377J\310,\320VX\320X\377^\320^c\320cl\320\377lm\200A\3308P\320\361P\357\222\001\207\205I\266\364\001M\310\035\320\003VW\262\252=\315\225\047\342\335\004\272\317\004\303\302\006\202\276\002\036\346\255\006\360\000\000_\205\360\005\263\347\004\301\352\004z\345\305\004E\227\360\001E\004F\004\250\252G\036\325\243\0059R\320R\267\375\003\304\204G\237\367\001\005N\253\345\001Y\220\345\031\222\230W\254\375\004\364\362\013\300\327\004T\204\320\004\207\205\004p\205\363\001p\375\324\005A\376\362\001\243A\004\240\214\004\336\230\004\202\363\004\\\232\363\001\\\273\004d\241\363\001d\004j\250\363\001j\352\237\220\005m\253\230L+\364\212\001S\320S\377Y\320Y^\320^g\320\037gh\200A\330\242D\225\366\027\261\330\006\374\215\2105\277\323\001>\310\036\320We?\320es\320st\315\350\031\237\323,\300\332\236\047\223\344\004\264\226\013\240K\353\360\004\323\350\006\360\000\327\000}\003\272\244\004T\301\366\001T\004\252\247Db\317\366\001b\255En\335\366\001n\273\004w\344\366\001w\004\177\353\366\001\177\273\004E\345\261\001E\005G\354\261\001G\203\005H\303\261\016\323\3237\356\244\001\260W\364\312\001\001\370\204\375\004\343\270\006\361\216M\036\300~\320U\377c\320cq\320qr\330\377\010\037\320\0370\260\001\260\007\030\270\021\000\t\014\t\214\372\001\327\247V\364\347\0044\346\237\013\224\334\004n\215\372\001n\003\250\227\004\266\354\004\000\317\345\004\346\237\004\305\364\004\273\217\004\210\206\004\360\317\004\221\372\004\302\217\004\325u\305\372\001u\220\372\005}\323\372\001}\004t\332D\303\265\004T\333\265\001T\005Z\342\265\001\367Z\005\\\351\265\001\\\005]\005\276\241\250K\047\300\034\310R\301\343\001Z\377\320Zc\320cj\320j\306\355\324\001\320x\260\267\003\235\361\004\242\341\006\200A\207\330?""@\232\261\032\312\302\n\266\276\002\253\266\001,\377\250a\250q\330\010\032\230\337,\240a\240x\007\001\036\230\377o\250Q\250h\260a\330?\010\034\230G\2405\213\256f\366\372\004\300\363\355\004\310\330\004\375\372\004\366\372\004\312\370\004\371\313\006\360\000G\000V\003\370\211\031\217\376\004\312\370\004H\240\376\001\357H\004I\004\270\335G5\260\0077\260z\300\344\261\001?V\226\217\002\373\222\030\000\310\2017\233\336\001\275\316?\250\251 \370\347\004\303\365\022\370\347\004\307\373\004\200\271\370\004\344\243\004\300\370\004\252\236\004\221\215\004\304\226\004\261\232\004N&\321\373\001N\004\334\211\004\304\226\004W\275\373\016\215\336/\314\275\317\005\201GAB\300\376\010\210\226\034X\250\347W\260A\342\204%\363\363\001\001\330\010\377%\240^\2601\260H\270=A\366\225\"s\320sy\353\327\005\251\206\013\000\364\264\004\373\352\004\255\304\004\240\346\004\334\326\004\342\350\004\353\361\004\246\341\004\340\333\357\004\303\373\004\356\331\004\377\301\004\362\264\006\360\000\000\301h\302\373\005\302\366\004\321\376\004\307\231\004\212DO\004\376\204\364GV\2506\260\025\260i9\270\331\366\001\254\201VC\3001\223\374\001\370*\3471\260\001\347\376\002\234B\300\030\310\367\031\320R\216\227\003`\320`h;\320h\243\307\003}\320}\231\351\003\302\346\004\000\302\376\004\237\351\004\341\353\004\315\257\004\310\371\004\332\373\004\361\364\004\371\366\004\000\350\353\004\254\344\004\333\331\004\372\267\004\246\351\004\353\251\006\235\332\001\307\371\005\270\223\231\022\222\214\004\276\376\017A\300\031\327\230\001_\377\320_a\320ah\320h\377j\320jk\330\010,\320\213,A\335\000\021\310\277\001\274\367\025\241\201bE\323\300Q\363\367\001\376\204\n3\312\310\001\"\320{\"A\360\370\001\3008\3109\372\255\002\377`\320`b\320bj\320\001j\203\205\003\234\354\003\344\356\004\241\347\004\265\332\004\204\361\004\320\262\004\000\373\367\004\213\305\004\322\374\004\364\367\004\353\356\004\331\374\004\360\325\004\353\356\004\232\226\226\013m\316\374\001m\003\234\217\004\313\374\004B\242\201\340\001B\375\337\005\225\217""\004\366\222\004U\355\337\016C?\3009\310L\320X\204@\202\216\003\376\341\233\001\330\010.\320.E\300\177X\310Q\310a\330\010\215\201z\347F\300a\270\357\001\210\210\n4\2601\376\216\373\002B\300!\3001\300H\177\310I\320U[\320[\274\003?k\320kt\320t\266\335\003\264\345\004\000\253\237\004\204\310\004\332\354\004\213\364\004\363\337\004\276\357\004\211\373\004\371\361\004\000\353\370\004\222\364\004\312\326\004\227\216\013\262\237\004\214\260\004\234\222\013\231\234\013\325M\226\343\001M\266\273\005U\244\343\001U\004\375V\373\342\016D\300I\310\\\320\377Yb\320bd\320dk\377\320km\320mn\330\010\217/\320/G\322\377\001\360\332\002\234\204zG\327\300q\310\224\213\r5\336\213\002\320\"\374\266\210\002\262`Y\320V\\\320\\~\275\003l\320lu\320u\205\344\n\000\232\367\013\342\357\004\314\320\004\221\376\004\306\362\004\364\270\004\365\352\004\305\355\004\200\241\301\004\201\374\004\211\343\004\201\365\004\215\216 \332\255\004\211\216$E\357\300Y\310l\235\224\002e\320e\377l\320ln\320no\330\377\0100\3200I\310\030\320\337QR\320RS\372\204\"\340\010\377\014\210J\220m\2406\250\373\021\330\010\000M\230\024\230Q\376\005\001J\220i\230q\240\004\375\240\346\215\002\r\210O\2309\240\373F\250\216\245\002\r\320\014\036\230\337b\240\010\250\001-\001O\230\3771\200A\340\010\020\220\004\373\220A\274\375\0014\210w\220a\377\220w\230a\330\014\021\220\367\030\230\021\004\000\320\021!\240\377\021\360\006\000\r\022\220\037\357\240\013\2501\026\001\036\230{\373\250!\037\001\033\230K\240q\356 \002\"\240!\037\003\030\230\037\337\250\001\250\024\250\376\365\001\r\021\377\220\005\220V\2301\230E\277\240\025\240d\250!;\000\020\367\027\320\027\215\231\001\024\260Y\270\377a\330\020\035\230T\240\021\377\240!\330\020\023\2204\220\277q\320\030(\250\003`\000\024\377\030\230\001\320\031+\320+\377H\310\001\310\021\330\020\025\273\220\\#\000.\260\001\223\001\025\377\220a\320\027(\250\004\250\374\304\217\001K\0243\2601\260D\270\367\t\300\021W\010\025\220[\240\337\001\240\036\250q<\006\047\240\347t\2501\325\003P\002)\250\033\337\260A""\330\014\020\240\0221\260\367\021\260$\241\216\001\330\020\036\230\337d\240!\2401\224\001U\230\367!\230?\326\000?\270$\270wa\270q\247\001X\230Q\210\227\001\372\242\006)\211!\330\010\017\210q\024\347!\234\351\006\035\246A\"\345\311$\345\341*\262\272\001\037\320it\320t\240\373\003\346\230\013\200\366\004\354\343\326\004\237\373\004]\002\226\341EX\250Q\360\260\2003\237\311\002\367\374\r\204\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\230\311\004\370\374\004\340\367\004\303\330\004\272\303\004\323^\002\273\376E\254\20089\206\237\001\"\320\343\"3\202\225\007\346\327\032\275\220\001\320kv\027\320vw\307\327\001\001\241\305\004\366\277\004\360\221\022s_\002\203\327E\223\2028:\270!\312\351*>\225\310\001\320lw\320w\227\364\003\227\354\004\200\331\276\004\275\327\004\201\307\004\314\356\006\202\373\r\315\2305\372\2038;\363\2701\234\330+\347\255\001\320mx\3201x\372\335\003\306\225\013\265\222\022a\002\216\335E\342\2058\367<\270A\201\372\t\330\010&\320\377&7\260q\270\010\300\001\272\344\374\001*\374\213\001\"\320\"\253\377\002\270\237(\300)\3106\351\337\010\350\217\001\320\017ny\320y\364\357\003\263\363\004\273\320\004\233\221\022\330\243\362\004\362\367\004\352\376$:\270\363\263\001y\320\257XZ\320Z\360\223\003d\357\233\0038\343\2701\273\001\347\226\017\275\374\003h\250j\377\270\014\300B\300h\310an\204\2105>\270a\357\376\t\330\010\335\367\007\346\203\377\001,\250\322\223\003\253\377\002\270H\300\367I\310V\344\253\002[\320[c\377\320co\320op\320p\007{\320{\204\315\003\301\223\013\246\312\004\256\374\004\212\372\004Kp\002\336\335\001\002\277\355\004\360\376\022O\321\376\016\367<\270I\327\270\001Z\320Z\\\237\320\\c\320c\223\266\001\346\274\0027?\260x\270q\300\001\374\225\021\231%\237m\270<\300r\225\220\002\246\2125?\371\270\366\361\016\200\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\360\324\004\213\317\004\351\324\004\205\362\004\311\376\006\311\235Gn\215\2148@\300\001\341\363\r.\250\316\361\003\336\366\310\002\270h\300i\254\350\001[\320\177[]\320]e\320e\245\253\001""\037\320r}\320}\324\340\003\212\376\004\340\333\004\360\365\320\004\336\343\004\217\376\006\333\372\r>\270i\300\377|\320S\\\320\\^\320\357^e\320e\274\260\001\330\010)\037\320);\2708\363\236\003\337\234\025\367\2158wA\300\021\313\365\r/\250a\351\365\002\376\220\310\002\270x\300y\320PV\376\261\226\002^\320^f\320fr\237\320rs\320s\263\276\001\330\332\001\002\350\360\347\004\234\343\004\326\204\022g\212\220\016?\270y\377\310\014\320T]\320]_\337\320_f\320f\254\270\003*\320\017*=\270X\330\235\003\223\200U\264\244\n\265\2002\330\203\346\004yn\334\3753=\270\372\366\016+\250\270\321\216\003\263\360\002\330`9\310F\257\243\002Z\003\320Z\330\327\003\245\362\027\335\353\004\312\313\004\344\353\004\204\240 \235A\342\312I7\260!\371\225\n\377\265>8\003\270\001\211\224*\234\3369\372\330\004\321\336\013\244\326\004\244\303\004`\313\320\004\372\330\004\333\250\006\356\255I\233\341\002\340\010\355\273J\000\262\276g\217\323\004\335\355@\204\3677\335\343\004\370\200I\344\205D\331\322\047\374\311\356\004\206\376@;\2709\300L\320\177PY\320Y[\320[\232\244\003\377e\330\010&\240o\260X\007\270Q\270\212\247\032\245\201!\211\2665\377\350\001\312\235*\000\314\3502\321\222\004\245\330\004\260\260\004\271\346\004\261\255\004\240\252\004\343\376\004\350\330\325\004\305\266\004\254\330\004l\307\363\001l\003s\022\316\363\001s\321\301\005\362\322\004|\320\350J\260\266\004\342\206\032\034\371\2707\354\234-g\320g\225\343/\320\370\004\212\364\004\000\245\351\004\225\365\004\272\363\004\366\246\004\327\370\004\251\366\004\264\266\004\317\363\004\004\266\275\004\336\321\022~\226\343J\3308\216\274\014\350\265&\340\206K\000\364\265\031\360\366\004\253\315\004\202\266\004\262\315\004\220\274\004\202\341\004\255\346\004\030\213\354\004\251\307\006\335\332J\n\270\360\216\013\233\270G\250\207\003\374\330\343\t\344\343\t#\320#4\260A\360\314\210\001\232\233\t\236\320\001\244\327\035k\320kq\037\320qs\320s\231\331\003\375\356\004\221\331\013\000\204\357\004\266\376\004\210\374\004\327\346\004\243\233\004\211\271\004""\202\271\004\210\374\004\000\262\320\004\222\315\013\336\346\004\202\344\004\275\207\022\222\315\004\223\274\004\304\333\004\272\301\373\004_\313\373\001_\004i\322\373\001iU\004\321\371\004z\340\373\001z\327\371\005B\342\371\001uB\321\327\005U\360\371\001U\005_\367\371\001w_\005e\376\371\001e\005g\205\372\001\367g\005h\252\327HF\260%\260\367y\300\014\216\264\001Z\320Z`\003\320`\332\366\003\233\375\003\214\307\004\366\353\004\313\346\013\243\364\004\300\341\366\004\365\221\013\245\257\013\311\265\004\252\364\004\316\343\013]\003\000\360\252\n\222\275I\317\2230\346\355\023\215\366\031\371\237\004\321\350\004\317\267\0044\260\366\004\327\324.r\376\377\001r\003\210\325\004\360\307\006\200\225\303G\306\275\006\234\224\010\205\300I\211\245\002\302\300\n\343\244\033j\003\320j\205\231\020\351\345\004\254\353\031\312\366\004\266\303 \244\333\004\200\331\303\004\330\366\004\231\371\004\230\217\004\337\324\004\274\316\004\253\333\004\177\000\225\350H\227\201]\334\2331\276\300\003\347\251\003\267\275\004\212\374\004\240\353\031\240\344\363\004\341\245\004\234\361\004\303\353\004\216\336\013M\276\371\001M\241\003\311\371\004\362\363\004\302\371\004\342\324\004w\341\371\001w\365\003\327\327\004\177\357\371\001\177\003@\004\000\271\350H\220\204]\331\250\003\263\306\t\264\250\033\326\366\003\303\335\024\304\353\031\000\215\364\004\257\300\004\215\364\004\347\353\004\272\374\004\352$\220\377\004\343\366\004\020\233\364\004\334\366\004\322\320\004\332\335\022A\316\371\016\344\2501\265\311\005@\211\207]\261\251\002\252\310\213\272\377\004\206\344\013\354\353\013y\322\377\001\023y\003\343\204\004\332\332\004B\333\310S\213\212T\300\252\002\334\244\314\n\246\252\033n\320n\232\303\001\320z\000\310\374\003\377\267\013\260\343\031\237\364\004\261\322\004\322\361\004\323\343\004\377\371\004\000\353$\325\374\004\252\314\013\252\367\004\314\335\004\275\326\004\323\343\004\250\306\004\203C\004\343\252G\237\314\010\204\215T\317\253\002\275\251)o\033\320o\205\303\001\320{\242\257\003\222\271\013""\331\274\022\000\305\261\004\305\364\004\335\263\004\235\317\004\245\314\004\235\372\004\310\377\004\200\375\004@\240\367\004\323\364\004\231\367\004\330\361\013\306\340\004\273\343\004D\214\372\016\334\202\2547\230\201_B\300!\225\322\0140\250z\256\262\003>\327\300\001\300\010\310\t\315\352\002\356\363\255\003g\320g\345\252\003|\320|\000\326\331\003\245\272\013\354\275\022\245\330\004\265\243\004\236\330\004\300\351\004\245\330\004\000\223\372\004\331\360\013\306\367\004\265\346\004\347\240\004\277\223\004\216\314\013\340\364\004\375E\206\375\016@\300\t\310\034\320\377U^\320^`\320`g\373\320g\272\277\001\330\010+\320+\307?\270x\365\307\003\365\316 \370\222TC\300\0011\217\325\014\227\321\177\224\375\004\232\351\022\341\243\004\210\351$\315\321B\332\362\225TD\202\325\0162\260\316\264\003@\300\177\001\300\021\300(\310)\215\347\002\016\311\323\003i\320i\253\357\003\307\337\003\302\343\004\301\274\013\000\226\300\022\231\333\004\260\272\004\365\253\004\226\336\004\231\333\004\277\357\004\271\256\004h\276\375\004\220\325\013\251\342\004t\326\375\001t\003\344\362\013\372\244\336\004G\267\362\016B\300)\310<\273\320W\310\323\003i\320i\361\353\003-\377\320-C\3008\3101\310qA\300\313$\255\362\006\314\332IE\300Q\207\333\014\000\205\324\203\242\341\004\326\371\004\266\354\004\317\375\004\335\371\004\277\226\004\235\357\004\022\335\371\004H\256\324S\356\233TF\370\327\016\365\323\207\234\357\031\020\246\362\004\375\343$\262\324C\361\236TG\361\327\016\351\323\207\243\344\004\020\373\327\013\377\356\004\313\234\004\246\362\022J\272\373\016\243\324F\260\207R\355H\346\327\0166\260\250\302\003D\300A\377\300Q\300h\310i\320W\367]\320]\254\305\003m\320mv\003\320v\243\306\003\252\373\004\362\317\004\251\302\013\252\373\004\370\332\004\000\261\373\004\310\310\013\270\373\004\370\332\004\300\272\004\231\347\013\300\242\004\240\347\013\320\260\245\013\215\336\004\235\352\004\362\376\004K\276\376\016F\300\377i\310|\320[d\320d\277f\320fm\320m\360\307\001\330\377\0101\3201K\3108\320\237ST\320TU""\331\212-\214\355\nQ8\352\354(\377\274-\325\231\003v\320v\275\356\003\347\335\004\320\240\376\004\223\317\004\205\347\004\334\343 \177\273\322FV\250\343:\260\350\324\002\362\366\006\371\366\010Y\240a\376\306\200Jw\310f\320TV\320\201V\225\370\003{\225\233\361\002\315\333\001\324\200<\377\324\"\007\376\342\362\001W\320W_\320_h;\320h\201\233\003w\320w\246\372\003\250\313\004\020\342\362\004\244\353\004\224\342\004\353\221 @\371\265F\201/\307\363\010|\310\202[\263\200]6\260i\270|\252\350\001\327V\320V\210\312\003`\310\371\001\032\250\3578\2601\260\276\223\030W\250J\377\260a\200A\360\010\000\t\375\021\362\337\004\320\013\036\230g\240\375Q\370\335\001\n\230!\2305\240\375\017\243\336\001\023\2205\230\r\240\337V\2501\340\014\005\003U\250\335!+\n\014\210L\257\337\001\013\260\3736\270\247\340\001\220\034\230Q\230\337k\250\021\320*\253\324\001\014\021\377\220\025\220a\220~\240Q\373\240n\250\360\001\r\320\r\036\230\350j\013\207\353\001\262\341\004\025\360\340\001\017\210q\277\220\r\230T\320!\327\324\001\001p\255\336\004\235\010\226\337\001\301\337\001\033\250A\316\316\001\377\013\2106\220\023\220A\330\377\014\024\220E\230\033\240A\217\240[\260\001\273\227\001\346\336\002\324\010\026\373\220a\245\342\001G\2201\330\014\377\017\210t\2203\220e\230\3771\330\020\030\230\006\230a\373\230q\367\340\002\320\027/\250q\177\260\005\260Q\330\024\031F\002\177T\250\021\250+\260V\265\324\002\377\024\"\240!\330\021\025\220\337S\230\005\230Q\206\341\005$\240\277a\320\0479\270\026\266\322\002\020\353\025\220\206\340\001>2\000\047\260\026\377\260q\270\001\340\010\013\210\3171\330\014\031\300\342\001q\000\320\023\311$\235\000Q\001!\361\341\001\347 \017\210\177s\220!\2206\230\022\207\001\367\024\220C\246 Y\250a\250\367u\260A\177\001\021\330\024\027k\220r\032\0003\236\002\030 \311\343\001~\236@\030\033\2304\320\037\366\326\001\177\014\300A\330\034!\240\207!\337[\270\001\270\033\013\001*\250]!t\0015\220\003\345\003q\234\341\004?\320\033+\2504\250\240\343\006\371@\377\n\000\t\017\210d\220(\277\230(\240%""\240q\365\343\003z\357\230\021\230%\215 \014\022\220\237$\220a\220q\370%)\000\020:\263 8\224`\001\240\0217\003\007\0079\037\262!\007\013\005\240Q]\003\330d\362\336FNZ\003\343A\016\230e\240\245<\360 \013\226\327\003\255C\014\213\204\004\340\177\010\021\320\021&\240a\234\343\001\276\324\345\001C\210}\230I\305`e~\373\344\001\024\220D\320\030.\374\372\002\352\360FZ\272@\001\331Av\220V_\320\0332\260#\267@6\372\343\001\365)\304@(\014\000Q\330\021\027\377\220v\320\0357\260s\270\377&\300\006\300a\330\020,\356\302`X\260S\247A\023\320\023_#\2401\240A\270\373\001A\276\346\001z\274c\016\227\205\007\2104\210u\346a\337\020\320\020 \240\246\326\002e\220_8\2307\240!\2435\013\315\205\003?U\250!\330\020\032\311\205\007\246\204\001\347\035\240a\204\204\001\373A5\230\003\376\206\204\001\027\220\177\240a\240s{\250!\243@v\260Q\340\241\346\001\376\266\001%\250}\270A\270Q\377\330*0\260\001\330*2\377\260$\260a\330\r \240\037\007\240u\250AJ\n\307c=\016\33518\0171\260\024^\000\014\023\377\2203\220a\220v\230S\377\240\001\240\025\240c\250\027\337\260\001\200A\360\351\005\340\010\377\033\2302\230\\\250\025\250\337k\270\021\270+\257\361\002\034 \377\240\016\250e\260;\270e\376\252\241\001#\2402\240S\250\005k\250\\\035\000\"\237\002$(\014\000SU\260\340\350\002\253a1\316\350\001\027\302a\337#\2404\320\047\331\244\002\013\210\3775\220\004\220D\230\n\240\237!\2404\240q\300\347\001\353\346\001\003\317\2207\230)\373\"\202\350\002z\240\375\021\220\204\002\024\025\340\020\021\330\355\024\355 \320!\354\320\001&\300\001\377\330\027\030\330\024\032\320\032\376\265\226\001\030\033\2301\230A\330o\030\034\230E\276\350\002\024\032?\003\373\340\010\365$Q\330\020\024\220\377J\230a\230u\240O\260\3571\330\014\047\264 M\270\021z\274#q\010\022\031\300!\340%\000\361t\252\205\001\212\207\001\302\206\0013\210a\210U~\246 \003\235b\014\377@!\256\351\002\361\014\256\351\002\275A\203\000\r\020\220\001?\220\036\230t\320#\246\336\001u\000\377C\220q\230\006\230c\240\373\024\240\230\204\001\004\260A\260T\356\240\211\001\022\320""\022\262\326\001\020\023\220\374\234!\235\000E\230\021\230!\330\357\014\022\220)\312\001\340\010\014\336\224\353\t\320\014\034\230\274\353\004L\230\373\t\240\337\211\002\033\230A\230[\373\250\001\246\351\002\010\r\210U\2201!\271\204\001\313 \322\372\001\r\210\037\006\361\211\030\373\340\010\202\211\0011\200A\3602\376\327\204\010:\220Q\220n\240A\363\330\014\325 \201\352\001\007\220t\320\373\0336\357`\020\023\320\023&\177\240g\250Q\330\024\030\266B\337>\260\021\330\024\201\352\001\047\250\257\034\260Q\340\004\004\021\301\353\0011\352\254A\007\330@\001\333\204\005>\240\023\377\240A\330\020\025\320\025%\375\240\271\211\001\320\025&\240a\330\335\020\227`\340\020\026\242\355\002\001\330\357/6\260c\346`.\310\002\377\310!\3309:\33004\353\260E\366`!\260\352\003N\220!B\226\204\001\014\314\211\001\365&\245!\232 \330\305\003\037\320\004\035\230Q\306\214\010\350\353\001\255@\337\330\010\022\220\047\334\"\010\014\377\210G\2209\230J\240f\373\250A\200\213\002\320\023+\2501\347\250G\260\301\353\002\225\354\001\026\240q\023\250\013\374\363\001\242\214\003\330\317*"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35509, 110871); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35494 bytes) */ +static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notebegi\377dx nbele\337mentc\345\220\003pi\377ckle %s:z\343\211\007h\345\215\003poin\354\233\002Cto\223\233\002\351\212\005\336\000\345\213\002,\324\235\002\367doe\347\223\001t cr\373os\306\227\001proce\357ss b\365\240\001ary\267dis\352\205\001en\360\205\001g\345c\333\235\002 \266\236\003\242\224\001wro_ng di\221\000s\313\240\001\352\024\tl\305\204\002s\343\235\002dif\007fer\337\221\001\351\237\002\367\236\003\310\211\001\274\225\005yd\327B""Y\003must\336\236\001\003a \354\237\002h\004\350\237\002\345\237\003\207\232\002\330\237\002\377 Series,\255 \204\226\001%s\363\236\t \223\234\007m{is\202\242\002requ\374\214\002^\256\241\001 key\304\242\001g\212\217\001\270\243\216\002\245\003\346\205\001, 0\354\232\0011\33700)is\366\003dn\315o\341\226\005: \355\236\006\204$is\277 empty\234\241\002.\377_core.mu\347lti\337\240\004\351\227\003to \363im\305\215\001\033\tumat\367h f\023\014tali\203b.\204\215\004\244\243\001\013\003\374\241\002\026\003o\013rd\316 d\237\242\001\047\003\200\242\003\005\004\334\365\241\002?\003sysH\003thgrea\321\230\001W\003wa\352\233\002\366\027\003/_\324\244\005.pxizy\002/\304\000mmon\006\010@\262\244\001\025\010\310\224\003,\002\202\207\005\225hs\325\227\r\377\047ACACCBA\327NDS\000\005_\354\210\001am\362\000\014.\206\243\001\334\236\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\366\231\001\004\372\231\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\345\230\002S\247\252\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\370\225\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?""\010<\004\017\331nBELT\207\236\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\343\241\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\361\233\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\307\236\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\370\253\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\315\250\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\273\257\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014""\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\216\270\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\362\266\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\313\276\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\345\320\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\346\315\005n\356\315\005.__\376\321\001__\001\r\374\260\325\005\035\theck_o\343pt\366\322\004\356\301\002>\010get`\003\030\215\322\001Z\n\274\323\003\325\277\002_s\330\263\002\322\311\312\002s\220""\010\360\310\001l\240\010re\333pr\236\nst\002\013un\361i\334\313\001\304\010\336\320\006flag\000R\007\250\001\267\324\t\207&\017\007\342\323\002\013\n\332\326\007\370\266&\214\320\001\303&lookb\047ack\324&\301\317\003_m\013\016\004\270Q\013\352\317\004\216Frun\232Fs\000\325 \241\322\n\r\n\261\022/\001\242\325\010>\n\240\330\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\237\313\002\221\325\001IMI\300\000\000\312\266\004\000\007\276\266\013\323\313\t\327\313\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\367\314\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\207\320\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\345\312\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\204\322\001MA_\376\213\322\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007""\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\351\321\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\334\343\001\317\335\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\207\327\001\213\327\002F\000\003*\006O\007CHFJ\024\270\327\003\276\327\005&\t\355U\370\355\327\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\321\350\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\236\330\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\362\352\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323""\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\362\356\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\224\360\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\352\361\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\363\363\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003""\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352""\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245""\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371""\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313""\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331""\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017""\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010""\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004""\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010""\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%""\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\340\237\205\002\233\205\003\302\204\003\000\t\273\204\013_AR\377RAY_TYPE\375S\352\322\002tion__\377call_fun\365c\n\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str_I\304\354\312\002\313\002S\312\004\r\003\333\272\002_S\367ERI\341\000DEFA\377ULTS_PAN\377DAS_DATA\237FRAME\t\005!\004P\217OLAR\022\n\013\003@\004_\367Pyx\001\000Dict\377_NextRef\373__\256\325\001UNCTI\357ON_NP\000S__\363__\306!\003\001nnot\027ate\017\001c\r\004\330+\3064\177_class_\327 \357item:\002opy>V\001deepc\004\005\205\001\016l\000docq\001\267Ay\001\214A\177flags__\207Q\236J\tinit\254\001\214V_\336\226C_mai\237`__\317meta\226\003\344\000mo\367dul\330\002mro_\207ent\331B\375\000\250B\004\001e\375w\212!prepar\312\201\"p\277 v\234\231\002\243!qu""\373al$\005reduc\024\245\"+\000r\301!s\325`B\005\350A\274\326 \220`vers\252\204\002_\357_tes\271\002uni\247cod\342!\207\204\001d\242\245\003s\374\263\212\002\230 s_is_c\377oroutine>\316\000okup_\332`\322\204\003\037succe\351 \353`\274\"\273unR\000id_\001\014s\236\003\013reti\257\000C\001g\000\232\331\003\214\331\001\004\010\316\331\002\030\004\256\330\007)\004\240\331\017\000B\004\220\331\022\024\005\224\331\017x\004\333\000\256\234\010\r\005Mu\203\234\004_p\206\234\002\356\001i\210\321\006Z\374\001r\330\247\003_c\325\332\002_\261$\203_s\332\247\004\237!\377!\030\004\006\016o\350e\014\253Aa\020s\371\234\004a_c\377losea_hiwgha\325`wa_\333\215\001\375a\231\004sa_rea\365l\000\0030\007\0031a_v\277olumea\241@l\307era\245\210\001\000\t\274\204\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016B\003\377ppendarg\376\000\000sarrays\377asciiast\377ypeasync\367io.\331fsatr\356\355#avg\366#bbe\377gidxbitb\377ytes2str\376\357#stickcl\376\224\204\001in_trac\331e\256\335\001\247 ne\252\"co\327lle\214\212\002s\010\000um\237n_sta0\000\222!n>\020\000pydde\371\204\001\266E\374\230\212\002\373\204\005descri\375p\333\212\001displa\271y\367\211\002\221\205\001doc\325 n}t\316\"empty\341\000\374\241\000\347\000swithe\371n\364 \356 efact\367orf\352\000d_ma\260\356\001\006\003\320c\024\001k_\002\007l\217imit)\001!\007\"\004iwrst-\004lag\233\210\002\366\237\210\003lo\214\206\002dictx\275\210\002\342!\306\210\002info\317\210\002<\234!\330\210\002obje \003\255\214\002\020?\003\251\214\005\322\213\001\266\214\005s\220\214\001\250\214\003\253Ch\006\007\370\213\002\257\214\001p\252\340\005sg\346\337\001\366\000\002sh\341\340\002help\366\243\204\001hi\374\255\001ylen\335h\326\264\002iid\304@im\375p\333`_error\177inindex\247\001Pc\t\243\215\003\344\214\001\000\007s\362\214\025i\321\243\003\347is_\203B\356\212\001ske\335y\000\000skw\360ale\277ftbars\205\000g\353th\251\215\002l\325\341\004low\366\000\000er\224Cmaxi\277mummax\356\206\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\273\212\003\377msg""multi?pliern\231\216\001\235\216\001\357dtup\366\000ann\257bdev\000\002d\006\003u\257pno_\361\000s\204\260\001_\010\332)\261`\236\217\003s\006\001\251\217\006\010\003\340\342\002\366\025\001py\302Coffs\277etonre\320\212\001e \350\225\001\354\225\001\342\245\001\226\210\002\360\225\to\272\343\001\372\217\006\372\375\217\014s`\007order\373ed\311aoutou?taroon\374\245\001\004\005\377upoutbea\037rpowe\221\213\001\226\206\003\021\001\367ull\r\005doutofama\002\002st\t\003\377stkoutha\000\304\210\002\005\002\310\210\001\016\002\205@\026\002\300\002\345\213\001\037phase\356\213\002\257\247\002\000\007\375_\325\220\001outjou\036J\002lead\230`(\001\305B\373ba\254\000utmac\360\200\001\003\001\201\204\002\014\003sign\347alo\033\001\227\002max\256\010\002xid\000\006xZ\005m\337iddleH\005in\3063\001in#\004\004\002 \007nu\377svioutnb\277elemen\267!p\365l\016\004p\305\"put_\"\322\217\002o\252\346\002\301\222\002\000\010s\021\003\000\004\365s\242\223\001i\302!quad\237ratur\212!\336\212\001o\205u\343\231\001l\341\t\365\212\001\241\n\206\213\001u\317pper\207$\232$slcow\226A\004\001\207Asm\260\001\374\003\000\217&supert\373re\277\"swing\340\234D\007\002\240C\027\005X\006pan\007das\213\207\002\220\207\002\234\224\002\225\207\007\244\207\002\277spenet\374\213\003p\377ercentil\371e\325\215\003\333\215\003spola\245r\003\000p\350\224\002\355\224\0020\363\224\0021H\362\224\t\371\224\016\312\225\003s\235\225\002\003\000o\275\001?yrange\333\213\001\220\215\001\372\224\215\0010\231\215\0011repl\377aceresul\307tsr\216\000\262\254\001\357\204\001t_\336\377\220\001righ\246\207\002ro\223c1\362\216\003\007\0002\001\006\014\004u\377nsschema\277second\271\004e\003lf\233\226\003\365\221\001\377\226\006\361\214\001\206\222\001\302\211\tp\006\007\306\226\002\245\222\001\304\211\007set\373\221\005\300\245\270\003\242\215\001\263\204\003\272\213\003\277\204\003\256$ki\007p_f\230\213\001\327B\333\213\004\006\003\320$\017lowk\r\010\346\213\005\210a\351\213\002\234\221aR\004low\205D\241\215\001l\377evelstar""\365t\255\230\002s\350\214\001cmet\377hodstdde\255v$\005r2\222\216\002s\372\236\002s\375y\273\256\003talib.\374\244\223\001\005\000thread\377ingtimeS\217tamp\005\001\323\221\003\000\0071\372\013\0072\026\0073to_nOumpy\252\217\001\256\217\001_\334\223\004\277update\000\003_ \351\214\001\355\204\002\331\231\002\253\003\344\224\004v\375\215\003\204\221\003\317warn\000\001\377\272\001wm\375a\326\222\003\200\001\330\004\007\200\377u\210C\210q\330\010\020\377\220\005\220Q\330\014\r\330\377\020\026\320\026+\2501\250\377A\330\014 \240\013\2501\367\330\010\017\035\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\377\021\200\001\340\004\017\320\017\377#\2401\330\004\013\2101\376\013\001\022\220,\230a\330\004\177\025\220Q\220o\240Q\014\003\367.\240\001\r\002\320\026\047\240\375q \002\320\022&\240a\240mq\017\004-\250#\003\320\022\035\000\377\250\r\260[\300\013\3101\356+\004.\250a+\0042\260!\355\260\016\0059\270x\001#$\360\377&\000\005\014\210;\220a\375\220\231\000\r\210T\220\026\220\373q\230\336@\r\210]\230!\377\2308\240:\250T\260\021\377\330\004\r\210U\220\047\230\377\022\2307\240\"\240A\330\377\004\017\210w\220e\230?\373\250\"\354@\004\016\320\016\037_\230q\240\010\250\225`\021=\000\377r\230\024\230Y\240k\260\377\024\260V\2701\270I\300\377]\320RS\320S_\320\377_`\320`o\320oz\177\360\000\000{\001B\002\004\000wB\002H\003\001H\002I\n\001\357I\002J\002\362\003i\230q~\207%#;\2701\360(f;\363M\270\277\000\203\200 [\320[\\\377\320\\h\320hi\320i\335x\243\000y\001D\242\001D\002\335K\251\001K\002Q\260\001Q\002\235R\267\001R\002S/{\247\000]{\320]\247\000j\320jy\320 wz\001E\317!E\002L\326!\271L\234\007\354 S\002T\310/$\375%\301\2028\320\033+\2502\250\373Q\330\356L\027\230\002\230$\377\230i\240{\260$\260f\377\270A\270Y\300m\320S\367T\320T\367@a\320apw\320p{\372@|\001C\371AIC\354G\217`J\342 ""\357\204\003j\350\204\001\236\206\205\003$<\270A\302\2028\237\003]\343\270!\202\200\"\310\20236ub\320b\277c\320co\320o\322 \177O\360\000\000@\235\204\005\227\204\004X\334\205\001\367X\002Y\343\205\001Y\002Z\002v\3110\320<\227@U\360*\310\2066\356\330%-\300q\344\202\"`\320`\376\252\204\003v\320vw\360\000\000\227x\001G\202\207\001G\312\205\005\246\004_\356\227\207\001_\002`\236\207\001`\002a\356\250\020=\270Q\326\202>^\2701\356\234\204\037n\320T\343 d\320d\377p\320pq\360\000\000r\253\001A\264\210\001A\335\205\005S\302\210\001S~\334\047\360\000\000Z\002[\333/\373%&\257\205:,\250B\250a\376\334\205\r\030\230\022\2304\230y\377\250\013\2604\260v\270Q\377\270i\300}\320TU\320\357Ua\320a\232`q\320q\337|\360\000\000}\273\210\005J\002~\336\205\004\360\000\000K\002L\342\211\004\367k\240\021\360\213\005%=\320=\316;\000V\3602\325\2028\245\001m\270\367=\310\001\213\207\013\024\320\024%\357\240Q\240h\301\001\022\320\022\337#\2401\240H\266\213\001\021\220\370\260\022\245\207\003\277\000}\320}~\360_\000\000\177\001N\252\213\001N\306\204\005\272\223df\277\213\001f\002g\306\213\001g\273\002r\315\213\001r\002}\324\213\001}\267\002J\003\320\207\001\003P\003\001P\273\003Q\n\001Q\003\\\021\001\\\273\003g\030\001g\003r\037\001r\273\003x&\001x\003y-\001y\347\003z\003\364\215\003\222$:\320\025\375%\377\215\002%>\270a\360,\242\333\200\353\320>;\000W\254\210\001\016\210[\367\230\001\230\222\220\002V\2206\230\047\021\230!\236\220\001\251\220\005V\341\220\001\235\220\021\372\213\210\"&\243\007b\320bk\320\235k\371 x""\320x\335\215\003\241\220\004T\256\271\220\001T\002[\300\220\001[\355%bn\316\220\001b\002c\331\211\017\047(\255\215:\357.\250b\260\302\205\014\021\220\032\377\2302\230T\240\031\250+\377\260T\270\026\270q\300\t\177\310\035\320VW\320W\251\210\003Ws\320s\263\205\003F\343\221\001F\214\217\005]M\361\221\001M\002N\340\221\004m\354\223\007\010\235\003\237\2016\202\210\0346j6\226\210\010\303 \357\2139\376\277$\r\320\r\036\230a\230Ax\267\225\001\000\t\251\201&\337\221\004\242\204\013W\312\224\001\353W\002\374Dh\330\224\001h\002n\356\337\224\001n\002o\346\224\001o\002p\376\347+9\220A\200\001\340\047g?\270q\244\220:\230a\r\270\367\221\016~\211r^\320^_\320_\314\204\003\200\202\222\003\370\215\004\327\211\004\317\204\004\311\207\006\376\227\003\231i?\377\320?V\320Vm\320m\347n\3604\373\2168\257\003Z\300z\377\320QR\330\004\027\320\027\337(\250\001\250\030\343\227\001\030\320\377\030)\250\021\250(\260!\374\n\013\331\204\024`\320`j\320j\377s\320st\360\000\000u(\224\216\005\324\227\004\247\226\004\\\345\227\001\\\213\211\005\237\213\004\272\223\211\004~\201\230\001~\002I\251\213\001I\273\003Z\260\213\001Z\003`\267\213\001`\273\003a\276\213\001a\003l\305\213\001l\373\003w\314\213\001w\003G\004\360\337\000\000G\004M\003\001M\004\275N\n\001N\004O\004\236)\320\377\013\036\320\0362\260!\200\357\001\340()\245\225:/\250r\375\260\250\230\016\033\230B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310-\320WX\377\320Xd\320de\320e\307t\320t\207\223\003\322\221\004\350\206\006\360\000/\000N\002O\330\231\004n\277\232\001\350\233\003\302\240\000.\305\2228\220\020\322\216\027\251\017/\320\377YZ\320Zf\320fg\177\320gv\360\000\000w\217\233\005\024\211\233\004\335\214\004P\250\233\001P\347\211\005\360\216\004\310\214\022UE\363\216\001E\357\216\005[\201\217\001[\302E\035b\217\217\001b\003c\333\216\004\376\004\331\216\006\037(?\320?W\310 \323\224:\257A\317\034\270]\310\341\227\016\245O,\320oVc\320c\324\223\001\320q\274\220)\375h\262P@\320@S\320Sgk\320k\250\221\003\354\226\006\3608\235\202<\177\035\270m""\310=\320X\324c\371u\255\222%\217\204\022d\320dq\320uq\302\222\n]\200\237\001]\002^\207\237\001w^\002j\216\237\001j\002k\225\237\001\351k\246\220\005\312DL\313\222\001L\003R\356\322\222\001R\003S\331\222\001S\003^\356\340\222\001^\003i\347\222\001i\003v\356\356\222\001v\003|\365\222\001|\003}\356\374\222\001}\003H\254\206\001H\004S\356\263\206\001S\004^\272\206\001^\004d\356\301\206\001d\004e\310\206\001e\004f\354\267\206\004\200m)*\342\234:0\260\002\375\260\347\233\016\034\230R\230t\240\3779\250K\260t\2706\300\367\021\300)\331!Y\320Ye\377\320ef\320fu\360\000\003\000v\331\227\005\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005\316aC\021\220\036\270\242\007\207\034\320u\374\263\222\003\200\037\026\220f\230J\240\377a\330\004\010\210\007\320\017w\037\230q\361\244\001q\230\006\333\244\001\376\347\244\003)A\320A[\320[?u\320uv\3600\315\2338\352!\377-\270\177\310o\320]^\375\330\315\245\001 \240\001\240\030\250=\021\000\t\330\004\021\220\3542\364\207\006P\246\221\004\216\234\004\325\232\004\345\222\004c\254\244\001c\314\216\005]v\272\244\001v\002|\301\244\001|\354\227\005\345H\360\227\001H\226\204\005\340\207\032o\240Q\266\354\246\001;\220\227\246\001*+\314\241:1\367\260\022\260\272\234\016\035\230b\240\377\004\240I\250[\270\004\270\177F\300!\3009\310M\277\211*\235Q\204\246\003\320\026&\274A\224\250\003+\373C\300\317\2459\320\0332\260\"\367\260M\300\373\245\016\036\230r\240\377\024\240Y\250k\270\024\270\377V\3001\300I\310]\320\377Zg\320gh\320ht\203\320t\220\205\003\325\244\004\203\213\004\350\221\004\262\207\013_\331\002\231\251\007\305\251\005,-\247\244:3\260\3732\260\323\244\016\037\240\002\240$\377\240i\250{\270$\270f\277\300A\300Y\310m\204\2471\320\203\026(\255\251\001\357\252\003\245\000\313\2419\241\004\0203\220\016\323\224\005\000\010\021\220\216\200!\321\240\004\350\240\237\004\353\215\004\265\221\013d\257\252\001d\002m\352\266\252\001m\325\233\005t\304\252\001t\002u|\250e\320\002\025\220V\2309\244\253\001\376\357\206\007\026\220a\220v\230Q\274\324\254""\001\002\027\013\210<\220\333\254\0010\3351\336\247:7\260r\341\252\016\320\021\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\247\031\320R\216\254\003\265\235%W\214\205\005,\354\362\254\001\250\256\00345\210\251:;\2702\376\254\226\016\320\021(\250\002\250$\377\250i\260{\300$\300f\317\310A\310Y\246\217\002\320\2433\320\026\3410\271\233\001\326\257\003\333\242\003\302\255\t\n\210+/\220Q\220a\267\235\0056\214\243\001\357\256\t\177\030\270\032\3003\300a\346\256\030\376\270\255\"[\320PS\320SY\200\352\222\002\360\220\003\322\242\006\353\236\013\314\235\004\324\242\004\317y\220`\232\257\010\265\244\001\221\230\002\300\250\t\227\200A\035\300\346\245\016\303\026\220\320\260\r\312\020\325\240\002\357\225\013Z\002^\226\247\004\360\000\000[\345\220\005u\202\261\001uu\300\213\005B\261\244\001B\003C\270\244\001oC\003D\003\374\260\016>?\242\262\n\374\200\202:\231\256&k\320QT\320T\277Z\320Z[\320[\277\222\003r\037\320r~\320~\360\253\003\200\244\004\327\004\010\371\243\004\214\246\004\201\235\004i\353\253\017\304\242\003\300\203F\276\256(\250\274\017\310\203?\247\260\010>\340\204\001\360\212\200L_s\270A\307\261\037\230Ls\320s\214\200J;@A\235\267\n\014\210K\234\267\t\243\207\022\3515\203\253\001\356\245\027Q\257\200\"V\320VN\344\264\003f\320f\304\236\"\242\222\004i\334\267\001ai\313\227\007\313\263\016\316\000\345\206F\320\033\373\250\004\377\023\320\023$\240A\240X\376\226\265\001\021\320\021\"\240!\240\3478\2501\366\223\001\374\250\017\013\320S\320\254\200.\305\243\022\322\252\004\365\234\004O\366\254\001O\003\335U\375\254\001U\003V\204\255\001V\003\331W\320\254\004\311\251\004?\230\233\240\001@X\047\320XY\340\203I\203\253\001}\232\204\017\331\037\017\360\000\000t\257\242\014\353\230\013\234\233\004\316D\255p\270\273\001p\002\376\225\004w\306\273\001wC\002x\241\253\017\327\227\001\350\273\003\314\263\004\177\361\273\001\323\177\002\203\237\004\306\242\004h\320\242\001h\004\343i\004\307\244\n\235\211<\223\246\002\320=O\037\320Of\320f\231\272\003\277\240\004\226\247\004\370\262""\227\006\263\271\r\307\252\017\033\320TW\320\377W]\320]^\320^g\243\320g\346\244\003\263\265\004\265\235\004q\312\275\001q\273\002G\362\260\001G\003_\371\260\001_\273\003s\200\261\001s\003J\260\244\001J\273\004K\267\244\001K\004W\276\244\001W\273\004X\305\244\001X\004g\314\244\001g\273\004r\323\244\001r\004y\332\244\001y{\004\177\341\244\001\177\004@\005\323\267\0017\005A\005\367\246\016BC\273\213I\300\244$\277+\320UX\320X\276\250\003h\003\320h\256\233\002\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004%e\341\277\001e\313\237\005\217\261\004m\364\244\017\313\003\261\r\312\210\007\326\257\006\201\301\0017\240\322\257\nU?\260(\270*\300F\340\242\001\250\2102\035%\247\266\004{\320R\203\200K\256\275\010\237@\330\246\301\013\304\n\321\222\0226\310\320\302\024\320\033\200\330\267$\200\200N\223\270\010\313\003\231F\360\213\014\215RE:\230\20065\251\264\004\013\320S\245\203K\305\t\320\370\211\002\306\267\t\217\222<\252\253\001\033\245\217\001\023\220\377>\240\021\240(\250!\330o\004\022\220.\200\241\005\021\220\250\253\017\016\304\205\014s\320s\304\277\003\335\274\004\257\253\013\246\246\004P\314\205\004\352\207\004\363\211\006\312\276\001\002\262\224\004K\370\271\001\351K\363\213\005\356\271\004]\215\272\001]\003^\314\360\251\013\203\214\003CD\213\224I\323\245$;\320\357VY\320Y\220\310\003i\320i\200\212\300\006\354\306\004\306\305\004\343\266\004\214\300\004\353\273\004\300\207\006\360?\000\000m\002n\002\204\246\016\302\014\034\356\220<\331\266$\033\320T\203\200K\224\267\010\237@\000\233\257\t\272\227<\225\251\004\323\262#\242\251\017\206\2021\376\265\004\351\231\004\232\270\246\004A\241\277\001A\003\326\253\004\233\204\004c\356\266\277\001c\003d\275\277\001d\003o\256\304\277\001o\003z\313\277\001z\303\215\005P\356\202\263\001P\004Q\211\263\001Q\004R\371\004\211\252\t\364\262\010CZ\320Zqw\320qr\253\277\n\016\210k\244\274\t\362\334\235\0227\302\213\027\206\303\001l\270,\300\016\353\302 {\320R\325\204\t\330\253\003\360\315\004\340\275\013\320\236\307\013\267\270\004""\266\277\004\257\277\004@\314\301\001@\0032\253$B\230\301\013\263\320\001DE\242\316\001\331\211E\372\324\274\034U\364\264\004+\320UZ\320\375Z\327\313\003j\320jw\320w\000\261\316\003\203\315\004\366\274\004\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\346\334\270\016YZ\326\235\023\351\230\016\025\240a\366\362\277\tT\260\256\241\003h\310j\320\361X\261\222\001\377\320;\253\241\014n\320ns\037\320sy\320y\300\321\003\231\320\004\213\320\013\240\311\261\004\300\311\004\377\273\004\376\302\004\301DF\233\305\001F\025\003\251\223\004H\330\237\017Y\350\310\003\217\322\006\211\307\n|\254\243\006\300\200IM\270\034\300Q\346\272%@\344\241\036\213:\275\214\013\300\307\004\214\273\013\204\242\004M\303\307\001\343M\003\370\206 \330\225\004\213\207\006\360\000\000\267R\004]\253\273\001]\004\333\227\004x.\271\273\001x\004~\300\273\001~\334\225\007\347\324\t\346\262\273\010Z[\243\203Z\307\2425o\320o?t\320tz\320z\304\322\003\355\323\004\200\212\325\006\350\323\002\263\316\013\371\300\004\370\307\004\355\211\004\361f\360?\000\000H\003I\003\352\322\016\374\000 \270\246\022\270\205D\267\324\006\246\236\t\261\236\n\220\272\324\017\373\244\014\320\313\200=\376\205\004\325\270\004\344dX\265\314\001X\003T\377\213\004\370\213\004u\312\314\001u\333\270\005w\240+\376\307\236\003Zr\360\000\000s\001\014\243\330\004\247\264\004d\002\311\265\n\350\205M\366\322\007\366\317\001C\330\004\320\305\t\200\201I\212\323\004\317\314\004{\266\333\001\201{\364\265\005\356\265\004\274\302\004\260+\223\273\004\275\216\004p\356\217\317\001p\003{\226\317\001{\003F\256\306\302\001F\004R\315\302\001R\207\235\005Y\236\333\302\001Y\004Z\004\375\327\n\245\306\003Z\360\336\303\003\360\315\004\323\233\004\312\237\004@\003\3606\374\274\335\010\222\201S_\270O\310?\320\025Z\356\332\001\330\317\341\005X\303\267\002\335\341\003\000\t\002\023\002\021\213\2045\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\277\360\000\000^\003m\361\321\001mt\312\321\005\203\276\004B\257\305\001B\004C\266\305\001QC\253""\305\005\342$\231\211\004c\322\305\001c\220\276\005]o\340\305\001o\004z\347\305\001z\246\211\005\335D\211\240\001D\005E\220\240\001E\005{F\005\236\333\n7\220\047\230\306\341\001s[\\\324\210\\\337\234\047U\320U\310\337\003\377e\320ep\320pu\320\017u{\320{\213\326\003\214\316\004\321\273\013\344\330\006\037\360\000\000a\002\332\244\004\343\204\004\220\257\004\032\334\204\013J\361\221\017\\]\323\212\\\300\322$\312\250\014\377q\320qv\320v|\320\001|\352\322\003\354\332\004\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004H\210\261\004\236\312\004\322\326\004K\303\250\013\265\345\001\\\274\307\003\310\236\342\004\226\327\004\256\224\0072\304\205Z\376\324\001\177\270\037o\310_\320\\\257\323\001\350\277\031\351\252\036\000\2333\333\326\004\314\244\004\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\350\264\230\013\207\206\004\221\305\004I\313\314\001I\004T\256\322\314\001T\004_\331\314\001_\214\247\005m\356\347\314\001m\004n\356\314\001n\004o8\335\314\004\212\326\004\263\300\003]^\360\306\215[\363\324\004\217\020\320\020!\313\240\005\310\255\013\214\251\036r\037\320rw\320w\277\333\006\350\347\004\247\331\013\036\260\326\006\360\000\000c\271\333\014\201\216 \357\210\004z\347\251\004t\365\333\001t\003u\003\261\321\n\342\321\274\003]\336\314\003\323\275\007\334\200_\016\270n\003\310A\262\253.\2403\335\333\004\200\277\004\274\321\013\377\214\007\017\000\000@\003\375\257\004\312\321\004\303\321\004\360\335\004\275h\226\336\001h\003i\003\316\323\016]\344\216\343\003\302\223\007.\367\214Z\323\331\001\017\270\177\003\310a\225\307\031\252\2034\211\327\004\233\340\004\350\237\013\330\272\013t\314\314\004\230\245\004e\263\340\001e\003k\272\340\001\201k\355\323\014\302\215\004\310\256\004\356\237\023\313\332\004\322\307\003^\371_\343\226\\\204\2563s\320sx\320\301x\270\273\006\364\356\004\272\340\004\302\331\004\266\224\007\000\000\003d\002\240\326\013\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010\363_`\342\230\\\263\2473t\320ty\003\320y\334\251\n\225""\346\004\276\333\004\263\352\004\347\305\004\342\212\013\014\272\264\004\245\227\022N\003\214\317\016\200 \346\204[\374\245K\240\327\200A\352\270\022\276\332\013\225\323\004\213\224\004D\317\332\001D\273\004O\326\332\001O\004Z\335\332\001Z\273\004j\344\332\001j\004p\353\332\001p\273\004q\362\332\001q\004r\321\246\025a\302\213\242\002,\245\226Z\243\315\026\360\365\006\265\315\017[\320\357X[\320[\212\353\003k\320k\007v\320v\371\361\003\365\365\004\377\361\004\251\363\004\243\357\004(\307\351\013\273\347\004\340\217\013N\330\351\001N\332\273\005\336\331\004\350\316\351\013\260\251\004\316\351\004\177\211\352\001\177\003@\236\271\335\001@\004A\004\232\316\013\374\347\003w9x\316\245\036\265\264\014\025\240g\375\363\001\234\310\017~\362\245\005e\320eo\320o\330\323\001\000\252\370\023\265\240K\236\334\004\202\352\004\357\337\004\333\330\004\245\334\013\254\315\004\340\305\251\013\243\354\004\254\334\004\245\334\004\243\215\006\360\000\000\267i\003j\224\241\017|}\263\372\n\013\234\301\372\005\210\246\027\026\240u\260\372\001\324\312\r4\377\300x\310z\320Y\\\320/\\d\320d\337\247\003t\2365\303\322\001qA\312\325\001\251\327\010\350r\\\320\\\241\364\003?l\320lw\320w\363\372\003\272\361\004\000\373\253\013\270\354\004\274\351\022\212\333\004\270\354\013\263\250\013\337\300\004\212\333\004j\333\217\004n\377\356\001n\272\256\005p\003\215\323\016\177\360\004\000A\002B\002\317\200p\3376\260b\270\001\264+\320\021\377#\2402\240T\250\031\260\377+\270T\300\026\300q\310\377\t\320Q\\\320\\`\320\031`\232\341\003\271\371\001\320{\211\361\003\322\254\013\365\311\013\000\267\365\004\364\274\004\235\361\004\375\347\004\226\361\004\360\344\004\302\231\006\217\363\001@\366\344\005\237\341\004\360\344\004\235\361\004\323\224\006\376\377\004+\320\304\001\334\236\372\002\301 C\002D\320\200q8\270\371\002\325\372\001\256\334\t\320\021%\240R\377\240t\2509\260K\270t\377\3006\310\021\310)\320S?^\320^b\320b\317\376\003\354\357\006\000\277\366\004\370\367\004\376\377\004\243\347\013\266\314\022\341\301""\004\340\224\013\263\246\013`\336\363\004\271\263\004\376d\215\227\006\244\350\001\003v\204\204\005\271-\276\375\001\300%D\002E\230\203q9\363\270\022\206\371\001\272+&\240b\250\177\004\250I\260[\300\004\346\300\001\377\3109\320T_\320_c\003\320c\352\377\003\326\357\006\344\351\004\214\364\004\227\361\004\373\373\004\000\327\342\004\206\355\013\220\312\004\246\366\004\310\263\013\346\255\004\330\213\004\204\225\013\316\355\250\031\320\026.\232\371\001\210\204\005E\002\275F\340\205q:\270\"\270\207\211\014\320\377\021\047\240r\250\024\250Y\377\260k\300\024\300V\3101\377\310I\320U`\320`d\377\320dj\320jk\320kx\246\352\006\276\304\004\345\261\007\000\000J\002\276\304\013\370\303\314\022\333\366\004\216\266\006\360\000\000B\003h\231\216\004\202\313\004\237\345\004f\215\371\001f\003\376\250\004\224\246\345\004\317\354\004x\224\211\005/\302\366\001\320\206\005z\005\001\314\256\007(\277\250\034\311\215O\224\3135\330\243\023\231\260\004\000\342\270\004\223\265\013\247\362\004\204\326\004\366\325\013\306\315\004\300\373\004\321\311\004]j\330\373\001j\003q\337\373\001q\222\357\005\370\276\373\006\272\373\003\257\370\007\360\006\000\005\017\373\320\016\361\363\001q\330\004\007\200\377x\210s\220!\330\010\t\377\330\004\t\210\021\330\004\022\177\320\022\047\240q\250\004\213\375\001\267\025\220Q\307\204\002\200\001\036\024\017\273\210q0\004\020\320\020\316\375\001a\276\267\376\004\360\n\000\005\0269\002\320\377.@\300\001\300\027\310\001\356\313\306\001\020\220\001\371\345\001\005\210V\377\2201\220E\230\021\330\010\376\220\253\001\001\230\026\230q\240\005\317\240W\250A\244\320\001q\002-\320\277->\270a\270q@\r/\377\320/B\300!\3001\300\365A\336\371\001Q?\014\016\210g\220\377Q\220f\230A\230U\240\227\047\250\021\357\303\001\025{\010\324\377\005\360\317\014\000\005\020\267\001\215\000\220\031\303\230!\226\337\003\t\001\370\377\003\234\347\002\210q\373\320\020\306\344\002\340\004\022\220)\317\2301\230A\020\004\276\003\016\220\277a\330\010\020\220\013\024\002\010\377\013\2104\210z\230\021""\230\377\047\240\021\330\014\024\220A\377\330\010\014\210G\2201\320\377\024$\240L\260\001\340\004\277\r\210Y\220a\220\353\"q\272\025\004\220K\002\t\220\021!\010G\277\2506\260\021\260!\217%\035\177\240g\250V\2601\260L\000\336\244\003&\240\001\240\262 \013\210\3675\220\t\341\373\002\014\020\220\002\377\220%\220s\230%\230q\357\240\001\240\024\352\213\0027\260\"\357\260G\2701\343\345\0021\340\004\347\016\210i\225\325\003\330@,\250D\377\260\t\270\021\320:L\310\327C\310q\304\n\n\202a\013\210\3777\220#\220Z\230t\240\3471\330\014\374@\244\005I\230R\373\230q\303\001W\220A\220T?\230\025\230a\230q\337\374\001\013\001}Q\220%\003\2202\220U\313 \3771\330\004\024\220D\230\005\343\230Q\323\351\003\316\376\002\360!\022\220\037\377\240\001\320!3\2601\320\3174D\300A\333\271\001\336b(\250\262\240 \005\313!\322\001$\230\327 \021\372\223B4\237\352\001\030\230\t\240\021\367\240$\240\355 \032\230+\240\367Q\240d\213\366\002\010\026\220cw\230\021\230)\002\032\230#j\000\227d\240!\315\352\001s\316@6\000\200\375\001n\002\320\021*\250!\320\377+=\270Q\320>N\310\177e\320ST\320TU\222\346\004\3772\260!\340\004\013\2109\374\317\002\230b4\210q\220\003\220\3571\220G\230\365\337\002\007\200w\373\210c\236A\017\210t\2208\376\201`H\240A\330\t\021\220\315\023\336A\017\210\217 \261\002\001\330\377\010\030\230\013\2401\240D\357\250\010\260\001p\006+\2501\377\320,>\270a\320?O;\310us\000\320UV\213\347\004\377\000\236b\024H\230F\240\222\000s\003\025\373\220d\326@x\240x\250y\271\270a\000\201\0011\220C\344\330\001\3409\004q\005\304\311\001A\230T\331\353\001\351\006\367-\250Q\362\205\002\320AQ\320\353QV\202\376\002X\205\350\0045\260Q\256\334\024J\230f\203\366\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007n\203H\020\220\004\346\204\001\020\220\255F\375\031\315\206\003\021\200\001\360\020\000\377\005\010\200u\210B\210a\373\330\010\242\207\002\013\2101\210A\377\330\014\020\220\005\220_\240\265F\220A<\206\353\001\330\014\330!2\357\220Q\200\001\200\231n\230?\250\000\210\365\016\223\2764""\223\367\004\245\374\004\257\343\004\344\372\004\355\224\013\274\276\031\005T\365\372\001T\361\372\005\301\234\006\350\341\r\247\233p\336\347\002\357\016\320\016\037\215\362\007\030\230\022\377\2304\230y\250\013\2604\200\270\323\007\306\263\037\200\375\004\236\355\022\232\342\013\302\352\006\311\375\001\002\005D\221\375\001D\303\252\005\301\333\004\267\316\023\236\322\007\322\277^\0011\330\340.\233\300\023\344\362\004\252\300\013\370\263\004\332\354\004\323\354\004\000\327\335\004\355\273\006\271\337\r\307\301\\\326\224\002\373K\276\2604\315\375\004`\356\260\013\233\331\004\313\335\004\304\335\004\231\233\013\177\002\361\332\r\002\367\250^\001\337\344\r\344\316\036\274\251\027\331\353\004\317\251\013\232\350\004\010\355\306\004\225\311\004\266\260\013A\276\251\016\344\351\025\207\244\016\366\312\027\000\273\334\001\365\243\025\243\356\002\345\206\013\323\200!\273\241\030\323\246\004\246\3166b\237\370\0041\223\213\025\243\357\003\206\357+\320\033\264\2001\007j\320j\230\326\006\230\372\004\354\307\004\260\250\004\345\307\013\001a\202\326\016\264\244p\240\241\002\265\212\013\276\307\022\234\277\014\314\316\020\200\367\376\004\203\374\004\273\357\013\231\257\013\201\343\004\245\302\013\331\324\004S.\233\374\001S\003Y\242\374\001Y\352\214\007\263\210\032\340\353\246c\362\233\002\366\377\n\227\334\022\243\332\tt\320t\200\305\272\020\254\376\004\313\232\031\221\353\004\373\326\013\264\351\004\347\316\004W6\304\376\001W\003\316\304\013_\003\321\263\r\207\251p\034\373\206%\211\325\tu\320u\334\265\020\321\334\004\251\205\022h\255\355\013\330\351\013\262\323\004Q\246\364\001Q\003\246\314\004p\361\251\004\357\277\006\200\335\r\261\253p1\260\021\223\254\014\377\035\230b\240\004\240I\250\367[\270\004\245\232\0029\310K\320AW\220\261\014\202\266\024\272\327\004\273\366\004\235\306\013j\221\375\001\201j\333\347\005\202\341\013\210\352\004\213\356\004\362\205\004\220\302\013a\226\217\254\005&\240\303\236\006&\300\313\010\352\255e!4\337\255n\207\352\004x\321\377\001x\002\230\330\004""\307\316\004\220\336\313\004\271\277\004\302\304\004\300\277\004b\266\256\020\300\200o3\373\2601\363\260\014\037\240\002\240$\377\240i\250{\270$\270f\377\300A\300Y\310k\320Y\377]\320]c\320cd\320\177dm\320mx\320x\344\265\030\000\253\277\004\261\263\004\205\304\013\342\343\013\373\260\013\362\320\004\212\206\004\206\266\004~\242&\360\000\000b\003c\363\260\005g(\250\001\250\243\005\362\202o4\260\215\251\016\377!\240\022\2404\240y\260\377\013\2704\270v\300Q\300\377i\310{\320Z^\320^\377d\320de\320en\320\017ny\320y\256\315\003\327\356\013\322\375\004\260\340\004\000\222\350\004\245\277\013\321\336\013\266\226\013\274\313\004\256\311\004\231\350\004\215\363\004\334\365\342\006\235\270\004)\250\021\271\200w5\260\375Q\225\263\r\"\240\"\240D\250\377\t\260\033\270D\300\006\300\377a\300y\320P[\320[\377_\320_e\320ef\320\177fo\320oz\320z\343\315\003\300\273\350\013\311\365\004\337\272\004\311\365\004\326\277\013\203\341\006\360\000\207\000o\002\331\325\013\315\352\004\275\217\004\226\345\022e\342\332\265\005*\367\353\001\230\263\003\331\207o6\260a\370\346\264p\213\370\004\314\366\006\360\000\000}\002`\321\347\004\336\237\004\226\270\004\321\347\004\342\306\004f\003\300\265\017\356\215\212o7\260q\375\267\r$\240B\377\240d\250)\260;\270d\377\300&\310\001\310\031\320R\377]\320]a\320ag\320\377gh\320hq\320q|\003\320|\250\357\003\337\345\004\212\370\004\337\370\004\303\272\004\355\345\004\000\307\277\013\270\372\004\255\370\004\206\270\013\352\341\004\267\374\004\302\370\004\244&?\360\000\000f\003g\302\272\005\237\241\002\002\360\202u8\257\272\017\226\267d\242\344\004\276\272\004\314\374\004\215\302\004\200\350\376\004\364\322\004\355\262\004\360\315\006\361\301\004\353\267\010\371\216o9\r\270\212\222\014\320\021\206\267d\312\354\004\225\320\022\354\226\004\010\216\320\031\331\267\n\261\221o:\333\274\017\366\266d\223\304\031\247\344\004\246\223\304\031\320\026\313\267\010\351\223o;\313\274\017(\377\250\002\250$\250i\260{\377\300$\300f\310A\310Y\377\320Va\320ae\320e\006\266\332\001\320l""\243\361\003\375\370\004\320\377\004\233\316\004\260\361\004\000\207\367\013\211\325\004\373\226\013\276\251\013\222\272\013\266\231\004\202\236\004\351\363\004\304\245\344\004\325\267\004k\246\304\005\220\243\002\272\215\017\r\210\047T\220\026\340\263\003\364\310\t\021\323\357\026\325\255 \377Q\300l\320RS\320S\277b\320bm\320m\336\352\004\320\303{|\361\254\032[+\361\353\001\237\252 a\300\375|\263\263\002c\320cn\320n\216\265\341\004\320|}\336\251\032Z-\275\255\"q\373\310\014\304\263\002d\320do\320\035o\300\340\004\320}~\354\372\003\341\254\024\344\200-\370\201\303\002\336\256\013\222\337\017\001\310\034\320U\347V\320V\312\343\003\315\334\004\320~\177p\336\273\016\262\233\t\356\201-\310\253\"\021\310,\336\264\002\277f\320fq\320q\277\326\tA\314\214\253\033\374\202-2\260\235\263\016\322\320\017Q\310\377l\320Z[\320[j\320oju\320u\232\227\021E\002\350\312\017\360\351\2009\366\232\002\215\262\013\352\232\017a\310|\320\273[\\\210\343\002v\320v\375\225\021F`\217\005\377\231\024\252\205-\333\231\002\245\263\n\320\021\317\231\017\377q\320P\\\320\\]\320\031]\215\316\003\273\313\021G\002\336\230\033d2\231\312\013\316z\033t\320tm(\352\373\006\r\210\356\224\323\n7\240!\213\372\tU\260(\243\270*\310\310\001\362\322\027\301\263\030%\350\265\007X\233\320X\302\256\001\320_\315\313\003\333\323\001\360\217\000\000w\001\346\373\004\204\372\004\325\303\022`\341\002\254\263\016\315\305\t\262\014\206\377\0226\310\021\376\214\2002$\260f\270A\270Y\177\300k\320QW\320W\223\374\001;\320^\305\226\003t\320t\225\377\003\256\375\004\004\227\344\004\233\267\022_\254\022\255\376E\224\255\032\367((\226\376\230\272\0325\270\006\270a\270y\017\310\013\320S\200\203@\350\271\010\233\371\t\337\215-\374\354\312\002\333\273\t\022\320\022#\2401\363\240H\240\327\001\347\300\001B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310!\310<\320\377WX\320Xg\320gr\303\320r\271\340\r\304\333\004\367\344\004\345\316\022j\002\360\234\342\n\246\304\003\207\2009\344\252\003\320\021\"\240w!\2408\224\324\001\024\320\024\227""\311\001\355h\220\317\001\021\220\345\252\017A\310\\\007\320YZ\304\365\002\323\207\024\373\322\013\254\320\004\300\374\004X\264\234\006\276\334\004\261\252\004=\230\204\304\0012\313\251l\370\313\301\003\223\355\t\237\355\t\017\320\017 \240\315\001\246\304\001\330\004\251\355\013\340\301\022T\320\363TZ\306\215\002\347\220\003r\320rx\377\320xy\360\000\000z\001\000\243\337\004\275\243\004\263\364\004\252\337\004\210\264\004\244\346\013\325\236\013\376\361\004P\253\346\004\340\301\022\230\320\004\315\315\004z\201\375\001z\247\337\007\277\360\000\000A\004L\256\372\001L\253\004W\265\372\001W\245\360\005e\303\372\001e\253\004f\312\372\001f\241\342\005|\330\372\001|\273\004F\260\367\001F\005L\267\367\001L{\005M\276\367\001M\005N\005\321\302\n\377<\220|\240;\250a\200\376\275\313\002A\330\014\023\2206\2309\021\000\004\003\0107\230!\030\001\000\004\3478\2301\003\010\025\0045\230\001\3564\010;\230aI\001:\230Q\340P\001*\004X\000e\001\234\313\002\330\014\r\377\33046\260d\270!\270w5\300\001|\001\017\210q\000\0043\220\007\275\313\001\016\003t\220V\000\003\005\372\217\311\001A&\003u\220A\220S\375\2302\004u\220B\220d\230\375!@\003w\220a\220t\230\2678\2401P\002\320\017\244\317\001d?\250&\260\001\260\021\343\001\277\307\004\327#\2401\261\315\001N\306\314\001\330\014\377\033\2305\240\014\250A\250\237[\270\001\270\021\237\307\001\331\315\001.\377\250\001\330\020\024\220H\230\277A\330\024,\250G\225\315\001\340\177\020(\250\007\250q\260\231\311\002\375qB\n4\320\047B\300!\357\360\006\000\t\347\316\001\010\014\320\357\014\034\230A\321\314\001U\230-\367\240q\250\232 \017\210\177\230\177g\240U\250!\330\024\212\321\001\377x\240q\330\020\031\230\026\373\230w\305\342\001\250a\330\021 \363\240\007\231\340\002\021\013y\250\002\250M\047\242\316\002\014\020\224#\352\316\001M\221\315\001\376\370\316\001D\320\030.\250a\250\363q\330\026\005\177\001\023\220$\220\377l\240\"\240A\330\010\013\237\210:\220Q\220\237\304\001\332@5?\230\010\240\005\240Q\377\310\003\232@\346\377\311\002\020\027\255 \354\317\001""\014\021\220\375\030\335\314\003\230v\240Q\340\014\377\020\220\003\220:\230Y\240\375a\257\341\002\020\025\220X\230Q\373\230j\371\005\r\320\r\036\230\375a\313%H\230K\240q\250\375\013\270\317\003\013\2106\220\027\320\371\030\274\252\001\231\320\002\r\023\2207\320\251\032\376\254\001\251\320\001\340\215\004g\232`\013\217\022\220!\330\033\001\335a\363\320\002\330\377\020\021\330\024 \240\005\240\377[\260\004\260A\260V\270\3751\314\312\002\200A\330*A\320\377AX\320XY\330\010!\333\240\035\356\002\010\035\335`\010\"\273\240,\010\003\032\230,\251\000x\377\250q\330\010\036\230o\250\377Q\250h\260a\330\010\034\377\230G\2405\320(<\270\367A\270[\312\230\002\330\010\"\320\377\"3\2601\260H\270A\256\254A*\250\021\016\0028\371A\270\337(\300)\3106\241\217\002Y\320\357Ya\320a\266\260\001\360\000\000\003y\001\356\337\004\331\371\004\327\332\013\313\325\004\315\262\004\351\360\004\330\271\372\004\270\374\004\311\307\004E\003\217A8\220\3773\220a\330\014\037\230q\377\320 :\270)\300<\310\377y\320XZ\320Za\320\375a\254\261\001\330\010%\240^\260\3778\2701\270A\330\010\016\277\210k\230\027\240\001\003\003\021\376\332\314\001x\220|\2402\240X\177\250Q\200A\330+,\333\2001O\250\017\260q\337\316\001\373\013%\254a\376\225$A\260X\270Y\300f\377\310F\320RT\320T\\\037\320\\h\320h\242\221\006\266\344\013\311\366\004\330\272\351\004\345\250\013\326\327\004i\002\346\r5\260\367Y\270l\234\340\001U\320U\\\373\320\\\224\303\002\010 \240\t\250\231\030\214\324\003\242\200Q\320(\336B\360M&\353\240Q\216b4\354`Q\260h\377\270i\300v\310V\320S\377U\320U]\320]i\320\001i\332\224\006\252\353\013\342\375\004\210\300\004\241\341\013\272\273\006\335M\3376\260i\270|\313\337\001V\320\377V]\320]_\320_`\316\313\204\001\032\2508\362\325\003\241\200S9\270\327\021\270!\347\204\r\047\336\324\001\"\320\377\"5\260Q\260a\260x\377\270y\310\006\310f\320T?V\320V^\320^\345\303\t\357\263\013\340\230\370\004\244\350\004\320\340\013\204\273\006\324\204\r7\260y\373\300\014\372\336\001W\320W^\320\377^`\320`a\330\010\"\317\240+\250Xy\001\216""\204S\320(\347:\270!\272\207\001\340\206\013(\240q\372\374\206\0026\362\000q\270\010\300\t\377\310\026\310v\320UW\320\377W_\320_k\320kw\007\320wx\353\206\002\262\263\013\206\340\004\321\354\004\377\337\013\372\233\352\004l\324\204\0168\270\t\300\034~\334\245\001X\320X_\320_\206\360\001\177\330\010#\240<\250x\371\205\003\372\217\204S;\262\207\003!\320!2\260\315!\302\207\001\330\010\002\007\235\214\001)\250\365\001\377\210\0027\201\207\001\270\030\300\031\377\310&\320PV\320VX\377\320X`\320`l\320l\000\360\220\006\333\351\013\372\305\004\343\267\013\313\344\004\237\354\004\344\372\004\333\351\004\270\275\321\004\342\351\004\241\370\007\010\013\210\366\210\t9\377\270\031\300,\310i\320W\277Y\320Y`\320`\260\355\001\330?\010$\240M\260\030\262\204\003\360\210\017\377y\230\014\240B\240h\250\377i\260|\3002\300X\310\006\320\2107\320(\250$\206\213\013\335\200C\215\251\013\276\274\006\221\330\277\200>\300\212?\213\215\003Q\333\214.\346\366\002\000\007\000{\001\351\264\013\202\330\004\323\343\004\256\372\004\263\360\004\374\203\274\006\366\213\201\320(=\270Q\270\315a\364\216\r+\250\232\211\003\245\211\002\2708\353\3009\365\214\001X\217\216\002b\320b?n\320nz\320z\267\367\003\246\355\013\300\260\376\004\356\357\004\266\367\004\324\302\004\307\273\006\342\216\r;\270\3779\300L\320PY\320Y\277[\320[b\320b\354\276\001\330?\010&\240o\260X\226\003\247\214S\300\362\004\327\217\001\363\220\006\271\200<\340\366\004\275\2008\340\010\337$\240F\250*\360\343\001\014\210\177E\220\025\220a\220z\321\344\001\207\033\2301\227\340\001\264\200`\362\346\003\205\223\014,\363\2501\242\223\002\276\213\002\270H\300I\374\216\217\001\253Cc\320co\320o\007{\320{\225\302\003\356\356\013\340\333\004\235\311\004\331\333\004\370\312\331\004\271\235\006\362\222\r<\270I\300\\\377\320QZ\320Z\\\320\\\367c\320c\310\300\001\330\010\047\320\377\0477\260x\270q\300\0014\310\214U\246\351\001\021\376\224\r.\250\210\221\003\254\225\001\337Q\270h\300i\232\215\001[\320\377[]\320]e\320eq\037\320q}\320}\200\366\003\207\263\013\271""\375\004p\350\360\004\247\237\013\216\322\006\354\224\r>\270i\350\260\001\356\373\222\003e\320e\332\275\001\330\010)\237\320);\2708\360\351\002\251\224R\320\035(\363\004$\240N\232\215\005\002\006\276\232\001\000\305\200<\374\367\004\322\355\004\320\303\004\334\333\004\310\335\004\366\374\004\267\310\004\354\244\360\004\317\317\004R\003\203\201!\340\010#\317\2406\250\031\272\352\001\254\205\n\032\230\341!\310\347\002\000\034\306<\331\215\005l\270,?\300b\310\010\320P\246\2159\366\351\003f\347\231\0142\260\360\231\003\200\204\002\300(\247\370\001\356\333\324\003a\320a\361\225\001\360\000\000\003v\001\344\225\013\275\306\004\351\372\004\316\377\013\256\340\004\212\363\004\234\326\324\006\335\231\rB\300)\276\246\001\340\217\003i\373\320i\357\270\001\330\010-\320-\277C\3008\3101\310\230\231T\3203(H\214\360\002\352\233\0146\260\363\227\003\227\354\002\363\300h\376\220\001\253\315\003e\320em\003\320m\366\243\003\321\303\013\243\342\013\235\372\004\375\321\004\226\372\004\270\276\340\004\247\377\006\340\233\rF\300i\231\262\001d\377\320df\320fm\320m\377o\320op\330\0101\320O1K\3108\250\354\004\324\233\035>\275\215\001\234\323\235/\361\233\002\014\300A\361\235\r\325\233 |\203\320|\320\312\003\225\367\013\312\364\004\245\374\004\334\205\022q\342\253\233M@\215\212\001\316\2371\334\237\001\034\300Q\340\314\2330\262\200I\303\233<\305\2006\222\230\001L\310\001\000\355\241\r\350\227!\342\311\003\213\300\004\316\342\004\375\320\004\363\354\004\377\336\004\330\202\232\004\377\336\004\226\373\004t\002\241\225LB\300\341!\273\2416\310\2043\247\215I\272\241\301\267\013\360\000\000x\001\205\354\004\256\234\013\000\240\372\004\273\376\004\245\253\004\303\351\004\302\365\004\226\347\004\253\342\006\207\273E\010\215$\315\2116\315\273\001+\275\240\013\257\273-\332\337\n\323\275\004\000\322\360\004\245\356\004\205\363\004\306\263\004\251\365\004\324\376\004\216\342\004\376\346\004\260\342\367\004\376\346\004\352\353\004\205\347\004W\003\337\220N\310\372\254\311\001.\225\221\013 \240\r\250Q\313\250a\320\205\001X\313\277\002\354\303&Z\300\177q\330\010\047\240~\260\370\277\001\255a\204\263\001n\260\372\301\001Q\372\303\037j\377\320jo\320ou\320u\007w\320w\207\354\003\373\317\004\220\264\004\216\300\004\307\365\004\240\206\363\013\220\304\013\2462\271\351\013\225\314\004w\232\377\001w\273\003y\241\377\001y\003z\353\207Ff\377\250G\260?\300,\310b|\206\274\002\236\326\001\200A\33001\342\306\010\374\255\2013\301\302/f\320fk\320k?q\320qs\320s\254\370\003\335\262\004@\256\377\004\210\375\004\372\374\013\230\321\004\310\372\004\217\354\004E\243\377\001\333E\003\201\375\004H\003\306\302EV\250\3077\260!\331\200C\235\301\004\233\234\007\330\010w%\320%\231\301\001x\270q\312\314\001~\223\301\032h\320hm\320m\245 \007u\320u\360\365\003\243\347\004\320\236\013\301\372\013\362\360\004\200\216\370\004\360\241\004\246\363\004\301\356\004\321\351\004\354\374\004\235\234\022t\000\270\311\016\274\301/\301\277\003\242\203U\275\265\002\277\313+\270\206\026\236\213\013\020\252\370\013\322\356\004\366\365\004\355\236\022L\255\313F\260\203H\326\2750\377k\320kp\320pv\320\001v""\235\306\003\236\354\004\211\375\004\203\326\013\375\277\004\364\365\004\276\356\004\000\346\365\004\361\303$\357\2756\323\200O\224\206\t\210\251\t\317\243\013\250\300\0334\366\200D\237\270\022[\256\330\001[\003\327\372\004\226\213\022\245C\274\330\001C\277\330\005\325\243\004^\321\330\001^{\004`\330\330\001`\004a\004\247\233F\014\276\213\016\315\265\001\320y\276\302\003\302\316\004\303\263\006\346\213\001\001F\310\231\001\320\323\006\262\2137\262\262-\316\213\035\324\303\004\303\373\004>\342\313\006\360\000\000l\002\306\273\004\356\246\004\272\340\311\004P\271\333\001P\003R\300\333\001R\213\003S\243\213OG\255\220\001\355\200:\324\2662e\377\320ej\320jp\320p\017r\320rz\212\241\002\354\375\004\211\336\004\330\200Np\353\3235\225\216\006\347\200?\276\320\003<\300q\244\330\r\370\331\215:\201\216\013\236\310\006\360\000\000o\002\324\346\255\004\206\261\004M\205\340\001M\302`\360\000\027\000S\003\215\261\004V\267\215@\275\330\003\240\047\363\320G\216\323\003\223\203AL\320PQ`\266\273*\263\203$\262\225\013\327\275\006\236\343\001\002H\256\342\001\303H\003\324\370\004\220\373\004\266\263\004\300\225\004a\003\354\274\330E\367\222\00523\200\335\010\"\240-\006\223\340\003\035\230\326\227(\351\2242\263\222=\210\373\004\343\265\004\032\375\304\004J\323\224H9\260\242\343\001\334\200@\351\3220\207i\320i\270\217h\211\325/\362\205\005\236#3\3414\303\341\010\215\243\010\231\234(\253\333/g\320gx\241\234\023\225\224N\300\3335V\250:\260\332\341\001\210\233!\320\205\006\327\205\010Y\267\335\002\323\343\"\325\335$\007\356\373\333\007h\320h\200\200\234W\250I\364\327\200E\327\331$\047\207\346\010j\320jq\037\320qw\320w\227\356\003\217\342\004\226\356\004\000\210\356\004\230\340\004\212\326\004\201\322\004\217\334\013\226\236\004\217\356\004\343\214\004sN\003\325\331E\233&I\320I\357\373\001D\253\350\010\327\334\001\021\265\316\001\376\211*\356\245\003[\312\214\020\016\255\342\032g\320g\231\231\027\240\372\004\266\360\004\317\223\013D\314\265\006\276\250\001\002\227\301\004\243\320\004\325\245""\004\\\244\360\001\333\\\003\236\301\004_\003\257\342EV\250\373;\260\220\360\0013Q\320Qt\237\360\000\000u\001\364\337\004\200\260\004Z\352\234\361\001Z\245\264\005]\225\361\001]\004^\371\004\353\242>\237\310\002\320HY\320Y\037o\360\000\000p\367\317\005\205\373\004\311\332\004\366\267\214\004B\003\235\310+i\320in\377\320nt\320tv\320v\000\361\377\003\326\276\004\343\373\004\243\351\004\263\341\004\276\226\004\361\303\004\210\266\004\255O\376\362\001O\004\337\362\022r\232\363\001r\273\004@\360\362\001@\005I\367\362\001I\273\005P\376\362\001P\005V\205\363\001V{\005X\214\363\001X\005Y\005\270\337E\006\377\243\00545\311\346\001\370\217\004\322\257\010\373\210(\362\351$qw\230\350\007\333\212g\374\3515W\250J\301\204\002/5J\310!\202\250B\036\366\226\017\237\354\032\230\260\250\026\250\340\013\321\232\20778\333\252\021\315\224\nW\000\344\272\002\317\362 \260\3600\320\233\017\375\352\004\200\306\004\221\375\004\371\372\004\370\373\354\004\335\336\004\344\317\006\360\000\000t\002>\250\262\006\360\000\000@\003\353\302\013\314\313\004\364\371\302\004\362\372\004g\322\226H5\260\t\270\000\347\370\001\202\201I\207\3611\266\255\017\274\365\004\274\322\004\274\365\004\317\353\004\000\323\355\004\252\363\004\331\262\004\303\365\004\272\375\004\261\227\004\247\335\004\235\253\004\255_\250\375\001_\003\233\316\004g\266\375\001g\003\003h\240\255H\362\200Z\354\255\t\233\313\013\253\206,\207\201Q\272\200\310 K\374\377\001K\004Q\374\377\001Q\346\365\320\005T\004\265\364?\223\256\005E\260\031\373\270/\236\323\001W\320W]\320\357]b\320b\257\336\001\200A\330\374\220\204K\220\2302l\320lr\320r\007t\320t\204\347\003\213\355\004\223\330\004\252\363\004\222\355\004\320\255\361\004\221\367\004\226\340\006\341\340\001\002\310\217\006\360\000G\000B\003\270\246\004\236\306\004\365\265\013h\374\323\001\007h\003i\236\221H\327\206S\310\365/\270\263\017\342\355\004\000\356\342\004\365\363\004\351\355\004\351\375\004\351\367\004\226\304\004\362\340\004\351\375\004\240\203\321\004\315\345\004\253\223\004\312""\263\004\237\207\004i\313\326\001i\343\003j\205\244H\246\211S\313\366\004$\320$\0015\236\273\005\227\266\013\264\366\033\351\223\017\256\354\004\303\345\004\266\362\004\000\265\354\004\305\360\004\316\370\004\370\226\013\330\323\004\321\366\004\334\253\004\356\256\013\232\265\320\031I\247\331\001I\004\301\224\004\256\207\004R\346\217\323Ff\250\252\207\001\374\322\002T\320T\377Z\320Z_\320_h\320\003hi\335\206N\225\266B\303\344\004\337\320\004\302\363\004\312\344\004\220\271\357\004\253\367\004\355\311\006\224\374\001\002\316\371\004\325\273\004S\326\217\334\001S\003\203\232\004c\235\334\001c\003\004\322\204\004\250\334\004l\262\266H\206\217S\301\266F\214\360\004\242\326\004\000\206\362\004\223\360\004\246\351\004\207\370\004\261\252\013\242\276\004\374\336\004\272\303\004m]\352\336\001]\003\224\326\022m\003\214\366FCV\250\370\200Z\340\266W\231\201Q\214\212\004o\345\341\001So\003\235\334\004\240\315\004D\345\341\001D\344\217\005\335W\363\341\001W\004Y\372\341\001Y\004\335c\201\342\001c\004l\210\342\001l\004]x\217\342\001x\004~\226\342\001~\214\235\005\003A\005\222\267H\202\220\022\240\303\n\227\365\004\276\330\004\222\375\013\373_\002\275\220\001M\320Mb\320\373bc\244\230L\014\300K\310q\300\346\337%\335\355\032\314\230@\231\312\004\321\205\013\336\364\006\360\000G\000R\003\336\307\004\205\216\004\204\321\022G\336\345\001\241G\200\335\005\350\242\004\353D\206\241\004o\201\346\001o\272\361ED\202\241\001D\005J\211\241\001J{\005L\220\241\001L\005M\005\276\261?\374\371\223\032\320\202,N\320Ne\320eO~\320~\177\253\234G\241\232\003\034\312\373\001~\276\311\001\330\010!\320!2\333\370\005\300\362\226k\333\370\004\321\306\004\253\246\004\240\277\004\354\234\006\360\000\327\000g\003\206\325\004~\331\351\001~\003t\337\206\004\365\340\004L\331\351\001L\004V\340\351\001uV\307\351\005k\356\351\001k\004q\365\351\001\365q\316\351\005t\246\227L)\300<\310\235r\361\253\002\\\320\\\216\376\001\360\227\001Q\230\377\350\002\224\277\017\355\2373\320(\305\334\006\334\354\t#\377\240>\260\021\260(""\270!\374\207\374\001\273\334\033m\320mr\320r\007x\320x\213\275\003\241\344\004\234\361\004\257\347\004\222\376\004\340\243\361\004\344\252\004\271\341\004\333\351\004\230\314\006\360\000\000iH\346\272\005\300\321\004b\360\354\001b\003\364\354\004\rx\376\354\001x\003\245D\364\354\004\232\344\013\263\302$\374\206\3351\212\233\010\320:J\310,\320\377VX\320X^\320^c\377\320cl\320lm\200A\037\3308P\320P\357\222\001\207\205I\266\364\001?M\310\035\320VW\262\252=\315\225\047\340\342\335\004\272\317\004\303\302\006\202\276\002\346\255\006\360\000\000\241_\205\360\005\263\347\004\301\352\004\345\305\004E\227\360\001E\347\004F\004\250\252G\325\243\0059R\320QR\267\375\003\304\204G\237\367\001N\253\345\001Y\220\345\031@\222\230W\254\375\004\364\362\013\300\327\004\204\320\004\207\205\004p\205\363\0015p\375\324\005A\376\362\001A\004\240\214\004\336\230\004\272\202\363\004\\\232\363\001\\\004d\241\363\001d\253\004j\250\363\001j\237\220\005m\253\230L+\376\364\212\001S\320SY\320Y^\377\320^g\320gh\200A\301\330\242D\225\366\027\261\330\006\215\2105\277\323\001>\310\377\036\320We\320es\320\003st\315\350\031\237\323,\332\236\047\223\344\004\264\226\013\240K|\353\360\004\323\350\006\360\000\000}\003\272\244\004\255T\301\366\001T\004\247Db\317\366\001b\272\255En\335\366\001n\004w\344\366\001w\273\004\177\353\366\001\177\004E\345\261\001E;\005G\354\261\001G\005H\303\261\016\323\3237\210\356\244\001\260W\364\312\001\001\204\375\004\343\270\006\361\216M\036\377\300~\320Uc\320cq\377\320qr\330\010\037\320\037\1770\260\001\260\030\270\021\000\t@\014\t\214\372\001\327\247V\364\347\004\346\237\013\224\334\004n\215\372\001\003n\003\250\227\004\266\354\004\317\345\004\346\237\004\305\364\004\273\217\004P\210\206\004\360\317\004\221\372\004\302\217\004u\305\372\001u\220\372\005M}\323\372\001}\004\332D\303\265\004T\333\265\001wT\005Z\342\265\001Z\005\\\351\265\001\357\\\005]\005\241\250K\047\300\034\373\310R\301\343\001Z\320Zc\320ocj\320j\355\324\001\320x\260\267\003|\235\361\004\242\341\006\200A\330?@""\232\261\032\370\312\302\n\266\276\002\253\266\001,\250a\250q\377\330\010\032\230,\240a\240\375x\007\001\036\230o\250Q\250\377h\260a\330\010\034\230G\003\2405\213\256f\366\372\004\363\355\004\310\330\004\375\372\004\366\372\004|\312\370\004\371\313\006\360\000\000V\003\370\211\031\364\217\376\004\312\370\004H\240\376\001H\004I\004~\270\335G5\260\007\260z\300\344\261\001\003?V\226\217\002\373\222\030\310\2017\233\336\001\275\316?\250\251 \000\370\347\004\303\365\022\370\347\004\307\373\004\271\370\004\344\243\004\300\370\004\252\236\004h\221\215\004\304\226\004\261\232\004N\321\373\001N\004\334\211\004\302\304\226\004W\275\373\016\215\336/\275\317\005\201GAB|\300\376\010\210\226\034X\250W\260A\342\204%\376\363\363\001\001\330\010%\240^\260\3371\260H\270A\366\225\"s\320\003sy\353\327\005\251\206\013\364\264\004\373\352\004\255\304\004\240\346\004\000\334\326\004\342\350\004\353\361\004\246\341\004\333\357\004\303\373\004\356\331\004\377\301\004\036\362\264\006\360\000\000h\302\373\005\302\366\004\321\376\004\354\307\231\004\212DO\004\204\364GV\2506\237\260\025\260i\270\331\366\001\254\201VCs\3001\223\374\001\370*1\260\001\347\376\002~\234B\300\030\310\031\320R\216\227\003\277`\320`h\320h\243\307\003}\003\320}\231\351\003\302\346\004\302\376\004\237\351\004\341\353\004\315\257\004\000\310\371\004\332\373\004\361\364\004\371\366\004\350\353\004\254\344\004\333\331\004\372\267\004\200\246\351\004\353\251\006\235\332\001\307\371\005\223\231\022\222\214\004\276\376\017A\373\300\031\327\230\001_\320_a\320\377ah\320hj\320jk\277\330\010,\320,A\335\000\0218\310\277\001\274\367\025\241\201bE\300Q\363\367\001\376\204\n\2753\312\310\001\"\320\"A\360\370\001\300\3678\3109\372\255\002`\320`b\037\320bj\320j\203\205\003\234\354\003\344\356\004\000\241\347\004\265\332\004\204\361\004\320\262\004\373\367\004\213\305\004\322\374\004\364\367\004\240\353\356\004\331\374\004\360\325\004\353\356\004\226\226\013m\316\374\001m)\003\234\217\004\313\374\004B\201\340\001B\375\337\005\225\217""\004\372\366\222\004U\355\337\016C\3009\310L\343\320X\204@\202\216\003\341\233\001\330\010.\377\320.E\300X\310Q\310wa\330\010\215\201zF\300a\270\357\001\356\210\210\n4\2601\216\373\002B\300!\377\3001\300H\310I\320U\367[\320[\274\003k\320kt\003\320t\266\335\003\264\345\004\253\237\004\204\310\004\332\354\004\213\364\004\000\363\337\004\276\357\004\211\373\004\371\361\004\353\370\004\222\364\004\312\326\004\227\216\013P\262\237\004\214\260\004\234\222\013\231\234\013M\226\343\001M\266\273\005\335U\244\343\001U\004V\373\342\016D\300\377I\310\\\320Yb\320b\377d\320dk\320km\320\377mn\330\010/\320/Gx\322\377\001\360\332\002\234\204zG\300q\310\224\213\r\3155\336\213\002\320\"\266\210\002\262`Y\320\357V\\\320\\\275\003l\320l\007u\320u\205\344\n\232\367\013\342\357\004\314\320\004\221\376\004\000\306\362\004\364\270\004\365\352\004\305\355\004\241\301\004\201\374\004\211\343\004\201\365\004\370\215\216 \332\255\004\211\216$E\300Y\310l\376\235\224\002e\320el\320ln\377\320no\330\0100\3200\377I\310\030\320QR\320R\375S\372\204\"\340\010\014\210J\220\277m\2406\250\021\330\010\000M\357\230\024\230Q\005\001J\220i\337\230q\240\004\240\346\215\002\r\210\277O\2309\240F\250\216\245\002\r\377\320\014\036\230b\240\010\250\375\001-\001O\2301\200A\340\277\010\020\220\004\220A\274\375\0014\377\210w\220a\220w\230a\177\330\014\021\220\030\230\021\004\000\377\320\021!\240\021\360\006\000\377\r\022\220\037\240\013\2501\276\026\001\036\230{\250!\037\001\033\357\230K\240q \002\"\240!\376\037\003\030\230\037\250\001\250\024\375\250\376\365\001\r\021\220\005\220V\377\2301\230E\240\025\240d{\250!;\000\020\027\320\027\215\231\001\377\024\260Y\270a\330\020\035\377\230T\240\021\240!\330\020\377\023\2204\220q\320\030(\373\250\003`\000\024\030\230\001\320\357\031+\320+\220c\020\025\220\335\\#\000.\260\001\223\001\025\220\177a\320\027(\250\004\250\304\217\001\376K\0243\2601\260D\270\t\373\300\021W\010\025\220[\240\001\357\240\036\250q<\006\047\240t\363\2501\325\003P\002)\250\033\260\357A\330\014\020\240""\0221\260\021\373\260$\241\216\001\330\020\036\230d\337\240!\2401\330\225\000U\230\367!\230?\326\000?\270$\270wa\270q\017\001X\230Q\210\227\001\372\242\006)\211!\330\010\017\210q\024\347!\234\351\006\035\246A\"\345\311$\345\341*\262\272\001\037\320it\320t\240\373\003\346\230\013\200\366\004\354\343\326\004\237\373\004]\002\226\341EX\250Q\360\260\2003\237\311\002\367\374\r\204\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\230\311\004\370\374\004\340\367\004\303\330\004\272\303\004\323^\002\273\376E\254\20089\206\237\001\"\320\343\"3\202\225\007\346\327\032\275\220\001\320kv\027\320vw\307\327\001\001\241\305\004\366\277\004\360\221\022s_\002\203\327E\223\2028:\270!\312\351*>\225\310\001\320lw\320w\227\364\003\227\354\004\200\331\276\004\275\327\004\201\307\004\314\356\006\202\373\r\315\2305\372\2038;\363\2701\234\330+\347\255\001\320mx\3201x\372\335\003\306\225\013\265\222\022a\002\216\335E\342\2058\367<\270A\201\372\t\330\010&\320\377&7\260q\270\010\300\001\272\344\374\001*\374\213\001\"\320\"\253\377\002\270\237(\300)\3106\351\337\010\350\217\001\320\017ny\320y\364\357\003\263\363\004\273\320\004\233\221\022\330\243\362\004\362\367\004\352\376$:\270\363\263\001y\320\257XZ\320Z\360\223\003d\357\233\0038\343\2701\273\001\347\226\017\275\374\003h\250j\377\270\014\300B\300h\310an\204\2105>\270a\357\376\t\330\010\335\367\007\346\203\377\001,\250\322\223\003\253\377\002\270H\300\367I\310V\344\253\002[\320[c\377\320co\320op\320p\007{\320{\204\315\003\301\223\013\246\312\004\256\374\004\212\372\004Kp\002\336\335\001\002\277\355\004\360\376\022O\321\376\016\367<\270I\327\270\001Z\320Z\\\237\320\\c\320c\223\266\001\346\274\0027?\260x\270q\300\001\374\225\021\231%\237m\270<\300r\225\220\002\246\2125?\371\270\366\361\016\200\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\360\324\004\213\317\004\351\324\004\205\362\004\311\376\006\311\235Gn\215\2148@\300\001\341\363\r.\250\316\361\003\336\366\310\002\270h\300i\254\350\001[\320\177[]\320]e\320e\245\253\001\037\320r}""\320}\324\340\003\212\376\004\340\333\004\360\365\320\004\336\343\004\217\376\006\333\372\r>\270i\300\377|\320S\\\320\\^\320\357^e\320e\274\260\001\330\010)\037\320);\2708\363\236\003\337\234\025\367\2158wA\300\021\313\365\r/\250a\351\365\002\376\220\310\002\270x\300y\320PV\376\261\226\002^\320^f\320fr\237\320rs\320s\263\276\001\330\332\001\002\350\360\347\004\234\343\004\326\204\022g\212\220\016?\270y\377\310\014\320T]\320]_\337\320_f\320f\254\270\003*\320\017*=\270X\330\235\003\223\200U\264\244\n\265\2002\330\203\346\004yn\334\3753=\270\372\366\016+\250\270\321\216\003\263\360\002\330`9\310F\257\243\002Z\003\320Z\330\327\003\245\362\027\335\353\004\312\313\004\344\353\004\204\240 \235A\342\312I7\260!\371\225\n\377\265>8\003\270\001\211\224*\234\3369\372\330\004\321\336\013\244\326\004\244\303\004`\313\320\004\372\330\004\333\250\006\356\255I\233\341\002\340\010\355\273J\000\262\276g\217\323\004\335\355@\204\3677\335\343\004\370\200I\344\205D\331\322\047\374\311\356\004\206\376@;\2709\300L\320\177PY\320Y[\320[\232\244\003\377e\330\010&\240o\260X\007\270Q\270\212\247\032\245\201!\211\2665\377\350\001\312\235*\000\314\3502\321\222\004\245\330\004\260\260\004\271\346\004\261\255\004\240\252\004\343\376\004\350\330\325\004\305\266\004\254\330\004l\307\363\001l\003s\022\316\363\001s\321\301\005\362\322\004|\320\350J\260\266\004\342\206\032\034\371\2707\354\234-g\320g\225\343/\320\370\004\212\364\004\000\245\351\004\225\365\004\272\363\004\366\246\004\327\370\004\251\366\004\264\266\004\317\363\004\004\266\275\004\336\321\022~\226\343J\3308\216\274\014\350\265&\340\206K\000\364\265\031\360\366\004\253\315\004\202\266\004\262\315\004\220\274\004\202\341\004\255\346\004\030\213\354\004\251\307\006\335\332J\n\270\360\216\013\233\270G\250\207\003\374\330\343\t\344\343\t#\320#4\260A\360\314\210\001\232\233\t\236\320\001\244\327\035k\320kq\037\320qs\320s\231\331\003\375\356\004\221\331\013\000\204\357\004\266\376\004\210\374\004\327\346\004\243\233\004\211\271\004\202\271\004""\210\374\004\000\262\320\004\222\315\013\336\346\004\202\344\004\275\207\022\222\315\004\223\274\004\304\333\004\272\301\373\004_\313\373\001_\004i\322\373\001iU\004\321\371\004z\340\373\001z\327\371\005B\342\371\001uB\321\327\005U\360\371\001U\005_\367\371\001w_\005e\376\371\001e\005g\205\372\001\367g\005h\252\327HF\260%\260\367y\300\014\216\264\001Z\320Z`\003\320`\332\366\003\233\375\003\214\307\004\366\353\004\313\346\013\243\364\004\300\341\366\004\365\221\013\245\257\013\311\265\004\252\364\004\316\343\013]\003\000\360\252\n\222\275I\317\2230\346\355\023\215\366\031\371\237\004\321\350\004\317\267\0044\260\366\004\327\324.r\376\377\001r\003\210\325\004\360\307\006\200\225\303G\306\275\006\234\224\010\205\300I\211\245\002\302\300\n\343\244\033j\003\320j\205\231\020\351\345\004\254\353\031\312\366\004\266\303 \244\333\004\200\331\303\004\330\366\004\231\371\004\230\217\004\337\324\004\274\316\004\253\333\004\177\000\225\350H\227\201]\334\2331\276\300\003\347\251\003\267\275\004\212\374\004\240\353\031\240\344\363\004\341\245\004\234\361\004\303\353\004\216\336\013M\276\371\001M\241\003\311\371\004\362\363\004\302\371\004\342\324\004w\341\371\001w\365\003\327\327\004\177\357\371\001\177\003@\004\000\271\350H\220\204]\331\250\003\263\306\t\264\250\033\326\366\003\303\335\024\304\353\031\000\215\364\004\257\300\004\215\364\004\347\353\004\272\374\004\352$\220\377\004\343\366\004\020\233\364\004\334\366\004\322\320\004\332\335\022A\316\371\016\344\2501\265\311\005@\211\207]\261\251\002\252\310\213\272\377\004\206\344\013\354\353\013y\322\377\001\023y\003\343\204\004\332\332\004B\333\310S\213\212T\300\252\002\334\244\314\n\246\252\033n\320n\232\303\001\320z\000\310\374\003\377\267\013\260\343\031\237\364\004\261\322\004\322\361\004\323\343\004\377\371\004\000\353$\325\374\004\252\314\013\252\367\004\314\335\004\275\326\004\323\343\004\250\306\004\203C\004\343\252G\237\314\010\204\215T\317\253\002\275\251)o\033\320o\205\303\001\320{\242\257\003\222\271\013\331\274\022""\000\305\261\004\305\364\004\335\263\004\235\317\004\245\314\004\235\372\004\310\377\004\200\375\004@\240\367\004\323\364\004\231\367\004\330\361\013\306\340\004\273\343\004D\214\372\016\334\202\2547\230\201_B\300!\225\322\0140\250z\256\262\003>\327\300\001\300\010\310\t\315\352\002\356\363\255\003g\320g\345\252\003|\320|\000\326\331\003\245\272\013\354\275\022\245\330\004\265\243\004\236\330\004\300\351\004\245\330\004\000\223\372\004\331\360\013\306\367\004\265\346\004\347\240\004\277\223\004\216\314\013\340\364\004\375E\206\375\016@\300\t\310\034\320\377U^\320^`\320`g\373\320g\272\277\001\330\010+\320+\307?\270x\365\307\003\365\316 \370\222TC\300\0011\217\325\014\227\321\177\224\375\004\232\351\022\341\243\004\210\351$\315\321B\332\362\225TD\202\325\0162\260\316\264\003@\300\177\001\300\021\300(\310)\215\347\002\016\311\323\003i\320i\253\357\003\307\337\003\302\343\004\301\274\013\000\226\300\022\231\333\004\260\272\004\365\253\004\226\336\004\231\333\004\277\357\004\271\256\004h\276\375\004\220\325\013\251\342\004t\326\375\001t\003\344\362\013\372\244\336\004G\267\362\016B\300)\310<\273\320W\310\323\003i\320i\361\353\003-\377\320-C\3008\3101\310qA\300\313$\255\362\006\314\332IE\300Q\207\333\014\000\205\324\203\242\341\004\326\371\004\266\354\004\317\375\004\335\371\004\277\226\004\235\357\004\022\335\371\004H\256\324S\356\233TF\370\327\016\365\323\207\234\357\031\020\246\362\004\375\343$\262\324C\361\236TG\361\327\016\351\323\207\243\344\004\020\373\327\013\377\356\004\313\234\004\246\362\022J\272\373\016\243\324F\260\207R\355H\346\327\0166\260\250\302\003D\300A\377\300Q\300h\310i\320W\367]\320]\254\305\003m\320mv\003\320v\243\306\003\252\373\004\362\317\004\251\302\013\252\373\004\370\332\004\000\261\373\004\310\310\013\270\373\004\370\332\004\300\272\004\231\347\013\300\242\004\240\347\013\320\260\245\013\215\336\004\235\352\004\362\376\004K\276\376\016F\300\377i\310|\320[d\320d\277f\320fm\320m\360\307\001\330\377\0101\3201K\3108\320\237ST\320TU\331\212-\214""\355\nQ8\352\354(\377\274-\325\231\003v\320v\275\356\003\347\335\004\320\240\376\004\223\317\004\205\347\004\334\343 \177\273\322FV\250\343:\260\350\324\002\362\366\006\371\366\010Y\240a\376\306\200Jw\310f\320TV\320\201V\225\370\003{\225\233\361\002\315\333\001\324\200<\377\324\"\007\376\342\362\001W\320W_\320_h;\320h\201\233\003w\320w\246\372\003\250\313\004\020\342\362\004\244\353\004\224\342\004\353\221 @\371\265F\201/\307\363\010|\310\202[\263\200]6\260i\270|\252\350\001\327V\320V\210\312\003`\310\371\001\032\250\3578\2601\260\276\223\030W\250J\377\260a\200A\360\010\000\t\375\021\362\337\004\320\013\035\230W\240\376\367\335\002\n\230!\2305\240\017\376\243\336\001\023\2205\230\r\240V\357\2501\340\014\005\003U\250!\356+\n\014\210L\257\337\001\013\2606\375\270\247\340\001\220\034\230Q\230k\357\250\021\320*\253\324\001\014\021\220\377\025\220a\220~\240Q\240}n\250\360\001\r\320\r\036\230j\013\364\207\353\001\262\341\004\025\360\340\001\017\210q\220_\r\230T\320!\327\324\001\001\255\336\004\270\235\010\226\337\001\301\337\001\033\250A\316\316\001\013\377\2106\220\023\220A\330\014\377\024\220E\230\033\240A\240\307[\260\001\273\227\001\346\336\002\324\010\026\220\375a\245\342\001G\2201\330\014\017\377\210t\2203\220e\2301\377\330\020\030\230\006\230a\230\375q\367\340\002\320\027/\250q\260\277\005\260Q\330\024\031F\002T\277\250\021\250+\260V\265\324\002\024\377\"\240!\330\021\025\220S\337\230\005\230Q\330\207\341\004$\240?a\320\0479\270\026\266\322\002\203\340\004\375>2\000\047\260\026\260q\270\377\001\340\010\013\2101\330\0149\031\300\342\001q\000\320\023$\235\000Q\001\365!\361\341\001Q\205\001s\220!\220w6\230\022\207\001\024\220C\246 \177Y\250a\250u\260A\177\001\277\021\330\024\027\220r\032\0003\366\236\002\030 \311\343\001\240Q\330\030\337\033\2304\320\037\366\326\001\014\300\337A\330\034!\240\207![\270w\001\270\033\013\001*\250!t\001\3275\220\003\345\003q\234\341\004\320\033\317+\2504\250\240\343\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\365\343\003z\230""\021\373\230%\215 \014\022\220$\220\247a\220q\370%)\000\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN|Z\003\343A\016\230e\240<\360 \351\013\226\327\003\255C\014\213\204\004\340\010\021\237\320\021&\240a\234\343\001\324\345\001C\257\210}\230I\305`e\373\344\001\024\237\220D\320\030.\374\372\002\360FZ\372\272@\001\331Av\220V\320\033W2\260#\267@6\372\343\001)\304@\375(\014\000Q\330\021\027\220v\377\320\0357\260s\270&\300\277\006\300a\330\020,\302`X\373\260S\247A\023\320\023#\240\2271\240A\270\373\001A\276\346\001\274c\016\336\227\205\007\2104\210u\346a\020\320\367\020 \240\246\326\002e\2208\230\3277\240!\2435\013\315\205\003E\250\317\021\330\020\032\311\205\007\246\204\001\035\240]a\367E5\230\003\206\204\001\027\241\205\002\375c\360`$\250f\260A\340\376\241\346\001(\250\001\250\025\250m\376\266\331\002)/\250q\330)1\377\260\024\260Q\330\r\037\2303w\240\205!K\t\017\210\311a=\016\335!8\0170\260\004^\000\014\023\377\2203\220a\220v\230S\377\240\001\240\025\240c\250\027\337\260\001\200A\360\351\005\340\010\337\033\2302\230\\}\000k\270\367\021\270+\257\361\002\034 \240\016\277\250e\260;\270e\252\241\001#\377\2402\240S\250\005\250\\\376\035\000\"\270A\270Q\330$M(\014\000U\260\340\350\002\253a1\316\350\001}\027\302a#\2404\320\047\331\244\002\377\013\2105\220\004\220D\230\177\n\240!\2404\240q\300\347\001>\353\346\001\003\2207\230)\373\"\202\350\002\367z\240\021\220\204\002\024\025\340\020\267\021\330\024\355 \320!\354\320\001&\377\300\001\330\027\030\330\024\032\373\320\032\265\226\001\030\033\2301\230\277A\330\030\034\230E\276\350\002\024\355\032?\003\340\010\365$A\330\020\377\024\220J\230a\230u\240\377O\2601\330\014\047\240u\257\250M\270\021\274#a\010\022\031\027\300!\340%\000t\252\205\001\212\207\001\302\206\001_3\210a\210~\246 \003\235b\025\014\377@!\256\351\002\014\256\351\002\275A\203\000\377\r\020\220\001\220\036\230t\363\320#\246\336\001u\000C\220q\230?\006\230c\240\024\240\230\204\001\361 \273\260T\240\211\001\022\320\022\262\326""\001\020\363\023\220\234!\235\000E\230\021\230\277!\330\014\022\220)\312\001\340{\010\014\224\353\t\320\014\034\230\274\353\004\357L\230\t\240\337\211\002\033\230A\357\230[\250\001\246\351\002\010\r\210\307U\220!\271\204\001\313 \322\372\001\r\210\354\037\006\361\211\030\340\010\202\211\0011\200A\373\3602\327\204\010:\220Q\220n\370\200\213\001\325 \201\352\001\007\220t\320\033\3776\260a\330\020\023\320\023\377%\240W\250A\330\024\030\276\266B>\260\021\330\024\201\352\001\047_\250\034\260Q\340\004\004\021\301\353\001\3251\254A\007\330@\001\332\210\005>\240\373\023\240\207@\025\320\025%\240\376\271\211\001\320\025&\240a\330\020\356\227`\340\020\026\242\355\002\001\330/\3676\260c\346`.\310\002\310\377!\3309:\33004\260uE\366`!\260\352\003N\220!\226\204\001\241\014\314\211\001\365&\245!\232 \330\305\003\320\217\004\035\230Q\306\214\010\350\353\001\255@\330\357\010\022\220\047\334\"\010\014\210\177G\2209\230J\240f\304\000\376\201\213\001\320\023+\2501\250G\371\260\301\353\002\225\354\001\026\240q\250\013\004\374\363\001\242\214\003\330\317*"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35494, 110863); #define __Pyx_DecompressString_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (110871 bytes) */ + #else /* compression: none (110863 bytes) */ #ifdef _MSC_VER -static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','_','A','R','R','A','Y','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\320','\017','\037','\230','w','\240','e','\250','1','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021','!','\240','\027','\250','\005','\250','Q','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','H','\310','\001','\310','\021','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\036','\230','g','\240','U','\250','!','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','4','\250','v','\260','Q','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','0','\260','\001','\330','*','2','\260','$','\260','a','\330','\r',' ','\240','\007','\240','u','\250','A','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','\177','\240','a','\240','s','\250','!','\250','1','\340','\020','\027','\320','\027',')','\250','\021','\250','%','\250','}','\270','A','\270','Q','\330','*','1','\260','\024','\260','Q','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\036','\230','g','\240','Q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r',' ','\240','\007','\240','q','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','&','\240','g','\250','Q','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; +static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','A','R','R','A','Y','_','T','Y','P','E','S','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\210','\177','\230','g','\240','U','\250','!','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021',' ','\240','\007','\240','u','\250','A','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','G','\300','q','\310','\001','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\035','\230','W','\240','E','\250','\021','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','$','\250','f','\260','A','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','/','\250','q','\330',')','1','\260','\024','\260','Q','\330','\r','\037','\230','w','\240','e','\250','1','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','!','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','0','\260','\004','\260','A','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r','\037','\230','w','\240','a','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','%','\240','W','\250','A','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; #else -static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CR""OWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.ope""n_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDL""UNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_Str""eamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Str""eam.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR""_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LIN""ESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenA""ndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMO""D_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_""CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAn""dFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_Upda""teTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_""PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MA""MA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI""_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_Open""AndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_Peek""TA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.op""en_and_fill_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr__ARRAY_TYPES__INPUT_ARRAYS_TYPES__INPUT_PRICE_SERIES_DEFAULTS__PANDAS_DATAFRAME__PANDAS_SERIES__POLARS_DATAFRAME__POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslength""locallookbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010""\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q""\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X""\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016""\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005""\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T""\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000""\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n""\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A""\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{""\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]""\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177""\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC""\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000""\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230""\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330""\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q""\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q""\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u""\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:""\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330""\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330""\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230""\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021""\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000""\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F""\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014""\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e""\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B""\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002""\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e""\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a""\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004""\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004""\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004""\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004""\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A""\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046""\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\320\017\037\230w\240e\2501\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021!\240\027\250\005\250Q\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006""\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240""\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003""\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F""\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330""\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300""\021\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a""\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014""\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360""\000\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002""\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003""\360\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o""\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002""\360\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003""\360\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013""\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010""\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402""\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601""\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002""\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330""\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,""\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330""\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330""\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a""\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330""\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240""\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~""\004@\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330""\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003""\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H""\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330""\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320""\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021""\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J""\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002""\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O""\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+H\310\001\310\021\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010""\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G""\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300""\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a""\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU""\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002""\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^""\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#""\320#4\260A\260X\270Q\330\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002""\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(""=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240""\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S""\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360""\000\000]\003^\003\360\000\000^\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R""\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a""\330\010\034\230G\2405\320(F\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x""\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260""\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360""\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\036\230g\240Q\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021""\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\036\230g\240U\250!\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2504\250v\260Q\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*0\260\001\330*2\260$\260a\330\r \240\007\240u\250A\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220\177\240a\240s\250!\2501\340\020\027\320\027)\250\021\250%\250}\270A\270Q\330*1\260\024\260Q\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330""\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\036\230g\240Q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r \240\007\240q\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023&\240g\250Q\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330""\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; +static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CR""OWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.ope""n_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDL""UNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_Str""eamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Str""eam.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR""_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LIN""ESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenA""ndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMO""D_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_""CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAn""dFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_Upda""teTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_""PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MA""MA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI""_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_Open""AndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_Peek""TA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.op""en_and_fill_ARRAY_TYPES_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallo""okbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a""\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q""\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360""\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014""\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220""\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E""\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002""\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A""\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{""\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]""\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177""\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC""\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000""\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230""\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330""\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q""\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q""\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u""\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:""\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330""\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330""\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230""\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021""\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000""\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F""\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014""\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e""\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B""\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002""\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e""\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a""\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004""\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004""\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004""\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004""\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A""\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046""\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\210\177\230g\240U\250!\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021 \240\007\240u\250A\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*""\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a""\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000""\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX""\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010""\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021""\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q""\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037""\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000""\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360""\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360""\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360""\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360""\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108""\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,""\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V""\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H""\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360""\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010""\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a""\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320""\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330""\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a""\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@""\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330\010!""\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003\360\000""\000x\003~\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002""\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017""\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601""\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330A""B\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004""\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000""\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A""\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+G\300q\310\001\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405""\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701""\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320""\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?""\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq""\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360""\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt""\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330""\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360""\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3""\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 ""\240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh""\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^""\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002""\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F""\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025""\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260""\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y""\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\035\230W\240A\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d""\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\035\230W\240E\250\021\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250$\250f\260A\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)/\250q\330)1\260\024\260Q\330\r\037\230w\240e\2501\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250!\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)0\260\004\260A\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207""\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\035\230W\240A\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r\037\230w\240a\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023%\240W\250A\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+""\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED @@ -350175,12 +350175,12 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 215}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local}; - __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A_A_gQ_5_q_5_V1_5_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[224] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_get_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[224])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 226}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_input_arrays, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_missing_keys, __pyx_mstate->__pyx_n_u_key, __pyx_mstate->__pyx_n_u_missing}; - __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_gQ_d_Q_d_1_q_s_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[225] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_set_input_arrays, __pyx_mstate->__pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[225])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 275}; @@ -350210,7 +350210,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 366}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_ret, __pyx_mstate->__pyx_n_u_index}; - __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_gU_5_q_E_a_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[231] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_outputs, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[231])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 398}; @@ -350230,7 +350230,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 488}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_local, __pyx_mstate->__pyx_n_u_input_price_series_names, __pyx_mstate->__pyx_n_u_args, __pyx_mstate->__pyx_n_u_price_series, __pyx_mstate->__pyx_n_u_series, __pyx_mstate->__pyx_n_u_opt_input, __pyx_mstate->__pyx_n_u_value, __pyx_mstate->__pyx_n_u_results, __pyx_mstate->__pyx_n_u_keys, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_output}; - __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_we1_axq_wgQa_Q_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[235] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__abstract_pxi, __pyx_mstate->__pyx_n_u_call_function, __pyx_mstate->__pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 519}; diff --git a/tools/generate_stream.py b/tools/generate_stream.py index 6edc14f42..d34f616f7 100644 --- a/tools/generate_stream.py +++ b/tools/generate_stream.py @@ -130,8 +130,8 @@ def parse(name, decls, defaults, output_names): cimport _ta_lib as lib from _ta_lib cimport TA_RetCode, TA_MAType, TA_BAD_PARAM # NOTE: _ta_check_success and InsufficientHistory come from _common.pxi, -# check_array / make_*_array from _func.pxi, and __PANDAS_SERIES / -# __POLARS_SERIES from _abstract.pxi. +# check_array / make_*_array from _func.pxi, and _PANDAS_SERIES / +# _POLARS_SERIES from _abstract.pxi. np.import_array() # Initialize the NumPy C API ''' @@ -173,7 +173,7 @@ def parse(name, decls, defaults, output_names): """What the Function API accepts, through the same checks.""" if isinstance(values, np.ndarray): return check_array(values) - for series in (__PANDAS_SERIES, __POLARS_SERIES): + for series in (_PANDAS_SERIES, _POLARS_SERIES): if series is not None and isinstance(values, series): return check_array(values.to_numpy().astype(float)) raise TypeError("input must be a numpy array or a pandas or polars Series, " @@ -198,15 +198,15 @@ def parse(name, decls, defaults, output_names): cdef _stream_like(tuple sources, object result): pandas = [s for s in sources - if __PANDAS_SERIES is not None and isinstance(s, __PANDAS_SERIES)] + if _PANDAS_SERIES is not None and isinstance(s, _PANDAS_SERIES)] polars = [s for s in sources - if __POLARS_SERIES is not None and isinstance(s, __POLARS_SERIES)] + if _POLARS_SERIES is not None and isinstance(s, _POLARS_SERIES)] if pandas and polars: raise Exception("Cannot mix polars and pandas") if pandas: - return __PANDAS_SERIES(result, index=pandas[0].index) + return _PANDAS_SERIES(result, index=pandas[0].index) if polars: - return __POLARS_SERIES(result) + return _POLARS_SERIES(result) return result From cc9cf1fbf2bb9cf5fa19dd44e6a5fdc89b40dc05 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 13 Sep 2026 20:29:50 -0400 Subject: [PATCH 06/12] changelog: the streaming entries belong to the next release v0.8.0 shipped without the streaming API, so its entries move out of the released section. Claude-Session: https://claude.ai/code/session_01TuVjx2Q5urdmwi5opzfCp8 --- CHANGELOG | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b33aa3876..b2d37c7d4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,8 +1,6 @@ -0.8.0 +0.8.1 ===== -- [NEW]: Support TA-Lib C 0.8.1, which is now the minimum required version. - - [CHANGE]: ``talib.stream`` is now the real streaming API of TA-Lib C 0.8.1: ``stream.SMA(close)`` returns a handle, not a value. ``handle.value`` is the value at the last history bar, ``handle.update(bar)`` costs O(1) and returns @@ -22,6 +20,11 @@ too little history. It is the library's one recoverable error, so it is catchable on its own rather than as a bare ``Exception``. +0.8.0 +===== + +- [NEW]: Support TA-Lib C 0.8.1, which is now the minimum required version. + - [NEW]: The 40 functions TA-Lib C added since 0.7.1: AC, ADR, AO, CMF, CMOU, COPPOCK, CUMSUM, CVI, DONCHIAN, DPO, EFI, ER, ERI, FOSC, FRACTAL, HA, HMA, KC, KDJ, MARKETFI, MASSI, NVI, PERCENTILE, PERCENTRANK, PVI, PVO, PVT, From 1d30499a89b41b95d9aa043941a25dfb827f622f Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 13 Sep 2026 20:52:09 -0400 Subject: [PATCH 07/12] fix(func): SUPERTREND's outputs are supertrend and trend TA-Lib C 0.8.1 released SUPERTREND with outputs outSupertrend and outTrend. _func.pxi was generated against a pre-release C that still called them outReal and outInteger, so help(talib.SUPERTREND) and the abstract stub listed "real" and "integer", while abstract.Function('SUPERTREND').output_names already reported the released names at runtime. _ta_lib.pxd now declares the header's parameter names, and _func.pxi, abstract.pyi and _ta_lib.c are regenerated against the released 0.8.1 header. Return values, dtypes and argument order do not change. Claude-Session: https://claude.ai/code/session_01TuVjx2Q5urdmwi5opzfCp8 --- CHANGELOG | 4 ++++ talib/_func.pxi | 16 ++++++------- talib/_ta_lib.c | 56 +++++++++++++++++++++++----------------------- talib/_ta_lib.pxd | 2 +- talib/abstract.pyi | 4 ++-- 5 files changed, 43 insertions(+), 39 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b2d37c7d4..89fc34099 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -20,6 +20,10 @@ too little history. It is the library's one recoverable error, so it is catchable on its own rather than as a bare ``Exception``. +- [FIX]: ``help(talib.SUPERTREND)`` and the ``abstract`` stub named the outputs + ``real`` and ``integer``; they are ``supertrend`` and ``trend``, the names + ``abstract.Function('SUPERTREND').output_names`` already reported. + 0.8.0 ===== diff --git a/talib/_func.pxi b/talib/_func.pxi index 742935d76..633ffa706 100644 --- a/talib/_func.pxi +++ b/talib/_func.pxi @@ -5961,8 +5961,8 @@ def SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray timeperiod: 10 multiplier: 3.0 Outputs: - real - integer + supertrend + trend """ cdef: np.npy_intp length @@ -5970,8 +5970,8 @@ def SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray TA_RetCode retCode int outbegidx int outnbelement - np.ndarray outreal - np.ndarray outinteger + np.ndarray outsupertrend + np.ndarray outtrend high = check_array(high) low = check_array(low) close = check_array(close) @@ -5979,11 +5979,11 @@ def SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SUPERTREND_Lookback( timeperiod , multiplier ) - outreal = make_double_array(length, lookback) - outinteger = make_int_array(length, lookback) - retCode = lib.TA_SUPERTREND( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , multiplier , &outbegidx , &outnbelement , (outreal.data)+lookback , (outinteger.data)+lookback ) + outsupertrend = make_double_array(length, lookback) + outtrend = make_int_array(length, lookback) + retCode = lib.TA_SUPERTREND( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , multiplier , &outbegidx , &outnbelement , (outsupertrend.data)+lookback , (outtrend.data)+lookback ) _ta_check_success("TA_SUPERTREND", retCode) - return outreal , outinteger + return outsupertrend , outtrend @wraparound(False) # turn off relative indexing from end of lists @boundscheck(False) # turn off bounds-checking for entire function diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index d67ab581b..6ed43cd2f 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -60178,7 +60178,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378SUPERTREND, "SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n real\n integer"); +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378SUPERTREND, "SUPERTREND(ndarray high, ndarray low, ndarray close, int timeperiod=-0x80000000, double multiplier=3.0)\n\nSUPERTREND(high, low, close[, timeperiod=?, multiplier=?])\n\nSuperTrend (Overlap Studies)\n\nInputs:\n prices: [\047high\047, \047low\047, \047close\047]\nParameters:\n timeperiod: 10\n multiplier: 3.0\nOutputs:\n supertrend\n trend"); static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379SUPERTREND = {"SUPERTREND", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379SUPERTREND, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378SUPERTREND}; static PyObject *__pyx_pw_5talib_7_ta_lib_379SUPERTREND(PyObject *__pyx_self, #if CYTHON_VECTORCALL @@ -60325,8 +60325,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; - PyArrayObject *__pyx_v_outinteger = 0; + PyArrayObject *__pyx_v_outsupertrend = 0; + PyArrayObject *__pyx_v_outtrend = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -60367,15 +60367,15 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsupertrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback)); __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -60383,12 +60383,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __Pyx_GIVEREF((PyObject *)__pyx_v_outreal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outreal)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __Pyx_GIVEREF((PyObject *)__pyx_v_outinteger); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outinteger)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outsupertrend); + __Pyx_GIVEREF((PyObject *)__pyx_v_outsupertrend); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsupertrend)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); + __Pyx_INCREF((PyObject *)__pyx_v_outtrend); + __Pyx_GIVEREF((PyObject *)__pyx_v_outtrend); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outtrend)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); { PyObject *__pyx_temp; { @@ -60414,8 +60414,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_outsupertrend); + __Pyx_XDECREF((PyObject *)__pyx_v_outtrend); __Pyx_XDECREF((PyObject *)__pyx_v_high); __Pyx_XDECREF((PyObject *)__pyx_v_low); __Pyx_XDECREF((PyObject *)__pyx_v_close); @@ -348883,42 +348883,42 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{16},{105},{7},{6},{2},{32},{33},{30},{64},{48},{35},{9},{36},{39},{34},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{2},{8},{15},{29},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{7},{14},{28},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{3},{10},{24},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{7},{14},{28},{11},{25},{4},{11},{25},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{13},{27},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{8},{15},{29},{12},{26},{3},{10},{24},{3},{10},{24},{10},{17},{31},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{12},{24},{32},{30},{35},{16},{20},{15},{18},{19},{28},{17},{14},{17},{14},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; - const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{324},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{260},{104},{277},{246},{247},{247},{247},{303},{248},{248},{249},{279},{250},{250},{366},{259},{261},{253},{254},{259},{253},{439},{276},{405},{391},{262},{346},{265},{262},{363},{248},{276},{317},{357},{287},{347},{288},{293},{427},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{399},{335},{335},{400},{336},{341},{494},{511},{436},{418},{361},{425},{458},{537},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{287},{290},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{633},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; + const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{325},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{260},{104},{277},{246},{247},{247},{247},{303},{248},{248},{249},{279},{250},{250},{366},{259},{261},{253},{254},{259},{253},{439},{276},{405},{391},{262},{346},{265},{262},{363},{248},{276},{317},{357},{287},{347},{288},{293},{427},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{399},{335},{335},{400},{336},{341},{494},{511},{436},{418},{361},{425},{458},{537},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{287},{290},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{633},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20444 bytes) */ -static const char cstring[] = "BZh91AY&SY\323\324\023\267\000 %\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`d\277z+\357\047,\000t\000\001\343\2277\000\001\315\t\2654;y\264BX\330\003\236\000\317#\217E\003\262V\340\346\254qN\211[=p \000>\276\251\327G\275\343\337>W\307\337}\347q\264\321\010\355\217\036\343\241^\237l\347\306\304!\317\273\207l\272\347\246\233\261h\313\271\317\2477Fi\334\034\322\253\273\243~\247u\316\353=g=\353\262\270\375\033&\3048-qtb\245[\227\013\270\354Y\274]\315\311SF\203\233F\375\246\310$\035\250K\301\010\360@\030\300F\322B\304\251\325\025\365\025<\361_9\000\346\242\034\304\036b\247\232)\346(y\200\007U@\363U}\001\003\252\243\347\"\363D\016\252\257T\004\260\002\262\002\357@\271\000Y\320\203|\020o\002Y@]\340.\201O\261\007\274WX\201\255\023\334+\364\n{D=B>\245\037P\247\244S\322\003\351\020\366\202zA>\305_b/\322)\354@\373\0249\350\034\360Nr\257I\036\232\047DC\244\241\323\004\351tz=\0377\233=_w\340\250\266\203^\021x\372A\np\261\334\234\214\271\023\322\213\313\231t)>\352\017\005~\243)\236\245u\257V\030\010Y\263\372\373\201\2401p\335\302\352\t\202\330\036\231\356[\024\025\207\261\322<`\016\006\021d\035)\247r\014\\\311\2031]kG^\344\025\0053\016\002w\010\203~\022\326\336\220\347\336\203qg\213\212\340^\252~4\326\206G:w\273 K\340\334S-N\345\3512\211\3366\234\346\257(\335\31228\260M\361\314\020l\270\207\270\237T\030S\332E\320U&\275\350}\301\356\362f\"^\200S\270\214\357y\264\3042=\n\215\317|\320:\351C]\342i\337\276\332\234\306\022t\217x\036v""\221\244&\211\005\334>\341\214:\356\341\317\271qF\246\361\273\345\047\323\334\220t\2500\367\333\235h\262;\201\316kE\245\271\201\343\334 \352)\211;\320\314w\000\374\013.S\261\350\232K\237r\034f\226\213\013B\031z\300\342\362\2025\272]R\014\373\215\304f\264\255\000c\373\003q\023)\323\270\247\025;\312/r\246\343&z\233w\000\366\025\350\335\310\037\005\2663\035\300\330\014s\250\356\373\311\264\333Q\336Q\2627bx3\357\024\300y\337\017\252e\273\367\332\200\342\231\345\253A\003\276\203xA\273\026\243\0130\031\373\360\365u\343\357w\342\356\213\360\226\254}\306G\0138n\372\230?\010\256\014\273\204\312\205B\247\311\251\230\246w\357AD=\306\203\270\2650\305\355\312s\357\300\231T\340\276\364\355\256\376\314\245\217\343\3256\324\356\340\306\377 \310\337]\304w\247\001\360_S\351\000}%\364\217\247\357t\356\364a\315S\257\247~\347M><\225z2\357\312\350\354\235\305\027\035\3767\361e\332\343\343\305\307b\246\345\276-\331:6%`\315\212#\007Oi\277A\367Z\030(\363\354\307\202\373qj\227\333\271\261C\233g\004\274|}}[\233(\024@\207$\032\201<\3215\013\324P\333WZ<\325\017-\036b\2768\206\264|\221TP\035bZ\204\251\000`Ij\022\324%|\003\nF\244-H5\002\320%\272\205\245\013\231\001\266\013\230K\020\203\022\003\224\003\224K\224\016T\034b8\300\342\021\304\203\221\007\022\026qv\201\330\222\347\021\332#R5\001\314\032@\322\221\245\006\224\272\220z\004iA\324\203\245#J]Ii\352\374I\364\207\322\310*$b\n\260\202\252H\200\014\212\240BH\022I \"\037M\305\371r\260sN\245\047RK\265\365*f\352\025\221\267\320\326\033\375\0140>\200\240\376\203\263X}\002\025+\232\235>o\235\253\232|\343-b\024\371\207n\242-J\004\3114Hj\032y\nZ\242\236L\213TF\247\021\314\324H\231*\021\r;V\250\235\251\374}\027\306\221\025\277\315aO\236\047j[\347\0370\206\030e\371~_\227\177\235~bM\275\232\255\317\275z\257\336\267O^\231\032g\272GOg\\\347u\022\373\035\016\267L\354\237\024^r\035=ze77;s\307\325\255\001\340\217\004x\257\025\344x\337\243\301\222\313\252i\363\372xx\370\371\366\345x\352\354\361\233CS\373{5O\235\311\321\331\350\253OWn\212H6&\322\353]c\2545\016""\245\322\232\0238\031\303\357\247Q\333\037\035\333\036\240\331J\262-\242\271\\+\207R;V#\265v\"\340v#Q\253R\355\rA\224\353:C\257Q\333\330g\3558\315]\210\344Z\215Z{\027Y\332j4ww.\365S\344\001%\350Z4\034\317\177\237GG)\313#G\236\r\305\303\346\341\341\363pf\313\377\306\261v\232\303Y\255i\261[\266\267\036\216\316\210\276\370I\013\227\213\344\313\305\353\367\325\013\345\333w\357\337\277~\375\377 I+\313\324#\324|\200XK\254:\303\254\353:\303\002\3670\376\307\342\"H\240\2622\t! \222\n+\"\212\310,\2222\"\201 \210\214\210\261T\024\024\025F$\212E\"\305\204\025R((\252\242,\204 \252E\t$\026B(\"\377\026`t\346@\034\332T\323\234\326)\224\022~\324\025\034\246\235NA\222\006Z\224\316\006pL\341\332\326\277\333\362\374\220\350s\375;?Q\334~\254}Jm\230\314~\036\257\332\2771\304\"\361qq\034\034\277\215L\021S|\214RAQ\210F \030a\310r\013\2208\360\014X\034k\3069\3249\342,\214\202\272\022*\214\252?\315\320(9\021\310\200\305\322\251\247\231L\342\330\026\347L\337\336\220\3160\304rnA/ \250\206\274\346t\027^\262\373\313\331\\\347t\332t\"\206r\342\371 \252;49\361\265D/\007+\324\304\201$\010\3021\204\226\n\214\025\032\0279\304\277\022\340.\313f\240\031\022\020\034\226\224)vIy\177\355\245\035\014\031 BJ)\201\213\212\216\215\315\255\215U\252\345\334#\0144\251\244\323ZSH\226 \245\021J\212\022\251\010\305B@\312-\302\344\246*\342(\342\t\2610\301\220$\\\320o.\301o\230\243\335\326S\254:\211\021Y\026\020\311\014 q2p[\304\337\313\230*.\255\3047\347\\\315e\000\222\310o!\311\316\3604q\240\331\205\337*\333h!sa5\267\3472l\315\374D\332\232J\024\371s\026T 2$\214^\354\230\006s\330v\0236\331\267\023F\276_\047\311#s\242^\301\360\177\363E\363\314\217\342\342\023\036~\377\337\373\370\244\333\020#\211\224\317X~\252\220DL\004\177\017\037\233\250PD\340\363\251\242\217\325\016\202: \341u0\205\014?J\006\037\366\334%\305\251A\361\252\334\315I\230\252\305\005GP\340\374\037J\300\317\351\371\324K \026\340\333 \357S\217\2135\203\244\256K\300@n1\342\271\251\345Pg\301\006\256iC\306\216\277\210\310$\241{J-%S\237\326G[h\276\253\320\310_DO\345\014H\017t\256vfq\203A|\1773\274\371B\216E\206\351\245\334Q\035\222\373\047\347;\"S_rF\237\207\373\361L\347\246\305?\345\323\215\2652\273\032\374\370wmz\013e\214\215\203V\034\017\376\215\006\276\001\251\373\232\215\037p~m\005\237\253_\327\355\256\340`\312\347\354r\204cg\327w\177\310\214x\275\301\225\343uK\047\343\247\254\300\344\343\204\333\036G\212X\245\233\014)\371\210\200\324\017]\244\330x%\225\315S\243l.X\200\320w\264:\302\017J\331g\002\306G\212\207@\354\355uT5;\230\374.\336\021\366\210\276/\217\357P\352y\302s\242\013\374\371\203\351s\210I \236\226\337C\242\026\242\251\2412\014E1\202+r\336\031\2072&\332\037y\310\313\006\363\000\221\265\262\2218\320\315r\031\023\013)8\337\233\207\032\246\346\334.\031\025\\mK[7\246\316\266\330\234Hh\321\262\007\031\252i\016)\210\337Kkt%%\366]\234\005L\027$\323\014\200\024\270\001q\\C1`\n\237\352z\230\254&@\231|?\010x\330\032\013\n\007*(g\"\343\352d\3202r\021\3013\027\353\"\272\327[\222\206\264\332-}\034\376g\337\324\017=Z\241r\335s\306\255QI\021\366\253\226vA\365\212\364\301*\345`p}\336\301$\252U\006\237s\304\355jm[V\3215+\250\324\246\373\253\317\362|\3015\232\365\231\002\017\344>\246\263X\032\320\002\327X&\263Z\360\206\267\305\226\241MF\240u\007\332C\306\007Y\254u\242.\2454\203\365\270\203\316\326x\270\335ji\313\310\331\253P\250\330\006\245Q\362\003X\246\2647W81\r0f\205\361\205\361\225\324\0363\364!\2505&\255A\250\035A\305\262\246\244\337\200\354\306mRm\003\262\246\310\006\310\217\237\341\315^\310}S\254\206\352\356\273\202\243\270m\272\207jM\2241\177\375\360)\025r\345\312$\244J\021)""\214\203\271BbE\245L\007P\232\246\001,%\240\371I\231\017d\245]\341\022\355\r\313\243\311&\235*it\256x\031t\271SGn\200\266}\022M\303\233I;4\357U\007\023f\004\355\274?\232\203\230\246\247\244X\236LF\t\323Ut\370T\375\036\324\t\177\342\026!\363\211\003\331O\250k\232\016\206$4\2244\317\2472\241\227\353\000\220`BI\006\200\231\302\240\306F\211\234\240N\371\377\267\364^\220\222\277\250\023\352\047\217\275\356&\355\324?@\256\031\204\210u\254K\256\241\353\211\022\266P\177/\0042\032\312s\265\206\272S\030g\026\177\333\222\017oG\037\265\3718\207N\226K\265\234\370\355[n\2358\257w\210\340\207t\375\355\037\210\207\360\0047!\343!\204(~\210\177V~\361\016\376\355\210w\321\031)\371\331<;\273\221UUd\222I,\250\246\200H\333a\220\233\205\271\366\205yb`\r\202g!\320\206\020N\207\024\245\245-)iKJZR\322\226\224\267\311\264<\277\301O\311\010{>\\\206\333Si\017(\252\252\252\254\356\331\330\004\210\347]Bq\211\251M\033\231\323O\005-]A\300\002d\312C\3102_=\352\020\266L\266Kl\226\331-\262[d\266\311m\222\336\362\034\363\016\235\251\316\304\022\034\220\356\0166\207\034Sm\316\020\003\330!\305\337uUW\207g\025\244<\010{\047\223\01009\336\030\350\242\321-\252\214\312p\t\240JA6\362\346\213!kwjU\001,a\024\240\021\030TR\241QJQaQJB\020J\310T\254\205$\001\214\004\254\205\010\tU)@\337\r\037\003\362k\373\350 \336/\264\371~B\206\200\366\241\350K\204O=@\363O1\340\373\246\047DO=\350t\364h4\303Ld\013\350)\2420\347\303i$&\202\315\031\233\234m\254?\365\224KJn\217<\3462+\231\220\250`]\253\267\024\2333!\306\346\374\233\260P\024\030\230\"`AX\214\tr\016(\030872\245\005>\352\301\270\253;\253\321\025w\267H\354\353c\222\235 @\343\213\267\027C\010\026f\266\002C\215\221\376{\022\275\210\276\324}\244\220\201 IJ\036\326\2261\221\205/\264\241\257o\314\371\276A\"\032\317\312\047\243\325$\222I$\222I\047\306\344\363\372h\360\014\242wY/\313G\257\355\022\336\2010\2750\365Q\350\023\376`\231\204\207\240\316&\212\317\363\211\024*\375\310\275\207\354\371;\315\237\350\237O\335~8>\035\372\320\326\203\254\r\037!\365|3\326c\314\227\006\352v""\nw\241\336\020\214%\002k\245$a%/yI2\030u\361\t;\204\260\234\035)\343\302\213\201=\273\rqLa\231La\237\r1\206e1\206e1\206\177\n\230\3036\2460\317\361\323\030g\334\2460\317\216\230\3036\2460\317~\230\303=t\306\031\3051\206}:g}\206\265d\272\242\302\352\230\303=T\306\031\2651\206e1\206w\323\030f\364\306\031\2651\206~\2653k\rw\331.\250\260\274S-\206w\331.\250\260\274S\030f\364\306\031\326\230\303:S\253\014\360\246\3142\321a~\3451\206wS\030gu1\206xS\030g\335\2460\317\nc\014\355La\231La\235\324\306\031\335La\236\024\306\031\341La\231La\234S\030gjc\014\370\351\2143\212c\014\361S\030g\2051\206oLa\235i\2143\2451\206e1\206u\2460\314\247\224\207\305;\020\352\220\343hq\345\246\307BH\200N\217\306C\222\037t\205\t\212\252\252\252\257\263M\310X\031\335\343-!\344\336\00434\\s\013\216aq\314.9\205\3070\270\346\027\034\302\343\230\\\354Cb\036b\036\035\360\360\375jc\313\ry\351.\251\311\013a\234\323\030f\251\333^<\206\336\3056UU\\vqw!\347$\235a\016\362\037\223\267\315Kim\000\200@ \020\010\004\001\232\235\374\365\251\331\256\023\3133\257\257S\263\317La\235\324\364u\342u\353^\246\262kW\031\231q\231\227\031\231q\231\225\354\236\367\017a\357v\231f|\362\320 N.\3473\206\366c1\273\254\220h\344\014\244\003\343\371\000Y\021\005\004\224\207\310PQi>C\"\321\305r\345\213\370\004@\252D!\366[\020\210\002$$n\010\215!\310/\026\366\241\016w\310~\226\364\330\207N\304\032\023\217\253\245UUUU\302\035\300}B\010\022\233\"\212(\242\212>\235\020\357!l\202e:!\226&\217\205\010x\304\312\010\246\210\n\004\022(\0202\220d\016~N\3353\300QE\024QE\024QV\333m\266\333m\266\333m\266\333m\267\253\215N\256D\311\251\3354nCo\021\r\241\277\2056\322\252\252\252\252\357\324\203\003\223q\021\210\210\210\210\210\210\210\211zk\027\273m\202$?N\316\310N\252\252\257g\357\270\273u\316\275W\257]v\255\335\337u\337}9\273\231\273\260\241Q)C:Q\234\335\314\335\331\315\334\315\335\234\335\314\335\331\316(\231\242\212\036y\275e\335\237\307\354\264\317P\310s%\314ni\003NS\345\315\232\203\246\023\014\321UTP&\263\275\022B\020\010\022P\275\364\214""\240\357h\243\352\267\363\370\276\202\217(\237@\231\304\347\001\"\235>\023\315\345\265\342\237\321u\t\237\314%\204\260\226\023\326\047\254L\247\253\312\236\177-\027\002b&\240\023\034\245\332\204\273~\007\27752I\277\256\316}\275\031\226\333m\266\333m\267\256\333\361m\273\266\333\\M\202fT\266-\200\234\240K\304\270\023Q\247`\232\265\211\205\302_\234H&m\204\274\022\3011\023^|[D\320\232\356\241z\221\241\016z\016$7 \340\343F\264kF\264wh\364\353pvh\333\341\242\035\010]\2102\035:\024\254\035\374\207\177>7\247L\344\337\276\205\332\262\314\\V:\353B`&@\226V\373\201\"\205\"\272t\246\254i\251\340\370\325UUUV\330\261b\305\213\026,a.k\252\35050\370\264\204\312\0036\203\255VEL<\326BU\t\240\353U\221S\0175\220\225A\2407\223\265\226\242\306\036\266\220\226B3h:\325dT\303\315d%P\232\016\265Y\0250\363Y\tT&\203\255VEL<\326BU\t\241\245J|\222S\021I\225$t\247\027\25027Yr,\002\312\031r\240\313\223V\336\333\367\t\207Hnv\250\353\016\361#\030B%(w\322\2220\224:\322\311\356\337\263\223^\307\2733\344\313\354\337\252\232\226\336\271\251m\000\000\000\000\000\277\014\367\030z\275T\364\220\325\206\277J\2060\316\264\372\207\334\350\372\227Aq\306\265\255k_\234\313\215kZ\326\277C\247\331\201\002S\3743\326~\307\326\235\206(tpZ\206\271\r\030\356Y\256N\017\345\373\234\243e6L`o\033\313{\231\033\277\225\244\033\241\324\204\332T\357\017\002A\204dd)_\000\261!!\tK\336\026\n<-\316\047p\047\027P\221\016\301}b@OH\226\022\201\274J\022\205j\010=\202A/\023\0018,+s\002\370I\022\0102\010((2\010(((?w\313\260\230\304\343\017 \271-\211![\266\216K\\w\007}\036\003\354\211+j\342\031\222a\230AT\260\236\3540X\212X{\220\276\357\247\333\373\n\252\252\252\253\347\244\223\355\204/\312A\017\233\351S\354\237cd\367\305UUU\222\t\220V\ty\361\004\363Re\313FQHA\014D\312\t\314\206\020\370+K\231^w\207=\324\306\031\360S\030g\317La\232\2460\314\2460\314\247\254\207\253\261\327\267j\341s+\205\314\256\0272\270\\\312\341s+\205\314\256\0272\276\257\313\333\3673\326\235\347\331\365\317_\254=P\221<\317a\346:U:\223\306\020$d\tJ\035BZB\022\022\223""\306\330\205x\367\317d\341}bt\005\t\307\365?<\351\004z\304\312}\340LT\270H\206\002v\347\024\314$\024,\tI\216c\270L\235\242F\263\t\004\322&K\204\240N\335\002i\022\220\315\243\001+\305\237\265/\327\246\351\370=h\242\212(\242\212(\276B\020\323$\026,X\261b\305\213\027\306C\243\344\360\340 \220\361\020\372\2049!\344!\261\262(\242\212(\242\212<\363\316h\206\265\246\333m\266\333m\266\333m\266\333x\232\234MN\255f\246\247L\324\360\211`\373D\275J%\362\224\364\211`JL\004\336\276\350HHDQE\027\314C\241\346\333\300\206\3276!\277\242V,X\261b\305\213\026;y\016\236\033M\335\371\361\335^^\233.:\247@\207Yv\340\203\003\202\212\252\252\252\275g\305\333\264\352\355\333\213\253\321\351\262\343\252\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\246\310\"\tN\036\021\222\207\016f\366\203\214\213/\336L\312\213\326\356\2078Yy\177\267=\327\301(\315\375\375\365\367\204o\241q\233\342:=\252\370\n\371\227\316\305c\022\221\363\264FFB\200\363\225\010B\274\377\rb\201\316\047\264\333v\315\243\3738\263 \032]\2021\200\310\2222\225\330\033I\022J\r\212g\224\023\354\346NOe\020Ma\315\334%\220\3246\264\323\014\372\224\373\034H/\004-UUU_\214\023\336&PK\201<\305\010\311x\221*\014\203 \3102\014\203 \311\325\302\250\360\034\n{\017\316t\364p\"\034(\234P\002\2048\204*4\234I\036\207\230\023hH\t\272$\001:\004\241(O;]%\342\\\tm\372\004\365\300K\305\202\260Bc\261\017\323\220\374$?`\206\3049\323B\026\252\252\252\257\321!\327@\203\037\025\tI\321l\"ti\246\350\226\365\322Z%\256\242\255E\367\342Orjf\244\264\000\000\000\000\000\003SQ\345\242ML\211\004\210\300L\302R\224 \343rd\350\243P\232\257\262_\256\213\2011\023lO@\235@\233\002\\%\t\001/\335\210P\002M;Z\255\331Q.\022\212A \220\023\320\004\202d&\030]\207,t\265UUUUUUU_\225\257{\333\236\031\361\047\311\317\177\375]\347\243\320|\226\255`\353z\320{\207\\BD)\035bT\032u\263Y\275\307\320\235]\224o\304\267\272\214\"Z\3529\017u\374w""\325\351\205Q\343\372d\222H\252\252\256\331\r\275\352}}\375\365UUUU\365\361\2648\342\235\307wlz\363\266\375\213\324\202\220\316\274\303\257\303N\017\017\253\212\252\256\3168\231\320\320\314\314\314\314\330\324\324\314\352Y\310l\345\361p\205\020\"!\342\002\024@\210\207\210\010Q\002\"\036 !D\013D<@B\210\026\210x\200\232\332\024V\241\253W\255B\024@\210\207\210\t\356\373\320\013\014\203\356\200C\356_\340\000\201\217\255\266\320\231t\321z\030)}\222\375\372-\022\331\350\307H\233vK\367(\221*\250\341\206Z*\302\357La\236\024\227)\344\355\275\266\333m\266\333m\266\333m\241\017g\257\177v\020`s\314:u\247\240!\304\201\307\226C\243ky\336\034\370\251\276\333\326\366\231r\266\266\266\266\266\266\266\266\312\251U*\245T\257\247\274_\033\330\217\314\2771\333\373\375\275J\235\212\035\244d\241{P\2504=\243\333\366\033}{\325\315\277\305rqaE\330KP\224$\023\200h\304\000\236 H\254\200\022\t\020\241\023\240\022\360J$\001`\220@\270R\204\202J\022!\004CD\022\t\006\000b\252\252\252\252\244.\352\252\252\252\252\252\252\252\252\253\261\r\310j;\020\367p\220\341UUUUR\035i\016\204\373z\220\233\352\322\275\0364^HY\016\241\005 \210\220\203\314;e>\214\351\234\025\350\364\324=\275\313a\233\315\260B\030\342\301\010c\213\004!\216,\020\2068\260B\030\342\301\010c\213\017Zvd\347\317\345\3747S\033\236\377m\362\371w\370/Z\022.\t\027\\\200\272\047\262C\225\320u,\264\264\262,\374(\355U\342\302I$\222I$\222M|\210\005\242\322\234\227yA3\025UUUx7!\261\017\250H\002n\037\021\004\201\324\207ZC\245UUUUz{\336\377\304C\250Cr\036\257\224\207y$\342C\205\346\325UU_\020CD;\020\373}0\207b\036-k\302\325UUU\343\247\213\304\020\344\206g<\220\352C\223m\225\\\314\314\314\314\343\273\273\343\333o\022\333m\266\333m\266\333m\266\333m\266\270M\"h\022\2047ti\206\235\002l\t\234o\312&s(\231\256\322C\312|\304\023\000\330\207\034\360\004,\016\201\016\376\376\023\277.&e\304\314\270\231\227\0232\342f\\L\313\211\236\377\253\261\002\004\371\303\351\372\275v\207s\370\177\r\255pe\326k5\376?\311\332\241\334\232\340\262\205\356F\324:\306\034&;\000""\212\242p\215\241\030\210z\007lS\220\215\331.,2\037\302\343\020\216\021\031\214\336\270\005\302^\047\214M>Q5\211\242\364\321\345\242\321-\331G^N\303S\313\255F\022\320\000\000\000\000\000\003\262jr\357\343S\232N\371\251\355\352v\363\231\223\237ve\262\333e\266\313m\226\360\261m\226\332\025UB\256\326\0040\010I\013\004\337J/ \205=c\3373=\365!\277(\024\310^\262\\\324\274\023\237)$\234C\257\257\256\366n\033\336\3531Z\314V\263\025\254\305k1Z\314V\364Ojy\344\311\257\220f]I\2515\350\352\243\363r\200\034\300\007D\241z\005\203\320<\302d]\354\251\275\317E\312p\t\000~\035\236\331\372\220\201I\355\203\321\004\372\030\204\013\357\000C\005\240n\001\022\340\007\274\020\367)\221\305\004\276\357g\047\247\315\206g\030\013\331\013!\317e\246[;;k3}w\031r@\324\273#\275iV\010\254Z\226\264X\242\254QVC8\342\306\311tHp\033\232\232w\341\337{\270\345\035\267\303\034\r\266\276y\000\366@\341\"\r\000p\240E\341\023\243\323\325\333]Bz\204\357\302\t\277b*w<\261\220Z\022d\023\300L\245)s\010\021\004\365\ta\006\361[\\&s\277\211A\362\tx`\t\004\241(K\255\312C\010f*\252\252\257\001\017\203\272\037\006S[\275B\014\017&\223\014\364h\211o}\031\210\226\252Z\2523\002_\210\232\240\t\224\270Hu!\231\217\332\375\257\213D:\353\252\252\253\331\365\270\257&\354P\365\303\310\345\354\262\326\020!\244\256\233\017\036\313D\200\220O\023d\\\312P\023\022\024\276\035\320\360\360\2460\316\264w\200u\030\036\036\036\035\375\242 \233\231\243\t\210xr0`\030\200\260\302\"\036\034\214\030\006 ,0\210\207\207$A83\215\034q\306\334m\021\004\340\3164q\307\033q\264D\023\203!\204m\217\025\332\261v\372\201\354z\307\267\302\363\367\330\031\225{\001\010\257`\204N\304\253Y\263cxE\372H\251i\307c!\365\334I\222u\022x\035\t\256tI \232\"\345\3012\264\206\2216\004\302\360H\206w\323\177h\235\"A-m\"UUUU_\016\275\210t!\265\207\217\323O\047q\0161UU\333\034\271\214\345\223\234\010\004\002\001\000\200@ \020\263Sq.\272\205bWU\014\204\264LD\322%\366\245\370P\317x\221\013\210t=J?P\202U\035""\322\250\305F*1Q\212\214Tb\243\025\037.\357\230\360\361\\\361[\267\023\303\244<>z{~\004\030\035\342n\\\230y(\3722\322]\265E\242Z\250\324%\304\022u\245\327%\377%=\223\320C\355n\351UU\335\225q\206y\254\346\000}\242\014 ^\207\324x\370\242\352\210\370\243\362\000 a\334\350\036\021]\021\314\315\003\272+\242o\320\333\214\343\202\3547\313\213q\227\202\360\033\314\302oe\330o\2442\315\367\271\275\273+M\266\271\265\273a\324\237\047\202w\303\342>\047\361~\336/\247\360\273\375\356\275:M\353\325U3DK\256\366\037!\362{;S\250\340?$|\202\007\230@\366P\276qby\306}\357^\320\356y\350\333?\027\213\254N\263\314&\\\036\261)\013\265\345\207o\226\237\006\325UU\323\216/\020\010t!\333\246~?w\237\277Mj\353A\227\n{\221\024\234\"\223\316\212O\177{\273\331\253\226\222\345\247\315\317wf\366E\024\362s\335\336\315\\\264\233E\"\212NH\244\367\321I\330\212t\314\354\331\275\223\275\024\237V\212O\214\212N\204R(\244\346\212E\024\212)<\250\244\341\024\237`\212O\201\024\236(\244\341\024\237d\212OQ\024\234\221I\344E;7\273\275\232\271i6\212O\201\024\234\"\221E\047j):\021I\302)68\247\233\326\335\336\315\\\264\235\250\244\352E\0474Ry\221N^\276\356\366NH\246\256ZO\220\212O2)=(\244\355\370>^\377#\3179|L\345\276g\217~\356\366j\345\244\361E\047$Rm\024\236\272)<\021I\340\212NH\244\364\"\236\277\007\253\301\307\004\346\212N\224RzQI\326\212s\317.\315\354\233E\047J):\021H\242\214\324\365\346\247\247\273\226\265=\2362O\207\320O\035MOX\207\022\034\020@\357!\360\372hC\267EUUUUHkJ\252\252\252\273NHw\004\022\016\344=$,\017A\346\354&\3569\360U\322$\0238\220\260\232\016}[\2206\266\250\314&\315\002w\220\352B\360\207\033S\251\007Hk\276\233H\026\351\rz)\334BY\002\315\2241\315\230Mx\347\263Mn\270M\202y\352\246d\317\003>\272\026\000\001\306\231\266s\225\317`\010@\221\001\221@\232<\312\303\243\273\253\310!\020\321\020\261\000\204\303DB\303\243\273\253\300\0047\206\210\205\207GwW\261{\237\304f\314\345\321\227|}\227\260\306\301\320\317\324\0024\006\204\226\200\353\022\005\316\013Q\017!\376<\276\212\0362\226\036f\305\036\202\214\027\236,9\354\347\336\tx\235\203\241L\302X\035bv\372\270{\240wy(\276\3641\270\t\010!\340\031\217Q\016)\rHa\013\366\210x\020\372zUUUUUUUUU_\021\264\220\364A\037I\010\030b(\242\214\3030\3143\200\363`\353\232\201\002\302\000\226\024]\302aK\016|\036\242\345Cd\026\362\350<\350\275B\260\003\251\002\007RN\2564\371\204\334\352\201\351\357\247\315\365\376\032\020\367qz\020\265UUUu$\r\271C\237M\236\327/\254\352\266\333m\266\333m\266\333m\266\333m\266\3376MC|\2609\371i\250\035Hw\235\335.\210m\312\034\345\230\206qO~\020\206\374\362@ \020\010\004\002\001\000\272u&\244\327\327\373\026O\217\367\260\236\310u\047H\203\322\364\243\344O\211\177\305\023\257\356\375s\200\036\326\350Rv\nH\247\260\302\007\214@\355P\"\235\250\300\355\036\036h\034\335\224h\023\326\047\260N\221;\257\311\003\047E\023\334$C0\226\276\005\375\224d\0235M\232\252\256\316\234^\204!\364\241\010\200\200{\351\372\237/\276|\263\322\000u\002f\325\305\312\016\327\"W \016\000q*\362*\304y\021\211\310\223\313\237\210\217\000&\271bE,\247\312$.\272\342J\204""\200\233\360\000\321\231\244m\302\334F\334-\304m\302\334F\334-\304m\302\334F\334-\304m\302\334F\335HOI\354@\003tQ\335\007\261\027\260\016\304\315\361\360\341\007\257\200\242\252\216\000O\300_\035\340\023\204O\214E\2448\220\217\023\305\224\311\247\210J\023\220X%\244\340\003\362AB\326\222I$\220\222JT-\315\302\201\302<\047\n\225\320\005t\214\251\025\321\227*C\221b\313\005:N Y\0223\231\230,\000\362\002\300y\024\2529\031\311\320\353\360\201\341\342\243\300\023\230\036b(\232\340\321\327\314\034\246\370\235\301\007\203\212\215\344J\370\201\350\206\350\016\372\214\022\254\222\255\233\251\212T\220R`\021\005\374\356\210c\"E@\311T\310\214\212\266D\366\273\317__u%\203\267\267\222\307\030\277:\235Dy\020yPb<\252\305m6J\342-\262H\006\256W\255\262l\201\262\257\212\255S%A\025\302%\204\254Q\274<\000\220\341\352\036v@\214w\300x\220b\203\252\373!\256O\350\361\232\347\262\206/4\365{YOO\203`TuAeM,\255cf\212^|k7\365^Ef\367\r:6.\261A\003>\326y\303Z\232\337~4\257Gs\316\247\323\0168\341\314\241\251\352o\016\211\237Sf\365\260\313\005\226\2421.\3257\313m\034\2557C\206\265\363m\244o-""\316\225\243\351\325i\333^=Mkp|\332\315\256\214\373\305\342\212<\004\271\260\205\350\032\344\373Vkl(b\312v\353\224\362\352\330\025\036(,\251\245\225\254l\321K\317J\315\373^Ef\367\r:6.\261A\003=3\316\032\324\326\373\361\245z;\236u>\230q\307\016e\rN\315\345\3213\331\263z\330e\202\313Q\030\227j\233\345\266\216V\233\241\303Z\371\266\3227\226\347J\321\364\352\264\355\257\035\232\326\340\371\265\233]\031\367\213\305\024x+\000\240\213`@\301\0232\021)\221\020QW:\t^\201\260O\275\246\267\312\206-\023\267\\\247\227V\300\250\361AeM,\255cf\212^z\326o\332\362+7\270i\321\261u\212\010\031\353\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jvo\016\211\236\315\233\326\303,\026Z\210\304\273T\337-\264r\264\335\016\032\327\315\266\221\274\267:V\217\247U\247mx\354\330\343\262r\261\306\315Zl\267j\374\257\272\247\375\371T\\\010\250\026\371&\301*/,H\202\014d\000%0T\0161c\260\302\370\206\324\237\245\346\332\354\241\213t\364ye<\374\233\002\243\224\026T\322\312\3266h\245\347\306\263\177E\344Vop\323\243b\353\024\0203\341\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jz\033\304\372g\320\331\275l2\301j\324`\246\273T\337-\264r\264\335\016\032\327\315\266\221\274\267:V\217\327U\247\243^=\rkp|\336\315\256\214\373\305\342\212<\004\271\260\205\350\032\344\373Vkl(b\312v\353\224\362\352\330\025\036(,\251\245\225\254l\321K\317J\315\373^Ef\367\r:6.\261A\003=3\316\032\324\326\373\361\245z;\236u>\230q\307\016e\rN\315\344}3\331\263z\330e\202\325\250\214K\265M\362\333G+M\320\341\255|\333i\033\313s\245h\372uZv\327\216\315kp|\332\315\253M\226\355_\225\367T\372\261\022Au\202@Y_\253\344\330!\014\260\226\230\327\3006\204\374\342k\235T1l\231\360\312v\360l\n\217$\026T\322\312\3266h\245\347\302\263\177;\310\254\336\341\247F\305\326( g\303<\341\255Mo\277\032W\243\271\347S\351\207\034p\346P\324\363o\003\351\2376\315\353a\226\013V\2421.\3257\313m\034\2557C\206\265\363m\244o-\316\225\243\351\325i\347\257\036mkp|\332\315\256\214\373\305\342\212@\200\360\r!\204/@\327\047\332\263[aC\026S\267\\\247\227V""\300\250\361AeM,\255cf\212^zVo\332\362+7\270i\321\261u\212\010\031\351\236p\326\246\267\337\215+\321\334\363\251\364\303\2168s(jvo#\351\225\305\246\275\217.\032\255\014\024\327j\233\345\266\216V\233\241\303_\030\266\3227\226\347H\243\365\325i\333^;5\255\301\363{6\2723\357\027\212)\002\003\314\210\027\246\345\322\367\241\366\373\010\177d\224\205\t0i\021\222=#\335\223$\206mL\023Y\241\023\375\203\331\207Q\242[\032\2726\222\323<,\036\245\003\326~,/\021\0061\320\351\254\350\004\021\013\225\325\013\3373J\230[\213@\317\276\036\261\371\277\336\237\300\307V\004\010\002|\270\223>\207i\250^\325r\t1\225\254\000\261\313T\264\266\301\353\304\251\000\334\304\266\305P\"\262\005*\313\240\374\035V\360\272\250\311\20620`\314\243\340U\356\377?\000\3048*\210\221\007P\016\362\214\020\336D\3366\323t\375jC\374V\017\234c\023$Wc\370\270a\301\247$b\374L\210p\334\007\203\022#g\316\247xD\350\270\243a\275\017\244\317\243\037\320\340I\265y\201\231\037y\211\333\034\023\371\353\321\207\340\332\314.\220.\311\014\356\255VCg\031\302\232m\245+\321P\220\332G\372\300\3010\227sA\302\031$\254\225SL\257\253+\324\202\014\030D\266\324@\004\316\311\024\031\001\010\032\365a\344\313\"B\"DKa\252SX\341~}#R\374\245\003\302\242\017\261>\030\373\302\262\026\205\357 \372\r\210M\375\234\270\357\376\346\316\307\216\264\315\231\t3\236\323p\344\336\332\342\257\200o\204\010\301\204\213\244&M\356\270B>&\273\034L\235\346g\243\315\204\347\212\204\366\320\276\007\200\252\364<~G\237)\300\222e\020Z\213\362\265v05_`\001\262\300\273\224\221\220\"\000\262~:\004\306\000;m\205\262.\315<\246\267/\247\251q\252\330&\262\006\324W\322\347s\330vz\033\204\224\354\332\250\005\025\353\240-\312\"\332)\331@\354\270^\027Y\367\216\213\311s\240\346 op\304\035(\352\030$""\267#\346l6\303\014\347O\004\212(LIB\027B\303\306\371\031\271O$\323\265\246A\034\032#\345\343\236%-\025\034\021\2736\021KF\305\022\2665R\241@\251\022\361\014o\215\n\2166.\277\tyn\340\037p\014@\367\025\000+\335\336\257\304\360\234\225$;\336\323\247\326y\320>f+z\337\217\236\2573`G\353\243\365\376\306\200%\235\340\206g\004\306\220[\313\2238\373\353\360\362p\245\317\035C\306\206\335.\032\356E\356\006#\341!\"\263\014\256\217\254}o\253\365V\345\336\r\277\0055\0065\200\214\250@{\030\366\355\020R\336\375\247L\210\307\020\225\244\013\030\214\027\261X\035\201\301\305\305\305E\r\252\212\216\311M\254\220\205\315\026a\200\256\024t2\344\010\022\214\204\t\352\371\376\275\274o\271\374\223\2009\337_\003\343Q\007\003G\353h\314g/t\333=\262\352\227I\216\2142~\355\264\247\203\230\253\3737\2153+\330\216!\027\303W\227g!\216m$\333ko\337y\234\"\030\221\243A\003\343\273@\232t[g>Fn\23365G\202\033!yU\234\n4\322\332\234!\215\251o\274+6\020\242\257\210P\367\367\235\350\367\257\247\300O\234\327\355\344S\3015\236\"\301\344w`%\313\335V%\217,\260<\242\272\325`\032\3200n\003{z\355\342\310\366\3358\367Y\352\r\2665(A\321z6\350\216y\027$\034)r\036\265\004\246a=\353\313R\347\026C\275\204\006\016H\250\371\020\240\360\014+\242^\343\241\350\3435o\034t\000\031\200\000\001\000\000\000\314 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000f\020\000\000\000\000\000\0003\010\000f\020\000\000\0003\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006a\000\000\000\000\000\000\000\014\302\000\000\000\001\355\361\212\200\000\000\000\000\000\177\325\264\000\000 \001\230\000f\000\000\000\000@\314 ""\000\000\000\001\231\230@ \000\000\000\000\000\000\000\000\000\000\000\003m\014\314\302\001\000\000\000\000\014\302\000\000\000\006`\004\000\000\000\014\302\000\000\000\000\000\000\000\000\000\000\000\000\000\000\034I2twu\357\233\326\016o\211\275\362\350\302tMf\272z\263:\047\373`]\230\220:\244@\021\365z\321\331n9\350a\177(4\353\322g\371\360\233y\022(\252\013n\014\352wPf_f\360>\n\217\n\245M\300f\352\335C\220\330\177h\200A\306\333\315\255\032\316\251br\356\315\227\232\264\256\t\3446\005~\274\273M\211\255\004\023\024\036$Z\226:\3721\000\311v\300\306\237\225\263D\211\235\021\010\210\210\020\030[CA\370\354>\217\300\313BL\003\224\355p{\261lC\212\263ncm\305JZ\021\200U\334J\272e\315\241\233\000\250\355]\315\226\314\266\257T\2707nhp,\256\031\267\264.S(JW%\316{\210s\224R\200\364\026\230\005>T\200\251\242\354\010\253V\220\212l\303\025\005\361\027>\337\334\331Tyn\333\t\254\000\246fdL\021n\355\004\247\355\010\327\314\350\350v\005\024\373\211\025\001\212\036\234\227\354\300\324\032\364\355\367\222\027\340u\350\336\301V\207!\030}\250\251\372;\002*\014\203\275l\277\002\320+/\264\275\214-\001\241\010\022\022\243{\217WD\332A\212\010\354\266T/3\021WA\355}\001\001\203\373f\032\2058\307\033\250\013\210\307\353\313t\276\343bd\321\314\232o\0201A2E\002I\274a\357\274\276c\267\313q\270\\\350\r\342\004\211\263\223\047\356W\t\t\242\342<\234}&`\220\332\316`q8=\025\262\360_\310\027\016I\216B\257\307K\264\255&\305\005\320.]\036\323\332\017\264S\322\036\227\322\"zQ\017J\037H\274\347\323\352\047\273\317\306\\>M\226\222\374,K\245\3222\300v\210z\201\"\036\240a\310J\014\271k\244Za\n\260\221[e\024\300V\216~z&\310\365QNC\025(\036\246\336|\013\030\325\326w\004w\201b\033\302M\354L\342#\"\252u\323\275U\276\307\250\353\354\360\253\2365;\014\246[*e b\343K\343UEl\025\263\020\213\211b0\202\275j\234\3277/m\223\001\022Q\357\240v\311\314=\236d\312Q\353\367g\301\236 ^pX\2178\260\347:\037\002\022\007,\250\021\022E\004\221\221\000\002EBFFO?P\034\333Sj\0327\303\330g\317\347\362\356\243\013\275\n\3049\265\024\370}.\035\323\250\256=F\307\344&\317>\354\320\212D\341K\004\010\343\311@\026\n3\356mMH`\244\213\3556K\"\245DE\013\r\266\222\251\270*\351su\017X\310`\342\035\365\370\220A\315\243\273\321\355\303!0\014\316\315\334\re\303j\\\033\263\037\226\256-\275U\262\024U\266\207r\001x\\\202\216\340\315\3535\004\307o%[?x\035\313\211#l\r\265W:\306L/\324\"\202\341\276N >J{\014\214BF0J\017b\316\303xU\007K\036\031\016W\232l\363\027\234\336,\231>l\271}|\2662\\c\356\336/Y\321z\331*\036w0\340L0-$\3610\207y\347\327^\375\251{g\351\021\333\027\001b\262c\333!\212\347_\254\265\240\255J\304\022J\304V\247,\034)\006\031\362e\300\025\034\010X\003\006\000\300L\272k\325p\257\266\234\303\215\332s\337(\332\203\224\003|S\306\203\000\361\201\017\031\206\034\234d\225\325hJ\342""\276P\325\200\231\206{\232\272`M\214\201\002SM\204$1\204.\222\024\202\014^{U\3274c9C\227\306h\325N0\361\300\n\372,a\343\330WS\344\240+HnJ)\377\010 \305\020s_eR\247P\331Mt\260\023\014\255r$ Dw+IN\306\253\342\263\200\022CfH\203\031\301,\206\321-\316M\013\344\230P\335c=\323\003\\{[\024;c>>\2750;\203\313\243\316\364\367\217Q\337\207F\n\t\031 ,\260\357\037\240\316\037\031\017\032]\370D\333\231 \201\230\202\215%Fb\003\234@\017F\342}\r\232\331\242\335\2452d\311\242}\035\220\2027Dy\226\356\355\342\320\047\225\320\032\372\253~\356:\356h:\000{Tb\275\252\303\265\343\370\370\3128\010\324\206\307\006\305T\tk\254\034\334|\330\033\256\354\032(\370L\311\340D7\203\321)\002\320\335?\nV\032\000\373\rZ\246\212\357\323\2664\237|4\3548\230\276`\261\252k\206\241/\202\226E\\l\323\343\354\021\006\335\t\237\322\013\034mv\243\265\000\226\314Ls\371dIeRY<\236V\310\201\002\225^\3569!JdB\216K\266\345\233\t\332\2349\233\252w\313Z\244%r\270\352\331\312hp\306\307\003\2521\274\r\032\202\322(b\260\047\0142\270\303\232\300\371\"\272\343b#\260\225\264\302\242\324\250G>\034\255*\273g\263\323\354PT\332>\030Y\027\360\270\200uu\364\320h~iVA\3506\366Nnp`\317\022\326\331\331\256\004s\362m\237p\267d\350\304(\r\342.\341\224\271\262L\0370?yR\026t\216n\016j\006\320\322\222\252\026\366\252\271\303\235v&\343\221H\327\300\220q\002\030OB\223\321\352\036i\305\232h\352\257\201\271_,\314u\273\323\254\253\214\032=\210 \350<\242w\261\363\037\252\202\014\210 \305\020z\361\315b\301\301\206q\301i\246\335\307\031I\262d{|\256H\255\270\341\331\274\362s\322\252\312\2354\237>e8I\250\\+\311s\252>C\342\303\305\276\225\216\230a\217\016\235\222\311\263\344MO,2\023\366tp\007\036\305\260Y\014\211\333\265\355\356\002C\304\236\306\346OG\235\202\010\254V\n,\001\025\213\026\021\212\214Ex$\366\003S\200T\352\3716\003\332\366\372\321\330\233\254\371\023\233U\025v\2121\307!s\230\023\255R\t\326$N\264\315\347\225\334q\266\020\003y$\230\r\340\030\336+\311o\323\353\317\220\213\347\304\316\241\215\327`\327\243&J\246\370C~T\310\345\211\317\212P\320uV\022\242\316\266g6\016\214\256\003\310\360\rW\367\201\346\317;.Lm\362\264\2601\021\331\270\246Iyog\003M\215s\245\221\227\253.pk\266>{\275K\355QD\247\365\232ab\373\206\255\275\034\030\247\256\245\234\324k\021\357\202\366\264\025%\006?!P\221\014\375\010\214n\356l5\340\267\343>Zj\013\317Z\3745\275x\224\312\307;\231\211\361\326F\214g\323kSz^M\321\020\320\303\340\320\224\350i\264N\202\252\345D\262\300\007t\t[%*H\351\242\300\005Mn\261/V\035f\202\r\202\213(\006\204`\004\227j\363\366G\305\270c\344\355[}`\0010\246\005\310k\302\320\023n\030k\273\333\237%\"\005\366\301f7&\202&\3329e\013\r\310\323\310\031\004P\252\243\252\235\370l\354WG\031Y/,\225\002\320\21712|r\336\222\353\255W^\242=6\235rn\303\257\236UXm\224\340\207\301\317&\273\034\"\367q\000\271/\252\220,\3052\211,\244X\226\306\305\206\246:\027\235A\264\002\370\314\254\014T{i\351D/I\350_}\005\312r\031\270>\020\374|\250Uj\026Y!}\270\250\203a]\254\264cR\343\024\230\0051\033\"\321\271\224\003I\2560S \3650\301\213\352\031\220*e\035)R\250\372\236\353`\204\002\353\2007\007\273\323\330\365vqe""\3337C$3\301\265\241\272h\204\212\0141b\320\311\216\322ay\255\2748\350#l+\003\303\314N\177o\235\372\363yM\014\225\273\346\010H\207\266\224\336\320Oh$\010\244 D\353\341\233k\212\047ww3\303m\267\3566\356w6,\252j\354\225\223\031\333\177GY\320&\336W2z\340p\2012\310\355:o\321\213V\335\260pm\345\314\003\332\217i\350\007\320:\324\372\013\310\242\252\247\336\244\312\262N\r\332\302{\375\004T\023I\204\t5@N\251\303\370q!,\242\023\001\225\003e\241\275y\211\203\323<\236\201!8\267\003$s\244\032\374*\262\216L\246w\312i\227\275\372\036\2639u\261\205/\t\341\364\214B\0220\222 \311! \300vC\253p\276\203GXQzq\034{\270]\257\313\247.\305\327\367\312\3067\2738\343\254\023\352\"\022\010\031\"\301\351\"-I,\014BD\322@\262\021\"D\326\210f}\347k\330w\200\375\036\334\201\257Hzh\372\356\002\333[\005\266\214/\335yc\263i}\327\205\203\225\027X\204SX<:\007\305Q~xc\303\317\315Y\322l\237\204Z\307k?f\214L\220\\L\tq\216k9\255\244\005\255\365o\201#\201t\010!q%\352\265Edr\270!\305,\351\370\341a/22\214\022e9\354K\362u\341\001} d\027\322\033\212\200\253\264\340\317z\027:\360B\211\316S)$\360\202Y\2173\375\330\211\344:\000\027\227\241\346uX\235pb\346\033\214\240B\300\033\350\222\312\335\201\n\322@\311Z\001\225\245`\311{\327D\207i%\306\320U\211,\327\275%q+\304q*\047\010\036uQ\363\201\254CXr\200\361\361=\322\212\344\344\361\335\311\204\337\210W\325fd\207\022\241\310\211\020\344\022\034\206W\047\037\tV\256\302\022OIu\327y\355\323k\245P\360f\177;\336\252#\265\33060\246\276\226+|\331\257\247\370\014`\3118\200bC\002a\240\375\2123\316\225\016\236\225N\220z^\236\220z@zC\316\206\032!z\315\047<}L\014W\201|\322\033\222G\027o\202F\020\001\204a\004\307Q\343^\236E;y\003\2758\203\207\204\023uw\311\344\233\244+l\337s\244&\036\232\332\0207\005\210n\t\r\303iNnaN`\3336\327o_\355\361\321\271]V\206\3575\215\273\241\2172\305\357\362\226w\004\035\341H\206\360\223x\336\003}\213`$T\332\022*\212\252\245\373\231\\\251\215\355\001\365!\n\221\250\302\261\262\355\201\001\270\t\024\334\006nm\210tq\233OG\365\304\325\2614\316\036\232/0\261""\267\267[[\255\354\204fY\262\250m\202E\333B;n\330\033|)\315\271\375~^wx\332\272\326&\356\376\341.v\260\336\010\260\214\216\3776\330\013\272\251\027t\010\252*u\355\237\271[\nMA\212%\026\240R\220XrNTN\016\257\363\356uV\337\204\020<`\375W\375.*l\315\3204\221E\212\355\276\033mjm\275\223\031u\375}\314\321\000sm]\223\207\2166\333w\211\003\322\374\026\342Zk\372\\\251\313\0039\213}\244\312w\303\344\206\047\313\256\336\362\3524&\251\2353\377z\203F\t:\260\026\306\353%JKl(l\302\237O\305\006\003\360\237 \213\363\242\247\315\020\020\212\220\022*\204[\351\313 > \201\010\212B,\021C\363\021>r(\251\271\330\372\347\212\325\001`\232N\017}\245Y\037\352>\312_1-\0260/\214\200\250\306]\305W&\361$c\345\375\027\017mH\242&R\252c1\n\216{_C\371\371\377\357\307,?w_\262\0040\200l\302i\341\221`\000\265\007\347\017\312>\363\237\335d\017\321\017\376k\265\261\025\037E\017\263\370&3\363\236B\351j(\227Z\325\374\202\243j\005\371\0047\020\2546t#?_\213\232M\277\326~\347\307e\371>\370\177\345\234!\211\276kN\215f\0062\214V\264\177D\374\317\356\300\223\373\027\377r\020PY\024O\226\022\017N|\212\036}k\003\n\005Xu\241l\254\t\364=\370\"\277)\350b}\332^\207ID\262\013\367h!h\250\307\235mn\025\033\255\223\340\242\203\204\006\220S\3429\376\005F\340\023\253^|\350S\373JtQV\266\302\341\047NY|i%\324zj\211\215\205L\337\313\241\322\366\177*\227\237\332\324\001\266\025\024\224\047\206\353jYC\300[C\250\251a\373\375-\330S\323\364\357\241\351\356\207U\352\251\230\276\n\217\321I\206!I\335\252\231\n\217\303Q3P\315y\230Tff\270|n\337S\360_\362z\323\367\010B\000\t[^\260\372\311U\266\241\370E0\353T\230\335_\177\014\000\0275\236\347_\303\277\326\353\177K;-.\365\351B\315\313\215\315\000\335e\344R\227\262\256\344\024\n\330*8\324Tq&xe\023\356\377\351\233\373\364\325\212\222\177,*\310\177R\325\202\352\025\032\376\034?\035\370\376/\273\255\330\370\362\047`\336\277\304\"oK\363S\371fS\017\321a\207\000=\332U\214\025sA\310J\333\364\006\367\323\277\272o[\303$m\337\371\253k\207\017\0254\266\230L!\304\2069Y\364\344)F\341Q\233\374\3359\013K\204\254\247\030\236\326\235\315\363\207JW\210\243p\034\037B\030v\255\355q\035\272\031\373bP\014\306r\227\330\271\2708\036\377&\222\207\216Hv\272j|T\302\352_z\323\214\315(\224\220\263\331\006\271\224\337\016\016Ns87\331\311\373n\300\002J+\311\021k\354\212P\241\036Z\030nqg\337\245\016\300&\371G\2107o\004\351\047\rw\360\266V\3608%\302K\250\334\005\244-S3y\014;\"\273\210.\356\370\250\330\3207F\226\2057\r\336\200_K\207\330\024\035\3509\241\230\023\312S5\3448[\362C#\366x\342\243\272\"\265;0\335H|\001\272\002\374\354*\247\261\301QQ\205\243\303\202S\002T\224\237\260\3359j\215\014\273?\302\207\001\t\276(\206\370\250\305P\361G\303?n\025\254\274\n`\276\0148\203\027\207\331\356\361\370\024\324<\201\002p\250<\302/\227\340\265k};\2258\205\344\224\344qM\316!7\374\033\332\273| \047\030^\026\0200\007\356\027X\366\304\263\025\014\330\203W\021W\266\206\\p\310=\221!\374!8ZI\333\n\034\007\002\225\236\361-\355\314!l\356\010[\036>JV\361\314c\210\234|\202\234\034V\010\277\014\002I!\t\010H""\022,*w\350v\257\363\317\200\302\333\241h8!zq\235\333\335\363\021N\022\017\263>\300\223\202\024\374\235\273j\251\306\t\366\313.\343\2737&\027,\273\032\"\246E\016\326\361!\275\235N\322\221\3668E>\311[\203\314)\332\366\263V\177\014sr#x\224\277\270\245\004+\200\230\235\336\347\3554)\310\244\212p\212\215\002\3049\004,\021\343P\245\202\234\207\234\017eg\001\373(\034\013V\220\262\224a\336S\373\336\363\022\255\312\305+\334\016\027\316\000\354@z\300\322\210~\031P:\320\240\316\3657\356{\003\345\022\267)KV\201\336H}\257\300$S\262\017\255D\357A:\350vh\367\257\354\275\2133\030\2150\347\376\336\027\337\225%\300_\032L\000p\240p\025mh\341\032G\335\363\207\327\353\251G\335\360\275z\330!7iOkt0M\330\026\370p\336\250\204\301\014\303V\246E)\223J<\304\362\220\354Q7\275\363\257\331j%\211\271\275J\341iR\224\215\034\032\373J[`UH\2443\023\363\201\353~\024\353\210U\367|%\275\213\224\267\277@\245\0024h\002\224+]\306\264\0220\013\3773\353\251\007\360\207\274\245\017[v\300\250Z\024\201N\311\353\245\033\006\301 4H7N\304\334\374o[\327|\"V\212H\366IB\205\016\305\177\271\270,KE\"\330\021\264I\337\357\370}U\016i\270\315\336\304\006\205\010V\226Q\256\341\270\322\320\261H\264ah\246\357\177\255\364\017\254u\304\245\030\311)\336\016\301\330\255\205\213\005\023\"&>\370/\357\013\206\264w\236)\r\254h3\020\023yD\361~\217\023\310\221y\033A\211B\005\267\257\270\376\276\241\032Q\047\251\"\327\323\255z\347X\270\252\020\013\210\370\234\001\3763\337\361\n\243\353O\315kO\345\375*/\332F\305\316*J\047\371D\351\017y\366\204J?KU_\030\237\234>\302\027\277k\034\ty\370\324\374\017\356\374z\017\265\374\265\365\336\337M\255\366\332\037\253b\347\"J!\206#\211E5\034=\335\177\024.\277\331\332\243{\235\033\241\336H\021\220\201$\004\344\343\274\032I\020\047H\034#\253\3465\035}C\317\257\330j\177\354g\306\204}o\035\340\010\226\244H\202NaJi_^.\363\263\300\366\367~\266\215\276\270\304~v\361\216!\3517\251\310\3565\232\233pf;\317\246\t|7\t\004D\004\337\261:6^\266>lgs\037\037\343\364\237W\3020^\361\036DC\320\3219\037\256\047k<\217v""\264\037\204\367\374\202Dg\254\210\006`\367\267\353\366\032\377\257\304\3616\342\021\022C\3223\021\017{-k\027\177\210\201\311\311<\364\217L\313\3715\035\237Gq\334\256\372O\2610\243D\001H\020\235\033\004\216\305\244\371\257xY\326\217\3241#\323$#@\360C\273\330\263\215\"\322\3700\302\367\036\364\204\023S\220}\251u\360\000\263!\177\206S\267D\232\016\020\366\037p\362\2049qS\306\353\211\035\312:~\336\330q\226u:]\337\304)\312\202/:!\312\212wy\273\301\360:\365\212\216g?\350\236\300\n\236\362\347\356\276\360q\207\353W\311\316r(\372\250A\211\024\003l>\311\371\335g\346>\317\335?*\374\206&?\002\373\010\327\224\317?\037\321+\347\251\371\317\323wY\360\r\343\341\301\352\374^\013\325\253\335\230\221\356K \020e\356^\365\022C\243?v\205\365W\367\007\324!\315\371\203;#\351\177\322F\230h\376\036\357\276C\374b\177\241\212GY/\271%\213\337\207\360\237\303\371}\202|D?m\177\221)\205Km\n\022\265%\323\301\355\366\247U\244\374\342\237\245Ohj%\022T\202\\\321W\377\222\217g\361~\200\217\235O\355\t\365\244\271\201b\201n\242\252\377\370\330\335\3767\343U\n\374\313@\377\264\010\205\021\006\350\245\305Z\322\324}\277\203\371_\312\014\023\364\300hDJ\221\263\206\235S\275\326\207\241\350!E9\357\201R\200H)a.\272\224\232\223\322\353\363*\257\242\t\347P\020\251\037lNdC\233\004h@9\276\255\ro\333\204\373\224E\204G2\250{\362\360_j\002\207\357\004\013\020C\350\020\017\\\024\333A|\"\247\300\210\037B\241\351\021?\230W\356\024:\304NtC\205\024\337\025\335E\346\252\033\021\177\222\001\370\000\016\240\017\302\"\3764\023\242\210z\n\007\276\003\356+\366\224>\312\237aO\256\047@C\320\003G\007\025\nz\262\2349\371)\351v6\374i\t6fC\217\352]c\271\317\047\033\351\242\034o\254\340\343Hte\243R\217FXZ\"A\235)BHJQ\251\021\021\021\006q\020\314\300\311\250\\nm\306\047\034q\270C-\337[q\257s\203\207\036\002\214\2206\2238\262MN^\036_r\361\220\002\223\253n\371oku\323J\034a\232si\216\3339\213\272T\312^.`\243~\236\256h\266\343\023)P`\2623\244\326\344a\023\016l\201`\201\021\002\014&H\035\201\354\020\310l\006\333\377\021\311\266\333\332w""\034\315\265\230\271\273\2233F\363\226\246\256\227\013\37266y9iUy\312\335o\227\235\376\206\266$\204\367\272\367\352u\333\234\351tt\323\024\352\311\264I\r\322kT\026\246\351]5\n2\242\307\232k\215e\333t\343\215\270w\337\21635&\310m\306\327!/\0252\361\266\343x5;\007\357\317?\357\231!\202\372,\317\317\254\006{4\250\237\354\325\303d\254\312\331E\257\206\026)\205+\321\243\215N\353F/zgw~\036$\335\363}\357\267\307=\236A\376e<\300\366\036\353sl\316\301\334\036#\303$\301\0229\205&F\211L\270\324\311\205P\251PR\346fV\322\210\226\321\005\221\332r\366\340\271\317L\326\\;;\335\267\276-\353\265\337%$\204]\366r\345\271Zd\316\217\230\313\275\333m\273\337{\034\337\031\013\200d\0034am\262\206\265Q\025u\2543#.7,\271\230\340\253\231o<^zm\255\353\307\006p\316\030\222B\047|\332\316\\sG\027~6\340\344\201]\363.\306;\312I\t\252I\t@\341\213\t,\322a\2651$\020\264\201\001$\221\270T|v8\304\262\013\350\024\372\361\311Y%T\231\006\344r\2137\241\372*8\334i,\023\347Ri\356~\313\2501\354\373\314[\232\341\233\207\013\225\311`\237\275\360\375\344\376c\363}\355Z\366w\024\266\360H\311#UI!\030QTRF\320P\266\306\"\221\030\242*\252\253\025X\262/c$\201\355\207%\017\315\261\r\337\207\352\347<\355\231\230zjkY\210\347\221\351\243Z}\243k\306T\343\271\264\362z\367\307\243\311\353N\310\257C[u-\220R\325-[\001\261\014T\301\275/\013\333\357/////\"Q\037\344\"\365\372\234Z\300\255\360}O\211\362Q\351\000\261\243\266\201\002\\8\275(&\004\010:P>\022\\t\245)\223IbOJ\227!\372d\221\305\023\224\200pG9\032S\361.L\2463I\244\322i&\315\240 \2469\315E\234\372\273\021>\204\210\234\321=4\210\3363\047B\213\021\006 \340\005\010`\321]D;*A\302\205\242\274)\242\033\222+\002\"\004\214\016\206\364d\014\324\2429\301\252+1\243\303\272\177v\026\200\240\034\313\24378\272\326\333\233o\37576\233S\247\034e\346\230\230\200\032a\376T\047T\"\251\202\rJ#\tfe30J\316$\3102 \"\003\237\032,G\342\253)\337\224\020>@\003\251\007\345C\332\036\201B\300\226JE\245\n[Y\022\300\226Z@(J\033\026\001,-\202\305\224l\241a\265\225,\255\226\305\205l\215\222\225)B\222\326""\025\2626\002\326@,\255\202\221\n\020\244\263d\033#f\326T\260\266\032\024\244\niB\205\241\261`\002\302\330i@\240\nZU\245i(@\241i-e\033\013b\326E\260\005\202\326\020,\245\202\225i\032KX\010d\014\224\tBS0\t\204\214\010\302d\314\002b6JD)\002\202\201\n\006\222\326\005\260\266(\006\220\020#\000\264\220\240\026X\022\222P\244\222\201C0\200d\014,!HS0\222`\030\024\220\244-\020\244(\241\032B\270l\243dlP\245\rP\245\001E\000\322\264oXB\302Z\201(JL\355\201,\226}\266U\260\026>\273\"\330\217\234{\344\302\007\311\375L>z3dU\213\217\353\214\371\276\203\350\300\032nV4^\366K2J>.V\001\302\313\027Ik\3048\227\253Y%\202\221j\310\245\256\324*\322\224J\331""\244\260\306\324\222Ha\302\313\002\252\226\270\342c\204\275\271\211|\372,Pe\241\214\231\355v_\343\353\360F\277\270R?\340\003\354\006\344\017\002\203\200\207\332\230`[\300d\330r\312\220\252\252\203\200b2\022\032\323&6\000\035\004\t\246m\251\254\222Bh\351\305+\035S\220\260\220\301\014\003Y\300M\001L3\027\233\255<\304R\302H\250\202\004T\031\004C\001\306\347]\317a\373\213\007\235F\257\360v\274\250\177l\017\337\364\366\353\323$\231\246\232\347\352\010{\257\355\2271\223.\270\271s\373\241\305P\304\243\347\214\257\352\336\343\"g\341\354\266\333\217\357\022\250\225\321\324a\250\245\267\376\372r\242\021\321mV\322\264\234\340o\360\034\231`\301Jc\036}R\367?X:\225\334\336\177\303\331\030\265\340eU)]\333\177\361\047r\367N\327\030\034\2422*T\233\177\214\261)t\354\251\263\350\250\302\207^\213\372\345\211\262\357|\"0\320EG\206pQ\3256\375\212\251\332t\244\030\027\025F\200n?\310\035M\256\266\300i\226\255FM\377\312\235\215o\223\252\203\314&$\267\371\222\331]\224\353\264\004ik\307\371\345+\323\215\340:\034\351!\036\252mu\205\263\237\262\226\301\251q7\333\251\252\244_\030\034[\341\277\320\030\213`\326M\216\242\3341\006\301l\212\241\376\233^\0315\243\256\225\354&\351Z\332\355\2620\277\352\271Ma\320n\006\277F{\216o}\227\366\213\230\324\212p\331\344\336.\214k\030Q\327o\365\301C7\006\3122\363\322\350n\\\221Ys~\326\250n\21226N]\230\261\242\237\354C\375\276\245R\023\206\026\347T]9\315\301\313\206\225\017\367!\356\275\205<\216\350\274\312N\312\207\325\377zJn\267\354\223%y\344n\022\3569!\261\316Z\213O\370t\325\226\212\n\177\306\227\n\3560\247KY-3\316\330_\333QQ\256\030T\321\316\266\034-%\265\206aL{\177\344\003\345/\211V\035\033\240\244R\264\351\247P\305\336\336\020lo\014_\225\"\345I\351\211tuO\371\243\246\366lr,\222Nt\367t\203\376\226\215\n\315\320\313I$\344S\014\337W\376\267\213{\237<\212\324\342\366\322\365f\031K>\341Q\323\245\312\047\356d\345\225O\335Z\234RwK\240\344\305,\356\240\312z\177\333\321\317$\343v\322e\323\005\2668\032\352\221FM~zvK.Q\237d\333.\\_\373\213\3317\253\r\201\322\235r6""\n\243Q\276\r~\362S\311,\245rq\005M\206nW\377\010\275\251V.\345\013\034\325\327\377#w\t\351;$`rk\213Z\024\243\177\351\005;\222\247\027\306)\261ce\006\317\342\001\371y\276\240\331\035s\016P\267\357\247ec\251Y\335\322\356>\373X>\200^\262\244X\336\003U\265\225n\245?\201\030\342\335\266M8Mso\345\007f);\366\033#\246\216n\377p\335J\\\355\035\030\311\322\013\313\333>\006lG`U\033\006\305\n\356\023\253\247\204\325\232\252\014o\r\333I\023\244Y{\036\021,\244_\255\231\223\006\374\025\306\376\003+\3712vK\3405\371n\244\343\266\206b\310A\340\252\224S\n\362u,\231\361\231w\316\032;\234\304\216\345\323\303\005\257\214\031J\230\243YZ\254\024|p\236\027\025|\325\222[\241\341R\370\220\234T\354\374\354\241\340\251]\366\210\332\036\224\317Tjn\2646\360\216\235v\275\317l\033A\034\342K\356\350c\243\325\264H\362\017%\344\227\221\352\235/E\352\275O\363q\363e\342\220a\305o7\001\331R\"\030;mE\247&>\275yue\235\313\242UGj\344\245\343g\306\266\303\256\335\251\\\375\233\346\3549k\347\325\177{\203\252\363\271\352\326\266Z\313\321KN\223F\236J\355\204H<\020\227\245\010\364\240\014\000#\205!_T\322\025\347\252~\261^:\001\350\"\034d\0362\247\351\024\363\324<\360\003I@\375*\274\201\003IG\216\213\350\010\032J\272@%P\025`\027\241\002\350\001fB\016@A\306\td\001z\000Z\205>\364\037\001_H\201\351D\370\n\376\021O\240C\336#\357Q\367\212{\205=\300>\341\017\240\023\334\t\367\252\374\350\277\254)\363\240}\351\007Z\003\254\021\245$\273P\265\241\035\202\016\324\203X#\267\263\263\263\233\235\276O\271\366\257\215\316:\263\365\374B\025\352\363\341(\212\235\213w\253\366\242\247p\262\370qvL\371\032my&^\376Pl2k\024\371\274\006\342\231#\300\374\t\003\340]\365\341:$\246\017\203\274\372Hu6g\260\265\256\376\020\204\355e\025K\361z\321\374 \354WS@o\0031\317V\2774\254e\2741\311\212NK\354f\356\276\225\342\252\213m\374f\030l\354\264+\250\257\204\370\325&\334\317KkW\245\232<$\350\353\201\271\333\264\241\032\2414\311o\222Tu\351c,,\333\305\027\300\274\322UI\332\225\n\370\047\\\346\330\264\3145*\225\216\3365R\217\275U\371\233W""\307\216\234-\247f\266\363\362\213\2515W}=S\301^\204)G\351J/\204\346\261^\223\322\2335\276?\010\307k\212S=\373qW\261\340;j\365z\343\264\236\236\006<\212\355e\315UO\000\276i\245\242[\242\356\333\332\213\341\016\272\255\347\006$eO\230:\346\314O\031l\273J\257\203\222uz\336\241\013\371\247$\332\315\337\301^\267\\\331\237\302W\223K\303G\200^\205\373\307\204\027\252t\333S\340:\006\335\270*U\227\223\177\006+\264\047\324\263v\3732Z\316\335S\357\333\247\034\3746l/\336\277\017\323\205\332\242\234\375\006\3478\344\237\025\353M\223\362?\020\037\211?\021\370\276\377\321\305\252\366Z[;y,\366\321\347\303OVNIZ\273\347g\213\236\347;\363\344\341\347\347\277\317V\226;\031\370\244\351\335\225w-\370\213\275\276\007%\007\332h]\334\353\337\216\355\306\317\266_\206=\332\0327\356\313\301\317\263\273\036\372\005\020!\311\006\320O\220MB\375\252\037b\272\321\371T<\250\373U\345\020\326\216\361w\020\033\004\266\211o\000]Im\022\332\205p\002\362F\324-\2506\202\322%\304\013Z\026\204\006 Z\004\257\244\027\304\035@\035B]@u \347A\316\006q\031\320t \316\205\231/\000;\304\272\304x\010\332\215\240h\rh5\244kA\255.\340;\004kA\334\203\264\026\264\273\205\257\273\350O\010xY\005D\214AV\020UI\020\001\220X\002*\n\253\010@\375\336\016{\274\375\016\257\327_\254^<\277Y\207_\254{\035=\361\203\237|\033\036\361\305\367\256#\007\274\227k\352\353_\303\364\305\365_\244\324a\n\376\023\351\367\224\367\244\031\267B=\342\356G_}73O}\017{\025\317\274\234\336(.\275\376\3727\275\372\373\363\266\3637\317\341\301_\246m\322\270\372O\302L\033C\376\017\301\3709\372_\360\243t\370n\371_\027\362\177\277/\267f\271\032\347\272Go~\311\316\356%\367\272\033\0353\276|Qt\220\355\331\256Sh\353n\270\373\274\220\036\224zQ\354^\305\355=\22779p\326u.\316\237W7\077\077^)^\315\273=\236\033\233_\267\303v|\356\215]\375\224""\350\355\360\323\274\006\324\330\272\300\326\272\303P\352^$\322\232\000\320\037Z}\257\330<\257\330?h\253%\300\213\010\250T\n\201\334\217\005|\360]\350\262\035\350\332m\332\274\003hd6\035\241\263i\341\336f\3609\315\275\350\350[M\272\373\326\303\300\332i\361\361^\205K\342\001%\330\264\3514=\375:uu\035R4\364\301\263\363y\271\271\274\334\271r~\363\310^\007\220y\036K]^\017\016\016}=\372\242\371\002HY\266\\&[-\334\270\250\\-X\271r\345\313\227.{A$\255\257X\217Y\361\001U{C\264;N\323\2640/s\017\350\375\222$\212\013# \222\022\t \242\262(\254\202\311#\"(\022\010\210\311\005\212\240\240\240\2521$R)\026, \252\221AEU\021d!\005R(I \262\022@E\376\356`t\346UL\332T\323\234\364\212e\004\237\267\005G)\304\361\035\000\320@\320\361\024\321\003D\023D7\276\303\031\217\325\357\375\273\363\034\004^\0348\033\272?t\034\021S\230\214RAQ\200F \030a\344<\202\344\016|\023\026\007:\363\216u\016\250\213# \256\204\212\243*\217\342\353\024\034\210\344@b\351T\323\322\246\201n\013\364&^\244\206\201\206a\316\340\202bAQ\rz\r\010.\275f8\230\262\332\017\3406:ACA\201\214\220U\035\272]\031\257\021\014A\317\212\231\210\022@\214#\030Ip\250\301Q\252\230:\004\3071x\030g\333\250\006D\204\007:\325\025\206t\304\307\3745N\206\014\220!%\024\300\305\305GG\036\316-U\252\345\343#\0144\251\244\323ZSH\226 \245\021J\212\022\251\010\301B@\312.\002\347S2\271\205\034\300\233S&F@\221r\301\304\303#9qG\277\264\247hv\022\"\262,!\222\030@\346d\346\336g\036\266`\250\272\2677C\216\233\3515\224\002K!\314\207\007N h\347A\266\027\214\253m\240\205\315\211\255\376c&\331\307\211\017\023\314\377\213b\206\303f\312#\245Er\272M\032\263\270!\216\2013q\026#\020\323\002@\277Y\237M\203\r\242q\304\314\263#}\344\242\243\035Jd]\241\254\035i\265\310\231\222\010\256_\361\346j\305\006\230q\t\241\320\013\241\320\241y\376l\342&\323(\016k\363\0109\234\310\231x\221\3428\327\035z\0042>\231\2723\033\000\233\010\210\047\030\203p\025)\200\302\006\"\343-\004M\320. n\202 n\202&C!\272~\326\330\347m\013\241\r\002h4""\006\224t\200\326\200\316e3\031\363\305Q\316\016qL\302\255\330\252\017/\372\262\031*\262\003\261\312q!\244\317\244v:4h\216wE\205GB8\306\000\340\014\211\211\020C\216T\331\034\020\014\047\007\002\010\211\234\230\0230r\237\333#\264\233\r64\n\216\201\034\371\215!\2378g\021\014\302\241\177R\232J\024\371s\026D 0\244\213\376\3547Fs\330u\343.#\024M\032\373\336\327\311#s\242_\010\370?\371\242\371fG\371\334Bc\317\273\356\373\263\311\260 FvS>\000\3754\240\210\230\n\374\375\177\037\003\210\224\027\\+9\375\242\214Ov:\277\n2L\037\247&\324\375z\r\223\025\251\367\235\362\252\351\020\227\204\224\255\034\240\276t\336\362k\373\036\333\226\206\014uX\320\271\272\317\335\325\345kg\322y\222G]\275\037W];\032\363c\212+Uv\336\217\373*\203Y\223\342s\026K\255\277Q\250\370\335\376L\325P\316\354\337\272B0\274\265\365\322\"\206\312\306v\375\352R\336\311s\261\203\226\3374*\324\206\317F\376\205!\232\274~M\215\377[\371\263]k\277D\267\365w\353\323\205L\302\277\323\265)\034w1\250TX\"\363@\377\351\271\307\231\025\375\216\r\351\310\276\330\224\327\327\277\352\372\361\310l\251\225\370;2)\322\234sJ~T\355\351L\212\231\236]\260\337\277_\231C\262\317V\351\267\261v\256\022\321\033A_\320f\025\303\346\305\226\0176\303\321]\273\307C)\264\221+\234M\036X\370\337\017m\214*.\327(\305\"\221\227vW\\\251\372\324\2179\373iu\352\330\343o@\215,\201/\365\316.\355#\014\314\302;\2745v\004HI\"rg\014\302\231\240\212\340\270\206Q\312\211\366!\3659\314\371\034L\201$\334\325\"s\241\232\350\031\023\013)9\343\245\303\235S\203|\256\031\025\\mK[8\246\335od\346CF\215\240s\232\246\220\346\226\204\306\257\266\020\2251\273\r\000*d\\\351\305\014\340\n`\000\271\2270e.\001S\322~\\\313\t\234\023?\361\377\030rd4\227\024\034qCA\0277\345\316\320gs\210\344L\246:\310\256\265\326\347P\326\233\013\337\301\243\227\276\200<\365\355\205\233\025\017e:b\222#\354Vko\241\374\005J \225C\200\034\037o\302$\225*`\323\347\211\026f~\3059\304\260V&\226\001X \026\322?o\037\315\256\306\352\336\000\207AD=~\277\257\036\220\005\335\271Nm\304Nc\371\336\207\223\241""\340o,\256\357\367t\010q\235\263\267q\270U$\t\033\021\030\211m\373\355\337\321R_\0166\251R\242T\304p#\200\312\373\330_T*\212\362U\204\027\212\342[\027\242\211M\303\253St\035X\355\367\346VB\036?\207\361\370}\047\323*7\036.q6.A\370=\276\022%\303\341\300\260\030\001\\\013\270\027\t}\005\362\360\213\302E\340\312%t\310\n\315\244[\240\203\024\3753\264\216\207\316d\027)$\\\321\257\300\202\362hS?\315\246\217\345T\343S\211\026B\202(\177\265$}\224\203U\313i\256\266\003\3729\271\374\"\345\263\350\264YV\2420Z\022B\264\270l\226R:\273m\211!Y\014\t+E\224\177\330\227\240>40\rTm\341\337\253\345k\177W\002\214\261\361\036E\247{\025\306\257]\025\2621]*\251!qVP\252U=\2460\273\303\205\307\233s\247k\376\013VS\026\354\250J,\274\373\325\245F\345\362\214\366f\034\312y\363\312k\220\024o\215\002\004\321@\2703\315\327|Q\271\020$6R\345\300\256i\030\270\013\252\355\310\027\013\2062\256z\312\246\340|\024\027\\\302\201y\222\236\237<\237|\266\256\2142\311\367\327\353`f\007\236\037;\0179\234,\3655UUU_G\266\371\374\377\370\236c\317!\353\361\233\r\373g\322MT\007\360\211\260\342\354\327^\217\310\252y\240)\325]\226\202P\047\240\3557\315\372KE>T\000\027\004#\245%t&\251uH\347\316J\014\314\214(tJ1\247\206t\325\335\336t\327\267\rCSglS\203\247^(\364\316M\031i\250\246\363\2279\036\224\327\275\017\262}\263\363~5UUUff\371*\346\251<\240\205\270!\"\200\005C\355\r_\265V8X7\312t\350\253\324\205%d=uUUUUH_\340\220\244?(\220@\363\363\362\000/&\323\377Bu\301\020\333\260\333\rh\207\250\350?\227g\256t\367\353\003[\255\036\201\3506\233\005?yu\277\371\354\362\201\345y\0014h\320~\227f\246\365\275o\023R\272\215J~\343\253\346\337\361\211\254\327\254\316\010?\3278k5\201\255\000/u\202k5\257\356\206\267\364\347\324)\250\324\016\240\361C\220\035f\261\326\210\272\224\342\007\247\367\203\337\254\375?\276\353S\213?6\335Z\205F\3405*\2170k\024\326\207\355.\200b\034Pf\225\344\027\221]A\310\377\361\rA\2515j\r@\352\016\032\324\324\234\320\035q\233)6\003\255M`\032\304,\333-;\245\216\326\341\030\244*J\210\222\025\023yP\026\3536\342\t\013""\356\3309\n\271r\345\023*e\023,;\312\374\001\235O#\306\005j\320\347\0030fC\366\214\375\347\354\345w\273\304\273Cr\350\365I\247J\232]+\236\006].T\321\337\240\0372k3Q-N\047e\235\353\240\342l\300\235\212\367\346\240\346(\251\351\025g\223\021vt\325Q>\036?\273\252\202\370\021`\037j\020=\364\374\007\2138\207\247\234\207\024\243\213<9\225\016\357\357\000)\020ERP\207x`F,\260\357\240\377\224\377\276>\243\312\022[\334\004\374\t\344lvS_\n?\200\256Y\204\210t\256L0\243\246$K]D\352\342%\222\353Q\225\364\227f\242\321-\215?\333!&\207\371\343\261\275\314:\365\262]\331\323\313j\333t\351\305{\374NHw\317\367h\374\244?p!\200\236(\226\022\203\270\234/|N&\215\342q(\204Z?\214^.\216\214\"\252\252\252\253\254$<\201\006oGq\017\345\033\357\363\022Od\207@\232!\336C\251\014 \235NiKJZR\322\226\224\264\245\245-)o\233p\365\277r\237\255\010{>\266C{\246\344=aUd\222I$\364k\342\004\210\347]Bs\211\251M\034y\323N\352Z\272\203p\t\223(\233\010\265\313Y\201*\226\325KUKUKUKUKUKUKU\244L\231\023.z2^$\023 \232\003\033\323\034i\276\016P\003\327!\315\343\205UW\227n+Hx\020\366O6\t\020\311\202c\242\213D\266\2523)\270M\002R\t\267.h\262\026\267\243R\250\tc\010\245\000\210\302\242\225\n\212R\213\n\310X\020\202VB\245d) \014`%d( a\314\220\344\200\337\t\273\017\237\036\264\010\024BZ\016nQ\302p\032\020gD\004#\316\220\034\307*\371\264\022\316\301\036u\253\\\351\304\366\047\262f\t\024\220\3621:xnI\t\240\263Fg\007;\326\037\373\312%\2458G\247L\306Es2\025\014\013\272\357\232M\263!\317\007\035\016\030(\n\014RM\020\315D:n\03384lv\31688\374\374\345\331\327[\336o\213\231\305\272Gn\266t)\326\004\016y\273\346\350a\002\314\325\340)\215\350\374\366%r\021}\024}\022H@\220$\245\017E\245\214daK\350\2245\350\372\017\235\347\211\020\374\307\264\047\033\217$\222I$fffo\030#7\231\306@\224#\023\321\024\247\036\177H\207\347\021\034H\217\241\306q\037\254\021,C\031\311\202&\272gP\206H\035\025\026K\001\362e\3427?\321\265{\"\221\032\311\305\215\0064\013\030\023yN\335\223\035,\344D\002\2220\t\034H8\201\206a(\023\323JH\302J\003\300\241\231\014;x\t=""\002XM\336hzx\246\202\036\325\206\271\2460\314\2460\317\202\230\3032\230\3032\230\303?{La\233\2460\317\362S\030g\325La\237~\230\3037La\236\3651\206|4\306\031\3151\206}\332g\222\303Z\262]QauLa\236\252c\014\3351\206e1\206y)\2143\212c\014\3351\206~Jf\3545\344\262]Qay\246[\014\362Y.\250\260\274\323\030g\024\306\031\332\230\303:\323\263\014\360\246\330e\242\302\375T\306\031\337La\235\364\306\031\341La\237\241La\236\024\306\031\335La\231La\235\364\306\031\337La\236\024\306\031\341La\231La\234\323\030gu1\206}\372c\014\346\230\303\360\361\020=^\260$X@\220 \320\236\262\202BJ_[fJ(\336yxu\371\204\270\345/\022\334\363\316%\300\230\251\351\023\005)\016\243\242\372\004\311\205\223\257\n/\023.q%\003\217\205\322I$\212\252\253\204;\300\370\210 Jm\024QE\024Rv\\&\221-\220L\247\\2\304\321\365P\207\234L\240\212h\200\240$\031\000\201\224\203 t\371;\272\347\200\242\212(\242\231\2232fLV\333m\266\333m\266\333m\266\333m\267\246\373N\235(\220\361!\301\r\370\220\3348\360\246\364\252\252\252\252\274v \300\350p\"1\021\021\021\021\021\021\021/]b\367\357a\022\037\235gr\023\262\252\253\334\376\223\213\276\331\333\262\366\355\256\352\336\0368^8\326\335\355w\275\034N/\034/\034kn\366\273\336\266\357k\275\353m\024L\321E\010\232(\231\242\212\0353v\026\267\377\027\303]\236\241\204\320\226\203\036\2605\344>\366\\\264\035\234\316z\257\345u\240\236\223\301\022B\020\010\022P\276\024\214\240\360\007""\016;_\373,\351\034q\210\322\"`\213`!\222.\344nN7\304$\177\244\034&\177\210K\ta,\047\314\047\314&S\337\353Og\256\213\2011\023P\010M\310\340B)\325\277\206 \240S\354-\367\225Wwwwwwwww\331\335\376\323\273\321\335\335\337\007Q\013\242!ED\200C\260!\"\025\00487\352&\255bd\300Lt\t\004\313\264\230\202\\&a5\350\314\336&\224\362\361Nd\031Ht\3528\220\340\203\203\215\032\321\255\032\321\341\243\327\265\301\333F\337\r\020\352B\354\203!\327\251J\301\343\314j\335\026\367{\025\323\025\3437*:\247Gal!\220B\036j\010* VI\341\341\017\036\324\324\360|\252\252\252\252\253lX\261b\242\252*\242\252,\266U\370}\316\024\246\330\260\332aV%ow\261u)k\330k\262D\255\356\366.\245-{\rv7\026\226\\a\356aJ_\026\033\014\212\261+{\275\213\251K^\303]\222%ow\261u)k\330k\262D\255\356\366.\245\3712\344+-7c2\345\266C,/\311\227!Yh\352\325\023\302>\367\314>!\343\342\207\217\177\333\350\364[\322g?\030q\367\250\372C\300H\306\020\211J\036\024\244\2124\237\0242_\275\2378O\271\367\207\3523\337\317p\206fw\220\314\313m\266\333m\266\333m\277\004\366\330z\275T\367\310j\303_r\2060\316\324\370\217\253\253\352]\005\307\032\326\265\255~s.5\255kZ\375\216\2774\010\022\237\241a<\263)\203E\r\\\265\341\345!\243\035\3255\311\301\374\277k\224l\246\311\214\0163\215q\350G\207\360LO\000\372Q6*x\007\211 \30222\024\257\210X\220\220\204\245\360\013\005\0366\352\023\320\t\303\260H\207p\2770\220\023\334%\204\240o\022\204\241Z\202\017p\220K\304\300M\326$\232\210m$\211\004\031\004\024\024\031\004\024\024\031\201\2737\242\023\027\334^\350\027E\201$+\026\021\321_\236\310\357\243\322>\260\222\260\275\310,\210\242\n\245\204\367!\202\304R\303\333\205\367=\377k\361*\252\252\252\257\242\222O\244!~R\010~\017v\2371\370\266\236\360\252\252\252\252\220\350I\022\033?P!\362\330u\353N\244\202$\016Hu\010t\220\302\036\232\322\346W\247\020\351\337La\236\232c\014\371\351\2143T\306\031\224\306\031\224\370Hz\273\216\335\335\325\302\346W\013i\226\026\231ai\226\026\231ai\226\026\231\351\375^\237\301}\356N\311\355w\275\375\341\334\212\237\023\334|G\231S\261<\341""\002F@\224\241\330%\244!!)<\355\210W\237\230\371\346\367\346\023\254(N\177\306\376\t\346\004{D\312~ LT\270H\206\002w\347\024\314$\024,\tI\216c\320&N\361#Y\204\202i\023%\302P\047~\2014\211Hv\357\340\205\367;\276\030_\303N\023\364\376\024QE\024QE\024_1\010i\222\013\026,X\261b\305\213\345!\325\363xr\020Hx\220\370\210t!\346!\263h\242\212(\242\212(\361\307\025\233E[m\266\333m\266\333m\266\333m\336m7\233N\233DL\302m\022\301\371D\275J%\362\224\367\t`JL\004\345\336\221E\024QE\027\316C\251\347\337\201\r\334\331\016=\211X\261b\305\213\026,X\357\314u\360\334\341\343\247\226\352\364z\355q\325:\204;K\276H09(\252\252\252\253\332|}\335\323\263\276\356n\257W\256\327\035S\236f<\357\233\253\303\316\327\035S\236f<\357\233\253\303\316\327\035S\236f<\357\233\253\303\316\327\035S\236f<\357\233\253\303\316\327\035Re\035f\222\320\325Y\242\253\25412\216\263Ihj\254\321U\326\030\231GY\212C\240\350\332DL\317h8\302\262y\3232\334z\342\322\347\013\047W\370f\264\370%\031\311\311\310\274\342|H\374\247\304\047_\320\257\210\257\304\276\306+\030\224\217\261\24221\207\001\230s\0140\354\3331\211\001lF\203yo\033\247\357\253-\000NS\306c\001\221$e+\3046\222$\224\034T\317X\047\337\322\236O\236\204\207\304\036\357\335!d5\r\332i\206|T\374\\\310/$-UUU_\276\020\375\022\035B\032\010|\245!\027d\030T\2122\014\203 \3102\014\235\233\325\035\306\345>s\370O7^\344Cz\047\010\001B\034\004*4\234\022=oH&\301 \047 \220\004\353\022\204\241=\215y\213\304\270\022\334\324\t\363@K\305\202\260Bcx\234u9\302t\004\274L\256\224\tU$\222I$\222y\004\315p \307\313BRu\333\010\235zi\272%\276jKD\251\nMk\221=\231\264\315\244\264\000\000\000\000\000\003i\261vF\201 \220H\214\004\314%)B\0167&N\2725\t\252\373%\376\232.\004\304M\242{D\354\004\342\022\341(H\t\177$B\200\022ql\325~\333\t\200\224\244\022\t\001>pI6\235&\323\2167\343\214vZ\252\252\252\252\252\252\252\257\311Y\360\033\315\214\324\334\377\247\210\317\234\345{\261\202\306\270P,B\306\310\031\2209\013\030\225\006\237K=\047/?ZvwQ\315\022\337\n0\211k\250\362\037\013\371\357\253\323\n\247\247""\352UUUU]\3447\366\351\370x\367\225UUUU\371f\210L\261\261\266]qjW#`ATA\361d1\365X\223\177\256\352\252\252\256\334q^\032\252\252\351\307\025\353<\236C^O&\373\373\2139\344\231\232L\214\223$\314\322dd\231&f\223#$\311\211\232L\214\223&&i27\030\227/r/z^\343$\31134\231\033\352\374\262&\320\307\334\004\077\077>\260Hx\353\327\212e\323E\350`\245\366K\371\250\264Kg\243\035\"m\262o\317E\205\264\345\206Z*\302\361La\236\024\227)\346\356\342\333m\266\333m\266\333m\266\320\207\263\333\311\337\204\030\035:C\257j{\001\016d\016}i\016\255\255\351\304:x\323\215\361[\3352\345mmmmmmmmmmmmo\325\367\211=3\325\t\363I\363\037\017\365\376\037~Hz\224;\310\311B\367\201Qh{\307\277\3576\366\362\327O7\013\223\206\024]\204\265\tBA7\r\030\200\023\312\t\025\220\002A\"\024\"u\202^\tD\200,\022\010\027\nP\220IB0\022\0204A \220`\006*\252\252\252\252B\360\252\252\252\252\252\252\252\252\252\273!\301\rGd=\314$9UUUUT\207jC\251>\235HN5i^\257:/B\026C\260AH\"$ \364\207vS\355m\316\362\206s\316l=:\226\3035\232`\2041\305\202\020\307\026\010C\034X!\014q`\2041\305\202\020\307\026\036\344\234\304\251^\2340F\007=\377\035\302\341k\360[\256$Y\022-9\001hOd\207+A[|v\376H\234\377U\035\352\2740\222I$\222I$\223\323\344@-\026\310}\255|\201\014\305UUU^N\010l\207\304H\002p\037\031\004\201\330\207jC\255UUUUz\375\277{\343!\330!\301\017W\312C\310I9\220\345zZ\252\252\253\342\020\321\016\342\037O\\!\334C\307Z\360\265UUUy\353\343\342\020\350C3\247B\035\210t7\265UUU\343\307\307\350\314\314\340\314\314\314\314\314\314\314\314\314\314wwwwww\201\r\010l \302\007}\264\246\266\020\334C\"R\342\031.!\210\320\207S\363D\024p(!6\220\020d\013\202\032\324\254\354\245\311irZ\\\226\227%\245\311irZ\\\227\327\364\364\233A\002\363\006,\030^\306%\352\365=\360\tX\314f?\301\363\341H1#\033\t3\204\261#j\037H\303\344;\270\002r\215\t\332\047\234\273\361\025\263\217\024\360\311G\010\217\346q|G0\211d\277;\001\001\021\010\276\"w\030\214b&\304\211\274n\037\233K\351\047\274\343\3236\236M\266\214%\240\000\000\000\000\000\007dB\335*\205\341\216\202\037Y\r\356*\227""\341U\334ww\035\335\307wq\336\261\004C\270\356\356;\273\216\3750!\260\205\220\300\334\357W\354!_\230\373*\253\317\010s\331\207T\037f\035Pz\261{\000\025\033m\266}PjR\217\002\3045\230\255f+Y\212\326b\265\230\255\345=\334\365\244\311\267\3052Y\004\036\031\350\376\347@\001\322\000u\312\027\254X=c\322&E\345\312\234\275T\\\246\341 \017\325\335\364O\266\021\244\372 \365\301?\013\020\201}\340\010`\005#p\010\227\000>\000\207\301L\216(%\372\372>\327\317\362\361\332r\202\367!d:w-2\331\334\357Y\234k\274\313\222\006\245\332=\020\355\256\312\252\257s\360\270\257C\010\310\035\351\315\273m\327\260\201\016\"\334W\034\267^$\004\202~\226\350\245\321\006\0040 \303o\262\033\356\303\252\017\206\026\250\006\005@\337}\365\224QAJ\217\274\026\231\244\321\024PRG\230&f\223DQAI\036`\231\232M\021E\005$y\202fi4E\024\024\221\346\t\231\244\321\024PRG\230&\2235z\"\212\nH\363\004\314\322h\212()#\344@\221\047\274\315;\222}\230P\220\267\257\002\300\270E\207$G\344L\022\322K\000 d\226\001\003#\002\\\025\253U\343\021sy\024\253\270\357d>\243\2112N\342O+\2415\316\211P\320\047\227\312&V\220\322\047\020\230^\t\020\316\373\257\357\023\314\"C3\310B\325UUU\360\355\334C\251\r\330y}\372y\273\310s\212\252\256\3358\272:\047R\322\332[Kim-\245\264\266\227\010m\207\034S\030g\215;\210l\207b\036\0049\3349\351N\376H08!\324\365(\374D\022\250\360\225F*1Q\212\214Tb\243\025\030\250\372\334>s\303\306\347\215\273\346xu\207\027\272\216~!\"\036\002q\334\230z\250\3749i.\331E\242Z\250\324%\304 \374\020\326\241\277\222\236\311\354\020\3728t\252\252\360\312\270\303<\366t\200\037A\006\020\317]\364\036\317\263s\306\335\367\361\2778\020M\355\340\33777n""\334\302kE\320k\314\333\214\337r\3505\306\366\343.\345\3345\231\204\326\214\335\273\355k\207\034\\\342\335\253M\356\346\355\336\035\211\362x\047\222\037\031\361\277\227\371\317f\275\342\321\367K\225)\251\304\222I\"[!\020\207I\312r\364\341E\343\200\371\331e\020\034\202\003\245\302Y\204\231\031\204\335\236}\321Q\314\343x\370l\360\210\3419\004J\215|\004,\r|]a\335\362\323\323\272\252\252\351\307\027\230\004:\220\356\353\2377\355\270\374B(\241\227\n{1\024\233\242\223\326E\047\265\255]h\332\345\244\271i\363\363\337\350\326\210\242\236.z\272\321\265\313I\244R(\244\341\024\236\322);\021N\251\235\2325\242w\242\223\335\"\223\341\242\223\222)\024RsE\"\212E\024\236DRn\212O\204\212Om\024\236\010\244\335\024\237t\212OQ\024\234\"\223\304\212vkWZ6\271i4\212Om\024\233\242\221E\047j)9\"\223tRx\"\233\366\352\353F\327-\047\010\243\333\253\255\033\\\264\234\"\223\222):\"\223\251\024\351\335\253\255\033\\\264\237\021\024\235\210\244\354E\047r)>\");\221I\326\212E\024\235\210\244\354E\047r);\221H\242\223\204Ru\242\223\306\212N\021I\336\212N\344RrE\047DRu\"\221E\047DR(\244\361\"\223\333E\047\255\343\325\326\211r\322w\242\223\204S\237n\256\264mr\322x\"\223\271\024\361g\251\243Z\047\252\212O\004Rw\"\223\314\212N\244RsE<{\352\353F\327-\047\221\024\233\242\223\314\212O\022)\347\317?\207\317,\3713|\215\355\346s\334\212)<\350\244\362\"\223\265\024\232E\"\212E\024\235\350\244\351\264\235gV\346\373\223\271\024\2379\024\343=\307M\356\373\233}\272)r\335*\222yQI\370(\247\177\032\272\321<\250\247n8\244QI\336\212E\024\333\312\212r\210\246\327-%\313I\326\212NH\244\346\212M\321N\2765u\241\210\246\327-6\341\024\236dR\\\264\212)9\242\223\301\024\357\3164kD\363\"\223}\272\347\2237w\334\236\341\024\234\321I\326\212O:)7E&\221I\330\212OW\250\352\334\337rx\321OW\303WZ<^\246\256\264mr\323k\226\223\265\024\212)<\350\244\345\333\253\255\037\017\034S\313\356uu\243k\226\223\265\024\235\021I\315\024\236TS\217F\256\264N\021M\256ZO\212\212O*)<\350\244\355\366\377#_\225\353N=\366q\256g\207~\256\264mr\322x\"\223\204Ri""\024\236\204Rx\321I\343E\047\010\244\363\"\236\215\317Ws}\311\315\024\235H\244\363\242\223\255\024\347\236M\032\3214\212N\244RrE\"\2123i\350\233O?w\033m=\215\362\035\370\321\306\211\320&*b$\003H\235\275\224\t\237,\222I$\221UT\206\264\252\252\252\253\271\320\207xA \360C\337\022\220\3468\363\211\311\216|\025t\211\004\316$,&\203\253W\034\r\233\030\300\207F\0044!\201\006\225\t\243\030\020XP\2151D@f\205\010\363ca\005\205\010\352\306/q\016\230\3327z\324C\250\207\361Q\021\013\241\262\206\335\030\200\002\206\372\306\265\247\327\250!%\211!\234-ZZ\3174jR\217K\010L\304\314\274\310\205\246&e\346\215JQ\351 \2073\0232\363F\212(\237\024\265\177\373Y\231\234\265d\344\037Y\3541\272jg\355\001\032CJKHl\022\005\326\013i\r\365\372\370;\020RH\201\313\274\220\265$&B\353Bc\2557^ \230\211\374\323\255L\302X\037H\235\376\375\376\210\036\217U\027\336\2067\001 \220>0\354z\210sHjC\010_\240\207\201\017\273\245UUUUUUUUU\3617$=\210#\357\220\201\206BBBBBBBP\036\3577\325\241\004\036\300\005\354N\236\303\261+\331\256\372\3134\215\360J\"\014+hJ\360\222`\013\310\006\013\310k\325\241\363\020\363\373\350{\376J~\017\303\360P\207\271\213\324\205\252\252\252\253\2516\223\\d\234{\004\367|z\375-\266\333m\266\333m\266\333m\266\333mw\363Q\006\245\224-\371lB\006\0044mv\201\nYB\316\310\352\017,{\320\2048\351\322\226\322\332[Kim-\245\267&\240@\231n<:{\307\027\202\362.\210\025\325u\013*\221(\024\356W\010\022\003x\344\254\326\no\314B\212\212\217D\231X\361\274\202\316\352\232\347:\307D&\222\216\314a\333|\263|\032\201\355\025hG\351u\246\243\244\366z\362\3131\214\353\035,sh\355\275\353M\374\236\277\235\307_\275\030\307U\355\214G\034W_\263\034\370\341c\230\326\t)`E\200\204P.\213\227>\313\013l\n\026\021uD\363&O\313\370\017oO\355\333\0245E\314E\314D\006\326\321\047\331q\236\035\002D\027\010 \232a \"j\213\220\325\267}\300}\3732%E\014\023\013\334\362\177\204\214\245=\336\226\276\275\\\204\366\267\311\361i\276?8\330\271\344\306\035\267\303\306\026\"k\233z^\331\3713b\366\316H\266\361\266^jI\257\213]\266\214W\214\363\327{\367\245\027\\/}\250u\353EI\212\374\221\347\335\265\362F\263|\032\201\355\025hG\351u\246\243\244\366z\362\3131\214\353\035,sh\355\275\353M\374\236\276\274u\371#\030\352\275\261\210\343x\2473\231\253\236e\250\260K\367#)N\227\265\361\263\220\232o_-7\263\3126.z1\207m\360\361\205\210\232\346\335\357l\372\346\305\355\234\221m\343l\274\324\223]\365\333h\305x\317=w\277zQu\302\367\332\207^""\264T\230\257\254{;\266\275cY\276\r@\366\212\264#\364\272\323Q\322{=ye\230\306u\216\2269\264v\336\365\246\376O_^:\372\3061\325{c\021\306\361Ng3W<\336\001\304N\202\n\"D2#\252\"\016^\213R\317\334\215\222\234\342\327\316\234\204\335\275|\264\336\317(\330\271\350\306\035\267\303\306\026\"k\233y^\331\365\315\213\3339\"\333\306\331y\251&\274\265\333h\305x\317=w\277zQu\302\367\332\207^\264T\230\257\254y\367mz\306\263|\032\201\355\025hG\351u\246\243\244\366z\362\3131\214\353\035,sh\355\275\353M\374\236\276\274u\365\214c\252\366\306#\215\342\234\316f\256~\337\300\310\226\025\021\000\247\260\352 \342\047\240\202\240\204*\000\216\242T\241\266\027\006\317\350G\tN\371\2668\350\344\047-\356\366i\275\276\310\330\271\331\214;o\207\214,D\3276\364\275\263\356\315\213\3339\"\333\306\331y\251&\274\365\333h\305x\317=w\277zQu\302\367\332\207^\264T\230\257\272=\027\276\275\321\254\337\006\240{\305`u~\227Zj:Og\257,\263\030\316\261\322\3076\216\333\336\264\362\341\353\356\343\257\2721\216\253\3338\2167\212s9\232\271\346Z\213\004\277r2\224\351{_\0339\t\246\365\362\323{<\243b\347\243\030v\337\017\030X\211\256m\336\366\317\256l^\331\311\026\3366\313\315I5\337]\266\214W\214\363\327{\367\245\027\\/}\250u\353EI\212\372\307\261{\353\3265\233\340\324\017x\253B?K\2555\035\047\263\327\226Y\214gX\351c\233Gm\357Zo\344\365\365\343\257\254c\035W\2661\034o\024\346s5s\332\250 \252\"t\004\024\021\025\375\276\310\020\024\315\226\206\037\314\215\322\235\266\265\365\303\220\235\033^zo_8\330\271\354c\016\333\341\343\013\0215\315\274\357l\373sb\366\316H\266\361\266^jI\257=v\3321^3\317]\357\336\224]p\275\366\241\327\255\025&+\355\2175\357\257lk7\301\250\036\361V\204~\227Zj:Og\257,\263\030\316\261\322\3076\216\333\336\264\337\311\353\355\343\257\2661\216\253\333\030\2167\212s9\232\272\010\036dX\202_\271\031Jt\275\257\215\234\204\323z\371i\275\236Q\261s\321\214;o\207\214,D\3276\357{g\3276/l\344\213o\033e\346\244\232\357\256\333F+\306y\353\275\373\322\213\256\027\276\324:\365\242\244\305}c\330\275\364\373b\327\365]P""\213\304\300\352\375.\264\324t\236\317^Yf3\266\330\351c\233Gm\346\264\362\341\353\353\307_X\306:\257l\3428\336)\314\346j\350AY!\\\263h\267\330\373\035\344?\262JB\204\2304\210\311\036\241\356\303\206C6\326\t\254\353y\372\246)i\336\3477L\305\307\2710?:@?\031\372\274l\204\010\250\251\262i\262\200J!\224\313\262}\225V\272\217\223\022k\354\224\274\376?\321\267\351B\336\004\020\022\232\240\253\266\223\224p\224tL\202\256\025\335@!3\302\320\244\t\372*\203\212\007*Z:%\302o`\255\341\367?K\311\363/\303\232R\025\024QT\244\363\234b\252\252\266\0242LQ\232\020t\260\255A\031\031\233\021\322\274\355u]\256*i\373E\010\214\030\334\252\350\225\001\364v\376G\336<\177\020C\341\367\037tD?\"\371\245\347\347=[\303\225\340?b\301\222\020\036H/)V\013\352+\016\303\374\202\307\007\001\352\215\216\024\222\215\204\0033\023J\032\247$n\202\240Dv\233\007^\363un\030\206\352\242$A\324\003\312\243\0249E9M\251\310z\334\203\362\274:\206/\262EF?\207\232\034\272\360\306/\302\310\2075\220x1\"6|\352=Bi\277\333\204\047\265\367\031\364c\376\227\002M\227\230\031\221\372LN\370\340\237\361\257n\037^\314\302\351\002\354\220\316\352\325d5\3437\246\233iJ\366\324$6#\372\200\3010u\356\244\341:-\351k\344o\357\372\317~\004\010\221\030g\231\200\0043\262E\006@B\006\275Y7\313\242B\"DK\341\252V\261\311\216\216!\261\216y@\357Q\007\347O\253\037\244+!h^\371\007\332qBsk\313\2177\357\353\342\363\326\231\256BL\347\320q\236N]\234+\352\016`\201\0300\221t\203\323\321\360\"3\334k\263\231\223\310f{\036|\047Nj\023\332B\370\036\002\253s\247+n\244\212\215\246c\025\177\301\027\350\241\303\374\000ty3D\262*\010\200\232f\356\"\264h\t}\360\276E\333\305\306\333\005\373\265.k-\302k l\212\362\371>\223\r_OX\222\265oT\002\225\323@\\\024E\274SU\003\343Rd\004p\330j\266\227Z\r\004\016>h\203\265\035\303\004\226\350|\315\326\335a\234\351\341!\345\204I(B\350Ry_6\254\340\303\3156\361i\220G\tD\047\215\216X\265x\250\344\216\031\262\212^7(\226\271\262\226\n\013\0211\020\306\370\320\250\343b\353\360\227\226\364\000\374\000`\207\300\250\201_\017\005~\343\306y*Hx""=\347\233\346=\210\037+\025\275o\307\331W\231\260#\366Q\373\037{@\031\217\274\022J\014\363\022\304\266XO\355s\247\003\200\225\253Y[O\014\036\333\200\261$p\221\236$\003\036,\200S\036Lzx\027\204\216\024\244\000\355P\217k\303\253\312F1\220\010\037/\216\020\205\274\246\020n\047wOn\032W\315\0372\271J\320\312. \327\275r\332\323\033\261[\027g\r6\027\355\342\250V\213\220f\025G4\326\371O\230\207\232T%B\214E\035\277\006mI\255\237\304\317\247\316\363\223\247=\203\312\206\372\3345\336\213\336\014G\302BEc\307\271\240f3qq,v\271qzT\324\030\025\3222\221\001\354`\305\\\202\226\367\360\272dGu\342\371\020{\204`\275\312\300\356\r\3348p\242\206\325EGYM\262\010\232\224\306\030\n\341GC.@\201(\310@\236\257w\311U\216\030\037\256b\007S\363n|\352 \340h\375}\031\214\345\356\233g\266]R\3511\321\206O\351[Jx\271\212\277\273\224\3232\275\310\342\021|uz\365\3441\315\244\233Z\333\364\336g\010\206$h\320@\373\271(\023N\213k\317\221\234\206\273\032\243\272\032\302\362\2538\024i\245\2658C\033R\337xVl!E_\020\241\360\360<\021\360_6A\035F=\025\3222#\031dxeT\230\021\004\2619\343<\343g\202\260$\261\244\223\001\215\003\0060o\217e\213\370^\334G?\023=A\261\r\275\010:.\314[\2039O\267\014&%\336\342:\250\337.m\025\312\316\031s\202H(\214\355M\022\346u\314\227A\323\244\344\362\3376\267}\371\000\031\200\000\001\000\000\000\314 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000f\020\000\000\000\000\000\0003\010\000f\020\000\000\0003\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006a\000\000\000\000\000\000\000\014\302\000\000\000\001\351\337\025\000\000\000\000\000\000\377\253h\000\000@\0030\000\314\000\000\000\000\201\230@\000\000\000\00330\200@\000\000\000\000\000\000\000\000\000\000\000\006\332\031\231\204\002\000\000\000\000\031\204\000\000\000\014\300\010\000\000\000\031\204\000\000\000\000\000\000\000\000\000\000\000\000\000\0007\222d\345\335\327\256oX9\255\346\265\223\031F#\034\331\362\272g\206C\014\244\201\367\221\000G\363\376\304v\337""\233E\0311\343\r\372nm\377\273/\323\224g.\3069\025n\271qU?;2}\253\236wk\255\002#\312\356R\364\326}\310 \346\277\023f\235g\336\\\233\260\313\237\344Z\266D\346n\013y\246\034W&\264\020a\201\271u:9|\2321#mz\r\034_.\273\261\310d\311\305T\252\202\006\317\211\211_N\207\277\364\241\352\215\260\266o\\\213\314\047D:\336#\225:r]-\022\320\016\374\226t\322\302:\230\2502\2471\361]\321_\217\266\260\035\341\030J\216\210\225\307\226\310\227.\027O\207\032v#\356\235\021 t\017r\200\233\336C\277\334\370\240\277v\354S\216B\031G\340\361\365|\372\355c~\313\265\2312\342\026\222D\335\206%\330\020gK\305\365\345\316\206\275\203\237\270\355\206\276\317\262y#\247\333=x\255\032\267Z\312\214\212\252\242\n\257=m\002h\324\317\034\231\311\251\3103S\302)D\333\344\335\311\322h\017S\247\271R\321\276K\326\211\3324$h\320h\352\200 ]\376i\333\013+HA\032\231\341\246\213\003\325\347,\335qRd\216\201\001\324\220\014\203\250C\035K\030\037\033\027L\367\206\313m`\204\0355\231\234\0070\3300\222\357!DB\270\204\004\371n\324\020fO\257\3631\027P\250&\200\3238\034e\223V\353\306\334R\2110;\\\226\311\022\"\010\345\033\254\353\306\023\010\226\035b\014A\264\0260\016\343\240\275\320\234oj\027\313\020\360\325Ou\212l}\361\347D\356T\210w)\016\341\374\236\364\003\357\241#\351\350\\\214\024\024,<@\343\355\373\253\222\332\0358\343\332u\005\240u\t\231\226\204\311p[\030\367\300\363\237\036\036\333\223S\227ATB\243(\252\222I@ZQO\307\333\333\332<\346Hul\016\233/\047\240\240\353\224T\035\342\275\n\260\016\201 t\007G\1771\017d\310&!}m\267\317c-we\343\315\315\2069\334\003\341\350\362\200_\022=P\326\353r\227\245\314(\203u\324\026::\025\365\212\217\254G\326\036\265]\277\003\335D\017\207S\312\\\275\206\2320\246\024\024\035\"\235`0N\264gY\371\276\272\375\201T\246\307\227x\370\022\365[\r\007\333\233\257\273""\324D\251\241s|?\345\275G\207\370\237\325G\250\254\204\226\032\3479>N\355\322\302\225\047\325\360\354\236\325&\364c\335\372\312#\370\323\\\026r\316u@\320\306~\237];\321\340\364\357\367a\344\331\000\224\004,\250\200*\257\221_\024(\263\327\340\203\261\t\260y\n\n\250t\265\277~\267\220\232.#\344\347\363\031\202Cfs\003\203\203\327Z\335\327\371\002\341\3111\310U\370\351v+I\305At\013\227G\320}\000\373\205=\301\356}\302\047\271\020\363 \324%l\325\3207^j\304\005\227q9\021F\361\240\320fL\3600\210:\001\"\036\360a\3572\207\217\216\365<\220Gp\246\356d\343\001\362\037\017\206\263\230\263\310\351Hrj=\355\275\230\0261\253\254\361\210\362\202\3049D\234\270\231\304FET\355\247\226\253\231\217a\333\335\343W<\352w\031L\266T\312@\220\2449+\351$\205`\025\202\370\213)_/\002\267^\214\3277W\205b\351\022Q\374HW1\364\026\2262e(\371\276\031\360g\224\027\250\026#\324,:\216\267\304E\017m\2500\202\310\020X\260\000\005\222\002\305\213\370\374@\371\267\01744q\207\256\317\237\321\353p\243\013\305\n\304:Z\214;{%\215\016bK\3174\272o2f\277\047nL\027!\223E\235\010\314w\330\014\305\215>}xjM\016E\374\246\262\310\251Q\021B\303m\211T\334\025t\271\272\207\264d0q\017\n\375\224\020sh\364{~\2142\023\000\314\353\273sYp\3314\036\273\317\341\2723\321o\224)s\314O:\006\303P$\047\234\217\243%DH\336\222\347\314\342\003\022\316\221\210\014J\236e\200\230\\\244E\005\315p\234@|\224\366\"y\305;\201b\367\001;\216QT\035,w\310t=3_Iy\323\356t\351\363u\353\370\375\274:h\347\334\274\336\323\252\366\262T=\016a\310\230`ZI\302\240\206\217(\306\250\311\365\027\343\047\327l\203\315\354\247\324Ck\353\217\260\367\251{\246\020i*ZR\343\243\002!\350/O\223.\000\267.\241]\013\267B\3512\321\345\266\311S\022s\0168\250\317|\243\206\016P\r\361\"\372\004\300_\001\213\344q\327\2543:\363\330o\331\333Ip\0070\317oWL\t\263 @\224\323a\t\014\210\225t\022\204A\213\325j\272\346\214g@ty\315\032\251\306\036x\001\\\233\030y|U|G\315\240V\241\255)O\316\202\014Q\00767Y0\372\317Z\371n\202\030ek\221!\002#\301ZJw\032\257\215\234\200\222\033d\2101\234\222\310n%""\271\320\320\276i\205\016$c\345,\027c\302\362\203=\243\352\315\226\301\2406\334r\314\275Gq\246\306X\222\004\030\250H\322i&\370\3435\211\256\025\2060\205\371\025 \026\264\t\tCP\220\270\252.\003\361z[j\346\335\352\277\303n|\371\364\r\265\363\005\311\340\047\271\360\360\352<\200\236\267@z{+\232\356z\3644\035`=\3520^\361a\336\363\375\336r\215\304jC\213w\025T\tk\254\035<\3758\034\217$\032(\372\246d\361\"\034\241\355\224\201hr\037\235+\r\000}\346\255SExi\3324\237\2204\3618\230\277\020X\3255\303P\230\301K\242\256k\270\271v\210\203~\224\333\300Bb\211\312\247*\006\025L\263\374\363eN\37077=>T\004\004\277\263\342\372\326\r\271\357\0342W\2431\261;\323~f\352\236\022\326\251\t]\016:\265\34548ccs\2521\274\r\032\202\330\352\363\360\032!\037,*p-\220zh\331y\365\231{`\364^\274Wx\371\326\376\305\374\317o\177\315\251u\211\371\345\354g\317$\213z?\307Su\366\265\341\217r\307\302\266\312\312\212\273Z\037\247F\364A3\356\352~1\022-\361\3100\036B\242v.Bz\0325\310\013\261$\205\231#G.\212\007\010\322\222\246\0268i\271\303\235j&\347\221\274yr\244\031\301\014#:Cg\350\025\246\253-\246\336v\302\213\271\232Y\302\251\267\010\350\0304|\350 \350=bx1\370\217\314\202\014\210 \305\020{dKx\360\340\216`\243M4\305e\306Bl\231\037\037\266\314\216\014n\035\227\246Nm\352l\250\321I\363\346v\213w>\023\331fn\357)\360\327\341\363A\247JV}\232\350:\035>\312\034\047\300\245\205\376~\336\201\317\305l\026C\"g\317Y\372\002\t\252\034\230\026y\271b@\204\221\222AE\200\"\261b\3021Q\210\257$\236\270jr\022C4\331x\0349\363Q\334\234\214\370\323\247U\025v\2121\307!s\230\023\265Q\204p\210dp\243,\361-\356\310\247@A\026c6\325\311\312r\241\354$\300\027\200\215\350\003\202\336*\363@L\005=A\307\034EG \317F\217\247\200Ft\325\271\307\324\276\377<\262\\\006\2358\235?v\010\022\202\242\311\250\321{\336\347G\260\206f\\!\0051\363\233\233\321y\245M\377cu\3447\t$\t\024D$d\261dH\225JE\022\355j\332B\3142)\024\201Vb\224\2543\236\374r\006\345N\201H\235\t\036\200\3446\311$\201<\245\024\311\030\305k=\304\251\0273\271\\\310\330\222#\243\335I\364\306""\tP\360\370\375\2479\210\031\047?\261\026\202\323\303A\230\220\214\236S?\262{&G$\005A\327\350m!w\036\327\303\026\377^OfL\230\267\336a}\301X\312\267\262\217|?\006\317+\346\000\375\016\301;hY\021.\332@4|\227\210\355\016\374-\025G\307\243vY3\0341,\033\307=\277GDa\234\322LL\270\n\374\215\322P\242\262*/\262~\022\362\006\225\266d\363\376/\035q\260\036:\264Y\004\347A#\nF$a8\222\343\313\307\230\276\251\004\307V\243\nh\373^Tq\316\327\200\0164\222`8\300c\214\251%\277G\301\233\t\027\313}\235C\003\255A\255\306L\225E\360\207$\251\225\300\214\364\270\260\336JY\314Q\361\024X(\320\364\nX\363\"\364\371E\326)n\227\263\047\177\341\2743\047.]\232\212d\227\215h\334i\241\256u22\364\313\225d\334\217c\321\007\374\227*\325\372\321iy\317$_\036\356\252W\346\272kW8\231\373\"|[\227G\024\374\247dfU\3673B\322\224X8\352\234\365\327\263~\004\366\361\177\236\371\277[6\236{r\252[\323\213\033\302\257~\230\2575\315\226\214\314\254\2456VGZ\253t\233n]\350\225l<\202\345\206\276\032\267F\243n\362\t^2\363j^\017+T\225\201\3148+\"\200\326\244_\267\347\037w\222\027\262\342\370\373\000$\025\330\312\034uz\211\034\220P\335\212]\032\217H^qe1\315\004M\256uJ\025\3531\247\2200\210\241Lx\345\"O8\257x\254\016\361\357\362uj;)\346\206\276*\353\347+%\345\222\240Z\021\351\036\237\251\327pu\254\272\275\204z\356v\311\303\016\336\211Ua\274\247$==:\032\3569E\357\346\001\250n\325\014\214\207R\016H20\316p\260\324\307B\365(k\304\177Z9\210e:\253\256\251\353\234O\347\243;\223Iu\333gV_OeR\361T\3242\223L\"\010\t\003\363\235a\312\230Al\r\201!V\234\031@q\032\361\320\344\310MP\270\271\354\221\0344\325\365\206W)\331\333v\204\304yt\006\302l\277\016\217\177w\014\273N@\311\014\360mhr\032!\"\203\014UDa\025g\224+B)\274\334QY\220e@\337\260\226\376\235\253\2135\224\201d\255\3430BD=\244\247\026\202}\220\220\"\220\201\023\267\203\322%\2056\332\311\275)]\212l\265(22\251\rE\031Q\035S5\363\302\\\033\366\313Y\357C\030\004\313#\261\323~\214Z\267%\203v\334\271\200{\321\357=\240\263\213\032F\222\"(\251\251\366\367\231p$\340\342\340\023\337\330EA4\230@""\223L\006\271>O\336\363\242\370\210\304\276ni7\373\047\370\376\375\227\344\375 \377\3239C\023\214\326\235\032\314\014e\030\255h\376\321\372\357\373P_\337_j\211 ,\212\047\325\t\007\325\237J\207\353\265\240eAf\035(_-\002}\317b\010\257\324r3\236\215b\207)D\272\013\350\320\205\342\243\036M\366\300Tp\276N\345(9@j\n|\347\245\335Tp\0014\255\351ON\276\311^\242*\332\370`$\365e\330\306\244\302\237UQ3\334X\315\375=>W\277\354\251\211\366^\2007\302\302\222\211\336\302\373\027Q\335/\243\232\251q\362r\365\341\\\356v4s\265\303I\322S1\214\025\037\272\246Y\302\247R\312h\n\217~\302f\2436&aQ\231\233e\364<\316oC\037\247\327\237\010\204 \000\226\275\351\017\256\226[\354\035\021L\272V&|-\333\313 \005\315w\367\370\372}\375\255=<.\325k\016\235Qv\266\006\267\020\034.\304\212V,\263\255\005\002\327\n\216{\n\216rh\3030\235\037\270\317\301MX\251\047z\025d?\262\325\202\352\025\032\352\341\267~=>\217KS\331\3724I\252l\345\340\0216fY\353\372fS,\367\031m\003\324\2531\202\256h:\002Z\377\2706<;:\346\305\373rF\375\237\256\327\271m\356\327\025\274\312e\r\3243\350]\341\232\002\221\300Tf\316\336\351\273\341Dp\200I!\010I$I\026(.\331p\222\2340\013\036\336\t\377\264\245Y\300\312\227\n\305K\365?\373gks\346O\246\024a\243o\350)}o\212\216W\206Y_w\322\346\353\332\346\"\245\305\t\300\263,(E\216\356\267$\3326>\256\003\013\337\005\334\033\252A\014\320\304\267\006NA\226<\t\303\230\022\332\r\005@M\032\002\003\210\245E\025\2073gz\202|+\262\273\027\375t\341*\256\025\033\352\347|7+s\"\202!x\002\225\257\317\332\3337,""\237\0202\355\257\032\317iQ%M\306\033\242\243\215\027\004\301L\342\243\216\335\312\027\365\371:\360!\262}Hx\302\243[u\273\311\023s\261lev1\266\206\201\331T\266|~\275\034\013\303\026\200>#\352\342\274\023t\235\236\032K\027\201\354\020\222\010s\0051\277w\207~\306\375\3048}\211H\0169\2010\260P@\003\000\240M\014\222\342\352\230`\013\234\354\360\212\217\371m]\263\r\360N\335\346#\313S\203\251\213\221\220C\200\227g\2625paz\\&`\314&W\021M\234\375\237\357V\355n\330{I\277\367\275E\302\342\330\340a\016\007 Kg\270\241Q\307\007\250)v\276\200\233\221\334EI\017T\035\303~\347\341\226&\3617\370k\200\274\300KJ\337\023\261\305\327\33278\251m\342\234\000\333\373\220\313v\375\335\343\206\215\036\021(\014\306\211X\334\271\266\366\337\207\203\212Q\344\022\033\274\265>z\313\n\307\025\255\3634\244\251\013\276\000m\231M\240\333\340\364\231\267\264\316\017\177\014\200$\245x\"-\276\001J(\217\222\206Z\373\332;UF\250&\321N\360lb\t\312M\313me|\266 m\314\004\230S\200\027\220\275L\316$2\326\025\327Av6\205F\346\203`j\360\255sc\323\014k\001\353\212\016\314\034\320\314\t\345)\233\022\033\216:\010h\035o Tu\304V\306\2545\322\033i\256\002\375\254,\247[j\302\243\013\307o$\254\211bT\367\215s\311Th\320\325\371h\332!6E\020\331\025\030\252\036\010\367\247\362\312\326\230\201Y/w-\320\316\355\373\375M\356\352\236 \357\204\t\266\240\361\210\277\207\273z\333\032\341\261\272.\374\255\367:kn\211\263\335\330\36186\300M\340\304. d\017\3500\271\340\022\354\352\031\263\203g8\253\300\206\206\3644\003\337\022\037,&\333Rp\005\033F\322\226\235\242_\3012\205\363\204B\370\357o\325\261\034\306|\342oo\212mn\334\"\367\340\022I\010HB@\221ac\261F\346?\254\356\031_\204/\007$1M\343\251\213\262g\024\333 \373\363\313\022mB\277\363\202\373*o\002y\305\330oa\233\177,\026a\236\221S@\243s`\220\330\321SqH\365\266\305?)l\003\317+s\340\315i\362\347\315\276\216\"V<*P\205\262\0239\324\341\376G\021M\365$SlTh.C|B\341\035\345\n\270S|\343\203\252\263h\367\2506\226\315B\352\246\035u?\023\327bY\301X\245\270Cm\343\200j@z@\325!\321\226\003\245\n\031""\327\255\234\035A\362\211l\024\253\326\203\256\220\363:\002E5A\365\351:\360M45i\353\343\252\352]\230\304i\207\342\325\302\373\363$\270\013\343I\200\016\024\016\002\255\255\034#Q\370\370\343\323\323R\237\217\274\351\332\341\t\257U\360k\206I\257\002\376\366[\026\020\231!\230l\330\320*\264\032\247\214\236R\032\224\233\035\263OU\260\227&\266\305[+\313\025Q\247&\337\002\227\334\026R)\014\304\366\200\365\372)\246!g\343\357\027\352`\245\375\212\n\240\2154\002\224Z\332\315\250H\3001\352\2755 \364C\264\245\036\276\275\301`\274*\005j\2354\246\341\270H\r$\034&\244\326\375\357K\246\367\204\265)#\252J(\243R\337\352\340\027%\342\221n\010\336$\354v;\336\262\207\240k3_R\003E\020\265]M\265\215f\257\013\224\213L/\024\327\354t\276\341\365\3151*\230\311+\256\032\206\245\256.X7\304\276\032\300\367\203\360\235\004\322:*N\201.\220\270f\235\366\037w\242i\230\342F\360bQ\002\374W\262\373\274\3225I9\362-\271\326\266\231\3220,\204\002\342?\205\300\036\301\313\347\005Q\314On\326\235\357\225E\347\221\261s\212\222\211\374D\374a\3139\341\022\217\225\252\256tOx4\210^\363\330\340K\315\265?s\277\316\377s\236\373U\314\275\276\233[\237ht,\\\344\222\210a\210\342QMG\263\356\372\277\211\037\253\375\177c\205\252\260\253\276\363\021;\313\214\2004\321\244\023\"\360k\022\204\345\354\034\323\366\362\313\035\276\231\315\267\311-\202\047n\305s\3013\270\343r\324\034\3237o\313\322?w<\325\347v\246\023\267\200\236\344\350\341ye\236\275\047\211\344mlc1\350>\250%\357\306H\" &\376\364\350\331|\014}\374\007\213\037\237\362z\217\257\337\200=Q4\313\313$\276\223\265}t\r3\331\350!\272uu\0050:E\340H\035Y\332\351\235\016\317D\350\237\365x\227\251e<\322\362\326\217A\362\364\272\"\024\322\330\365\017L\313\362\355;\376\217\023\305Z\365\037\2510\243D\001H\020\235\033\004\216\365\254\373\366\3755\274\221\372F$z\244\204h\036\010w\241\212\330\001W^\366\030^\343\351\020\202jr\037\315\177o\236\003\346\243\337\363\016\nI\3046\323\254\366O(C\311\212\236>\230\221\326\247\213\347s\003x\273\233\312\352{\002\237z\010\274\230\207\336\212u=""\r\200\356>/\212*9\235\037\341:\300*v\227G\250\366\203x=\325~\376\211\276\243\353!\006$H\003\3008Oz\334>\223\207A\374K\361\227\330\371\227\352#^\331\235<\377D\257\226\227\361\237\242\327\221\357\0163\337\313\353\374>\225\353\333\356\312H\367%\204\0102\367/\245D\220\350\317\335\245}u=\301\365\210s~`\314\310\372\237\365\021\246\032?\177\273\344\030\372\204}i\222\031c\032(!\236D\266}\047\323\355r\004\347\010l\257\310\224\302\305\367\205\022\326&\023\273\361nM&\247\264)\355\251\360\r\204\244\226 \2274U\376\355\034\217s\264\021\375\nj\t\314Is\002\305\002\335EU\375\333\036?a\347UB\275\265\240{ D(\2107E.*\326\226\243\237\373\273\317\264\014\023\333\200\321\021,F\355\272\322:\375(r9\010R\236\223\335T\240$\024\270\230aU\253\260)\034\252`\331\314\334\022\346XX\315\346/\366,\345\026\227.\366,\027\036^\354\231[.\224\262\212\356\007\205\345\365\025`\266\252\252\271L\276\347^\026\313\333\3630W^R\330\312K\n0\253\0302\253\351;\337\327\003E_*\314\367\367L/\345 \217\373\331\r\340\252\212<_\352\003O\026\252\007!%\315\310R\317\303\245\254\346\333\\F3\030\361\032\206b\0331\314\207\257t\315b\002\235i\036JX\302\272\204\206S\336\350\177\305\266\255\271\345L\251\324\263\230-c>\271r.\263\234{\014\010\220x\340\237l\020=\210F\225\271\260\212a\240c\003\202\324\300l\341z\n\367~\313\316\225U\373\323\355\0072W\324\002u\205\207H\332j1\267\222)n\260\266\006\334V\210LS\241R\007\267\214ot\t.\301\177<\347\317R\341K\006\343%\267y!\312K\205\3742\317\r\277\274\244q\370\353\206\007\372X\"\3639D-\226\316\337\341\311.\336\355\271\2432Tq\263@u\2418{\377!\006\356\366ib\207\013s\320N\362\345\214b%6\256&\037\330F\224\315\353.\010\235\215\352Sa\032q+=_*g\362\320\007\021Y\261\260\010\350V\000\375\234\252\230\007\271\014\265\200\205\302E\321\016 3o\007""\244\246\221\313\226\372-k/\021\273/A\005\254\027\363\274\003K\016b6\205\365\262\2520\323\310\3248\205\003\227n\347\320|\261\231g\363\245u@j\352Q\265\363\314\362Cl4\017\240\351\315\023\302\342z^\362\367n_\317\307\252\341\227|\325e\232\010P\210\221\313\013\375D\n\3412\334\212\022\263\366Qq\"OQ\373\273g\352\376w\026\006\242\236\363\331G\253\320\035\240W\365\334\2031\007\207\023\350y\345Bq\343bO\246\334\263\234\315\224\312=\266\223-dr\313\246\007f\213E\250\332\271\302|\266\247\047\237\315\342\000~>\203_\250\021\031\260\001\35338\310\367\30421\250c k\203\006^\200\345\013e\223S\337\331\363\363\271\322\352rfC\265\201>\240\353\354\371E\230AV\373\240\211\237-\235-\365g\346\037 {\300\007E\231-f\362\213\331s\210e>\273Z\314\316e\220~,\364R\006\021\367d\027\026\240L\337\364\234?\177\266\324w\036\263\205q\0269\332\327\327\367\312\305\236\213=\213\220y\377\347\337\364|\377c\270\007\032D\016\232\000\024|\000\375\320\366W\024\222\322J\241P^\202\242\204\207g\022\006\363:\326\323\275\345,\373*\207\303\376\303\374\267\340\2411\244DM;\017\335\033>\356\357I\302\210{\016|\347T\247\000\006\365\207!\335\234\356l\021\305\306\363\251\360lxl,>4\033I$\372\0063\363=q5N\251\210\301\360\360l|\360Fd(\245b&\334\301\303DN\204\023\341\361\276\301\365\345\345\317\006\263\300\370\211L\031\242\363=\3471\224+-\365|\327s\371bO,\273\016\263\360r\317\367\030\300\304\030\363C\317\345\276\241L\036\253c%\367\250GO=\212\231zv\032\316\224\226\200\273c\271|v\270P.\273\336u\344B\344\321*LKy\034\231{\306\013j\020\014?\310\0263\213\331\3461\356\000\021\203,G\224\230\200\305\030\231\212\r\315\306\342\251\331\221\370Tl\270\317M\205\214\317\364\200\370\220\315\254(,\023Q\031\227\367V\312ul9\036\354\327\023\361\251\t\206~\024J\357\241KO\347\370\031T\016L\356v\276A\004\321\330\304TJ!\200Z\202P4\025\205\351\347v\244O}V\372\006:\360\372\302Bn.\007e\356\031\325\355\232>LN\215\214D\207\242\221Xjv4\232L\305\023\267\340#\254\036`\215\255\374h,\025I\304\302cX\377\361\004\244PCN\317(T\002\224L\247HC\226\303\263\243\341\330\360X""\304M1\006\231\365\2446Ve\2421\310i6uk\302\246\263\255\306\345\037\377@5!U\013\251h<\026\360\325hay>[\014\370f4>6\034I4\377\302G\033\377L\322h\247E\010\257k\361\355ff}a\005j9<\237\201\211\375A\326Smc\271{E\234\254\261\342\274\225\006\362\201\2522V]\343\221d\270\031\252\361\221(\310\252\336.\3760\2033B9WT\202%H\035\227 \313\236\241\376X\301\363y\317y\220%\240\305\2277\372b\320\366\221\240\344\372\352j\241X&r\220\224\344\324\304D<\221\212\014\367a|6_X_\\2\343 \312\277(\313\271\355\275y\003\242\2110\221\235+`\346@\35670\022\203x\005#\306J\001\346\255{\246\027\227\001of1\223\313\367\263\014a\326\206\211\031\346\n5\351\227\276\351qg\001H\224\325\343\366\220\222\351\365 \273\234\273\007\271\224\2630s\003e \334f\325\340\236\357\231\210L\\\272\372\325U\232qp\300\202\031g\375\236\022\334\262j6\271\267\236[\006\001\241\247\014\255\000\205\346\205\236\215\302\272\232/\260\270\253(\340\261\017`\340\314+\001\025G\320sjXR\243\344,|\016\254>\3273\017\3650\247\352\016\276\036\311,\227\262\375\361u\220\240\026.%pR\350\211\000!QXLMp\337\330U?\321\006\205\310\256\254\2267\024\275\375\263s0u\365\257@\207\311\221\226C/7\240&\240\317\303D\312\223\255\303jr\311\227\242\014M\376^?M\205\310X\rP\037jo\241\010m-;\217*\032\r\320\254!\277b\216\366\2276\310S^*\352E\215\016\302\372\013\227\233:\362\263Y\243\333\352_}\224#\320\\ae\245\220g\000\\?\261\240np\n`F\002\306\224\222w\240<\027\036\n\017\r\r\202\330\2274\356lR\241\360\004\373Qz\300e\342\354Bny9<\024O\342\237\2336\336,\235\233\"8~8<\214\377L*\327\347M\026O\016\251\0377\241\365{\223&\340\237\233,\321$\321\014\256\274\360\317M9\3234\251M\322$\205\233 8~l,\034\017\307M\242xp\242\2118\3743i&\232$J\304\3431\365\203\354 \327|#\203\001\037\362\204\301\251\222\321\030\376\231\204\326\353I\227\n\307\360\317\244\263^o\272\004\374sS5\341o\372\372p$\255\177MR\036\360\245\236HD\207\"\306\265_\360\240\347\233\345\345!5\374&\365D[\032T\355z\220\267\356\301\346M}0\222\n\343\237Ii\275\236t\361\t\370gR\271>O\242\302\374\306p\341\267\034\272c0J\243\233\\\202\261\005=\351lQ\001\207\206\242\360\217\276\267>\211ihx\354\312P\">\235t=\346\003O\330\367\331\347\203c\341\241\233\346[\026\262\010\374@?\026X;D\207#\326\307\276\026\000\377\227c\321X$\231JDoFd\210a\360\001\375X@&6\004\220\227}/!\376\217Q\366\206\346\235\204t\243\3360C\023\000\366\343\232\036\215\246\"IXqF#\211\244\017\300\260\005\301}\350\302\330\022\343\261\310\360`""x\360\2267l\221\005\201\375\270\206\323\341\330Pdp,\016\225)\203\014\223\037\352C4\030\031K\341\232\232y-\002\017\304\377q\"\022\276\031\236\016\337\342~\366\271\007\344\373~h,\016up}<\234\230\032\214\337\236\362C,\256\340\010?\3068\0248<\206\254KN\303\360\034\000b8\203c\002\220N\241\232%\234J\205\025\267E\230\243\363\203}\270\206\303\211\233P\226\251\341\241x:\222\360\001,\266@\270\037]\374F\224\034l\321\314\3130IH \016\231\272i\312D\370z<62v\313d\313\303\014E\000\330\207+\022\273>56\002U\312\375\026\207\027\344\377>\035\211A4+\271\007\302p\005F4\303(\261\005b\332\r\313\365\360\004\216O\370\247F\205\000\220\305\327$\306\2174\021N\303\250\211\243\202\346\274\0040\204Ap\037\272\321\360\370\270j|\332c?\027\341\200\317b\327U\037\214\211\000\377\334\003\013@\221\010\217G\255\047\021O&e\210c\363\002\233\240\363~\3224u\364\372\3504\360\207y\331\247\022\022\360\361\315\233\341\233\021\353\033\217\017\213\000G\345\2015C\346\373\244i\372\3708\360u\"z=\022\217y\202\014\207\037\352C\004\r-\226\212\016\205\307>7R\202\007b\321\005G\3701\306b\0215*j\017\373\236\207\003>\203Q-\025\031v\233\242\004p4\001p\037\272\233\321\241\233z,!\337\340-\034B\224\010\340\201X\324\301\021\315p\373\276k\226\036\346\335\341Hb0\236J\305\307=A\213#\000\352G\024\217]\037\213\\\277\036\031\246^/\001\014Y\020<\030\035H_\314\353Aa!\276\217\331\034\355\237\234\2377+\217\207SC\243\300\261\261\370\264\014q\024^`\020\026\222T\310\047\276\336MN\031\217\047\244\311\010\356\361\244\242\272%&\375\020\21328\302\217q4\036O\331z\342A\206\313\017\rB\224HQ\347q\375\002\205\000\371\277\237\200\341\020\362H\305\047d\210\341\360\001\375XR\300\305\310\360\004\210\230\221D\314\007`\270\202\340\001\350\260\242a\2651\035\035\032\365\20692?\330\207+\025\2769\225\210\272\036\373\265\010\007|\226\234\272\031\0051""\210\373\371\307\022\344\377~41\225L\351\276\340\372\331\367\036\220\377\373\204\031\021\310\307\276M\354:\002L\305\242\223S\221\317\023Q-\306\363\240\305\021\000\365#R\" \224\321]\364{ \014]`\204\017\343\014\245b\235\323\013\2628\233\304x\220F\242c\370g>\263^O\272\361\021\370gR\271>o\2428\374\233\302?7e|\252YR\233$8E|b\002\327\300\3321\211E\310\373A\"\021\031\323\277nr\026\360\246N\302\277Q\374s\023\047G\233%\265I\202SL\215\047\247\306\365\257I\312\003\236\324\351(\3743\351\322M\272\020W\177\341\226\3710\214\264Sc\251\341\310x\030\377\350#\346\225\337\017G\223\341A\030)\206\243i\370gRG\203Ut\303 |\216F\225vB\271&\271\014z\276\231\210\017\273:\317\341&\332\317\341\031W\001\333D\023\353\0325\016\027\312\221\221(\374\243d\326\047?\200\002\33327+}$\021I\300t\351\342j2N\271}\267I\047\216\314L\300?\223f&x\260\212\254\255g\226G\306\342\361\204\372\2414\334/\323\217@\313\033\261Z\337\221f\n\340\221Dx\010F{rLj\021\362|\220)\232\355F\343\366\317\316\242Q\330\354\254\027\260\020\220p);w\177\266\260j,\326\324V\016\213_\314\226w\211\305\315k\221\215N\246v4gKjsI[\364\261$h\363\264\314\302\270M(p\224\3122\274\236\317\241}\031\203\271\206n\013\313\231E\213{\321cw\027\020!\211A\27051t\301h\217\350\006\226\013\205\373\3672s\367]\2006\243\363dM@\211\236\014\356\334pq\335r\336g\257\047b\002KQjR\212\222(\305hx\324\364\216\321\340n2:\036\036u{\320h\223\2764\232\232\035\036\232\200.\024\037f^\363\221\017\022\364\361h8\031\261>\361)\003\370\276\304\310x\302\365\330\357D\330\367Y\022\3045r\354\047\311f2\034\304\245\022\221\030\256G#\334o?\365\202\202\277\037\217\017G\270\337\363=\003y\276\317-.\215\025\036*\03314\212\215\216G\243\256\246#\332D\347\301\315\313\310\272\354fx<\214\177\224\236y\345\2477aN5i\202\007\236\233\3037\340\237I\343\372d\"\344G\030f\327\353\256g6\214kUO\220\276\r\2066\301\250m\337\206\"\023\251\000\220\017\2417\246\031\322\344X|\"\342\t\372\220qhSD\336o\202R\307\306\314\2549\026<}\216\305\257\017\\V?&\035\363{\222\346\362\331q\250\316\241a\374\213\314\244\310\241\3042$""?\305\270\221\350\0149\354\003\033\362\177\300\2225I\243\377w\3235ii\343\341\304\315Hj$j\\7\275\010z\277I&\243\352\307Mm\375\336\244\351\t\374s\023\246\047\232\244\203\362\317(\233-\343\272\237\210\240\3573\233\254I\n7A\263x\024\334\310\3213h\256\234]\231\235\265 =m\216\303\212\016\367B\215k\360\312\240\007;0\326\362\264\031;\243 \231A\0171\256I.\203\376o\0241QILt7b\2421\370\247yL\256\373Yl\027\036\303g\341\031\375k>\366\326\221\017\022\204B$n\226n*9;\0345\256\375\202\007\003\277\0317\256\374f\274\33176Yp\212\370\370\270\253\032\034o\242$\034\007Q\037\377L2\353\225\351b\341T\"f\367\351c\315\266\354c\361X$\226\216\306\334\325F\254\311\272#\226\315\024\343\203i\370G\321\326\047\023\306\265\335\314pn\016M\377\224\355\344\004\016\304\261Tt,b}\364\255\017 \221Qt\"\034\273\311\274\362[\006\361|<\246\252\220\034\363\321X\363z\325q\343\344\210\017\202k\003\026\235\023\356\ng\242\311Zg\"\035\235p\231:\321\204\275\023\3518\374s\0235\303\224\202\177n\242\340\232\237T\332\033\375K\tD@\246N\300\250\353\016S\211&\003V\">\004\377&\360\317\244\264^\177R\374\033\270|\231\034\373\005\013\371?b\311\232\245\261I\202S$\243\twJH4\231\034\022\351h\302\255\202D\272Y\242\370\030\376\271\311\342\301\013+\325\270q\300Nd3\312\034$\031N\300?\230t\365/}$\002\022C\322U7%\233(\236\320d!\032\033\305?\223\322z}Im\222\340\0240k\272u\234lR\333\311\361h\322\025/\223M\004\315\344d\"\205\177&\231\365z\322\245\206\207#i\375k\322\362\2007u|hT\375\214\350_\367\023\026\010\370\004j\333\270\374\213f\215@E\362\204\301\251\246\006\341\237I\346\372\274\211\230:\247\231b\0479\005C\225\222\366\255\317\375\304\003\360|\251\026\310\311\245\314|\341!\232\023i\237\2622\322^cgdC,\262Dyh\304\260\222/\254n\314\316\272\301\371lv\325\003\202\201{\035\326\345\263\251\317S\237\023\324\365H\312R\341\030\374\033\305?\2230\334\244]Z\233\262f\326ex\250iH\375h;E\346\235\035Z.\344\263\034\020\207/\275\341p~~\304\340!\360D6{\237\207\247V\3473e\201H\031!+@\303\260\317\010\3643\002?\307\310\020\372\3611t\002\033C\306pYT>L\026\021\307c\321\304\325\217\305\025wq\305\275\270\342.\2568\303\025\267\270&\342\372\327b\233\260\350&|\370&,\302\t\216q\202\241D+T\343R\2132\026\254n&\006`r\342a\226\235\001\233\272\233\320\034L\357\256\264\006\323\331\214F/}\3363A\301PN\251/\316\222\033\030%h\366\245\260\204\373\2428\365\276H^\004q\n)\010&\310\2271\214x\177\204$]\3063\302e\204 [F1\242\365\001\023\356\347D\022\304\022\307\000\202(\202[b\010\300\211 \220\310\334\234\234\362\206%\021.\224\023\"\200\036b\3348N\220\013\224D\271`A\030\236\250\342~u \313\007\220dZ0\247SB=\204\332HN\251\205JR-\334G\253\237\022\037\021\315\362\367e\035\220\253\310\220\316\214\311\220 \300\300\030\t\034$\21101\214\014\003\022\204\030\240 E\035 \023\201\361\370\2607,is\241\234:\001\364\320\347\306q\n]\240\244\321\005\373\251\014\240\302OB\323\374\375\231\007\345,\262e\047\343\374\020A\r\2073\222\274`I\027\217e\304q\260\240\220G02=\047\356\002\201\234Xo\224\2457(F\220\354M`\251\366\306p\302\275q\234vub\211\373\005\245\032\302\010\264\000I\227\2063r4@P\241A\"s~F0\010&\211\0211\234(_\204\2078\021\317\211\024\021\222X\021\305\210\246S\204\"`\216\"\006\002y\031\274Q\266\020A1\242\024\336\004\266\030\336\030^\016o\234\277 \001\344\371\311jJ\216\237\214\240\354y\266\374\004\245\037\302\251\021pK\222\017,\350\022\261\2268\001\346\024\212\010N\2468\233\031\004\023\244\312\030F\254?B\222+\343\031\3012B\220,\243\274DGc\021\031\362\021\2120\017\211\006\344\047\016c\000\047\210\203-M^\250 \213GZ\3128\224\023\307\341\202>y\3369\030*)\365\304qr\003\242<4{Rp\302=Q\222zO$+\202\347|u \220\027\300\033e\351\017\212\021\344{\023X\352\2751\234xo\034\247\235\235\347\366C\004\325\034\316H\366\202%\275<\226\021\313\301\202R\036!\311\324g\306=A\017\201\004\024\3241\230\2274\212\022t\021\314C\024A9E\366\004\272\017 \250b`F\227\007*)c\221\2146\006\025\32418\247O\234j\017\202\t*e\014#\324\037!i\225\361\214\\\031!(\226Q\202hvz>\000$I\346\021\234b/\334C0\217\346\364r\270$\227\3070j\365i}\356\347\364\021\304\022\306\000\202\"\202[R\010\300i \220\310\234N\373{\202\222\004\003\344Tp\230\207\020\023\305i10I\216\201r\212\314\375\001\236\240\240\310\0052\212\004LR\344F1\212\\\230\240\310\205r\212\022L\2562W\024pj\022^9\212C$%\t\257\334d \202\212\204ON\342\267\032\370!\234\032\001\267$\371\300\202.\021k\211\023`N\241\210\340d\312\333\022\002\201\202XO\024\2437 F\222\354I\300\250\366\304\010\302=q\214v\357\255\014\301PN\275/\316\222\037\030%\350\367\245\260\005\360E\361\022\370\"\335\"D\242c\344X\"1`\2502~F\006\202L\276\350\267\031a\310\305<>\242\177-^\360\033\264\344eX\001b\220\202\327\342\204\200E\031\327\277S\3440\324q\273\2544~\216\213\232\302\006=\013\262,\010j\262\241\240\315\212\0006;\274\033\303\365\260\314T\320\315\313\r\361\254\024\320\315I\205XF*l\363I\352\337QrXNI;\027\032?\317%i\347<\364\263\034\222\243\034?\307\310\020\372\3611t\002\233E\246\216y\270\036\213X\007\rn\033b\3505\320\344\240C6\023\035v\363IG\365\257\315!m\247\337\264o\342M\333)7\315\047\333\264\235f\361&\020r\\\244*@X]\277E\253@\204W\371]\304*\344b\216\246\365\257\305\033u\r\202\215\227a\215\272\246\300\350\2658\243\326\010\330\334,\302\274\026\271\001\230\034x\230ec\300&/\023\266\031\032\210\233\253\262\211\037f6\361\303\326&~\330g\023?lm\342\207\271M\3740\263\211W\247\024\330Q\002{""\222\300w\220\300\236#\340\307\010\330)\202\310HT\377\272\330\320O\350\214\327\342C\010!D\257\213\021\003.J\325&x\223`-\302\337 X{\020\315\201\267\006%\031D\224(\031aBd\304\212\217\021\237\340\030\261\"c\204\013\213\021&&2\371\302\212\024>)\302\n\016\\V`\342AdfB\377Zl3\256Hi\274\014\337\214+@\242\327b\234\261\342\242\272\312\305\270.Z\035\"\3046`Qk\030!\327\001\027\275\016\272\031\350\303\024#\374 \305\010;D1\342?@1\302\016O\214\210\203\023#\374\320\004]\027c}\026?\205M\026,\310r!\250\311\210\2026/\002\270\331\341\243M#ca\\\022\253;ZRxo\275z\334\212\003F\212YL}=[F\220~\322\310\206\243\371\205\202\016\251\267\224\334\367D,|\214.b\321\241\370j\323\204\372M\022_\004>\010%(\263\020\"m4\254~\\n\215\272\235f\324\333gF\335.3\312z\314\250\3550\243\252\017\216\262>8j\373\340\250\257\017\216\332>8\312\373\340(\353\203\354\326\025\031\262Y0\230\311\312\003bY\262\030\2235\003Y\022\030P\222\202\267\270\210\200\207\020\005\022t\270\020/\031*BP\241 \036\"\024\214\321\240o\204\341~N\001A,\001\014 \362\047\270\315\236\000+\221\250\265\017\211r\313\220(\263\t\321\357\275\231\241\315\276\365\004\001\274i\207\0347?\025\240\014]\277\315Q\201(K\345w\363T!\223\351\315!\365c\261\2723\302M\357|p\323\235\rn\262\271\340\246\235\tn\016\337\320\277\026\033\370\r:\3622|\0001\010\301k1B\300\240t\257\300\341~}\301\217\037\342f\353\205\023\tA`K\2167\226H\363\202]2\275\021>\222\003\310q/\022\n\206\356\366\205\277\0202*\250 6\205\25706*\240@6\322_(\037\031\3152\367e\251.>\362C\002\n\255\341\276\234,8(?\035\033\234kP!u\204\277\200\001I\335D1\365c)v\027\020c\336\245\303\230\273h\030c\313\2051\273PPw1\031\327bT!\203\324\r0\274\nfP\253\200\305\256\202&\0035b\340\005K\344DfR\326\347fh\302\224%\017\332L\r\224\2625A7c\003\260Y\253\333\237\254Od\207a""\226\235\t\312\354\020\312\262\303\240\310\016\001<;\221\003G\037\200\233#\226X\031Jb\037\033p\307\331\200;\356\037p\307\331\200;.\006\334q>\340\232\253\251\230\227\345@\0007\027\026\3469\021\330\315\215\302,G\202\330\\\223\311\250qY~\030r33\001\236\023\302\334l0\300\362\300\240\315 =A\016C\237\236\260\330\323\023>\344\351\t\213;=\301Q\247\047\030f\335\220\364\005M\314\313\362!\200\233\027\013\363\374\010\354\346Ia\226/AX\336<\027\226\201\0377C+02d\014\227E\345\303d\021q<\026\r\335\330\305\274\026\257\001\030\354<\314\3620`\223\223\t\333\374\014\304\315U\267X\336XY;\3657Q\326:E\303\344m\222n\010c^\213\334\000L\016<\314\2621`\223\227\t\333\014\r\204\347j\330\027\365\262/\352a_4\230}Q\017\373\242>\366E\275\354S\347\377\315Ee\314\313\362\216\311F\314\303<\357\230l\304&\314\362\216y\032\261\272\261\314\3650\n\374=\211\301,\035\315\372\023\213\261\324\004\364*\006\2244y\362\225Y\006\346&3\362\346\301\321\253\253\271\230\227\347\245\00167\033\026\371i\260\315Q\207y\236\032\342\311u\234y\275\271\216{r\035\017\316u\334\223\353\270/\327q\236+\317\205e\340\307\315\320\n\214\026\2312\207\034g&\220\343\326\354q\334g\3528n\315\033\307\271I\34383c\304{\345\310\261H1`\260\032?C\213 \203\027\375\0261\206\014\346\230\276\242\"\306\357\250\210\261K*b\376[*b\354\232\212\230\270\247\"\306/\252\210)\335y\214\351\316cVw\036\363\351\316cVw\036\343\272\363\030\323\235\307\007\323\372\327E\211~Bi\274\026%B\010%z]\224\030pQ\352\347\177\315\212\321\336\177\047\002n~\014D\331z 6w\026AD0\210K\013\203\031\222\330=z2\344\245B\301$\031.\310G\207\212\221\204(\220\227\022\005tI\0313C\200\271\247\317%aL\014\000<\310\262\036\023\335\337\004m\226c\262\363\323\335~\326\347\311n\\f7\036\230\335\270\314n\334\233\235\355U\023j\237a\202\3553L\330}\206\t\337>\303\204\335g\230\340\373\014\023l\237aB5\372\t\326\350\047l\243\237\3605\372\t\333\350\047x\243\237`\215~\"\035\327\277\014\245\2452\355\2432m\251Ls*\323\234\312\224\376e(S\026e\312\2072eQ\2468J;\216(\345\255~9\336hk\031\210\324\265\372\342C\327\343""\346NA\"\200\205,\r\004$2(\344RBaCLB-<\022LXLXi1\341\023\027\023V^Lp\2011\301$\306D|H\377N\220cQc\300\3406~\206\034A\006;\372-z\0141\374\tr\006._\266>\236\215\n\333\234\334\240\310LAm~*\310\263T\000\236\253\310\201\243\017\300\315\021K\254\034%\307\310\020\372\3611t\002\233E\246\026\\\t\266\334J\330\305V\302\267\324J\330\205V\202/\263\022l\221\225P=4\301zh\302\366\320\204\257\207&l\017M\360\036\232Hs\224\3611r\030\322\370\230\305\032\037\363\241\215\217Y\274\3611\2168n7j\022Y\2743<\253\037\231\240G\311\315S\253\370V\252\262C\322\367Y\272\036\227\004\n\022\021,d\311 \021B!\227\024\n\033b\222\314\320)i-\234\222>\323\246\244\265iJrc\246$\263b\322\227y\341\335\231\344X\324\0300\270\215\237!G\220\301\216~\213\036C\014?\307\310\020\372\3611t\002\233E\246\306\223$\033O\222vW?nQ\301KE$\237-\032\000\250H\340s\213\002~S\004}g\241\276\363U9\026k\330\016\240\256\237a\016\333\001T\371-\3660\033@\371e\210\354.D\377U\210\354&Dq\021\"\277\0071\245\r\\R\334\302%\305L\\R~\033\227\0243rI\t+\227\0247s\301\365\312\365\210\353\261\330u\320\340\267!\226\203\006\232\317\213\203\034\036\364\342 \213\017xq\220\3056{`\220%Q\017\014z\303\320O3\014\206\337x\202\370\354\2406\370R\345IR\2014\210\030\217\357K&g\351Q\316\344\354D86\034\2060\014&#\211\360x\304\000(\335D|,\234\020\321\032@\321\263\023\033\217\340\017\337\322\231\215e\037\225\023\331\205\331Y\262\247ME\343\261\331\030|\003\311fg\325c\216\340\344\363\2052\2147\350\237#\230\344r\023\346\316\316-gJ%\373\022\225y,\202\277\022\001~$\004\335\302\034:\210\024]\254\017\365\330ap\325p\254\372]\253]*\211\352fv%\223\313c\302\225l9\243i\303@a~}Y\025n\245X\230\315\346\313\352\303Y\252,t""\263\017\321Y-fW3E\005Y\005\016>P\013$\014\341\223\234&\255y\353\302\274/9;\213\317$\232X\365\304\344\354,4\211\007\331bIq\016B\320\004\320u\337\233T\345\235\327z\262\222j\356\300\232\322l\256\004\354+\026\326a\251\227\235\305\347!\327W\021\223f}i}n.\013\345\001\200b\340:,\340fs\363\336\260\047A\021x\010\024#p\321\332C\263\2402S\246\260\265[&\200\337\020\232\"\002\215\244M\234\337J\232b\240tl\341j\200\353\264\022\235]UKQ\004\347\\\203H\014\025\265v\021Z$.\205\r\337\220\355jM\214I\260\n(\332\007\366\346Y\n\316\263D\353_\340\367r\241\224\315\314.\345\026\2272P\r\0173\2638*e(m\t\t\312,\353\337\313\332\031\200\352.,\257\257d3PG\313\331b\006\373\014\367c\201@\032X\364\302J\370\352\n\007z\023\255d\036\005\200|\237i\300*\2209\237).\342\253\237\372\211\317Li.\227\313\224\312\033\253\331Li#?\227+\364\273-\254\224)\027u\2212\017\026\265\347\336\275\354bn\376\321\275\\\371\336\0064\332+\320\2325WK\345\334\334\375\271el\227\320\277\312\305\314\\\026-\346\347P\302Q\354\232+,/g\325PQ\232CN\344\241\047`\002\345/\341@0?\237\305\306ojO\365q\323\005\346\263\245\271bn\025?\237\317\225V\2273\033\252Ca\247\200?\340k\276\254\212\231]Y-o@\031\201F\370-=\314\225\227\262y\210\006&\000\2469h%\013P\330y\030\005\260\304\332\257K\206\376\373\314\277\234[\311\225\321c\223Rd\256\350zalR\343\223\036\244\250C\342`\246\372\027rYy\360UW\345A\376(O\341\336oY\235\312>&\353\206\260d&P\362\276,\353yPV\276#\273\210\375S\375\224\226T\265,e\227W\261\231.\3517;\227\263\371%\265\217\225\313!\213r+\253\320*f\263\305b\241\010\215-?\237}\204\244\362\354lV,\323f\203lN\253\225`\224R\365\200cs\351~v\003\376\225\356?Dn,g\027\312\3672Ep\363\213\345%5\"\233Gn\241\033\301\277lQ\263\033\232pne}\005\034\315\351\225\354Ja\005\262\325\201\\\t\262Z$g\026\321\353\001|\245\264\270\002\255%\267\272\234\313\026\363H\222j$\345\365U\310\020\246\260{\363\331\007\352g^\373\327W\3630\332?\002\336 \036^lh3:\254|\356\304\243C\372m]\360\256n\350z,,,\300\230Q\310\027\2638\246gq0\300?\324\262\251\241\211\213,\005\034\030]\204\236)\255ds*""\350\347\356\2601A\206\360/S,@\343\207\361\307\370\327W\301w/\233)\256\"\337\224\037\373&z\326\227\227\rp\036\376\0262+\031\345\224(\010M\035\334\245\214\352\231\312\207\215Dy\240\022\224\253\n\201\303\300\352RF\245\241\312\265\276Y\024l \370\033\374!\272\345lf\036*\004\323\252\232\274\007E\006\377Jf\3168\252\025jo)\267\230\207\2740\240h\203\232\326\277\272\004\332crX\311\315C[6\370ry\375K)\225\307\246\314\257\227\036\344\300\227\277\007c\037\216\013X]\313\004\\U\234t\337PfO\047\363W\224\251\202\311\301\232\311a\3060\307\317\3038\262^\304\3048\250\223\303\013\213aA-\002\326a\3305\t\210A%\370h\236\\\344]i%\247\177]\276\224\326\341#\370\\\177\365\020\032(U\221\362\353Z2\321n\006\253\360\227)\251\361@\375\250\362\330\341A\371JP\261\331\262\236\025\340\2639`Qn9\253{\026M`\253\205e\350\244\253\205U\325\305\325\317e\365;\300\373\274\257\377S\033Vp\370-`\0016\212\370\226\035vi\344\204\232\021\325|\010\242\3212\314\021\320=px\007!\244\210Zkl\3628!\343\010\265\270\244\206\212ban@\223\005\276+\256\217<0M\227@\372Y\311\340\004\2237\364g\227\0274Y\276\247\256\275/\\{\036\266\226\357YC\310\314?Zd\300b\350\n\322\243\224\366S\246\367s\253\263jnPuK3\214\366S\n\254k\006\277\317\340j\266A\217\215\246H\234$\227a\\Y\006_\261\2549\214s\335\034\320\270\204\3610m>0i\213W\324\264\\RK\245\322\206\026a\312\320~\357\365\243\004\003ny\t\242\346\261,\271\225l\262\014\355\004=\372{\353\033\260\336+\326\373y\2710\253F=$\021\377\214H\271\256t\021\372WMv\252A*Z5\301$\352>\320S\260\226\204`B\310\343\037\212bPl\235\305\377\332vB/\375o\375\351\320\323\265\235\256\023\225\316\312\344\316\361WwN\274\345\274u\241>P\017\357\034\357\251\035\253\017\354t\275\016\361\241c\316\261\367\253\341\352\244\376h\243\322Q\241\230\227\337\250|\014_v\275U\311\374\377\352\177\246\000\241\343\316\361\217k_\327\207\352\217\032\300\220W\236\236}\272Vi\333\351z\273\362\270\326\375\277\266g\241\327\235\327?\256\r\000\253\236\016`\360\215\312\305*|u\2522Y)\324&5\244\277\326\246 \316[\347jk\n\344\274\361I-S[#\350\245\372$A!""\276\376j\343\316\326\261\355\001\212\353\257g(\356J\243\267a\240_ob\336\037\237\371\373\223\377t\036\177\372m%S\001\\\257>MU\336\252\254U\333\320{\267\332[\375\252\366M=\325\350\306\340T\345\\\365\215\352\227\265\217j\341\235\320\353O\037V\262\325\037\353\037Au\207^s^\373ou\255\326U\207\317\272\341\373b\365d\365V\355~\343d#\2759\260\031\335\272\353$\222Nr\326\231\375\325\371\265\340\024\036\377\375\237\377\374\3366\330\016\316`\373(:\243\355Qt\242\3557\332u\271s\3255\303\216\217\277\335\034\370\373\374\341h\034\337\354\336\023\225w\234;?;?/9K9\047\367\010\010\332h\033F\272\206\333o\242s\263}\022\235\311\366\004:\211\366\344?K,Pz\327\271\013\224\376\346\374\266\001\004=n\213 ]\221\3661t\306,\225\340$\333S~b\317\234=D\335;\357]\250_\251Oz)}\273\332^=S\315\325~o\234i,l\2067om\2558\311\224\223\202\232\3178\231Ug\365w\240\346I\333\020\0225dk\035\234\033\300dM\342o\330\326\211\304\3576\303\207\340\247&\362\356f\357\236\310p\036<\004\272\036\265]G\362\256\033\232\211\330Ytf\333\177E\347\327\366L\000\351\337oN\036\232\321\277l\016<\237\350\274\223\002.\317;\363\300\3455 \247\330\026F\252\302\246\223Q\357r\271\014\316\355\366;~\212\317~r\250\276v\261>X\317x\251=\r\311\256V7\352\307\032W\033\0176\0477s[\177@u:S\320\321\240q\2549kO\200\232?L#v;\231j$cD\342\375Z\267K\342\367\316\367\360u\372\357+\207$te\363\373\3556I\354I\347\344\331\332dm\t\013\001\363\020\314v\265Q\2349\232\024B\017\025P\202?\234?\376\004z\377j\213!\3311\303gj\031\013\350,\264/\242\263\330^D\247\330\376\007:\177\264\337\350\300\342vL\2403\3211\211\316d\307\317\350\374\334\261\210\316bG\021\235b\307#t\036ul\240\263\321\361\270C0\346\033\347\324Y5\007\237\375a3\363\367\305Crf\331\333\267\237W\241O\314\264\271\354,\2578+\272Bi\312\214\243\023o\237Bg\252=\215N\032:\0138\231\366et\226\333K\350\224\3327\320\331h\177\214\316\343\366\337e\325\177S\301\342}r\356P""\355\363R=Q\367\r\001\357T?\252\016\327^\256\277\327\030\336\374\277\315\314\346\306\366\253\320\274\234\264\036\271\212N\361\017\240\347O3k\271\rS\365\253q\"r\271\326k\332\347\047?8?\300\327\3238^\275\366\364N\265\255\252\310IW\256U\273\253\275\234\3204\n9\007\036\257>\261\304\002\245\367\235\373\300\373G\316#=\305\322\214\225B\047\005\035\035\234;\206\351\367\320\271\327>\347\357\375\347\316\037\212\273\375\365{\r_cy\267z\245\232\252\275S\277\320Hm\276\265\271\266\365\362\366\007\300\034gZ\017W%\247\244;\316\010\0225b\331\n\316x{\214H\\\261R\247&\361\300|}\316\000u\355\300$\262\001\nH\374\364\360\\|\325y\365\303j\246\372\010Eg\356\3373G\003\333\3534:\323\246\t,\241\263\324\236G\047\337^@\247\320\276*\231\376u%\214e\372qs\355P3\031\226\352\325\315\311=\265\216_\234_`4\321-Z\313a4\375\322\350J\255\332\035Q\374\215\344G\347G\350\2020\022\345\377\276zh\242oo=v&\023;\241\267\235\267\317\327\333\352\2471\375i\347t_\275\273~\276\321+\341MJ\004##H\023P5e y\335\314\315\264\264 y\355gt~6C\"\315\02242\376\211\316\237\355Q\034\373\243\035\267\321\271\335\361+:\277vd\320\311t,\243\263\334\361\020\235\207\035\327C\310\260\3208:\343\241\030:\261P<\3049\345\034\373\320\371\020VZ\300\257\363}\207\352\367\237\325\213\r\337Z\340\275\352`u\276\326W\377\2661\277\371\311V\333\326;\333\227\234\351\031g\006\232h\326\311\226\235\262\026\006\251f\335\336\244*8NU\232\307Lt\225\002\211\375\255%\261\371\\\357\047\3753\347\326m\347\366\202\263\260\350,>@\006\233e!\215\2634\307M\2403a\206[\232\366\003\047\267\010VS\304L\373w\320\271cj\362\036:\367:\346:\004\023\334\031\376<4n\350\3553\207\032d\220\037\357o\336\335\356}~\265]t\3220\262\354_\316Y\n\250\304\237\234\237`\205\r=[c\261\342\350W\207,\313\007\233+\333\337;3\272e\255\037\274\242\241\215B\003\205\222\212b\336E\347n\373/\350\374\322\376\033:\277\265\337G\347\276\247B\307\320\031\353H\240\223\350H\242\223\354\370\005\235_:r\350\344:\036\240\363\240\343\t:O:\376@\347\217\216Q\354\241\243\241$:\311\320/\350\374\022\232Gg>\224E\047\033Z\010""\005\267\207\276O\017\325y/7\332\033\276V\360~5Q-\327\276\256\337l\2247\257muo\365!so9\267\200\277\320\t\326\261\000f\020#)\317\355\271\324\021\\\275\220\251\373\326\220\331]\371p\317T:\353Zp{>\205oU\026\2527j\320<\272\236\276\344\274\016|@\245\327Z\365\377P\275E\324\207\2350\254\273\001\347\203\277/\037\262\030\2276\377\332.8w\177\331A\205ZO\255\255v\272\336-\375M\212\346\016>$\211\320\330\351jN\324\2548\207\316\234\231\323\037\240\363\240\375\t:O\314\232c\024\333\334\250i\235\273\016>T\201PZ`\302\247\027\016U\205\003\2157\032\276\245\354\007\325{\265P-Z\277\263\031\332\034\331\352\335\372z{|_c\355d;\351\t?\251\271\225uahk\340P\302\312\225\306G\215\361-\337\224\366a\265X;Y\273U\277\277yr3\2755\260\025\335\276\353\334\006*\227\234%\034uT\257 \251\213\250#qK\216\037\263\355VEjH\276x\351P\254\375\274q\245\341\223\255\376[k\257\235\251\345\352\277o\236\331\\\330\no\335\332^9\210\346\310y\353|\275\215\321\371\351\341\351\214\361\244G\271\220w\3620Lo8\033Z\256\245&/\025\214\256>T\265|*!\355\223Q=\216\2403\322A\362\342\250_\323pK\353\231\254\205\336""\225\243\346\305\370\346\373[\223{\035\024\016\307\0479\225\321\030(w\206I\0253\216\316\370^\206\006\022\257\3351\001k\"t\027\235\273f\205\361\010\235G\241?\321\371\323J\331\234\367l\364\270}\347H\333\337A\325?\005\247Pv\312\217\235\307\332\202\200z\23246\225\006|r\225J#\210\333\362\324\226I\264\303\047\301B\361?}\021\305\347+v\261z?zVP\047\244\351\207\232\332\014:3\246\251Q\033[Gg\335lq>\224\334\3222\324\355\"\266[\243\352!%\310|\273\330U;\032&\242=\025Z\036J{\232V\362\222\230HR\312\357\350\374n\026\320n\013R&\034\222{\2643LL\\Eg\265\343wt~\357\030\301\3567b:*-\207o\241s+t;$\030\254Mun\353u7)$h\354 \205\002\214\252\327\216\234\317\263\233\361\355\037\235\333hA\353\036\253\230!\231#\320\177`\266\313-O\032\030\251\343J\213JW\252W;\361+\350\254\030\213J\332\211\037D\236\016\206\206\320\0312&3\304h\032\037\347\320\2313\373\362\005t\n\241\307\350<6\243\3450*#\206;#\350D:G:E\005}\t\034\303\323\014w~>\342!s\357\013\341)gJ\333\223g\235\354\252\263\nK\307\337\235\337\365\026\023I%r{\3315vV\372sRpQK\247\271H\266\364\033~\021\354\347\273G\\\374=\232yz\264{ \002\203\210\376\304y\242wEHq%\215\315\244\t%-.\251\207\323\252\322-\2672\354\275\331\341\323\366\375\254\027\3474\307\323\254n\345\326+G\316\232\2776\013\333\263\316\317h`\267\233\r\302\001\031F\233\2204\360\220\242\236x#\355bH\375GvlRL\241\336Hv1Qt\242\241\024:\251\320,:\263F\047\270\202\316J(\217N\036:\245\340\2676\\\270\373\313\021\317\321\264\0148\341\234\3505*\r\251U\177\256\262\264\350\024aU\340\356\204\320\366\256\334\327u\rw\371pG6\035{\230\243i\324#mk\031\2352\314\330bA\241\267\265\357\352\026j7\327\217\236{\257m\346\267\303\373V1\007s\215\330Ef\000R^\266\023!v7\332\203 \203J2\201!\263\373%t\226`n\366\255\270\356\352e\274\025\240\372\217\234=\257o\376\265\235\331\255\263\036\220Ud\240B\203\220\324:\310]^\352\2724\221f\321\311v\334G\347\276\307\366\224\272\356\256:\010\342\246\356\236\277\314\036\361|p0\315=\254\313\0369\217\334\rdZb\2726\026\212qV~\305\246&\255ui\237\213\264\214n\317\364)\365g\177=\342\342\037L""\321\010\362\026,K\205\242\225\214n\250\354\244\215\241\262\313\361\236\272Y\340\250\024\353\360\351!\201\005\375/\202\005-\322\344\265\2025\201\333\237\322\226\233lCI\"\035Fg8\024G\047\016\242?\016Y\241\337\320\371-\264\212\316jh\r\235\265P\261\231\242/\243\364\014\027\217\224\323Mm\347v1\243\273\343\314\200\020\252\317\203\201T\002B\205\026\363I\tH\333\030\244\004$\355\23746\226f\0014d\305\320\211\031\026\223\235\243<[EB\007\035\252\372\013\235\277:~B6\376\024\n\207\244\235\236>\201\364\360\321s{\253g\017\353Tm\021\027\227\315y\t\2427\254op\327\346E\250@hV\247q\214\366\353I\323$M\326\211\233R\245*M\326i\207\332\235+\325:\3667\277\226\004DD\316\265c\317o\177o\325\326Q\355\350\345\332\325\255G\333\217\235[ \203B\001\265\362\254\274[S\014\357\245\361\0016}\330k\331Y\206IR\253\342\3446?\351+\210k\201\007\252h+M\032\372K\005&usZ\206\022\327\362\350\344\355\352\337g\035\372wH\323\361\3429x\255qo\323\323}\235\356\217kWj\251\372;\215\013\233\251\255\267\266\326\266_v&\001\031\214\214\332f\027\017O;\277\2133H\264\222\224&X\244,\221\312MR<\221PK\023\251\273\224R\023)\tk\324\362h\250\2443\222\256lK<\274P\037\260\252\235\253\027\317\307\2577\337\330\034\360\362\361\223\332\275z\250\036m\334\331\n\241\245\303\366\327N\nfi\350\311\372\374\266{\030.\360\026\007\022\340i\354\223g\342\310\202\207\026\017r\010t\345\0305\275H\211x7E\250\272\342\302\362Q\365\213\027\317\307o6?\332\014{\371x\256V\254\237\254\337j\334\337:\271\225\336\036\330\216:S\320\241\001\0310\021fd\367\270V\340\205\010\322\260 \320\256\215f\024w[N\255,\210\201$\t\321\240\270\200\316\202Q\202\272\014T+\213G\206\217\237\325\331\330\370\230\255\304\316\277\360\251\371\240\266d\301\312\023y)\202\334 \243\226I\2134\271:#\036\322\344L\212\225\337\320\371\255c\r\2355\313C:F\356\325K\375\375\177\377\351|\335y\r\025\343kx""\005\316\243\247\245J\357N\327\313;\241\227\237v\357\230+[B\330\374\354u-M>R7\352\250\317N8\047\360\360\225\333\354_\371O\347[\352k\247\377\047Xt\275\275\335\206\233\253\047*mhg\337\3714]\031\250D\240\206\272P\274i\253\276\005\014\355\254M\327\303\365I3\0229\227~\000v\256y\361}\346|6\270\325\013\023\272\352\035\223\036l\257=]\204\262.T\303\325\251\3329\020\372{M\0314\025F3\371\367\361\377t\236x\252N%\264A\r\366j\373\177\014\350\024\352,\300\3235\347\204:\312\202\367\335\364U\007\252a\002\3532\274\006-\256\353D\345\230\212\350:\366\364\352\323\307\325\356\352\271Z\367\316\361\223\025\200\034\177z\2752\340\234X\245\004j\344\371\033\225\377\326\332\234\336\317\033\003\316\325\341\255\360\326\244=\243\361,\324\211\205\304R\235\201\257\272\272U\275\\\305\323\030\247\253/\327\272kg\240mu\275[\275\000\215l^-\346\272\336\252\314\231\324\357V?\206\314\346\241\215w\275\r\314P\037R\226N\367\247\365^\347\302\367\233\223\316\017\261\355\254\272\375e\212\362\205\325\3223\275\237\002eRU\177U\025c\240r]\033B\274\364\277\207O\347\260\206^\177Z\256|\005U=\n\r\345\345\356\312\233X\303\320\370\211\3526$\362Xm\2406\\\357j\264\271\031\203T\342\\\204V\354\374\030\337^WWa\244)\343\317\261U\005f\023I\265\201G\346\244p\353\032\377\253\211p\030\2711lf\300]\215\371\354\036\324\221\233,\014\264h\265N\314\221\233\365$\252\222i\020\261\303\2756\205v\235\275k\360#.r\277\177\303\361\200:i\022.\345\336\007\365\025\332p$sN\271L\374\313g\033u\344z\325\266\026jUI\303 5\210\362\316 R-\310U]\330\247Nmf\244\352\353\375\315\213\215J\360\026\027{\027\255\312a\315\373\236_\364\203Y\177\356\277\234\007\2743\254I\001^\314\202p\257\203\225g\010o>\331\321\226\271Y\363\021\253h\n&\033\047\322\267\004^\310t/@\221\377\3429\366y\303\2433\r\270d\341\276s\013\304\034}r\177\305Y\201^\270\313\366\033\311\047\264\204\221&)\362x\206\334\010!\263(\352\220\273]:\302/\234\370\0078v\265\341\323\216\366\326\336\250]\255m4\216m^\335|\2605\271\225\333\376\335\271\r\"\222\276\313\n\360A\177\324k\031y\342\212\016&\3210OK\032i2 \315\373\245\014O\373\036dyAK\032\227Wd\342M,\353\253w\377s,\373\2421\351e\331G\220`\270\376r\343\275\315\341\255\377\333\312lm8\0230\206\301\264\250/\347\301\353\225\235\307Z\365)\217\303\310\233\245hj\224\302\203 \222\273H\311@\223\244\313,\265\255\261\020\260\243\366\342y\366ec\315\313\263\200\313R`,\203\271R\337\313\203\267\313:O\364\\)oM\222w\265\005\336`F\314\"YU.6I\004#\333\002\232+]f\251-\214\305\016\3375,\377\310""\366c\333?\264\371H\302\275\273:W\213V\332\363!5\r\315\230.\303\310\360\316\277\353\370Ol7v\377C\233\215\273Y*\222\310\277\233\245\242\330e\374\047\266\027{\377\241\315\305\335\314Uh\001\260\233\271\212\330U|\361|\373\326\277\271\035p\275\022\014l0\201\352\253Q\3055|\201\267g\313\243\2454\211\312\205\200\324\245\312\375Y\222\325h= \317\252\320\336\342\375\016\337\345M\207{\250a\017z\367\311\255e\365P\003\014X \255\222\316\324\371\375\311\256\332\360\375\337\274\276\007\245H\006/\276N\251\253\327\241vI\247\355<\371cWU\305\376/\344\336\203\206}m\373\270\332H\322zd\332Xv\376\370sW\275\367\376o\317\236|\3766w\333\366\373\352\366l\255$\"\335\007,\352}\333\315\207\273iz\017\312\346n\274\272t\332\231\326\233\355\\\267\020\336]S\274\377\353\002{\237\177U\340\344\366\262\322\364kMG\320j!\322\276\373\202q\377\227\355\r<\377J\300\314\366\023\245\323\323z\205 \201|\244}\367U\331~\311R\353+\317Er\376\005\326\2323\241M%\364\022>H\352\275\336\276\373\332\347@\204=o\341\307\351\202\241g\037t\265\356\326\226\201}\337\331\202\307\352\315\245 r\273-P\005\371\253\177\363\250\205\267\264\354U\337\314w\212\016v\305\246\247\000\255:\364\277\327\032\370\327\026`\327)\245\311\2452\007lBl\3529\334}\325\236\363|\317\273\310\271w\373;u\335\270\336e\364\352Kw\273\r\337\225-\345u\313\312\020\341\323C]\177\333-O\205\361{\251\203\324\276\341\355\237\225m\201\336E\010\032i\344Z\214\010\227+\3755\317\375\270\337W\321\016\345\312\013\026o\265`\307\217\307q\2778\311$\216\315\005\032]x6\315\241z\335g/hB%\035R\340u\243R\375&\227\370\264t \035R\240\321\005-U\311\246\216\016+\272\007\006\260q\205\306\320\0313\027\230\321aE\367\022o\374\334\034\324x\202\316\223\320\010\036\026\036\351\034Cg\254s\034\235\361\316\230\270o\341\351w\225\047\265o\353\231\377)\013\262\360\316\3617\361\331\013\277\363%\332~\271\316W\325\001?\360\013\250Y\373\301\267\325\014:\337T\047\331\007\020\207\031)\0031|2\357\3525\350W\275\233_l\265\375O\3337\221Sy\t\333\211\016\224\021\261\361\242ITX\007\326+\341J\322\304\254W\006+\363""\325^\035x\010\315\256\014\315i@\005\235\327\317*\023\256O\032m\r\225;Y\021\341\213sP\344\030Z\262\355\034\177\257\372E\355x=\014\275\244\r\326\347\307_W\306u\3750 \2348Y\031\255\206wN^\254_G\303\270g\047\316\327_\252\2575\332\\r]tW\235s\203[\275\177\377\337\177^FS\277\256\343\316\361\367\341\303\343\247*S\325K\2655@\005X\377\252.\326\246\240i\2364\327\004\234x\247\372V\365!\232\313@o\355\356\251\275\244z\204\214\336\200\345\3329e\246w\374\204\346\014\022>\216Fqh\3737\354\234\006\261\025\3061\023\213$\274Y9\00321v\224.5\306\250\361RURW\255\2636\251\215\240\240r\224\r\326\211\267\201_hVx\034\307keZU}P\233|\006\010; \321\255ZFQu\342Te\006\276\370\3150@\337v`x0Z\275\t\245<\246\255\007\217=\275Vy\3339\215\372[e\235\370*\264\022\347]\024\2040\370\214hZ\204\306q\354\215J\257\212\306F\244\354\036wNt\357\234\354\001*\3574B\2150vO\303\353O\303N\030o\r\333\351\352\255}\240\212\334\365\001\240\350\372\250vQ\207\336\255^\004Z\037\241\367\303j\001x\272\324\310\354t\275_\275^\373\3029\377\035\314\377w\324r\006\276p>\002)\2661\272\031Ff}\n\003\004\202\276\302\312\337<\277\325\267}MI\t\267\234[\260.\306\235\013~\251\216\274kFN\257\264Q\021x\253-\331\023E:\220=_U>\207\021\3618L;N\3177\233}[\337mo830\372@~\270_\262\323u\266\366K\343+\030\231Tw\271_}\033\346k\345Q\266\201\217\240\323^\301\253%\200)\027.\036\204\035\365\327\033kh\342\047\031q\026\333\013\201\302\215\031\020\227\026\266G\234\004\014\214\372\262lW\322\220{^$p\004>\332`\257\300\365\224\372\213\306\255\315eT\021\302\352\022\260+\303\220\256\036X\362\235\326\026\251GQj\347\274\252bo\261?\251M*\020\264\317\306dc\t\204\254\007\333iE\230~`\320\225O\344\306\0255\204\300\233\177\355d\357)\366\265Fn\363\tj\370`)\013\330q?\037K\362n\375+\335s\216\246\330_C\273\356\365\026\373\034\332T\002\010zi#\323x\004\242\331\377m/(\302\2402\270\301\211\\NR\303\047\005\267\224q\354m\263\236b\177\331\330\330:\216\n:\350V\200\0357\347\221\366\013\365\031\314\374\250\212\375\rL.\003\336b\237\207q\025A\327\240\320k\233]\260\240\177k\373\201\"L?""\016\344^\242%\227\2534\351\007^\262\353\356\350z\213\375\325\346\313[\357\243~\r\206-\300\216[\3558U|\207/\241n\266\035U\261\277\325\343F\257\323\213\017\236~\205,\260~dA_]w\375/\221\212\315\323 \326~\342L\244\025\225\372:xW\360\221r!\351\375\344\206\243\344\001\r}\244\234\2471\2176\034\355Qe\017\233\276\336|g\353\342vN\215\270@\000\356\261\357t\235\251\215\2034\250\332\255\237M\033\325\343\265A\020qs\215\047[W\266f\266[\300.\331JZ\303\"\251\032\265\227a\036\272\374\255h&8!N\356{.tm\263\344\266\027\231\210\004^\002j\257U\374\027\314|\316\371\357a\035\235\361\226\373B]\217\217j\244\334\374\n\226I#J\325\001\224Au\300\"\3045\240\225\333Vd\350\021x\235\244\275[\317S\356o7\277\336\032s&\200\247\260\332\000\364\270\337\277\323\365I\255\000s\256\242\355H\013\216\014nU\271i8\345\325\320$\250J\263Xy\245\nY\340\221\325\242\274\227\214n\274\243\223\357\244\245\2477q\351\251\315)t\246\214\226\236.@.\241S2\317\214\374\216\316\357\241\047\241\303/\213\314l\375\033\264\257\301\255%\047\24658z/y\235\252M\235\007>\304\300\3653\276V\274\337\261\213\317\342\262\361\312\013\317\244\t.M\337T1\256\205d\213\2072\340\t\2142h,v\230\021\355e%\270\337Q\362\372Wj\010\353\226\315\326\302\3676\336)\345\223\330\032.ly\272\336\376\266\227\203,\t\344\213k\362:\033j\0274\277\321\360L\373\214\264f#\001\213\014\254\354\323\237\255\226\227\266\321\352\245_\212H=\265W\225\021""\017pq\246\266\257\001\354\366\026D\235\253\375\251\232O\006\047\323\274\025\014v\037\264\200\215\372\036\235\207\316C\275\036\247\026FS\232\237t&\365\263\263$\014\3236\004\235\235\244\315*zE\365\227\320\241\205-\265\243\357\214BM\027P\013k\232\026Mi4\361\333Kb\367;/\344""\235|\331)CUhc\036y3/mlR\343$\331\224\354Nh;\216\336\350\n<\363YD\247\030\372\tOy\376\324\031E\047\3329\201\316Dg\032\235t\347\014:3\235\267:[7\211h9\344\352\027\254\367\263Id\037\303\300\036\345\220\207\377\304$rP9d\272~C\265\342/nl\367\266di\371\241\177\035p\260\245\245<\265\360\357YZ~\371U\020\237\204\3506\2556z\217\346\210\243\177\035@\3736\324Si\237\224V\0054\305\004\276\024\047/\331\222\206\037\362\"<{\251[\313\026\007_\340\223\033-\346fk\364\350\264\013H\035\225\366\233ih\247\335\236\300\273\370\345\335[4\007\321\"K\336\221g\357zkY\3237D\207\021I\320\246\021\223lm\"\350DB#\241\326i|\215\254\362u\302I\350\303\363\255et\014\217\313\334\332\355\254\314\3211\235\304\024y\002\224\266:\344\2232\364\2144Y6\321\005\2154M\321\"\207t!?\243\363sh\036\235\371\320o\350\374f\304\224\225\026\257|.\340\270\257\337\016\245\333amE5?\256\333\222\305\376\017\333\037:\3230J\252\273:w\251\274#\323\001\310m*9vQm\2214\351\236mR=\205\024X)tR\246\266\356\241s\317TZ\036\235|\350!:\017C\177\241\363W(\202BE\244\363::\327;G;[g\214\272{Mb\3031\002\270\273\327\331j\001\342\303\255?\235)\030TA\000(\356t\375\327\371\357\345F\0336\301f\376#\225\047H\273#u\016$5\346\321\311\233\345\002\355\007\222\360H\375\220\216M\222\004A\025L\223\023\235\313&Ab\035\235us.\373\017t\376\010Q\005\323NZ\n\235T\347mtnw\376\214\316\317\235w;[+y\234\203\206\223\300^\241\037\000\326W\361\341=\363j8\223o@\305P\224\374\361\247]\033\2000\353P\333\322\3772\235?m\316\005^\341\"\215N\367>&\223hB\007\232G\321\031\205\241\271\225\333\002/5\036o\341T\370cZ\211\006GR\003\2551\377\333\3030J\353\266\300s\265\264\233E\033\244\264\215%\037\277\242\036Hu@\342!M\2101tbf\210\245\2168\035j\245\322\325TEx\220\325\303s\306\304\231\372tc_\202z\233\347\356\264\347\212\346\372)S\335\rd\267\245n@\332>\032\307\345\373\200t\320\211\3465R\235\310\323:\356\203\335J\367\047_\355!y\220&;\352\006\264\232\242\n\211\207Zw\2325]\277\3268\005}i\355(+aH\337V%*a\240\241\245AUA[\247\361\241.\275&\000\361I?\324\245\337\n\321\362\217|lJ^bG\035A>lF\223\017\031\014\220:\203\204\014\232\212\344\203\226\256\316U\251\t\345E\336{<\317\037\006\221\026\2266\272\017@\031\364\r\025\027\235\213a(_\367\366?]\013\221\255\311-\3575\202\2377\264\3720\214\255d\353+\034P\365\033""\254 \301\352\047\254\334\253\362\345e \201/\326\222\366[>\373E\035\201\252\200\264\013\264b%qO\316\007\2640\"\021\201:\302 2}\320t\004\252\002\032\231\246|51\264\365\365\366\2303\243U\344\372\030\355\312NW\277\323\037\301;G\2673\377pM\214lepj\0205q\265\241\367\335\006\241\036\006\266FqOP?\362\n%\320\217b\211gKIc \037v\222\327\330\221*W>&&\237\014\247\035L9I\313\027%\245\244&\227\251\201W\347\244}\2651\274\025\305\247\013\264\242\026\312\002#l~\247\3533\347\263\353x\253\200\262\213\373G\253\343\372\326\332\266w\216\370\242\241\347\0105tA\243\201\351M\277\"\013E\300\267\266\234uq\"E\236\023\016|w\227f\t\371F\231\274U\220f\t2\332!ai\017\3635\251\336\3668_G`\302[V\022*\254\373\240,\260\354.\354t]v.G\267O;\223\tu\t\313\036\352\343Y\327\361\2477*+\265k\270}\206\367\332\237\304c\310\010\313U\327j\241\232b\343\253O\343\325\257k#u\245\022{\3259\376a\365\236z\257\003\322\305\253\003\210\204\356\341?\366\364\252z\000\340!^\216\257\256\263\007\007\037\334\3015\312\253oT\376[;V\037\300\230\017\253\277\327{\321\363\036^\\\257\022}T\353\325\211NW\377[o\253\237\254\343\212\365\325\356Jg%]\035\250Fj\247j\363\365^\370\372\304\333\316\333\270\3609\331\270\265\231\3319\361A5U\353\256\365\356\234x\263r\265\262\346\234>_\357\200D\047OW\333\234w.8\027t\2538q\252\3623\244\352\207\206\005y\236\252d\234\267\317\327C\365p\363\034P\332\033\006\221\250\233\345p\252r\247\326V\373\020/\373\047$\347j\345\372\200\246Z\205\373\352\357\341-\373\047\002Q\0164\272\033g\220\353;\047>\254\316\327zk\003\210r\252\332\213\357h\324\177\334<\243nB\245{\376\241u\273\271\364!3\350\032\376g\007\274\372l\277\327\236\351\347I\304\2750$<\311w\340i\366\276\333\332\213\316\236\035\364N\216\375\336\307\241\337\355\022\267r\220\230N\275\237\364\266\356mC-\275y\343\331AO\377\357\367\264\277~\007L_\206 _\227\r\024\302f[{\203\374\263\203^\037\277\337\313\343\365\253bz\227T>\010+\237c\262\257\031\265\362\306\370g\007\275\306l\337\2272\352\347\274\265\375\275\224\251\003%\271Lk\257`|v\320\313b\344}\025\373\274\036F\277""\307-.b\242e\\\240\274$\037\302\334\343\205\000\207\276\360\005\257\246xv\320k\260\271U\021\337\222\332\323\205\330\372\031im\t\047\305I\371\3306\255\257\350\236\023\222#\003/\001\210w\264\342\242l\303\240\225\315\357\266\212J29(\207~\364_\023\376\334k\247\364C\321Z\013#\245:\371\322\275k\246\336\342\013\246\236\035\364z\354}_\013\216\317;\233kJi\242\246\241]\276\027\341\036zk\361]\340\007+i\330\177\001\372gu=\225)\373\231\315G\370\304|ZI\355@\026p\037\312\211/2\2337?i\262\246\341=\260\251/\372\212\372#\314\217\307\235\224\236\256\001\247\336\261\374\324\371\364{hCju}TE\025\213\223\003\225t\267N}\224%=\360\365\t-\274a\202X Oq\356AM\021n\371\325\022\317Z\273\343\363\302\354\372I\213 m\320\311\252\224F\177\332\345&\003hW\307\331r\203\376g\255\335\271~q\266\001\255;\237wh3\200g\255\265W|\261&\240\255;\310\177x\333\317gG\261}\264\357e\367\201,\376h\n\010\274\237\215\364\346\304T\322\017\222\266\226\324\204\362\032R\272\334\2116\361h\047\367IK\017G\321^\321\263\243\331\260\333\357\332\370@\307Hh\272\245\006L\274\246\255\n\232yH\371G{v\356]xj\353\216\316J\221Jv\217wQ\036\346\210\311.,\367p\372\037\032-v\333\217\223\367\243\310;\343\251E\323N\020MY\264!\344\356F\264t\264xeS\316\376\255S`\353\321\202\2371\341~n\322#\317\2368\246\2324t@-\210\351\003\362RP\225R\004\r\324\362b_i\246K[\0064P\323\002\\\236-\271\333qD\r\357@\022h\360\240\271\207y*\360\215\220}\333\301\026\321)\032sX\327\360\250uB*\333\0379\022\226+m\230X\r>\367\374R\363\341s7\241u\267\013\333\245a\t\311\3774I\221\350E\246\342\3628\031m\346\322\266\325_-<\337t\324l?\310\264\025p\331\t\265\363\335\316\216\355v\177\267\264\315\247\253O\210\3414\211\2215\tm\020\322M~$\034\320i\276\237B-\234\331\216\232\361?\370\236>\334]\243\251\307\227&\226\365\273-.v{\214\213""\366\311\335\273f\324(K\014\247\023\022d\276C\262Y\240\271}8\324\272\007\004\217\236\361Jk\372\357\262\233\242E\262<\223\"O\236\221\270@-\235\014\274\007\217\306`\352\210\030\377\223\317`mw\035\256\326G\303\025\345\324aKy\2572\211\306\324\326\3114g8\324:\215\356\321s^\275\314&8\177\271\2565 \352\221\327\255.|\255I\037\331\003\342\335\233\261\2368O\264\016Nn\331\006n\300\357\341\241*\332\344\223\307\034\211\345\244I\"q\206\244Hi\233FV8\021\037\347\177\332z\031\217\034\352\3057\020\217\326\003;]\027\234\013?B\223R\246G\377\034\347\207\266\006\376u\206\231\273\035\227\222\317^=\357\270TK,2\217\210\363\303>\223\330\347\274\254\252\305\032\335\340I\214\227\333\331\201\246\n{x\236\202VOr\331$\255cI\254\241\307\206\244\331\031\331(_\017\265\356\315\326\243\347\276zA\343_h\nK\312UWc\2554\"$\333\220\302\217d\033j\364d\253?z46\260\317\216\314\000\366_k\376\272\333\031\025Z\306\356\361\214Jk\354^\237\035\231\321\353\277\326\344\2254\t\322\020Y\336M\037xt\363\306\321\331\272\036I\035\214\372\314\216\237\363\2624\312\267\346\322\347\326=\026v\310\333\236\237\265\340\216\327\326\334\360\372\317\277\237FW\273\376\335\365\237\227\273\351\340\201s\354\203\352tM\331\336\277R\355\255~Q{\035\315\364\337\254|Q}\025\372\331\3003\362N\325{\305w\307\237\216\341\221\201c\215k\233xT\241\362~u\262z\277\336\355|\212\nzm\177_\371\2636\211o\202\355t\275\352\274\372aU\346K\204\341\301\211Sx\346\341\365\247k\225W\253)\247\367Km0\254l\366Yz<\031\200\207\010\336\253\207Q\033t\354\351\265\312\233\000?~""\262\022\251\276W\013\327\356\350\212\365~\366V%\203\0075\256W\0060\2132\2600[\035\3309q\272\372\177\325LuM\235}p\336\376\014ZG\047\314<\047\337Q\250R\365\356\372\205FZ\251\334O~T\353\335\351>UIV;\253\223\3464\304\231Z\3069\367\365\346[JEI\047\021~\200\217\3165\336B\342\237\001u\220\335;x\206\003\362t\336\376t\350\351\037\325(\264\243,\036\1779Y\031vN\367\253.\353V\374m\325\265\001\361\203J\332y\357J\343c\250\271kx\372\244\0178~\036\202\223;\335oW\0368\037|\331(m~\262\365\177 z\237\270\010\234\233i$\261\252\336t\336\374\2706\200[\301\357W\303UsX\344\357\327l\007\001\366\254cK;\341\234\350\321]*\013E\375\022\332E\023\326Q\227\212\324\201\210wm\227B\202?\250eL\365\177Q\355\300\352\177[\365\2229\240\365L}\241\021~\206\347]\316\327\333\352\247\352+\212=}\3208w\372\006\032\047\241\034\257\376\267\372P1\202\243m\202\255\327\217\351r#\004\031@\177\206q\244\362\240\232\204\032<\005i\337n\264\261\002?\353z\257z\245\3723|u_\277\225\010\374z\277\247\366Z=\333\370v3\213\332\222\217a\034I\326;\353?C\374G\352B\3013\347!8\325P\366\326\330\020\006\220ooW\224\244r\3259\247\264[\3304C\225\341\352+\265\336\332\325\332\032\236!\302!\247\243\362e\265O\361_\035Cz\014\275\013\033\345\311S\317N@?\000~;\275\270\277\364\tt\264\267O\357\234|\327y\027\005w\350\n\003\325\360\316\351\367\253\021u\300\350\344\273\032\3113;\234A\277\272\001\375g\275\026\207\225\325\361s\265\365\3728\014T\212\203\231\300\310w\266z\237\035\307cIW\365h\200\275\351\363\247\231\247\177\002\243:\024\205\330\002zU~\307""\325\221)d9P\361\352\211J[\345\303j\331\371\030\207>\325\237\327`x\231\253\235Tm\023x\336H\341\030\371\206\363\006jX\241\234\310\237\023\330\034\272\253\275\330n\372\020\017\014S\374|\230s\034\332\243>B6V}\271\326\255\217|\205\253w\240F\337Sc\352\323\251J/6^\340\246\047\335.c\361\263.\034\005\007\240\302\257\260\026\376Me\262\222\307\022\002_\261V^\252\224\235\367\256\301\024x\002\272\307Ye\336r\362\264\252\272\037`\220=\211\207\260\316\325\337\007\036\221W\227\n\353\353%\250\3326\323(\177\250\275\2115q\3129u\2666\251\334O\220\371\3202\236\235xK\035\223k\333\371\354Zc\016*\270\177\273}\273w\347\353ov._mD\264\021\037v\304X\245\027[\346q\034O]\356\023svtQ\234\020\214\251l\304\307\263fP_;]oT\316)\006\253\341\377\353\352\215\332\002695 _\250\017\324\2577\006\314\301\264\267\200\350c\270\000\327\363\224\344\355\377\003\006\004\377\235"; - PyObject *data = __Pyx_DecompressString(cstring, 24589, 1); + #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (24600 bytes) */ +static const char cstring[] = "x\332\335}K_[7\363\360\0038\377\322&mC\233\264\351\365\2016iB\223\320\220\246\351\375b\300\004\047`\203m\014I\232R\007\014\270\001\033l\223\2044m\237%K/\275\364\322K/Y\262dy\226,\363\021\372\021\336\031it4s\3161\341b\322\376\3366X\322Hg4\032\335F\243\221\364\312+\335\360_j1W\352\206\177\231\356\225\365\362b!\237\233\355~T\314\254\254d\213\335\231ba-?\327\235\n\217F\007\316C\212\373\245r13[\356\316\345\313\331\342|f6\333\327\035\205PI\341A`~.;\327].t\227r\313+K\271\371\365\356\265R.\277\000Qs\271\207\271\271\265\314\222\306\325=\277\226\237-\347\n\371R\367\375\365\356\225b\001\"1]F!Z\313\347\346s\200\307\315\245{\276P\354.e\313eH\363\331l!_.\026\226\2264\336\225\265r\367\\\246\234\271d\342]\324\n\325J\246\230Y\316\002\032 \036\nR\314\226\213\271\354CLV\314\226\326\226\312%(\200\213\243\033P\227r\245r\251\2730\017\334\370\365\327\271\334l\371\327_!\244p\375\372k~mye\035\000\231b1\263^\352\276\000Ta\262\025@\235)\365\r\001\212a\314\016?)\"\274\260\224)\nx\357\245\356B>\253\260)\034\252`\331\314\354\"\346XX\311\346/u/\346\026\026/u/\025\036]\352\236]*\224\262\212\356\207\205\245\265e`\266\252\252\331L\276\373~\026\313\333\375(W^T\330\312\213\n0\243\0302\243\351\273\320\333\rE_,\314\365uO-\346 \217\007\331u\340\252\212\274P\352\005O\026\252\007!%\315\310R\367\243\305\254\346\333lF3\030\361\032\206b\0331\314\207\257t\315b\002\235i\036JX\302\272\204\206S^\357{\305\266\255\331\245L\251\324\275\220-c>\271r.\263\224{\002\010\220x\340\237l\020\335\210F\225\271\260\202a\240c\035\202\324\300l\341\272\013\367\177\313\316\226U\373\323\355\0072W\324\002u\205GH\332J1\267\234)\256\263\266\006\334V\210LS\241R\007\267\214ot\t.\303\177<\347\317R\341\313\006\343e\267y!\312\313\205\374\022\317\r\277\274\254q\370\353\206\007zY\"\3639D-\224.\334\345\311.\335\353\276\2532Tq3@u\2418\363\340\021\006\356\365jb\207\n\263\320N\362\345\214b%6\256&\037\330F\224\315\353.\010\235\215\352Sa\032v+=_*g\362\320\007\021Y\261\260\000\350\226\001\375\254\252\230\207\271\014\265\200\371\302%\321\016 3o\007""\244\246\221\313\226\372,k/\023\273/C\005\254\025\363\274\003K\016b6\205\265\262\2520\323\310\3248\205\003\227n\347\320|\261\231g\363\2455@j\352Q\265\363\314\322#l4\017\241\351\315\021\302\342Z^\362\367^o\367\307\252\341\227|\325e\232\010P\210\221K\363}D\n\3412\334\212\022\263\366Qq\"OQ\373\273g\352\376w\016\006\242\356\013\331\307+\320\035\240Wu\337\2071\007\207\023\350y\345Bq\375Rw\246\334\275\224\315\224\312\335\266\223\315grK\246\007f\213E\250\332\331\302\\\266\273;\237\315\342\000~!\203_\250\021\031\260\001\35338\310w\30721\250c k\235\006^\200\345\013e\223S\357\271\013s\271\322\312Rf]\265\201^\240\353\334\205\005\230AVz\241\211\237+\235+\365e\346\036\"{\300\007E\231)f\362\013\331\363\210e.\273R\314\316f\220~,\364b\006\021wg\347\347\241L\337t_\270p\256\324{\001\263\205q\0269\332\333\333\373\312\245\356K\335\013\220y\337\347\337t\177\377c\270\033\032D\016\232\000\024\274\037\375\320\366\227\025\222\322r\241P^\204\242\204\207\246\023\006\363\032\326\323\375\245,\373*\207\303\376\243\374\267\340\2411\244DM;\017\335\033>\356\353N\302\210{\036|\347U\247\000\006\365\205!\335\254\356l\021\305\306\013\251\360Lxt4>8\023I$z\0072s\335q5N\251\210\201\360\320L|\340fd0\245b\306\335\301\303D\216\207\023\341\261\336\201\265\245\245\317\006\262\300\370\361L\031\242\363\335\0270\224+-v\177\327}\345Rw,\273\006\263\360R\367\367\030\300\304\030\363C\367\225\336\301L\036\253c9\367\270[O=\212\231zv\032\312\224\026\201\273\243\271|v\250P.\273\3365\344B\344\361\nLKy\034\231\273\307\nj\020\014?\314\0263\013\331\3461\356\000\021\203,\207\225\230\200\305\030\236\214\r\316\304\342\251\231\341\370dl\250\327M\205\214\317t\203\370\220\315,+,\343Q\031\227\367V\312\rl9\036\3547\022\361\311q\206~\004J\357\241KO\347\370\031T\016L\356v\276A\004\321\330\370dJ!\200Z\202P4\025\205\351\347N\244W}V\372\006:\360\332\374|n6\007e\356\036\321\355\232>LN\016\017G\007\243\221Xjf$\232L\305\023\267\341#\254\036`\215\255\374h,\025I\304\302\243X\377\361\004\244PCN\367\010T\002\224L\247HC\226C3#\341\330\320h\304M1""\n\231u\247\326Wd\242Q\310i&u{\334\246\263\255\306\345\037\377@5!U\013\251h<\026\360\325Hai.[\014\370f$>:\024I4\377\302G\033\377L\322h\247E\010\257i\361\355Vfm~\031j9<\227\201\211\375a\326Sm\243\271\373E\234\254\261\342\274\225\006\362\201\2522V]c\221d\270\031\252\261\341(\310\252\336.\376(\2033B9WT\202%H\035\227!\313\356\301\276X\301\363y\367\005\220%\240\305\227\327{c\320\366\221\240\344\332\312J\241X&r\220\224\344\344\370x<\221\212\014\365b|6_X[X4\343 \312\277(\313\271\355\275y\003\242\2110\221\235-`\346@\35670\022\203x\005#\306r\001\346\255\373\246\027\227\001of!\223\313\367\261\014a\326\206\211\031\346\n5\351\227\276\351vg\001H\224\325\343\366\240\222\351\365 \273\224\273\017\271\224\2630s\003e \334f\325\340\236\357\036\217\214_\276\366\3255\232qp\300\202\031g\355\276\022\334\262j6\271\277\226[\002\001\241\273\014\255\000\205\346\371\356\365\302\232\232/\260\270+(\340\261\017`\340\314+\001\025G\320\363jXR\243\344\014|\016\254>\337=\007\3650\253\352\016\276\036\316,\225\262}\3615\220\240\346/\047pR\350\216\000!QXL\003\262\244\207\330T\241\320\275\214bI\363~\230*\346\240u\256\301d\354\375\266\230[\331u\346\245\0047\262\300Bj\236\317\235\255\047\363\017\362P\017z:\022\001\325\264\047c\267b\361\251\230\022M\32280\343\210\010\202W\t\047\273\014\2569\241\266\226r\313\271\262?\026\246g\245\021P""\321SYX\244b\361d\366S9\234(\200eI%s\371\342\357@K\277<\232Y\330\245\004w\245D~/377\003\203G\366~v!7\367\270;\177?\273\224E\036\317jQg\005:\tp\344\034\260\334\035l\027\365T\273R\200\025\r\266q\030`\260-\232\001\037J\240f\232Kj\260\233+d\265\014;[,\224\224\n\244X\230\315\202\357>\312\034\220\014$Zl\354\331<\376.\314j\271W\257\335\261?<*\026\200\370\271\034\320T\302%\013\217_R-Y\257?\346r \313\026\261\310,\001\216\245F\206\236Su\253c\227\327@\024\200\221!\323\255\024\016\224Z)\033\2640\247\326bZ\302KB\047\314\226.)\034\347Jb\315bg\341\345\\\251\244W\266\253kj\002T\332\216\007\331u\324\260,\2404\360PW8\222\212\375\n{\020\344\001\276\336\\I\227}\016\272>Mp\337\330U?\321\006\205\310.\257\224\327\025\275}3\2630u\365-C\207\311\221\226C/7\240&\240\317\303D\312\223\255\301jr\321\227\242\014M\376~\037M\205\310X\rP\037jo\241\010m-;\207*\032\r\320\254!\277b\216\366\227\326\311S^,\352E\215\016\302\372\013\227\233:\362\263\031\243\333\352[y\234#\320lay\271\220g\000\\?\261\240np\n`F\002\306\224\222w\240<\037\036\014\017\016\016\200\330\2274\356LR\241\360\004\373Pz\300e\342\314|ni)<\030O\342\237\2336\336,\235\233\"8~(<\204\377L*\327\347M\026O\016\252\0377\241\365{\223&\340\237\233,\321$\3214\256\274\360\317M9\3354\251M\322$\205\233 8~t4\034\017\307M\242xp\242\3618\3743i\306\233$J\304\3431\365\203\354 \327|#\203\001\037\362\204\301\251\222\321\030\376\231\204\326\353I\227\n\307\360\317\244\263^o\272\004\374sS5\341o\372\306P$\255\177MR\036\360\245\036OD\007#\306\265_\360\240\347\233\245\245A5\374&\365D[\032P\355z\200\267\356\201\346M} \222\n\343\237Ii\275\236t\361q\370gR\271>O\242\302\334\372P\341\267\034\272\2430J\243\233\\\204\261\005=\351lQ\001\007\007\243\360\217\276\267>\211iph\364\352`\">\225t=\346\003O\330\367\331\347\003\243\341\301[\346[\026\262\010\374@?\026X;D\207\"\326\307\276\026\000\377\227\243\321X$\231JDoEd\210a\360\001\375X@&6\004\220\227}/!\376\217Q\366\206\346\235\204t#\3360C\023\000\366\343\232\032\211\246\"IXqF#\211\244\017\300\260\005\301}\350\302\330\022\343""\261\310\320@x\340\2667l\221\005\201\375\270\206\322\341\330`d`4\016\225)\203\014\223\037\352C4\020\031M\341\232\232y-\002\017\304\377q\"\022\276\025\236\n\337\346~\366\271\007\344\373~p4\016upc,\234\230\034\210\337\231\364C,\256\340\010?\3068\0248<\212\254KN\301\360\034\000b8\203c\002\220N\242\232%\234J\205\025\267E\230\243\363\203}\270\206\302\211[P\226\311\241\301x:\222\360\001,\266@\270\037]\374f\224\034l\321\314\3130IH \016\231\272i\312D\370F<6\035\211A4+\271\007\302p\005F4\303(\261\005b\332\r\313\215\3608\216O\370\247F\205\000\220\305\327$\306\2174\021N\303\250\211\243\202\346\274\0040\204Ap\037\272\221\360\330\230j|\332c?\027\341\200\317b7T\037\214\211\000\377\334\003\013@\221\010\217E\255\047\021O&e\210c\363\002\233\240\363~\3224u\364\306\310\024\360\207y\331\247\022\022\360\361\255[\341[\021\353\033\213\017\211\000G\345\2015C\346\373\244i\372\370\030\360u\203Q-\025\031r\233\242\004p4\001p\037\272[\321\301[z,!\337\300m\034B\224\010\340\201X\324\301\021\315p\373\276k\226\036\346\335\241Hb \236J\305\307\244\311\010\356\361\244\242\272%&\375\020\21328\302\217q$\036O\331z\342A\206\313\017\rB\224HQ\347q\375\002\205\000\371\277\037\207\341\020\362H\305\307e\210\341\360\001\375XR\300\305\310\3208\210\230\221D\314\007`\270\202\340\001\350\260\242a\2651\025\035\034\361\20692?\330\207+\025\2765\231\210\272\036\373\265\010\007|\226\234\274\025\0051\210\373""\371\307\022\344\377~$1\231L\351\276\340\372\331\367\036\220\377\373\204\031\021\310\307\276M\354:\002L\306\242\023\223\221\317\023Q-\306\363\240\305\021\000\365#R\" \224\321]\364{ \014]`\204\017\3434\245b\235\323\013\2628\233\304x\220F\242\243\370g>\263^O\272\261a\370gR\271>o\2428\374\233\304?7e|\262YR\233$8E||\034\327\300\3321\211E\310\373A\"\021\031\325\277nr\026\360\246N\302\277\021\374s\023\047G\232%\265I\202SL\216%\047\307\364\257I\312\003\236\324\351(\3743\351\322M\272\020W\177\341\226\371\020\214\264\223\243\251\241\310X\030\377\350#\346\225\337\017E\223\341\001\030)\206\242i\370gRG\203UtC |\216D\225vB\271&\271\014z\276\031\217\017\271:\317\241&\332\317\241iW\001\333D\023\353\0325\016\025\312\221\341(\374\243d\326\047?\200\002\33327+}$\021I\300t\351\342j2N\271}\267I\047\216L\217\303?\223f:x\260\212\254\256e\226\206G\343\361\204\372\2414\334/\323\017C\313\033\266Z\337\341f\n\340\341Dx\020F{rLj\021\362|\220)\232\355F\343\366\315\314\240Q\330\314\214\0270\037\220p1;\373`\246\260b,\326\324V\016\213_\310\226w\211\305\315k\221\215N\246v4gJjsI[\364\261$h\363\264\304\302\270M(p\224\3122\274\226\317\241}\031\203\271\206n\363K\231\005\213{\301cw\027\020!\211A\27051t\301h\217\350\006\226\n\205\007\3673\263\017\\\2006\243\363dM@\211\236\014\356\334pq\315r\336g\257\047b\002KQjR\212\222(\305Hx\304\364\216\221\340n22\026\036q{\320H\223\2764\222\232\031\032\034\207.\024\037b^\363\221\017\022\364\361H8\031\261>\361)\003\370\276\304\310x\302\365\330\357D\330\367Y\022\3045r\354\047\311f2\034\304\245\022\221\030\256G#\334o?\365\202\202\277\037\213\017E\270\337\363=\003y\276\317-,\216\026\036)\03314\212\215\216E\243\256\246#\332D\347\301\315\313\310\272\354Vx,\214\177\224\236y\345\247\267`N5i\202\007\236[C7\341\237I\343\372d\"\344G\030f\327\033\256g&\214kUO\220\276\r\2066\301\250m\337\006#\343\251\000\220\017\2417\246\031\322\344h|<\342\t\372\220qhSD\336o\202R\307F\315\2549\032<}\216\306o\364_Q?&\035\363{\222\346\362\3311\250\316\301!\374\213L\247\310\241\3042$?\305\270\341\3504""9\354\003\033\362\177\300\2225I\243\377w\3235iic\341\304\255Hj8j\\7\275\010z\277I&\243\352\307Mm\375\336\244\351q\374s\023\246\307\233\244\203\362O+\233-\343\272\237\210\240\3573\233\254I\n7A\263x\024\334\310\3213h\256\234]\236\231\261 =m\216\301\212\016\367B\215k\360\312\240\007;0\326\362\264\031;\243 \231A\0171\256I.\203\376o\0241QILt7b\2421\370\247yL\256\373Yl\027\036\303g\341i\375k>\366\326\221\017\022\204B$n\226n293\0245\256\375\202\007\003\277\0313\256\374f\254\33176Yp\212\370\330\230\253\032\034k\242$\034\003Q\037\377L2\353\225\351b\341T\"f\367\351c\315\266\354c\361X$\226\216\306\334\325F\254\311\272#\226\315\024\343\003i\370G\321\326\047\023\306\265\335\314Pn\026M\377\224\355\3448\016\304\261Tt4b}\364\255\017 \221Qt\"\034\273\305\274\362[\006\361|<\252\252\220\034\363\321h\363z\325qc\344\210\017\202k\003\026\235\343\356\ng\274\311Zg<\035\035w\231:\336\204\275\343\3518\374s\0235\303\224\202\177n\242\340\232\237P\332\033\375K\tD@\246N\300\250\353\016S\211&\003V\">\010\377\306\361\317\244\264^\177R\374\353\277r\205\034\373\005\013\371?b\311\232\245\261I\202S$\243\twJH4\231\034\022\351h\302\255\202D\272Y\242\370(\376\271\311\342\301\013+\325\270q\300Nd3\312\034$\031N\300?\230t\365/}$\002\022C\322U7%\233(\236\320d!\032\033\301?\223\322z}Im\222\340\0240k\272u\234lR\333\311\261h\322\025/\223M\004\315\344D\"\205\177&\231\365z\322\245\206\206\"i\375k\322\362\2007u|pD\375\014\353_\367\023\026\010\370\004j\333\270\374\213f\215@E\362\204\301\251&\007\340\237I\346\372\274\211\230:\247\231b\0479\tC\225\222\366\255\317\375\304\003\360|\251\026\310\311\305\314\\\341\021\232\023i\237\2622\322^cgdC,\262Dyh\304\260\222/\254\254\317\314\270\301\271lv\305\003\202\201{\r\326\3453\251\317S\237\023\324\365H\312R\341\030\374\033\301?\2230\334\244]Z\233\262f\326ex\250iP\375h;E\346\235\031\\*\344\263\034\020\207/\275\341p~n\330\340!\360x6\373\200\207\047W\3462e\201H\031!+@\315\260O\013\364\323\002?\307\310\020\372\3611t\002\033C\306pYT>L\026\021\307c\321\304\325\217\305\025wq\305\275\270\342.\2568\303\025\267\270\306\343\372\327b\033\267\350\306}\370\306-\302q\216q\234\241D+T\343R\2132\026\254n&\006`r\342a\226\235\001\233\272\233\320\034L\357\256\264\006\323\331\214F/}\3363A\301PN\251/\316\222\033\030%h\366\245\260\204\373\2428\365\276H^\004q\n)\010&\310\2271\214x\177\204$]\3063\302e\204 [F1\242\365\001\023\356\347D\022\304\022\307\000\202(\202[b\010\300\211 \220\310\334\234\234\362\206%\021.\224\023\"\200\036b\3348N\220\013\224D\271`A\030\236\250\342~u \313\007\220dZ0\247SB=\204\332HN\251\205JR-\334G\253\237\022\037\021\315\362\367e\035\220\253\310\220\316\214\311\220 \300\300\030\t\034$\21101\214\014\003\022\204\030\240 E\035 \023\201\261\370\2207,is\241\234:\001\364\320\347\306q\n]\240\244\321\005\373\251\014\240\302OB\323\374\375\231\007\345,\262e\047\343\374\020A\r\2073\222\274`I\027\217e\304q\260\240\220G02=\047\356\002\201\234Xo\224\2457(F\220\354M`\251\366\306p\302\275q\234vub\211\373\005\245\032\302\010\264\000I\227\2063r4@P\241A\"s~F0\010&\211\0211\234(_\204\2078\021\317\211\024\021\222X\021\305\210\246S\204\"`\216\"\006\002y\031\274Q\266\020A1\242\024\336\004\266\030\336\030^\016o\234\277 \001\344\371\311jJ\216\237\214\240\354y\266\374\004\245\037\302\251\021pK\222\017,\350\022\261\2268\001\346\024\212\010N\2468\233\031\004\023\244\312\030F\254?B\222+\343\031\3012B\220,\243\274DGc\021\031\362\021\2120\017\211\006\344\047\016c\000\047\210\203-M^\250 \213GZ\3128\224\023\307\341\202>y\3369\030*)\365\304qr\003\242<4{Rp\302=Q\222zO$+\202\347|u \220\027\300\033e\351\017\212\021\344{\023X\352\2751\234xo\034\247\235\235\347\366C\004\325\034\316H\366\202%\275<\226\021\313\301\202R\036!\311\324g\306=A\017\201\004\024\3241\230\2274\212\022t\021\314C\024A9E\366\004\272\017 \250b`F\227\007*)c\221\2146\006\025\32418\247O\234j\017\202\t*e\014#\324\037!i\225\361\214\\\031!(\226Q\202hvz>\000$I\346\021\234b/\334C0\217\346\364r\270$\227\3070j\365i}\356\347\364\021\304\022\306\000\202\"\202[R\010\300i \220\310\234N\373{\202\222\004\003\344Tp\230\207\020\023\305i10I\216\201r\212\314\375\001\236\240\240\310\0052\212\004LR\344F1\212\\\230\240\310\205r\212\022L\2562W\024pj\022^9\212C$%\t\257\334d \202\212\204ON\342\267\032\370!\234\032\001\267$\371\300\202.\021k\211\023`N\241\210\340d\312\333\022\002\201\202XO\024\2437 F\222\354I\300\250\366\304\010\302=q\214v\357\255\014\301PN\275/\316\222\037\030%\350\367\245\260\005\360E\361\022\370\"\335\"D\242\243\344X\"1`\2502~F\006\202L\276\350\267\031a\310\305<6\254\177-^\360\033\264\344eX\001b\220\202\327\342\204\200E\031\327\277\223\3440\324q\273\2544~\216\213\232\302\006=\013\262,\010j\262\241\240\315\212\0006;\274\033\303\365\260\314T\320\315\313\r\361\254\024\320\315I\205XF*l\363I\352\337\021rXNI;\027\032?\317%i\347<\364\263\034\222#\034?\307\310\020\372\3611t\002\233E\246\216y\270\036\213X\007\rn\033b\3505\320\344\240C6\023\035v\363IG\365\257\315!m\247\337\264o\342M\333)7\315\047\333\264\235f\361&\020r\\\244*@X]\277E\253@\204W\371]\304*\344b\216\246\365\257\305\033u\r\202\215\227a\215\272\246\300\350\2658\243\326\010\330\334,\302\274\026\271\001\230\034x\230ec\300&/\023\266\031\032\210\233\253\262\211\037b6\361C\326&~\310g\023?dm\342\207\270M\374\020\263\211W\247\024\330Q\002{\222\300w\220\300\236#\340""\307\010\330)\202\310pT\377\272\330\320O\350\214\327\342C\010!D\257\213\021\003.J\325&x\223`-\302\337 X{\020\315\201\267\006%\031D\224(\031aBd\304\212\217\021\237\340\030\261\"c\204\013\213\021&&2\371\302\212\024>)\302\n\016\\V`\342Adz\\\377Zl\323\256Hi\274\014\337\264+@\242\327b\234\266\342\242\272\312\305\270.Z\035\"\3046`Qk\030!\327\001\027\275\016\272\031\350\303\024\303\374 \3050;D1\354?@1\314\016O\014\213\203\023\303\374\320\004]\027c}\026?\205M\026,\310r!\250\311\210\2026/\002\270\331\341\243M\303\243a\\\022\253;ZRxo\275z\334\212\003\206\213YL}#[F\220~\322\310\206\243\371\371\202\016\251\267\224\334\367D,|\224.b\321\241\370J\323\204\372M\022_\004>\010%(\263\020\"m$\254~\\n\215\270\235f\304\333gF\334.3\302z\314\210\3550#\252\017\216\260>8b\373\340\210\257\017\216\330>8\302\373\340\010\353\203\354\326\025\031\262Y0\230\311\312\003bY\262\030\2235\003Y\022\030P\222\202\267\270\210\200\207\020\005\022t\270\020/\031*BP\241 \036\"\024\214\321\240o\204\341~N\001A,\001\014 \362\047\270\315\236\000+\221\250\265\017\211r\313\220(\263\t\321\357\275\231\241\315\276\365\004\001\274i\207\0347?\025\240\014]\277\315Q\201(K\345w\363T!\223\351\255A\365c\261\2723\302-\357|p\313\235\rn\261\271\340\226\235\tn\r\335\324\277\026\033\370\r:\3622|\0001\010\301k1B\300\240t\257\300\341~}\301\217\037\342f\353\205\023\tA`K\2167\226H\363\202]2\275\021>\222\003\310q/\022\n\206\356\366\205\277\0202*\250 6\205\25706*\240@6\322_(\037\031\3152\367e\251.>\362C\002\n\255\341\276\234,8(?\035\033\234kP!u\204\277\200\001I\335D1\365c)v\027\020\243\336\245\303\250\273h\030e\313\205Q\273PPw1\031\327bT!\203\324\r0\274\nfP\253\200\305\256\202&\0035b\340\005K\344D\246S\326\347fh\302\224%\017\332L\r\224\2625A7c\003\260Y\253\333\237\254Od\207a\226\235""\t\312\354\020\312\262\303\240\310\016\001<;\221\003G\037\200\233#\226X\031Jb\037\033p\307\330\200;\346\037p\307\330\200;&\006\3341>\340\232\253\251\230\227\345@\0007\027\026\3469\021\330\315\215\302,G\202\330\\\223\311\250qY~\030r33\001\236\023\302\334l0\300\362\300\240\315 =N\016C\237\036\267\330\323\343>\344\351q\213;=\316Q\247\307\031f\335\220\364\005M\314\313\362!\200\233\027\013\363\374\010\354\346Ia\226/AX\336<\027\226\201\0377C+02d\014\227E\345\303d\021q<\026\r\335\330\305\274\026\257\001\030\354<\314\3620`\223\223\t\333\374\014\304\315U\267X\336XY;\3657Q\326:E\303\344m\222n\010c^\213\334\000L\016<\314\2621`\223\227\t\333\014\r\204\347j\330\027\365\262/\352a_4\230}Q\017\373\242>\366E\275\354S\347\377\315Ee\314\313\362\216\311F\314\303<\357\230l\304&\314\362\216y\032\261\272\261\314\3650\n\374=\211\301,\035\315\372\023\213\261\324\004\364*\006\2244y\362\225Y\006\346&3\362\346\301\321\253\253\271\230\227\347\245\00167\033\026\371i\260\315Q\207y\236\032\342\311u\214y\275\271\216yr\035\013\316u\314\223\353\230/\3271\236+\317\205e\340\307\315\320\n\214\026\2312\207\034c&\220c\326\354q\314g\3528f\315\033\307\270I\343\0303c\304{\345\310\261H1`\260\032?C\213 \203\027\375\0261\206\014\346\230\276\242\"\306\357\250\210\261K*b\376[*b\354\232\212\230\270\247\"\306/\252\210)\335y\214\351\316cVw\036\363\351\316cVw\036\343\272\363\030\323\235\307\007\322\372\327E\211~Bi\274\026%B\010%z]\224\030pQ\352\347\177\315\212\321\336\177\047\002n~\014D\331z 6w\026AD0\210K\013\203\031\222\330=z2\344\245B\301$\031.\310G\207\212\221\204(\220\227\022\005tI\0315C\200\271\247\317%aT\014\000<\310\262\036\025\335\337\004m\226\243\262\363\323\335~\326\347\311nLf7\026\230\335\230\314n\314\233\235\355U\343j\237a\234\3553\214\333}\206q\337>\303\270\335g\030\347\373\014\343l\237a\\5\372q\326\350\307m\243\037\3675\372q\333\350\307y\243\037g\215~<\035\327\277\014\245\2452\355\2432m\251Ls*\323\234\312\224\376e(S\026e\312\2072eQ\2468J;\216(\345\255~9\336hk\031\210\324\265\372\342C\327\343\346NA\"""\200\205,\r\004$2(\344RBaCLB-<\022LXLXi1\341\023\027\023V^Lp\2011\301$\306D|P\377\216\223cQc\300\3406~\206\034A\006;\372-z\0141\374\tr\372\257\\\261>\236\215\n\333\234\334\240\310LAm~*\310\263T\000\236\253\310\201\243\017\300\315\021K\254\034%\307\310\020\372\3611t\002\233E\246\026\\\t\266\334J\330\305V\302\267\324J\330\205V\202/\263\022l\221\225P=4\301zh\302\366\320\204\257\207&l\017M\360\036\232Hs\224\361Qr\030\322\370\250\305\032\037\365\241\215\217Z\274\361Q\2168n7j\022Y\2743<\253\037\231\240G\311\315S\253\370V\252\262C\322\367Y\272\036\227\004\n\022\021,d\311 \021B!\227\024\n\033b\222\314\320)i-\234\222>\323\246\244\265iJrc\246$\263b\322\227y\341\335\231\344X\324\0300\270\215\237!G\220\301\216~\213\036C\014?\307\310\020\372\3611t\002\233E\246\306\223$\033O\222vW?nQ\301KE$\237-\032\000\250H\340s\213\002~S\004}g\241\276\363U9\026k\330\016\240\256\237a\016\333\001T\371-\3660\033@\371e\210\354.D\377U\210\354&Dq\021\"\277\0071\245\r\\R\334\302%\305L\\R~\033\227\0243rI\t+\227\0247s\301\365\312\215\210\353\261\330u\320\340\267!\226\203\006\232\317\213\203\034\036\364\342 \213\017xq\220\3056{`\220%Q\017\014z\303\320O3\014\206\337x\202\370\354\2406\370R\345IR\2014\210\030\217\357K&g\350Q\316\344\314x86\024\2060\014&\303\211\360X\304\000(\335x|4\234\020\321\032@\3213\343\353\217\341\017\337\322\231\211e\037\227\023\331\371\231\031\262\247ME\343\261\231\030|\003\311ff\324c\216\340\344\363\2052\2147\350\237%\230\344r\023\346\316\314.eJ%\373\022\225y,\202\277\022\001~$\004\335\302,:\210\024]\254\017\365\330ap\325p\254\372]\253]*\211\352ff9\223\313c\302\345l9\243i\303@anmI\025n\271X\230\311\346\313\352\303\031\252,t\263\217""\320Y)fW2E\005Y\001\016>T\013$\014\341\223\234&\255y\353\302\274/93\203\317$\232X\365\304\344\314\0144\211\207\331bIq\016B\320\004\320u\337\233T\345\235\323z\262\222j\356\300\232\322L\256\004\354+\026\326`\251\227\235\301\347!\327V\020\223f}imv6\013\345\001\200b\340\032,\340frs\336\260\047A\021x\010\024#p\301\332C\263\2402S\246\260\265[&\200\337\020\232\"\002\215\244M\234\337J\232b\240tl\341j\200k\264\022\235YQKQ\004\347\\\203H\014\025\265v\021Z$.\205\r\337\220\355jM\214I\260\n(\332\007\366\346Y\n\316\263D\353_\340\367R\241\224\315\314,\346\026\0263P\r\217238*e(m\t\t\312,\351\337+\332\351\207\352.,\255-g3PGK\331b\006\373\014\367c\201@\032X\360\302J\370\352\n\007z\023-g\036\007\200|\237i\300\n\2209\227).\340\253\237\372\211\317Li6\227\313\224\312\353+\331Li=?\233+\364\271-\254\224)\027u\2212\017\027\264\347\376\375\354Bn\356\361\375\\\371\376:4\332\253\320\2325WK\345\334\354\203\331%l\227\320\277\312\305\314l\026-\346gQ\302Q\354\232-,-e\325PQ\232EN\344\241\047`\002\345/\341@07\227\305\306ojO\365q\323\005\346\262\245\331bn\005?\237\313\225V\2262\353\252Ca\247\200?\340k\276\254\212\231]^)\257C\031\201F\370-=\312\225\027\263y\210\006&\000\246Yh%\363P\3309\030\005\260\304\332\257K\206\376\007\314\277\224[\316\225\321c\223Rd\256\350zalR\343\223\036\244\250C\342`\246\372\027rYy\360UW\345A\376(O\341\376oY\235\312>&\353\206\260d&P\362\276,\353yPV\276#\273\200\375S\375\224\026U\265,f\227V\260\231.\3527;\227\262\371E\265\217\225\313!\213r\313+\320*f\262\305b\241\010\215-?\227}\214\244\362\354lV,\323f\203lN\253\225`\224R\365\200cs\351Av\035\376\225\0364i\213W\325\264\\RK\245\322\272\026a\312\320~\357\367\241\004\003ny\021\242\346\260,\271\345l\262\014\355\004=\372{\353\353\267\336\253\326\373y\2710\243F=$\021\377\214H\271\246t\021\372WMv\252A*Z5\301$\352>\324S\260\226\204`B\310\343\037\212bPl\235\305\377\332vB/\375omcpcu\247\363d\345Xeb\347\304\253;\047\337r\336\272X\357\257\207wNt\327\216\327\373w:_\207\370\320q\347\370\373\325puB\177\264^\351\250P\314\313oT>\206/;\337\252d\376\177\365?S\200\320\t\347\304\307\265\257\353\203\365\307\r`\310+\033\3476V+m;\235oW\236\324\272\376\327\366,\364\272\363\372\307\265~`\325F?\006\337\250\\\252\302W\247+\023\225BmBC\372jm\n\342\274u\276\266\252@\316\033\237\3242\265U\202^\256O\020\024\342\353\2576\356n\035\337\356\247\270\276z\206\342\2566z""\032\006\372\365&\346\375\361\331\277?\371\317\261\023\033\337V2\025\300\365\352F\252\362Ve\265\332\206\336{\325\236\352W\265o\352\251F\027\006\047+\347\253oT\277\254}T\013\357\204^\337xT\311V\177\254\177\004\325\035z\315y\355\277\325\325Zg\035>\353\202\357\213\325S\325\333\265\007\215S\215\364f\377ft\353\236\223H:\311\031g\346W\347\327\202Sx\362\367\177\376\363{\333@;8\003\355#\350\214\264G\321\211\266\337l\327\345\316UW\r;>\376v\263\377\357\013\207\243ql\263kOT\336u\356\376\354\374\274\350,\346\234\334c h\275m\010\351\032j\277\205\316\255\366\tt&\332\023\350$\332\223\377,\261@\351=\347\036P\372\233\363\333:\020\364\244-\202tE\332G\321\031\265T\202\223lO\371\211={\356\020u\357\274w\261~\265>\341\245\364\355j{\365l5W\373\275q\2661\277\031\336\274\275\265\354$SN\nj>\343dV\234\225\337\201\232\247m\203H\324\240\255upn\002\2235\211\277a[\047\022\277\333\014\037\202\237\232\310{\233={\"\363`\265\377OQ{\337\271?\353\314Bw\002\246\376\005\024\375d\310$\372\246\321\231n\277\215\316\355\366;A\324:\337A\315L\376\375\351\241)\276\274\265\272\047\232\241\025\350\366\372\320y\370\010\350z\334v\003\311\273ah&bg\320\231i\377\025\235_\3333\001\244\177\2779qhF\377\262\331\377|\242\363N\n\270<\347\314\001\227W\201\234b[\030\251\n\233NF\275\313\34528w\332\357\372)>\367\311\241\372\332\245\372@=\343\245\366\014$\273V]\257\037o\\k<\334\234\330\314m\375\001\325\351LBG\203\306\261\352\254>\005j\3760\215\330\355d\252\221\214\022\211\017j].\211\337;\337\303\327\351\277\257\036\222\320\345\315\357\267\333$\261\247\234S\347j\023\265E,\004\314C0\333\325Fp\346hR\010=T@\t\376p\376\370\023\350\375\253-\206d\307\014\237\251e\314\2433\337\276\200\316B{\021\235b\373\037\350\374\321~\263\003\213\3331\216\316x\307\004:\023\035?\243\363s\307\002:\013\035Et\212\035\217\321y\334\261\216\316z\307\223\016\301\230o\234\323\347\324\034|\356\207\315\314\337\227\016\311\231%o\337~^\205>5\323\346\222\263\264\354,\353\n\245)3\216N\274}\022\235\311\3664:i\350,\340d\332\227\320Yj/\241Sj_Gg\275\375\t:O\332\177\227U""\377M\005\213\367\311\371C\265\317\313\365D\3357\004\274S\375\250:T{\271\376^ch\363\37763\233\353\333\257B\363r\322z\344*:\305?\200\236?\315\254\3456L\325\257\306\210\310\245Z\217i\237\237\374\340\374\000_O\341x\365\332\306\335j[U\221\223\256\\\257vU{8\241i\024r\016<^}b\211\005J\0378\017\200\367\217\235\307z\212\245\031+\205N\n::8w\r\323\357\243s\277}\326\337\373\317_8\024w\373\352\367\033\276\306\362n\365j5U{\247~\261\221\332|ksu\353\345\355\017\2009\316\224\036\256JNIw\234a$j\330\262\025\234\261\366\030\221\270l\245NM\342\201\371\372\234\001\352\372\201Id\003\024\220\370\351\341\271\370\252\363\352\207\325L\3651\212\316\334\277g\216\006\266\327)t\246L\023XDg\261=\217N\276\275\200N\241}E2\375\353J\030\313\364\343\346\352\241f2,\325\253\233\023{j\035\2778\277\300h\242[\264\226\303h\372\245\321\225Z\265;\242\370\033\311\217\316\217\320\005a$\312\377}\355\320D\337\331z\342L$vBo;o_\250\267\325\317`\3723\316\231\336zW\375B\243G\302\233\224\010FF\220&\240j\312@\362\232\231\233iiA\362\332\317\350\374l\206D\232%hd\374\023\235?\333\2438\366G;\356\240s\247\343Wt~\355\310\240\223\351XBg\251\343\021:\217:n\204\220a\2411t\306B1tb\241x\210s\3129\376\241\363!\254\264\200_\027z\017\325\357?\253\027\033\276\265\300{\325\201\352\\\255\267\376mcn\363\223\255\266\255w\266/;S\323\31644\321\254\223-;e-\014R\315\272\275IUp\234\2524\217\231\350*\005\022\373ZKb\363\271\336O\372g\316\355;\316\235yg~\301Yx\210\0146\313B\032gi\216\033Gg\334\014\2674\355\007Nn\021\254\246\210\231\366\357\242s\327\324\344}t\356w\314v\010&\2703\374\005h\334\320\333\247\0175\310 ?\336\337\274\267\335\363\374j\273\344\244ad\331\277\234\263\030P\211?9?\301\n\033z\266\306b\305\321\257\016Y\226\0176\227\267\277w\246u\313Z;xEC\033\205\006\n%\025\305\274\207\316\275\366_\320\371\245\3757t~k\177\200\316\003O\205\216\2423\332\221@\047\321\221D\047\331\361\013:\277t\344\320\311u$\211\320\330\351jN\324\2548\213\316\254\231\323\037\242\363\260\375):O\315\232c\004\333\334\210i\235\273\016>T\201PZ`\302\247\027\017U\205\375\2157\032\276\245\354\007\325\373\265P-Z\277\273\031\332\034\336\352\331\372z{l_c\355D;\351\t?\251\271\225uqp\253\377P\302\312\325\306G\215\261-\337\224\366a\265X;U\273]\177\260yj3\275\325\277\025\335\276\347\334\001*\027\235E\034uT\257 \251\213\250#qK\216\0373\355VEjH\276t\371P\254\375\274q\265\341\223\255\376[k\257\235\255\345\352\277o\236\335\234\337\no\335\336^>\210\346\310y\353B\275\215\321\371\351\341\351\341\335\351\272Po\257\237\255\347\032\277o\235\335\232\337\016o\337V\242\302\301\264P\316[W\032n3\323\n\036\336\205_\331\270\010\303Q\306\220{\275\326%)?\263\371\356\326\347[\231\303\352\253\357:\343 \240\334VC\220\226z\\\221G.\244\244\214\267[S\343\252l,\227Z\225|\332\342\242}\260\2259P\341\324\004)\205o\267ZT\001I\330YCg\315\314#\0038I\014t\014\2423\3301\324\341+\347\017?\212\326v\250\022\356Y\203\377\300\231H9)(\033L\324Z\210+:\305?\235?\365B\203z\n\225\216T!\256\250\252\326\3019\277FDkr.\264\266,{R\235\373Ks\370\226\310\013\206\315\240\325\005\233\331\014\357\273`\260(ni\301~\n\213\246wb\343\026\037\346\002K\365\305v\333\341\233\0364\024\275\323\005\222\313\236\026\372$\250\345\320\311\331EEP\201>m]5\221\006\364M\347\315\263\265pm\032\013\007\003\371G""\265\236\332W\365\376`m\350q\047\271\357\302\005j\226\344R)\216N\274c\022\235\311\2164:\351\216\251\016\241O\375\261\212\352\211\237\246A\254oe[E&\374\341o\253\317/:6:O\271\345\262\202D<\252\324\025tV\214\020\376\010\235G\355\217\375*c\\Z\350\335f\332R\372\013\235\277\332I\030\047e\316\":\213\241\\H\350\264\016\311\n\245\342r\276\217;q(\237\326\035\223LEU\350.\035\236\257\272{\317IM9S\300\252_\234_@,\326\255\204\026)\304\230UtV\333o`\301nt\314\2403\323QB\247\324q\023\313w3t\013\235[\241)t\246B\323\350L\207\026\320Y\010\025\321)\206\326\321Y\017\375\205\316_\241\237\216\341\000\177,|\314\247\007\034\030l\3454\264G5\327Eg\022\332\253\326a\202\340\252\226\214\270\212\241\275d\222\270I\024\"\266d\321\311\032\225\002\251\000\227\375\n\024]\240W\355\230\346\252\301\261\024_\326\204\032|\262qa\363\323\255\341\355\236\003\016n\347hs\347w\047\321\332\002\261\301\r\n$\027j\242@\2015t}\373\260\333\217-/\020S\376\353\002\2715\344\231~\002k(r\340\002}a\207\251\243+\220\032|/\265\266\033\275\207\203\357\233\225\037j]\265\013u`\2112\0342\272\217\347v)\230\201\264LG#\261\224_i\261M\345\243\001\307\035{q\017\265\235\004\327[\350\3342S\017m\272\336C\347^\307/R\373\252\047\242\301\241V\216\047{\324\274}\353\244AV\323+@X\005\273&\tT\253\244p \355\017\315\037$3\271\265\252D\247\274_)\347)\320!\205\245=\356\377\3014\321\332\002\261\021\037\n\324\327\362\032\332\333\306Okj\216D%Zo\221\344\020\3066\0316\312ej\241\263\350\314v\314\2413\327Q@\247\320\361\004\235\047f*\035Gg<4\201\316D(\021\342\365\317\266\177\006A\030\307\325\222\350\345\257m<\340\373\252\201\254\373\262\371\334\242\315\010.m\355m8\346l\322z4\222\256\344\212@\332\n\221\200B+\002\022.\177B\006\374\324A\034\033\350\360\215gC\221V\016\320\317i\362\223v\000\003\036k\343\262\337\234\337\0369\217\2642\213\232\000\351sI\213C\273)\2646u\333:I\322\276&\017\313\270\300A\311\327\231O\3272A\255\177q\3737g\372\236\322G\037\306x\322\243\\\310;y\030\246\327\235u-\327R\223\227\nFW\037\252Z>\225\220\366\311\250\036\207\321\031\356 yq\304""\257i\270\255\365L\326B\357\352Q\363bl\363\375\255\211\275\016\n\207\343\223\234\312h\014\224;\303\244\212\031Cgl/C\003\211\327\356\230\2005\021\272\207\316=\263\302x\214\316\343\320\237\350\374i\245l\316{6z\334\271{\244\355\357\240\352\237\202S(;\345\047\316\023mA@=M\032\233J\003>\271J\245\021\304myj\313$\332\341\223`\241\370\237\276\210\342\363\025\273X\275\037=+\250\023\322\364CMm\032\235i\323\324\250\215\255\241\263f\2668\037Ini\031\352N\021\333\255Q\365\220\022d\256]\354\252\035\r\023\321\236\n-\017\245=M+yIL$)\345wt~7\013h\267\005)\023\016\311=\332\031&&\256\240\263\322\361;:\277w\014c\367\0336\035\225\226\303\267\321\271\035\272\023\022\014\326\246:w\364\272\233\024\0224v\220B\001F\325\353G\316\347\231\315\370\366\217\316\035\264\240u\217UL\223\314\021\350?0\333\345\226\047\r\214\324q\245E\245+\325\253\235\370et\226\215E%\355\304\017 O\007B\203\350\014\032\223\031b4\215\217\263\350\314\232}\371\002:\205\320\023t\236\230\321r\010\225\021C\307\"\350D\216\r\037\023\025\364%p\014O3\334\375\371\210\207\314\275/\204\047\235ImO\236u\262+\316\n,\035\177w~\327[L$\225\310\355e\327\330Y\351\317I\301E-\235\346\"\331\322o\372E\260\237\357\035q\361\367h\346\351\321\356\201\010\014\"\372S\347\251\336\025!\305\22546\223&\224\264\270\244\036N\253J\267\334\312\260\367V\207O\333\367\263^\234\323\034O\263\272\225[\257\0369k\376\332,l\3178?\243\201\335n6\010\007d\030mB\322\300C\212z\342\215\264\213!\365\037\331\261I1\205z#\331\305D\321\211\206R\350\244B3\350\314\030\235\3402:\313\241<:y\350\224\202\337\332p\341\336/G\252\255\253\027\317\307\2577\337\330\354\367\362\361\223\332\375z\250\036m\334\335\n\241\251\303\366\327N\n\246i\350\311\372\000\267{\032.\360\032\007\222\340i\354\223\207\342\310\204\207V\017r\010t\005\0315\277H\221x7M\250\272\343\302\362Q\365\213\027\317\307o6?\332\014{\371x\276V\254\237\252\337n<\330:\265\225\336\356\337\216:\223\320\241\001\0310\021\246d\367\274V\340\215\010\322\262 \320\260\215f\024w_N--\210\201$\n\321\2408\217\316\274\321\202\272\014TK\213\307\206\217\237""\325\331\330\370\204-\305.\274\360\251\371\240\306d\301\332\023y+\202\334!\243\226I\2534\271<#\036\322\344L\232\225\337\320\371\255c\025\235U\313C:G\356UL\375\375\177\3779\366\272\363\032j\306W\361\016\234\307\033\245J\317N\347\313;\241\2277\272v\314\235-!l~\366\276\226&\037\251+u\324g\047\235\223(\006\272\315\376\225\377\034{K}\355\364\375\004\253\256\267\267\333pw\365d\245\r\r\355\217m\244+\375\225\010\324P\047\2127m\325\267\200\241\307jS\365p}\302\214D\316\345\037\200\235\253^|\2379\237\rl\365\300\204\256z\307\204\007\333k\033\013P\326\371j\270:Y;\017R\177\217)\203\246\302\250&\377>\361\237c\0477\324\261\2046\250\301\036}\000\000\003:\205:\014\260\261\352\234TgY\360\302\233\336j\1775L`]\206\327\240\305u\236\254\034W\021\235\3077\256m<\251vU\317\327\272vN\234\252\000\344\304\306\215J\277s\352lm\264\321\366\014H\275\255\033\353K\377[\245\270\212\302\3672di\323\336\250_ot\301J\205\330\362\0014\333t\243\037\204\233NM\351\047\2656\310\000r\373\242\362\262\332\266?q\262\322^9W)U\317\001\007\333@\342\301\351\346K\220\207nl\366\253\2036@\375k\0339\335-\240j/\325\207\032/ov9\337\214n\017n\257\212\002\275\202\025\212\312\353\217+w`]\324\277s\3424\336\033\244i\215\302Zi\025\2131U\tWR\325\323\272\035\350\340\204A\323Q\271Z\231\004n\002\377NU\206\252\307`-\220q\317\364#\317\337\250\374\267\326\346\364|\336\350w\256\rm\205\267&\354!\215g\241cXH,\325Y\370\252\263K\325\3135<\216q\246\372r\255\253v\026\332V\347\273\325\213\320\310\346\324j\256\363\255\312\254I\375n\365c\310l\016\332x\347\333\300\014\365!e\351t}Z\357q.~\2779\341\374\020\333\316\252\353_&)_X.=\323\033*P&U\365\327T1\372+7\264%\304K\377{\2641\2135\364\372F\271\362\025T\365\0104\224\227\273*ob\rC\343\047\252\333\220\310\343\265\376\332P\275\263\321\346f\014R\211s\tZ\261\363c|{M\335\205\221\246\214?\307V\025\230\361Hu\270\006D\351\214OW\346\240b\037\327\036\327\327A\331\321\236\271\231\363\021\253h\n&#\047\322\267\004\336\310t?@\221\377\3429\366y\303\2433\r\270e\341\201s\033\304\034}t\177\331Y\206^\270\313\376\033\311\047\264\204\2216)\362|\206\334\010!\273(\352\220\273\335:\302o\234\370\0078v\255\341\323\216\366\324\336\250]\253\2557\216o^\333|\2705\261\225\333\376\335\271\003\"\222\276\314\n\360A\177\324k\031y\344\212N&\3210OK\032i3 \355\373\245\014O\373\036dzAK\032\227Wd\343M,\353\255w\375s,\373\2421\341e\331G\220`\250\376r\343\275\315\241\255\377\333\312l\255;\3430\206\301\264\250o\347\301\373\225\235\047Z\365)\317\303\310\253\245hj\224\302\203H\352\275\321\276\373\332\347@\204=o\341\307\351\202\241g\037t\265\356\332\226\376}_\332\202\347\352\315\255 r\273-P\005\371\253\177\363\250\205\327\264\354U\337\314w\212\016v\307\246\247\000\255:\365\277\327\032\370\327\026`\327)\245\311\2552\007lBl\3529\334\205\325\236\003}\317\273\311\271g\373;u\337\270\336e\364\352Kw\273\016\337\225-\345}\313\312\020\341\323C\335\177\333%\217\205q\013\371 \265ox\373ge[\240w\021\202F\032\271\026#\302\345J\177\325sA\356\367U\264C\271\372\202\305[-\330\361\363q\334/\2162\211ss\201F\027\236Ms\250^\367\335\013\232PI\207\024x\337\250T\277\311%>-\035H\207\024htAKU\262\251\243\323\212?\341\211\201\237Bat\302\241QtF\315\rftZ\321\275\305\033?7\0475\236\242\36344\214\247\205\207\217\215\2423zl\014\235\261c1q\341\302\306w\225\247\265o\353\231\377)\013\262\360\316\2117\361\335\013\277\363%\332~\271\316W\325~?\360\013\250Y\373\301\267\325\014:\337T\047\330\007\020\207\031)\0031|3\357\332u\350W=\233_""l\265\375O\3337\221Sy\t\333\211\016\224\021\261\361\242ITX\007\326*\341J\322\304\254U\006*s\325\036\035x\004\315\256\014\315\251_\005\235\327\317)\023\256O\032m\r\225;Y\021\341\223sP\344\030Z\262\355\234x\257\372E\355D=\014\275\244\r\326\347\047^W\306u}0 \234\206Fqh\3737\344\234\001\261\025\3061\023\213$\274Y9\01321v\224N5\306\250\361RURg\355XmB\033AA\345(\033\254\223o\003\277\320\254\360\004\216\327\312\264\252\372\2606\361\014\020v@\242\333\265\214\242\352\344\351\3124|\361\233a\200\276\356\300\360`\244z\013Jy\\[\017\036\337\270^y\3339\203\372[e\235\370*\264\022\347]\024\2040\370\214hZ\200\306q\374\215J\217\212\306F\244\354\036wNv\355\234\352\006*\3576B\2150vO\303\353O\303N\030\257\r\333\351\354\251}\240\212\334\371\001\240\350\374\250vI\207\336\255^\002Z\037\243\367\303j\001x\272\330\310\354t\276_\275Q\373\302\271\360\035\314\377w\325r\006\276p>\002)\2661\262\031Ff}\n\003\004\202\276\302\312\337\274\260\325\273}]I\t\267\235\333\260.\306\235\013~\253\216\274lFN\257\264Q\021x\255-\331\023E:\220=_U>\207\021\361\004L;N\3677\233\275[\337m\257;\3230\372@~\270_\262\323y\256\366K\343+\030\231TwyP}\033\346k\345Q\266\201\217\241\323^\305\273%\200)\027/\035\204\035\365\327\033\253h\342\047\031q\016\333\013\201\302\215i\020\227\346\267\207\235\004\014\214\372\266lW\322\220{^$p\004\276\332`\357\300\365\224\372\213\306\355\315%T\021\302\352\022\260+\303\220\316nX\362\235\321\026\251GQj\347\202\252bo\261?\251M(\020\264\317\306Dc\021\204\254\207\333iE\230~a\320\225O\344\306\0255\204\300\253\177\355d\357)\366\365Fn\363)j\370`)\013\330q?\037K\362n\375+\335s\216\246\330_C\273\356\361\026\373<\332T\002\010zi#\323x\014\242\331\377m\317+\302\2402\270\301\211\\NR\303\047\005\267\224q\354u\263""\236b\177\331X\337:\201\n:\350V\200\0357\347\221\366\213\365i\314\374\250\212\375\rL.\375\336b_\200q\025A\327\241\320\253\233\235\260\240\177k\373\241\"L\277\016\344\336\242%\227\2534\351\007\336\262\353\356\350z\213\375\325\346\313[\357\243~\r\206-\300\216[\3558U|\207O\241n\266\035U\261\277\325\343F\217\323\203/\236~\205,\260~dAo]w\375/\221\212\3153 \326~\342\214\247\025\225\372>xW\360\221r!\351\375\344\206\243\344\001\r}\244\234\2471\2176\034\355Ye\017\233\276\336|g\353\322vN\215\270@\000\356\261\357t\236\255\215\2014\250\332\255\237M\353\325\023\265\001\020qs\215\247[W\267\246\267[\300.\331JZ\303\"\251\032\265\267a\036\272\374\255h&8!N\354{.tm\263\344\266\027\231\210\004\336\002j\357U\374\027\314|\316\205\357a\035\235\361\226\373b]\217\217j\244\334\374\n\226I\303J\325\001\224Au\300\"\3045\240\225\333Vd\350\021x\237\244\275\\\317S\356o7\277\336\032u\306\201\247\260\332\000\364\270\337\277\323\371I\255\000s\256\242\355H\013\216\014nU\271i8\242\275\323\331\357\364\337\332\376\212\216\253=\217\t?\340h|""\300U\347\211\255\360\001\326\235\356\201V\271\213O:b\342C`\207[m\365\322\363\047\034\220\017\272\370|\337\337\021\366\260\374le\351\017\271\002=p\351Q\314\036\335n;\210\240\035\244c\047\033Hy\n\200\004N\352\010\256\375F\213\345\355\201\255\236\027\334\372[9\345\036\262\365\0178\003@\031\014\233\272R\\%\370\301\327 ?\343\316\276^\\(s\013\306\236\235\316\013Zyq\001Y\376\211\363\311\227j\311\336\266\267\225\n\037>\345\335\320$\250J\263Xy\245\nY\340\221\325\242\274\230\214n\371\241\223\357\244\245\247Gq\351\255\315It&\215\226\236n@.\241S2\357\214\374\216\316\357\241\247\241\303/\213\314l\375\033\264\257\201\255E\047\24658z/y\215\252M\235\007>\304\300\3653>W\274\337\261\213\317\342\262\361\312\033\317\244\t.M\337T1\256\205d\213\2072\340\t\2142h,v\230\021\355e%\270\337U\362\372Wj\010\353\222\315\326\302\3676\336)\345\223#\335\002\325\225il\017\240]$\266\036o\343V\336\305\0106\221\203\260\364\307\315Uh\354>!\352r]\203\2242wsz\3536\366b\255P\321\017\207je\215\224\237\345QpyrF\236~\267\317\225y\370\361=\210k0\336h\335\200^R-\320x\003\003\376\326s\345\251K\007f\004v4|\237s\237\035M\017h\201\366\0364\256\311S\220\362\2619\367\264Zk;\332\345\276\026\251\260\017%0\036\\\245Gkm\032\356\345\035\234\322\264\236\206{\272\307\213.\343\247\311\367\317\216\027 \t\"\253?\256}\217\326\020G\261\205\330yt\273$\007\335C\274S\307\021\3472\214\345\352^\232\003\225~?\022\360c\271\235\310\337f\222kWy/\201<\034$o\242p\317l\264\252\333\021O\016<\370`k\270\270\345\351z""\373\333^\016\262$\220O\256\311\353l\250]\320\374F\3033\3553\322\232\215\004,2\260\262o\177\266Z^\332F\253\227>)\"u\327^UF<\300\305\351\332\276\006\260;[\020u\276\366\247j>\031\234L\363V0\330}\320\0026\352{t\0369\217\364z\234Z\030Mi\362\340\261<\023*E\324@\326\311cT\362\276\267ut\326A^h\325\2305_\277\321\370\021\226\023\367\325\010\202\006\256\300\344+\375\207f\361\376M>`\016\207\216\013k\222\222S\322{_4!\310G\033\3449x\232\th\202\244\016K\367*\330w\246Z\324}\323\365/\033=\255a\017\331H\360\305\3539\347\334u\325eW\237k/\261\350,\302\304\t|\2026\2505\224$Z\311\325\275<\316M\222j\3403@\324\016\351\\\025M\232\201+\326r\307\341\255-\216\266\345\035`\203\275i\207\226s\205<\267Lz\316\300\367B\334k\342[\265\367\336\302\246w\200\215x\350\227 \313\303\202LkI\344K\235\322 W\256\216h\276\240\371t\217v)\007\336\247o=\223\366\246\\z!\314\013\334\263$3fRj\004N\025t\r:\2311\223n\351\027t~\t\375\212\316\257\241L\250e\353M_\247\326\266+\342\006\nw5\210U5\274\225i\311\\\263_\345\307\363f\033\251\355\223\227\207\320\020J]\236\2323\035Mu\037\305i\371\244s\003\005\226Cq\352@[!Y\047\013\303#\264\340\242S\324\352\020\332\023\r|k\256\005\214:\350NI\013\031\245\347\347\357\266V\367e\305\370\274YYN\307\362\332\013\371\360\017]G@\327^\270\257J\264\312\316\321r\312\271\241\305\360V4+\030/&\216\242eI\371Y^CC\027\367\004\336\013e\257:jq\003\273\3729c\330G\265\313\332.\377\350\245\343\303\212|\362\021L\373\242[\313\006\252\257\033\341\326\260\347\000\266\2419\047\367\002E\224\203ne\033\036}~\215\361\210iF\366\301\243\375\033\227/8\013/H\312=\250\316(]\377\2461A\354q[\016kB\267U\361Z\311\236\227\304\360\375/g\317T=\332*\366\354\261\207\235\227\213$\020\227\2009Z\265H\302\034)\215\344\355\220\362\342\035i\234.\037\322\262\257H\265\250\207\271<\212:Q<\332\315\372\031~\255\006\370}\367\263\213xPqb\277\235\255\371xD-\212Fi)3\311\273\374H \010\274\016\331^\021\331\262\356\367m\003ul\237O8\023\372\335Y\022\206i\033\202\316N\322f\025=\243\372K\350\320\302\226\332\321wF\240\246\013\250\2055M\213\2464\232""\370\355%\261\373\235\027\362N\276\354\224\241*\2641\217\274\231\22766\251q\222lJv\047\264\035G\217t\005\236\371,\242S\014\375\204\247<\177:\026E\047zl\034\235\361cit\322\307\246\321\231>v\373X\353&\021-\207\\\373\202\365~6\211\354c\030\330\243\034\362\350\237\230D\016*\207L\325o\252V\374\305\315\355\236\226,-?\364\257\003\016\266\264\224\247\026\376=K\313/\277\n\342\223\020\335\246\324F\357\321\034q\364\257\003h\337\206z*\355\223\322\252\200\246\230\300\247\342\344%[\322\360C^\204g/uk\331\342\340\013|r\243\305\334l\215\036\235v\001\251\243\322~3\r\355\264\333\023x\027\277\274{\213\346 Zd\311;\362\354]o-k\232G\312N\256\327\223\272\274\177\001k\367`\242t\013\247\235[\346\035V2~L\205\016\317}\243\305\2134\336\331\374\014-D\365\255\047Z\215\271\324\362\3528\320\"f\311Y\202\221\002\255\323\371\203\023$Z\321(A\233E\264\325\035x\373\266\274\035\215\306X2\322\221[p\366F\276\226\tZG\323\272\367\177\362\326\257\263\"\035\014\311\365\324\224i\346\"\243\273\300+\272\345\013V\244\221\t|\213\331^\324\3272}\326\321\260\223\026Ig\235\263_\230]b\271I\267_\321\223\344\000\371\212\014\t\242$\025\004\336\350ML%\345\004\311\001R\367\277\333hA\017\256\223\034k\037on\221]\251\036-\224\001\250\276\314\205\256\030jy}\264dg\217v\037\344\273\251$\274\222H\026xG\270{\221\204Z\276\222j\226Vb\3622E\367\035\355\326m\376\035M\373n\331N \251\"\345\233?\264\022\240\215\372\300[\304\211\231\264\310%+\010\272\3459\260]/\267r\263\360H\231zt;\207G\301lj\271\364\334%\355#\222\231\034=\240L\303\006\335\203t\033\235\333\241YtfCK\350,\205\036\243\3638\364\047:\177\2325q\370X\0137\027\003\305\022\261\306\"\356P\367\226\347\343gp\307\361\3131gL\017m-]\362\234\330\272\265\275\272\327j?\352\345\220T\265\311\3073h\366 \t\207*>\3200\362\006\326\343\rc\007O\352\036\252qR\206\024\320)\230\212\037\302\032\037:v\023\235\233\366\002\254\303/\261ZY\3751\047\006\034Vw\230\266x]\241,\025\325\013S\342\022\220\027\273\276\220\217\003\007\336vFb\030\325\371\237\350\374iz9\235} k\2014:is\234\352\001:\017\214\346\213NU\225[""\274\350\300\031\262\250&p\335\025\346\261\316&\224\005h\353j\313\265f\347]\364\343\332\017\320\376.l\366<\337\260\035Df}O\235\356\237\362I\ryO\035\365OR\365\312G\016\\\0035\265\211I\"\005\r\314t\2675\311\022\364\314+\325\025\035}\223\347T\366h\331q\020\313yV?\31677\361\036^}\225\244~\222e\031j\350\253qg\034E\276VK\337c\333\0378\351\251\303j|\367.v\223\310G\003\247\253pS\025#\237\033\242\303\210$h\323\210I\2666\021t\"\241\341P\3534\276FV\371:\341$\364\341\371\3262:\206\307en\357vV\346\350\230Nb\212<\001J[\035\362I\031zF\232,\233\350\202F\232\246h\221C\272\220\237\321\37194\207\316\\\3507t~3b\312r\213W>\027q\334\327o\207\322\355\260\266\242\232\037\327m\311b\377\207\355\017\235)\030%\325]\235\273T\336\221\351\000\3446\225\034\273\250\266H\232t\3176\251\236B\n\254\024:)S[\367\321\271o*-\217N>\364\010\235G\241\277\320\371+\024A\241\"r\354\006:7\216\215\034k\2351\352\3565\211\r\307\010\340\356^g\253\005\210\017\267\376t&aP\005\001\240\270\323\371_\347\277W\032m\330\004\233\371\217T\236 \355\216\3249\220\324\230G\047o\226\013\264\037H\302#\365C:6I\022\004U0MNt.\233\004\2115t\326\314\271\354?\320\371#D\025L;i)tR\307\356\240s\347\330\317\350\374|\354\336\261\326J\036\347\241\341$\260W\350\007\200\365U|x\317\274\032\316\344\033P1\024%\177\374i\327\006 \314:\324\266\364\277L\347O\233s\201W\270H\243\323\275\217\311$\232\320\201\346\021tF`hn\345\266\300K\215\047[8\025\376\230V\242\301\221\324@k\314\377\3660\214\322\272-\360\\-\355f\321\006)mc\311\307\257\250\007R\035\220xH\023b\014\235\230\031b\251#N\205Z\251t5U\021\036`\365\360\2341q\272>\325\330\227\240\336\346\271;\355\271\242\271~\312Tw\003\331m\251\033\220\266\217\306q\371> \035t\242y\215T\047\362\264\216\373`\267\322\375\311W{H\036\244\311\216\272\001\255\246\250B\342\241\326\235fM\327\2577NC_Z=\312J\030\324\267U\211J\350ohiPU\320\326\031|\250K\257\t@|\322\017u\351\267B\264\374#\037\233\222\227\330QG\220\017\233\321\344C\006\003\244\316 !\203\246\"\371\240\245\253sUjBy\221\367\036\317\363\207A\244\205\245\215\356\003P""\006}C\305%\347R\030\312\327\265\375O\327Bdkb\313{\215\340\347\r\255>\014c+\331\372\n\007T\375\006+H\260\372\t+\367\252|y\031H\340\213\265\244\375\226\317~QG\240* \355\002\255XI\334\223\363\001-\214HD\240\2160\200L\0370\035\201\252\200F\246I_M\014n}\275=\352Lk\025\271>F\273\274\323\331\347\364E\360\316\321\355\314?\\\023\303[\031\234\032DM\\k\350}\267\001\250\207\376\255\021\334\023\324\217\274B\t\364\243X\342\331R\322\030\310\207\235\3445v\244\312\225\217\211\311\047\303i\007SN\322\362EI)\251\311ej\340\3259i_m\014mE\361\351\002\255\250\205\262\300\010\233\337\351\374\314\371\354\006\336*\240\354\342\376\321\352\270\261\265\272\355\235#\276h\3509B\r]\320h`z\323\257\310B\021\360\255-gM\234H\221\347\204\003\337\335\245YB\276Q&o\025\244Y\202\214vHX\332\303|M\252\267=\316\327\021\230\360\226\224\204\n\353>(\013,\273\013;\235W\234+\321\3553\316DB]\302\262\207\372x\326yb\343fe\271v\035\267\317\360^\373Sx\014\031a\271\352j-TSl|u#^\375\2726\\W*\261W\235\023\037V\357\253\367: ]\274\332\217H\350\036\376\343\033\327\324\003\000\217\360r|u\235=8\370\340\016\256Q^}\243\362\337\332\361z?\306|X\375\275\336\203\236\367\360\342z\225\350\243Z\217Nt\246\372\337z[\375T\035W\254\257vU\216U\322\325\376j\244v\2726W\357\201\257O\276\355\274\215\013\237S\215\333\233\231\235\223\037TS\265\256Z\317\316\3117+\327*\253\316\231\013\365\016Ht\352L\265\315y\347\242sQ\267\212\223\247+?C\252>hX\220\347\351J\306y\373B=T\0177\317\001\245\275!\020\211\272X\016\247+wkm\265\017\361\262\177Br\276V\256\367k\252U\270\267\376\036\336\262\1772\020e\177\243\253q\026\271\276s\362\303\352\\\255\247\326\217(\047\253=\370\216F\375\307\315\263\352&T\272\347\037Z\267\233K/2\203\256\341\177v\300\253\317\366{\355\231~\236D\334\013C\302\223|\007\236f\357{\255\275\350\354\331A\357\344\330\357}\034\372\335.q+\007\211\351\324\373Io\353\3366\324\322\2337\236\035\364\364\377~O\373\353w\300\364e\010\362u\331@!l\246\2657\310?;\350\365\361\373\275<^\277*\246wI\345\203\260\3629&\373\232Q+o\214\177v\320k\314\366})\243~\316[\333""\337K\231:P\222\313\264\366\n\306g\007\275,F\336W\261\317\353a\364{\334\342\"&Z\306\005\312K\362!\314=^\010p\350\013_\360j\212g\007\275\006\233[\025\361-\251=]\210\255\237\221\326\226pR\234\224\217m\323\372\212\3569!92\360\022\200xG+.\3126\014Z\336\374n\253\250$\223\203r\350G\3775\341\317\275vJ?\024\255\2650R\252\223/\335\273f\352-\276`\352\331A\257\307\336\367\265\340\370\274\263\271\246\224&j\032\332\345{\021\356\241\267\026\337\005~\260\222\206\375\027\240\177V\327S\231\262\237\331|\214O\314\247\225\324\016d\001\367\241\234\370\"\263y\363\223&k\032\336\003\233\372\202\257\250?\302\374x\302I\351\351\032p\352\035\313O\235O\277\2076\244V\327GUT\26189PIw\353\324GY\322\003_\237\320\302\033&\210\005\362\024\347\036\324\024\341\226_-\361\254\265;>/\314\256\237\264\010\322\006\235\254Ji\364\247]n2\200vu\234-7\350\177\326\332\235\353\027g\033\320\272\363y\2076\003x\326Z{\305\027k\002\332\272\203\374\207\267\375|v\024\333G\373^v\037\310\342\217\246\200\300\373\331HoNL%\375 ikIM(\257!\245\313\235h\023\217vr\237\266\364p\024\355\025=;\232\r\273\375\256\215\017t\214\204\246[j\300\304k\332\252\240\231\207\224\177\264g\347\336\205\247\266\356\350\254\024\251d\367x\027\345a\216\230\354\302r\017\247\377\241\321b\267\3758y?\212\2743\236Z4\355\004\321\224E\033B\356nDKG\213W6\345\354\337:\005\266\036-\370\031\023\356\347&=\362\354\311\363F\224`YA\332\307\022\377\345[\272\244\342\246\225\"\r,\362\3268ZHK\3738y\325j\340\210B\206q\244\351&Sr2,&#\323\034:9s\256\372\t:O\214)\371\000:\003\306\260x\022\235\311c3\350\314\034\313\242\223=\266\200\316\302\261\305\026\032\035\0177\316\251>8\252\2324t@-\210\351\003\362RP\225R\004\r\324\362b_i\246K[\0064P\323\002\\\236-\271\327qD\r\357@\022h\360\240\271\207y*\360\215\220}\333\301\026\321)\032sX\327\360\250uB*\333\0379\022\226+m\230X\r>\367\374R\363\341s7\241u\267\013\333\245a\t\311\3774I\221\350E\246\342\3628\031m\346\322\266\325_-<\337t\324l?\310\264\025p\331\t\265\363\335\316\216\355v\177\267\264\315\247\253O\210\3414\211\2215\tm\020\322M~$""\034\320i\276\237B-\234\331\216\232\361?\370\236>\334]\243\251\307\227&\226\365\273-.v{\214\213\366\311\335\273f\324(K\014\247\023\022d\276C\262Y\240\271}8\324\272\007\004\217\236\361Jk\372\357\262\233\242E\262<\223\"O\236\221\270@-\235\014\274\007\216\306`\352\210\030\377\223\317`mw\035\256\326G\303\025\345\324aKy\2572\211\306\324\326\3114g(\324:\215\356\321s^\275\314&8\177\245\2565 \352\221\327\255N|\255I\037\331\003\342\335\233\261\236:O\265\016Nn\331\006n\300\357\341\241*\332\344\223\307\034\211\345\244I\"q\206\244Hi\233FV8\021\037\347\177\332z\031\217\034\352\3057\020\217\326\003;\235\027\235\213?B\223R\246G\377\034\347\007\267\372\377u\206\231\273\035\227\222\317^=\357\270TK,2\217\210\363C>\223\330\347\274\254\252\305\032\335\340I\214\227\333\331\201\246\n{x\236\202VOr\331$\255cI\254\241\307\206\244\331\031\331(\337\010\265\356\315\326\243\347\276zA\343_h\nK\312UWc\2554\"$\333\220\302\217d\033j\364d\253?r46\260\317\216\314\000\366_k\376\272\333\031\025Z\306\356\361\214Jk\354^\237\035\231\321\353\277\326\344\2254\t\322\020Y\336M\037xt\363\346\321\331\272\036I\035\214\370\314\216\237\363\2624\312\267\346\322\347\326=\026v\310\333\236\237\265\340\216\327\326\334\360\372\317\277\237FW\273\376\335\371\237\227\273\350\340\201s\374\203\352TM\331\336\277R\355\251~Q{\035\315\364\337\254|Q}\025\372Y\3773\362N\326{\304w\0476F\361\310\300\361\306\365M<\252Py\277:Q}P\357r>E\005\275\266\277\257\374Y\233\3007\301v:_u^\375\260*\363%\302\360\340\304i<\363\360\372\306j\345\325j""\312\351\371R\033\014+\233}\226\036O\006\340!\202\367\352a\324\006\035\337\270^y\023\340\047NU\"\325\367j\341\332]]\261\336\317\336\252d\360\240\306\215J?fQ\006\026f\253\375;\047\317T\377\257\232\251\256\252\263\017\316\333\237A\3538\0063\317\251w\024\252T\275\253~\261\221V*\367S\037\325zv\272NW\222\325c\325\ts\032\342l-\343\234\377z\363-\245\242\244\223\010?\300G\347\033o!\361\317\200:\310\356\035<\303\001y:o\236%\244=x$b\002\201\245JO\345z\365\r$\345Te\020\030u\033\332\341\032\260\352\024~u\352\355J\021\"?W$\236\351\306\303$\320\336\316\274W\275\346\374\367Kz\201\344\375\036\305\212\273\233m\233\357a\360\323z\017\346\373E\245C\027u\225\010s\336\273X\277Vw\017\212\000s^\371\317\313\257o\314U.T/\324\316\241Y8\036=yR\355\252\236\203\314N\274Q9\013\025\267j\030\tiO\002\327\276\202f\321V\353\362\002\376\213\\\223\300c5\002x\2539\246\361c5\277V\315\326\276\003\226\037\327\233\032:\247\023\364\311\263N \364\023\350\214eTs\237\330\030\334\370\243\032\205v\224\305\343/\247*C\316\231>\325e\335\212\277\243\2726 ~XI;\357]m|\0145w\035O\237\364\002\307/@pb\247\353\355\312C\347\203/\033\245\315O\266\376\017D\357\223\227\200s\323\215$V\325\233\316\233\037\327\372q+\370\375j\270j\016\213\374\375\232\355 \300\2365li\047\235\223\335\272Ke\241\250_B\273h\302:\352R\221:\020\361\256\355RH\360\007\265\214\251\376/\252\035X\375o\253^2\013\264\236\255\3177\302\317\360\274\313\205z[\375t}Y\261\247\027\032\347No\177\343\024\224\343\325\377V\037)Fp\264M\260\365\3701]i\204 \003\350\3170\216T\036V\223P\203\247!\355\333\2156V\340g\235\357U\257V\177\206\257\036\350\267\022\201_\357w\327^\253g\033\337nfQ[\3621\214#\311\372\261\372\317\020\377\221\272P\360\354\005\010N6\224\27556\204~\344\333\333\025%\251\\s\316+\355\0266\315Pe\250\372J\255\247v\255\266\212g\210p\310\351\250|Y\355U\374W\307\220\236@\357\302Fy\352\364\263\223\320\017\200\337N\017\356/}\002\035\355\3553;\247\336u\336E\301\035\272B\1775\274s\346\375jD\0350:\365\256F\362\314\016g\320\257nB\377Y\253\305aeu\342|m\255>\006\003\225\342`&0""\362\235\255\236g\047\360X\3225=\032`o\372|#\263\361\0470\252CQ\210-\240G\345wB\035\231B\226\003\025\257\236\254\264U>\254\226\235\217q\350S\375y\025\206\227\331\332)\3256\201\347\215\024\216\221o8o\240\206\025\312\211\3749\211\315\241\253\332\203\355\246\027\361\3000\305\317\2079\047\240=\352#d\243\325\227k]\372\310W\270z\027j\364=5\246nLVz\260\361\0027=\351v\031\213\237u\342(\330\017\025~\225\265\360o*\023\225<\226\020\370\212\265\362R\245\354\274w\035\246\300\223\320=\316)\363\226SgT\325\375\000\203\354)<\204u\276\376>\360\210\274\272TX_/A\325\266\231F\371C\355M\254\211\323\316\351s\265\t\345~\202\314\207\226\361\354\344[\352\230\\\333\316g\327\033\263P\301}\333\355\333=;_\177\263s\345Z#\242\215\370\260#\306*=\3302O\340x\352r\237\230\263\243\213\342\204`Le#>\2365\203\372\332\351|\243r^1X\r\377_Wo\326\346\261\311\251\001\371b\275\277~\243\321o\016\246\275\005D\037\307\005\270\236\247$o\377\037\277\225\001B"; + PyObject *data = __Pyx_DecompressString(cstring, 24600, 1); #define __Pyx_DecompressString_LZSS_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35494 bytes) */ -static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notebegi\377dx nbele\337mentc\345\220\003pi\377ckle %s:z\343\211\007h\345\215\003poin\354\233\002Cto\223\233\002\351\212\005\336\000\345\213\002,\324\235\002\367doe\347\223\001t cr\373os\306\227\001proce\357ss b\365\240\001ary\267dis\352\205\001en\360\205\001g\345c\333\235\002 \266\236\003\242\224\001wro_ng di\221\000s\313\240\001\352\024\tl\305\204\002s\343\235\002dif\007fer\337\221\001\351\237\002\367\236\003\310\211\001\274\225\005yd\327B""Y\003must\336\236\001\003a \354\237\002h\004\350\237\002\345\237\003\207\232\002\330\237\002\377 Series,\255 \204\226\001%s\363\236\t \223\234\007m{is\202\242\002requ\374\214\002^\256\241\001 key\304\242\001g\212\217\001\270\243\216\002\245\003\346\205\001, 0\354\232\0011\33700)is\366\003dn\315o\341\226\005: \355\236\006\204$is\277 empty\234\241\002.\377_core.mu\347lti\337\240\004\351\227\003to \363im\305\215\001\033\tumat\367h f\023\014tali\203b.\204\215\004\244\243\001\013\003\374\241\002\026\003o\013rd\316 d\237\242\001\047\003\200\242\003\005\004\334\365\241\002?\003sysH\003thgrea\321\230\001W\003wa\352\233\002\366\027\003/_\324\244\005.pxizy\002/\304\000mmon\006\010@\262\244\001\025\010\310\224\003,\002\202\207\005\225hs\325\227\r\377\047ACACCBA\327NDS\000\005_\354\210\001am\362\000\014.\206\243\001\334\236\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\366\231\001\004\372\231\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\345\230\002S\247\252\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\370\225\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?""\010<\004\017\331nBELT\207\236\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\343\241\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\361\233\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\307\236\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\370\253\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\315\250\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\273\257\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014""\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\216\270\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\362\266\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\313\276\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\345\320\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\346\315\005n\356\315\005.__\376\321\001__\001\r\374\260\325\005\035\theck_o\343pt\366\322\004\356\301\002>\010get`\003\030\215\322\001Z\n\274\323\003\325\277\002_s\330\263\002\322\311\312\002s\220""\010\360\310\001l\240\010re\333pr\236\nst\002\013un\361i\334\313\001\304\010\336\320\006flag\000R\007\250\001\267\324\t\207&\017\007\342\323\002\013\n\332\326\007\370\266&\214\320\001\303&lookb\047ack\324&\301\317\003_m\013\016\004\270Q\013\352\317\004\216Frun\232Fs\000\325 \241\322\n\r\n\261\022/\001\242\325\010>\n\240\330\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\237\313\002\221\325\001IMI\300\000\000\312\266\004\000\007\276\266\013\323\313\t\327\313\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\367\314\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\207\320\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\345\312\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\204\322\001MA_\376\213\322\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007""\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\351\321\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\334\343\001\317\335\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\207\327\001\213\327\002F\000\003*\006O\007CHFJ\024\270\327\003\276\327\005&\t\355U\370\355\327\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\321\350\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\236\330\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\362\352\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323""\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\362\356\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\224\360\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\352\361\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\363\363\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003""\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352""\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245""\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371""\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313""\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331""\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017""\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010""\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004""\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010""\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%""\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\340\237\205\002\233\205\003\302\204\003\000\t\273\204\013_AR\377RAY_TYPE\375S\352\322\002tion__\377call_fun\365c\n\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str_I\304\354\312\002\313\002S\312\004\r\003\333\272\002_S\367ERI\341\000DEFA\377ULTS_PAN\377DAS_DATA\237FRAME\t\005!\004P\217OLAR\022\n\013\003@\004_\367Pyx\001\000Dict\377_NextRef\373__\256\325\001UNCTI\357ON_NP\000S__\363__\306!\003\001nnot\027ate\017\001c\r\004\330+\3064\177_class_\327 \357item:\002opy>V\001deepc\004\005\205\001\016l\000docq\001\267Ay\001\214A\177flags__\207Q\236J\tinit\254\001\214V_\336\226C_mai\237`__\317meta\226\003\344\000mo\367dul\330\002mro_\207ent\331B\375\000\250B\004\001e\375w\212!prepar\312\201\"p\277 v\234\231\002\243!qu""\373al$\005reduc\024\245\"+\000r\301!s\325`B\005\350A\274\326 \220`vers\252\204\002_\357_tes\271\002uni\247cod\342!\207\204\001d\242\245\003s\374\263\212\002\230 s_is_c\377oroutine>\316\000okup_\332`\322\204\003\037succe\351 \353`\274\"\273unR\000id_\001\014s\236\003\013reti\257\000C\001g\000\232\331\003\214\331\001\004\010\316\331\002\030\004\256\330\007)\004\240\331\017\000B\004\220\331\022\024\005\224\331\017x\004\333\000\256\234\010\r\005Mu\203\234\004_p\206\234\002\356\001i\210\321\006Z\374\001r\330\247\003_c\325\332\002_\261$\203_s\332\247\004\237!\377!\030\004\006\016o\350e\014\253Aa\020s\371\234\004a_c\377losea_hiwgha\325`wa_\333\215\001\375a\231\004sa_rea\365l\000\0030\007\0031a_v\277olumea\241@l\307era\245\210\001\000\t\274\204\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016B\003\377ppendarg\376\000\000sarrays\377asciiast\377ypeasync\367io.\331fsatr\356\355#avg\366#bbe\377gidxbitb\377ytes2str\376\357#stickcl\376\224\204\001in_trac\331e\256\335\001\247 ne\252\"co\327lle\214\212\002s\010\000um\237n_sta0\000\222!n>\020\000pydde\371\204\001\266E\374\230\212\002\373\204\005descri\375p\333\212\001displa\271y\367\211\002\221\205\001doc\325 n}t\316\"empty\341\000\374\241\000\347\000swithe\371n\364 \356 efact\367orf\352\000d_ma\260\356\001\006\003\320c\024\001k_\002\007l\217imit)\001!\007\"\004iwrst-\004lag\233\210\002\366\237\210\003lo\214\206\002dictx\275\210\002\342!\306\210\002info\317\210\002<\234!\330\210\002obje \003\255\214\002\020?\003\251\214\005\322\213\001\266\214\005s\220\214\001\250\214\003\253Ch\006\007\370\213\002\257\214\001p\252\340\005sg\346\337\001\366\000\002sh\341\340\002help\366\243\204\001hi\374\255\001ylen\335h\326\264\002iid\304@im\375p\333`_error\177inindex\247\001Pc\t\243\215\003\344\214\001\000\007s\362\214\025i\321\243\003\347is_\203B\356\212\001ske\335y\000\000skw\360ale\277ftbars\205\000g\353th\251\215\002l\325\341\004low\366\000\000er\224Cmaxi\277mummax\356\206\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\273\212\003\377msg""multi?pliern\231\216\001\235\216\001\357dtup\366\000ann\257bdev\000\002d\006\003u\257pno_\361\000s\204\260\001_\010\332)\261`\236\217\003s\006\001\251\217\006\010\003\340\342\002\366\025\001py\302Coffs\277etonre\320\212\001e \350\225\001\354\225\001\342\245\001\226\210\002\360\225\to\272\343\001\372\217\006\372\375\217\014s`\007order\373ed\311aoutou?taroon\374\245\001\004\005\377upoutbea\037rpowe\221\213\001\226\206\003\021\001\367ull\r\005doutofama\002\002st\t\003\377stkoutha\000\304\210\002\005\002\310\210\001\016\002\205@\026\002\300\002\345\213\001\037phase\356\213\002\257\247\002\000\007\375_\325\220\001outjou\036J\002lead\230`(\001\305B\373ba\254\000utmac\360\200\001\003\001\201\204\002\014\003sign\347alo\033\001\227\002max\256\010\002xid\000\006xZ\005m\337iddleH\005in\3063\001in#\004\004\002 \007nu\377svioutnb\277elemen\267!p\365l\016\004p\305\"put_\"\322\217\002o\252\346\002\301\222\002\000\010s\021\003\000\004\365s\242\223\001i\302!quad\237ratur\212!\336\212\001o\205u\343\231\001l\341\t\365\212\001\241\n\206\213\001u\317pper\207$\232$slcow\226A\004\001\207Asm\260\001\374\003\000\217&supert\373re\277\"swing\340\234D\007\002\240C\027\005X\006pan\007das\213\207\002\220\207\002\234\224\002\225\207\007\244\207\002\277spenet\374\213\003p\377ercentil\371e\325\215\003\333\215\003spola\245r\003\000p\350\224\002\355\224\0020\363\224\0021H\362\224\t\371\224\016\312\225\003s\235\225\002\003\000o\275\001?yrange\333\213\001\220\215\001\372\224\215\0010\231\215\0011repl\377aceresul\307tsr\216\000\262\254\001\357\204\001t_\336\377\220\001righ\246\207\002ro\223c1\362\216\003\007\0002\001\006\014\004u\377nsschema\277second\271\004e\003lf\233\226\003\365\221\001\377\226\006\361\214\001\206\222\001\302\211\tp\006\007\306\226\002\245\222\001\304\211\007set\373\221\005\300\245\270\003\242\215\001\263\204\003\272\213\003\277\204\003\256$ki\007p_f\230\213\001\327B\333\213\004\006\003\320$\017lowk\r\010\346\213\005\210a\351\213\002\234\221aR\004low\205D\241\215\001l\377evelstar""\365t\255\230\002s\350\214\001cmet\377hodstdde\255v$\005r2\222\216\002s\372\236\002s\375y\273\256\003talib.\374\244\223\001\005\000thread\377ingtimeS\217tamp\005\001\323\221\003\000\0071\372\013\0072\026\0073to_nOumpy\252\217\001\256\217\001_\334\223\004\277update\000\003_ \351\214\001\355\204\002\331\231\002\253\003\344\224\004v\375\215\003\204\221\003\317warn\000\001\377\272\001wm\375a\326\222\003\200\001\330\004\007\200\377u\210C\210q\330\010\020\377\220\005\220Q\330\014\r\330\377\020\026\320\026+\2501\250\377A\330\014 \240\013\2501\367\330\010\017\035\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\377\021\200\001\340\004\017\320\017\377#\2401\330\004\013\2101\376\013\001\022\220,\230a\330\004\177\025\220Q\220o\240Q\014\003\367.\240\001\r\002\320\026\047\240\375q \002\320\022&\240a\240mq\017\004-\250#\003\320\022\035\000\377\250\r\260[\300\013\3101\356+\004.\250a+\0042\260!\355\260\016\0059\270x\001#$\360\377&\000\005\014\210;\220a\375\220\231\000\r\210T\220\026\220\373q\230\336@\r\210]\230!\377\2308\240:\250T\260\021\377\330\004\r\210U\220\047\230\377\022\2307\240\"\240A\330\377\004\017\210w\220e\230?\373\250\"\354@\004\016\320\016\037_\230q\240\010\250\225`\021=\000\377r\230\024\230Y\240k\260\377\024\260V\2701\270I\300\377]\320RS\320S_\320\377_`\320`o\320oz\177\360\000\000{\001B\002\004\000wB\002H\003\001H\002I\n\001\357I\002J\002\362\003i\230q~\207%#;\2701\360(f;\363M\270\277\000\203\200 [\320[\\\377\320\\h\320hi\320i\335x\243\000y\001D\242\001D\002\335K\251\001K\002Q\260\001Q\002\235R\267\001R\002S/{\247\000]{\320]\247\000j\320jy\320 wz\001E\317!E\002L\326!\271L\234\007\354 S\002T\310/$\375%\301\2028\320\033+\2502\250\373Q\330\356L\027\230\002\230$\377\230i\240{\260$\260f\377\270A\270Y\300m\320S\367T\320T\367@a\320apw\320p{\372@|\001C\371AIC\354G\217`J\342 ""\357\204\003j\350\204\001\236\206\205\003$<\270A\302\2028\237\003]\343\270!\202\200\"\310\20236ub\320b\277c\320co\320o\322 \177O\360\000\000@\235\204\005\227\204\004X\334\205\001\367X\002Y\343\205\001Y\002Z\002v\3110\320<\227@U\360*\310\2066\356\330%-\300q\344\202\"`\320`\376\252\204\003v\320vw\360\000\000\227x\001G\202\207\001G\312\205\005\246\004_\356\227\207\001_\002`\236\207\001`\002a\356\250\020=\270Q\326\202>^\2701\356\234\204\037n\320T\343 d\320d\377p\320pq\360\000\000r\253\001A\264\210\001A\335\205\005S\302\210\001S~\334\047\360\000\000Z\002[\333/\373%&\257\205:,\250B\250a\376\334\205\r\030\230\022\2304\230y\377\250\013\2604\260v\270Q\377\270i\300}\320TU\320\357Ua\320a\232`q\320q\337|\360\000\000}\273\210\005J\002~\336\205\004\360\000\000K\002L\342\211\004\367k\240\021\360\213\005%=\320=\316;\000V\3602\325\2028\245\001m\270\367=\310\001\213\207\013\024\320\024%\357\240Q\240h\301\001\022\320\022\337#\2401\240H\266\213\001\021\220\370\260\022\245\207\003\277\000}\320}~\360_\000\000\177\001N\252\213\001N\306\204\005\272\223df\277\213\001f\002g\306\213\001g\273\002r\315\213\001r\002}\324\213\001}\267\002J\003\320\207\001\003P\003\001P\273\003Q\n\001Q\003\\\021\001\\\273\003g\030\001g\003r\037\001r\273\003x&\001x\003y-\001y\347\003z\003\364\215\003\222$:\320\025\375%\377\215\002%>\270a\360,\242\333\200\353\320>;\000W\254\210\001\016\210[\367\230\001\230\222\220\002V\2206\230\047\021\230!\236\220\001\251\220\005V\341\220\001\235\220\021\372\213\210\"&\243\007b\320bk\320\235k\371 x""\320x\335\215\003\241\220\004T\256\271\220\001T\002[\300\220\001[\355%bn\316\220\001b\002c\331\211\017\047(\255\215:\357.\250b\260\302\205\014\021\220\032\377\2302\230T\240\031\250+\377\260T\270\026\270q\300\t\177\310\035\320VW\320W\251\210\003Ws\320s\263\205\003F\343\221\001F\214\217\005]M\361\221\001M\002N\340\221\004m\354\223\007\010\235\003\237\2016\202\210\0346j6\226\210\010\303 \357\2139\376\277$\r\320\r\036\230a\230Ax\267\225\001\000\t\251\201&\337\221\004\242\204\013W\312\224\001\353W\002\374Dh\330\224\001h\002n\356\337\224\001n\002o\346\224\001o\002p\376\347+9\220A\200\001\340\047g?\270q\244\220:\230a\r\270\367\221\016~\211r^\320^_\320_\314\204\003\200\202\222\003\370\215\004\327\211\004\317\204\004\311\207\006\376\227\003\231i?\377\320?V\320Vm\320m\347n\3604\373\2168\257\003Z\300z\377\320QR\330\004\027\320\027\337(\250\001\250\030\343\227\001\030\320\377\030)\250\021\250(\260!\374\n\013\331\204\024`\320`j\320j\377s\320st\360\000\000u(\224\216\005\324\227\004\247\226\004\\\345\227\001\\\213\211\005\237\213\004\272\223\211\004~\201\230\001~\002I\251\213\001I\273\003Z\260\213\001Z\003`\267\213\001`\273\003a\276\213\001a\003l\305\213\001l\373\003w\314\213\001w\003G\004\360\337\000\000G\004M\003\001M\004\275N\n\001N\004O\004\236)\320\377\013\036\320\0362\260!\200\357\001\340()\245\225:/\250r\375\260\250\230\016\033\230B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310-\320WX\377\320Xd\320de\320e\307t\320t\207\223\003\322\221\004\350\206\006\360\000/\000N\002O\330\231\004n\277\232\001\350\233\003\302\240\000.\305\2228\220\020\322\216\027\251\017/\320\377YZ\320Zf\320fg\177\320gv\360\000\000w\217\233\005\024\211\233\004\335\214\004P\250\233\001P\347\211\005\360\216\004\310\214\022UE\363\216\001E\357\216\005[\201\217\001[\302E\035b\217\217\001b\003c\333\216\004\376\004\331\216\006\037(?\320?W\310 \323\224:\257A\317\034\270]\310\341\227\016\245O,\320oVc\320c\324\223\001\320q\274\220)\375h\262P@\320@S\320Sgk\320k\250\221\003\354\226\006\3608\235\202<\177\035\270m""\310=\320X\324c\371u\255\222%\217\204\022d\320dq\320uq\302\222\n]\200\237\001]\002^\207\237\001w^\002j\216\237\001j\002k\225\237\001\351k\246\220\005\312DL\313\222\001L\003R\356\322\222\001R\003S\331\222\001S\003^\356\340\222\001^\003i\347\222\001i\003v\356\356\222\001v\003|\365\222\001|\003}\356\374\222\001}\003H\254\206\001H\004S\356\263\206\001S\004^\272\206\001^\004d\356\301\206\001d\004e\310\206\001e\004f\354\267\206\004\200m)*\342\234:0\260\002\375\260\347\233\016\034\230R\230t\240\3779\250K\260t\2706\300\367\021\300)\331!Y\320Ye\377\320ef\320fu\360\000\003\000v\331\227\005\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005\316aC\021\220\036\270\242\007\207\034\320u\374\263\222\003\200\037\026\220f\230J\240\377a\330\004\010\210\007\320\017w\037\230q\361\244\001q\230\006\333\244\001\376\347\244\003)A\320A[\320[?u\320uv\3600\315\2338\352!\377-\270\177\310o\320]^\375\330\315\245\001 \240\001\240\030\250=\021\000\t\330\004\021\220\3542\364\207\006P\246\221\004\216\234\004\325\232\004\345\222\004c\254\244\001c\314\216\005]v\272\244\001v\002|\301\244\001|\354\227\005\345H\360\227\001H\226\204\005\340\207\032o\240Q\266\354\246\001;\220\227\246\001*+\314\241:1\367\260\022\260\272\234\016\035\230b\240\377\004\240I\250[\270\004\270\177F\300!\3009\310M\277\211*\235Q\204\246\003\320\026&\274A\224\250\003+\373C\300\317\2459\320\0332\260\"\367\260M\300\373\245\016\036\230r\240\377\024\240Y\250k\270\024\270\377V\3001\300I\310]\320\377Zg\320gh\320ht\203\320t\220\205\003\325\244\004\203\213\004\350\221\004\262\207\013_\331\002\231\251\007\305\251\005,-\247\244:3\260\3732\260\323\244\016\037\240\002\240$\377\240i\250{\270$\270f\277\300A\300Y\310m\204\2471\320\203\026(\255\251\001\357\252\003\245\000\313\2419\241\004\0203\220\016\323\224\005\000\010\021\220\216\200!\321\240\004\350\240\237\004\353\215\004\265\221\013d\257\252\001d\002m\352\266\252\001m\325\233\005t\304\252\001t\002u|\250e\320\002\025\220V\2309\244\253\001\376\357\206\007\026\220a\220v\230Q\274\324\254""\001\002\027\013\210<\220\333\254\0010\3351\336\247:7\260r\341\252\016\320\021\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\247\031\320R\216\254\003\265\235%W\214\205\005,\354\362\254\001\250\256\00345\210\251:;\2702\376\254\226\016\320\021(\250\002\250$\377\250i\260{\300$\300f\317\310A\310Y\246\217\002\320\2433\320\026\3410\271\233\001\326\257\003\333\242\003\302\255\t\n\210+/\220Q\220a\267\235\0056\214\243\001\357\256\t\177\030\270\032\3003\300a\346\256\030\376\270\255\"[\320PS\320SY\200\352\222\002\360\220\003\322\242\006\353\236\013\314\235\004\324\242\004\317y\220`\232\257\010\265\244\001\221\230\002\300\250\t\227\200A\035\300\346\245\016\303\026\220\320\260\r\312\020\325\240\002\357\225\013Z\002^\226\247\004\360\000\000[\345\220\005u\202\261\001uu\300\213\005B\261\244\001B\003C\270\244\001oC\003D\003\374\260\016>?\242\262\n\374\200\202:\231\256&k\320QT\320T\277Z\320Z[\320[\277\222\003r\037\320r~\320~\360\253\003\200\244\004\327\004\010\371\243\004\214\246\004\201\235\004i\353\253\017\304\242\003\300\203F\276\256(\250\274\017\310\203?\247\260\010>\340\204\001\360\212\200L_s\270A\307\261\037\230Ls\320s\214\200J;@A\235\267\n\014\210K\234\267\t\243\207\022\3515\203\253\001\356\245\027Q\257\200\"V\320VN\344\264\003f\320f\304\236\"\242\222\004i\334\267\001ai\313\227\007\313\263\016\316\000\345\206F\320\033\373\250\004\377\023\320\023$\240A\240X\376\226\265\001\021\320\021\"\240!\240\3478\2501\366\223\001\374\250\017\013\320S\320\254\200.\305\243\022\322\252\004\365\234\004O\366\254\001O\003\335U\375\254\001U\003V\204\255\001V\003\331W\320\254\004\311\251\004?\230\233\240\001@X\047\320XY\340\203I\203\253\001}\232\204\017\331\037\017\360\000\000t\257\242\014\353\230\013\234\233\004\316D\255p\270\273\001p\002\376\225\004w\306\273\001wC\002x\241\253\017\327\227\001\350\273\003\314\263\004\177\361\273\001\323\177\002\203\237\004\306\242\004h\320\242\001h\004\343i\004\307\244\n\235\211<\223\246\002\320=O\037\320Of\320f\231\272\003\277\240\004\226\247\004\370\262""\227\006\263\271\r\307\252\017\033\320TW\320\377W]\320]^\320^g\243\320g\346\244\003\263\265\004\265\235\004q\312\275\001q\273\002G\362\260\001G\003_\371\260\001_\273\003s\200\261\001s\003J\260\244\001J\273\004K\267\244\001K\004W\276\244\001W\273\004X\305\244\001X\004g\314\244\001g\273\004r\323\244\001r\004y\332\244\001y{\004\177\341\244\001\177\004@\005\323\267\0017\005A\005\367\246\016BC\273\213I\300\244$\277+\320UX\320X\276\250\003h\003\320h\256\233\002\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004%e\341\277\001e\313\237\005\217\261\004m\364\244\017\313\003\261\r\312\210\007\326\257\006\201\301\0017\240\322\257\nU?\260(\270*\300F\340\242\001\250\2102\035%\247\266\004{\320R\203\200K\256\275\010\237@\330\246\301\013\304\n\321\222\0226\310\320\302\024\320\033\200\330\267$\200\200N\223\270\010\313\003\231F\360\213\014\215RE:\230\20065\251\264\004\013\320S\245\203K\305\t\320\370\211\002\306\267\t\217\222<\252\253\001\033\245\217\001\023\220\377>\240\021\240(\250!\330o\004\022\220.\200\241\005\021\220\250\253\017\016\304\205\014s\320s\304\277\003\335\274\004\257\253\013\246\246\004P\314\205\004\352\207\004\363\211\006\312\276\001\002\262\224\004K\370\271\001\351K\363\213\005\356\271\004]\215\272\001]\003^\314\360\251\013\203\214\003CD\213\224I\323\245$;\320\357VY\320Y\220\310\003i\320i\200\212\300\006\354\306\004\306\305\004\343\266\004\214\300\004\353\273\004\300\207\006\360?\000\000m\002n\002\204\246\016\302\014\034\356\220<\331\266$\033\320T\203\200K\224\267\010\237@\000\233\257\t\272\227<\225\251\004\323\262#\242\251\017\206\2021\376\265\004\351\231\004\232\270\246\004A\241\277\001A\003\326\253\004\233\204\004c\356\266\277\001c\003d\275\277\001d\003o\256\304\277\001o\003z\313\277\001z\303\215\005P\356\202\263\001P\004Q\211\263\001Q\004R\371\004\211\252\t\364\262\010CZ\320Zqw\320qr\253\277\n\016\210k\244\274\t\362\334\235\0227\302\213\027\206\303\001l\270,\300\016\353\302 {\320R\325\204\t\330\253\003\360\315\004\340\275\013\320\236\307\013\267\270\004""\266\277\004\257\277\004@\314\301\001@\0032\253$B\230\301\013\263\320\001DE\242\316\001\331\211E\372\324\274\034U\364\264\004+\320UZ\320\375Z\327\313\003j\320jw\320w\000\261\316\003\203\315\004\366\274\004\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\346\334\270\016YZ\326\235\023\351\230\016\025\240a\366\362\277\tT\260\256\241\003h\310j\320\361X\261\222\001\377\320;\253\241\014n\320ns\037\320sy\320y\300\321\003\231\320\004\213\320\013\240\311\261\004\300\311\004\377\273\004\376\302\004\301DF\233\305\001F\025\003\251\223\004H\330\237\017Y\350\310\003\217\322\006\211\307\n|\254\243\006\300\200IM\270\034\300Q\346\272%@\344\241\036\213:\275\214\013\300\307\004\214\273\013\204\242\004M\303\307\001\343M\003\370\206 \330\225\004\213\207\006\360\000\000\267R\004]\253\273\001]\004\333\227\004x.\271\273\001x\004~\300\273\001~\334\225\007\347\324\t\346\262\273\010Z[\243\203Z\307\2425o\320o?t\320tz\320z\304\322\003\355\323\004\200\212\325\006\350\323\002\263\316\013\371\300\004\370\307\004\355\211\004\361f\360?\000\000H\003I\003\352\322\016\374\000 \270\246\022\270\205D\267\324\006\246\236\t\261\236\n\220\272\324\017\373\244\014\320\313\200=\376\205\004\325\270\004\344dX\265\314\001X\003T\377\213\004\370\213\004u\312\314\001u\333\270\005w\240+\376\307\236\003Zr\360\000\000s\001\014\243\330\004\247\264\004d\002\311\265\n\350\205M\366\322\007\366\317\001C\330\004\320\305\t\200\201I\212\323\004\317\314\004{\266\333\001\201{\364\265\005\356\265\004\274\302\004\260+\223\273\004\275\216\004p\356\217\317\001p\003{\226\317\001{\003F\256\306\302\001F\004R\315\302\001R\207\235\005Y\236\333\302\001Y\004Z\004\375\327\n\245\306\003Z\360\336\303\003\360\315\004\323\233\004\312\237\004@\003\3606\374\274\335\010\222\201S_\270O\310?\320\025Z\356\332\001\330\317\341\005X\303\267\002\335\341\003\000\t\002\023\002\021\213\2045\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\277\360\000\000^\003m\361\321\001mt\312\321\005\203\276\004B\257\305\001B\004C\266\305\001QC\253""\305\005\342$\231\211\004c\322\305\001c\220\276\005]o\340\305\001o\004z\347\305\001z\246\211\005\335D\211\240\001D\005E\220\240\001E\005{F\005\236\333\n7\220\047\230\306\341\001s[\\\324\210\\\337\234\047U\320U\310\337\003\377e\320ep\320pu\320\017u{\320{\213\326\003\214\316\004\321\273\013\344\330\006\037\360\000\000a\002\332\244\004\343\204\004\220\257\004\032\334\204\013J\361\221\017\\]\323\212\\\300\322$\312\250\014\377q\320qv\320v|\320\001|\352\322\003\354\332\004\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004H\210\261\004\236\312\004\322\326\004K\303\250\013\265\345\001\\\274\307\003\310\236\342\004\226\327\004\256\224\0072\304\205Z\376\324\001\177\270\037o\310_\320\\\257\323\001\350\277\031\351\252\036\000\2333\333\326\004\314\244\004\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\350\264\230\013\207\206\004\221\305\004I\313\314\001I\004T\256\322\314\001T\004_\331\314\001_\214\247\005m\356\347\314\001m\004n\356\314\001n\004o8\335\314\004\212\326\004\263\300\003]^\360\306\215[\363\324\004\217\020\320\020!\313\240\005\310\255\013\214\251\036r\037\320rw\320w\277\333\006\350\347\004\247\331\013\036\260\326\006\360\000\000c\271\333\014\201\216 \357\210\004z\347\251\004t\365\333\001t\003u\003\261\321\n\342\321\274\003]\336\314\003\323\275\007\334\200_\016\270n\003\310A\262\253.\2403\335\333\004\200\277\004\274\321\013\377\214\007\017\000\000@\003\375\257\004\312\321\004\303\321\004\360\335\004\275h\226\336\001h\003i\003\316\323\016]\344\216\343\003\302\223\007.\367\214Z\323\331\001\017\270\177\003\310a\225\307\031\252\2034\211\327\004\233\340\004\350\237\013\330\272\013t\314\314\004\230\245\004e\263\340\001e\003k\272\340\001\201k\355\323\014\302\215\004\310\256\004\356\237\023\313\332\004\322\307\003^\371_\343\226\\\204\2563s\320sx\320\301x\270\273\006\364\356\004\272\340\004\302\331\004\266\224\007\000\000\003d\002\240\326\013\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010\363_`\342\230\\\263\2473t\320ty\003\320y\334\251\n\225""\346\004\276\333\004\263\352\004\347\305\004\342\212\013\014\272\264\004\245\227\022N\003\214\317\016\200 \346\204[\374\245K\240\327\200A\352\270\022\276\332\013\225\323\004\213\224\004D\317\332\001D\273\004O\326\332\001O\004Z\335\332\001Z\273\004j\344\332\001j\004p\353\332\001p\273\004q\362\332\001q\004r\321\246\025a\302\213\242\002,\245\226Z\243\315\026\360\365\006\265\315\017[\320\357X[\320[\212\353\003k\320k\007v\320v\371\361\003\365\365\004\377\361\004\251\363\004\243\357\004(\307\351\013\273\347\004\340\217\013N\330\351\001N\332\273\005\336\331\004\350\316\351\013\260\251\004\316\351\004\177\211\352\001\177\003@\236\271\335\001@\004A\004\232\316\013\374\347\003w9x\316\245\036\265\264\014\025\240g\375\363\001\234\310\017~\362\245\005e\320eo\320o\330\323\001\000\252\370\023\265\240K\236\334\004\202\352\004\357\337\004\333\330\004\245\334\013\254\315\004\340\305\251\013\243\354\004\254\334\004\245\334\004\243\215\006\360\000\000\267i\003j\224\241\017|}\263\372\n\013\234\301\372\005\210\246\027\026\240u\260\372\001\324\312\r4\377\300x\310z\320Y\\\320/\\d\320d\337\247\003t\2365\303\322\001qA\312\325\001\251\327\010\350r\\\320\\\241\364\003?l\320lw\320w\363\372\003\272\361\004\000\373\253\013\270\354\004\274\351\022\212\333\004\270\354\013\263\250\013\337\300\004\212\333\004j\333\217\004n\377\356\001n\272\256\005p\003\215\323\016\177\360\004\000A\002B\002\317\200p\3376\260b\270\001\264+\320\021\377#\2402\240T\250\031\260\377+\270T\300\026\300q\310\377\t\320Q\\\320\\`\320\031`\232\341\003\271\371\001\320{\211\361\003\322\254\013\365\311\013\000\267\365\004\364\274\004\235\361\004\375\347\004\226\361\004\360\344\004\302\231\006\217\363\001@\366\344\005\237\341\004\360\344\004\235\361\004\323\224\006\376\377\004+\320\304\001\334\236\372\002\301 C\002D\320\200q8\270\371\002\325\372\001\256\334\t\320\021%\240R\377\240t\2509\260K\270t\377\3006\310\021\310)\320S?^\320^b\320b\317\376\003\354\357\006\000\277\366\004\370\367\004\376\377\004\243\347\013\266\314\022\341\301""\004\340\224\013\263\246\013`\336\363\004\271\263\004\376d\215\227\006\244\350\001\003v\204\204\005\271-\276\375\001\300%D\002E\230\203q9\363\270\022\206\371\001\272+&\240b\250\177\004\250I\260[\300\004\346\300\001\377\3109\320T_\320_c\003\320c\352\377\003\326\357\006\344\351\004\214\364\004\227\361\004\373\373\004\000\327\342\004\206\355\013\220\312\004\246\366\004\310\263\013\346\255\004\330\213\004\204\225\013\316\355\250\031\320\026.\232\371\001\210\204\005E\002\275F\340\205q:\270\"\270\207\211\014\320\377\021\047\240r\250\024\250Y\377\260k\300\024\300V\3101\377\310I\320U`\320`d\377\320dj\320jk\320kx\246\352\006\276\304\004\345\261\007\000\000J\002\276\304\013\370\303\314\022\333\366\004\216\266\006\360\000\000B\003h\231\216\004\202\313\004\237\345\004f\215\371\001f\003\376\250\004\224\246\345\004\317\354\004x\224\211\005/\302\366\001\320\206\005z\005\001\314\256\007(\277\250\034\311\215O\224\3135\330\243\023\231\260\004\000\342\270\004\223\265\013\247\362\004\204\326\004\366\325\013\306\315\004\300\373\004\321\311\004]j\330\373\001j\003q\337\373\001q\222\357\005\370\276\373\006\272\373\003\257\370\007\360\006\000\005\017\373\320\016\361\363\001q\330\004\007\200\377x\210s\220!\330\010\t\377\330\004\t\210\021\330\004\022\177\320\022\047\240q\250\004\213\375\001\267\025\220Q\307\204\002\200\001\036\024\017\273\210q0\004\020\320\020\316\375\001a\276\267\376\004\360\n\000\005\0269\002\320\377.@\300\001\300\027\310\001\356\313\306\001\020\220\001\371\345\001\005\210V\377\2201\220E\230\021\330\010\376\220\253\001\001\230\026\230q\240\005\317\240W\250A\244\320\001q\002-\320\277->\270a\270q@\r/\377\320/B\300!\3001\300\365A\336\371\001Q?\014\016\210g\220\377Q\220f\230A\230U\240\227\047\250\021\357\303\001\025{\010\324\377\005\360\317\014\000\005\020\267\001\215\000\220\031\303\230!\226\337\003\t\001\370\377\003\234\347\002\210q\373\320\020\306\344\002\340\004\022\220)\317\2301\230A\020\004\276\003\016\220\277a\330\010\020\220\013\024\002\010\377\013\2104\210z\230\021""\230\377\047\240\021\330\014\024\220A\377\330\010\014\210G\2201\320\377\024$\240L\260\001\340\004\277\r\210Y\220a\220\353\"q\272\025\004\220K\002\t\220\021!\010G\277\2506\260\021\260!\217%\035\177\240g\250V\2601\260L\000\336\244\003&\240\001\240\262 \013\210\3675\220\t\341\373\002\014\020\220\002\377\220%\220s\230%\230q\357\240\001\240\024\352\213\0027\260\"\357\260G\2701\343\345\0021\340\004\347\016\210i\225\325\003\330@,\250D\377\260\t\270\021\320:L\310\327C\310q\304\n\n\202a\013\210\3777\220#\220Z\230t\240\3471\330\014\374@\244\005I\230R\373\230q\303\001W\220A\220T?\230\025\230a\230q\337\374\001\013\001}Q\220%\003\2202\220U\313 \3771\330\004\024\220D\230\005\343\230Q\323\351\003\316\376\002\360!\022\220\037\377\240\001\320!3\2601\320\3174D\300A\333\271\001\336b(\250\262\240 \005\313!\322\001$\230\327 \021\372\223B4\237\352\001\030\230\t\240\021\367\240$\240\355 \032\230+\240\367Q\240d\213\366\002\010\026\220cw\230\021\230)\002\032\230#j\000\227d\240!\315\352\001s\316@6\000\200\375\001n\002\320\021*\250!\320\377+=\270Q\320>N\310\177e\320ST\320TU\222\346\004\3772\260!\340\004\013\2109\374\317\002\230b4\210q\220\003\220\3571\220G\230\365\337\002\007\200w\373\210c\236A\017\210t\2208\376\201`H\240A\330\t\021\220\315\023\336A\017\210\217 \261\002\001\330\377\010\030\230\013\2401\240D\357\250\010\260\001p\006+\2501\377\320,>\270a\320?O;\310us\000\320UV\213\347\004\377\000\236b\024H\230F\240\222\000s\003\025\373\220d\326@x\240x\250y\271\270a\000\201\0011\220C\344\330\001\3409\004q\005\304\311\001A\230T\331\353\001\351\006\367-\250Q\362\205\002\320AQ\320\353QV\202\376\002X\205\350\0045\260Q\256\334\024J\230f\203\366\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007n\203H\020\220\004\346\204\001\020\220\255F\375\031\315\206\003\021\200\001\360\020\000\377\005\010\200u\210B\210a\373\330\010\242\207\002\013\2101\210A\377\330\014\020\220\005\220_\240\265F\220A<\206\353\001\330\014\330!2\357\220Q\200\001\200\231n\230?\250\000\210\365\016\223\2764""\223\367\004\245\374\004\257\343\004\344\372\004\355\224\013\274\276\031\005T\365\372\001T\361\372\005\301\234\006\350\341\r\247\233p\336\347\002\357\016\320\016\037\215\362\007\030\230\022\377\2304\230y\250\013\2604\200\270\323\007\306\263\037\200\375\004\236\355\022\232\342\013\302\352\006\311\375\001\002\005D\221\375\001D\303\252\005\301\333\004\267\316\023\236\322\007\322\277^\0011\330\340.\233\300\023\344\362\004\252\300\013\370\263\004\332\354\004\323\354\004\000\327\335\004\355\273\006\271\337\r\307\301\\\326\224\002\373K\276\2604\315\375\004`\356\260\013\233\331\004\313\335\004\304\335\004\231\233\013\177\002\361\332\r\002\367\250^\001\337\344\r\344\316\036\274\251\027\331\353\004\317\251\013\232\350\004\010\355\306\004\225\311\004\266\260\013A\276\251\016\344\351\025\207\244\016\366\312\027\000\273\334\001\365\243\025\243\356\002\345\206\013\323\200!\273\241\030\323\246\004\246\3166b\237\370\0041\223\213\025\243\357\003\206\357+\320\033\264\2001\007j\320j\230\326\006\230\372\004\354\307\004\260\250\004\345\307\013\001a\202\326\016\264\244p\240\241\002\265\212\013\276\307\022\234\277\014\314\316\020\200\367\376\004\203\374\004\273\357\013\231\257\013\201\343\004\245\302\013\331\324\004S.\233\374\001S\003Y\242\374\001Y\352\214\007\263\210\032\340\353\246c\362\233\002\366\377\n\227\334\022\243\332\tt\320t\200\305\272\020\254\376\004\313\232\031\221\353\004\373\326\013\264\351\004\347\316\004W6\304\376\001W\003\316\304\013_\003\321\263\r\207\251p\034\373\206%\211\325\tu\320u\334\265\020\321\334\004\251\205\022h\255\355\013\330\351\013\262\323\004Q\246\364\001Q\003\246\314\004p\361\251\004\357\277\006\200\335\r\261\253p1\260\021\223\254\014\377\035\230b\240\004\240I\250\367[\270\004\245\232\0029\310K\320AW\220\261\014\202\266\024\272\327\004\273\366\004\235\306\013j\221\375\001\201j\333\347\005\202\341\013\210\352\004\213\356\004\362\205\004\220\302\013a\226\217\254\005&\240\303\236\006&\300\313\010\352\255e!4\337\255n\207\352\004x\321\377\001x\002\230\330\004""\307\316\004\220\336\313\004\271\277\004\302\304\004\300\277\004b\266\256\020\300\200o3\373\2601\363\260\014\037\240\002\240$\377\240i\250{\270$\270f\377\300A\300Y\310k\320Y\377]\320]c\320cd\320\177dm\320mx\320x\344\265\030\000\253\277\004\261\263\004\205\304\013\342\343\013\373\260\013\362\320\004\212\206\004\206\266\004~\242&\360\000\000b\003c\363\260\005g(\250\001\250\243\005\362\202o4\260\215\251\016\377!\240\022\2404\240y\260\377\013\2704\270v\300Q\300\377i\310{\320Z^\320^\377d\320de\320en\320\017ny\320y\256\315\003\327\356\013\322\375\004\260\340\004\000\222\350\004\245\277\013\321\336\013\266\226\013\274\313\004\256\311\004\231\350\004\215\363\004\334\365\342\006\235\270\004)\250\021\271\200w5\260\375Q\225\263\r\"\240\"\240D\250\377\t\260\033\270D\300\006\300\377a\300y\320P[\320[\377_\320_e\320ef\320\177fo\320oz\320z\343\315\003\300\273\350\013\311\365\004\337\272\004\311\365\004\326\277\013\203\341\006\360\000\207\000o\002\331\325\013\315\352\004\275\217\004\226\345\022e\342\332\265\005*\367\353\001\230\263\003\331\207o6\260a\370\346\264p\213\370\004\314\366\006\360\000\000}\002`\321\347\004\336\237\004\226\270\004\321\347\004\342\306\004f\003\300\265\017\356\215\212o7\260q\375\267\r$\240B\377\240d\250)\260;\270d\377\300&\310\001\310\031\320R\377]\320]a\320ag\320\377gh\320hq\320q|\003\320|\250\357\003\337\345\004\212\370\004\337\370\004\303\272\004\355\345\004\000\307\277\013\270\372\004\255\370\004\206\270\013\352\341\004\267\374\004\302\370\004\244&?\360\000\000f\003g\302\272\005\237\241\002\002\360\202u8\257\272\017\226\267d\242\344\004\276\272\004\314\374\004\215\302\004\200\350\376\004\364\322\004\355\262\004\360\315\006\361\301\004\353\267\010\371\216o9\r\270\212\222\014\320\021\206\267d\312\354\004\225\320\022\354\226\004\010\216\320\031\331\267\n\261\221o:\333\274\017\366\266d\223\304\031\247\344\004\246\223\304\031\320\026\313\267\010\351\223o;\313\274\017(\377\250\002\250$\250i\260{\377\300$\300f\310A\310Y\377\320Va\320ae\320e\006\266\332\001\320l""\243\361\003\375\370\004\320\377\004\233\316\004\260\361\004\000\207\367\013\211\325\004\373\226\013\276\251\013\222\272\013\266\231\004\202\236\004\351\363\004\304\245\344\004\325\267\004k\246\304\005\220\243\002\272\215\017\r\210\047T\220\026\340\263\003\364\310\t\021\323\357\026\325\255 \377Q\300l\320RS\320S\277b\320bm\320m\336\352\004\320\303{|\361\254\032[+\361\353\001\237\252 a\300\375|\263\263\002c\320cn\320n\216\265\341\004\320|}\336\251\032Z-\275\255\"q\373\310\014\304\263\002d\320do\320\035o\300\340\004\320}~\354\372\003\341\254\024\344\200-\370\201\303\002\336\256\013\222\337\017\001\310\034\320U\347V\320V\312\343\003\315\334\004\320~\177p\336\273\016\262\233\t\356\201-\310\253\"\021\310,\336\264\002\277f\320fq\320q\277\326\tA\314\214\253\033\374\202-2\260\235\263\016\322\320\017Q\310\377l\320Z[\320[j\320oju\320u\232\227\021E\002\350\312\017\360\351\2009\366\232\002\215\262\013\352\232\017a\310|\320\273[\\\210\343\002v\320v\375\225\021F`\217\005\377\231\024\252\205-\333\231\002\245\263\n\320\021\317\231\017\377q\320P\\\320\\]\320\031]\215\316\003\273\313\021G\002\336\230\033d2\231\312\013\316z\033t\320tm(\352\373\006\r\210\356\224\323\n7\240!\213\372\tU\260(\243\270*\310\310\001\362\322\027\301\263\030%\350\265\007X\233\320X\302\256\001\320_\315\313\003\333\323\001\360\217\000\000w\001\346\373\004\204\372\004\325\303\022`\341\002\254\263\016\315\305\t\262\014\206\377\0226\310\021\376\214\2002$\260f\270A\270Y\177\300k\320QW\320W\223\374\001;\320^\305\226\003t\320t\225\377\003\256\375\004\004\227\344\004\233\267\022_\254\022\255\376E\224\255\032\367((\226\376\230\272\0325\270\006\270a\270y\017\310\013\320S\200\203@\350\271\010\233\371\t\337\215-\374\354\312\002\333\273\t\022\320\022#\2401\363\240H\240\327\001\347\300\001B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310!\310<\320\377WX\320Xg\320gr\303\320r\271\340\r\304\333\004\367\344\004\345\316\022j\002\360\234\342\n\246\304\003\207\2009\344\252\003\320\021\"\240w!\2408\224\324\001\024\320\024\227""\311\001\355h\220\317\001\021\220\345\252\017A\310\\\007\320YZ\304\365\002\323\207\024\373\322\013\254\320\004\300\374\004X\264\234\006\276\334\004\261\252\004=\230\204\304\0012\313\251l\370\313\301\003\223\355\t\237\355\t\017\320\017 \240\315\001\246\304\001\330\004\251\355\013\340\301\022T\320\363TZ\306\215\002\347\220\003r\320rx\377\320xy\360\000\000z\001\000\243\337\004\275\243\004\263\364\004\252\337\004\210\264\004\244\346\013\325\236\013\376\361\004P\253\346\004\340\301\022\230\320\004\315\315\004z\201\375\001z\247\337\007\277\360\000\000A\004L\256\372\001L\253\004W\265\372\001W\245\360\005e\303\372\001e\253\004f\312\372\001f\241\342\005|\330\372\001|\273\004F\260\367\001F\005L\267\367\001L{\005M\276\367\001M\005N\005\321\302\n\377<\220|\240;\250a\200\376\275\313\002A\330\014\023\2206\2309\021\000\004\003\0107\230!\030\001\000\004\3478\2301\003\010\025\0045\230\001\3564\010;\230aI\001:\230Q\340P\001*\004X\000e\001\234\313\002\330\014\r\377\33046\260d\270!\270w5\300\001|\001\017\210q\000\0043\220\007\275\313\001\016\003t\220V\000\003\005\372\217\311\001A&\003u\220A\220S\375\2302\004u\220B\220d\230\375!@\003w\220a\220t\230\2678\2401P\002\320\017\244\317\001d?\250&\260\001\260\021\343\001\277\307\004\327#\2401\261\315\001N\306\314\001\330\014\377\033\2305\240\014\250A\250\237[\270\001\270\021\237\307\001\331\315\001.\377\250\001\330\020\024\220H\230\277A\330\024,\250G\225\315\001\340\177\020(\250\007\250q\260\231\311\002\375qB\n4\320\047B\300!\357\360\006\000\t\347\316\001\010\014\320\357\014\034\230A\321\314\001U\230-\367\240q\250\232 \017\210\177\230\177g\240U\250!\330\024\212\321\001\377x\240q\330\020\031\230\026\373\230w\305\342\001\250a\330\021 \363\240\007\231\340\002\021\013y\250\002\250M\047\242\316\002\014\020\224#\352\316\001M\221\315\001\376\370\316\001D\320\030.\250a\250\363q\330\026\005\177\001\023\220$\220\377l\240\"\240A\330\010\013\237\210:\220Q\220\237\304\001\332@5?\230\010\240\005\240Q\377\310\003\232@\346\377\311\002\020\027\255 \354\317\001""\014\021\220\375\030\335\314\003\230v\240Q\340\014\377\020\220\003\220:\230Y\240\375a\257\341\002\020\025\220X\230Q\373\230j\371\005\r\320\r\036\230\375a\313%H\230K\240q\250\375\013\270\317\003\013\2106\220\027\320\371\030\274\252\001\231\320\002\r\023\2207\320\251\032\376\254\001\251\320\001\340\215\004g\232`\013\217\022\220!\330\033\001\335a\363\320\002\330\377\020\021\330\024 \240\005\240\377[\260\004\260A\260V\270\3751\314\312\002\200A\330*A\320\377AX\320XY\330\010!\333\240\035\356\002\010\035\335`\010\"\273\240,\010\003\032\230,\251\000x\377\250q\330\010\036\230o\250\377Q\250h\260a\330\010\034\377\230G\2405\320(<\270\367A\270[\312\230\002\330\010\"\320\377\"3\2601\260H\270A\256\254A*\250\021\016\0028\371A\270\337(\300)\3106\241\217\002Y\320\357Ya\320a\266\260\001\360\000\000\003y\001\356\337\004\331\371\004\327\332\013\313\325\004\315\262\004\351\360\004\330\271\372\004\270\374\004\311\307\004E\003\217A8\220\3773\220a\330\014\037\230q\377\320 :\270)\300<\310\377y\320XZ\320Za\320\375a\254\261\001\330\010%\240^\260\3778\2701\270A\330\010\016\277\210k\230\027\240\001\003\003\021\376\332\314\001x\220|\2402\240X\177\250Q\200A\330+,\333\2001O\250\017\260q\337\316\001\373\013%\254a\376\225$A\260X\270Y\300f\377\310F\320RT\320T\\\037\320\\h\320h\242\221\006\266\344\013\311\366\004\330\272\351\004\345\250\013\326\327\004i\002\346\r5\260\367Y\270l\234\340\001U\320U\\\373\320\\\224\303\002\010 \240\t\250\231\030\214\324\003\242\200Q\320(\336B\360M&\353\240Q\216b4\354`Q\260h\377\270i\300v\310V\320S\377U\320U]\320]i\320\001i\332\224\006\252\353\013\342\375\004\210\300\004\241\341\013\272\273\006\335M\3376\260i\270|\313\337\001V\320\377V]\320]_\320_`\316\313\204\001\032\2508\362\325\003\241\200S9\270\327\021\270!\347\204\r\047\336\324\001\"\320\377\"5\260Q\260a\260x\377\270y\310\006\310f\320T?V\320V^\320^\345\303\t\357\263\013\340\230\370\004\244\350\004\320\340\013\204\273\006\324\204\r7\260y\373\300\014\372\336\001W\320W^\320\377^`\320`a\330\010\"\317\240+\250Xy\001\216""\204S\320(\347:\270!\272\207\001\340\206\013(\240q\372\374\206\0026\362\000q\270\010\300\t\377\310\026\310v\320UW\320\377W_\320_k\320kw\007\320wx\353\206\002\262\263\013\206\340\004\321\354\004\377\337\013\372\233\352\004l\324\204\0168\270\t\300\034~\334\245\001X\320X_\320_\206\360\001\177\330\010#\240<\250x\371\205\003\372\217\204S;\262\207\003!\320!2\260\315!\302\207\001\330\010\002\007\235\214\001)\250\365\001\377\210\0027\201\207\001\270\030\300\031\377\310&\320PV\320VX\377\320X`\320`l\320l\000\360\220\006\333\351\013\372\305\004\343\267\013\313\344\004\237\354\004\344\372\004\333\351\004\270\275\321\004\342\351\004\241\370\007\010\013\210\366\210\t9\377\270\031\300,\310i\320W\277Y\320Y`\320`\260\355\001\330?\010$\240M\260\030\262\204\003\360\210\017\377y\230\014\240B\240h\250\377i\260|\3002\300X\310\006\320\2107\320(\250$\206\213\013\335\200C\215\251\013\276\274\006\221\330\277\200>\300\212?\213\215\003Q\333\214.\346\366\002\000\007\000{\001\351\264\013\202\330\004\323\343\004\256\372\004\263\360\004\374\203\274\006\366\213\201\320(=\270Q\270\315a\364\216\r+\250\232\211\003\245\211\002\2708\353\3009\365\214\001X\217\216\002b\320b?n\320nz\320z\267\367\003\246\355\013\300\260\376\004\356\357\004\266\367\004\324\302\004\307\273\006\342\216\r;\270\3779\300L\320PY\320Y\277[\320[b\320b\354\276\001\330?\010&\240o\260X\226\003\247\214S\300\362\004\327\217\001\363\220\006\271\200<\340\366\004\275\2008\340\010\337$\240F\250*\360\343\001\014\210\177E\220\025\220a\220z\321\344\001\207\033\2301\227\340\001\264\200`\362\346\003\205\223\014,\363\2501\242\223\002\276\213\002\270H\300I\374\216\217\001\253Cc\320co\320o\007{\320{\225\302\003\356\356\013\340\333\004\235\311\004\331\333\004\370\312\331\004\271\235\006\362\222\r<\270I\300\\\377\320QZ\320Z\\\320\\\367c\320c\310\300\001\330\010\047\320\377\0477\260x\270q\300\0014\310\214U\246\351\001\021\376\224\r.\250\210\221\003\254\225\001\337Q\270h\300i\232\215\001[\320\377[]\320]e\320eq\037\320q}\320}\200\366\003\207\263\013\271""\375\004p\350\360\004\247\237\013\216\322\006\354\224\r>\270i\350\260\001\356\373\222\003e\320e\332\275\001\330\010)\237\320);\2708\360\351\002\251\224R\320\035(\363\004$\240N\232\215\005\002\006\276\232\001\000\305\200<\374\367\004\322\355\004\320\303\004\334\333\004\310\335\004\366\374\004\267\310\004\354\244\360\004\317\317\004R\003\203\201!\340\010#\317\2406\250\031\272\352\001\254\205\n\032\230\341!\310\347\002\000\034\306<\331\215\005l\270,?\300b\310\010\320P\246\2159\366\351\003f\347\231\0142\260\360\231\003\200\204\002\300(\247\370\001\356\333\324\003a\320a\361\225\001\360\000\000\003v\001\344\225\013\275\306\004\351\372\004\316\377\013\256\340\004\212\363\004\234\326\324\006\335\231\rB\300)\276\246\001\340\217\003i\373\320i\357\270\001\330\010-\320-\277C\3008\3101\310\230\231T\3203(H\214\360\002\352\233\0146\260\363\227\003\227\354\002\363\300h\376\220\001\253\315\003e\320em\003\320m\366\243\003\321\303\013\243\342\013\235\372\004\375\321\004\226\372\004\270\276\340\004\247\377\006\340\233\rF\300i\231\262\001d\377\320df\320fm\320m\377o\320op\330\0101\320O1K\3108\250\354\004\324\233\035>\275\215\001\234\323\235/\361\233\002\014\300A\361\235\r\325\233 |\203\320|\320\312\003\225\367\013\312\364\004\245\374\004\334\205\022q\342\253\233M@\215\212\001\316\2371\334\237\001\034\300Q\340\314\2330\262\200I\303\233<\305\2006\222\230\001L\310\001\000\355\241\r\350\227!\342\311\003\213\300\004\316\342\004\375\320\004\363\354\004\377\336\004\330\202\232\004\377\336\004\226\373\004t\002\241\225LB\300\341!\273\2416\310\2043\247\215I\272\241\301\267\013\360\000\000x\001\205\354\004\256\234\013\000\240\372\004\273\376\004\245\253\004\303\351\004\302\365\004\226\347\004\253\342\006\207\273E\010\215$\315\2116\315\273\001+\275\240\013\257\273-\332\337\n\323\275\004\000\322\360\004\245\356\004\205\363\004\306\263\004\251\365\004\324\376\004\216\342\004\376\346\004\260\342\367\004\376\346\004\352\353\004\205\347\004W\003\337\220N\310\372\254\311\001.\225\221\013 \240\r\250Q\313\250a\320\205\001X\313\277\002\354\303&Z\300\177q\330\010\047\240~\260\370\277\001\255a\204\263\001n\260\372\301\001Q\372\303\037j\377\320jo\320ou\320u\007w\320w\207\354\003\373\317\004\220\264\004\216\300\004\307\365\004\240\206\363\013\220\304\013\2462\271\351\013\225\314\004w\232\377\001w\273\003y\241\377\001y\003z\353\207Ff\377\250G\260?\300,\310b|\206\274\002\236\326\001\200A\33001\342\306\010\374\255\2013\301\302/f\320fk\320k?q\320qs\320s\254\370\003\335\262\004@\256\377\004\210\375\004\372\374\013\230\321\004\310\372\004\217\354\004E\243\377\001\333E\003\201\375\004H\003\306\302EV\250\3077\260!\331\200C\235\301\004\233\234\007\330\010w%\320%\231\301\001x\270q\312\314\001~\223\301\032h\320hm\320m\245 \007u\320u\360\365\003\243\347\004\320\236\013\301\372\013\362\360\004\200\216\370\004\360\241\004\246\363\004\301\356\004\321\351\004\354\374\004\235\234\022t\000\270\311\016\274\301/\301\277\003\242\203U\275\265\002\277\313+\270\206\026\236\213\013\020\252\370\013\322\356\004\366\365\004\355\236\022L\255\313F\260\203H\326\2750\377k\320kp\320pv\320\001v""\235\306\003\236\354\004\211\375\004\203\326\013\375\277\004\364\365\004\276\356\004\000\346\365\004\361\303$\357\2756\323\200O\224\206\t\210\251\t\317\243\013\250\300\0334\366\200D\237\270\022[\256\330\001[\003\327\372\004\226\213\022\245C\274\330\001C\277\330\005\325\243\004^\321\330\001^{\004`\330\330\001`\004a\004\247\233F\014\276\213\016\315\265\001\320y\276\302\003\302\316\004\303\263\006\346\213\001\001F\310\231\001\320\323\006\262\2137\262\262-\316\213\035\324\303\004\303\373\004>\342\313\006\360\000\000l\002\306\273\004\356\246\004\272\340\311\004P\271\333\001P\003R\300\333\001R\213\003S\243\213OG\255\220\001\355\200:\324\2662e\377\320ej\320jp\320p\017r\320rz\212\241\002\354\375\004\211\336\004\330\200Np\353\3235\225\216\006\347\200?\276\320\003<\300q\244\330\r\370\331\215:\201\216\013\236\310\006\360\000\000o\002\324\346\255\004\206\261\004M\205\340\001M\302`\360\000\027\000S\003\215\261\004V\267\215@\275\330\003\240\047\363\320G\216\323\003\223\203AL\320PQ`\266\273*\263\203$\262\225\013\327\275\006\236\343\001\002H\256\342\001\303H\003\324\370\004\220\373\004\266\263\004\300\225\004a\003\354\274\330E\367\222\00523\200\335\010\"\240-\006\223\340\003\035\230\326\227(\351\2242\263\222=\210\373\004\343\265\004\032\375\304\004J\323\224H9\260\242\343\001\334\200@\351\3220\207i\320i\270\217h\211\325/\362\205\005\236#3\3414\303\341\010\215\243\010\231\234(\253\333/g\320gx\241\234\023\225\224N\300\3335V\250:\260\332\341\001\210\233!\320\205\006\327\205\010Y\267\335\002\323\343\"\325\335$\007\356\373\333\007h\320h\200\200\234W\250I\364\327\200E\327\331$\047\207\346\010j\320jq\037\320qw\320w\227\356\003\217\342\004\226\356\004\000\210\356\004\230\340\004\212\326\004\201\322\004\217\334\013\226\236\004\217\356\004\343\214\004sN\003\325\331E\233&I\320I\357\373\001D\253\350\010\327\334\001\021\265\316\001\376\211*\356\245\003[\312\214\020\016\255\342\032g\320g\231\231\027\240\372\004\266\360\004\317\223\013D\314\265\006\276\250\001\002\227\301\004\243\320\004\325\245""\004\\\244\360\001\333\\\003\236\301\004_\003\257\342EV\250\373;\260\220\360\0013Q\320Qt\237\360\000\000u\001\364\337\004\200\260\004Z\352\234\361\001Z\245\264\005]\225\361\001]\004^\371\004\353\242>\237\310\002\320HY\320Y\037o\360\000\000p\367\317\005\205\373\004\311\332\004\366\267\214\004B\003\235\310+i\320in\377\320nt\320tv\320v\000\361\377\003\326\276\004\343\373\004\243\351\004\263\341\004\276\226\004\361\303\004\210\266\004\255O\376\362\001O\004\337\362\022r\232\363\001r\273\004@\360\362\001@\005I\367\362\001I\273\005P\376\362\001P\005V\205\363\001V{\005X\214\363\001X\005Y\005\270\337E\006\377\243\00545\311\346\001\370\217\004\322\257\010\373\210(\362\351$qw\230\350\007\333\212g\374\3515W\250J\301\204\002/5J\310!\202\250B\036\366\226\017\237\354\032\230\260\250\026\250\340\013\321\232\20778\333\252\021\315\224\nW\000\344\272\002\317\362 \260\3600\320\233\017\375\352\004\200\306\004\221\375\004\371\372\004\370\373\354\004\335\336\004\344\317\006\360\000\000t\002>\250\262\006\360\000\000@\003\353\302\013\314\313\004\364\371\302\004\362\372\004g\322\226H5\260\t\270\000\347\370\001\202\201I\207\3611\266\255\017\274\365\004\274\322\004\274\365\004\317\353\004\000\323\355\004\252\363\004\331\262\004\303\365\004\272\375\004\261\227\004\247\335\004\235\253\004\255_\250\375\001_\003\233\316\004g\266\375\001g\003\003h\240\255H\362\200Z\354\255\t\233\313\013\253\206,\207\201Q\272\200\310 K\374\377\001K\004Q\374\377\001Q\346\365\320\005T\004\265\364?\223\256\005E\260\031\373\270/\236\323\001W\320W]\320\357]b\320b\257\336\001\200A\330\374\220\204K\220\2302l\320lr\320r\007t\320t\204\347\003\213\355\004\223\330\004\252\363\004\222\355\004\320\255\361\004\221\367\004\226\340\006\341\340\001\002\310\217\006\360\000G\000B\003\270\246\004\236\306\004\365\265\013h\374\323\001\007h\003i\236\221H\327\206S\310\365/\270\263\017\342\355\004\000\356\342\004\365\363\004\351\355\004\351\375\004\351\367\004\226\304\004\362\340\004\351\375\004\240\203\321\004\315\345\004\253\223\004\312""\263\004\237\207\004i\313\326\001i\343\003j\205\244H\246\211S\313\366\004$\320$\0015\236\273\005\227\266\013\264\366\033\351\223\017\256\354\004\303\345\004\266\362\004\000\265\354\004\305\360\004\316\370\004\370\226\013\330\323\004\321\366\004\334\253\004\356\256\013\232\265\320\031I\247\331\001I\004\301\224\004\256\207\004R\346\217\323Ff\250\252\207\001\374\322\002T\320T\377Z\320Z_\320_h\320\003hi\335\206N\225\266B\303\344\004\337\320\004\302\363\004\312\344\004\220\271\357\004\253\367\004\355\311\006\224\374\001\002\316\371\004\325\273\004S\326\217\334\001S\003\203\232\004c\235\334\001c\003\004\322\204\004\250\334\004l\262\266H\206\217S\301\266F\214\360\004\242\326\004\000\206\362\004\223\360\004\246\351\004\207\370\004\261\252\013\242\276\004\374\336\004\272\303\004m]\352\336\001]\003\224\326\022m\003\214\366FCV\250\370\200Z\340\266W\231\201Q\214\212\004o\345\341\001So\003\235\334\004\240\315\004D\345\341\001D\344\217\005\335W\363\341\001W\004Y\372\341\001Y\004\335c\201\342\001c\004l\210\342\001l\004]x\217\342\001x\004~\226\342\001~\214\235\005\003A\005\222\267H\202\220\022\240\303\n\227\365\004\276\330\004\222\375\013\373_\002\275\220\001M\320Mb\320\373bc\244\230L\014\300K\310q\300\346\337%\335\355\032\314\230@\231\312\004\321\205\013\336\364\006\360\000G\000R\003\336\307\004\205\216\004\204\321\022G\336\345\001\241G\200\335\005\350\242\004\353D\206\241\004o\201\346\001o\272\361ED\202\241\001D\005J\211\241\001J{\005L\220\241\001L\005M\005\276\261?\374\371\223\032\320\202,N\320Ne\320eO~\320~\177\253\234G\241\232\003\034\312\373\001~\276\311\001\330\010!\320!2\333\370\005\300\362\226k\333\370\004\321\306\004\253\246\004\240\277\004\354\234\006\360\000\327\000g\003\206\325\004~\331\351\001~\003t\337\206\004\365\340\004L\331\351\001L\004V\340\351\001uV\307\351\005k\356\351\001k\004q\365\351\001\365q\316\351\005t\246\227L)\300<\310\235r\361\253\002\\\320\\\216\376\001\360\227\001Q\230\377\350\002\224\277\017\355\2373\320(\305\334\006\334\354\t#\377\240>\260\021\260(""\270!\374\207\374\001\273\334\033m\320mr\320r\007x\320x\213\275\003\241\344\004\234\361\004\257\347\004\222\376\004\340\243\361\004\344\252\004\271\341\004\333\351\004\230\314\006\360\000\000iH\346\272\005\300\321\004b\360\354\001b\003\364\354\004\rx\376\354\001x\003\245D\364\354\004\232\344\013\263\302$\374\206\3351\212\233\010\320:J\310,\320\377VX\320X^\320^c\377\320cl\320lm\200A\037\3308P\320P\357\222\001\207\205I\266\364\001?M\310\035\320VW\262\252=\315\225\047\340\342\335\004\272\317\004\303\302\006\202\276\002\346\255\006\360\000\000\241_\205\360\005\263\347\004\301\352\004\345\305\004E\227\360\001E\347\004F\004\250\252G\325\243\0059R\320QR\267\375\003\304\204G\237\367\001N\253\345\001Y\220\345\031@\222\230W\254\375\004\364\362\013\300\327\004\204\320\004\207\205\004p\205\363\0015p\375\324\005A\376\362\001A\004\240\214\004\336\230\004\272\202\363\004\\\232\363\001\\\004d\241\363\001d\253\004j\250\363\001j\237\220\005m\253\230L+\376\364\212\001S\320SY\320Y^\377\320^g\320gh\200A\301\330\242D\225\366\027\261\330\006\215\2105\277\323\001>\310\377\036\320We\320es\320\003st\315\350\031\237\323,\332\236\047\223\344\004\264\226\013\240K|\353\360\004\323\350\006\360\000\000}\003\272\244\004\255T\301\366\001T\004\247Db\317\366\001b\272\255En\335\366\001n\004w\344\366\001w\273\004\177\353\366\001\177\004E\345\261\001E;\005G\354\261\001G\005H\303\261\016\323\3237\210\356\244\001\260W\364\312\001\001\204\375\004\343\270\006\361\216M\036\377\300~\320Uc\320cq\377\320qr\330\010\037\320\037\1770\260\001\260\030\270\021\000\t@\014\t\214\372\001\327\247V\364\347\004\346\237\013\224\334\004n\215\372\001\003n\003\250\227\004\266\354\004\317\345\004\346\237\004\305\364\004\273\217\004P\210\206\004\360\317\004\221\372\004\302\217\004u\305\372\001u\220\372\005M}\323\372\001}\004\332D\303\265\004T\333\265\001wT\005Z\342\265\001Z\005\\\351\265\001\357\\\005]\005\241\250K\047\300\034\373\310R\301\343\001Z\320Zc\320ocj\320j\355\324\001\320x\260\267\003|\235\361\004\242\341\006\200A\330?@""\232\261\032\370\312\302\n\266\276\002\253\266\001,\250a\250q\377\330\010\032\230,\240a\240\375x\007\001\036\230o\250Q\250\377h\260a\330\010\034\230G\003\2405\213\256f\366\372\004\363\355\004\310\330\004\375\372\004\366\372\004|\312\370\004\371\313\006\360\000\000V\003\370\211\031\364\217\376\004\312\370\004H\240\376\001H\004I\004~\270\335G5\260\007\260z\300\344\261\001\003?V\226\217\002\373\222\030\310\2017\233\336\001\275\316?\250\251 \000\370\347\004\303\365\022\370\347\004\307\373\004\271\370\004\344\243\004\300\370\004\252\236\004h\221\215\004\304\226\004\261\232\004N\321\373\001N\004\334\211\004\302\304\226\004W\275\373\016\215\336/\275\317\005\201GAB|\300\376\010\210\226\034X\250W\260A\342\204%\376\363\363\001\001\330\010%\240^\260\3371\260H\270A\366\225\"s\320\003sy\353\327\005\251\206\013\364\264\004\373\352\004\255\304\004\240\346\004\000\334\326\004\342\350\004\353\361\004\246\341\004\333\357\004\303\373\004\356\331\004\377\301\004\036\362\264\006\360\000\000h\302\373\005\302\366\004\321\376\004\354\307\231\004\212DO\004\204\364GV\2506\237\260\025\260i\270\331\366\001\254\201VCs\3001\223\374\001\370*1\260\001\347\376\002~\234B\300\030\310\031\320R\216\227\003\277`\320`h\320h\243\307\003}\003\320}\231\351\003\302\346\004\302\376\004\237\351\004\341\353\004\315\257\004\000\310\371\004\332\373\004\361\364\004\371\366\004\350\353\004\254\344\004\333\331\004\372\267\004\200\246\351\004\353\251\006\235\332\001\307\371\005\223\231\022\222\214\004\276\376\017A\373\300\031\327\230\001_\320_a\320\377ah\320hj\320jk\277\330\010,\320,A\335\000\0218\310\277\001\274\367\025\241\201bE\300Q\363\367\001\376\204\n\2753\312\310\001\"\320\"A\360\370\001\300\3678\3109\372\255\002`\320`b\037\320bj\320j\203\205\003\234\354\003\344\356\004\000\241\347\004\265\332\004\204\361\004\320\262\004\373\367\004\213\305\004\322\374\004\364\367\004\240\353\356\004\331\374\004\360\325\004\353\356\004\226\226\013m\316\374\001m)\003\234\217\004\313\374\004B\201\340\001B\375\337\005\225\217""\004\372\366\222\004U\355\337\016C\3009\310L\343\320X\204@\202\216\003\341\233\001\330\010.\377\320.E\300X\310Q\310wa\330\010\215\201zF\300a\270\357\001\356\210\210\n4\2601\216\373\002B\300!\377\3001\300H\310I\320U\367[\320[\274\003k\320kt\003\320t\266\335\003\264\345\004\253\237\004\204\310\004\332\354\004\213\364\004\000\363\337\004\276\357\004\211\373\004\371\361\004\353\370\004\222\364\004\312\326\004\227\216\013P\262\237\004\214\260\004\234\222\013\231\234\013M\226\343\001M\266\273\005\335U\244\343\001U\004V\373\342\016D\300\377I\310\\\320Yb\320b\377d\320dk\320km\320\377mn\330\010/\320/Gx\322\377\001\360\332\002\234\204zG\300q\310\224\213\r\3155\336\213\002\320\"\266\210\002\262`Y\320\357V\\\320\\\275\003l\320l\007u\320u\205\344\n\232\367\013\342\357\004\314\320\004\221\376\004\000\306\362\004\364\270\004\365\352\004\305\355\004\241\301\004\201\374\004\211\343\004\201\365\004\370\215\216 \332\255\004\211\216$E\300Y\310l\376\235\224\002e\320el\320ln\377\320no\330\0100\3200\377I\310\030\320QR\320R\375S\372\204\"\340\010\014\210J\220\277m\2406\250\021\330\010\000M\357\230\024\230Q\005\001J\220i\337\230q\240\004\240\346\215\002\r\210\277O\2309\240F\250\216\245\002\r\377\320\014\036\230b\240\010\250\375\001-\001O\2301\200A\340\277\010\020\220\004\220A\274\375\0014\377\210w\220a\220w\230a\177\330\014\021\220\030\230\021\004\000\377\320\021!\240\021\360\006\000\377\r\022\220\037\240\013\2501\276\026\001\036\230{\250!\037\001\033\357\230K\240q \002\"\240!\376\037\003\030\230\037\250\001\250\024\375\250\376\365\001\r\021\220\005\220V\377\2301\230E\240\025\240d{\250!;\000\020\027\320\027\215\231\001\377\024\260Y\270a\330\020\035\377\230T\240\021\240!\330\020\377\023\2204\220q\320\030(\373\250\003`\000\024\030\230\001\320\357\031+\320+\220c\020\025\220\335\\#\000.\260\001\223\001\025\220\177a\320\027(\250\004\250\304\217\001\376K\0243\2601\260D\270\t\373\300\021W\010\025\220[\240\001\357\240\036\250q<\006\047\240t\363\2501\325\003P\002)\250\033\260\357A\330\014\020\240""\0221\260\021\373\260$\241\216\001\330\020\036\230d\337\240!\2401\330\225\000U\230\367!\230?\326\000?\270$\270wa\270q\017\001X\230Q\210\227\001\372\242\006)\211!\330\010\017\210q\024\347!\234\351\006\035\246A\"\345\311$\345\341*\262\272\001\037\320it\320t\240\373\003\346\230\013\200\366\004\354\343\326\004\237\373\004]\002\226\341EX\250Q\360\260\2003\237\311\002\367\374\r\204\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\230\311\004\370\374\004\340\367\004\303\330\004\272\303\004\323^\002\273\376E\254\20089\206\237\001\"\320\343\"3\202\225\007\346\327\032\275\220\001\320kv\027\320vw\307\327\001\001\241\305\004\366\277\004\360\221\022s_\002\203\327E\223\2028:\270!\312\351*>\225\310\001\320lw\320w\227\364\003\227\354\004\200\331\276\004\275\327\004\201\307\004\314\356\006\202\373\r\315\2305\372\2038;\363\2701\234\330+\347\255\001\320mx\3201x\372\335\003\306\225\013\265\222\022a\002\216\335E\342\2058\367<\270A\201\372\t\330\010&\320\377&7\260q\270\010\300\001\272\344\374\001*\374\213\001\"\320\"\253\377\002\270\237(\300)\3106\351\337\010\350\217\001\320\017ny\320y\364\357\003\263\363\004\273\320\004\233\221\022\330\243\362\004\362\367\004\352\376$:\270\363\263\001y\320\257XZ\320Z\360\223\003d\357\233\0038\343\2701\273\001\347\226\017\275\374\003h\250j\377\270\014\300B\300h\310an\204\2105>\270a\357\376\t\330\010\335\367\007\346\203\377\001,\250\322\223\003\253\377\002\270H\300\367I\310V\344\253\002[\320[c\377\320co\320op\320p\007{\320{\204\315\003\301\223\013\246\312\004\256\374\004\212\372\004Kp\002\336\335\001\002\277\355\004\360\376\022O\321\376\016\367<\270I\327\270\001Z\320Z\\\237\320\\c\320c\223\266\001\346\274\0027?\260x\270q\300\001\374\225\021\231%\237m\270<\300r\225\220\002\246\2125?\371\270\366\361\016\200\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\360\324\004\213\317\004\351\324\004\205\362\004\311\376\006\311\235Gn\215\2148@\300\001\341\363\r.\250\316\361\003\336\366\310\002\270h\300i\254\350\001[\320\177[]\320]e\320e\245\253\001\037\320r}""\320}\324\340\003\212\376\004\340\333\004\360\365\320\004\336\343\004\217\376\006\333\372\r>\270i\300\377|\320S\\\320\\^\320\357^e\320e\274\260\001\330\010)\037\320);\2708\363\236\003\337\234\025\367\2158wA\300\021\313\365\r/\250a\351\365\002\376\220\310\002\270x\300y\320PV\376\261\226\002^\320^f\320fr\237\320rs\320s\263\276\001\330\332\001\002\350\360\347\004\234\343\004\326\204\022g\212\220\016?\270y\377\310\014\320T]\320]_\337\320_f\320f\254\270\003*\320\017*=\270X\330\235\003\223\200U\264\244\n\265\2002\330\203\346\004yn\334\3753=\270\372\366\016+\250\270\321\216\003\263\360\002\330`9\310F\257\243\002Z\003\320Z\330\327\003\245\362\027\335\353\004\312\313\004\344\353\004\204\240 \235A\342\312I7\260!\371\225\n\377\265>8\003\270\001\211\224*\234\3369\372\330\004\321\336\013\244\326\004\244\303\004`\313\320\004\372\330\004\333\250\006\356\255I\233\341\002\340\010\355\273J\000\262\276g\217\323\004\335\355@\204\3677\335\343\004\370\200I\344\205D\331\322\047\374\311\356\004\206\376@;\2709\300L\320\177PY\320Y[\320[\232\244\003\377e\330\010&\240o\260X\007\270Q\270\212\247\032\245\201!\211\2665\377\350\001\312\235*\000\314\3502\321\222\004\245\330\004\260\260\004\271\346\004\261\255\004\240\252\004\343\376\004\350\330\325\004\305\266\004\254\330\004l\307\363\001l\003s\022\316\363\001s\321\301\005\362\322\004|\320\350J\260\266\004\342\206\032\034\371\2707\354\234-g\320g\225\343/\320\370\004\212\364\004\000\245\351\004\225\365\004\272\363\004\366\246\004\327\370\004\251\366\004\264\266\004\317\363\004\004\266\275\004\336\321\022~\226\343J\3308\216\274\014\350\265&\340\206K\000\364\265\031\360\366\004\253\315\004\202\266\004\262\315\004\220\274\004\202\341\004\255\346\004\030\213\354\004\251\307\006\335\332J\n\270\360\216\013\233\270G\250\207\003\374\330\343\t\344\343\t#\320#4\260A\360\314\210\001\232\233\t\236\320\001\244\327\035k\320kq\037\320qs\320s\231\331\003\375\356\004\221\331\013\000\204\357\004\266\376\004\210\374\004\327\346\004\243\233\004\211\271\004\202\271\004""\210\374\004\000\262\320\004\222\315\013\336\346\004\202\344\004\275\207\022\222\315\004\223\274\004\304\333\004\272\301\373\004_\313\373\001_\004i\322\373\001iU\004\321\371\004z\340\373\001z\327\371\005B\342\371\001uB\321\327\005U\360\371\001U\005_\367\371\001w_\005e\376\371\001e\005g\205\372\001\367g\005h\252\327HF\260%\260\367y\300\014\216\264\001Z\320Z`\003\320`\332\366\003\233\375\003\214\307\004\366\353\004\313\346\013\243\364\004\300\341\366\004\365\221\013\245\257\013\311\265\004\252\364\004\316\343\013]\003\000\360\252\n\222\275I\317\2230\346\355\023\215\366\031\371\237\004\321\350\004\317\267\0044\260\366\004\327\324.r\376\377\001r\003\210\325\004\360\307\006\200\225\303G\306\275\006\234\224\010\205\300I\211\245\002\302\300\n\343\244\033j\003\320j\205\231\020\351\345\004\254\353\031\312\366\004\266\303 \244\333\004\200\331\303\004\330\366\004\231\371\004\230\217\004\337\324\004\274\316\004\253\333\004\177\000\225\350H\227\201]\334\2331\276\300\003\347\251\003\267\275\004\212\374\004\240\353\031\240\344\363\004\341\245\004\234\361\004\303\353\004\216\336\013M\276\371\001M\241\003\311\371\004\362\363\004\302\371\004\342\324\004w\341\371\001w\365\003\327\327\004\177\357\371\001\177\003@\004\000\271\350H\220\204]\331\250\003\263\306\t\264\250\033\326\366\003\303\335\024\304\353\031\000\215\364\004\257\300\004\215\364\004\347\353\004\272\374\004\352$\220\377\004\343\366\004\020\233\364\004\334\366\004\322\320\004\332\335\022A\316\371\016\344\2501\265\311\005@\211\207]\261\251\002\252\310\213\272\377\004\206\344\013\354\353\013y\322\377\001\023y\003\343\204\004\332\332\004B\333\310S\213\212T\300\252\002\334\244\314\n\246\252\033n\320n\232\303\001\320z\000\310\374\003\377\267\013\260\343\031\237\364\004\261\322\004\322\361\004\323\343\004\377\371\004\000\353$\325\374\004\252\314\013\252\367\004\314\335\004\275\326\004\323\343\004\250\306\004\203C\004\343\252G\237\314\010\204\215T\317\253\002\275\251)o\033\320o\205\303\001\320{\242\257\003\222\271\013\331\274\022""\000\305\261\004\305\364\004\335\263\004\235\317\004\245\314\004\235\372\004\310\377\004\200\375\004@\240\367\004\323\364\004\231\367\004\330\361\013\306\340\004\273\343\004D\214\372\016\334\202\2547\230\201_B\300!\225\322\0140\250z\256\262\003>\327\300\001\300\010\310\t\315\352\002\356\363\255\003g\320g\345\252\003|\320|\000\326\331\003\245\272\013\354\275\022\245\330\004\265\243\004\236\330\004\300\351\004\245\330\004\000\223\372\004\331\360\013\306\367\004\265\346\004\347\240\004\277\223\004\216\314\013\340\364\004\375E\206\375\016@\300\t\310\034\320\377U^\320^`\320`g\373\320g\272\277\001\330\010+\320+\307?\270x\365\307\003\365\316 \370\222TC\300\0011\217\325\014\227\321\177\224\375\004\232\351\022\341\243\004\210\351$\315\321B\332\362\225TD\202\325\0162\260\316\264\003@\300\177\001\300\021\300(\310)\215\347\002\016\311\323\003i\320i\253\357\003\307\337\003\302\343\004\301\274\013\000\226\300\022\231\333\004\260\272\004\365\253\004\226\336\004\231\333\004\277\357\004\271\256\004h\276\375\004\220\325\013\251\342\004t\326\375\001t\003\344\362\013\372\244\336\004G\267\362\016B\300)\310<\273\320W\310\323\003i\320i\361\353\003-\377\320-C\3008\3101\310qA\300\313$\255\362\006\314\332IE\300Q\207\333\014\000\205\324\203\242\341\004\326\371\004\266\354\004\317\375\004\335\371\004\277\226\004\235\357\004\022\335\371\004H\256\324S\356\233TF\370\327\016\365\323\207\234\357\031\020\246\362\004\375\343$\262\324C\361\236TG\361\327\016\351\323\207\243\344\004\020\373\327\013\377\356\004\313\234\004\246\362\022J\272\373\016\243\324F\260\207R\355H\346\327\0166\260\250\302\003D\300A\377\300Q\300h\310i\320W\367]\320]\254\305\003m\320mv\003\320v\243\306\003\252\373\004\362\317\004\251\302\013\252\373\004\370\332\004\000\261\373\004\310\310\013\270\373\004\370\332\004\300\272\004\231\347\013\300\242\004\240\347\013\320\260\245\013\215\336\004\235\352\004\362\376\004K\276\376\016F\300\377i\310|\320[d\320d\277f\320fm\320m\360\307\001\330\377\0101\3201K\3108\320\237ST\320TU\331\212-\214""\355\nQ8\352\354(\377\274-\325\231\003v\320v\275\356\003\347\335\004\320\240\376\004\223\317\004\205\347\004\334\343 \177\273\322FV\250\343:\260\350\324\002\362\366\006\371\366\010Y\240a\376\306\200Jw\310f\320TV\320\201V\225\370\003{\225\233\361\002\315\333\001\324\200<\377\324\"\007\376\342\362\001W\320W_\320_h;\320h\201\233\003w\320w\246\372\003\250\313\004\020\342\362\004\244\353\004\224\342\004\353\221 @\371\265F\201/\307\363\010|\310\202[\263\200]6\260i\270|\252\350\001\327V\320V\210\312\003`\310\371\001\032\250\3578\2601\260\276\223\030W\250J\377\260a\200A\360\010\000\t\375\021\362\337\004\320\013\035\230W\240\376\367\335\002\n\230!\2305\240\017\376\243\336\001\023\2205\230\r\240V\357\2501\340\014\005\003U\250!\356+\n\014\210L\257\337\001\013\2606\375\270\247\340\001\220\034\230Q\230k\357\250\021\320*\253\324\001\014\021\220\377\025\220a\220~\240Q\240}n\250\360\001\r\320\r\036\230j\013\364\207\353\001\262\341\004\025\360\340\001\017\210q\220_\r\230T\320!\327\324\001\001\255\336\004\270\235\010\226\337\001\301\337\001\033\250A\316\316\001\013\377\2106\220\023\220A\330\014\377\024\220E\230\033\240A\240\307[\260\001\273\227\001\346\336\002\324\010\026\220\375a\245\342\001G\2201\330\014\017\377\210t\2203\220e\2301\377\330\020\030\230\006\230a\230\375q\367\340\002\320\027/\250q\260\277\005\260Q\330\024\031F\002T\277\250\021\250+\260V\265\324\002\024\377\"\240!\330\021\025\220S\337\230\005\230Q\330\207\341\004$\240?a\320\0479\270\026\266\322\002\203\340\004\375>2\000\047\260\026\260q\270\377\001\340\010\013\2101\330\0149\031\300\342\001q\000\320\023$\235\000Q\001\365!\361\341\001Q\205\001s\220!\220w6\230\022\207\001\024\220C\246 \177Y\250a\250u\260A\177\001\277\021\330\024\027\220r\032\0003\366\236\002\030 \311\343\001\240Q\330\030\337\033\2304\320\037\366\326\001\014\300\337A\330\034!\240\207![\270w\001\270\033\013\001*\250!t\001\3275\220\003\345\003q\234\341\004\320\033\317+\2504\250\240\343\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\365\343\003z\230""\021\373\230%\215 \014\022\220$\220\247a\220q\370%)\000\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN|Z\003\343A\016\230e\240<\360 \351\013\226\327\003\255C\014\213\204\004\340\010\021\237\320\021&\240a\234\343\001\324\345\001C\257\210}\230I\305`e\373\344\001\024\237\220D\320\030.\374\372\002\360FZ\372\272@\001\331Av\220V\320\033W2\260#\267@6\372\343\001)\304@\375(\014\000Q\330\021\027\220v\377\320\0357\260s\270&\300\277\006\300a\330\020,\302`X\373\260S\247A\023\320\023#\240\2271\240A\270\373\001A\276\346\001\274c\016\336\227\205\007\2104\210u\346a\020\320\367\020 \240\246\326\002e\2208\230\3277\240!\2435\013\315\205\003E\250\317\021\330\020\032\311\205\007\246\204\001\035\240]a\367E5\230\003\206\204\001\027\241\205\002\375c\360`$\250f\260A\340\376\241\346\001(\250\001\250\025\250m\376\266\331\002)/\250q\330)1\377\260\024\260Q\330\r\037\2303w\240\205!K\t\017\210\311a=\016\335!8\0170\260\004^\000\014\023\377\2203\220a\220v\230S\377\240\001\240\025\240c\250\027\337\260\001\200A\360\351\005\340\010\337\033\2302\230\\}\000k\270\367\021\270+\257\361\002\034 \240\016\277\250e\260;\270e\252\241\001#\377\2402\240S\250\005\250\\\376\035\000\"\270A\270Q\330$M(\014\000U\260\340\350\002\253a1\316\350\001}\027\302a#\2404\320\047\331\244\002\377\013\2105\220\004\220D\230\177\n\240!\2404\240q\300\347\001>\353\346\001\003\2207\230)\373\"\202\350\002\367z\240\021\220\204\002\024\025\340\020\267\021\330\024\355 \320!\354\320\001&\377\300\001\330\027\030\330\024\032\373\320\032\265\226\001\030\033\2301\230\277A\330\030\034\230E\276\350\002\024\355\032?\003\340\010\365$A\330\020\377\024\220J\230a\230u\240\377O\2601\330\014\047\240u\257\250M\270\021\274#a\010\022\031\027\300!\340%\000t\252\205\001\212\207\001\302\206\001_3\210a\210~\246 \003\235b\025\014\377@!\256\351\002\014\256\351\002\275A\203\000\377\r\020\220\001\220\036\230t\363\320#\246\336\001u\000C\220q\230?\006\230c\240\024\240\230\204\001\361 \273\260T\240\211\001\022\320\022\262\326""\001\020\363\023\220\234!\235\000E\230\021\230\277!\330\014\022\220)\312\001\340{\010\014\224\353\t\320\014\034\230\274\353\004\357L\230\t\240\337\211\002\033\230A\357\230[\250\001\246\351\002\010\r\210\307U\220!\271\204\001\313 \322\372\001\r\210\354\037\006\361\211\030\340\010\202\211\0011\200A\373\3602\327\204\010:\220Q\220n\370\200\213\001\325 \201\352\001\007\220t\320\033\3776\260a\330\020\023\320\023\377%\240W\250A\330\024\030\276\266B>\260\021\330\024\201\352\001\047_\250\034\260Q\340\004\004\021\301\353\001\3251\254A\007\330@\001\332\210\005>\240\373\023\240\207@\025\320\025%\240\376\271\211\001\320\025&\240a\330\020\356\227`\340\020\026\242\355\002\001\330/\3676\260c\346`.\310\002\310\377!\3309:\33004\260uE\366`!\260\352\003N\220!\226\204\001\241\014\314\211\001\365&\245!\232 \330\305\003\320\217\004\035\230Q\306\214\010\350\353\001\255@\330\357\010\022\220\047\334\"\010\014\210\177G\2209\230J\240f\304\000\376\201\213\001\320\023+\2501\250G\371\260\301\353\002\225\354\001\026\240q\250\013\004\374\363\001\242\214\003\330\317*"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35494, 110863); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35493 bytes) */ +static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notebegi\377dx nbele\337mentc\345\220\003pi\377ckle %s:z\343\211\007h\345\215\003poin\354\233\002Cto\223\233\002\351\212\005\336\000\345\213\002,\324\235\002\367doe\347\223\001t cr\373os\306\227\001proce\357ss b\365\240\001ary\267dis\352\205\001en\360\205\001g\345c\333\235\002 \266\236\003\242\224\001wro_ng di\221\000s\313\240\001\352\024\tl\305\204\002s\343\235\002dif\007fer\337\221\001\351\237\002\367\236\003\310\211\001\274\225\005yd\327B""Y\003must\336\236\001\003a \354\237\002h\004\350\237\002\345\237\003\207\232\002\330\237\002\377 Series,\255 \204\226\001%s\363\236\t \223\234\007m{is\202\242\002requ\374\214\002^\256\241\001 key\304\242\001g\212\217\001\270\243\216\002\245\003\346\205\001, 0\354\232\0011\33700)is\366\003dn\315o\341\226\005: \355\236\006\204$is\277 empty\234\241\002.\377_core.mu\347lti\337\240\004\351\227\003to \363im\305\215\001\033\tumat\367h f\023\014tali\203b.\204\215\004\244\243\001\013\003\374\241\002\026\003o\013rd\316 d\237\242\001\047\003\200\242\003\005\004\334\365\241\002?\003sysH\003thgrea\321\230\001W\003wa\352\233\002\366\027\003/_\324\244\005.pxizy\002/\304\000mmon\006\010@\262\244\001\025\010\310\224\003,\002\202\207\005\225hs\325\227\r\377\047ACACCBA\327NDS\000\005_\354\210\001am\362\000\014.\206\243\001\334\236\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\366\231\001\004\372\231\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\345\230\002S\247\252\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\370\225\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?""\010<\004\017\331nBELT\207\236\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\343\241\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\361\233\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\307\236\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\370\253\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\315\250\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\273\257\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014""\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\216\270\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\362\266\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\313\276\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\345\320\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\346\315\005n\356\315\005.__\376\321\001__\001\r\374\260\325\005\035\theck_o\343pt\366\322\004\356\301\002>\010get`\003\030\215\322\001Z\n\274\323\003\325\277\002_s\330\263\002\322\311\312\002s\220""\010\360\310\001l\240\010re\333pr\236\nst\002\013un\361i\334\313\001\304\010\336\320\006flag\000R\007\250\001\267\324\t\207&\017\007\342\323\002\013\n\332\326\007\370\266&\214\320\001\303&lookb\047ack\324&\301\317\003_m\013\016\004\270Q\013\352\317\004\216Frun\232Fs\000\325 \241\322\n\r\n\261\022/\001\242\325\010>\n\240\330\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\237\313\002\221\325\001IMI\300\000\000\312\266\004\000\007\276\266\013\323\313\t\327\313\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\367\314\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\207\320\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\345\312\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\204\322\001MA_\376\213\322\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007""\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\351\321\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\334\343\001\317\335\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\207\327\001\213\327\002F\000\003*\006O\007CHFJ\024\270\327\003\276\327\005&\t\355U\370\355\327\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\321\350\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\236\330\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\362\352\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323""\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\362\356\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\224\360\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\352\361\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\363\363\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003""\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352""\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245""\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371""\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313""\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331""\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017""\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010""\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004""\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010""\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%""\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\340\237\205\002\233\205\003\302\204\003\000\t\273\204\013_AR\377RAY_TYPE\375S\352\322\002tion__\377call_fun\365c\n\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str_I\304\354\312\002\313\002S\312\004\r\003\333\272\002_S\367ERI\341\000DEFA\377ULTS_PAN\377DAS_DATA\237FRAME\t\005!\004P\217OLAR\022\n\013\003@\004_\367Pyx\001\000Dict\377_NextRef\373__\256\325\001UNCTI\357ON_NP\000S__\363__\306!\003\001nnot\027ate\017\001c\r\004\330+\3064\177_class_\327 \357item:\002opy>V\001deepc\004\005\205\001\016l\000docq\001\267Ay\001\214A\177flags__\207Q\236J\tinit\254\001\214V_\336\226C_mai\237`__\317meta\226\003\344\000mo\367dul\330\002mro_\207ent\331B\375\000\250B\004\001e\375w\212!prepar\312\201\"p\277 v\234\231\002\243!qu""\373al$\005reduc\024\245\"+\000r\301!s\325`B\005\350A\274\326 \220`vers\252\204\002_\357_tes\271\002uni\247cod\342!\207\204\001d\242\245\003s\374\263\212\002\230 s_is_c\377oroutine>\316\000okup_\332`\322\204\003\037succe\351 \353`\274\"\273unR\000id_\001\014s\236\003\013reti\257\000C\001g\000\232\331\003\214\331\001\004\010\316\331\002\030\004\256\330\007)\004\240\331\017\000B\004\220\331\022\024\005\224\331\017x\004\333\000\256\234\010\r\005Mu\203\234\004_p\206\234\002\356\001i\210\321\006Z\374\001r\330\247\003_c\325\332\002_\261$\203_s\332\247\004\237!\377!\030\004\006\016o\350e\014\253Aa\020s\371\234\004a_c\377losea_hiwgha\325`wa_\333\215\001\375a\231\004sa_rea\365l\000\0030\007\0031a_v\277olumea\241@l\307era\245\210\001\000\t\274\204\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016B\003\377ppendarg\376\000\000sarrays\377asciiast\377ypeasync\367io.\331fsatr\356\355#avg\366#bbe\377gidxbitb\377ytes2str\376\357#stickcl\376\224\204\001in_trac\331e\256\335\001\247 ne\252\"co\327lle\214\212\002s\010\000um\237n_sta0\000\222!n>\020\000pydde\371\204\001\266E\374\230\212\002\373\204\005descri\375p\333\212\001displa\271y\367\211\002\221\205\001doc\325 n}t\316\"empty\341\000\374\241\000\347\000swithe\371n\364 \356 efact\367orf\352\000d_ma\260\356\001\006\003\320c\024\001k_\002\007l\217imit)\001!\007\"\004iwrst-\004lag\233\210\002\366\237\210\003lo\214\206\002dictx\275\210\002\342!\306\210\002info\317\210\002<\234!\330\210\002obje \003\255\214\002\020?\003\251\214\005\322\213\001\266\214\005s\220\214\001\250\214\003\253Ch\006\007\370\213\002\257\214\001p\252\340\005sg\346\337\001\366\000\002sh\341\340\002help\366\243\204\001hi\374\255\001ylen\335h\326\264\002iid\304@im\375p\333`_error\177inindex\247\001Pc\t\243\215\003\344\214\001\000\007s\362\214\025i\321\243\003\347is_\203B\356\212\001ske\335y\000\000skw\360ale\277ftbars\205\000g\353th\251\215\002l\325\341\004low\366\000\000er\224Cmaxi\277mummax\356\206\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\273\212\003\377msg""multi?pliern\231\216\001\235\216\001\357dtup\366\000ann\257bdev\000\002d\006\003u\257pno_\361\000s\204\260\001_\010\332)\261`\236\217\003s\006\001\251\217\006\010\003\340\342\002\366\025\001py\302Coffs\277etonre\320\212\001e \350\225\001\354\225\001\342\245\001\226\210\002\360\225\to\272\343\001\372\217\006\372\375\217\014s`\007order\373ed\311aoutou?taroon\374\245\001\004\005\377upoutbea\037rpowe\221\213\001\226\206\003\021\001\367ull\r\005doutofama\002\002st\t\003\377stkoutha\000\304\210\002\005\002\310\210\001\016\002\205@\026\002\300\002\345\213\001\037phase\356\213\002\257\247\002\000\007\375_\325\220\001outjou\036J\002lead\230`(\001\305B\373ba\254\000utmac\360\200\001\003\001\201\204\002\014\003sign\347alo\033\001\227\002max\256\010\002xid\000\006xZ\005m\337iddleH\005in\3063\001in#\004\004\002 \007nu\377svioutnb\277elemen\267!p\365l\016\004p\305\"put_\"\322\217\002o\252\346\002\301\222\002\000\010s\021\003\000\004\365s\242\223\001i\302!quad\237ratur\212!\336\212\001o\205u\343\231\001l\341\t\365\212\001\241\n\206\213\001u\317pper\207$\232$slcow\226A\004\001\207Asm\260\001\374\003\000\217&supert\373re\277\"swing\340\234D\007\002\240C\027\005X\006pan\007das\213\207\002\220\207\002\234\224\002\225\207\007\244\207\002\277spenet\374\213\003p\377ercentil\371e\325\215\003\333\215\003spola\245r\003\000p\350\224\002\355\224\0020\363\224\0021H\362\224\t\371\224\016\312\225\003s\235\225\002\003\000o\275\001?yrange\333\213\001\220\215\001\372\224\215\0010\231\215\0011repl\377aceresul\307tsr\216\000\262\254\001\357\204\001t_\336\377\220\001righ\246\207\002ro\223c1\362\216\003\007\0002\001\006\014\004u\377nsschema\277second\271\004e\003lf\233\226\003\365\221\001\377\226\006\361\214\001\206\222\001\302\211\tp\006\007\306\226\002\245\222\001\304\211\007set\373\221\005\300\245\270\003\242\215\001\263\204\003\272\213\003\277\204\003\256$ki\007p_f\230\213\001\327B\333\213\004\006\003\320$\017lowk\r\010\346\213\005\210a\351\213\002\234\221aR\004low\205D\241\215\001l\377evelstar""\365t\255\230\002s\350\214\001cmet\377hodstdde\255v$\005r2\222\216\002s\372\236\002s\375y\273\256\003talib.\374\244\223\001\005\000thread\377ingtimeS\217tamp\005\001\323\221\003\000\0071\372\013\0072\026\0073to_nOumpy\252\217\001\256\217\001_\334\223\004\277update\000\003_ \351\214\001\355\204\002\331\231\002\253\003\344\224\004v\375\215\003\204\221\003\317warn\000\001\377\272\001wm\375a\326\222\003\200\001\330\004\007\200\377u\210C\210q\330\010\020\377\220\005\220Q\330\014\r\330\377\020\026\320\026+\2501\250\377A\330\014 \240\013\2501\367\330\010\017\035\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\377\021\200\001\340\004\017\320\017\377#\2401\330\004\013\2101\376\013\001\022\220,\230a\330\004\177\025\220Q\220o\240Q\014\003\367.\240\001\r\002\320\026\047\240\375q \002\320\022&\240a\240mq\017\004-\250#\003\320\022\035\000\377\250\r\260[\300\013\3101\356+\004.\250a+\0042\260!\355\260\016\0059\270x\001#$\360\377&\000\005\014\210;\220a\375\220\231\000\r\210T\220\026\220\373q\230\336@\r\210]\230!\377\2308\240:\250T\260\021\377\330\004\r\210U\220\047\230\377\022\2307\240\"\240A\330\377\004\017\210w\220e\230?\373\250\"\354@\004\016\320\016\037_\230q\240\010\250\225`\021=\000\377r\230\024\230Y\240k\260\377\024\260V\2701\270I\300\377]\320RS\320S_\320\377_`\320`o\320oz\177\360\000\000{\001B\002\004\000wB\002H\003\001H\002I\n\001\357I\002J\002\362\003i\230q~\207%#;\2701\360(f;\363M\270\277\000\203\200 [\320[\\\377\320\\h\320hi\320i\335x\243\000y\001D\242\001D\002\335K\251\001K\002Q\260\001Q\002\235R\267\001R\002S/{\247\000]{\320]\247\000j\320jy\320 wz\001E\317!E\002L\326!\271L\234\007\354 S\002T\310/$\375%\301\2028\320\033+\2502\250\373Q\330\356L\027\230\002\230$\377\230i\240{\260$\260f\377\270A\270Y\300m\320S\367T\320T\367@a\320apw\320p{\372@|\001C\371AIC\354G\217`J\342 ""\357\204\003j\350\204\001\236\206\205\003$<\270A\302\2028\237\003]\343\270!\202\200\"\310\20236ub\320b\277c\320co\320o\322 \177O\360\000\000@\235\204\005\227\204\004X\334\205\001\367X\002Y\343\205\001Y\002Z\002v\3110\320<\227@U\360*\310\2066\356\330%-\300q\344\202\"`\320`\376\252\204\003v\320vw\360\000\000\227x\001G\202\207\001G\312\205\005\246\004_\356\227\207\001_\002`\236\207\001`\002a\356\250\020=\270Q\326\202>^\2701\356\234\204\037n\320T\343 d\320d\377p\320pq\360\000\000r\253\001A\264\210\001A\335\205\005S\302\210\001S~\334\047\360\000\000Z\002[\333/\373%&\257\205:,\250B\250a\376\334\205\r\030\230\022\2304\230y\377\250\013\2604\260v\270Q\377\270i\300}\320TU\320\357Ua\320a\232`q\320q\337|\360\000\000}\273\210\005J\002~\336\205\004\360\000\000K\002L\342\211\004\367k\240\021\360\213\005%=\320=\316;\000V\3602\325\2028\245\001m\270\367=\310\001\213\207\013\024\320\024%\357\240Q\240h\301\001\022\320\022\337#\2401\240H\266\213\001\021\220\370\260\022\245\207\003\277\000}\320}~\360_\000\000\177\001N\252\213\001N\306\204\005\272\223df\277\213\001f\002g\306\213\001g\273\002r\315\213\001r\002}\324\213\001}\267\002J\003\320\207\001\003P\003\001P\273\003Q\n\001Q\003\\\021\001\\\273\003g\030\001g\003r\037\001r\273\003x&\001x\003y-\001y\347\003z\003\364\215\003\222$:\320\025\375%\377\215\002%>\270a\360,\242\333\200\353\320>;\000W\254\210\001\016\210[\367\230\001\230\222\220\002V\2206\230\047\021\230!\236\220\001\251\220\005V\341\220\001\235\220\021\372\213\210\"&\243\007b\320bk\320\235k\371 x""\320x\335\215\003\241\220\004T\256\271\220\001T\002[\300\220\001[\355%bn\316\220\001b\002c\331\211\017\047(\255\215:\357.\250b\260\302\205\014\021\220\032\377\2302\230T\240\031\250+\377\260T\270\026\270q\300\t\177\310\035\320VW\320W\251\210\003Ws\320s\263\205\003F\343\221\001F\214\217\005]M\361\221\001M\002N\340\221\004m\354\223\007\010\235\003\237\2016\202\210\0346j6\226\210\010\303 \357\2139\376\277$\r\320\r\036\230a\230Ax\267\225\001\000\t\251\201&\337\221\004\242\204\013W\312\224\001\353W\002\374Dh\330\224\001h\002n\356\337\224\001n\002o\346\224\001o\002p\376\347+9\220A\200\001\340\047g?\270q\244\220:\230a\r\270\367\221\016~\211r^\320^_\320_\314\204\003\200\202\222\003\370\215\004\327\211\004\317\204\004\311\207\006\376\227\003\231i?\377\320?V\320Vm\320m\347n\3604\373\2168\257\003Z\300z\377\320QR\330\004\027\320\027\337(\250\001\250\030\343\227\001\030\320\377\030)\250\021\250(\260!\374\n\013\331\204\024`\320`j\320j\377s\320st\360\000\000u(\224\216\005\324\227\004\247\226\004\\\345\227\001\\\213\211\005\237\213\004\272\223\211\004~\201\230\001~\002I\251\213\001I\273\003Z\260\213\001Z\003`\267\213\001`\273\003a\276\213\001a\003l\305\213\001l\373\003w\314\213\001w\003G\004\360\337\000\000G\004M\003\001M\004\275N\n\001N\004O\004\236)\320\377\013\036\320\0362\260!\200\357\001\340()\245\225:/\250r\375\260\250\230\016\033\230B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310-\320WX\377\320Xd\320de\320e\307t\320t\207\223\003\322\221\004\350\206\006\360\000/\000N\002O\330\231\004n\277\232\001\350\233\003\302\240\000.\305\2228\220\020\322\216\027\251\017/\320\377YZ\320Zf\320fg\177\320gv\360\000\000w\217\233\005\024\211\233\004\335\214\004P\250\233\001P\347\211\005\360\216\004\310\214\022UE\363\216\001E\357\216\005[\201\217\001[\302E\035b\217\217\001b\003c\333\216\004\376\004\331\216\006\037(?\320?W\310 \323\224:\257A\317\034\270]\310\341\227\016\245O,\320oVc\320c\324\223\001\320q\274\220)\375h\262P@\320@S\320Sgk\320k\250\221\003\354\226\006\3608\235\202<\177\035\270m""\310=\320X\324c\371u\255\222%\217\204\022d\320dq\320uq\302\222\n]\200\237\001]\002^\207\237\001w^\002j\216\237\001j\002k\225\237\001\351k\246\220\005\312DL\313\222\001L\003R\356\322\222\001R\003S\331\222\001S\003^\356\340\222\001^\003i\347\222\001i\003v\356\356\222\001v\003|\365\222\001|\003}\356\374\222\001}\003H\254\206\001H\004S\356\263\206\001S\004^\272\206\001^\004d\356\301\206\001d\004e\310\206\001e\004f\354\267\206\004\200m)*\342\234:0\260\002\375\260\347\233\016\034\230R\230t\240\3779\250K\260t\2706\300\367\021\300)\331!Y\320Ye\377\320ef\320fu\360\000\003\000v\331\227\005\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005\316aC\021\220\036\270\242\007\207\034\320u\374\263\222\003\200\037\026\220f\230J\240\377a\330\004\010\210\007\320\017w\037\230q\361\244\001q\230\006\333\244\001\376\347\244\003)A\320A[\320[?u\320uv\3600\315\2338\352!\377-\270\177\310o\320]^\375\330\315\245\001 \240\001\240\030\250=\021\000\t\330\004\021\220\3542\364\207\006P\246\221\004\216\234\004\325\232\004\345\222\004c\254\244\001c\314\216\005]v\272\244\001v\002|\301\244\001|\354\227\005\345H\360\227\001H\226\204\005\340\207\032o\240Q\266\354\246\001;\220\227\246\001*+\314\241:1\367\260\022\260\272\234\016\035\230b\240\377\004\240I\250[\270\004\270\177F\300!\3009\310M\277\211*\235Q\204\246\003\320\026&\274A\224\250\003+\373C\300\317\2459\320\0332\260\"\367\260M\300\373\245\016\036\230r\240\377\024\240Y\250k\270\024\270\377V\3001\300I\310]\320\377Zg\320gh\320ht\203\320t\220\205\003\325\244\004\203\213\004\350\221\004\262\207\013_\331\002\231\251\007\305\251\005,-\247\244:3\260\3732\260\323\244\016\037\240\002\240$\377\240i\250{\270$\270f\277\300A\300Y\310m\204\2471\320\203\026(\255\251\001\357\252\003\245\000\313\2419\241\004\0203\220\016\323\224\005\000\010\021\220\216\200!\321\240\004\350\240\237\004\353\215\004\265\221\013d\257\252\001d\002m\352\266\252\001m\325\233\005t\304\252\001t\002u|\250e\320\002\025\220V\2309\244\253\001\376\357\206\007\026\220a\220v\230Q\274\324\254""\001\002\027\013\210<\220\333\254\0010\3351\336\247:7\260r\341\252\016\320\021\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\247\031\320R\216\254\003\265\235%W\214\205\005,\354\362\254\001\250\256\00345\210\251:;\2702\376\254\226\016\320\021(\250\002\250$\377\250i\260{\300$\300f\317\310A\310Y\246\217\002\320\2433\320\026\3410\271\233\001\326\257\003\333\242\003\302\255\t\n\210+/\220Q\220a\267\235\0056\214\243\001\357\256\t\177\030\270\032\3003\300a\346\256\030\376\270\255\"[\320PS\320SY\200\352\222\002\360\220\003\322\242\006\353\236\013\314\235\004\324\242\004\317y\220`\232\257\010\265\244\001\221\230\002\300\250\t\227\200A\035\300\346\245\016\303\026\220\320\260\r\312\020\325\240\002\357\225\013Z\002^\226\247\004\360\000\000[\345\220\005u\202\261\001uu\300\213\005B\261\244\001B\003C\270\244\001oC\003D\003\374\260\016>?\242\262\n\374\200\202:\231\256&k\320QT\320T\277Z\320Z[\320[\277\222\003r\037\320r~\320~\360\253\003\200\244\004\327\004\010\371\243\004\214\246\004\201\235\004i\353\253\017\304\242\003\300\203F\276\256(\250\274\017\310\203?\247\260\010>\340\204\001\360\212\200L_s\270A\307\261\037\230Ls\320s\214\200J;@A\235\267\n\014\210K\234\267\t\243\207\022\3515\203\253\001\356\245\027Q\257\200\"V\320VN\344\264\003f\320f\304\236\"\242\222\004i\334\267\001ai\313\227\007\313\263\016\316\000\345\206F\320\033\373\250\004\377\023\320\023$\240A\240X\376\226\265\001\021\320\021\"\240!\240\3478\2501\366\223\001\374\250\017\013\320S\320\254\200.\305\243\022\322\252\004\365\234\004O\366\254\001O\003\335U\375\254\001U\003V\204\255\001V\003\331W\320\254\004\311\251\004?\230\233\240\001@X\047\320XY\340\203I\203\253\001}\232\204\017\331\037\017\360\000\000t\257\242\014\353\230\013\234\233\004\316D\255p\270\273\001p\002\376\225\004w\306\273\001wC\002x\241\253\017\327\227\001\350\273\003\314\263\004\177\361\273\001\323\177\002\203\237\004\306\242\004h\320\242\001h\004\343i\004\307\244\n\235\211<\223\246\002\320=O\037\320Of\320f\231\272\003\277\240\004\226\247\004\370\262""\227\006\263\271\r\307\252\017\033\320TW\320\377W]\320]^\320^g\243\320g\346\244\003\263\265\004\265\235\004q\312\275\001q\273\002G\362\260\001G\003_\371\260\001_\273\003s\200\261\001s\003J\260\244\001J\273\004K\267\244\001K\004W\276\244\001W\273\004X\305\244\001X\004g\314\244\001g\273\004r\323\244\001r\004y\332\244\001y{\004\177\341\244\001\177\004@\005\323\267\0017\005A\005\367\246\016BC\273\213I\300\244$\277+\320UX\320X\276\250\003h\003\320h\256\233\002\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004%e\341\277\001e\313\237\005\217\261\004m\364\244\017\313\003\261\r\312\210\007\326\257\006\201\301\0017\240\322\257\nU?\260(\270*\300F\340\242\001\250\2102\035%\247\266\004{\320R\203\200K\256\275\010\237@\330\246\301\013\304\n\321\222\0226\310\320\302\024\320\033\200\330\267$\200\200N\223\270\010\313\003\231F\360\213\014\215RE:\230\20065\251\264\004\013\320S\245\203K\305\t\320\370\211\002\306\267\t\217\222<\252\253\001\033\245\217\001\023\220\377>\240\021\240(\250!\330o\004\022\220.\200\241\005\021\220\250\253\017\016\304\205\014s\320s\304\277\003\335\274\004\257\253\013\246\246\004P\314\205\004\352\207\004\363\211\006\312\276\001\002\262\224\004K\370\271\001\351K\363\213\005\356\271\004]\215\272\001]\003^\314\360\251\013\203\214\003CD\213\224I\323\245$;\320\357VY\320Y\220\310\003i\320i\200\212\300\006\354\306\004\306\305\004\343\266\004\214\300\004\353\273\004\300\207\006\360?\000\000m\002n\002\204\246\016\302\014\034\356\220<\331\266$\033\320T\203\200K\224\267\010\237@\000\233\257\t\272\227<\225\251\004\323\262#\242\251\017\206\2021\376\265\004\351\231\004\232\270\246\004A\241\277\001A\003\326\253\004\233\204\004c\356\266\277\001c\003d\275\277\001d\003o\256\304\277\001o\003z\313\277\001z\303\215\005P\356\202\263\001P\004Q\211\263\001Q\004R\371\004\211\252\t\364\262\010CZ\320Zqw\320qr\253\277\n\016\210k\244\274\t\362\334\235\0227\302\213\027\206\303\001l\270,\300\016\353\302 {\320R\325\204\t\330\253\003\360\315\004\340\275\013\320\236\307\013\267\270\004""\266\277\004\257\277\004@\314\301\001@\0032\253$B\230\301\013\263\320\001DE\242\316\001\331\211E\372\324\274\034U\364\264\004+\320UZ\320\375Z\327\313\003j\320jw\320w\000\261\316\003\203\315\004\366\274\004\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\346\334\270\016YZ\326\235\023\351\230\016\025\240a\366\362\277\tT\260\256\241\003h\310j\320\361X\261\222\001\377\320;\253\241\014n\320ns\037\320sy\320y\300\321\003\231\320\004\213\320\013\240\311\261\004\300\311\004\377\273\004\376\302\004\301DF\233\305\001F\025\003\251\223\004H\330\237\017Y\350\310\003\217\322\006\211\307\n|\254\243\006\300\200IM\270\034\300Q\346\272%@\344\241\036\213:\275\214\013\300\307\004\214\273\013\204\242\004M\303\307\001\343M\003\370\206 \330\225\004\213\207\006\360\000\000\267R\004]\253\273\001]\004\333\227\004x.\271\273\001x\004~\300\273\001~\334\225\007\347\324\t\346\262\273\010Z[\243\203Z\307\2425o\320o?t\320tz\320z\304\322\003\355\323\004\200\212\325\006\350\323\002\263\316\013\371\300\004\370\307\004\355\211\004\361f\360?\000\000H\003I\003\352\322\016\374\000 \270\246\022\270\205D\267\324\006\246\236\t\261\236\n\220\272\324\017\373\244\014\320\313\200=\376\205\004\325\270\004\344dX\265\314\001X\003T\377\213\004\370\213\004u\312\314\001u\333\270\005w\240+\376\307\236\003Zr\360\000\000s\001\014\243\330\004\247\264\004d\002\311\265\n\350\205M\366\322\007\366\317\001C\330\004\320\305\t\200\201I\212\323\004\317\314\004{\266\333\001\201{\364\265\005\356\265\004\274\302\004\260+\223\273\004\275\216\004p\356\217\317\001p\003{\226\317\001{\003F\256\306\302\001F\004R\315\302\001R\207\235\005Y\236\333\302\001Y\004Z\004\375\327\n\245\306\003Z\360\336\303\003\360\315\004\323\233\004\312\237\004@\003\3606\374\274\335\010\222\201S_\270O\310?\320\025Z\356\332\001\330\317\341\005X\303\267\002\335\341\003\000\t\002\023\002\021\213\2045\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\277\360\000\000^\003m\361\321\001mt\312\321\005\203\276\004B\257\305\001B\004C\266\305\001QC\253""\305\005\342$\231\211\004c\322\305\001c\220\276\005]o\340\305\001o\004z\347\305\001z\246\211\005\335D\211\240\001D\005E\220\240\001E\005{F\005\236\333\n7\220\047\230\306\341\001s[\\\324\210\\\337\234\047U\320U\310\337\003\377e\320ep\320pu\320\017u{\320{\213\326\003\214\316\004\321\273\013\344\330\006\037\360\000\000a\002\332\244\004\343\204\004\220\257\004\032\334\204\013J\361\221\017\\]\323\212\\\300\322$\312\250\014\377q\320qv\320v|\320\001|\352\322\003\354\332\004\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004H\210\261\004\236\312\004\322\326\004K\303\250\013\265\345\001\\\274\307\003\310\236\342\004\226\327\004\256\224\0072\304\205Z\376\324\001\177\270\037o\310_\320\\\257\323\001\350\277\031\351\252\036\000\2333\333\326\004\314\244\004\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\350\264\230\013\207\206\004\221\305\004I\313\314\001I\004T\256\322\314\001T\004_\331\314\001_\214\247\005m\356\347\314\001m\004n\356\314\001n\004o8\335\314\004\212\326\004\263\300\003]^\360\306\215[\363\324\004\217\020\320\020!\313\240\005\310\255\013\214\251\036r\037\320rw\320w\277\333\006\350\347\004\247\331\013\036\260\326\006\360\000\000c\271\333\014\201\216 \357\210\004z\347\251\004t\365\333\001t\003u\003\261\321\n\342\321\274\003]\336\314\003\323\275\007\334\200_\016\270n\003\310A\262\253.\2403\335\333\004\200\277\004\274\321\013\377\214\007\017\000\000@\003\375\257\004\312\321\004\303\321\004\360\335\004\275h\226\336\001h\003i\003\316\323\016]\344\216\343\003\302\223\007.\367\214Z\323\331\001\017\270\177\003\310a\225\307\031\252\2034\211\327\004\233\340\004\350\237\013\330\272\013t\314\314\004\230\245\004e\263\340\001e\003k\272\340\001\201k\355\323\014\302\215\004\310\256\004\356\237\023\313\332\004\322\307\003^\371_\343\226\\\204\2563s\320sx\320\301x\270\273\006\364\356\004\272\340\004\302\331\004\266\224\007\000\000\003d\002\240\326\013\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010\363_`\342\230\\\263\2473t\320ty\003\320y\334\251\n\225""\346\004\276\333\004\263\352\004\347\305\004\342\212\013\014\272\264\004\245\227\022N\003\214\317\016\200 \346\204[\374\245K\240\327\200A\352\270\022\276\332\013\225\323\004\213\224\004D\317\332\001D\273\004O\326\332\001O\004Z\335\332\001Z\273\004j\344\332\001j\004p\353\332\001p\273\004q\362\332\001q\004r\321\246\025a\342\213\242\002,\245\226Z\263\315\006\300\351\t\017\210~\217\230Q\230h\337\321\001\276\322\001\267\315\r[\337\320X[\320[\212\353\003k\320\017kv\320v\371\361\003\365\365\004\377\361\004\251\363\004\320\243\357\004\307\351\013\273\347\004\340\217\013N\330\351\001N\003\260\311\331\022\374\226\004\252\234\004\3252E\004\233\316\n\3207\013\033\230\364\370\001wx\317\245\036\266\264\014\307\025\240g\376\363\001\235\310\017\363\245\005e\320\017eo\320o\331\323\001\253\370\023\266\240K\237\334\004\000\203\352\004\360\337\004\334\330\004\246\334\013\255\315\004\306\251\013\244\354\004\255\334\004\374\246\334\004\244\215\006\360\000\000i\003j\226\225\241\017|}\264\372\n\013\302\372\005\211\246\027\026\363\240u\261\372\001\325\312\r4\300x\310\377z\320Y\\\320\\d\320%d\340\247\003t\2365\304\322\001A\313\325\001\252\327\010\334\263\322\017\373`\\\320\\\242\364\003l\320\017lw\320w\364\372\003\273\361\004\374\253\013\271\354\004\200\275\351\022\213\333\004\271\354\013\264\250\013\340\300\004\213\333\004\334\217\004n\332\200\357\001n\273\256\005p\003\216\323\016\360\004\337\000A\002B\002\317\200p6\260\367b\270\001\264+\320\021#\240\3772\240T\250\031\260+\270\377T\300\026\300q\310\t\320\177Q\\\320\\`\320`\233\341\003\006\272\371\001\320{\212\361\003\323\254\013\366\311\013\270\365\004\365\274\004\000\236\361\004\376\347\004\227\361\004\361\344\004\303\231\006\220\363\001\367\344\005\240\341\004\020\361\344\004\236\361\004\324\224\006\377\377\004+\321\304\001\237\372\002\301 wC\002D\320\200q8\270\002\326\372\001\376\257\334\t\320\021%\240R\240t\377\2509\260K\270t\3006\377\310\021\310)\320S^\320\017^b\320b\320\376\003\355\357\006\300\366\004\371\367\004\000\377\377\004\244""\347\013\267\314\022\342\301\004\341\224\013\264\246\013\337\363\004\272\263\004X\376d\216\227\006\245\350\001\003v\204\204\005-\277\375\001\356\300%D\002E\230\203q9\270\022\374\207\371\001\272+&\240b\250\004\250\337I\260[\300\004\347\300\001\3109\377\320T_\320_c\320c\000\353\377\003\327\357\006\345\351\004\215\364\004\230\361\004\374\373\004\330\342\004\207\355\013\200\221\312\004\247\366\004\311\263\013\347\255\004\331\213\004\205\225\013\356\250\031\320s\026.\233\371\001\210\204\005E\002F\340\205q\357:\270\"\270\207\211\014\320\021\047\377\240r\250\024\250Y\260k\377\300\024\300V\3101\310I\377\320U`\320`d\320d?j\320jk\320k\247\352\006\277\304\004\036\346\261\007\000\000J\002\277\304\013\304\314\022\334\366\004>\217\266\006\360\000\000B\003\232\216\004\203\313\004\032\240\345\004f\216\371\001f\003\377\250\004\247\345\004\320\354\004ex\224\211\005/\303\366\001\320\206\005z\001\315\256\007\001(\300\250\034\311\215O\225\3135\331\243\023\232\260\004\343\270\004\224\265\013@\250\362\004\205\326\004\367\325\013\307\315\004\301\373\004\322\311\004j\331\373\001\027j\003q\340\373\001q\223\357\005\277\373\006\273\373\003\376\260\370\007\360\006\000\005\017\320\016\376\362\363\001q\330\004\007\200x\210\377s\220!\330\010\t\330\004\377\t\210\021\330\004\022\320\022\337\047\240q\250\004\214\375\001\025\220\355Q\307\204\002\200\001\036\024\017\210q\2560\004\020\320\020\317\375\001a\270\376\004\360\357\n\000\005\0269\002\320.@\277\300\001\300\027\310\001\314\306\001\020\373\220\001\372\345\001\005\210V\2201\277\220E\230\021\330\010\221\253\001\001\377\230\026\230q\240\005\240W\363\250A\245\320\001q\002-\320->\357\270a\270q@\r/\320/\177B\300!\3001\300A\337\371\001\375Q?\014\016\210g\220Q\220\377f\230A\230U\240\047\250\345\021\360\303\001\025{\010\325\377\005\360\014\000\363\005\020\267\001\215\000\220\031\230!\360\227\337\003\t\001\371\377\003\235\347\002\210q\320\020\376\307\344\002\340\004\022\220)\2301\363\230A\020\004\276\003\016\220a\330\357\010\020\220\013\024\002\010\013""\210\3774\210z\230\021\230\047\240\377\021\330\014\024\220A\330\010\377\014\210G\2201\320\024$\377\240L\260\001\340\004\r\210\257Y\220a\220\353\"q\025\004\220\356K\002\t\220\021!\010G\2506\357\260\021\260!\217%\035\240g\237\250V\2601\260L\000\244\003&\367\240\001\240\262 \013\2105\220\375\t\342\373\002\014\020\220\002\220%\377\220s\230%\230q\240\001\373\240\024\352\213\0027\260\"\260G\373\2701\344\345\0021\340\004\016\210\371i\226\325\003\330@,\250D\260\t\377\270\021\320:L\310C\310\365q\304\n\n\202a\013\2107\220\377#\220Z\230t\2401\330\371\014\374@\244\005I\230R\230q\376\303\001W\220A\220T\230\025O\230a\230q\340\374\001\013\001Q\220%\337\003\2202\220U\313 1\330\377\004\024\220D\230\005\230Q\370\324\351\003\317\376\002\360!\022\220\037\240\001\377\320!3\2601\3204D\263\300A\334\271\001\336b(\250\240 \005\254\313!\322\001$\230\327 \021\223B4\376\240\352\001\030\230\t\240\021\240$\375\240\355 \032\230+\240Q\240\375d\214\366\002\010\026\220c\230\021\375\230)\002\032\230#\230Q\230\227d\240!\316\352\001s\316@6\000\200\375\001n\002\320\021*\250!\320\377+=\270Q\320>N\310\177e\320ST\320TU\223\346\004\3772\260!\340\004\013\2109\374\317\002\230b4\210q\220\003\220\3571\220G\230\366\337\002\007\200w\373\210c\236A\017\210t\2208\376\201`H\240A\330\t\021\220\315\023\336A\017\210\217 \261\002\001\330\377\010\030\230\013\2401\240D\357\250\010\260\001p\006+\2501\377\320,>\270a\320?O;\310us\000\320UV\214\347\004\377\000\236b\024H\230F\240\222\000s\003\025\373\220d\326@x\240x\250y\271\270a\000\201\0011\220C\345\330\001\3409\004q\005\305\311\001A\230T\332\353\001\351\006\367-\250Q\362\205\002\320AQ\320\353QV\203\376\002X\206\350\0045\260Q\256\334\024J\230f\204\366\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007n\203H\020\220\004\346\204\001\020\220\255F\375\031\315\206\003\021\200\001\360\020\000\377\005\010\200u\210B\210a\373\330\010\242\207\002\013\2101\210A\377\330\014\020\220\005\220_\240\265F\220A<\207\353\001\330\014\330!2\357\220Q\200\001\200\231n""\230?\250\000\211\365\016\224\2764\224\367\004\246\374\004\260\343\004\345\372\004\355\224\013\275\276\031%T\366\372\001T\362\372\005\251\367\004\\\350\341\016\247\233p\336\337\347\002\016\320\016\037\216\362\007\030\230\377\022\2304\230y\250\013\260\0014\271\323\007\307\263\037\201\375\004\237\355\022\233\342\013\303\352\006\312\375\001\013\002D\222\375\001D\304\252\005\302\333\004\270\316\023\237\322\007\002\323\277^1\331\340.\234\300\023\345\362\004\253\300\013\371\263\004\333\354\004\000\324\354\004\330\335\004\356\273\006\272\337\r\310\301\\\326\224\002\373K\277\2604\300\316\375\004\357\260\013\234\331\004\314\335\004\305\335\004\231\233\013\177\002\004\362\332\r\370\250^\001\340\344\r\345\316\036\275\251\027\332\353\004\320\251\013\020\233\350\004\356\306\004\226\311\004\267\260\013A\277\251\016\345\351\025\207\244\016\000\367\312\027\274\334\001\365\243\025\244\356\002\345\206\013\323\200!\273\241\030\324\246\004\304\247\3166\240\370\0041\223\213\025\244\357\003\207\357+\320\033\016\264\2001j\320j\231\326\006\231\372\004\355\307\004\261\250\004\002\346\307\013a\203\326\016\264\244p\240\241\002\265\212\013\277\307\022\235\277\014\000\315\316\020\370\376\004\204\374\004\274\357\013\232\257\013\202\343\004\246\302\013\332\324\004]S\234\374\001S\003Y\243\374\001Y\352\214\007\300\263\210\032\353\246c\362\233\002\367\377\n\230\334\022\244\332\tt\320\001t\306\272\020\255\376\004\313\232\031\222\353\004\374\326\013\265\351\004\350\316\004mW\305\376\001W\003\317\304\013_\003\322\263\r8\207\251p\373\206%\212\325\tu\320u\335\265\020\322\334\004\320\251\205\022\256\355\013\331\351\013\263\323\004Q\247\364\001Q\003\340\247\314\004\361\251\004\360\277\006\201\335\r\261\253p1\260\021\376\223\254\014\035\230b\240\004\240I\357\250[\270\004\245\232\0029\310K\203\320W\221\261\014\203\266\024\273\327\004\274\366\004\236\306\013j\002\222\375\001j\334\347\005\203\341\013\211\352\004\214\356\004\362\205\004\221\302\013-a\217\254\005&\240\303\236\006&\301\313\010\352\255ei!\337\255n""\210\352\004x\322\377\001x\002\231\330\004 \310\316\004\337\313\004\272\277\004\303\304\004\301\277\004b\266\256\020\300\200o\3673\2601\363\260\014\037\240\002\240\377$\240i\250{\270$\270\377f\300A\300Y\310k\320\377Y]\320]c\320cd\377\320dm\320mx\320x\000\345\265\030\254\277\004\261\263\004\206\304\013\343\343\013\373\260\013\363\320\004\212\206\004:\200\266\022c\363\260\005(\250\001\250\243\005\362\202o\3734\260\215\251\016!\240\022\2404\377\240y\260\013\2704\270v\377\300Q\300i\310{\320Z\377^\320^d\320de\320\177en\320ny\320y\257\315\003\000\330\356\013\323\375\004\261\340\004\223\350\004\246\277\013\322\336\013\266\226\013\275\313\004\340\257\311\004\232\350\004\216\363\004\366\342\006\236\270\004)\250\021\356\271\200w5\260Q\225\263\r\"\240\"\377\240D\250\t\260\033\270D\377\300\006\300a\300y\320P\377[\320[_\320_e\320\377ef\320fo\320oz\003\320z\344\315\003\274\350\013\312\365\004\340\272\004\312\365\004\327\277\013>\204\341\006\360\000\000o\002\332\325\013\316\352\004\024\275\217\004\227\345\022e\332\265\005*\370\353\001\230\263\003\331\207o\3076\260a\346\264p\214\370\004\315\366\006\360\000\007\000}\002\322\347\004\336\237\004\226\270\004\322\347\004\343\306\004sf\003\300\265\017\215\212o7\260q\375\267\r\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\377\031\320R]\320]a\320\377ag\320gh\320hq\037\320q|\320|\251\357\003\340\345\004\213\370\004\000\340\370\004\303\272\004\356\345\004\310\277\013\271\372\004\256\370\004\206\270\013\353\341\004\370\270\374\004\303\370\004\244&\360\000\000f\003\021g\302\272\005\237\241\002\360\202u8\257\272\017\226\267d\243\344\004\000\276\272\004\315\374\004\216\302\004\351\376\004\365\322\004\355\262\004\361\315\006\362\301\004l\353\267\010\371\216o9\270\212\222\014\320\021\206\267d@\313\354\004\226\320\022\354\226\004\217\320\031\331\267\n\261\221o:\333\274\0170\366\266d\223\304\031\250\344\004\223\304\031\320\026\313\267\010\351\223o\375;\313\274\017(\250\002\250$\250\377i\260{\300$\300f\310\377A\310Y\320Va\320a7e\320e\267\332""\001\320l\244\361\003\376\370\004\000\321\377\004\234\316\004\261\361\004\210\367\013\212\325\004\373\226\013\276\251\013\222\272\013 \266\231\004\202\236\004\352\363\004\246\344\004\325\267\004k\246\304\005\220\243\002>\272\215\017\r\210T\220\026\340\263\003\364\310\t\371\021\324\357\026\325\255 Q\300l\320R\377S\320Sb\320bm\320]m\337\352\004\320{|\225\354\t\210\374\242\r\270[+\362\353\001\237\252 a\300|\263\263\002c\337\320cn\320n\266\341\004\320|q}\336\251\032Z-\275\255\"q\310\014\304\263\002\277d\320do\320o\301\340\004\320\003}~\355\372\003\341\254\024\344\200-\201\303\002\336\256\013\223\337\017\377\001\310\034\320UV\320V\034\313\343\003\316\334\004\320~\177\336\273\016\262\233\t\356\201-\356\310\253\"\021\310,\336\264\002f\320f\227q\320q\300\326\tA\214\253\033\374\202-2\371\260\235\263\016\325\313\017Q\310l\320Z\377[\320[j\320ju\320\ru\232\227\021E\002\350\312\017\351\2009\366\232\002\215\262\013~\352\232\017a\310|\320[\\\211\343\002\027v\320v\375\225\021F\217\005\377\231\024\252\205-\354\333\231\002\245\263\n\320\021\317\231\017q\320P?\\\320\\]\320]\215\316\003\273\313\021\303G\002\336\230\033d2\231\312\013z\033t\320\331tm(\353\373\006\r\210\224\323\n7\240}!\214\372\tU\260(\270*\310\310\001t\362\322\027\301\263\030%\350\265\007X\320X\302\256\001\363\320_\315\313\003\333\323\001\360\000\000w1\001\347\373\004\205\372\004\325\303\022`\002\254\263\016\315\305\t\334\262\014\207\377\0226\310\021\214\2002$\260\377f\270A\270Y\300k\320oQW\320W\224\374\001\320^\305\226\003\207t\320t\226\377\003\257\375\004\230\344\004\233\267\022_\300\254\022\256\376E\224\255\032\367((\226\230\272\0325\270\377\006\270a\270y\310\013\320\201S\200\203@\350\271\010\234\371\t\337\215-\354\312\002\333\273\t\022\177\320\022#\2401\240H\240\327\001\376\347\300\001B\230d\240)\250;\377\260d\270&\300\001\300\031\377\310!\310<\320WX\320\177Xg\320gr\320r\272\340\r\030\305\333\004\370\344\004\345\316\022j\002\235\342\n\246\304\003\207\2009\376\344\252\003\320\021\"\240!\2408\354\224\324\001\226\335""\t\021\220\345\252\017A\310\\\007\320YZ\305\365\002\323\207\024\373\322\013\254\320\004\301\374\004X\264\234\006\277\334\004\261\252\004=\230\204\304\0012\313\251l\370\313\301\003\224\355\t\240\355\t\017\320\017 \240\315\001\246\304\001\330\004\252\355\013\340\301\022T\320\363TZ\306\215\002\347\220\003r\320rx\377\320xy\360\000\000z\001\000\244\337\004\275\243\004\264\364\004\253\337\004\210\264\004\245\346\013\325\236\013\377\361\004\320\254\346\004\340\301\022\230\320\004\315\315\004z\202\375\001z\003\335@\241\372\001@\004A\250\372\001A\004]L\257\372\001L\004W\266\372\001W\246\360\005]e\304\372\001e\004f\313\372\001f\242\342\005\335|\331\372\001|\004F\261\367\001F\005\335L\270\367\001L\005M\277\367\001M\005\373N\005\303\224\n<\220|\240;\367\250a\200\275\313\002A\330\014\023\317\2206\230\021\000\004\003\0107\2309!\030\001\000\0048\2301\003\010\025\004w5\230\0014\010;\230aI\001\007:\230QP\001*\004X\000e\001\234\313\002\377\330\014\r\33046\260d\277\270!\2705\300\001|\001\017\233\210q\000\004\220\007\275\313\001\016\003t\321\220V\000\003\005\217\311\001A&\003u\220\357A\220S\2302\004u\220B\357\220d\230!@\003w\220a\277\220t\2308\2401P\002\320\375\017\244\317\001d\250&\260\001\260\271\021\343\001\277\307\004#\2401\261\315\001N\376\306\314\001\330\014\033\2305\240\014\377\250A\250[\270\001\270\021\374\237\307\001\331\315\001.\250\001\330\020\024\377\220H\230A\330\024,\250\375G\225\315\001\340\020(\250\007\250\353q\260\231\311\002qB\n4\320\047\177B\300!\360\006\000\t\347\316\001\177\010\014\320\014\034\230A\321\314\001\277U\230-\240q\250\232 \017\377\210\177\230g\240U\250!\373\330\024\212\321\001x\240q\330\020\337\031\230\026\230w\305\342\001\250a\237\330\021 \240\007\231\340\002\021\013yo\250\002\250\047\242\316\002\014\020\224#\362\352\316\001M\221\315\001\370\316\001D\320\030.\237\250a\250q\330\026\005\177\001\023\377\220$\220l\240\"\240A\377\330\010\013\210:\220Q\220\374\237\304\001\332@5\230\010\240\005\2401Q\377\310\003\232@\377\311\002\020\027\255 \354\317\001\357""\014\021\220\030\335\314\003\230v\240\377Q\340\014\020\220\003\220:\357\230Y\240a\257\341\002\020\025\220\337X\230Q\230j\371\005\r\320\357\r\036\230a\313%H\230K\357\240q\250\013\270\317\003\013\2106\317\220\027\320\030\274\252\001\231\320\002\r\023O\2207\320\032\376\254\001\251\320\001\340\215\004}g\232`\013\022\220!\330\033\001\374\335a\363\320\002\330\020\021\330\024 \377\240\005\240[\260\004\260A\357\260V\2701\314\312\002\200A\330\377*A\320AX\320XY\337\330\010!\240\035\356\002\010\035\336\335`\010\"\240,\010\003\032\230\375,\251\000x\250q\330\010\036\377\230o\250Q\250h\260a\377\330\010\034\230G\2405\320\277(<\270A\270[\312\230\002\330\377\010\"\320\"3\2601\260wH\270A\254A*\250\021\016\002\3758\371A\270(\300)\3106~\241\217\002Y\320Ya\320a\266\260\001\037\360\000\000y\001\356\337\004\332\371\004\327\332\013\300\313\325\004\315\262\004\352\360\004\272\372\004\271\374\004\311\307\004E\003\376\217A8\2203\220a\330\014\377\037\230q\320 :\270)\377\300<\310y\320XZ\320\357Za\320a\254\261\001\330\010%\377\240^\2608\2701\270A\377\330\010\016\210k\230\027\240\365\001\003\003\021\332\314\001x\220|\240\3772\240X\250Q\200A\330{+,\333\2001\250\017\260q\337\316\001\362\373\013%\254a\225$A\260X\270\377Y\300f\310F\320RT\377\320T\\\320\\h\320h\300\242\221\006\266\344\013\312\366\004\273\351\004\345\250\013\326\327\004i\002\276\346\r5\260Y\270l\234\340\001U\337\320U\\\320\\\224\303\002\010 \317\240\t\250\030\214\324\003\242\200Q\320(\\\336B\360M&\240Q\216b4\354`\377Q\260h\270i\300v\310\377V\320SU\320U]\320\017]i\320i\332\224\006\253\353\013\343\375\004\210\300\004\370\241\341\013\272\273\006\335M6\260i\270|\376\313\337\001V\320V]\320]_w\320_`\313\204\001\032\2508\362\325\003\276\241\200S9\270\021\270!\347\204\r\047\376\336\324\001\"\320\"5\260Q\260\377a\260x\270y\310\006\310\377f\320TV\320V^\320\001^\345\303\t\357\263\013\231\370\004\244\350\004\320\340\013\204\273\006\324\204\r\3377\260y\300\014\372\336\001W\320\377W^\320^`\320`a\177\330\010\"\240+\250Xy\001>\216\204S\320(:\270!\272""\207\001\340\206\013\327(\240q\374\206\0026\362\000q\270\377\010\300\t\310\026\310v\320\377UW\320W_\320_k?\320kw\320wx\353\206\002\262\263\013\320\206\340\004\321\354\004\377\337\013\233\352\004l\324\204\0168\270\367\t\300\034\334\245\001X\320X_\373\320_\207\360\001\330\010#\240<\323\250x\371\205\003\217\204S;\262\207\003!\320o!2\260!\302\207\001\330\010\002\007\256\235\214\001)\250\001\377\210\0027\201\207\001\270\377\030\300\031\310&\320PV\377\320VX\320X`\320`\007l\320l\360\220\006\333\351\013\372\305\004\343\267\013\313\344\004\300\237\354\004\345\372\004\333\351\004\275\321\004\342\351\004\242\370\007\010\013\375\210\366\210\t9\270\031\300,\310\377i\320WY\320Y`\320\375`\260\355\001\330\010$\240M\260\371\030\262\204\003\360\210\017y\230\014\240B\377\240h\250i\260|\30027\300X\310\320\2107\320(\250$\206\213\013\210\335\200C\215\251\013\276\274\006\330\277\200>\300\212?\213\215\003Q<\333\214.\347\366\002\000\000{\001\351\264\013\202\330\004\340\323\343\004\257\372\004\263\360\004\203\274\006\366\213\201\320(=o\270Q\270a\364\216\r+\250\232\211\003^\245\211\002\2708\3009\365\214\001X\217\216\002\377b\320bn\320nz\320\001z\270\367\003\246\355\013\261\376\004\356\357\004\267\367\004\324\302\004\307\273\006\376\342\216\r;\2709\300L\320P\377Y\320Y[\320[b\320\375b\354\276\001\330\010&\240o\260\001X\226\003\247\214S\362\004\327\217\001\363\220\006\271\200<\340\366\004\376\275\2008\340\010$\240F\250*\376\360\343\001\014\210E\220\025\220a;\220z\321\344\001\033\2301\227\340\001\264\200`\234\362\346\003\205\223\014,\2501\242\223\002\276\213\002\270\347H\300I\216\217\001\253Cc\320c?o\320o{\320{\225\302\003\356\356\013\300\340\333\004\235\311\004\331\333\004\312\331\004\271\235\006\362\222\r<\270\377I\300\\\320QZ\320Z\277\\\320\\c\320c\310\300\001\330\377\010\047\320\0477\260x\270\247q\300\001\310\214U\246\351\001\021\376\224\r.\371\250\210\221\003\254\225\001Q\270h\300i\376\232\215\001[\320[]\320]e\377\320eq\320q}\320}\200\200\366\003\207\263\013\272\375\004\350\360\004\247\237""\013\216\322\006\354\224\r>s\270i\350\260\001\373\222\003e\320e\332\275\001\377\330\010)\320);\2708\354\360\351\002\251\224R\320(\363\004$\240N\000\232\215\005\002\006\276\232\001\305\200<\374\367\004\322\355\004\320\303\004\334\333\004`\310\335\004\366\374\004\267\310\004\244\360\004\317\317\004R\003\203\201!\177\340\010#\2406\250\031\272\352\001\016\254\205\n\032\230!\310\347\002\000\034\306<\331\215\005\377l\270,\300b\310\010\3201P\246\2159\366\351\003\347\231\0142\260\360\231\003\200\204\002s\300(\247\370\001\333\324\003a\320a\361\225\001\037\360\000\000v\001\344\225\013\275\306\004\351\372\004\340\316\377\013\256\340\004\212\363\004\326\324\006\335\231\rB\300)\334\276\246\001\340\217\003i\320i\357\270\001\330\010\377-\320-C\3008\3101\235\310\230\231T\320(H\214\360\002\352\233\0146\231\260\363\227\003\227\354\002\300h\376\220\001\253\315\003e\037\320em\320m\366\243\003\321\303\013\243\342\013\300\235\372\004\375\321\004\226\372\004\276\340\004\247\377\006\340\233\rF\300\375i\231\262\001d\320df\320f\377m\320mo\320op\330\177\0101\3201K\3108\250\354\004\342\324\233\035>\275\215\001\323\235/\361\233\002\014\300A\034\361\235\r\325\233 |\320|\320\312\003\225\367\013\312\364\004\024\245\374\004\334\205\022q\253\233M@\215\212\001\316\2371\334\237\001\007\034\300Q\314\2330\262\200I\303\233<\305\2006\222\230\001\007L\310\001\355\241\r\350\227!\342\311\003\213\300\004\316\342\004\300\375\320\004\363\354\004\377\336\004\202\232\004\377\336\004\226\373\004t\002\016\241\225LB\300!\273\2416\310\2043\247\215I\272\241<\377B\320BT\320Tk\320\021k\367\314\003\374\254\006\333\2457\\\326\276\001\343\245\003\321\221\001\276\222\246\t\330\010(\320(\271\240\001(\356\357!&\320&\256\234\001\010\300\001\000\221\246\"\262\211\n\304\376\004\232\246\013\315\354\013\324\336\004\256\334\004\373\315\004t\267\377\004\250\320\004k\301\377\001k\003m\310\377\001\351m\362\374\005\237\256\004M\251\256\001M\004S\256\260\256\001S\004U\267\256\001U\236\256\005h\356\305\256\001h\004s\314\256\001s\004y""\356\323\256\001y\004{\332\256\001{\004|\371\004\317\246?\207\235\005j\270\014\300B\357\300h\320N\274\242\003l\320l\250\332\270\001\242\247\001\264@U\214\367\001\010\377\2077\\\007\320QR\212\245.\272\216\t\267\307\013\263\231\004\221\362\004\300\255\364\004\374\325\004\227\344\004\355\357\004\206\356\006\376\244LB\320\377BX\320Xj\320jk\224\234\2533\314\210\003\t\264\226\002[\253\226\002\276\253\001\030;\300\021\251\204\013\047\320\047\021\004\326\241#\000\350\253\002\344\247\004\266\356\004\321\346\004\352\311\013\201\342\004\257\330\004\264\360\004\rC\316\366\001C\003\217\335\004\257\330\004\276\204\013\276\204\004\272\344\263\004s\377\366\001s\003}\206\367\001}\273\003F\356\263\001F\004R\365\263\001R\273\004X\374\263\001X\004Z\203\264\001Z\357\004[\004\330\357\241Fo\270\\s\310\022\353\217\001\307\231\003q\320q\324\237\001\236\242\204\004[\320[\\\256\2563\344\250\001,\000\302\312\002\236\207%\344\250\036\327\300\002\370\335\004\274\256<\235\324\004\330\351\004t\202\331\004\352\314\004l\206\372\001l\003v\215\372\001wv\003\177\224\372\001\177\003J\374\266\001\327J\004P\203\267\001P\215ES\004\004\233\251?\216\207\037D\242\222\001\371\217i\352\226\002\245\336\013\304\331\004\300\272\372\004\307\231\013\207\274\004\300\354\004\356\347\006\240\255LD\320\217D]\320]\366\361\001\276\2633\347\243\001l\377\310.\320Xf\320fg\337\330\010#\320#\340\257\001X\270\021Q\000\t\257\267\001\335\243\037\360\360\245\001\274\370\004\246\211\013\200\326\333\004\355\360\013\322\233\013\250\354\004\322\356\004\353\321\013\363dt\326\207\377\001t\003\363\273\004|\225\377\001|\003\363}\003\370\243@\244\252\005k\270\034\300oR\300x\310\342\272\001+E\204\225\001~\223\2661?\270q\300\014\310\262\227\016\363-\250\320\227\003\367\254\002\270X\300Y\374\307\260\001\313\241\003d\320dp\320p\200\302\345\003\260\227\013\375\372\013\303\363\004\351\374\022\320\340\006\255\266\r=\243\270Y\263\323\001\232\241\003\315\231\003g\257\220\004\030\223\300\021\245\223\001\241\266\033,\320\2006\252\270\001\035\013\300a""\235\264-v\250\312\002\312\256\013\305\270\013\331\356\004`\242\363\004\223\375\004\377\360\004\245\354\006\212\264K-.\232\2727\001Q\350\222F\231\2467\272\375\004\343\272\004\351\360\004\275\342\004\315\335\013\272\331\330\004u\210\370\001u\003{\217\370\001{\346\365\215\005~\003\247\222`\347!#\240=\022\212\301\001\330\223\275)\234\267$\010\226\2630\377\260$\214\2675\373Z\250\324\303\001-D\320DW\207\320WX\374\265\001\314\200/\265\236\003\334\224#x>\301\267\013\360\000\000x\001\205\354\004\256\234\013\000\240\372\004\273\376\004\245\253\004\303\351\004\302\365\004\226\347\004\253\342\006\207\273E\010\215$\315\2116\315\273\001+\275\240\013\257\273-\332\337\n\323\275\004\000\322\360\004\245\356\004\205\363\004\306\263\004\251\365\004\324\376\004\216\342\004\376\346\004\260\342\367\004\376\346\004\352\353\004\205\347\004W\003\337\220N\310\372\254\311\001.\225\221\013 \240\r\250Q\313\250a\320\205\001X\313\277\002\354\303&Z\300\177q\330\010\047\240~\260\370\277\001\255a\204\263\001n\260\372\301\001Q\372\303\037j\377\320jo\320ou\320u\007w\320w\207\354\003\373\317\004\220\264\004\216\300\004\307\365\004\240\206\363\013\220\304\013\2462\271\351\013\225\314\004w\232\377\001w\273\003y\241\377\001y\003z\353\207Ff\377\250G\260?\300,\310b|\206\274\002\236\326\001\200A\33001\342\306\010\374\255\2013\301\302/f\320fk\320k?q\320qs\320s\254\370\003\335\262\004@\256\377\004\210\375\004\372\374\013\230\321\004\310\372\004\217\354\004E\243\377\001\333E\003\201\375\004H\003\306\302EV\250\3077\260!\331\200C\235\301\004\233\234\007\330\010w%\320%\231\301\001x\270q\312\314\001~\223\301\032h\320hm\320m\245 \007u\320u\360\365\003\243\347\004\320\236\013\301\372\013\362\360\004\200\216\370\004\360\241\004\246\363\004\301\356\004\321\351\004\354\374\004\235\234\022t\000\270\311\016\274\301/\301\277\003\242\203U\275\265\002\277\313+\270\206\026\236\213\013\020\252\370\013\322\356\004\366\365\004\355\236\022L\255\313F\260\203H\326\2750\377k\320kp\320pv\320\001v\235\306\003\236\354\004\211\375\004""\203\326\013\375\277\004\364\365\004\276\356\004\000\346\365\004\361\303$\357\2756\323\200O\224\206\t\210\251\t\317\243\013\250\300\0334\366\200D\237\270\022[\256\330\001[\003\327\372\004\226\213\022\245C\312\330\001C\277\330\005\325\243\004^\337\330\001^{\004`\346\330\001`\004a\004\247\233F\014\276\213\016\315\265\001\320y\276\302\003\302\316\004\303\263\006\346\213\001\001F\310\231\001\320\323\006\262\2137\262\262-\316\213\035\324\303\004\303\373\004>\342\313\006\360\000\000l\002\306\273\004\356\246\004\272\340\311\004P\271\333\001P\003R\300\333\001R\213\003S\243\213OG\255\220\001\355\200:\324\2662e\377\320ej\320jp\320p\017r\320rz\212\241\002\354\375\004\211\336\004\330\200Np\353\3235\225\216\006\347\200?\276\320\003<\300q\244\330\r\370\331\215:\201\216\013\236\310\006\360\000\000o\002\324\346\255\004\206\261\004M\205\340\001M\302`\360\000\027\000S\003\215\261\004V\267\215@\275\330\003\240\047\363\320G\216\323\003\223\203AL\320PQ`\266\273*\263\203$\262\225\013\327\275\006\236\343\001\002H\256\342\001\303H\003\324\370\004\220\373\004\266\263\004\300\225\004a\003\354\274\330E\367\222\00523\200\335\010\"\240-\006\223\340\003\035\230\326\227(\351\2242\263\222=\210\373\004\343\265\004\032\375\304\004J\323\224H9\260\242\343\001\334\200@\351\3220\207i\320i\270\217h\211\325/\362\205\005\236#3\3414\303\341\010\215\243\010\231\234(\253\333/g\320gx\241\234\023\225\224N\300\3335V\250:\260\332\341\001\210\233!\320\205\006\327\205\010Y\267\335\002\323\343\"\325\335$\007\356\373\333\007h\320h\200\200\234W\250I\364\327\200E\327\331$\047\207\346\010j\320jq\037\320qw\320w\227\356\003\217\342\004\226\356\004\000\210\356\004\230\340\004\212\326\004\201\322\004\217\334\013\226\236\004\217\356\004\343\214\004sN\003\325\331E\233&I\320I\357\373\001D\253\350\010\327\334\001\021\265\316\001\376\211*\356\245\003[\312\214\020\016\255\342\032g\320g\231\231\027\240\372\004\266\360\004\317\223\013D\314\265\006\276\250\001\002\227\301\004\243\320\004\325\245\004\\\244\360\001\333\\\003\236\301""\004_\003\257\342EV\250\373;\260\220\360\0013Q\320Qt\237\360\000\000u\001\364\337\004\200\260\004Z\352\234\361\001Z\245\264\005]\243\361\001]\004^\371\004\353\242>\237\310\002\320HY\320Y\037o\360\000\000p\367\317\005\205\373\004\311\332\004\366\267\214\004B\003\235\310+i\320in\377\320nt\320tv\320v\000\361\377\003\326\276\004\343\373\004\243\351\004\263\341\004\276\226\004\361\303\004\210\266\004\255O\214\363\001O\004\337\362\022r\250\363\001r\273\004@\360\362\001@\005I\367\362\001I\273\005P\376\362\001P\005V\205\363\001V{\005X\214\363\001X\005Y\005\270\337E\006\377\243\00545\311\346\001\370\217\004\322\257\010\373\210(\362\351$qw\230\350\007\333\212g\374\3515W\250J\301\204\002/5J\310!\202\250B\036\366\226\017\237\354\032\230\260\250\026\250\340\013\321\232\20778\333\252\021\315\224\nW\000\344\272\002\317\362 \260\3600\320\233\017\375\352\004\200\306\004\221\375\004\371\372\004\370\373\354\004\335\336\004\344\317\006\360\000\000t\002>\250\262\006\360\000\000@\003\353\302\013\314\313\004\364\371\302\004\362\372\004g\322\226H5\260\t\270\000\347\370\001\202\201I\207\3611\266\255\017\274\365\004\274\322\004\274\365\004\317\353\004\000\323\355\004\252\363\004\331\262\004\303\365\004\272\375\004\261\227\004\247\335\004\235\253\004\255_\250\375\001_\003\233\316\004g\266\375\001g\003\003h\240\255H\362\200Z\354\255\t\233\313\013\253\206,\207\201Q\272\200\310 K\374\377\001K\004Q\374\377\001Q\346\365\320\005T\004\265\364?\223\256\005E\260\031\373\270/\236\323\001W\320W]\320\357]b\320b\257\336\001\200A\330\374\220\204K\220\2302l\320lr\320r\007t\320t\204\347\003\213\355\004\223\330\004\252\363\004\222\355\004\320\255\361\004\221\367\004\226\340\006\341\340\001\002\310\217\006\360\000G\000B\003\270\246\004\236\306\004\365\265\013h\374\323\001\007h\003i\236\221H\327\206S\310\365/\270\263\017\342\355\004\000\356\342\004\365\363\004\351\355\004\351\375\004\351\367\004\226\304\004\362\340\004\351\375\004\240\203\321\004\315\345\004\253\223\004\312\263\004\237\207\004i\313\326\001i""\343\003j\205\244H\246\211S\313\366\004$\320$\0015\236\273\005\227\266\013\264\366\033\351\223\017\256\354\004\303\345\004\266\362\004\000\265\354\004\305\360\004\316\370\004\370\226\013\330\323\004\321\366\004\334\253\004\356\256\013\232\265\320\031I\240\331\001I\004\301\224\004\256\207\004R\346\217\323Ff\250\252\207\001\374\322\002T\320T\377Z\320Z_\320_h\320\003hi\335\206N\225\266B\303\344\004\337\320\004\302\363\004\312\344\004\220\271\357\004\253\367\004\355\311\006\224\374\001\002\316\371\004\325\273\004S\326\217\334\001S\003\203\232\004c\235\334\001c\003\004\322\204\004\250\334\004l\262\266H\206\217S\301\266F\214\360\004\242\326\004\000\206\362\004\223\360\004\246\351\004\207\370\004\261\252\013\242\276\004\374\336\004\272\303\004m]\352\336\001]\003\224\326\022m\003\214\366FCV\250\370\200Z\340\266W\231\201Q\214\212\004o\345\341\001So\003\235\334\004\240\315\004D\336\341\001D\344\217\005\335W\354\341\001W\004Y\363\341\001Y\004\335c\372\341\001c\004l\201\342\001l\004]x\210\342\001x\004~\217\342\001~\214\235\005\003A\005\222\267H\202\220\022\240\303\n\227\365\004\276\330\004\222\375\013\373_\002\275\220\001M\320Mb\320\373bc\244\230L\014\300K\310q\300\346\337%\335\355\032\314\230@\231\312\004\321\205\013\336\364\006\360\000G\000R\003\336\307\004\205\216\004\204\321\022G\327\345\001\241G\200\335\005\350\242\004\353D\206\241\004o\372\345\001o\272\361ED\202\241\001D\005J\211\241\001J{\005L\220\241\001L\005M\005\276\261?\374\371\223\032\320\202,N\320Ne\320eO~\320~\177\253\234G\241\232\003\034\312\373\001~\276\311\001\330\010!\320!2\333\370\005\300\362\226k\333\370\004\321\306\004\253\246\004\240\277\004\354\234\006\360\000\327\000g\003\206\325\004~\331\351\001~\003t\337\206\004\365\340\004L\322\351\001L\004V\331\351\001uV\307\351\005k\347\351\001k\004q\356\351\001\365q\316\351\005t\246\227L)\300<\310\235r\361\253\002\\\320\\\216\376\001\360\227\001Q\230\377\350\002\224\277\017\355\2373\320(\305\334\006\334\354\t#\377\240>\260\021\260(\270!\374\207\374\001\273\334\033m""\320mr\320r\007x\320x\213\275\003\241\344\004\234\361\004\257\347\004\222\376\004\340\243\361\004\344\252\004\271\341\004\333\351\004\230\314\006\360\000\000iH\346\272\005\300\321\004b\360\354\001b\003\364\354\004\rx\376\354\001x\003\245D\364\354\004\232\344\013\263\302$\374\206\3351\212\233\010\320:J\310,\320\377VX\320X^\320^c\377\320cl\320lm\200A\037\3308P\320P\357\222\001\207\205I\266\364\001?M\310\035\320VW\262\252=\315\225\047\340\342\335\004\272\317\004\303\302\006\202\276\002\346\255\006\360\000\000\241_\205\360\005\263\347\004\301\352\004\345\305\004E\220\360\001E\347\004F\004\250\252G\325\243\0059R\320QR\267\375\003\304\204G\237\367\001N\253\345\001Y\220\345\031@\222\230W\254\375\004\364\362\013\300\327\004\204\320\004\207\205\004p\205\363\0015p\375\324\005A\367\362\001A\004\240\214\004\336\230\004\272\202\363\004\\\223\363\001\\\004d\232\363\001d\253\004j\241\363\001j\237\220\005m\253\230L+\376\364\212\001S\320SY\320Y^\377\320^g\320gh\200A\301\330\242D\225\366\027\261\330\006\215\2105\277\323\001>\310\377\036\320We\320es\320\003st\315\350\031\237\323,\332\236\047\223\344\004\264\226\013\240K|\353\360\004\323\350\006\360\000\000}\003\272\244\004\255T\272\366\001T\004\247Db\310\366\001b\272\255En\326\366\001n\004w\335\366\001w\273\004\177\344\366\001\177\004E\345\261\001E;\005G\354\261\001G\005H\303\261\016\323\3237\210\356\244\001\260W\364\312\001\001\204\375\004\343\270\006\361\216M\036\377\300~\320Uc\320cq\377\320qr\330\010\037\320\037\1770\260\001\260\030\270\021\000\t@\014\t\214\372\001\327\247V\364\347\004\346\237\013\224\334\004n\215\372\001\003n\003\250\227\004\266\354\004\317\345\004\346\237\004\305\364\004\273\217\004P\210\206\004\360\317\004\221\372\004\302\217\004u\276\372\001u\220\372\005M}\314\372\001}\004\332D\303\265\004T\333\265\001wT\005Z\342\265\001Z\005\\\351\265\001\357\\\005]\005\241\250K\047\300\034\373\310R\301\343\001Z\320Zc\320ocj\320j\355\324\001\320x\260\267\003|\235\361\004\242\341\006\200A\330?@\232\261\032\370\312\302\n\266""\276\002\253\266\001,\250a\250q\377\330\010\032\230,\240a\240\375x\007\001\036\230o\250Q\250\377h\260a\330\010\034\230G\003\2405\213\256f\366\372\004\363\355\004\310\330\004\375\372\004\366\372\004|\312\370\004\371\313\006\360\000\000V\003\370\211\031\364\217\376\004\312\370\004H\231\376\001H\004I\004~\270\335G5\260\007\260z\300\344\261\001\003?V\226\217\002\373\222\030\310\2017\233\336\001\275\316?\250\251 \000\370\347\004\303\365\022\370\347\004\307\373\004\271\370\004\344\243\004\300\370\004\252\236\004h\221\215\004\304\226\004\261\232\004N\321\373\001N\004\334\211\004\302\304\226\004W\275\373\016\215\336/\275\317\005\201GAB|\300\376\010\210\226\034X\250W\260A\342\204%\376\363\363\001\001\330\010%\240^\260\3371\260H\270A\366\225\"s\320\003sy\353\327\005\251\206\013\364\264\004\373\352\004\255\304\004\240\346\004\000\334\326\004\342\350\004\353\361\004\246\341\004\333\357\004\303\373\004\356\331\004\377\301\004\036\362\264\006\360\000\000h\302\373\005\302\366\004\321\376\004\354\307\231\004\212DO\004\204\364GV\2506\237\260\025\260i\270\331\366\001\254\201VCs\3001\223\374\001\370*1\260\001\347\376\002~\234B\300\030\310\031\320R\216\227\003\277`\320`h\320h\243\307\003}\003\320}\231\351\003\302\346\004\302\376\004\237\351\004\341\353\004\315\257\004\000\310\371\004\332\373\004\361\364\004\371\366\004\350\353\004\254\344\004\333\331\004\372\267\004\200\246\351\004\353\251\006\235\332\001\307\371\005\223\231\022\222\214\004\276\376\017A\373\300\031\327\230\001_\320_a\320\377ah\320hj\320jk\277\330\010,\320,A\335\000\0218\310\277\001\274\367\025\241\201bE\300Q\363\367\001\376\204\n\2753\312\310\001\"\320\"A\360\370\001\300\3678\3109\372\255\002`\320`b\037\320bj\320j\203\205\003\234\354\003\344\356\004\000\241\347\004\265\332\004\204\361\004\320\262\004\373\367\004\213\305\004\322\374\004\364\367\004\240\353\356\004\331\374\004\360\325\004\353\356\004\226\226\013m\316\374\001m)\003\234\217\004\313\374\004B\201\340\001B\375\337\005\225\217\004\372\366\222\004U\355\337\016C""\3009\310L\343\320X\204@\202\216\003\341\233\001\330\010.\377\320.E\300X\310Q\310wa\330\010\215\201zF\300a\270\357\001\356\210\210\n4\2601\216\373\002B\300!\377\3001\300H\310I\320U\367[\320[\274\003k\320kt\003\320t\266\335\003\264\345\004\253\237\004\204\310\004\332\354\004\213\364\004\000\363\337\004\276\357\004\211\373\004\371\361\004\353\370\004\222\364\004\312\326\004\227\216\013P\262\237\004\214\260\004\234\222\013\231\234\013M\226\343\001M\266\273\005\335U\244\343\001U\004V\373\342\016D\300\377I\310\\\320Yb\320b\377d\320dk\320km\320\377mn\330\010/\320/Gx\322\377\001\360\332\002\234\204zG\300q\310\224\213\r\3155\336\213\002\320\"\266\210\002\262`Y\320\357V\\\320\\\275\003l\320l\007u\320u\205\344\n\232\367\013\342\357\004\314\320\004\221\376\004\000\306\362\004\364\270\004\365\352\004\305\355\004\241\301\004\201\374\004\211\343\004\201\365\004\370\215\216 \332\255\004\211\216$E\300Y\310l\376\235\224\002e\320el\320ln\377\320no\330\0100\3200\377I\310\030\320QR\320R\375S\372\204\"\340\010\014\210J\220\277m\2406\250\021\330\010\000M\357\230\024\230Q\005\001J\220i\337\230q\240\004\240\346\215\002\r\210\277O\2309\240F\250\216\245\002\r\377\320\014\036\230b\240\010\250\375\001-\001O\2301\200A\340\277\010\020\220\004\220A\274\375\0014\377\210w\220a\220w\230a\177\330\014\021\220\030\230\021\004\000\377\320\021!\240\021\360\006\000\377\r\022\220\037\240\013\2501\276\026\001\036\230{\250!\037\001\033\357\230K\240q \002\"\240!\376\037\003\030\230\037\250\001\250\024\375\250\376\365\001\r\021\220\005\220V\377\2301\230E\240\025\240d{\250!;\000\020\027\320\027\215\231\001\377\024\260Y\270a\330\020\035\377\230T\240\021\240!\330\020\377\023\2204\220q\320\030(\373\250\003`\000\024\030\230\001\320\357\031+\320+\220c\020\025\220\335\\#\000.\260\001\223\001\025\220\177a\320\027(\250\004\250\304\217\001\376K\0243\2601\260D\270\t\373\300\021W\010\025\220[\240\001\357\240\036\250q<\006\047\240t\363\2501\325\003P\002)\250\033\260\357A\330\014\020\240\0221\260\021\373\260$\241\216\001""\330\020\036\230d\337\240!\2401\330\225\000U\230\367!\230?\326\000?\270$\270wa\270q\017\001X\230Q\210\227\001\372\242\006)\211!\330\010\017\210q\024\347!\234\351\006\035\246A\"\345\311$\345\341*\262\272\001\037\320it\320t\240\373\003\346\230\013\200\366\004\354\343\326\004\237\373\004]\002\226\341EX\250Q\360\260\2003\237\311\002\367\374\r\204\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\230\311\004\370\374\004\340\367\004\303\330\004\272\303\004\323^\002\273\376E\254\20089\206\237\001\"\320\343\"3\202\225\007\346\327\032\275\220\001\320kv\027\320vw\307\327\001\001\241\305\004\366\277\004\360\221\022s_\002\203\327E\223\2028:\270!\312\351*>\225\310\001\320lw\320w\227\364\003\227\354\004\200\331\276\004\275\327\004\201\307\004\314\356\006\202\373\r\315\2305\372\2038;\363\2701\234\330+\347\255\001\320mx\3201x\372\335\003\306\225\013\265\222\022a\002\216\335E\342\2058\367<\270A\201\372\t\330\010&\320\377&7\260q\270\010\300\001\272\344\374\001*\374\213\001\"\320\"\253\377\002\270\237(\300)\3106\351\337\010\350\217\001\320\017ny\320y\364\357\003\263\363\004\273\320\004\233\221\022\330\243\362\004\362\367\004\352\376$:\270\363\263\001y\320\257XZ\320Z\360\223\003d\357\233\0038\343\2701\273\001\347\226\017\275\374\003h\250j\377\270\014\300B\300h\310an\204\2105>\270a\357\376\t\330\010\335\367\007\346\203\377\001,\250\322\223\003\253\377\002\270H\300\367I\310V\344\253\002[\320[c\377\320co\320op\320p\007{\320{\204\315\003\301\223\013\246\312\004\256\374\004\212\372\004Kp\002\336\335\001\002\277\355\004\360\376\022O\321\376\016\367<\270I\327\270\001Z\320Z\\\237\320\\c\320c\223\266\001\346\274\0027?\260x\270q\300\001\374\225\021\231%\237m\270<\300r\225\220\002\246\2125?\371\270\366\361\016\200\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\360\324\004\213\317\004\351\324\004\205\362\004\311\376\006\311\235Gn\215\2148@\300\001\341\363\r.\250\316\361\003\336\366\310\002\270h\300i\254\350\001[\320\177[]\320]e\320e\245\253\001\037\320r}\320}\324\340\003\212\376\004\340""\333\004\360\365\320\004\336\343\004\217\376\006\333\372\r>\270i\300\377|\320S\\\320\\^\320\357^e\320e\274\260\001\330\010)\037\320);\2708\363\236\003\337\234\025\367\2158wA\300\021\313\365\r/\250a\351\365\002\376\220\310\002\270x\300y\320PV\376\261\226\002^\320^f\320fr\237\320rs\320s\263\276\001\330\332\001\002\350\360\347\004\234\343\004\326\204\022g\212\220\016?\270y\377\310\014\320T]\320]_\337\320_f\320f\254\270\003*\320\017*=\270X\330\235\003\223\200U\264\244\n\265\2002\330\203\346\004yn\334\3753=\270\372\366\016+\250\270\321\216\003\263\360\002\330`9\310F\257\243\002Z\003\320Z\330\327\003\245\362\027\335\353\004\312\313\004\344\353\004\204\240 \235A\342\312I7\260!\371\225\n\377\265>8\003\270\001\211\224*\234\3369\372\330\004\321\336\013\244\326\004\244\303\004`\313\320\004\372\330\004\333\250\006\356\255I\233\341\002\340\010\355\273J\000\262\276g\217\323\004\335\355@\204\3677\335\343\004\370\200I\344\205D\331\322\047\374\311\356\004\206\376@;\2709\300L\320\177PY\320Y[\320[\232\244\003\377e\330\010&\240o\260X\007\270Q\270\212\247\032\245\201!\211\2665\377\350\001\312\235*\000\314\3502\321\222\004\245\330\004\260\260\004\271\346\004\261\255\004\240\252\004\343\376\004\350\330\325\004\305\266\004\254\330\004l\307\363\001l\003s\022\316\363\001s\321\301\005\362\322\004|\320\350J\260\266\004\342\206\032\034\371\2707\354\234-g\320g\225\343/\320\370\004\212\364\004\000\245\351\004\225\365\004\272\363\004\366\246\004\327\370\004\251\366\004\264\266\004\317\363\004\004\266\275\004\336\321\022~\226\343J\3308\216\274\014\350\265&\340\206K\000\364\265\031\360\366\004\253\315\004\202\266\004\262\315\004\220\274\004\202\341\004\255\346\004\030\213\354\004\251\307\006\335\332J\n\270\360\216\013\233\270G\250\207\003\374\330\343\t\344\343\t#\320#4\260A\360\314\210\001\232\233\t\236\320\001\244\327\035k\320kq\037\320qs\320s\231\331\003\375\356\004\221\331\013\000\204\357\004\266\376\004\210\374\004\327\346\004\243\233\004\211\271\004\202\271\004\210\374\004\000\262\320\004\222""\315\013\336\346\004\202\344\004\275\207\022\222\315\004\223\274\004\304\333\004\272\301\373\004_\313\373\001_\004i\322\373\001iU\004\321\371\004z\340\373\001z\327\371\005B\342\371\001uB\321\327\005U\360\371\001U\005_\367\371\001w_\005e\376\371\001e\005g\205\372\001\367g\005h\252\327HF\260%\260\367y\300\014\216\264\001Z\320Z`\003\320`\332\366\003\233\375\003\214\307\004\366\353\004\313\346\013\243\364\004\300\341\366\004\365\221\013\245\257\013\311\265\004\252\364\004\316\343\013]\003\000\360\252\n\222\275I\317\2230\346\355\023\215\366\031\371\237\004\321\350\004\317\267\0044\260\366\004\327\324.r\376\377\001r\003\210\325\004\360\307\006\200\225\303G\306\275\006\234\224\010\205\300I\211\245\002\302\300\n\343\244\033j\003\320j\205\231\020\351\345\004\254\353\031\312\366\004\266\303 \244\333\004\200\331\303\004\330\366\004\231\371\004\230\217\004\337\324\004\274\316\004\253\333\004\177\000\225\350H\227\201]\334\2331\276\300\003\347\251\003\267\275\004\212\374\004\240\353\031\240\344\363\004\341\245\004\234\361\004\303\353\004\216\336\013M\276\371\001M\241\003\311\371\004\362\363\004\302\371\004\342\324\004w\341\371\001w\365\003\327\327\004\177\357\371\001\177\003@\004\000\271\350H\220\204]\331\250\003\263\306\t\264\250\033\326\366\003\303\335\024\304\353\031\000\215\364\004\257\300\004\215\364\004\347\353\004\272\374\004\352$\220\377\004\343\366\004\020\233\364\004\334\366\004\322\320\004\332\335\022A\316\371\016\344\2501\265\311\005@\211\207]\261\251\002\252\310\213\272\377\004\206\344\013\354\353\013y\322\377\001\023y\003\343\204\004\332\332\004B\333\310S\213\212T\300\252\002\334\244\314\n\246\252\033n\320n\232\303\001\320z\000\310\374\003\377\267\013\260\343\031\237\364\004\261\322\004\322\361\004\323\343\004\377\371\004\000\353$\325\374\004\252\314\013\252\367\004\314\335\004\275\326\004\323\343\004\250\306\004\203C\004\343\252G\237\314\010\204\215T\317\253\002\275\251)o\033\320o\205\303\001\320{\242\257\003\222\271\013\331\274\022\000\305\261\004\305\364\004\335""\263\004\235\317\004\245\314\004\235\372\004\310\377\004\200\375\004@\240\367\004\323\364\004\231\367\004\330\361\013\306\340\004\273\343\004D\214\372\016\334\202\2547\230\201_B\300!\225\322\0140\250z\256\262\003>\327\300\001\300\010\310\t\315\352\002\356\363\255\003g\320g\345\252\003|\320|\000\326\331\003\245\272\013\354\275\022\245\330\004\265\243\004\236\330\004\300\351\004\245\330\004\000\223\372\004\331\360\013\306\367\004\265\346\004\347\240\004\277\223\004\216\314\013\340\364\004\375E\206\375\016@\300\t\310\034\320\377U^\320^`\320`g\373\320g\272\277\001\330\010+\320+\307?\270x\365\307\003\365\316 \370\222TC\300\0011\217\325\014\227\321\177\224\375\004\232\351\022\341\243\004\210\351$\315\321B\332\362\225TD\202\325\0162\260\316\264\003@\300\177\001\300\021\300(\310)\215\347\002\016\311\323\003i\320i\253\357\003\307\337\003\302\343\004\301\274\013\000\226\300\022\231\333\004\260\272\004\365\253\004\226\336\004\231\333\004\277\357\004\271\256\004h\276\375\004\220\325\013\251\342\004t\326\375\001t\003\344\362\013\372\244\336\004G\267\362\016B\300)\310<\273\320W\310\323\003i\320i\361\353\003-\377\320-C\3008\3101\310qA\300\313$\255\362\006\314\332IE\300Q\207\333\014\000\205\324\203\242\341\004\326\371\004\266\354\004\317\375\004\335\371\004\277\226\004\235\357\004\022\335\371\004H\256\324S\356\233TF\370\327\016\365\323\207\234\357\031\020\246\362\004\375\343$\262\324C\361\236TG\361\327\016\351\323\207\243\344\004\020\373\327\013\377\356\004\313\234\004\246\362\022J\272\373\016\243\324F\260\207R\355H\346\327\0166\260\250\302\003D\300A\377\300Q\300h\310i\320W\367]\320]\254\305\003m\320mv\003\320v\243\306\003\252\373\004\362\317\004\251\302\013\252\373\004\370\332\004\000\261\373\004\310\310\013\270\373\004\370\332\004\300\272\004\231\347\013\300\242\004\240\347\013\320\260\245\013\215\336\004\235\352\004\362\376\004K\276\376\016F\300\377i\310|\320[d\320d\277f\320fm\320m\360\307\001\330\377\0101\3201K\3108\320\237ST\320TU\331\212-\214\355\nQ8\352\354(\377\274-\325""\231\003v\320v\275\356\003\347\335\004\320\240\376\004\223\317\004\205\347\004\334\343 \177\273\322FV\250\343:\260\350\324\002\362\366\006\371\366\010Y\240a\376\306\200Jw\310f\320TV\320\201V\225\370\003{\225\233\361\002\315\333\001\324\200<\377\324\"\007\376\342\362\001W\320W_\320_h;\320h\201\233\003w\320w\246\372\003\250\313\004\020\342\362\004\244\353\004\224\342\004\353\221 @\371\265F\201/\307\363\010|\310\202[\263\200]6\260i\270|\252\350\001\327V\320V\210\312\003`\310\371\001\032\250\3578\2601\260\276\223\030W\250J\377\260a\200A\360\010\000\t\375\021\362\337\004\320\013\035\230W\240\376\367\335\002\n\230!\2305\240\017\376\243\336\001\023\2205\230\r\240V\357\2501\340\014\005\003U\250!\356+\n\014\210L\257\337\001\013\2606\375\270\247\340\001\220\034\230Q\230k\357\250\021\320*\253\324\001\014\021\220\377\025\220a\220~\240Q\240}n\250\360\001\r\320\r\036\230j\013\364\207\353\001\262\341\004\025\360\340\001\017\210q\220_\r\230T\320!\327\324\001\001\255\336\004\270\235\010\226\337\001\301\337\001\033\250A\316\316\001\013\377\2106\220\023\220A\330\014\377\024\220E\230\033\240A\240\307[\260\001\273\227\001\346\336\002\324\010\026\220\375a\245\342\001G\2201\330\014\017\377\210t\2203\220e\2301\377\330\020\030\230\006\230a\230\375q\367\340\002\320\027/\250q\260\277\005\260Q\330\024\031F\002T\277\250\021\250+\260V\265\324\002\024\377\"\240!\330\021\025\220S\337\230\005\230Q\330\207\341\004$\240?a\320\0479\270\026\266\322\002\203\340\004\375>2\000\047\260\026\260q\270\377\001\340\010\013\2101\330\0149\031\300\342\001q\000\320\023$\235\000Q\001\365!\361\341\001Q\205\001s\220!\220w6\230\022\207\001\024\220C\246 \177Y\250a\250u\260A\177\001\277\021\330\024\027\220r\032\0003\366\236\002\030 \311\343\001\240Q\330\030\337\033\2304\320\037\366\326\001\014\300\337A\330\034!\240\207![\270w\001\270\033\013\001*\250!t\001\3275\220\003\345\003q\234\341\004\320\033\317+\2504\250\240\343\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\365\343\003z\230\021\373\230%\215 \014\022\220$""\220\247a\220q\370%)\000\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN|Z\003\343A\016\230e\240<\360 \351\013\226\327\003\255C\014\213\204\004\340\010\021\237\320\021&\240a\234\343\001\324\345\001C\257\210}\230I\305`e\373\344\001\024\237\220D\320\030.\374\372\002\360FZ\372\272@\001\331Av\220V\320\033W2\260#\267@6\372\343\001)\304@\375(\014\000Q\330\021\027\220v\377\320\0357\260s\270&\300\277\006\300a\330\020,\302`X\373\260S\247A\023\320\023#\240\2271\240A\270\373\001A\276\346\001\274c\016\336\227\205\007\2104\210u\346a\020\320\367\020 \240\246\326\002e\2208\230\3277\240!\2435\013\315\205\003E\250\317\021\330\020\032\311\205\007\246\204\001\035\240]a\367E5\230\003\206\204\001\027\241\205\002\375c\360`$\250f\260A\340\376\241\346\001(\250\001\250\025\250m\376\266\331\002)/\250q\330)1\377\260\024\260Q\330\r\037\2303w\240\205!K\t\017\210\311a=\016\335!8\0170\260\004^\000\014\023\377\2203\220a\220v\230S\377\240\001\240\025\240c\250\027\337\260\001\200A\360\351\005\340\010\337\033\2302\230\\}\000k\270\367\021\270+\257\361\002\034 \240\016\277\250e\260;\270e\252\241\001#\377\2402\240S\250\005\250\\\376\035\000\"\270A\270Q\330$M(\014\000U\260\340\350\002\253a1\316\350\001}\027\302a#\2404\320\047\331\244\002\377\013\2105\220\004\220D\230\177\n\240!\2404\240q\300\347\001>\353\346\001\003\2207\230)\373\"\202\350\002\367z\240\021\220\204\002\024\025\340\020\267\021\330\024\355 \320!\354\320\001&\377\300\001\330\027\030\330\024\032\373\320\032\265\226\001\030\033\2301\230\277A\330\030\034\230E\276\350\002\024\355\032?\003\340\010\365$A\330\020\377\024\220J\230a\230u\240\377O\2601\330\014\047\240u\257\250M\270\021\274#a\010\022\031\027\300!\340%\000t\252\205\001\212\207\001\302\206\001_3\210a\210~\246 \003\235b\025\014\377@!\256\351\002\014\256\351\002\275A\203\000\377\r\020\220\001\220\036\230t\363\320#\246\336\001u\000C\220q\230?\006\230c\240\024\240\230\204\001\361 \273\260T\240\211\001\022\320\022\262\326\001\020\363\023\220\234!\235""\000E\230\021\230\277!\330\014\022\220)\312\001\340{\010\014\224\353\t\320\014\034\230\274\353\004\357L\230\t\240\337\211\002\033\230A\357\230[\250\001\246\351\002\010\r\210\307U\220!\271\204\001\313 \322\372\001\r\210\354\037\006\361\211\030\340\010\202\211\0011\200A\373\3602\327\204\010:\220Q\220n\370\200\213\001\325 \201\352\001\007\220t\320\033\3776\260a\330\020\023\320\023\377%\240W\250A\330\024\030\276\266B>\260\021\330\024\201\352\001\047_\250\034\260Q\340\004\004\021\301\353\001\3251\254A\007\330@\001\332\210\005>\240\373\023\240\207@\025\320\025%\240\376\271\211\001\320\025&\240a\330\020\356\227`\340\020\026\242\355\002\001\330/\3676\260c\346`.\310\002\310\377!\3309:\33004\260uE\366`!\260\352\003N\220!\226\204\001\241\014\314\211\001\365&\245!\232 \330\305\003\320\217\004\035\230Q\306\214\010\350\353\001\255@\330\357\010\022\220\047\334\"\010\014\210\177G\2209\230J\240f\304\000\376\201\213\001\320\023+\2501\250G\371\260\301\353\002\225\354\001\026\240q\250\013\004\374\363\001\242\214\003\330\317*"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35493, 110864); #define __Pyx_DecompressString_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (110863 bytes) */ + #else /* compression: none (110864 bytes) */ #ifdef _MSC_VER -static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','A','R','R','A','Y','_','T','Y','P','E','S','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','U','\003','\360','\000','\000','U','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\210','\177','\230','g','\240','U','\250','!','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021',' ','\240','\007','\240','u','\250','A','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','G','\300','q','\310','\001','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\035','\230','W','\240','E','\250','\021','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','$','\250','f','\260','A','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','/','\250','q','\330',')','1','\260','\024','\260','Q','\330','\r','\037','\230','w','\240','e','\250','1','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','!','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','0','\260','\004','\260','A','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r','\037','\230','w','\240','a','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','%','\240','W','\250','A','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; +static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','A','R','R','A','Y','_','T','Y','P','E','S','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\017','\210','~','\230','Q','\230','h','\240','a','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','u','\003','\360','\000','\000','u','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\320','\013','\033','\230','1','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\210','\177','\230','g','\240','U','\250','!','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021',' ','\240','\007','\240','u','\250','A','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','G','\300','q','\310','\001','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\035','\230','W','\240','E','\250','\021','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','$','\250','f','\260','A','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','/','\250','q','\330',')','1','\260','\024','\260','Q','\330','\r','\037','\230','w','\240','e','\250','1','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','!','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','0','\260','\004','\260','A','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r','\037','\230','w','\240','a','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','%','\240','W','\250','A','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; #else -static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CR""OWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.ope""n_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDL""UNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_Str""eamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Str""eam.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR""_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LIN""ESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenA""ndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMO""D_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_""CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAn""dFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_Upda""teTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_""PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MA""MA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI""_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_Open""AndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_Peek""TA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.op""en_and_fill_ARRAY_TYPES_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallo""okbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a""\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q""\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360""\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014""\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220""\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E""\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002""\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A""\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{""\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]""\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177""\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC""\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000""\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230""\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330""\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q""\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q""\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u""\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003U\003\360\000\000U\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003@\004\360\000\000@\004A\004\330\004\025\220Q\320\026\047\240q\330\004\013\210:""\220Q\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330""\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330""\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230""\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021""\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000""\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F""\002\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032""\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014""\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e""\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B""\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002""\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e""\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a""\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004""\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004""\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004""\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004""\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A""\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046""\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\210\177\230g\240U\250!\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021 \240\007\240u\250A\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*""\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a""\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000""\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX""\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010""\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021""\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q""\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037""\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000""\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360""\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360""\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360""\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360""\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108""\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,""\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V""\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H""\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360""\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010""\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a""\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320""\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330""\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036""\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a""\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@""\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330\010!""\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003\360\000""\000x\003~\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002""\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017""\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601""\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330A""B\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004""\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000""\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A""\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+G\300q\310\001\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405""\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701""\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320""\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?""\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq""\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360""\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt""\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330""\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360""\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3""\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 ""\240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh""\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^""\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002""\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F""\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025""\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260""\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y""\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\035\230W\240A\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d""\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\035\230W\240E\250\021\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250$\250f\260A\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)/\250q\330)1\260\024\260Q\330\r\037\230w\240e\2501\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250!\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)0\260\004\260A\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207""\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\035\230W\240A\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r\037\230w\240a\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023%\240W\250A\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+""\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; +static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CR""OWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.ope""n_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDL""UNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_Str""eamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Str""eam.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR""_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LIN""ESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenA""ndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMO""D_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_""CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAn""dFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_Upda""teTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_""PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MA""MA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI""_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_Open""AndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_Peek""TA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.op""en_and_fill_ARRAY_TYPES_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallo""okbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a""\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q""\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360""\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014""\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220""\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E""\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002""\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A""\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{""\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]""\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177""\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC""\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000""\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230""\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330""\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q""\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q""\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u""\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\024\320\024%\240Q\240h\250a\330\004\017\210~\230Q\230h\240a\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003u\003\360\000\000u\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004E\004\330\004\025\220Q\320\026\047\240q\330\004\013\320\013\033\2301\200\001\340wx""\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q""\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!""\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]""\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A""\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-""\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F""\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260""\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000""\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n""\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000""\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330""\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!""\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200""\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016""\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!""\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ""\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!""\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\210\177\230g\240U\250!\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021 \240\007\240u\250A\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021""\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q""\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000\000J""\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ""\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,""\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(""\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330""\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q""\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{""\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000""\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360\000""\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h""\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360\000""\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000""\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108\2203""\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a""\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507""\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H\270A""\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000""\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-""\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330""\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A""\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032""\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330""\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000""\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a""\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003\360\000\000x\003~""\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000""\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230""\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A""\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!""\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000""\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i""\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010""\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+G\300q\310\001\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8""\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330""\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320""\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?""\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq""\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360""\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt""\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330""\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360""\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3""\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 ""\240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh""\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^""\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002""\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F""\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025""\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260""\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y""\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\035\230W\240A\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d""\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\035\230W\240E\250\021\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250$\250f\260A\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)/\250q\330)1\260\024\260Q\330\r\037\230w\240e\2501\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250!\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)0\260\004\260A\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207""\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\035\230W\240A\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r\037\230w\240a\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023%\240W\250A\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+""\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED @@ -350009,7 +350009,7 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { } { const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5951}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal, __pyx_mstate->__pyx_n_u_outinteger}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsupertrend, __pyx_mstate->__pyx_n_u_outtrend}; __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad; } { diff --git a/talib/_ta_lib.pxd b/talib/_ta_lib.pxd index ede95b0ff..b180d519e 100644 --- a/talib/_ta_lib.pxd +++ b/talib/_ta_lib.pxd @@ -560,7 +560,7 @@ cdef extern from "ta-lib/ta_func.h": int TA_SUB_Lookback() TA_RetCode TA_SUM(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, int *outBegIdx, int *outNBElement, double outReal[]) int TA_SUM_Lookback(int optInTimePeriod) - TA_RetCode TA_SUPERTREND(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, double optInMultiplier, int *outBegIdx, int *outNBElement, double outReal[], int outInteger[]) + TA_RetCode TA_SUPERTREND(int startIdx, int endIdx, const double inHigh[], const double inLow[], const double inClose[], int optInTimePeriod, double optInMultiplier, int *outBegIdx, int *outNBElement, double outSupertrend[], int outTrend[]) int TA_SUPERTREND_Lookback(int optInTimePeriod, double optInMultiplier) TA_RetCode TA_T3(int startIdx, int endIdx, const double inReal[], int optInTimePeriod, double optInVFactor, int *outBegIdx, int *outNBElement, double outReal[]) int TA_T3_Lookback(int optInTimePeriod, double optInVFactor) diff --git a/talib/abstract.pyi b/talib/abstract.pyi index d4147f2c4..834322566 100644 --- a/talib/abstract.pyi +++ b/talib/abstract.pyi @@ -1499,8 +1499,8 @@ Parameters: timeperiod: 10 multiplier: 3.0 Outputs: - real - integer""" + supertrend + trend""" @overload def SUPERTREND(real: Union[pd.Series, np.ndarray], timeperiod=10, multiplier=3.0) -> Tuple[np.ndarray, np.ndarray]: ... @overload From 6712c9e4ad07ffdd032121ec3969377344c9bcf2 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Mon, 14 Sep 2026 12:05:26 -0400 Subject: [PATCH 08/12] fix(func): no input, no output An empty array made the Function API call TA-Lib with pointers one element before its buffers: check_begidx answers length - 1, which is -1, so the wrapper passed startIdx = endIdx = 0 and data + begidx. A function whose lookback is zero reads and writes that element. That is 34 functions at their default parameters, ACOS, ADD and OBV among them, plus any function whose parameters give a zero lookback, such as MA(x, timeperiod=1), through the Function, Abstract, pandas and polars paths alike. The heap corruption may abort the interpreter later, on an unrelated free, or go unnoticed. Stream opens are not affected; they raise InsufficientHistory first. When it started: 0.4.27, tagged 2023-07-13. Commit 02de3a30 ("don't throw exceptions on all nan input", CHANGELOG "[FIX]: Don't throw exceptions when inputs are all NaN") replaced check_begidx's `raise Exception("inputs are all NaN")` with `return length - 1`. An empty array takes that same branch, so until then it raised; since then it has reached TA-Lib with begidx -1. Every release since has it, through 0.8.0. Every wrapper now returns its outputs as empty arrays, before check_begidx, the lookback or TA-Lib are reached. Nothing else changes for an empty input: types, dtypes and tuple layout match the non-empty path, and for valid parameters the results are identical to before across func, the pandas and polars wrappers, and abstract with dict, pandas and polars DataFrame inputs, for all 201 functions. An invalid parameter on an empty input now returns empty outputs instead of TA_BAD_PARAM: there is nothing to compute. The test runs in a child process with the empty inputs right after an inaccessible page, so a read before the buffer faults at once. It fails on the previous code with SIGSEGV. It is skipped on Windows, where the guard would need VirtualProtect and no CI runs the tests. Claude-Session: https://claude.ai/code/session_01TuVjx2Q5urdmwi5opzfCp8 --- CHANGELOG | 7 + talib/_func.pxi | 402 + talib/_ta_lib.c | 19121 ++++++++++++++++++++++++--------------- tests/test_func.py | 40 + tools/generate_func.py | 7 + 5 files changed, 12323 insertions(+), 7254 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 89fc34099..1a8c000d8 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -24,6 +24,13 @@ ``real`` and ``integer``; they are ``supertrend`` and ``trend``, the names ``abstract.Function('SUPERTREND').output_names`` already reported. +- [FIX]: An empty array given to a function whose lookback is zero, such as + ``talib.ACOS`` or ``talib.MA(x, timeperiod=1)``, made TA-Lib read and write + one element outside the buffers, which could crash the interpreter later or + corrupt memory silently. An empty input now returns empty outputs without + calling TA-Lib, whatever the function and its parameters. The bug dates from + 0.4.27. + 0.8.0 ===== diff --git a/talib/_func.pxi b/talib/_func.pxi index 633ffa706..1ebe49459 100644 --- a/talib/_func.pxi +++ b/talib/_func.pxi @@ -165,6 +165,8 @@ def AC( np.ndarray high not None , np.ndarray low not None , int fastperiod=-2** high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_AC_Lookback( fastperiod , slowperiod , signalperiod ) @@ -202,6 +204,8 @@ def ACCBANDS( np.ndarray high not None , np.ndarray low not None , np.ndarray cl low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ACCBANDS_Lookback( timeperiod ) @@ -233,6 +237,8 @@ def ACOS( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ACOS_Lookback( ) @@ -265,6 +271,8 @@ def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close no close = check_array(close) volume = check_array(volume) length = check_length4(high, low, close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_AD_Lookback( ) @@ -296,6 +304,8 @@ def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): real0 = check_array(real0) real1 = check_array(real1) length = check_length2(real0, real1) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real0.data), (real1.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ADD_Lookback( ) @@ -331,6 +341,8 @@ def ADOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close close = check_array(close) volume = check_array(volume) length = check_length4(high, low, close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ADOSC_Lookback( fastperiod , slowperiod ) @@ -363,6 +375,8 @@ def ADR( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2* high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ADR_Lookback( timeperiod ) @@ -396,6 +410,8 @@ def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close n low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ADX_Lookback( timeperiod ) @@ -429,6 +445,8 @@ def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ADXR_Lookback( timeperiod ) @@ -462,6 +480,8 @@ def AO( np.ndarray high not None , np.ndarray low not None , int fastperiod=-2** high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_AO_Lookback( fastperiod , slowperiod ) @@ -495,6 +515,8 @@ def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**3 np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_APO_Lookback( fastperiod , slowperiod , matype ) @@ -529,6 +551,8 @@ def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=- high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_AROON_Lookback( timeperiod ) @@ -562,6 +586,8 @@ def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperio high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_AROONOSC_Lookback( timeperiod ) @@ -591,6 +617,8 @@ def ASIN( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ASIN_Lookback( ) @@ -620,6 +648,8 @@ def ATAN( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ATAN_Lookback( ) @@ -653,6 +683,8 @@ def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close n low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ATR_Lookback( timeperiod ) @@ -684,6 +716,8 @@ def AVGDEV( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_AVGDEV_Lookback( timeperiod ) @@ -716,6 +750,8 @@ def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray l low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_AVGPRICE_Lookback( ) @@ -754,6 +790,8 @@ def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4 np.ndarray outreallowerband real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_BBANDS_Lookback( timeperiod , nbdevup , nbdevdn , matype ) @@ -789,6 +827,8 @@ def BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod real0 = check_array(real0) real1 = check_array(real1) length = check_length2(real0, real1) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real0.data), (real1.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_BETA_Lookback( timeperiod ) @@ -821,6 +861,8 @@ def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low no low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_BOP_Lookback( ) @@ -854,6 +896,8 @@ def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close n low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CCI_Lookback( timeperiod ) @@ -886,6 +930,8 @@ def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDL2CROWS_Lookback( ) @@ -918,6 +964,8 @@ def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback( ) @@ -950,6 +998,8 @@ def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDL3INSIDE_Lookback( ) @@ -982,6 +1032,8 @@ def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback( ) @@ -1014,6 +1066,8 @@ def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarra low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback( ) @@ -1046,6 +1100,8 @@ def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback( ) @@ -1078,6 +1134,8 @@ def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np. low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback( ) @@ -1112,6 +1170,8 @@ def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback( penetration ) @@ -1144,6 +1204,8 @@ def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.nd low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback( ) @@ -1176,6 +1238,8 @@ def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarra low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLBELTHOLD_Lookback( ) @@ -1208,6 +1272,8 @@ def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarr low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback( ) @@ -1240,6 +1306,8 @@ def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback( ) @@ -1272,6 +1340,8 @@ def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback( ) @@ -1304,6 +1374,8 @@ def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback( ) @@ -1338,6 +1410,8 @@ def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np. low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback( penetration ) @@ -1370,6 +1444,8 @@ def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray lo low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLDOJI_Lookback( ) @@ -1402,6 +1478,8 @@ def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarra low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLDOJISTAR_Lookback( ) @@ -1434,6 +1512,8 @@ def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback( ) @@ -1466,6 +1546,8 @@ def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarr low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLENGULFING_Lookback( ) @@ -1500,6 +1582,8 @@ def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback( penetration ) @@ -1534,6 +1618,8 @@ def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback( penetration ) @@ -1566,6 +1652,8 @@ def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback( ) @@ -1598,6 +1686,8 @@ def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np. low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback( ) @@ -1630,6 +1720,8 @@ def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHAMMER_Lookback( ) @@ -1662,6 +1754,8 @@ def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndar low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback( ) @@ -1694,6 +1788,8 @@ def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHARAMI_Lookback( ) @@ -1726,6 +1822,8 @@ def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback( ) @@ -1758,6 +1856,8 @@ def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarra low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback( ) @@ -1790,6 +1890,8 @@ def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHIKKAKE_Lookback( ) @@ -1822,6 +1924,8 @@ def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndar low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback( ) @@ -1854,6 +1958,8 @@ def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.nd low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback( ) @@ -1886,6 +1992,8 @@ def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback( ) @@ -1918,6 +2026,8 @@ def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLINNECK_Lookback( ) @@ -1950,6 +2060,8 @@ def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np. low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback( ) @@ -1982,6 +2094,8 @@ def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLKICKING_Lookback( ) @@ -2014,6 +2128,8 @@ def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback( ) @@ -2046,6 +2162,8 @@ def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.nd low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback( ) @@ -2078,6 +2196,8 @@ def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np. low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback( ) @@ -2110,6 +2230,8 @@ def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarra low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLLONGLINE_Lookback( ) @@ -2142,6 +2264,8 @@ def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarra low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLMARUBOZU_Lookback( ) @@ -2174,6 +2298,8 @@ def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback( ) @@ -2208,6 +2334,8 @@ def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLMATHOLD_Lookback( penetration ) @@ -2242,6 +2370,8 @@ def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback( penetration ) @@ -2276,6 +2406,8 @@ def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback( penetration ) @@ -2308,6 +2440,8 @@ def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLONNECK_Lookback( ) @@ -2340,6 +2474,8 @@ def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarra low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLPIERCING_Lookback( ) @@ -2372,6 +2508,8 @@ def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback( ) @@ -2404,6 +2542,8 @@ def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback( ) @@ -2436,6 +2576,8 @@ def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback( ) @@ -2468,6 +2610,8 @@ def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.nd low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback( ) @@ -2500,6 +2644,8 @@ def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarr low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLSHORTLINE_Lookback( ) @@ -2532,6 +2678,8 @@ def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.nda low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback( ) @@ -2564,6 +2712,8 @@ def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np. low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback( ) @@ -2596,6 +2746,8 @@ def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback( ) @@ -2628,6 +2780,8 @@ def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLTAKURI_Lookback( ) @@ -2660,6 +2814,8 @@ def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarr low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback( ) @@ -2692,6 +2848,8 @@ def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarr low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLTHRUSTING_Lookback( ) @@ -2724,6 +2882,8 @@ def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLTRISTAR_Lookback( ) @@ -2756,6 +2916,8 @@ def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.nd low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback( ) @@ -2788,6 +2950,8 @@ def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback( ) @@ -2820,6 +2984,8 @@ def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , n low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_int_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback( ) @@ -2849,6 +3015,8 @@ def CEIL( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CEIL_Lookback( ) @@ -2883,6 +3051,8 @@ def CMF( np.ndarray high not None , np.ndarray low not None , np.ndarray close n close = check_array(close) volume = check_array(volume) length = check_length4(high, low, close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CMF_Lookback( timeperiod ) @@ -2914,6 +3084,8 @@ def CMO( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CMO_Lookback( timeperiod ) @@ -2945,6 +3117,8 @@ def CMOU( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CMOU_Lookback( timeperiod ) @@ -2978,6 +3152,8 @@ def COPPOCK( np.ndarray real not None , int wmaperiod=-2**31 , int roc1period=-2 np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_COPPOCK_Lookback( wmaperiod , roc1period , roc2period ) @@ -3011,6 +3187,8 @@ def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperi real0 = check_array(real0) real1 = check_array(real1) length = check_length2(real0, real1) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real0.data), (real1.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CORREL_Lookback( timeperiod ) @@ -3040,6 +3218,8 @@ def COS( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_COS_Lookback( ) @@ -3069,6 +3249,8 @@ def COSH( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_COSH_Lookback( ) @@ -3098,6 +3280,8 @@ def CUMSUM( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CUMSUM_Lookback( ) @@ -3131,6 +3315,8 @@ def CVI( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2* high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_CVI_Lookback( timeperiod , rocperiod ) @@ -3162,6 +3348,8 @@ def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_DEMA_Lookback( timeperiod ) @@ -3193,6 +3381,8 @@ def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): real0 = check_array(real0) real1 = check_array(real1) length = check_length2(real0, real1) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real0.data), (real1.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_DIV_Lookback( ) @@ -3229,6 +3419,8 @@ def DONCHIAN( np.ndarray high not None , np.ndarray low not None , int timeperio high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_DONCHIAN_Lookback( timeperiod ) @@ -3262,6 +3454,8 @@ def DPO( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_DPO_Lookback( timeperiod ) @@ -3295,6 +3489,8 @@ def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close no low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_DX_Lookback( timeperiod ) @@ -3327,6 +3523,8 @@ def EFI( np.ndarray close not None , np.ndarray volume not None , int timeperiod close = check_array(close) volume = check_array(volume) length = check_length2(close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_EFI_Lookback( timeperiod ) @@ -3358,6 +3556,8 @@ def EMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_EMA_Lookback( timeperiod ) @@ -3389,6 +3589,8 @@ def ER( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ER_Lookback( timeperiod ) @@ -3424,6 +3626,8 @@ def ERI( np.ndarray high not None , np.ndarray low not None , np.ndarray close n low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ERI_Lookback( timeperiod ) @@ -3454,6 +3658,8 @@ def EXP( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_EXP_Lookback( ) @@ -3483,6 +3689,8 @@ def FLOOR( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_FLOOR_Lookback( ) @@ -3514,6 +3722,8 @@ def FOSC( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_FOSC_Lookback( timeperiod ) @@ -3549,6 +3759,8 @@ def FRACTAL( np.ndarray high not None , np.ndarray low not None , int leftbars=- high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_int_array(0, 0), make_int_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_FRACTAL_Lookback( leftbars , rightbars ) @@ -3588,6 +3800,8 @@ def HA( np.ndarray open not None , np.ndarray high not None , np.ndarray low not low = check_array(low) close = check_array(close) length = check_length4(open, high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HA_Lookback( ) @@ -3622,6 +3836,8 @@ def HMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HMA_Lookback( timeperiod ) @@ -3651,6 +3867,8 @@ def HT_DCPERIOD( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HT_DCPERIOD_Lookback( ) @@ -3680,6 +3898,8 @@ def HT_DCPHASE( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HT_DCPHASE_Lookback( ) @@ -3711,6 +3931,8 @@ def HT_PHASOR( np.ndarray real not None ): np.ndarray outquadrature real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HT_PHASOR_Lookback( ) @@ -3743,6 +3965,8 @@ def HT_SINE( np.ndarray real not None ): np.ndarray outleadsine real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HT_SINE_Lookback( ) @@ -3773,6 +3997,8 @@ def HT_TRENDLINE( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HT_TRENDLINE_Lookback( ) @@ -3802,6 +4028,8 @@ def HT_TRENDMODE( np.ndarray real not None ): np.ndarray outinteger real = check_array(real) length = real.shape[0] + if length == 0: + return make_int_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_HT_TRENDMODE_Lookback( ) @@ -3834,6 +4062,8 @@ def IMI( np.ndarray open not None , np.ndarray close not None , int timeperiod=- open = check_array(open) close = check_array(close) length = check_length2(open, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (open.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_IMI_Lookback( timeperiod ) @@ -3865,6 +4095,8 @@ def KAMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) @@ -3904,6 +4136,8 @@ def KC( np.ndarray high not None , np.ndarray low not None , np.ndarray close no low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_KC_Lookback( timeperiod , atrperiod , nbdev ) @@ -3947,6 +4181,8 @@ def KDJ( np.ndarray high not None , np.ndarray low not None , np.ndarray close n low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_KDJ_Lookback( fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype ) @@ -3980,6 +4216,8 @@ def LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_LINEARREG_Lookback( timeperiod ) @@ -4011,6 +4249,8 @@ def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback( timeperiod ) @@ -4042,6 +4282,8 @@ def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback( timeperiod ) @@ -4073,6 +4315,8 @@ def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback( timeperiod ) @@ -4102,6 +4346,8 @@ def LN( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_LN_Lookback( ) @@ -4131,6 +4377,8 @@ def LOG10( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_LOG10_Lookback( ) @@ -4163,6 +4411,8 @@ def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MA_Lookback( timeperiod , matype ) @@ -4200,6 +4450,8 @@ def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2** np.ndarray outmacdhist real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MACD_Lookback( fastperiod , slowperiod , signalperiod ) @@ -4242,6 +4494,8 @@ def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 np.ndarray outmacdhist real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MACDEXT_Lookback( fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype ) @@ -4279,6 +4533,8 @@ def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): np.ndarray outmacdhist real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MACDFIX_Lookback( signalperiod ) @@ -4315,6 +4571,8 @@ def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=- np.ndarray outfama real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MAMA_Lookback( fastlimit , slowlimit ) @@ -4347,6 +4605,8 @@ def MARKETFI( np.ndarray high not None , np.ndarray low not None , np.ndarray vo low = check_array(low) volume = check_array(volume) length = check_length3(high, low, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MARKETFI_Lookback( ) @@ -4380,6 +4640,8 @@ def MASSI( np.ndarray high not None , np.ndarray low not None , int fastperiod=- high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MASSI_Lookback( fastperiod , slowperiod ) @@ -4415,6 +4677,8 @@ def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod real = check_array(real) periods = check_array(periods) length = check_length2(real, periods) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real.data), (periods.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MAVP_Lookback( minperiod , maxperiod , matype ) @@ -4446,6 +4710,8 @@ def MAX( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MAX_Lookback( timeperiod ) @@ -4477,6 +4743,8 @@ def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outinteger real = check_array(real) length = real.shape[0] + if length == 0: + return make_int_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MAXINDEX_Lookback( timeperiod ) @@ -4510,6 +4778,8 @@ def MEDPRICE( np.ndarray high not None , np.ndarray low not None ): high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MEDPRICE_Lookback( ) @@ -4544,6 +4814,8 @@ def MFI( np.ndarray high not None , np.ndarray low not None , np.ndarray close n close = check_array(close) volume = check_array(volume) length = check_length4(high, low, close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) @@ -4575,6 +4847,8 @@ def MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MIDPOINT_Lookback( timeperiod ) @@ -4607,6 +4881,8 @@ def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperio high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MIDPRICE_Lookback( timeperiod ) @@ -4638,6 +4914,8 @@ def MIN( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MIN_Lookback( timeperiod ) @@ -4669,6 +4947,8 @@ def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outinteger real = check_array(real) length = real.shape[0] + if length == 0: + return make_int_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MININDEX_Lookback( timeperiod ) @@ -4705,6 +4985,8 @@ def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outmax real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MINMAX_Lookback( timeperiod ) @@ -4739,6 +5021,8 @@ def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outmaxidx real = check_array(real) length = real.shape[0] + if length == 0: + return make_int_array(0, 0), make_int_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MINMAXINDEX_Lookback( timeperiod ) @@ -4779,6 +5063,8 @@ def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray cl low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MINUS_DI_Lookback( timeperiod ) @@ -4811,6 +5097,8 @@ def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperio high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MINUS_DM_Lookback( timeperiod ) @@ -4842,6 +5130,8 @@ def MOM( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MOM_Lookback( timeperiod ) @@ -4873,6 +5163,8 @@ def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): real0 = check_array(real0) real1 = check_array(real1) length = check_length2(real0, real1) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real0.data), (real1.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_MULT_Lookback( ) @@ -4906,6 +5198,8 @@ def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_NATR_Lookback( timeperiod ) @@ -4936,6 +5230,8 @@ def NVI( np.ndarray close not None , np.ndarray volume not None ): close = check_array(close) volume = check_array(volume) length = check_length2(close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_NVI_Lookback( ) @@ -4967,6 +5263,8 @@ def OBV( np.ndarray real not None , np.ndarray volume not None ): real = check_array(real) volume = check_array(volume) length = check_length2(real, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_OBV_Lookback( ) @@ -4999,6 +5297,8 @@ def PERCENTILE( np.ndarray real not None , int timeperiod=-2**31 , double percen np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PERCENTILE_Lookback( timeperiod , percentile ) @@ -5030,6 +5330,8 @@ def PERCENTRANK( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PERCENTRANK_Lookback( timeperiod ) @@ -5063,6 +5365,8 @@ def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray clo low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PLUS_DI_Lookback( timeperiod ) @@ -5095,6 +5399,8 @@ def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PLUS_DM_Lookback( timeperiod ) @@ -5128,6 +5434,8 @@ def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**3 np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PPO_Lookback( fastperiod , slowperiod , matype ) @@ -5158,6 +5466,8 @@ def PVI( np.ndarray close not None , np.ndarray volume not None ): close = check_array(close) volume = check_array(volume) length = check_length2(close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PVI_Lookback( ) @@ -5191,6 +5501,8 @@ def PVO( np.ndarray volume not None , int fastperiod=-2**31 , int slowperiod=-2* np.ndarray outreal volume = check_array(volume) length = volume.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PVO_Lookback( fastperiod , slowperiod , matype ) @@ -5221,6 +5533,8 @@ def PVT( np.ndarray close not None , np.ndarray volume not None ): close = check_array(close) volume = check_array(volume) length = check_length2(close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_PVT_Lookback( ) @@ -5253,6 +5567,8 @@ def QSTICK( np.ndarray open not None , np.ndarray close not None , int timeperio open = check_array(open) close = check_array(close) length = check_length2(open, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (open.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_QSTICK_Lookback( timeperiod ) @@ -5284,6 +5600,8 @@ def RMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_RMA_Lookback( timeperiod ) @@ -5315,6 +5633,8 @@ def ROC( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ROC_Lookback( timeperiod ) @@ -5346,6 +5666,8 @@ def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ROCP_Lookback( timeperiod ) @@ -5377,6 +5699,8 @@ def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ROCR_Lookback( timeperiod ) @@ -5408,6 +5732,8 @@ def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ROCR100_Lookback( timeperiod ) @@ -5439,6 +5765,8 @@ def RSI( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_RSI_Lookback( timeperiod ) @@ -5471,6 +5799,8 @@ def RVI( np.ndarray real not None , int timeperiod=-2**31 , int stddevperiod=-2* np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_RVI_Lookback( timeperiod , stddevperiod ) @@ -5502,6 +5832,8 @@ def RVOL( np.ndarray volume not None , int timeperiod=-2**31 ): np.ndarray outreal volume = check_array(volume) length = volume.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_RVOL_Lookback( timeperiod ) @@ -5535,6 +5867,8 @@ def SAR( np.ndarray high not None , np.ndarray low not None , double acceleratio high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SAR_Lookback( acceleration , maximum ) @@ -5574,6 +5908,8 @@ def SAREXT( np.ndarray high not None , np.ndarray low not None , double startval high = check_array(high) low = check_array(low) length = check_length2(high, low) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (high.data), (low.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SAREXT_Lookback( startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort ) @@ -5603,6 +5939,8 @@ def SIN( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SIN_Lookback( ) @@ -5632,6 +5970,8 @@ def SINH( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SINH_Lookback( ) @@ -5663,6 +6003,8 @@ def SMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SMA_Lookback( timeperiod ) @@ -5701,6 +6043,8 @@ def SMI( np.ndarray high not None , np.ndarray low not None , np.ndarray close n low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SMI_Lookback( timeperiod , fastperiod , slowperiod , signalperiod ) @@ -5731,6 +6075,8 @@ def SQRT( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SQRT_Lookback( ) @@ -5763,6 +6109,8 @@ def STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e3 np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev ) @@ -5802,6 +6150,8 @@ def STOCH( np.ndarray high not None , np.ndarray low not None , np.ndarray close low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_STOCH_Lookback( fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype ) @@ -5840,6 +6190,8 @@ def STOCHF( np.ndarray high not None , np.ndarray low not None , np.ndarray clos low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) @@ -5877,6 +6229,8 @@ def STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_perio np.ndarray outfastd real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_STOCHRSI_Lookback( timeperiod , fastk_period , fastd_period , fastd_matype ) @@ -5909,6 +6263,8 @@ def SUB( np.ndarray real0 not None , np.ndarray real1 not None ): real0 = check_array(real0) real1 = check_array(real1) length = check_length2(real0, real1) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real0.data), (real1.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SUB_Lookback( ) @@ -5940,6 +6296,8 @@ def SUM( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) @@ -5976,6 +6334,8 @@ def SUPERTREND( np.ndarray high not None , np.ndarray low not None , np.ndarray low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_int_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_SUPERTREND_Lookback( timeperiod , multiplier ) @@ -6009,6 +6369,8 @@ def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_T3_Lookback( timeperiod , vfactor ) @@ -6038,6 +6400,8 @@ def TAN( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TAN_Lookback( ) @@ -6067,6 +6431,8 @@ def TANH( np.ndarray real not None ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TANH_Lookback( ) @@ -6098,6 +6464,8 @@ def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TEMA_Lookback( timeperiod ) @@ -6129,6 +6497,8 @@ def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray clos low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TRANGE_Lookback( ) @@ -6160,6 +6530,8 @@ def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TRIMA_Lookback( timeperiod ) @@ -6191,6 +6563,8 @@ def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TRIX_Lookback( timeperiod ) @@ -6222,6 +6596,8 @@ def TSF( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TSF_Lookback( timeperiod ) @@ -6254,6 +6630,8 @@ def TSI( np.ndarray real not None , int firstperiod=-2**31 , int secondperiod=-2 np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TSI_Lookback( firstperiod , secondperiod ) @@ -6285,6 +6663,8 @@ def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray cl low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_TYPPRICE_Lookback( ) @@ -6320,6 +6700,8 @@ def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray clos low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ULTOSC_Lookback( timeperiod1 , timeperiod2 , timeperiod3 ) @@ -6352,6 +6734,8 @@ def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ) np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_VAR_Lookback( timeperiod , nbdev ) @@ -6383,6 +6767,8 @@ def VHF( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_VHF_Lookback( timeperiod ) @@ -6418,6 +6804,8 @@ def VORTEX( np.ndarray high not None , np.ndarray low not None , np.ndarray clos low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0), make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_VORTEX_Lookback( timeperiod ) @@ -6451,6 +6839,8 @@ def VWAP( np.ndarray high not None , np.ndarray low not None , np.ndarray close close = check_array(close) volume = check_array(volume) length = check_length4(high, low, close, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_VWAP_Lookback( ) @@ -6484,6 +6874,8 @@ def VWMA( np.ndarray real not None , np.ndarray volume not None , int timeperiod real = check_array(real) volume = check_array(volume) length = check_length2(real, volume) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx2(length, (real.data), (volume.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_VWMA_Lookback( timeperiod ) @@ -6515,6 +6907,8 @@ def WAD( np.ndarray high not None , np.ndarray low not None , np.ndarray close n low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_WAD_Lookback( ) @@ -6546,6 +6940,8 @@ def WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray cl low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_WCLPRICE_Lookback( ) @@ -6579,6 +6975,8 @@ def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close low = check_array(low) close = check_array(close) length = check_length3(high, low, close) + if length == 0: + return make_double_array(0, 0) begidx = check_begidx3(length, (high.data), (low.data), (close.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_WILLR_Lookback( timeperiod ) @@ -6610,6 +7008,8 @@ def WMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_WMA_Lookback( timeperiod ) @@ -6641,6 +7041,8 @@ def ZLEMA( np.ndarray real not None , int timeperiod=-2**31 ): np.ndarray outreal real = check_array(real) length = real.shape[0] + if length == 0: + return make_double_array(0, 0) begidx = check_begidx1(length, (real.data)) endidx = length - begidx - 1 lookback = begidx + lib.TA_ZLEMA_Lookback( timeperiod ) diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index 6ed43cd2f..6d6d87234 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -16937,79 +16937,79 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_b_iso88591_aq_Q_Q __pyx_string_tab[2568] #define __pyx_kp_b_iso88591_q_1_Q_a __pyx_string_tab[2569] #define __pyx_kp_b_iso88591_2_1_Q_9 __pyx_string_tab[2570] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1 __pyx_string_tab[2571] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk __pyx_string_tab[2572] -#define __pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2 __pyx_string_tab[2573] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm __pyx_string_tab[2574] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2 __pyx_string_tab[2575] -#define __pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY __pyx_string_tab[2576] -#define __pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i __pyx_string_tab[2577] -#define __pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f __pyx_string_tab[2578] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ __pyx_string_tab[2579] -#define __pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q __pyx_string_tab[2580] -#define __pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y __pyx_string_tab[2581] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay __pyx_string_tab[2582] -#define __pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay __pyx_string_tab[2583] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q __pyx_string_tab[2584] -#define __pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW __pyx_string_tab[2585] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2 __pyx_string_tab[2586] -#define __pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T __pyx_string_tab[2587] -#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz __pyx_string_tab[2588] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX __pyx_string_tab[2589] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA __pyx_string_tab[2590] -#define __pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[2591] -#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w __pyx_string_tab[2592] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2 __pyx_string_tab[2593] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6 __pyx_string_tab[2594] -#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o __pyx_string_tab[2595] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F __pyx_string_tab[2596] -#define __pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r __pyx_string_tab[2597] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY __pyx_string_tab[2598] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq __pyx_string_tab[2599] -#define __pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd __pyx_string_tab[2600] -#define __pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f __pyx_string_tab[2601] -#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q __pyx_string_tab[2602] -#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M __pyx_string_tab[2603] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i __pyx_string_tab[2604] -#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q __pyx_string_tab[2605] -#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A __pyx_string_tab[2606] -#define __pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i __pyx_string_tab[2607] -#define __pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX __pyx_string_tab[2608] -#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A __pyx_string_tab[2609] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_r __pyx_string_tab[2571] +#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_8_T_U_7_A_we_M_q __pyx_string_tab[2572] +#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_8_T_U_7_A_we_M_q_2 __pyx_string_tab[2573] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i __pyx_string_tab[2574] +#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_8_T_U_7_A_we_2_q_2 __pyx_string_tab[2575] +#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_8_T_U_7_A_we_2_q __pyx_string_tab[2576] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_8_T_U_7_A_we_2 __pyx_string_tab[2577] +#define __pyx_kp_b_iso88591_Q_aq_T_q_wc_A_8_T_U_7_A_we_2_1 __pyx_string_tab[2578] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4 __pyx_string_tab[2579] +#define __pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_8 __pyx_string_tab[2580] +#define __pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_8_T_U_7_A_we __pyx_string_tab[2581] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Rq_q_D __pyx_string_tab[2582] +#define __pyx_kp_b_iso88591_VVW_V6_wc_A_8_V1_U_7_A_we_2_q_q __pyx_string_tab[2583] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_b_q_2T __pyx_string_tab[2584] +#define __pyx_kp_b_iso88591_V6_wc_A_8_V1_U_7_A_we_Ba_q_4y_6 __pyx_string_tab[2585] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_8_T_U_7_A_we_b __pyx_string_tab[2586] +#define __pyx_kp_b_iso88591_q_aq_T_q_wc_A_8_T_U_7_A_we_b_Q __pyx_string_tab[2587] +#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW __pyx_string_tab[2588] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_r_q_Bd __pyx_string_tab[2589] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_8_T_U_7 __pyx_string_tab[2590] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_8_T_U_7_A_we_r __pyx_string_tab[2591] +#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR __pyx_string_tab[2592] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_8_T_U_7_A_we_0_q_R __pyx_string_tab[2593] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_0_q_Rt __pyx_string_tab[2594] +#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_8_T_U_7 __pyx_string_tab[2595] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_1_1_q __pyx_string_tab[2596] +#define __pyx_kp_b_iso88591_C1_aq_T_q_wc_A_8_T_U_7_A_we_2_M __pyx_string_tab[2597] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_32Q_q __pyx_string_tab[2598] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_8_T_U_7_A_we_3 __pyx_string_tab[2599] +#define __pyx_kp_b_iso88591_01_aq_T_q_wc_A_8_T_U_7_A_we_7r __pyx_string_tab[2600] +#define __pyx_kp_b_iso88591_45_aq_T_q_wc_A_8_T_U_7_A_we_2Q __pyx_string_tab[2601] +#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_8_T_3a_U_7_A_w __pyx_string_tab[2602] +#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_8_T_3a_U_7_A __pyx_string_tab[2603] +#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_8_T_3a_U_7_A_we_2Q __pyx_string_tab[2604] +#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_8_T_3a_U_7_A_w __pyx_string_tab[2605] +#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_8_T_3a_U_7_A_w __pyx_string_tab[2606] +#define __pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_8_T_5_U_7_A_we_2 __pyx_string_tab[2607] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_8_T_3a_U_7_A __pyx_string_tab[2608] +#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_8_T_3a_U_7_A_w __pyx_string_tab[2609] #define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2610] -#define __pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q __pyx_string_tab[2611] -#define __pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v __pyx_string_tab[2612] -#define __pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y __pyx_string_tab[2613] -#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q __pyx_string_tab[2614] -#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r __pyx_string_tab[2615] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q __pyx_string_tab[2616] -#define __pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2 __pyx_string_tab[2617] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt __pyx_string_tab[2618] -#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl __pyx_string_tab[2619] -#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2 __pyx_string_tab[2620] -#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A __pyx_string_tab[2621] -#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3 __pyx_string_tab[2622] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2623] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2624] -#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8 __pyx_string_tab[2625] -#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T __pyx_string_tab[2626] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we __pyx_string_tab[2627] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6 __pyx_string_tab[2628] -#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8 __pyx_string_tab[2629] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4 __pyx_string_tab[2630] -#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2631] -#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX __pyx_string_tab[2632] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3 __pyx_string_tab[2633] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2 __pyx_string_tab[2634] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w __pyx_string_tab[2635] -#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7 __pyx_string_tab[2636] -#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou __pyx_string_tab[2637] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15 __pyx_string_tab[2638] -#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2639] -#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2640] -#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2641] -#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d __pyx_string_tab[2642] -#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX __pyx_string_tab[2643] +#define __pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_8_T_3a_U_7_A_we __pyx_string_tab[2611] +#define __pyx_kp_b_iso88591_BC_Kq_7_wc_A_8_U_F_U_7_A_we_2Q __pyx_string_tab[2612] +#define __pyx_kp_b_iso88591_BC_aq_6_wc_A_8_T_6_U_7_A_we_Ba __pyx_string_tab[2613] +#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_8_U_E_U_7_A_we __pyx_string_tab[2614] +#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_8_T_3a_U __pyx_string_tab[2615] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_8_T_3a_U_7_A_we __pyx_string_tab[2616] +#define __pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_8_T_5_U_7_A_we __pyx_string_tab[2617] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_8_T __pyx_string_tab[2618] +#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_8_T_7_U_7_A __pyx_string_tab[2619] +#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_8_U_E_U_7_A_we __pyx_string_tab[2620] +#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U __pyx_string_tab[2621] +#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D __pyx_string_tab[2622] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U __pyx_string_tab[2623] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_8_T_3hj __pyx_string_tab[2624] +#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w __pyx_string_tab[2625] +#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc __pyx_string_tab[2626] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7 __pyx_string_tab[2627] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_5 __pyx_string_tab[2628] +#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc __pyx_string_tab[2629] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_8_T_3hjX __pyx_string_tab[2630] +#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_8_T __pyx_string_tab[2631] +#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q __pyx_string_tab[2632] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_2 __pyx_string_tab[2633] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U __pyx_string_tab[2634] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW __pyx_string_tab[2635] +#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_8_T_3 __pyx_string_tab[2636] +#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_8_T_3hjX __pyx_string_tab[2637] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_13 __pyx_string_tab[2638] +#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T __pyx_string_tab[2639] +#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T __pyx_string_tab[2640] +#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T __pyx_string_tab[2641] +#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T __pyx_string_tab[2642] +#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_8_T __pyx_string_tab[2643] #define __pyx_kp_b_iso88591_aq_xs_q_A_Q_a __pyx_string_tab[2644] #define __pyx_kp_b_iso88591_aq_xs_q_Qa_1 __pyx_string_tab[2645] #define __pyx_kp_b_iso88591_Q_V1E_q_WAQ_Q_aq_1 __pyx_string_tab[2646] @@ -17020,43 +17020,43 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_b_iso88591_1_a_OuTUUV_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2651] #define __pyx_kp_b_iso88591_Q_AQQVVWWX_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2652] #define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2653] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv __pyx_string_tab[2654] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2 __pyx_string_tab[2655] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5 __pyx_string_tab[2656] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2 __pyx_string_tab[2657] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3 __pyx_string_tab[2658] -#define __pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0 __pyx_string_tab[2659] -#define __pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9 __pyx_string_tab[2660] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2 __pyx_string_tab[2661] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13 __pyx_string_tab[2662] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns __pyx_string_tab[2663] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3 __pyx_string_tab[2664] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5 __pyx_string_tab[2665] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6 __pyx_string_tab[2666] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10 __pyx_string_tab[2667] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14 __pyx_string_tab[2668] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4 __pyx_string_tab[2669] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9 __pyx_string_tab[2670] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7 __pyx_string_tab[2671] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8 __pyx_string_tab[2672] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11 __pyx_string_tab[2673] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12 __pyx_string_tab[2674] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ __pyx_string_tab[2675] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa __pyx_string_tab[2676] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi __pyx_string_tab[2677] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay __pyx_string_tab[2678] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q __pyx_string_tab[2679] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1 __pyx_string_tab[2680] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa __pyx_string_tab[2681] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ __pyx_string_tab[2682] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2 __pyx_string_tab[2683] -#define __pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R __pyx_string_tab[2684] -#define __pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ __pyx_string_tab[2685] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ __pyx_string_tab[2686] -#define __pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5 __pyx_string_tab[2687] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd __pyx_string_tab[2688] -#define __pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b __pyx_string_tab[2689] -#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn __pyx_string_tab[2690] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_8_T_3hjX_eeo __pyx_string_tab[2654] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_8_T_3hjX_eeo_2 __pyx_string_tab[2655] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_4 __pyx_string_tab[2656] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_2 __pyx_string_tab[2657] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_3 __pyx_string_tab[2658] +#define __pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_8_T_3hjX___U_7_A __pyx_string_tab[2659] +#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_8_T_3a_U_7_A_we_0 __pyx_string_tab[2660] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_11 __pyx_string_tab[2661] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY __pyx_string_tab[2662] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_3 __pyx_string_tab[2663] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4 __pyx_string_tab[2664] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_8 __pyx_string_tab[2665] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_12 __pyx_string_tab[2666] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_2 __pyx_string_tab[2667] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_7 __pyx_string_tab[2668] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_5 __pyx_string_tab[2669] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_6 __pyx_string_tab[2670] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_9 __pyx_string_tab[2671] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_10 __pyx_string_tab[2672] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_8_T_4xzY_2 __pyx_string_tab[2673] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_8_T_4xzY __pyx_string_tab[2674] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_8_T_U_7_A_we_4A_q __pyx_string_tab[2675] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_q_r_Yk __pyx_string_tab[2676] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_1_q_i __pyx_string_tab[2677] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y __pyx_string_tab[2678] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Q_q_D __pyx_string_tab[2679] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_a_q_2T __pyx_string_tab[2680] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2_q_r __pyx_string_tab[2681] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_31_q_i __pyx_string_tab[2682] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_4A_q_4 __pyx_string_tab[2683] +#define __pyx_kp_b_iso88591_Kq_7_wc_A_8_U_F_U_7_A_we_1_q_i __pyx_string_tab[2684] +#define __pyx_kp_b_iso88591_aq_6_wc_A_8_T_6_U_7_A_we_1_q_i __pyx_string_tab[2685] +#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_8_U_E_U_7_A_we_1_q __pyx_string_tab[2686] +#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_8_U_E_U_7_A_we_A_q __pyx_string_tab[2687] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_8_T_U_7_A_we_q __pyx_string_tab[2688] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_8_T_U_7_A_we_1 __pyx_string_tab[2689] +#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS __pyx_string_tab[2690] #define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2691] #define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2692] #define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2693] @@ -21912,7 +21912,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -21933,21 +21934,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20AC(CYTHON_UNUSED PyObject *__pyx_sel __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 167, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 168, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 170, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_AC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 171, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_AC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 173, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22028,46 +22049,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 176, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 178, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACCBANDS", 0) < (0)) __PYX_ERR(5, 176, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACCBANDS", 0) < (0)) __PYX_ERR(5, 178, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, i); __PYX_ERR(5, 176, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, i); __PYX_ERR(5, 178, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 178, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 178, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 178, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 178, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -22076,14 +22097,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 178, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 180, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 176, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ACCBANDS", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 178, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22094,9 +22115,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 178, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 178, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 180, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 180, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 180, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_22ACCBANDS(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -22132,7 +22153,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + npy_int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -22141,78 +22166,116 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22ACCBANDS(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 202, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 203, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 204, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 206, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 205, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 208, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 208, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(5, 208, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + } + + __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 209, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_7; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ACCBANDS_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; __pyx_v_retCode = TA_ACCBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 212, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACCBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 213, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 217, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 213, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 217, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 213, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 217, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.ACCBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -22275,32 +22338,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 215, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 219, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 219, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACOS", 0) < (0)) __PYX_ERR(5, 215, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ACOS", 0) < (0)) __PYX_ERR(5, 219, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, i); __PYX_ERR(5, 215, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, i); __PYX_ERR(5, 219, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 215, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 219, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 215, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 219, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22311,7 +22374,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 217, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 221, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_24ACOS(__pyx_self, __pyx_v_real); /* function exit code */ @@ -22343,35 +22406,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ACOS(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ACOS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 234, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 236, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 242, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 239, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ACOS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 241, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22451,44 +22535,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 244, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 250, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 250, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AD", 0) < (0)) __PYX_ERR(5, 244, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AD", 0) < (0)) __PYX_ERR(5, 250, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, i); __PYX_ERR(5, 244, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, i); __PYX_ERR(5, 250, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 250, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 250, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 250, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 250, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -22497,7 +22581,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 244, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 250, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22508,10 +22592,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 246, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 246, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 246, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 246, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 252, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 252, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 252, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 252, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_26AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ @@ -22544,7 +22628,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -22554,44 +22639,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26AD(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 264, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 265, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 266, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 267, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 273, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 268, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 276, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_AD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 273, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22672,39 +22777,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 276, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 284, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADD", 0) < (0)) __PYX_ERR(5, 276, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADD", 0) < (0)) __PYX_ERR(5, 284, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, i); __PYX_ERR(5, 276, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, i); __PYX_ERR(5, 284, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 284, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 276, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 284, __pyx_L3_error) } __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 276, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 284, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22715,8 +22820,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 278, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 278, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 286, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 286, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_28ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ @@ -22749,7 +22854,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -22757,34 +22863,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADD(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 296, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 297, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 298, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 306, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 299, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 309, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 302, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ADD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 304, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -22867,60 +22993,60 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 307, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 317, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADOSC", 0) < (0)) __PYX_ERR(5, 307, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADOSC", 0) < (0)) __PYX_ERR(5, 317, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, i); __PYX_ERR(5, 307, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, i); __PYX_ERR(5, 317, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 317, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 317, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 317, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 317, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 307, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 317, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -22930,19 +23056,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = ((PyArrayObject *)values[2]); __pyx_v_volume = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 309, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 319, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 309, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 319, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(5, 307, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(5, 317, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -22953,10 +23079,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 309, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 309, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 309, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 309, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 319, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 319, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 319, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 319, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_30ADOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ @@ -22991,7 +23117,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23001,44 +23128,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30ADOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 329, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 330, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 331, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 332, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 333, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 343, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 334, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 346, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 337, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ADOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 339, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23120,40 +23267,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 342, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 354, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADR", 0) < (0)) __PYX_ERR(5, 342, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADR", 0) < (0)) __PYX_ERR(5, 354, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, i); __PYX_ERR(5, 342, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, i); __PYX_ERR(5, 354, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 354, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 354, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 342, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 354, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -23161,14 +23308,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 344, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 356, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 342, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADR", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 354, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -23179,8 +23326,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 344, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 344, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 356, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 356, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_32ADR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ @@ -23214,7 +23361,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23222,34 +23370,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32ADR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 363, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 365, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 377, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 366, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 380, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ADR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 369, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ADR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 371, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23330,46 +23498,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 374, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 388, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADX", 0) < (0)) __PYX_ERR(5, 374, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADX", 0) < (0)) __PYX_ERR(5, 388, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, i); __PYX_ERR(5, 374, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, i); __PYX_ERR(5, 388, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 388, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 388, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 388, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 374, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 388, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -23378,14 +23546,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 376, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 390, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 374, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 388, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -23396,9 +23564,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 376, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 376, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 376, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 390, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 390, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 390, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_34ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -23432,7 +23600,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23441,39 +23610,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34ADX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 396, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 397, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 398, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 412, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 399, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 415, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 404, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23555,46 +23744,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 407, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 423, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADXR", 0) < (0)) __PYX_ERR(5, 407, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ADXR", 0) < (0)) __PYX_ERR(5, 423, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, i); __PYX_ERR(5, 407, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, i); __PYX_ERR(5, 423, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 423, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 423, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 407, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 423, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -23603,14 +23792,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 409, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 425, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 407, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 423, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -23621,9 +23810,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 409, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 409, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 409, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 425, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 425, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 425, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_36ADXR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -23657,7 +23846,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23666,39 +23856,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36ADXR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 428, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 429, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 430, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 431, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 447, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 432, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 450, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 435, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 437, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -23780,48 +23990,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 440, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 458, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AO", 0) < (0)) __PYX_ERR(5, 440, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AO", 0) < (0)) __PYX_ERR(5, 458, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, i); __PYX_ERR(5, 440, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, i); __PYX_ERR(5, 458, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 458, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 458, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 440, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 458, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -23829,19 +24039,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 442, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 460, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 442, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 460, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 440, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AO", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 458, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -23852,8 +24062,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 442, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 442, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 460, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 460, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_38AO(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ @@ -23888,7 +24098,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23896,34 +24107,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38AO(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 462, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 463, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 464, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 482, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 465, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 485, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_AO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_AO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 470, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24004,74 +24235,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 473, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 493, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(5, 473, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "APO", 0) < (0)) __PYX_ERR(5, 493, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(5, 473, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, i); __PYX_ERR(5, 493, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 493, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 473, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 493, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 475, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 495, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 475, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 495, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 475, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 495, __pyx_L3_error) } else { __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 473, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 493, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -24082,7 +24313,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 475, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 495, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_40APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ @@ -24117,35 +24348,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40APO(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("APO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 496, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 498, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 520, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 503, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24224,40 +24476,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 506, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 528, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(5, 506, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROON", 0) < (0)) __PYX_ERR(5, 528, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(5, 506, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, i); __PYX_ERR(5, 528, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 528, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 528, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 506, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 528, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -24265,14 +24517,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 508, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 530, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 506, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 528, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -24283,8 +24535,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 508, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 508, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 530, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 530, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_42AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ @@ -24319,7 +24571,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -24327,65 +24582,97 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 529, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 551, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 530, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 531, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 553, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 532, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 555, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 555, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 556, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outaroonup)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 538, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outaroondown); __Pyx_GIVEREF((PyObject *)__pyx_v_outaroondown); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(5, 539, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outaroondown)) != (0)) __PYX_ERR(5, 563, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outaroonup); __Pyx_GIVEREF((PyObject *)__pyx_v_outaroonup); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(5, 539, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outaroonup)) != (0)) __PYX_ERR(5, 563, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -24448,40 +24735,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 541, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 565, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(5, 541, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AROONOSC", 0) < (0)) __PYX_ERR(5, 565, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(5, 541, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, i); __PYX_ERR(5, 565, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 565, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 565, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 541, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 565, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -24489,14 +24776,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 543, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 567, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 541, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 565, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -24507,8 +24794,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 543, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 543, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 567, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 567, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_44AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ @@ -24542,7 +24829,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -24550,34 +24838,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44AROONOSC(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 562, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 563, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 564, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 588, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 565, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 591, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 568, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 570, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24655,32 +24963,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 573, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 599, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 573, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 599, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(5, 573, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ASIN", 0) < (0)) __PYX_ERR(5, 599, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(5, 573, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, i); __PYX_ERR(5, 599, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 573, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 599, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 573, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 599, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -24691,7 +24999,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 575, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 601, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_46ASIN(__pyx_self, __pyx_v_real); /* function exit code */ @@ -24723,35 +25031,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46ASIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ASIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 592, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 594, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 622, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 597, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 599, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -24828,32 +25157,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 602, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 630, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 630, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(5, 602, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATAN", 0) < (0)) __PYX_ERR(5, 630, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(5, 602, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, i); __PYX_ERR(5, 630, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 630, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 602, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 630, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -24864,7 +25193,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 604, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 632, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_48ATAN(__pyx_self, __pyx_v_real); /* function exit code */ @@ -24896,35 +25225,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48ATAN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ATAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 621, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 623, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 653, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 626, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 628, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25004,46 +25354,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 631, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 661, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(5, 631, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ATR", 0) < (0)) __PYX_ERR(5, 661, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(5, 631, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, i); __PYX_ERR(5, 661, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 661, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 661, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 661, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 631, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 661, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -25052,14 +25402,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 633, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 663, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 631, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 661, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -25070,9 +25420,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 633, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 633, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 663, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 663, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 663, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_50ATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -25106,7 +25456,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -25115,39 +25466,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 652, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 653, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 654, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 655, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 685, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 656, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 688, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 659, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 661, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25227,48 +25598,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 664, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 696, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 696, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 696, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(5, 664, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGDEV", 0) < (0)) __PYX_ERR(5, 696, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(5, 664, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, i); __PYX_ERR(5, 696, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 696, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 664, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 696, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 666, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 698, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 664, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AVGDEV", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 696, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -25279,7 +25650,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 666, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 698, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_52AVGDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -25312,35 +25683,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52AVGDEV(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("AVGDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 685, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 687, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 721, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_AVGDEV_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_AVGDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 692, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25420,44 +25812,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 695, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 729, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 729, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 729, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 729, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 729, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(5, 695, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "AVGPRICE", 0) < (0)) __PYX_ERR(5, 729, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(5, 695, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, i); __PYX_ERR(5, 729, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 729, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 729, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 729, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 695, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 729, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -25466,7 +25858,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 695, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 729, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -25477,10 +25869,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 697, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 697, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 697, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 697, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 731, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 731, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 731, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 731, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_54AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -25513,7 +25905,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -25523,44 +25916,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 714, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 715, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 716, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 717, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 718, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 752, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 719, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 755, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 724, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -25644,87 +26057,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdevup,&__pyx_mstate_global->__pyx_n_u_nbdevdn,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 727, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 763, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(5, 727, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BBANDS", 0) < (0)) __PYX_ERR(5, 763, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(5, 727, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, i); __PYX_ERR(5, 763, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 763, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 727, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 763, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 765, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + __pyx_v_nbdevup = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdevup == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 765, __pyx_L3_error) } else { __pyx_v_nbdevup = ((double)((double)-4e37)); } if (values[3]) { - __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + __pyx_v_nbdevdn = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_nbdevdn == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 765, __pyx_L3_error) } else { __pyx_v_nbdevdn = ((double)((double)-4e37)); } if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 729, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 765, __pyx_L3_error) } else { __pyx_v_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 727, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 763, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -25735,7 +26148,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 729, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 765, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_56BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); /* function exit code */ @@ -25773,74 +26186,116 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56BBANDS(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("BBANDS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 755, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 757, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 794, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 794, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 794, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 795, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 761, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 762, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 765, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 765, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 803, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 765, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 803, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 765, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 803, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -25903,40 +26358,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 767, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 805, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(5, 767, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BETA", 0) < (0)) __PYX_ERR(5, 805, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(5, 767, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, i); __PYX_ERR(5, 805, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 805, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 805, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 805, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -25944,14 +26399,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 769, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 807, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 767, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 805, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -25962,8 +26417,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 807, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 807, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_58BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ @@ -25997,7 +26452,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26005,34 +26461,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 789, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 790, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 791, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 829, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 792, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 832, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 795, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 797, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26113,44 +26589,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 800, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 840, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 840, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 840, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 840, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 840, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(5, 800, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "BOP", 0) < (0)) __PYX_ERR(5, 840, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(5, 800, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, i); __PYX_ERR(5, 840, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 840, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 840, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 840, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 800, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 840, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -26159,7 +26635,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 800, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 840, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -26170,10 +26646,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 802, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 802, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 802, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 802, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 842, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 842, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 842, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 842, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_60BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -26206,7 +26682,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26216,44 +26693,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 819, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 821, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 822, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 823, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 863, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 824, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 866, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 827, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 829, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26336,46 +26833,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 832, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 874, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(5, 832, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CCI", 0) < (0)) __PYX_ERR(5, 874, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(5, 832, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, i); __PYX_ERR(5, 874, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 874, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 874, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 874, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 832, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 874, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -26384,14 +26881,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 834, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 876, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 832, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 874, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -26402,9 +26899,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 834, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 834, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 834, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 876, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 876, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 876, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_62CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -26438,7 +26935,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26447,39 +26945,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 854, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 855, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 856, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 898, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 857, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 901, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 860, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 862, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26561,44 +27079,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 865, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 909, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 909, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(5, 865, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL2CROWS", 0) < (0)) __PYX_ERR(5, 909, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(5, 865, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, i); __PYX_ERR(5, 909, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 909, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 909, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 909, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 909, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -26607,7 +27125,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 865, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 909, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -26618,10 +27136,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 911, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 911, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 911, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 911, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_64CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -26654,7 +27172,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26664,44 +27183,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 886, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 888, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 932, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 889, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 935, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 892, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 894, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -26784,44 +27323,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 897, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 943, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 943, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(5, 897, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3BLACKCROWS", 0) < (0)) __PYX_ERR(5, 943, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(5, 897, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, i); __PYX_ERR(5, 943, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 943, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 943, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 943, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 943, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -26830,7 +27369,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 897, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 943, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -26841,10 +27380,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 945, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 945, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 945, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 945, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -26877,7 +27416,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26887,267 +27427,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 917, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 918, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 919, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 966, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 921, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 924, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + if (__pyx_t_3) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 926, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3INSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 929, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 929, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(5, 929, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(5, 929, __pyx_L3_error) } + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 929, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 929, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 929, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 929, __pyx_L3_error) + __Pyx_XDECREF(__pyx_temp); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 929, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 931, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_t_1 = 0; + goto __pyx_L0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDL3INSIDE", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 948, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 949, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 950, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 952, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 953, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 969, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 956, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 958, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27166,7 +27503,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -27188,16 +27525,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_68CDL3INSIDE, "CDL3INSIDE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3INSIDE(open, high, low, close)\n\nThree Inside Up/Down (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE = {"CDL3INSIDE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_68CDL3INSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_69CDL3INSIDE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -27218,7 +27555,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDL3INSIDE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -27230,44 +27567,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 961, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 977, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 977, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 977, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 977, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 977, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(5, 961, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3INSIDE", 0) < (0)) __PYX_ERR(5, 977, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(5, 961, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, i); __PYX_ERR(5, 977, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 977, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 977, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 977, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 977, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -27276,7 +27613,251 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 961, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 977, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 979, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 979, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 979, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 979, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_68CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + npy_int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDL3INSIDE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1000, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1003, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE, "CDL3LINESTRIKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDL3LINESTRIKE(open, high, low, close)\n\nThree-Line Strike (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE = {"CDL3LINESTRIKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_70CDL3LINESTRIKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_71CDL3LINESTRIKE(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDL3LINESTRIKE (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1011, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1011, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1011, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1011, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1011, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3LINESTRIKE", 0) < (0)) __PYX_ERR(5, 1011, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, i); __PYX_ERR(5, 1011, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1011, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1011, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1011, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1011, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1011, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -27287,10 +27868,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1013, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1013, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1013, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1013, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -27323,7 +27904,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -27333,44 +27915,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 980, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 982, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 983, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 984, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1034, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 985, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1037, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 988, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 990, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27453,44 +28055,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 993, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1045, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1045, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1045, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1045, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1045, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(5, 993, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3OUTSIDE", 0) < (0)) __PYX_ERR(5, 1045, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(5, 993, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, i); __PYX_ERR(5, 1045, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1045, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1045, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1045, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 993, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1045, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -27499,7 +28101,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 993, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1045, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -27510,10 +28112,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 995, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1047, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -27546,7 +28148,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -27556,44 +28159,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDL3OUTSIDE(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1013, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1014, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1015, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1016, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1068, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1017, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1071, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1020, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1022, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27676,44 +28299,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1025, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1079, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1079, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(5, 1025, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3STARSINSOUTH", 0) < (0)) __PYX_ERR(5, 1079, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(5, 1025, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, i); __PYX_ERR(5, 1079, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1079, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1079, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1079, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1079, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -27722,7 +28345,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1025, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1079, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -27733,10 +28356,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1081, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1081, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1081, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1081, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -27769,7 +28392,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -27779,44 +28403,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1045, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1046, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1047, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1048, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1102, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1049, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1105, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1052, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1054, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -27899,44 +28543,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1057, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1113, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1113, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(5, 1057, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDL3WHITESOLDIERS", 0) < (0)) __PYX_ERR(5, 1113, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(5, 1057, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, i); __PYX_ERR(5, 1113, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1113, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1113, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1113, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1113, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -27945,7 +28589,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1057, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1113, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -27956,10 +28600,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1059, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1115, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1115, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1115, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1115, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -27992,7 +28636,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -28002,44 +28647,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1077, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1080, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1136, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1081, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1139, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1084, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1086, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28123,52 +28788,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1089, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1147, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(5, 1089, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLABANDONEDBABY", 0) < (0)) __PYX_ERR(5, 1147, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(5, 1089, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, i); __PYX_ERR(5, 1147, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1147, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1147, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1147, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1147, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1147, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -28178,14 +28843,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1091, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1149, __pyx_L3_error) } else { __pyx_v_penetration = ((double)((double)0.3)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1089, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1147, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -28196,10 +28861,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1091, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1149, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1149, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1149, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1149, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ @@ -28233,7 +28898,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -28243,44 +28909,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLABANDONEDBABY(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1110, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1111, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1112, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1113, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1114, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1172, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1115, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1175, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1118, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1120, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28363,44 +29049,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1123, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1183, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(5, 1123, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLADVANCEBLOCK", 0) < (0)) __PYX_ERR(5, 1183, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(5, 1123, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, i); __PYX_ERR(5, 1183, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1183, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1183, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1183, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1123, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1183, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -28409,7 +29095,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1123, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1183, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -28420,10 +29106,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1125, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1185, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1185, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1185, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1185, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -28456,7 +29142,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -28466,267 +29153,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1143, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1144, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1145, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1146, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1206, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1147, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + if (__pyx_t_3) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1155, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1155, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(5, 1155, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(5, 1155, __pyx_L3_error) } + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1155, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1155, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1155, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1155, __pyx_L3_error) + __Pyx_XDECREF(__pyx_temp); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1155, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1157, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_t_1 = 0; + goto __pyx_L0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1178, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1179, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1209, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1182, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1184, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28745,7 +29229,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -28767,16 +29251,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD, "CDLBELTHOLD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBELTHOLD(open, high, low, close)\n\nBelt-hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD = {"CDLBELTHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_82CDLBELTHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLBELTHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -28797,7 +29281,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLBELTHOLD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -28809,44 +29293,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1187, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1217, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1217, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(5, 1187, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBELTHOLD", 0) < (0)) __PYX_ERR(5, 1217, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(5, 1187, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, i); __PYX_ERR(5, 1217, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1217, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1217, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1217, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1187, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1217, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -28855,22 +29339,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1187, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1217, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1189, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1219, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1219, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1219, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1219, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -28889,7 +29373,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -28902,54 +29386,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); + __Pyx_RefNannySetupContext("CDLBELTHOLD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1206, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1209, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1210, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1240, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1211, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1243, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1214, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1216, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -28968,7 +29473,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -28990,16 +29495,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY, "CDLBREAKAWAY(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLBREAKAWAY(open, high, low, close)\n\nBreakaway (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY = {"CDLBREAKAWAY", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_84CDLBREAKAWAY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLBREAKAWAY(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29020,7 +29525,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLBREAKAWAY (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29032,44 +29537,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1219, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1251, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1251, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(5, 1219, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLBREAKAWAY", 0) < (0)) __PYX_ERR(5, 1251, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 1219, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, i); __PYX_ERR(5, 1251, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1251, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1251, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1251, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1251, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -29078,22 +29583,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1219, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1251, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1221, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -29112,7 +29617,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29125,54 +29630,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); + __Pyx_RefNannySetupContext("CDLBREAKAWAY", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1238, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1239, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1240, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1242, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1274, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1243, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1277, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1246, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1248, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -29191,7 +29717,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -29213,16 +29739,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU, "CDLCLOSINGMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCLOSINGMARUBOZU(open, high, low, close)\n\nClosing Marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU = {"CDLCLOSINGMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29243,7 +29769,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29255,44 +29781,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1251, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1285, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1285, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1285, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1285, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1285, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(5, 1251, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCLOSINGMARUBOZU", 0) < (0)) __PYX_ERR(5, 1285, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(5, 1251, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 1285, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1285, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1285, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1285, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1251, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1285, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -29301,22 +29827,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1251, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1285, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1253, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1287, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1287, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1287, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1287, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -29335,7 +29861,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29348,54 +29874,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); + __Pyx_RefNannySetupContext("CDLCLOSINGMARUBOZU", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1270, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1271, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1272, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1273, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1274, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1308, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1275, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1311, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1278, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1280, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -29414,7 +29961,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -29436,16 +29983,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL, "CDLCONCEALBABYSWALL(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCONCEALBABYSWALL(open, high, low, close)\n\nConcealing Baby Swallow (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL = {"CDLCONCEALBABYSWALL", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_88CDLCONCEALBABYSWALL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLCONCEALBABYSWALL(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29466,7 +30013,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29478,44 +30025,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1283, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1319, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1319, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(5, 1283, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCONCEALBABYSWALL", 0) < (0)) __PYX_ERR(5, 1319, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(5, 1283, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, i); __PYX_ERR(5, 1319, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1319, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1319, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1319, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1283, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1319, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -29524,22 +30071,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1283, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1319, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1285, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1321, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -29558,7 +30105,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29571,54 +30118,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); + __Pyx_RefNannySetupContext("CDLCONCEALBABYSWALL", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1302, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1303, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1304, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1305, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1306, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1342, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1307, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1345, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1310, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1312, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -29637,7 +30205,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -29659,16 +30227,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK, "CDLCOUNTERATTACK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLCOUNTERATTACK(open, high, low, close)\n\nCounterattack (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK = {"CDLCOUNTERATTACK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_90CDLCOUNTERATTACK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLCOUNTERATTACK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29679,18 +30247,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29700,86 +30267,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1315, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1353, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1315, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1315, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1315, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1315, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1353, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(5, 1315, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLCOUNTERATTACK", 0) < (0)) __PYX_ERR(5, 1353, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(5, 1315, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, i); __PYX_ERR(5, 1353, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1315, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1315, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1315, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1315, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1315, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1353, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1353, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1353, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1353, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1317, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1315, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1353, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1317, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1355, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1355, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1355, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1355, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -29794,12 +30345,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -29812,54 +30362,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); + __Pyx_RefNannySetupContext("CDLCOUNTERATTACK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1336, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1337, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1338, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1339, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1340, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1376, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1341, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1379, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1344, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1346, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -29878,7 +30449,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -29900,16 +30471,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER, "CDLDARKCLOUDCOVER(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\nDark Cloud Cover (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER = {"CDLDARKCLOUDCOVER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_92CDLDARKCLOUDCOVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLDARKCLOUDCOVER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -29920,17 +30491,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -29940,70 +30512,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1349, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1387, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1387, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1387, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1387, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1387, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1349, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1387, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(5, 1349, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDARKCLOUDCOVER", 0) < (0)) __PYX_ERR(5, 1387, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(5, 1349, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, i); __PYX_ERR(5, 1387, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1349, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1349, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1349, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1349, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1387, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1387, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1387, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1387, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1387, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1389, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1349, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1387, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1351, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1389, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1389, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1389, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1389, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -30018,11 +30606,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLDARKCLOUDCOVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30035,54 +30624,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJI", 0); + __Pyx_RefNannySetupContext("CDLDARKCLOUDCOVER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1368, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1369, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1371, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1372, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1412, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1373, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1415, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1376, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1378, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30101,7 +30711,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -30123,16 +30733,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_94CDLDOJI, "CDLDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJI(open, high, low, close)\n\nDoji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_95CDLDOJI = {"CDLDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_95CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_94CDLDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -30153,7 +30763,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30165,44 +30775,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1381, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1423, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1423, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(5, 1381, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJI", 0) < (0)) __PYX_ERR(5, 1423, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(5, 1381, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, i); __PYX_ERR(5, 1423, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1423, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1423, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1423, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1381, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1423, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -30211,22 +30821,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1381, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1423, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1383, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1425, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1425, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1425, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1425, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_94CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -30245,7 +30855,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30258,54 +30868,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1400, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1401, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1403, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1404, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1446, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1405, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1449, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1408, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1410, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30324,7 +30955,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -30346,16 +30977,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR, "CDLDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDOJISTAR(open, high, low, close)\n\nDoji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR = {"CDLDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_96CDLDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -30376,7 +31007,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDOJISTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30388,44 +31019,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1413, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1457, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1457, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1457, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1457, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1457, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(5, 1413, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDOJISTAR", 0) < (0)) __PYX_ERR(5, 1457, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(5, 1413, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, i); __PYX_ERR(5, 1457, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1457, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1457, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1457, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1413, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1457, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -30434,22 +31065,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1413, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1457, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1415, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1459, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1459, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1459, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1459, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -30468,7 +31099,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30481,54 +31112,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); + __Pyx_RefNannySetupContext("CDLDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1432, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1433, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1434, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1435, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1436, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1480, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1437, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1483, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1440, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1442, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30547,7 +31199,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -30569,16 +31221,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLENGULFING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI, "CDLDRAGONFLYDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLDRAGONFLYDOJI(open, high, low, close)\n\nDragonfly Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI = {"CDLDRAGONFLYDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_98CDLDRAGONFLYDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLDRAGONFLYDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -30599,7 +31251,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30611,44 +31263,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1445, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1491, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1491, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(5, 1445, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLDRAGONFLYDOJI", 0) < (0)) __PYX_ERR(5, 1491, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(5, 1445, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, i); __PYX_ERR(5, 1491, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1491, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1491, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1491, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1445, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1491, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -30657,22 +31309,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1445, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1491, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1447, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1493, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1493, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1493, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1493, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -30691,7 +31343,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30704,54 +31356,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLENGULFING", 0); + __Pyx_RefNannySetupContext("CDLDRAGONFLYDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1464, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1465, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1466, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1467, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1468, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1514, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1469, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1517, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1472, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1474, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -30770,7 +31443,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -30792,16 +31465,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_100CDLENGULFING, "CDLENGULFING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLENGULFING(open, high, low, close)\n\nEngulfing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_101CDLENGULFING = {"CDLENGULFING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_101CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_100CDLENGULFING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLENGULFING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -30812,18 +31485,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLENGULFING (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -30833,86 +31505,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1477, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1525, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1477, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1525, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1525, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1525, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1477, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1525, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 1477, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLENGULFING", 0) < (0)) __PYX_ERR(5, 1525, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 1477, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, i); __PYX_ERR(5, 1525, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1477, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1477, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1477, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1477, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1477, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1525, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1525, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1525, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1525, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1479, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1477, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1525, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1479, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1527, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1527, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1527, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1527, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_100CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -30927,12 +31583,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -30945,54 +31600,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLENGULFING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1502, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1548, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1503, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1551, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1506, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1508, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31011,7 +31687,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -31033,16 +31709,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR, "CDLEVENINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\nEvening Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR = {"CDLEVENINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_102CDLEVENINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLEVENINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31064,7 +31740,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31076,52 +31752,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1511, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1559, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(5, 1511, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 1559, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 1511, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 1559, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1559, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1559, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1559, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1559, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1559, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -31131,29 +31807,29 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1513, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1561, __pyx_L3_error) } else { __pyx_v_penetration = ((double)((double)0.3)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1511, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1559, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1513, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1561, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1561, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1561, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1561, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -31173,7 +31849,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLEVENINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31186,54 +31862,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLEVENINGDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1532, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1533, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1534, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1535, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1536, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1584, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1537, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1587, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1540, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1542, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31252,7 +31949,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -31274,16 +31971,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR, "CDLEVENINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\nEvening Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR = {"CDLEVENINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_104CDLEVENINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLEVENINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31294,17 +31991,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLEVENINGSTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31314,70 +32012,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1545, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1595, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1595, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1595, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1595, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1595, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1545, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1595, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(5, 1545, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLEVENINGSTAR", 0) < (0)) __PYX_ERR(5, 1595, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(5, 1545, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 1595, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1545, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1545, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1545, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1545, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 1595, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1595, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1595, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1595, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1595, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 1597, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1545, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 1595, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1547, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1597, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1597, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1597, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1597, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -31392,11 +32106,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLEVENINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31409,54 +32124,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); + __Pyx_RefNannySetupContext("CDLEVENINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1564, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1565, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1566, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1567, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1568, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1620, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1569, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1623, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1572, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1574, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31475,7 +32211,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -31497,16 +32233,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE, "CDLGAPSIDESIDEWHITE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGAPSIDESIDEWHITE(open, high, low, close)\n\nUp/Down-gap side-by-side white lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE = {"CDLGAPSIDESIDEWHITE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31527,7 +32263,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31539,44 +32275,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1577, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1631, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1631, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(5, 1577, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGAPSIDESIDEWHITE", 0) < (0)) __PYX_ERR(5, 1631, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(5, 1577, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, i); __PYX_ERR(5, 1631, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1631, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1631, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1631, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1577, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1631, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -31585,22 +32321,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1577, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1631, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1579, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1633, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1633, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -31619,7 +32355,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31632,54 +32368,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); + __Pyx_RefNannySetupContext("CDLGAPSIDESIDEWHITE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1596, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1597, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1598, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1599, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1600, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1654, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1601, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1657, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1604, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1606, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31698,7 +32455,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -31720,16 +32477,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI, "CDLGRAVESTONEDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLGRAVESTONEDOJI(open, high, low, close)\n\nGravestone Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI = {"CDLGRAVESTONEDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_108CDLGRAVESTONEDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLGRAVESTONEDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31750,7 +32507,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31762,44 +32519,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1609, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1665, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1665, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(5, 1609, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLGRAVESTONEDOJI", 0) < (0)) __PYX_ERR(5, 1665, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1609, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, i); __PYX_ERR(5, 1665, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1665, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1665, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1665, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1609, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1665, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -31808,22 +32565,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1609, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1665, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1611, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1667, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1667, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1667, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1667, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -31842,7 +32599,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -31855,54 +32612,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHAMMER", 0); + __Pyx_RefNannySetupContext("CDLGRAVESTONEDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1629, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1630, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1631, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1632, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1688, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1633, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1691, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1636, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1638, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -31921,7 +32699,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -31943,16 +32721,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_110CDLHAMMER, "CDLHAMMER(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHAMMER(open, high, low, close)\n\nHammer (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_111CDLHAMMER = {"CDLHAMMER", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_111CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_110CDLHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHAMMER(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -31973,7 +32751,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHAMMER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -31985,44 +32763,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1641, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1699, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1699, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(5, 1641, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHAMMER", 0) < (0)) __PYX_ERR(5, 1699, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(5, 1641, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1699, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1699, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1699, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1699, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1641, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1699, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -32031,22 +32809,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1641, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1699, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1643, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1701, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_110CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -32065,7 +32843,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32078,54 +32856,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); + __Pyx_RefNannySetupContext("CDLHAMMER", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1660, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1718, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1661, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1662, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1663, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1664, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1722, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1665, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1725, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1668, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1670, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -32144,7 +32943,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -32166,16 +32965,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObjec /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHARAMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN, "CDLHANGINGMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHANGINGMAN(open, high, low, close)\n\nHanging Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN = {"CDLHANGINGMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_112CDLHANGINGMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHANGINGMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -32196,7 +32995,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHANGINGMAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32208,44 +33007,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1673, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1733, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1733, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(5, 1673, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHANGINGMAN", 0) < (0)) __PYX_ERR(5, 1733, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(5, 1673, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, i); __PYX_ERR(5, 1733, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1733, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1733, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1733, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1673, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1733, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -32254,22 +33053,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1673, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1733, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1675, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1735, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1735, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1735, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1735, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -32288,7 +33087,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32301,54 +33100,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMI", 0); + __Pyx_RefNannySetupContext("CDLHANGINGMAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1694, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1695, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1696, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1756, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1697, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1759, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1702, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -32367,7 +33187,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -32389,16 +33209,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_114CDLHARAMI, "CDLHARAMI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMI(open, high, low, close)\n\nHarami Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_115CDLHARAMI = {"CDLHARAMI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_115CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_114CDLHARAMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLHARAMI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -32419,7 +33239,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHARAMI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32431,44 +33251,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1705, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1767, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1767, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(5, 1705, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMI", 0) < (0)) __PYX_ERR(5, 1767, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(5, 1705, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, i); __PYX_ERR(5, 1767, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1767, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1767, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1767, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1705, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1767, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -32477,22 +33297,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1705, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1767, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1707, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1769, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_114CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -32511,7 +33331,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32524,54 +33344,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); + __Pyx_RefNannySetupContext("CDLHARAMI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1724, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1725, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1726, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1727, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1728, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1790, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1729, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1793, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1732, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1734, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -32590,7 +33431,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -32612,16 +33453,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS, "CDLHARAMICROSS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHARAMICROSS(open, high, low, close)\n\nHarami Cross Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS = {"CDLHARAMICROSS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_116CDLHARAMICROSS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLHARAMICROSS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -32642,7 +33483,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHARAMICROSS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32654,44 +33495,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1737, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1801, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1801, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(5, 1737, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHARAMICROSS", 0) < (0)) __PYX_ERR(5, 1801, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(5, 1737, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, i); __PYX_ERR(5, 1801, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1801, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1801, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1801, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1737, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1801, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -32700,22 +33541,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1737, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1801, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1739, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -32734,7 +33575,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32747,54 +33588,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); + __Pyx_RefNannySetupContext("CDLHARAMICROSS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1756, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1820, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1757, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1758, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1759, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1760, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1824, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1761, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1827, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1764, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1766, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1832, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -32813,7 +33675,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -32835,16 +33697,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE, "CDLHIGHWAVE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIGHWAVE(open, high, low, close)\n\nHigh-Wave Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE = {"CDLHIGHWAVE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_118CDLHIGHWAVE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLHIGHWAVE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -32865,7 +33727,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIGHWAVE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -32877,44 +33739,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1769, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1835, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1835, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(5, 1769, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIGHWAVE", 0) < (0)) __PYX_ERR(5, 1835, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(5, 1769, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, i); __PYX_ERR(5, 1835, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1835, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1835, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1835, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1769, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1835, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -32923,22 +33785,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1769, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1835, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1771, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1837, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1837, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1837, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1837, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -32957,7 +33819,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -32970,54 +33832,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); + __Pyx_RefNannySetupContext("CDLHIGHWAVE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1789, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1790, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1791, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1792, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1858, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1793, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1861, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1796, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1798, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1866, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33036,7 +33919,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -33058,16 +33941,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE, "CDLHIKKAKE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKE(open, high, low, close)\n\nHikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE = {"CDLHIKKAKE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_120CDLHIKKAKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLHIKKAKE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -33088,7 +33971,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -33100,44 +33983,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1801, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1869, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1869, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1869, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1869, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1869, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(5, 1801, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKE", 0) < (0)) __PYX_ERR(5, 1869, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(5, 1801, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, i); __PYX_ERR(5, 1869, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1869, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1869, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1869, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1801, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1869, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -33146,22 +34029,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1801, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1869, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1803, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1871, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1871, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1871, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1871, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -33180,7 +34063,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -33193,54 +34076,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); + __Pyx_RefNannySetupContext("CDLHIKKAKE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1821, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1822, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1823, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1824, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1892, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1825, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1894, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1895, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1828, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1830, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33259,7 +34163,251 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD, "CDLHIKKAKEMOD(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLHIKKAKEMOD(open, high, low, close)\n\nModified Hikkake Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD = {"CDLHIKKAKEMOD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_122CDLHIKKAKEMOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLHIKKAKEMOD(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1903, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1903, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1903, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1903, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1903, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHIKKAKEMOD", 0) < (0)) __PYX_ERR(5, 1903, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, i); __PYX_ERR(5, 1903, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1903, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1903, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1903, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1903, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1903, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1905, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1905, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1905, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1905, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + npy_int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLHIKKAKEMOD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1926, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1929, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -33323,44 +34471,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1833, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1937, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1937, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1937, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1937, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1937, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(5, 1833, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLHOMINGPIGEON", 0) < (0)) __PYX_ERR(5, 1937, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(5, 1833, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, i); __PYX_ERR(5, 1937, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1937, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1937, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1937, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1833, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1937, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -33369,7 +34517,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1833, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1937, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -33380,10 +34528,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1835, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1939, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1939, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1939, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1939, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -33416,7 +34564,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -33426,44 +34575,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1852, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1853, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1854, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1855, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1856, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1960, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1857, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1963, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1860, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1862, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33546,44 +34715,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1865, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1971, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1971, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(5, 1865, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLIDENTICAL3CROWS", 0) < (0)) __PYX_ERR(5, 1971, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(5, 1865, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, i); __PYX_ERR(5, 1971, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1971, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1971, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1971, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1865, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1971, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -33592,7 +34761,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1865, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1971, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -33603,10 +34772,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1867, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1973, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1973, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1973, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1973, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -33639,7 +34808,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -33649,44 +34819,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1885, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1886, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1887, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1888, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1994, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1889, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1997, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1892, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1894, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33769,44 +34959,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1897, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2005, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2005, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2005, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2005, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2005, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(5, 1897, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINNECK", 0) < (0)) __PYX_ERR(5, 2005, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(5, 1897, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, i); __PYX_ERR(5, 2005, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2005, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2005, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2005, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1897, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2005, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -33815,7 +35005,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1897, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2005, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -33826,10 +35016,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1899, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2007, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2007, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2007, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2007, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_128CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -33862,7 +35052,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -33872,44 +35063,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLINNECK(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1916, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1917, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1918, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1919, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1920, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2028, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1921, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2031, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1924, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1926, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -33992,44 +35203,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1929, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2039, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2039, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2039, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2039, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2039, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(5, 1929, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLINVERTEDHAMMER", 0) < (0)) __PYX_ERR(5, 2039, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(5, 1929, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, i); __PYX_ERR(5, 2039, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2039, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2039, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2039, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1929, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2039, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -34038,7 +35249,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1929, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2039, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -34049,10 +35260,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2041, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2041, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2041, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2041, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -34085,7 +35296,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -34095,44 +35307,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1949, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1950, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1951, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1952, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2062, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1953, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2065, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1956, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1958, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34215,44 +35447,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1961, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2073, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2073, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(5, 1961, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKING", 0) < (0)) __PYX_ERR(5, 2073, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(5, 1961, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, i); __PYX_ERR(5, 2073, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2073, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2073, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2073, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1961, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2073, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -34261,7 +35493,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1961, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2073, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -34272,10 +35504,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1963, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2075, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2075, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2075, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2075, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_132CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -34308,7 +35540,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -34318,267 +35551,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLKICKING(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1980, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2093, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1982, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1983, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 1984, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2096, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 1985, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + if (__pyx_t_3) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2098, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outinteger); - __pyx_r = ((PyObject *)__pyx_v_outinteger); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); - __Pyx_XDECREF((PyObject *)__pyx_v_open); - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XDECREF((PyObject *)__pyx_v_close); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_open = 0; - PyArrayObject *__pyx_v_high = 0; - PyArrayObject *__pyx_v_low = 0; - PyArrayObject *__pyx_v_close = 0; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 1993, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 3: - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1993, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(5, 1993, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(5, 1993, __pyx_L3_error) } + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 1993, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 1993, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 1993, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 1993, __pyx_L3_error) + __Pyx_XDECREF(__pyx_temp); } - __pyx_v_open = ((PyArrayObject *)values[0]); - __pyx_v_high = ((PyArrayObject *)values[1]); - __pyx_v_low = ((PyArrayObject *)values[2]); - __pyx_v_close = ((PyArrayObject *)values[3]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 1993, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 1995, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + __pyx_t_1 = 0; + goto __pyx_L0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_intp __pyx_t_2; - npy_int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); - __Pyx_INCREF((PyObject *)__pyx_v_open); - __Pyx_INCREF((PyObject *)__pyx_v_high); - __Pyx_INCREF((PyObject *)__pyx_v_low); - __Pyx_INCREF((PyObject *)__pyx_v_close); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2012, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2013, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2014, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2016, __pyx_L1_error) - __pyx_v_length = __pyx_t_2; - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2017, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2099, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2020, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2022, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34597,7 +35627,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -34619,16 +35649,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH, "CDLKICKINGBYLENGTH(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLKICKINGBYLENGTH(open, high, low, close)\n\nKicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH = {"CDLKICKINGBYLENGTH", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_134CDLKICKINGBYLENGTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLKICKINGBYLENGTH(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -34649,7 +35679,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34661,44 +35691,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2025, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2107, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2107, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(5, 2025, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLKICKINGBYLENGTH", 0) < (0)) __PYX_ERR(5, 2107, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(5, 2025, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, i); __PYX_ERR(5, 2107, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2107, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2107, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2107, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2025, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2107, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -34707,22 +35737,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2025, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2107, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2027, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2109, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2109, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2109, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2109, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -34741,7 +35771,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -34754,54 +35784,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); + __Pyx_RefNannySetupContext("CDLKICKINGBYLENGTH", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2045, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2046, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2047, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2048, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2130, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2049, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2133, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2052, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2054, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -34820,7 +35871,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -34842,16 +35893,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM, "CDLLADDERBOTTOM(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLADDERBOTTOM(open, high, low, close)\n\nLadder Bottom (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM = {"CDLLADDERBOTTOM", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_136CDLLADDERBOTTOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLLADDERBOTTOM(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -34872,7 +35923,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -34884,44 +35935,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2057, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2141, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2141, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(5, 2057, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLADDERBOTTOM", 0) < (0)) __PYX_ERR(5, 2141, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(5, 2057, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, i); __PYX_ERR(5, 2141, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2141, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2141, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2141, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2057, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2141, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -34930,22 +35981,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2057, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2141, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2059, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2143, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2143, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2143, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2143, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -34964,7 +36015,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -34977,54 +36028,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); + __Pyx_RefNannySetupContext("CDLLADDERBOTTOM", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2076, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2077, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2078, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2080, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2164, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2081, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2167, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2084, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2086, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35043,7 +36115,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35065,16 +36137,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLLONGLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI, "CDLLONGLEGGEDDOJI(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLEGGEDDOJI(open, high, low, close)\n\nLong Legged Doji (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI = {"CDLLONGLEGGEDDOJI", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35095,7 +36167,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35107,44 +36179,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2089, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2175, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2175, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(5, 2089, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLEGGEDDOJI", 0) < (0)) __PYX_ERR(5, 2175, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(5, 2089, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, i); __PYX_ERR(5, 2175, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2175, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2175, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2175, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2089, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2175, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -35153,22 +36225,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2089, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2175, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2091, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2177, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -35187,7 +36259,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35200,54 +36272,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLLONGLINE", 0); + __Pyx_RefNannySetupContext("CDLLONGLEGGEDDOJI", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2109, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2110, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2111, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2112, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2198, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2113, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2201, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2116, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2118, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35266,7 +36359,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35288,16 +36381,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_140CDLLONGLINE, "CDLLONGLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLLONGLINE(open, high, low, close)\n\nLong Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE = {"CDLLONGLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_140CDLLONGLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLLONGLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35318,7 +36411,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLLONGLINE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35330,44 +36423,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2121, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2209, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2209, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2209, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2209, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2209, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(5, 2121, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLLONGLINE", 0) < (0)) __PYX_ERR(5, 2209, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 2121, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, i); __PYX_ERR(5, 2209, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2209, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2209, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2209, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2121, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2209, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -35376,22 +36469,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2121, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2209, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2123, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2211, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2211, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2211, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2211, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -35410,7 +36503,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35423,54 +36516,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); + __Pyx_RefNannySetupContext("CDLLONGLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2140, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2141, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2142, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2143, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2144, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2232, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2145, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2235, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2148, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2150, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35489,7 +36603,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35511,16 +36625,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW}; -static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU, "CDLMARUBOZU(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMARUBOZU(open, high, low, close)\n\nMarubozu (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU = {"CDLMARUBOZU", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_142CDLMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLMARUBOZU(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35541,7 +36655,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMARUBOZU (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35553,44 +36667,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2153, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2243, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(5, 2153, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMARUBOZU", 0) < (0)) __PYX_ERR(5, 2243, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(5, 2153, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, i); __PYX_ERR(5, 2243, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2243, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2243, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2243, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2153, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2243, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -35599,22 +36713,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2153, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2243, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2155, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2245, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2245, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2245, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2245, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -35633,7 +36747,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35646,54 +36760,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); + __Pyx_RefNannySetupContext("CDLMARUBOZU", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2172, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2173, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2174, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2175, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2176, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2266, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2177, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2269, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2180, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2182, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35712,7 +36847,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35734,16 +36869,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLMATHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW, "CDLMATCHINGLOW(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLMATCHINGLOW(open, high, low, close)\n\nMatching Low (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW = {"CDLMATCHINGLOW", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_144CDLMATCHINGLOW}; +static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLMATCHINGLOW(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -35754,18 +36889,17 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; - double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[5] = {0,0,0,0,0}; + PyObject* values[4] = {0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMATCHINGLOW (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -35775,86 +36909,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2185, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2277, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2185, __pyx_L3_error) - CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2185, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2277, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(5, 2185, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATCHINGLOW", 0) < (0)) __PYX_ERR(5, 2277, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(5, 2185, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, i); __PYX_ERR(5, 2277, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; } else { - switch (__pyx_nargs) { - case 5: - values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2185, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 4: - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2185, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2185, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2185, __pyx_L3_error) - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2185, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; - } + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2277, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2277, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2277, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2277, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); - if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2187, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2185, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2277, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2187, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2279, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2279, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2279, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2279, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -35869,12 +36987,11 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; - __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -35887,54 +37004,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMATHOLD", 0); + __Pyx_RefNannySetupContext("CDLMATCHINGLOW", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2206, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2207, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2208, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2209, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2210, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2300, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2211, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2303, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2214, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2216, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -35953,7 +37091,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -35975,16 +37113,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject * /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_146CDLMATHOLD, "CDLMATHOLD(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.5)\n\nCDLMATHOLD(open, high, low, close[, penetration=?])\n\nMat Hold (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.5\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD = {"CDLMATHOLD", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_146CDLMATHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLMATHOLD(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36006,7 +37144,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMATHOLD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36018,52 +37156,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2219, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2311, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 2219, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMATHOLD", 0) < (0)) __PYX_ERR(5, 2311, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 2219, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, i); __PYX_ERR(5, 2311, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2311, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2311, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2311, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2311, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2219, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2311, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -36073,29 +37211,29 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2221, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2313, __pyx_L3_error) } else { - __pyx_v_penetration = ((double)((double)0.3)); + __pyx_v_penetration = ((double)((double)0.5)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2219, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2311, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2221, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2313, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2313, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2313, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2313, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -36115,7 +37253,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLMATHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36128,54 +37266,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); + __Pyx_RefNannySetupContext("CDLMATHOLD", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2240, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2241, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2242, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2243, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2244, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2336, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2245, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2339, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2248, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2250, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36194,7 +37353,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -36216,16 +37375,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR, "CDLMORNINGDOJISTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\nMorning Doji Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR = {"CDLMORNINGDOJISTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_148CDLMORNINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLMORNINGDOJISTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36247,7 +37406,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36259,52 +37418,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2253, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2347, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2347, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2347, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2347, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2347, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2347, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(5, 2253, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGDOJISTAR", 0) < (0)) __PYX_ERR(5, 2347, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 2253, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, i); __PYX_ERR(5, 2347, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2347, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2347, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2347, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2347, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2253, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2347, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -36314,29 +37473,29 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2255, __pyx_L3_error) + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2349, __pyx_L3_error) } else { __pyx_v_penetration = ((double)((double)0.3)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2253, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2347, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2255, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2349, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2349, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2349, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2349, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -36356,7 +37515,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { +static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLMORNINGDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36369,54 +37528,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLMORNINGDOJISTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2274, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2275, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2276, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2277, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2278, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2372, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2279, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2375, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2282, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2284, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36435,7 +37615,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -36457,16 +37637,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLONNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR, "CDLMORNINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close, double penetration=0.3)\n\nCDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\nMorning Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nParameters:\n penetration: 0.3\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR = {"CDLMORNINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_150CDLMORNINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLMORNINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36477,17 +37657,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds PyArrayObject *__pyx_v_high = 0; PyArrayObject *__pyx_v_low = 0; PyArrayObject *__pyx_v_close = 0; + double __pyx_v_penetration; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[4] = {0,0,0,0}; + PyObject* values[5] = {0,0,0,0,0}; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLMORNINGSTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36497,70 +37678,86 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_penetration,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2287, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2383, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2383, __pyx_L3_error) + CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2287, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2383, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(5, 2287, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLMORNINGSTAR", 0) < (0)) __PYX_ERR(5, 2383, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(5, 2287, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, i); __PYX_ERR(5, 2383, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; } else { - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2287, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2287, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2287, __pyx_L3_error) - values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2287, __pyx_L3_error) + switch (__pyx_nargs) { + case 5: + values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2383, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2383, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2383, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2383, __pyx_L3_error) + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2383, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); __pyx_v_low = ((PyArrayObject *)values[2]); __pyx_v_close = ((PyArrayObject *)values[3]); + if (values[4]) { + __pyx_v_penetration = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_penetration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 2385, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2287, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2383, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2289, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); /* function exit code */ goto __pyx_L0; @@ -36575,11 +37772,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds Py_XDECREF(values[__pyx_temp]); } __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLMORNINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close, double __pyx_v_penetration) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36592,54 +37790,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLONNECK", 0); + __Pyx_RefNannySetupContext("CDLMORNINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2306, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2404, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2307, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2309, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2310, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2408, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2311, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2411, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2314, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2316, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36658,7 +37877,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -36680,16 +37899,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *_ /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLPIERCING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_152CDLONNECK, "CDLONNECK(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLONNECK(open, high, low, close)\n\nOn-Neck Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_153CDLONNECK = {"CDLONNECK", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_153CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_152CDLONNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLONNECK(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36710,7 +37929,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLONNECK (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36722,44 +37941,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2319, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2419, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2419, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(5, 2319, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLONNECK", 0) < (0)) __PYX_ERR(5, 2419, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(5, 2319, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, i); __PYX_ERR(5, 2419, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2419, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2419, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2419, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2319, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2419, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -36768,22 +37987,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2319, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2419, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2321, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2421, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2421, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2421, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2421, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_152CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -36802,7 +38021,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -36815,54 +38034,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLPIERCING", 0); + __Pyx_RefNannySetupContext("CDLONNECK", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2338, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2339, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2340, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2440, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2341, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2342, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2442, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2343, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2445, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2348, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -36881,7 +38121,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -36903,16 +38143,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_154CDLPIERCING, "CDLPIERCING(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLPIERCING(open, high, low, close)\n\nPiercing Pattern (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_155CDLPIERCING = {"CDLPIERCING", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_155CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_154CDLPIERCING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLPIERCING(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -36933,7 +38173,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLPIERCING (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -36945,44 +38185,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2351, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2453, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2453, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(5, 2351, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLPIERCING", 0) < (0)) __PYX_ERR(5, 2453, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(5, 2351, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, i); __PYX_ERR(5, 2453, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2453, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2453, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2453, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2351, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2453, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -36991,22 +38231,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2351, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2453, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2353, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2455, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2455, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2455, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2455, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_154CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37025,7 +38265,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37038,54 +38278,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); + __Pyx_RefNannySetupContext("CDLPIERCING", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2370, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2371, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2372, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2373, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2374, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2476, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2375, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2479, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2378, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2380, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37104,7 +38365,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -37126,16 +38387,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObje /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN, "CDLRICKSHAWMAN(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRICKSHAWMAN(open, high, low, close)\n\nRickshaw Man (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN = {"CDLRICKSHAWMAN", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_156CDLRICKSHAWMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLRICKSHAWMAN(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37156,7 +38417,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37168,44 +38429,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2383, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2487, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2487, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2487, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2487, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2487, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(5, 2383, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRICKSHAWMAN", 0) < (0)) __PYX_ERR(5, 2487, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2383, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, i); __PYX_ERR(5, 2487, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2487, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2487, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2487, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2383, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2487, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -37214,22 +38475,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2383, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2487, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2385, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2489, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2489, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2489, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2489, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37248,7 +38509,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37261,54 +38522,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); + __Pyx_RefNannySetupContext("CDLRICKSHAWMAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2402, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2506, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2403, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2404, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2405, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2406, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2510, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2407, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2513, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2410, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2412, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37327,7 +38609,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -37349,16 +38631,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED P /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES}; -static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS, "CDLRISEFALL3METHODS(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLRISEFALL3METHODS(open, high, low, close)\n\nRising/Falling Three Methods (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS = {"CDLRISEFALL3METHODS", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_158CDLRISEFALL3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLRISEFALL3METHODS(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37379,7 +38661,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37391,44 +38673,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2415, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2521, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2521, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(5, 2415, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLRISEFALL3METHODS", 0) < (0)) __PYX_ERR(5, 2521, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(5, 2415, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2521, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2521, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2521, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2521, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2415, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2521, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -37437,22 +38719,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2415, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2521, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2417, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2523, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37471,7 +38753,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37484,54 +38766,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); + __Pyx_RefNannySetupContext("CDLRISEFALL3METHODS", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2434, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2435, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2436, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2437, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2438, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2544, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2439, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2547, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2442, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2444, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37550,7 +38853,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -37572,16 +38875,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED Py /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES, "CDLSEPARATINGLINES(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSEPARATINGLINES(open, high, low, close)\n\nSeparating Lines (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES = {"CDLSEPARATINGLINES", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_160CDLSEPARATINGLINES}; +static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLSEPARATINGLINES(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37602,7 +38905,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37614,44 +38917,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2447, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2555, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2555, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(5, 2447, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSEPARATINGLINES", 0) < (0)) __PYX_ERR(5, 2555, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(5, 2447, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, i); __PYX_ERR(5, 2555, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2555, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2555, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2555, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2447, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2555, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -37660,22 +38963,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2447, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2555, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2449, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2557, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2557, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2557, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2557, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37694,7 +38997,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37707,54 +39010,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); + __Pyx_RefNannySetupContext("CDLSEPARATINGLINES", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2466, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2467, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2468, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2469, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2470, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2578, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2471, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2581, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2474, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2476, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37773,7 +39097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -37795,16 +39119,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR, "CDLSHOOTINGSTAR(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHOOTINGSTAR(open, high, low, close)\n\nShooting Star (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR = {"CDLSHOOTINGSTAR", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_162CDLSHOOTINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLSHOOTINGSTAR(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -37825,7 +39149,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -37837,44 +39161,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2479, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2589, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2589, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2589, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2589, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2589, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(5, 2479, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHOOTINGSTAR", 0) < (0)) __PYX_ERR(5, 2589, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(5, 2479, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, i); __PYX_ERR(5, 2589, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2589, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2589, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2589, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2479, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2589, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -37883,22 +39207,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2479, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2589, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2481, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2591, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2591, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2591, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2591, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -37917,7 +39241,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -37930,54 +39254,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); + __Pyx_RefNannySetupContext("CDLSHOOTINGSTAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2498, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2499, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2500, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2501, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2502, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2612, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2503, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2615, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2506, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2508, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -37996,7 +39341,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -38018,16 +39363,16 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE, "CDLSHORTLINE(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSHORTLINE(open, high, low, close)\n\nShort Line Candle (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE = {"CDLSHORTLINE", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_164CDLSHORTLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLSHORTLINE(PyObject *__pyx_self, #if CYTHON_VECTORCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -38048,7 +39393,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); + __Pyx_RefNannySetupContext("CDLSHORTLINE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -38060,44 +39405,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2511, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2623, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2623, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(5, 2511, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSHORTLINE", 0) < (0)) __PYX_ERR(5, 2623, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(5, 2511, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, i); __PYX_ERR(5, 2623, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2623, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2623, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2623, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2511, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2623, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -38106,22 +39451,22 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2511, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2623, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2513, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2625, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2625, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2625, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2625, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ goto __pyx_L0; @@ -38140,7 +39485,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { +static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -38153,54 +39498,75 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); + __Pyx_RefNannySetupContext("CDLSHORTLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2530, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2531, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2532, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2533, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2534, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2646, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2535, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2649, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2538, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2540, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38219,7 +39585,251 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObje /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outinteger); + __Pyx_XDECREF((PyObject *)__pyx_v_open); + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP, "CDLSPINNINGTOP(ndarray open, ndarray high, ndarray low, ndarray close)\n\nCDLSPINNINGTOP(open, high, low, close)\n\nSpinning Top (Pattern Recognition)\n\nInputs:\n prices: [\047open\047, \047high\047, \047low\047, \047close\047]\nOutputs:\n integer (values are -100, 0 or 100)"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP = {"CDLSPINNINGTOP", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_166CDLSPINNINGTOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLSPINNINGTOP(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("CDLSPINNINGTOP (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2657, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2657, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2657, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2657, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2657, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSPINNINGTOP", 0) < (0)) __PYX_ERR(5, 2657, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, i); __PYX_ERR(5, 2657, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2657, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2657, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2657, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2657, __pyx_L3_error) + } + __pyx_v_open = ((PyArrayObject *)values[0]); + __pyx_v_high = ((PyArrayObject *)values[1]); + __pyx_v_low = ((PyArrayObject *)values[2]); + __pyx_v_close = ((PyArrayObject *)values[3]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2657, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2659, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2659, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2659, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2659, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outinteger = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; + npy_int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("CDLSPINNINGTOP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_open); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2680, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2683, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outinteger); + __pyx_r = ((PyObject *)__pyx_v_outinteger); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -38283,44 +39893,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2543, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2691, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2691, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2691, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2691, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2691, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(5, 2543, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTALLEDPATTERN", 0) < (0)) __PYX_ERR(5, 2691, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(5, 2543, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, i); __PYX_ERR(5, 2691, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2691, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2691, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2691, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2543, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2691, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -38329,7 +39939,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2543, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2691, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -38340,10 +39950,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2545, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2693, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2693, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2693, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2693, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -38376,7 +39986,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -38386,44 +39997,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2562, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2563, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2564, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2565, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2566, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2714, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2567, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2717, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2570, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2572, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38506,44 +40137,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2575, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2725, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2725, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2725, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2725, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2725, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(5, 2575, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLSTICKSANDWICH", 0) < (0)) __PYX_ERR(5, 2725, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(5, 2575, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, i); __PYX_ERR(5, 2725, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2725, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2725, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2725, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2575, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2725, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -38552,7 +40183,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2575, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2725, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -38563,10 +40194,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2727, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2727, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2727, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2727, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -38599,7 +40230,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -38609,44 +40241,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2594, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2595, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2596, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2597, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2598, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2748, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2599, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2751, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2602, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2604, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38729,44 +40381,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2607, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2759, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(5, 2607, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTAKURI", 0) < (0)) __PYX_ERR(5, 2759, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(5, 2607, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, i); __PYX_ERR(5, 2759, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2759, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2759, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2759, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2607, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2759, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -38775,7 +40427,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2607, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2759, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -38786,10 +40438,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2761, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2761, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2761, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2761, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_172CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -38822,7 +40474,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -38832,44 +40485,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLTAKURI(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2626, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2627, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2629, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2630, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2782, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2631, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2785, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2634, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2636, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -38952,44 +40625,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2639, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2793, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2793, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2793, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2793, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2793, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(5, 2639, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTASUKIGAP", 0) < (0)) __PYX_ERR(5, 2793, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(5, 2639, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, i); __PYX_ERR(5, 2793, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2793, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2793, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2793, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2639, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2793, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -38998,7 +40671,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2639, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2793, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -39009,10 +40682,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2641, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2795, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2795, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2795, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2795, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -39045,7 +40718,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -39055,44 +40729,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CDLTASUKIGAP(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2658, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2659, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2660, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2661, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2662, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2816, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2663, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2819, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2666, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2668, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39175,44 +40869,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2671, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2827, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(5, 2671, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTHRUSTING", 0) < (0)) __PYX_ERR(5, 2827, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(5, 2671, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, i); __PYX_ERR(5, 2827, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2827, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2827, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2827, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2671, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2827, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -39221,7 +40915,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2671, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2827, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -39232,10 +40926,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2673, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2829, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2829, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2829, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2829, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -39268,7 +40962,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -39278,44 +40973,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CDLTHRUSTING(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2690, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2691, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2692, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2693, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2694, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2850, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2695, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2853, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2698, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2700, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2858, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39398,44 +41113,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2703, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2861, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2861, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2861, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2861, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2861, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(5, 2703, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLTRISTAR", 0) < (0)) __PYX_ERR(5, 2861, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(5, 2703, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, i); __PYX_ERR(5, 2861, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2861, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2861, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2861, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2703, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2861, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -39444,7 +41159,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2703, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2861, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -39455,10 +41170,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2705, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2863, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2863, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2863, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2863, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -39491,7 +41206,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -39501,44 +41217,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CDLTRISTAR(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2722, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2723, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2724, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2725, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2726, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2884, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2727, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2887, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2730, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2732, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39621,44 +41357,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2735, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2895, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2895, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(5, 2735, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUNIQUE3RIVER", 0) < (0)) __PYX_ERR(5, 2895, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(5, 2735, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, i); __PYX_ERR(5, 2895, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2895, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2895, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2895, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2735, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2895, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -39667,7 +41403,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2735, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2895, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -39678,10 +41414,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2897, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2897, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2897, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2897, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -39714,7 +41450,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -39724,44 +41461,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2754, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2755, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2756, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2757, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2758, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2918, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2759, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2921, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2762, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2764, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -39844,44 +41601,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2767, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2929, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2929, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(5, 2767, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLUPSIDEGAP2CROWS", 0) < (0)) __PYX_ERR(5, 2929, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(5, 2767, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, i); __PYX_ERR(5, 2929, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2929, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2929, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2929, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2767, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2929, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -39890,7 +41647,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2767, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2929, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -39901,10 +41658,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2769, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2931, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2931, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -39937,7 +41694,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -39947,44 +41705,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2786, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2787, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2788, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2789, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2790, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2952, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2791, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2955, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2794, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2796, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40067,44 +41845,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2799, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2963, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(5, 2799, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CDLXSIDEGAP3METHODS", 0) < (0)) __PYX_ERR(5, 2963, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2799, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, i); __PYX_ERR(5, 2963, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2963, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2963, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2963, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2799, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2963, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -40113,7 +41891,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2799, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 2963, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -40124,10 +41902,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2801, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 2965, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2965, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2965, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2965, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -40160,7 +41938,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -40170,44 +41949,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2818, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2819, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2820, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2821, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2822, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2986, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2823, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2989, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2826, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2828, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40287,32 +42086,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2831, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2997, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2997, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(5, 2831, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CEIL", 0) < (0)) __PYX_ERR(5, 2997, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(5, 2831, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, i); __PYX_ERR(5, 2997, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2831, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2997, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2831, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 2997, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -40323,7 +42122,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2833, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2999, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_186CEIL(__pyx_self, __pyx_v_real); /* function exit code */ @@ -40355,35 +42154,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186CEIL(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("CEIL", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2850, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2852, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3020, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2855, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2857, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40464,52 +42284,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2860, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3028, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMF", 0) < (0)) __PYX_ERR(5, 2860, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMF", 0) < (0)) __PYX_ERR(5, 3028, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, i); __PYX_ERR(5, 2860, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, i); __PYX_ERR(5, 3028, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3028, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3028, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3028, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3028, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2860, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3028, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -40519,14 +42339,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = ((PyArrayObject *)values[2]); __pyx_v_volume = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2862, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3030, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 2860, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMF", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 3028, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -40537,10 +42357,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 2862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3030, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3030, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3030, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 3030, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_188CMF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ @@ -40574,7 +42394,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -40584,44 +42405,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188CMF(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2881, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2882, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2883, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2884, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 2885, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3053, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2886, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3056, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CMF_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2889, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CMF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2891, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40702,48 +42543,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2894, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3064, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(5, 2894, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMO", 0) < (0)) __PYX_ERR(5, 3064, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(5, 2894, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, i); __PYX_ERR(5, 3064, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3064, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2894, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3064, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2896, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3066, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 2894, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3064, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -40754,7 +42595,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2896, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3066, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_190CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -40787,35 +42628,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190CMO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("CMO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2917, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3089, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2920, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2922, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3094, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -40893,48 +42755,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2925, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3097, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2925, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3097, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2925, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3097, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMOU", 0) < (0)) __PYX_ERR(5, 2925, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CMOU", 0) < (0)) __PYX_ERR(5, 3097, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, i); __PYX_ERR(5, 2925, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, i); __PYX_ERR(5, 3097, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2925, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3097, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2925, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3097, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2927, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3099, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 2925, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CMOU", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3097, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -40945,7 +42807,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2927, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3099, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_192CMOU(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -40978,35 +42840,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192CMOU(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("CMOU", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2946, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2948, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3122, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CMOU_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2951, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CMOU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2953, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CMOU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41086,74 +42969,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_wmaperiod,&__pyx_mstate_global->__pyx_n_u_roc1period,&__pyx_mstate_global->__pyx_n_u_roc2period,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2956, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3130, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COPPOCK", 0) < (0)) __PYX_ERR(5, 2956, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COPPOCK", 0) < (0)) __PYX_ERR(5, 3130, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, i); __PYX_ERR(5, 2956, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, i); __PYX_ERR(5, 3130, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3130, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2956, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3130, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2958, __pyx_L3_error) + __pyx_v_wmaperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_wmaperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3132, __pyx_L3_error) } else { __pyx_v_wmaperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2958, __pyx_L3_error) + __pyx_v_roc1period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_roc1period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3132, __pyx_L3_error) } else { __pyx_v_roc1period = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2958, __pyx_L3_error) + __pyx_v_roc2period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_roc2period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3132, __pyx_L3_error) } else { __pyx_v_roc2period = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 2956, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COPPOCK", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 3130, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -41164,7 +43047,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 2958, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3132, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_194COPPOCK(__pyx_self, __pyx_v_real, __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period); /* function exit code */ @@ -41199,35 +43082,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194COPPOCK(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("COPPOCK", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2979, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2981, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3157, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_COPPOCK_Lookback(__pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2984, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_COPPOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_wmaperiod, __pyx_v_roc1period, __pyx_v_roc2period, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 2986, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COPPOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41306,40 +43210,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 2989, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3165, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(5, 2989, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CORREL", 0) < (0)) __PYX_ERR(5, 3165, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(5, 2989, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, i); __PYX_ERR(5, 3165, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3165, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3165, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 2989, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3165, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -41347,14 +43251,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 2991, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3167, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 2989, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3165, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -41365,8 +43269,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 2991, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 2991, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3167, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3167, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_196CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); /* function exit code */ @@ -41400,7 +43304,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -41408,34 +43313,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196CORREL(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3011, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3013, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3189, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3014, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3192, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3017, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3195, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3019, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41513,32 +43438,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3022, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3200, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3200, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(5, 3022, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COS", 0) < (0)) __PYX_ERR(5, 3200, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(5, 3022, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, i); __PYX_ERR(5, 3200, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3200, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3022, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3200, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -41549,7 +43474,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3024, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3202, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_198COS(__pyx_self, __pyx_v_real); /* function exit code */ @@ -41581,35 +43506,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198COS(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("COS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3041, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3043, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3223, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3046, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3048, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41686,32 +43632,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3051, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3231, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3051, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3231, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(5, 3051, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "COSH", 0) < (0)) __PYX_ERR(5, 3231, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(5, 3051, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, i); __PYX_ERR(5, 3231, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3051, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3231, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3051, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3231, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -41722,7 +43668,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3053, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3233, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_200COSH(__pyx_self, __pyx_v_real); /* function exit code */ @@ -41754,35 +43700,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200COSH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("COSH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3070, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3072, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3254, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3075, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3077, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -41859,32 +43826,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3080, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3262, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3262, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CUMSUM", 0) < (0)) __PYX_ERR(5, 3080, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CUMSUM", 0) < (0)) __PYX_ERR(5, 3262, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, i); __PYX_ERR(5, 3080, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, i); __PYX_ERR(5, 3262, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3080, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3262, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3080, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CUMSUM", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3262, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -41895,7 +43862,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3264, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_202CUMSUM(__pyx_self, __pyx_v_real); /* function exit code */ @@ -41927,35 +43894,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202CUMSUM(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("CUMSUM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3101, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3285, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CUMSUM_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3104, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CUMSUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3106, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CUMSUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -42035,48 +44023,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_rocperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3109, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3293, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CVI", 0) < (0)) __PYX_ERR(5, 3109, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "CVI", 0) < (0)) __PYX_ERR(5, 3293, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, i); __PYX_ERR(5, 3109, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, i); __PYX_ERR(5, 3293, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3293, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3293, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3293, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -42084,19 +44072,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3111, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3295, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3111, __pyx_L3_error) + __pyx_v_rocperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rocperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3295, __pyx_L3_error) } else { __pyx_v_rocperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3109, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("CVI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3293, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -42107,8 +44095,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3111, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3295, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3295, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_204CVI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod, __pyx_v_rocperiod); /* function exit code */ @@ -42143,7 +44131,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -42151,34 +44140,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204CVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3131, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3132, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3133, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3317, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3134, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3320, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_CVI_Lookback(__pyx_v_timeperiod, __pyx_v_rocperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3137, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_CVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_rocperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3139, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_CVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -42257,48 +44266,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3142, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3328, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(5, 3142, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DEMA", 0) < (0)) __PYX_ERR(5, 3328, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(5, 3142, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, i); __PYX_ERR(5, 3328, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3328, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3144, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3330, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3142, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3328, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -42309,7 +44318,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3144, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3330, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_206DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -42342,35 +44351,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206DEMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("DEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3163, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3165, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3353, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3168, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3170, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -42448,39 +44478,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3173, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3361, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3361, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3361, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(5, 3173, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DIV", 0) < (0)) __PYX_ERR(5, 3361, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(5, 3173, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, i); __PYX_ERR(5, 3361, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3361, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3173, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3361, __pyx_L3_error) } __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3173, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 3361, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -42491,8 +44521,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3175, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3175, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 3363, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 3363, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_208DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ @@ -42525,7 +44555,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -42533,34 +44564,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3193, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3194, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3195, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3383, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3196, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3386, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3199, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3201, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -42640,40 +44691,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3204, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3394, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DONCHIAN", 0) < (0)) __PYX_ERR(5, 3204, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DONCHIAN", 0) < (0)) __PYX_ERR(5, 3394, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, i); __PYX_ERR(5, 3204, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, i); __PYX_ERR(5, 3394, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3394, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3394, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3204, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3394, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -42681,14 +44732,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3206, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3396, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3204, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DONCHIAN", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3394, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -42699,8 +44750,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3206, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3206, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3396, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3396, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_210DONCHIAN(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ @@ -42736,7 +44787,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + npy_int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -42744,73 +44799,111 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210DONCHIAN(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3229, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3230, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3231, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3421, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3232, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3423, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 3423, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(5, 3423, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + } + + __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3424, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_7; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_DONCHIAN_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; __pyx_v_retCode = TA_DONCHIAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DONCHIAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 3240, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 3432, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 3240, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 3432, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 3240, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 3432, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.DONCHIAN", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -42873,48 +44966,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3242, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3434, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DPO", 0) < (0)) __PYX_ERR(5, 3242, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DPO", 0) < (0)) __PYX_ERR(5, 3434, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, i); __PYX_ERR(5, 3242, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, i); __PYX_ERR(5, 3434, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3434, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3242, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3434, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3244, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3436, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3242, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DPO", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3434, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -42925,7 +45018,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3244, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3436, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_212DPO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -42958,35 +45051,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212DPO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("DPO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3263, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3265, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3459, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_DPO_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3268, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_DPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3270, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43066,46 +45180,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3273, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3467, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(5, 3273, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "DX", 0) < (0)) __PYX_ERR(5, 3467, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(5, 3273, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, i); __PYX_ERR(5, 3467, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3467, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3467, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3467, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3273, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3467, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -43114,14 +45228,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3275, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3469, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3273, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3467, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -43132,9 +45246,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3275, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3275, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3275, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3469, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3469, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3469, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_214DX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -43168,7 +45282,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -43177,39 +45292,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3294, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3295, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3296, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3297, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3491, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3298, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3494, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3301, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3303, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43290,40 +45425,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3306, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3502, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3502, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3502, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3502, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EFI", 0) < (0)) __PYX_ERR(5, 3306, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EFI", 0) < (0)) __PYX_ERR(5, 3502, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, i); __PYX_ERR(5, 3306, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, i); __PYX_ERR(5, 3502, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3502, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3502, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3306, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3502, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -43331,14 +45466,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = ((PyArrayObject *)values[0]); __pyx_v_volume = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3308, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3504, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3306, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EFI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3502, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -43349,8 +45484,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3308, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 3308, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3504, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 3504, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_216EFI(__pyx_self, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ @@ -43384,7 +45519,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -43392,34 +45528,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216EFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3327, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3328, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3329, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3525, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3330, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3528, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_EFI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3333, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_EFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3335, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43498,48 +45654,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3338, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3536, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3338, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3536, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3338, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3536, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(5, 3338, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EMA", 0) < (0)) __PYX_ERR(5, 3536, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(5, 3338, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, i); __PYX_ERR(5, 3536, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3338, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3536, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3338, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3536, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3340, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3538, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3338, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3536, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -43550,7 +45706,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3340, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3538, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_218EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -43583,35 +45739,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218EMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("EMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3359, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3361, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3561, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3364, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3366, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3566, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43689,48 +45866,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3369, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3569, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3569, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3569, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ER", 0) < (0)) __PYX_ERR(5, 3369, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ER", 0) < (0)) __PYX_ERR(5, 3569, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, i); __PYX_ERR(5, 3369, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, i); __PYX_ERR(5, 3569, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3569, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3369, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3569, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3371, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3571, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3369, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ER", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3569, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -43741,7 +45918,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3371, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3571, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_220ER(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -43774,35 +45951,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220ER(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ER", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3390, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3392, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3594, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ER_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3395, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3397, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -43882,46 +46080,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3400, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3602, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ERI", 0) < (0)) __PYX_ERR(5, 3400, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ERI", 0) < (0)) __PYX_ERR(5, 3602, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, i); __PYX_ERR(5, 3400, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, i); __PYX_ERR(5, 3602, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3602, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3602, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3602, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3602, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -43930,14 +46128,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3402, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3604, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3400, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ERI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 3602, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -43948,9 +46146,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3402, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3402, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3402, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3604, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3604, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3604, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_222ERI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -43985,7 +46183,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -43994,70 +46195,102 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222ERI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3423, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3424, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3425, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3426, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3628, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3427, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3630, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 3630, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3631, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ERI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outbullpower = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outbearpower = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_ERI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbullpower)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outbearpower)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ERI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3434, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outbullpower); __Pyx_GIVEREF((PyObject *)__pyx_v_outbullpower); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outbullpower)) != (0)) __PYX_ERR(5, 3434, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outbullpower)) != (0)) __PYX_ERR(5, 3638, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outbearpower); __Pyx_GIVEREF((PyObject *)__pyx_v_outbearpower); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outbearpower)) != (0)) __PYX_ERR(5, 3434, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outbearpower)) != (0)) __PYX_ERR(5, 3638, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.ERI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -44119,32 +46352,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3436, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3640, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3640, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(5, 3436, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "EXP", 0) < (0)) __PYX_ERR(5, 3640, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(5, 3436, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, i); __PYX_ERR(5, 3640, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3436, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3640, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3436, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3640, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -44155,7 +46388,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3438, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3642, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_224EXP(__pyx_self, __pyx_v_real); /* function exit code */ @@ -44187,35 +46420,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224EXP(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("EXP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3455, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3457, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3663, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3460, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3462, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -44292,32 +46546,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3465, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3671, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3671, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(5, 3465, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FLOOR", 0) < (0)) __PYX_ERR(5, 3671, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(5, 3465, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, i); __PYX_ERR(5, 3671, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3465, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3671, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3465, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3671, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -44328,7 +46582,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3467, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3673, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_226FLOOR(__pyx_self, __pyx_v_real); /* function exit code */ @@ -44360,35 +46614,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226FLOOR(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("FLOOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3484, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3486, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3694, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3489, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3491, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -44466,48 +46741,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3494, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3702, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3702, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3702, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FOSC", 0) < (0)) __PYX_ERR(5, 3494, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FOSC", 0) < (0)) __PYX_ERR(5, 3702, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, i); __PYX_ERR(5, 3494, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, i); __PYX_ERR(5, 3702, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3494, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3702, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3494, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3702, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3496, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3704, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3494, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FOSC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3702, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -44518,7 +46793,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3496, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3704, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_228FOSC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -44551,35 +46826,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228FOSC(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("FOSC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3517, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3727, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_FOSC_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3520, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_FOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3522, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -44659,48 +46955,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_leftbars,&__pyx_mstate_global->__pyx_n_u_rightbars,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3525, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3735, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRACTAL", 0) < (0)) __PYX_ERR(5, 3525, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "FRACTAL", 0) < (0)) __PYX_ERR(5, 3735, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, i); __PYX_ERR(5, 3525, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, i); __PYX_ERR(5, 3735, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3735, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3735, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3525, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3735, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -44708,19 +47004,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3527, __pyx_L3_error) + __pyx_v_leftbars = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_leftbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3737, __pyx_L3_error) } else { __pyx_v_leftbars = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3527, __pyx_L3_error) + __pyx_v_rightbars = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_rightbars == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3737, __pyx_L3_error) } else { __pyx_v_rightbars = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3525, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("FRACTAL", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 3735, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -44731,8 +47027,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3527, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3527, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3737, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_230FRACTAL(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_leftbars, __pyx_v_rightbars); /* function exit code */ @@ -44768,7 +47064,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -44776,65 +47075,97 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230FRACTAL(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3549, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3550, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3551, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3761, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3552, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3763, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 3763, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3764, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_FRACTAL_Lookback(__pyx_v_leftbars, __pyx_v_rightbars)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outswinghigh = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outswinglow = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_FRACTAL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_leftbars, __pyx_v_rightbars, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinghigh)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outswinglow)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_FRACTAL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3559, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outswinghigh); __Pyx_GIVEREF((PyObject *)__pyx_v_outswinghigh); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outswinghigh)) != (0)) __PYX_ERR(5, 3559, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outswinghigh)) != (0)) __PYX_ERR(5, 3771, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outswinglow); __Pyx_GIVEREF((PyObject *)__pyx_v_outswinglow); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outswinglow)) != (0)) __PYX_ERR(5, 3559, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outswinglow)) != (0)) __PYX_ERR(5, 3771, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.FRACTAL", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -44898,44 +47229,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3561, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3773, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3773, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3773, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3773, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3773, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HA", 0) < (0)) __PYX_ERR(5, 3561, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HA", 0) < (0)) __PYX_ERR(5, 3773, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, i); __PYX_ERR(5, 3561, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, i); __PYX_ERR(5, 3773, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3773, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3773, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3773, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3561, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3773, __pyx_L3_error) } __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_high = ((PyArrayObject *)values[1]); @@ -44944,7 +47275,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 3561, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HA", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 3773, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -44955,10 +47286,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3775, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_232HA(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -44994,7 +47325,12 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + npy_int __pyx_t_8; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -45004,91 +47340,135 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232HA(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3586, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3587, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3588, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3589, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3590, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3802, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3591, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3804, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 3804, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5) != (0)) __PYX_ERR(5, 3804, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6) != (0)) __PYX_ERR(5, 3804, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_7; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_7 = 0; + goto __pyx_L0; + + } + + __pyx_t_8 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_8 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3805, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_8; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HA_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhaopen = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3595, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhahigh = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3810, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhalow = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3597, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_7 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_v_outhaclose = ((PyArrayObject *)__pyx_t_7); + __pyx_t_7 = 0; __pyx_v_retCode = TA_HA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaopen)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhahigh)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhalow)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outhaclose)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_7 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 3814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF((PyObject *)__pyx_v_outhaopen); __Pyx_GIVEREF((PyObject *)__pyx_v_outhaopen); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outhaopen)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_outhaopen)) != (0)) __PYX_ERR(5, 3814, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outhahigh); __Pyx_GIVEREF((PyObject *)__pyx_v_outhahigh); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outhahigh)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_outhahigh)) != (0)) __PYX_ERR(5, 3814, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outhalow); __Pyx_GIVEREF((PyObject *)__pyx_v_outhalow); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outhalow)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_v_outhalow)) != (0)) __PYX_ERR(5, 3814, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outhaclose); __Pyx_GIVEREF((PyObject *)__pyx_v_outhaclose); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_outhaclose)) != (0)) __PYX_ERR(5, 3600, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_v_outhaclose)) != (0)) __PYX_ERR(5, 3814, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_7; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_7 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("talib._ta_lib.HA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -45154,48 +47534,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3602, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3816, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3816, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3816, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HMA", 0) < (0)) __PYX_ERR(5, 3602, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HMA", 0) < (0)) __PYX_ERR(5, 3816, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, i); __PYX_ERR(5, 3602, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, i); __PYX_ERR(5, 3816, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3816, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3602, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3816, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3604, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3818, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3602, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3816, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -45206,7 +47586,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3604, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3818, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_234HMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -45239,35 +47619,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234HMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3623, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3625, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3841, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3628, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_HMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3630, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3846, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -45344,32 +47745,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3633, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3849, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3849, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(5, 3633, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPERIOD", 0) < (0)) __PYX_ERR(5, 3849, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(5, 3633, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, i); __PYX_ERR(5, 3849, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3633, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3849, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3633, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3849, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -45380,7 +47781,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3635, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3851, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(__pyx_self, __pyx_v_real); /* function exit code */ @@ -45412,35 +47813,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236HT_DCPERIOD(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3652, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3654, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3872, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3657, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3659, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -45517,32 +47939,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3662, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3880, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(5, 3662, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_DCPHASE", 0) < (0)) __PYX_ERR(5, 3880, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(5, 3662, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, i); __PYX_ERR(5, 3880, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3662, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3880, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3662, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3880, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -45553,7 +47975,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3664, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3882, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(__pyx_self, __pyx_v_real); /* function exit code */ @@ -45585,35 +48007,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238HT_DCPHASE(CYTHON_UNUSED PyObject * PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_DCPHASE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3681, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3683, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3903, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3686, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3688, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -45690,32 +48133,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3691, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3911, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3911, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(5, 3691, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_PHASOR", 0) < (0)) __PYX_ERR(5, 3911, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(5, 3691, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, i); __PYX_ERR(5, 3911, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3691, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3911, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3691, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3911, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -45726,7 +48169,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3693, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3913, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_240HT_PHASOR(__pyx_self, __pyx_v_real); /* function exit code */ @@ -45759,66 +48202,101 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240HT_PHASOR(CYTHON_UNUSED PyObject *_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + npy_int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_PHASOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3712, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3714, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3935, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3935, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3936, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_5; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3717, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outquadrature)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3720, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF((PyObject *)__pyx_v_outinphase); __Pyx_GIVEREF((PyObject *)__pyx_v_outinphase); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(5, 3721, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outinphase)) != (0)) __PYX_ERR(5, 3943, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outquadrature); __Pyx_GIVEREF((PyObject *)__pyx_v_outquadrature); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(5, 3721, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outquadrature)) != (0)) __PYX_ERR(5, 3943, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("talib._ta_lib.HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -45878,32 +48356,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3723, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3945, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3945, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(5, 3723, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_SINE", 0) < (0)) __PYX_ERR(5, 3945, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(5, 3723, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, i); __PYX_ERR(5, 3945, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3723, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3945, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3723, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3945, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -45914,7 +48392,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3725, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3947, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_242HT_SINE(__pyx_self, __pyx_v_real); /* function exit code */ @@ -45947,66 +48425,101 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242HT_SINE(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + npy_int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_SINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3744, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3746, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 3969, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 3969, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3970, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_5; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outsine = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outleadsine)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3752, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF((PyObject *)__pyx_v_outsine); __Pyx_GIVEREF((PyObject *)__pyx_v_outsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(5, 3753, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outsine)) != (0)) __PYX_ERR(5, 3977, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outleadsine); __Pyx_GIVEREF((PyObject *)__pyx_v_outleadsine); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(5, 3753, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outleadsine)) != (0)) __PYX_ERR(5, 3977, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("talib._ta_lib.HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -46066,32 +48579,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3755, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3979, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3979, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(5, 3755, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDLINE", 0) < (0)) __PYX_ERR(5, 3979, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(5, 3755, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, i); __PYX_ERR(5, 3979, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3755, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3979, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3755, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3979, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -46102,7 +48615,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3757, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3981, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(__pyx_self, __pyx_v_real); /* function exit code */ @@ -46134,35 +48647,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244HT_TRENDLINE(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3774, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3776, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4002, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3779, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3781, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -46239,32 +48773,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3784, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4010, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4010, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(5, 3784, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "HT_TRENDMODE", 0) < (0)) __PYX_ERR(5, 4010, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(5, 3784, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, i); __PYX_ERR(5, 4010, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3784, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4010, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 3784, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4010, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -46275,7 +48809,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3786, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4012, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(__pyx_self, __pyx_v_real); /* function exit code */ @@ -46307,35 +48841,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246HT_TRENDMODE(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_TRENDMODE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3803, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3805, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4033, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3808, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3810, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -46414,40 +48969,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3813, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4041, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(5, 3813, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "IMI", 0) < (0)) __PYX_ERR(5, 4041, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(5, 3813, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, i); __PYX_ERR(5, 4041, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4041, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3813, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4041, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -46455,14 +49010,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_close = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3815, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4043, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 3813, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("IMI", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4041, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -46473,8 +49028,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 3815, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3815, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 4043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4043, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_248IMI(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -46508,7 +49063,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -46516,34 +49072,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248IMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3834, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3835, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3836, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4064, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3837, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4066, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4067, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_IMI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3840, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_IMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3842, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_IMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -46622,48 +49198,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3845, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4075, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4075, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4075, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(5, 3845, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KAMA", 0) < (0)) __PYX_ERR(5, 4075, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(5, 3845, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, i); __PYX_ERR(5, 4075, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4075, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3845, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4075, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3847, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4077, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3845, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4075, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -46674,7 +49250,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3847, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4077, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_250KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -46707,35 +49283,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250KAMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("KAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3866, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3868, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4100, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3871, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3873, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -46817,62 +49414,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_atrperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3876, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4108, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KC", 0) < (0)) __PYX_ERR(5, 3876, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KC", 0) < (0)) __PYX_ERR(5, 4108, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, i); __PYX_ERR(5, 3876, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, i); __PYX_ERR(5, 4108, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4108, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4108, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4108, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3876, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4108, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -46881,24 +49478,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3878, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4110, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3878, __pyx_L3_error) + __pyx_v_atrperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_atrperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4110, __pyx_L3_error) } else { __pyx_v_atrperiod = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 3878, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4110, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 3876, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 4108, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -46909,9 +49506,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3878, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3878, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3878, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4110, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_252KC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev); /* function exit code */ @@ -46949,7 +49546,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + npy_int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -46958,78 +49559,116 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252KC(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3903, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3904, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3906, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4138, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3907, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4140, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 4140, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(5, 4140, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + } + + __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4141, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_7; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_KC_Lookback(__pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3911, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3912, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; __pyx_v_retCode = TA_KC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_atrperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreallowerband)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3914, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_outrealupperband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealupperband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 3915, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outrealupperband)) != (0)) __PYX_ERR(5, 4149, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outrealmiddleband); __Pyx_GIVEREF((PyObject *)__pyx_v_outrealmiddleband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 3915, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outrealmiddleband)) != (0)) __PYX_ERR(5, 4149, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outreallowerband); __Pyx_GIVEREF((PyObject *)__pyx_v_outreallowerband); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 3915, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outreallowerband)) != (0)) __PYX_ERR(5, 4149, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.KC", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -47099,78 +49738,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3917, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4151, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KDJ", 0) < (0)) __PYX_ERR(5, 3917, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "KDJ", 0) < (0)) __PYX_ERR(5, 4151, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, i); __PYX_ERR(5, 3917, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, i); __PYX_ERR(5, 4151, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4151, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4151, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4151, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4151, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -47179,34 +49818,34 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4153, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4153, __pyx_L3_error) } else { __pyx_v_slowk_period = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4153, __pyx_L3_error) } else { __pyx_v_slowk_matype = ((int)((int)13)); } if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4153, __pyx_L3_error) } else { __pyx_v_slowd_period = ((int)((int)-2147483648)); } if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3919, __pyx_L3_error) + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4153, __pyx_L3_error) } else { __pyx_v_slowd_matype = ((int)((int)13)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 3917, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("KDJ", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 4151, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -47217,9 +49856,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 3919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 3919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 3919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4153, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4153, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4153, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_254KDJ(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ @@ -47259,7 +49898,11 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + npy_int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -47268,78 +49911,116 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254KDJ(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3946, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3947, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3948, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 3949, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4183, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3950, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4185, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 4185, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_5); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5) != (0)) __PYX_ERR(5, 4185, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; + + } + + __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4186, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_7; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_KDJ_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3953, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outk = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outd = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outj = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_6 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outj = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; __pyx_v_retCode = TA_KDJ(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outj)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_KDJ, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3958, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 4194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF((PyObject *)__pyx_v_outk); __Pyx_GIVEREF((PyObject *)__pyx_v_outk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outk)) != (0)) __PYX_ERR(5, 3958, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_outk)) != (0)) __PYX_ERR(5, 4194, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outd); __Pyx_GIVEREF((PyObject *)__pyx_v_outd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outd)) != (0)) __PYX_ERR(5, 3958, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_outd)) != (0)) __PYX_ERR(5, 4194, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outj); __Pyx_GIVEREF((PyObject *)__pyx_v_outj); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outj)) != (0)) __PYX_ERR(5, 3958, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_outj)) != (0)) __PYX_ERR(5, 4194, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_6 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("talib._ta_lib.KDJ", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -47403,48 +50084,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3960, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4196, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3960, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3960, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(5, 3960, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG", 0) < (0)) __PYX_ERR(5, 4196, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(5, 3960, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, i); __PYX_ERR(5, 4196, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3960, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4196, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3960, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4196, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3962, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4198, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3960, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4196, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -47455,7 +50136,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3962, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4198, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_256LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -47488,35 +50169,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256LINEARREG(CYTHON_UNUSED PyObject *_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3981, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3983, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4221, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3986, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 3988, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -47594,48 +50296,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 3991, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4229, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4229, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4229, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(5, 3991, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_ANGLE", 0) < (0)) __PYX_ERR(5, 4229, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(5, 3991, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, i); __PYX_ERR(5, 4229, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4229, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 3991, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4229, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 3993, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4231, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 3991, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4229, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -47646,7 +50348,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 3993, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4231, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -47679,35 +50381,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258LINEARREG_ANGLE(CYTHON_UNUSED PyObj PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4012, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4014, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4254, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4017, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4019, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -47785,48 +50508,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4022, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4262, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4262, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4262, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(5, 4022, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_INTERCEPT", 0) < (0)) __PYX_ERR(5, 4262, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(5, 4022, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, i); __PYX_ERR(5, 4262, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4262, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4022, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4262, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4024, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4264, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4022, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4262, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -47837,7 +50560,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4024, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4264, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -47870,35 +50593,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260LINEARREG_INTERCEPT(CYTHON_UNUSED P PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4043, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4045, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4287, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4048, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4050, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -47976,48 +50720,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4053, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4295, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(5, 4053, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LINEARREG_SLOPE", 0) < (0)) __PYX_ERR(5, 4295, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(5, 4053, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, i); __PYX_ERR(5, 4295, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4295, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4053, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4295, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4055, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4297, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4053, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4295, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -48028,7 +50772,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4055, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4297, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -48061,35 +50805,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262LINEARREG_SLOPE(CYTHON_UNUSED PyObj PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4074, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4076, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4320, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4079, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4081, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -48166,32 +50931,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4084, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4328, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4328, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(5, 4084, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LN", 0) < (0)) __PYX_ERR(5, 4328, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(5, 4084, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, i); __PYX_ERR(5, 4328, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4084, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4328, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4084, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4328, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -48202,7 +50967,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4086, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4330, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_264LN(__pyx_self, __pyx_v_real); /* function exit code */ @@ -48234,35 +50999,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264LN(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4103, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4105, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4351, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4108, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4110, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -48339,32 +51125,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4113, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4359, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4359, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(5, 4113, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "LOG10", 0) < (0)) __PYX_ERR(5, 4359, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(5, 4113, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, i); __PYX_ERR(5, 4359, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4113, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4359, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4113, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 4359, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -48375,7 +51161,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4115, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4361, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_266LOG10(__pyx_self, __pyx_v_real); /* function exit code */ @@ -48407,35 +51193,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266LOG10(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LOG10", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4132, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4134, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4382, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4137, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4139, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -48514,61 +51321,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4142, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4390, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(5, 4142, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MA", 0) < (0)) __PYX_ERR(5, 4390, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(5, 4142, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, i); __PYX_ERR(5, 4390, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4390, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4142, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4390, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4144, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4392, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4144, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4392, __pyx_L3_error) } else { __pyx_v_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4142, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4390, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -48579,7 +51386,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4144, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4392, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_268MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); /* function exit code */ @@ -48613,35 +51420,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268MA(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4164, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4166, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4416, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4169, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4171, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -48721,74 +51549,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4174, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4424, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(5, 4174, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACD", 0) < (0)) __PYX_ERR(5, 4424, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(5, 4174, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, i); __PYX_ERR(5, 4424, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4424, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4174, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4424, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4176, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4426, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4176, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4426, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4176, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4426, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 4174, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 4424, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -48799,7 +51627,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4176, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4426, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_270MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ @@ -48836,74 +51664,116 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270MACD(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MACD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4201, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4451, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4203, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4454, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4454, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4454, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 4454, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4455, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4206, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outmacd); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4463, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4463, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4211, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4463, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -48970,113 +51840,113 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_fastmatype,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_slowmatype,&__pyx_mstate_global->__pyx_n_u_signalperiod,&__pyx_mstate_global->__pyx_n_u_signalmatype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4213, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4465, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(5, 4213, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDEXT", 0) < (0)) __PYX_ERR(5, 4465, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(5, 4213, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, i); __PYX_ERR(5, 4465, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4465, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4465, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4467, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + __pyx_v_fastmatype = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4467, __pyx_L3_error) } else { __pyx_v_fastmatype = ((int)((int)0)); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4467, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + __pyx_v_slowmatype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4467, __pyx_L3_error) } else { __pyx_v_slowmatype = ((int)((int)0)); } if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4467, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)((int)-2147483648)); } if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4215, __pyx_L3_error) + __pyx_v_signalmatype = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4467, __pyx_L3_error) } else { __pyx_v_signalmatype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 4213, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(5, 4465, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -49087,7 +51957,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4215, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4467, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_272MACDEXT(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype); /* function exit code */ @@ -49127,74 +51997,116 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272MACDEXT(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MACDEXT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4243, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4245, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4498, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4498, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 4498, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4499, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MACDEXT_Lookback(__pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4250, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4253, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outmacd); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4253, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4507, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4253, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4507, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4253, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4507, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -49256,48 +52168,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4255, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4509, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(5, 4255, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MACDFIX", 0) < (0)) __PYX_ERR(5, 4509, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(5, 4255, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, i); __PYX_ERR(5, 4509, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4509, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4255, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4509, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4257, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4511, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4255, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4509, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -49308,7 +52220,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4257, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4511, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_274MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); /* function exit code */ @@ -49343,74 +52255,116 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274MACDFIX(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MACDFIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4280, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4282, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4537, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4537, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4) != (0)) __PYX_ERR(5, 4537, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4538, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmacdhist)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outmacd); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4290, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outmacd)) != (0)) __PYX_ERR(5, 4546, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmacdsignal); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdsignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4290, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outmacdsignal)) != (0)) __PYX_ERR(5, 4546, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmacdhist); __Pyx_GIVEREF((PyObject *)__pyx_v_outmacdhist); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4290, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_outmacdhist)) != (0)) __PYX_ERR(5, 4546, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -49473,61 +52427,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastlimit,&__pyx_mstate_global->__pyx_n_u_slowlimit,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4292, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4548, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(5, 4292, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAMA", 0) < (0)) __PYX_ERR(5, 4548, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(5, 4292, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, i); __PYX_ERR(5, 4548, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4548, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4292, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4548, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4294, __pyx_L3_error) + __pyx_v_fastlimit = __Pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fastlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4550, __pyx_L3_error) } else { __pyx_v_fastlimit = ((double)((double)-4e37)); } if (values[2]) { - __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4294, __pyx_L3_error) + __pyx_v_slowlimit = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_slowlimit == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4550, __pyx_L3_error) } else { __pyx_v_slowlimit = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4292, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4548, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -49538,7 +52492,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4294, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4550, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_276MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); /* function exit code */ @@ -49573,66 +52527,101 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276MAMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + npy_int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4316, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4318, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4575, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4576, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_5; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4321, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmama = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4322, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outfama = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfama)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4324, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF((PyObject *)__pyx_v_outmama); __Pyx_GIVEREF((PyObject *)__pyx_v_outmama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(5, 4325, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outmama)) != (0)) __PYX_ERR(5, 4583, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outfama); __Pyx_GIVEREF((PyObject *)__pyx_v_outfama); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(5, 4325, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outfama)) != (0)) __PYX_ERR(5, 4583, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("talib._ta_lib.MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -49694,38 +52683,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4327, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4585, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4585, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4585, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4585, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MARKETFI", 0) < (0)) __PYX_ERR(5, 4327, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MARKETFI", 0) < (0)) __PYX_ERR(5, 4585, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, i); __PYX_ERR(5, 4327, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, i); __PYX_ERR(5, 4585, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4585, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4585, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4327, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4585, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -49733,7 +52722,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 4327, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MARKETFI", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 4585, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -49744,9 +52733,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4329, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4329, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4329, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4587, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4587, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4587, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_278MARKETFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_volume); /* function exit code */ @@ -49779,7 +52768,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -49788,39 +52778,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278MARKETFI(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4346, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4347, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4348, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4349, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4607, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4350, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4610, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MARKETFI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4353, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MARKETFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4355, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MARKETFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -49902,48 +52912,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4358, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4618, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MASSI", 0) < (0)) __PYX_ERR(5, 4358, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MASSI", 0) < (0)) __PYX_ERR(5, 4618, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, i); __PYX_ERR(5, 4358, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, i); __PYX_ERR(5, 4618, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4618, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4618, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4358, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4618, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -49951,19 +52961,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4360, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4620, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4360, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4620, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 4358, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MASSI", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 4618, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -49974,8 +52984,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4360, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4360, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4620, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4620, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_280MASSI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_fastperiod, __pyx_v_slowperiod); /* function exit code */ @@ -50010,7 +53020,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -50018,34 +53029,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280MASSI(CYTHON_UNUSED PyObject *__pyx __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4380, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4381, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4382, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4642, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4383, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4645, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MASSI_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4386, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MASSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4388, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MASSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -50127,56 +53158,56 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_periods,&__pyx_mstate_global->__pyx_n_u_minperiod,&__pyx_mstate_global->__pyx_n_u_maxperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4391, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4653, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(5, 4391, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAVP", 0) < (0)) __PYX_ERR(5, 4653, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(5, 4391, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, i); __PYX_ERR(5, 4653, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4653, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4653, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4391, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4653, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -50184,24 +53215,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real = ((PyArrayObject *)values[0]); __pyx_v_periods = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4393, __pyx_L3_error) + __pyx_v_minperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4655, __pyx_L3_error) } else { __pyx_v_minperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4393, __pyx_L3_error) + __pyx_v_maxperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4655, __pyx_L3_error) } else { __pyx_v_maxperiod = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4393, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4655, __pyx_L3_error) } else { __pyx_v_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 4391, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(5, 4653, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -50212,8 +53243,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4393, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(5, 4393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4655, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(5, 4655, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_282MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); /* function exit code */ @@ -50249,7 +53280,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -50257,34 +53289,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_periods); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4415, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4416, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4417, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4679, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4418, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4682, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4421, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_periods)) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4423, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -50363,60 +53415,272 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4426, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4690, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(5, 4690, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(5, 4690, __pyx_L3_error) } + } + } else { + switch (__pyx_nargs) { + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4690, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4690, __pyx_L3_error) + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4692, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4690, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4692, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_284MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + goto __pyx_L7_cleaned_up; + __pyx_L0:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + int __pyx_v_begidx; + int __pyx_v_endidx; + int __pyx_v_lookback; + TA_RetCode __pyx_v_retCode; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outreal = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + npy_int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MAX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); + + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4715, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + + + + + + + + __Pyx_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286MAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, +#if CYTHON_VECTORCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_VECTORCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[2] = {0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4723, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAX", 0) < (0)) __PYX_ERR(5, 4426, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(5, 4723, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, i); __PYX_ERR(5, 4426, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4723, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4723, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4426, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4723, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4428, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4725, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4426, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4723, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { Py_XDECREF(values[__pyx_temp]); } - __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4428, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_284MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4725, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_286MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ goto __pyx_L0; @@ -50436,7 +53700,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { +static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { npy_intp __pyx_v_length; int __pyx_v_begidx; int __pyx_v_endidx; @@ -50444,246 +53708,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284MAX(CYTHON_UNUSED PyObject *__pyx_s TA_RetCode __pyx_v_retCode; int __pyx_v_outbegidx; int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outreal = 0; + PyArrayObject *__pyx_v_outinteger = 0; + int *__pyx_v_outinteger_data; + int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; + npy_intp __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAX", 0); + __Pyx_RefNannySetupContext("MAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4447, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4449, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; - - __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - - __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + __pyx_t_2 = (__pyx_v_length == 0); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4452, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; - - __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); + if (__pyx_t_2) { - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4454, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - { - PyObject *__pyx_temp; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); { - __pyx_temp = __pyx_r; - __Pyx_INCREF((PyObject *)__pyx_v_outreal); - __pyx_r = ((PyObject *)__pyx_v_outreal); - } - __Pyx_XDECREF(__pyx_temp); - } - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - - - - - - - - __Pyx_XDECREF((PyObject *)__pyx_v_outreal); - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_286MAXINDEX, "MAXINDEX(ndarray real, int timeperiod=-0x80000000)\n\nMAXINDEX(real[, timeperiod=?])\n\nIndex of highest value over a specified period (Math Operators)\n\nInputs:\n real: (any ndarray)\nParameters:\n timeperiod: 30\nOutputs:\n integer"); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_287MAXINDEX = {"MAXINDEX", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_287MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_286MAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_287MAXINDEX(PyObject *__pyx_self, -#if CYTHON_VECTORCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_VECTORCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("MAXINDEX (wrapper)", 0); - #if !CYTHON_VECTORCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; - const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4457, __pyx_L3_error) - if (__pyx_kwds_len > 0) { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4457, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4457, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MAXINDEX", 0) < (0)) __PYX_ERR(5, 4457, __pyx_L3_error) - for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4457, __pyx_L3_error) } - } - } else { - switch (__pyx_nargs) { - case 2: - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4457, __pyx_L3_error) - CYTHON_FALLTHROUGH; - case 1: - values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4457, __pyx_L3_error) - break; - default: goto __pyx_L5_argtuple_error; + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; } + __Pyx_XDECREF(__pyx_temp); } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4459, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4457, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - __Pyx_AddTraceback("talib._ta_lib.MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4459, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_286MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + __pyx_t_1 = 0; + goto __pyx_L0; - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); - } - goto __pyx_L7_cleaned_up; - __pyx_L0:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - Py_XDECREF(values[__pyx_temp]); } - __pyx_L7_cleaned_up:; - - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_286MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - int __pyx_v_begidx; - int __pyx_v_endidx; - int __pyx_v_lookback; - TA_RetCode __pyx_v_retCode; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - PyArrayObject *__pyx_v_outinteger = 0; - int *__pyx_v_outinteger_data; - int __pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("MAXINDEX", 0); - __Pyx_INCREF((PyObject *)__pyx_v_real); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4480, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4748, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4483, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4485, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); - __pyx_t_3 = __pyx_v_length; + __pyx_t_4 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); + __pyx_t_5 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_5]) = ((__pyx_v_outinteger_data[__pyx_t_5]) + __pyx_v_begidx); } @@ -50763,39 +53857,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4491, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4759, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4759, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(5, 4491, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MEDPRICE", 0) < (0)) __PYX_ERR(5, 4759, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(5, 4491, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, i); __PYX_ERR(5, 4759, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4759, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4491, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4759, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4491, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4759, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -50806,8 +53900,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4493, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4493, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4761, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4761, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_288MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); /* function exit code */ @@ -50840,7 +53934,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -50848,34 +53943,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4510, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4511, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4512, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4780, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4513, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4783, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4516, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4518, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4788, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -50957,52 +54072,52 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4521, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4791, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(5, 4521, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MFI", 0) < (0)) __PYX_ERR(5, 4791, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(5, 4521, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, i); __PYX_ERR(5, 4791, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 4791, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4791, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4791, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4791, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4521, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4791, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -51012,14 +54127,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_close = ((PyArrayObject *)values[2]); __pyx_v_volume = ((PyArrayObject *)values[3]); if (values[4]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4523, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4793, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 4521, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(5, 4791, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -51030,10 +54145,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4793, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4793, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4793, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4793, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_290MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ @@ -51067,7 +54182,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -51077,44 +54193,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4542, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4543, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4544, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4545, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4815, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4546, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4816, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4547, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4819, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4550, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4552, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4824, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51195,48 +54331,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4555, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4827, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(5, 4555, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPOINT", 0) < (0)) __PYX_ERR(5, 4827, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(5, 4555, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, i); __PYX_ERR(5, 4827, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4827, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4555, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4827, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4557, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4829, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4555, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4827, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -51247,7 +54383,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4557, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4829, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_292MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -51280,35 +54416,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292MIDPOINT(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MIDPOINT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4576, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4848, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4578, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4852, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4581, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4583, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4857, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51387,40 +54544,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4586, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4860, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(5, 4586, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIDPRICE", 0) < (0)) __PYX_ERR(5, 4860, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(5, 4586, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, i); __PYX_ERR(5, 4860, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4860, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4860, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4586, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4860, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -51428,14 +54585,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4588, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4862, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4586, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4860, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -51446,8 +54603,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4588, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4588, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4862, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4862, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_294MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ @@ -51481,7 +54638,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -51489,34 +54647,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4607, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4881, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4608, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4609, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4883, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4610, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4886, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4613, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4615, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51595,48 +54773,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4618, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4894, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(5, 4618, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MIN", 0) < (0)) __PYX_ERR(5, 4894, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(5, 4618, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, i); __PYX_ERR(5, 4894, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4894, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4618, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4894, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4620, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4896, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4618, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4894, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -51647,7 +54825,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4620, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4896, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_296MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -51680,35 +54858,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296MIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4639, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4641, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4919, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4644, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4646, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51786,48 +54985,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4649, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4927, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4927, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4927, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(5, 4649, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MININDEX", 0) < (0)) __PYX_ERR(5, 4927, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(5, 4649, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, i); __PYX_ERR(5, 4927, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4927, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4649, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4927, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4651, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4929, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4649, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4927, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -51838,7 +55037,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4651, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4929, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_298MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -51873,49 +55072,70 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298MININDEX(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; + int __pyx_t_2; + npy_int __pyx_t_3; + npy_intp __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MININDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4670, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4672, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4952, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4675, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4677, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outinteger)); - __pyx_t_3 = __pyx_v_length; + __pyx_t_4 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); + __pyx_t_5 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_5]) = ((__pyx_v_outinteger_data[__pyx_t_5]) + __pyx_v_begidx); } @@ -51995,48 +55215,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4683, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4963, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(5, 4683, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAX", 0) < (0)) __PYX_ERR(5, 4963, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(5, 4683, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, i); __PYX_ERR(5, 4963, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4963, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4683, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4963, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4685, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4965, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4683, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4963, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -52047,7 +55267,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4685, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4965, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_300MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -52081,66 +55301,101 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300MINMAX(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + npy_int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MINMAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4706, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4708, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 4989, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 4989, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4990, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_5; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmin = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmax = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmax)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF((PyObject *)__pyx_v_outmin); __Pyx_GIVEREF((PyObject *)__pyx_v_outmin); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(5, 4715, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outmin)) != (0)) __PYX_ERR(5, 4997, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmax); __Pyx_GIVEREF((PyObject *)__pyx_v_outmax); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(5, 4715, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outmax)) != (0)) __PYX_ERR(5, 4997, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("talib._ta_lib.MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -52201,48 +55456,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4717, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4999, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(5, 4717, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINMAXINDEX", 0) < (0)) __PYX_ERR(5, 4999, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4717, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, i); __PYX_ERR(5, 4999, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4999, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4717, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4999, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4719, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5001, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4717, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4999, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -52253,7 +55508,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4719, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5001, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -52290,92 +55545,127 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302MINMAXINDEX(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + npy_int __pyx_t_5; + npy_intp __pyx_t_6; + int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MINMAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4740, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4742, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 5025, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 5025, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5026, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_5; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4745, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4746, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminidx)); - __pyx_t_3 = __pyx_v_length; + __pyx_t_6 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outminidx_data[__pyx_t_4]) = ((__pyx_v_outminidx_data[__pyx_t_4]) + __pyx_v_begidx); + __pyx_t_7 = __pyx_v_i; + (__pyx_v_outminidx_data[__pyx_t_7]) = ((__pyx_v_outminidx_data[__pyx_t_7]) + __pyx_v_begidx); } __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outmaxidx)); - __pyx_t_3 = __pyx_v_length; + __pyx_t_6 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { - __pyx_t_4 = __pyx_v_i; - (__pyx_v_outmaxidx_data[__pyx_t_4]) = ((__pyx_v_outmaxidx_data[__pyx_t_4]) + __pyx_v_begidx); + __pyx_t_7 = __pyx_v_i; + (__pyx_v_outmaxidx_data[__pyx_t_7]) = ((__pyx_v_outmaxidx_data[__pyx_t_7]) + __pyx_v_begidx); } - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF((PyObject *)__pyx_v_outminidx); __Pyx_GIVEREF((PyObject *)__pyx_v_outminidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(5, 4755, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outminidx)) != (0)) __PYX_ERR(5, 5039, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outmaxidx); __Pyx_GIVEREF((PyObject *)__pyx_v_outmaxidx); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(5, 4755, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outmaxidx)) != (0)) __PYX_ERR(5, 5039, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("talib._ta_lib.MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -52441,46 +55731,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4757, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5041, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(5, 4757, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DI", 0) < (0)) __PYX_ERR(5, 5041, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(5, 4757, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, i); __PYX_ERR(5, 5041, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5041, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5041, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5041, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4757, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5041, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -52489,14 +55779,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4759, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5043, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4757, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5041, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -52507,9 +55797,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4759, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4759, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_304MINUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -52543,7 +55833,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -52552,39 +55843,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4778, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4779, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4780, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4781, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5065, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4782, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5068, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4785, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4787, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -52665,40 +55976,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4790, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5076, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(5, 4790, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MINUS_DM", 0) < (0)) __PYX_ERR(5, 5076, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(5, 4790, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, i); __PYX_ERR(5, 5076, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5076, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5076, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4790, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5076, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -52706,14 +56017,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4792, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5078, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 4790, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5076, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -52724,8 +56035,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4792, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4792, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5078, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5078, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_306MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ @@ -52759,7 +56070,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -52767,34 +56079,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4811, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4812, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4813, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5099, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4814, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5102, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4817, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4819, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -52873,48 +56205,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4822, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5110, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4822, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5110, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4822, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5110, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(5, 4822, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MOM", 0) < (0)) __PYX_ERR(5, 5110, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(5, 4822, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, i); __PYX_ERR(5, 5110, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4822, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5110, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4822, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5110, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4824, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5112, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 4822, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5110, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -52925,7 +56257,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4824, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5112, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_308MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -52958,35 +56290,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308MOM(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MOM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4843, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4845, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5135, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4848, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4850, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -53064,39 +56417,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4853, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5143, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5143, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5143, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(5, 4853, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "MULT", 0) < (0)) __PYX_ERR(5, 5143, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(5, 4853, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, i); __PYX_ERR(5, 5143, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5143, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4853, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5143, __pyx_L3_error) } __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4853, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5143, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -53107,8 +56460,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 4855, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 4855, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 5145, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 5145, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_310MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ @@ -53141,7 +56494,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -53149,34 +56503,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4873, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4874, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4875, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5165, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4876, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5168, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4879, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4881, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -53257,46 +56631,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4884, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5176, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(5, 4884, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NATR", 0) < (0)) __PYX_ERR(5, 5176, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(5, 4884, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, i); __PYX_ERR(5, 5176, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5176, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5176, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5176, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4884, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5176, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -53305,14 +56679,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4886, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5178, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 4884, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5176, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -53323,9 +56697,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 4886, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 4886, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5178, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_312NATR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -53359,7 +56733,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -53368,39 +56743,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4905, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4906, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4907, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4908, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5200, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4909, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5203, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4912, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4914, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -53480,39 +56875,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4917, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5211, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5211, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NVI", 0) < (0)) __PYX_ERR(5, 4917, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "NVI", 0) < (0)) __PYX_ERR(5, 5211, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, i); __PYX_ERR(5, 4917, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, i); __PYX_ERR(5, 5211, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5211, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4917, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5211, __pyx_L3_error) } __pyx_v_close = ((PyArrayObject *)values[0]); __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4917, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("NVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5211, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -53523,8 +56918,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 4919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5213, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5213, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_314NVI(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ @@ -53557,7 +56952,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -53565,34 +56961,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314NVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4936, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4937, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4938, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5232, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4939, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5235, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_NVI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4942, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_NVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4944, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_NVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -53671,39 +57087,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4947, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5243, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(5, 4947, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "OBV", 0) < (0)) __PYX_ERR(5, 5243, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(5, 4947, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, i); __PYX_ERR(5, 5243, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5243, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4947, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5243, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 4947, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5243, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -53714,8 +57130,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4949, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 4949, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5245, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5245, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_316OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); /* function exit code */ @@ -53748,7 +57164,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -53756,34 +57173,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4967, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4968, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 4969, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5265, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4970, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5268, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4973, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 4975, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -53863,61 +57300,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_percentile,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 4978, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTILE", 0) < (0)) __PYX_ERR(5, 4978, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTILE", 0) < (0)) __PYX_ERR(5, 5276, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, i); __PYX_ERR(5, 4978, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, i); __PYX_ERR(5, 5276, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 4978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 4978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 4978, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5276, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 4980, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5278, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 4980, __pyx_L3_error) + __pyx_v_percentile = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_percentile == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5278, __pyx_L3_error) } else { __pyx_v_percentile = ((double)((double)50.0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 4978, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PERCENTILE", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -53928,7 +57365,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 4980, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5278, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_318PERCENTILE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_percentile); /* function exit code */ @@ -53962,35 +57399,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318PERCENTILE(CYTHON_UNUSED PyObject * PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PERCENTILE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5000, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5002, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5302, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTILE_Lookback(__pyx_v_timeperiod, __pyx_v_percentile)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5005, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PERCENTILE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_percentile, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5007, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTILE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54068,48 +57526,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5010, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5310, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5010, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5310, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5010, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5310, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTRANK", 0) < (0)) __PYX_ERR(5, 5010, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PERCENTRANK", 0) < (0)) __PYX_ERR(5, 5310, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, i); __PYX_ERR(5, 5010, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, i); __PYX_ERR(5, 5310, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5010, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5310, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5010, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5310, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5012, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5312, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5010, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PERCENTRANK", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5310, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -54120,7 +57578,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5012, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5312, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_320PERCENTRANK(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -54153,35 +57611,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320PERCENTRANK(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PERCENTRANK", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5031, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5033, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5335, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PERCENTRANK_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5036, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PERCENTRANK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5038, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PERCENTRANK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54261,46 +57740,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5041, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5343, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(5, 5041, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DI", 0) < (0)) __PYX_ERR(5, 5343, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(5, 5041, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, i); __PYX_ERR(5, 5343, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5343, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5343, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5343, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5041, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5343, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -54309,14 +57788,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5043, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5345, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5041, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 5343, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -54327,9 +57806,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5043, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5345, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5345, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5345, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_322PLUS_DI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -54363,7 +57842,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -54372,39 +57852,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5062, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5063, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5064, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5065, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5367, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5066, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5370, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5069, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5071, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54485,40 +57985,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5074, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5378, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(5, 5074, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PLUS_DM", 0) < (0)) __PYX_ERR(5, 5378, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(5, 5074, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, i); __PYX_ERR(5, 5378, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5378, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5378, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5074, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5378, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -54526,14 +58026,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5076, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5380, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5074, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5378, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -54544,8 +58044,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5076, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5076, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5380, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5380, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_324PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); /* function exit code */ @@ -54579,7 +58079,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -54587,34 +58088,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5095, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5096, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5097, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5401, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5098, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5404, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5101, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5103, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54695,74 +58216,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5106, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5412, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(5, 5106, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PPO", 0) < (0)) __PYX_ERR(5, 5412, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(5, 5106, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, i); __PYX_ERR(5, 5412, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5412, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5106, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5412, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5108, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5414, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5108, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5414, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5108, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5414, __pyx_L3_error) } else { __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5106, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5412, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -54773,7 +58294,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5108, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5414, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_326PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ @@ -54808,35 +58329,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326PPO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PPO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5129, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5131, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5439, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5134, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5136, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -54914,39 +58456,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5139, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5447, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5139, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5139, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5447, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVI", 0) < (0)) __PYX_ERR(5, 5139, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVI", 0) < (0)) __PYX_ERR(5, 5447, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, i); __PYX_ERR(5, 5139, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, i); __PYX_ERR(5, 5447, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5139, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5447, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5139, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5447, __pyx_L3_error) } __pyx_v_close = ((PyArrayObject *)values[0]); __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5139, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVI", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5447, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -54957,8 +58499,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5141, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5141, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5449, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5449, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_328PVI(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ @@ -54991,7 +58533,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -54999,34 +58542,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328PVI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5158, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5159, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5160, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5468, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5161, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5471, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PVI_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5164, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5166, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -55107,74 +58670,74 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5169, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5479, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVO", 0) < (0)) __PYX_ERR(5, 5169, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVO", 0) < (0)) __PYX_ERR(5, 5479, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, i); __PYX_ERR(5, 5169, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, i); __PYX_ERR(5, 5479, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5479, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5169, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5479, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_volume = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5171, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5481, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5171, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5481, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5171, __pyx_L3_error) + __pyx_v_matype = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5481, __pyx_L3_error) } else { __pyx_v_matype = ((int)((int)1)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5169, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVO", 0, 1, 4, __pyx_nargs); __PYX_ERR(5, 5479, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -55185,7 +58748,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5171, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5481, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_330PVO(__pyx_self, __pyx_v_volume, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); /* function exit code */ @@ -55220,35 +58783,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330PVO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PVO", 0); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5194, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5506, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PVO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5197, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PVO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5199, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -55326,39 +58910,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5202, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5514, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5514, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVT", 0) < (0)) __PYX_ERR(5, 5202, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "PVT", 0) < (0)) __PYX_ERR(5, 5514, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, i); __PYX_ERR(5, 5202, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, i); __PYX_ERR(5, 5514, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5514, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5514, __pyx_L3_error) } __pyx_v_close = ((PyArrayObject *)values[0]); __pyx_v_volume = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5202, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("PVT", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5514, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -55369,8 +58953,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5204, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5204, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5516, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5516, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_332PVT(__pyx_self, __pyx_v_close, __pyx_v_volume); /* function exit code */ @@ -55403,7 +58987,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -55411,34 +58996,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332PVT(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5221, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5222, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5223, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5535, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5224, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5538, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_PVT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5227, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_PVT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5229, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_PVT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -55518,40 +59123,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5232, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5546, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "QSTICK", 0) < (0)) __PYX_ERR(5, 5232, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "QSTICK", 0) < (0)) __PYX_ERR(5, 5546, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, i); __PYX_ERR(5, 5232, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, i); __PYX_ERR(5, 5546, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5546, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5546, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5232, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5546, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -55559,14 +59164,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_open = ((PyArrayObject *)values[0]); __pyx_v_close = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5234, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5232, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("QSTICK", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 5546, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -55577,8 +59182,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 5234, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5234, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(5, 5548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5548, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_334QSTICK(__pyx_self, __pyx_v_open, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -55612,7 +59217,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -55620,34 +59226,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334QSTICK(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_open); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5253, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5254, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5568, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5255, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_open, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5569, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5256, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5572, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_QSTICK_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5259, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_QSTICK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5261, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_QSTICK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -55726,48 +59352,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5264, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5580, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5580, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5580, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RMA", 0) < (0)) __PYX_ERR(5, 5264, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RMA", 0) < (0)) __PYX_ERR(5, 5580, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, i); __PYX_ERR(5, 5264, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, i); __PYX_ERR(5, 5580, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5580, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5264, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5580, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5266, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5582, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5264, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5580, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -55778,7 +59404,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5266, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5582, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_336RMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -55811,35 +59437,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336RMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("RMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5285, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5601, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5287, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5605, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_RMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5290, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_RMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5292, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -55917,48 +59564,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5295, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5613, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5295, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5295, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(5, 5295, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROC", 0) < (0)) __PYX_ERR(5, 5613, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(5, 5295, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, i); __PYX_ERR(5, 5613, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5295, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5613, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5295, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5613, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5297, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5615, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5295, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5613, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -55969,7 +59616,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5297, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5615, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_338ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -56002,35 +59649,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338ROC(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5316, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5318, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5638, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5321, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5323, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56108,48 +59776,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5326, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5646, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5646, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5646, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(5, 5326, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCP", 0) < (0)) __PYX_ERR(5, 5646, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(5, 5326, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, i); __PYX_ERR(5, 5646, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5646, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5326, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5646, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5328, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5648, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5326, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5646, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -56160,7 +59828,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5328, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5648, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_340ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -56193,35 +59861,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340ROCP(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROCP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5347, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5349, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5671, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5352, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5354, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56299,48 +59988,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5357, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5679, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(5, 5357, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR", 0) < (0)) __PYX_ERR(5, 5679, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(5, 5357, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, i); __PYX_ERR(5, 5679, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5679, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5357, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5679, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5359, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5681, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5357, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5679, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -56351,7 +60040,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5359, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5681, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_342ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -56384,35 +60073,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342ROCR(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROCR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5378, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5380, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5704, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5383, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5385, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56490,48 +60200,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5388, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5712, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5712, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5712, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(5, 5388, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ROCR100", 0) < (0)) __PYX_ERR(5, 5712, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(5, 5388, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, i); __PYX_ERR(5, 5712, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5712, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5388, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5712, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5390, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5714, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5388, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5712, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -56542,7 +60252,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5390, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5714, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_344ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -56575,35 +60285,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344ROCR100(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROCR100", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5409, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5411, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5737, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5414, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5416, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56681,48 +60412,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5419, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5745, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5745, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5745, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(5, 5419, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RSI", 0) < (0)) __PYX_ERR(5, 5745, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(5, 5419, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, i); __PYX_ERR(5, 5745, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5745, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5419, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5745, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5421, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5747, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5419, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5745, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -56733,7 +60464,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5421, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5747, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_346RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -56766,35 +60497,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346RSI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("RSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5440, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5442, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5769, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5770, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5445, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5447, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56873,61 +60625,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_stddevperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5450, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5778, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVI", 0) < (0)) __PYX_ERR(5, 5450, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVI", 0) < (0)) __PYX_ERR(5, 5778, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, i); __PYX_ERR(5, 5450, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, i); __PYX_ERR(5, 5778, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5778, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5450, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5778, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5452, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5780, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5452, __pyx_L3_error) + __pyx_v_stddevperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_stddevperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5780, __pyx_L3_error) } else { __pyx_v_stddevperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5450, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RVI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5778, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -56938,7 +60690,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5452, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5780, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_348RVI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_stddevperiod); /* function exit code */ @@ -56972,35 +60724,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348RVI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("RVI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5472, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5800, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5474, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5804, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_RVI_Lookback(__pyx_v_timeperiod, __pyx_v_stddevperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5477, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_RVI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_stddevperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5479, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5809, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57078,48 +60851,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5482, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5812, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5812, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5812, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVOL", 0) < (0)) __PYX_ERR(5, 5482, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "RVOL", 0) < (0)) __PYX_ERR(5, 5812, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, i); __PYX_ERR(5, 5482, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, i); __PYX_ERR(5, 5812, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5812, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5482, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5812, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_volume = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5484, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5814, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5482, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("RVOL", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5812, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -57130,7 +60903,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5484, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 5814, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_350RVOL(__pyx_self, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ @@ -57163,35 +60936,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350RVOL(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("RVOL", 0); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5503, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_volume)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5505, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5837, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_RVOL_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5508, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_RVOL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5510, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_RVOL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57271,48 +61065,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_acceleration,&__pyx_mstate_global->__pyx_n_u_maximum,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5513, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5845, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(5, 5513, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAR", 0) < (0)) __PYX_ERR(5, 5845, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(5, 5513, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, i); __PYX_ERR(5, 5845, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5845, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5845, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5513, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5845, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -57320,19 +61114,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5515, __pyx_L3_error) + __pyx_v_acceleration = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_acceleration == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5847, __pyx_L3_error) } else { __pyx_v_acceleration = ((double)((double)0.02)); } if (values[3]) { - __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5515, __pyx_L3_error) + __pyx_v_maximum = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_maximum == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5847, __pyx_L3_error) } else { __pyx_v_maximum = ((double)((double)0.2)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 5513, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(5, 5845, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -57343,8 +61137,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5515, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5515, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5847, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5847, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_352SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); /* function exit code */ @@ -57379,7 +61173,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -57387,34 +61182,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5535, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5867, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5536, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5868, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5537, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5869, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5538, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5872, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5541, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5543, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57501,96 +61316,96 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_startvalue,&__pyx_mstate_global->__pyx_n_u_offsetonreverse,&__pyx_mstate_global->__pyx_n_u_accelerationinitlong,&__pyx_mstate_global->__pyx_n_u_accelerationlong,&__pyx_mstate_global->__pyx_n_u_accelerationmaxlong,&__pyx_mstate_global->__pyx_n_u_accelerationinitshort,&__pyx_mstate_global->__pyx_n_u_accelerationshort,&__pyx_mstate_global->__pyx_n_u_accelerationmaxshort,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5546, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5880, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(5, 5546, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SAREXT", 0) < (0)) __PYX_ERR(5, 5880, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(5, 5546, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, i); __PYX_ERR(5, 5880, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 10: values[9] = __Pyx_ArgRef_FASTCALL(__pyx_args, 9); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[9])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 9: values[8] = __Pyx_ArgRef_FASTCALL(__pyx_args, 8); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[8])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5880, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5880, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5546, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5880, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -57598,49 +61413,49 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_startvalue = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_startvalue == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_startvalue = ((double)((double)-4e37)); } if (values[3]) { - __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_offsetonreverse = __Pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_offsetonreverse == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_offsetonreverse = ((double)((double)-4e37)); } if (values[4]) { - __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_accelerationinitlong = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_accelerationinitlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_accelerationinitlong = ((double)((double)-4e37)); } if (values[5]) { - __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_accelerationlong = __Pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_accelerationlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_accelerationlong = ((double)((double)-4e37)); } if (values[6]) { - __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_accelerationmaxlong = __Pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_accelerationmaxlong == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_accelerationmaxlong = ((double)((double)-4e37)); } if (values[7]) { - __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_accelerationinitshort = __Pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_accelerationinitshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_accelerationinitshort = ((double)((double)-4e37)); } if (values[8]) { - __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_accelerationshort = __Pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_accelerationshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_accelerationshort = ((double)((double)-4e37)); } if (values[9]) { - __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5548, __pyx_L3_error) + __pyx_v_accelerationmaxshort = __Pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_accelerationmaxshort == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5882, __pyx_L3_error) } else { __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(5, 5546, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(5, 5880, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -57651,8 +61466,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5548, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5548, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5882, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5882, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_354SAREXT(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort); /* function exit code */ @@ -57693,7 +61508,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -57701,34 +61517,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5574, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5575, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5576, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5910, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5577, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5913, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SAREXT_Lookback(__pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5580, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_startvalue, __pyx_v_offsetonreverse, __pyx_v_accelerationinitlong, __pyx_v_accelerationlong, __pyx_v_accelerationmaxlong, __pyx_v_accelerationinitshort, __pyx_v_accelerationshort, __pyx_v_accelerationmaxshort, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5582, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57806,32 +61642,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5585, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5921, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5921, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(5, 5585, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SIN", 0) < (0)) __PYX_ERR(5, 5921, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(5, 5585, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, i); __PYX_ERR(5, 5921, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5585, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5921, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5585, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5921, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -57842,7 +61678,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5587, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5923, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_356SIN(__pyx_self, __pyx_v_real); /* function exit code */ @@ -57874,35 +61710,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356SIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5604, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5606, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5944, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5609, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5611, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -57979,32 +61836,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5614, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5952, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5614, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5952, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(5, 5614, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SINH", 0) < (0)) __PYX_ERR(5, 5952, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(5, 5614, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, i); __PYX_ERR(5, 5952, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5614, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5952, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5614, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5952, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -58015,7 +61872,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5616, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5954, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_358SINH(__pyx_self, __pyx_v_real); /* function exit code */ @@ -58047,35 +61904,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_358SINH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SINH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5633, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5635, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5975, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5638, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5978, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5640, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -58153,48 +62031,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5643, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5983, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(5, 5643, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMA", 0) < (0)) __PYX_ERR(5, 5983, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(5, 5643, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, i); __PYX_ERR(5, 5983, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5983, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5643, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5983, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5645, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5985, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5643, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5983, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -58205,7 +62083,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5645, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5985, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_360SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -58238,35 +62116,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_360SMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5664, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5666, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6008, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5669, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5671, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -58349,70 +62248,70 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastperiod,&__pyx_mstate_global->__pyx_n_u_slowperiod,&__pyx_mstate_global->__pyx_n_u_signalperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5674, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6016, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMI", 0) < (0)) __PYX_ERR(5, 5674, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SMI", 0) < (0)) __PYX_ERR(5, 6016, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, i); __PYX_ERR(5, 5674, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, i); __PYX_ERR(5, 6016, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6016, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6016, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6016, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5674, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6016, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -58421,29 +62320,29 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6018, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + __pyx_v_fastperiod = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6018, __pyx_L3_error) } else { __pyx_v_fastperiod = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + __pyx_v_slowperiod = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6018, __pyx_L3_error) } else { __pyx_v_slowperiod = ((int)((int)-2147483648)); } if (values[6]) { - __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5676, __pyx_L3_error) + __pyx_v_signalperiod = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6018, __pyx_L3_error) } else { __pyx_v_signalperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(5, 5674, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SMI", 0, 3, 7, __pyx_nargs); __PYX_ERR(5, 6016, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -58454,9 +62353,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5676, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6018, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6018, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6018, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_362SMI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); /* function exit code */ @@ -58494,7 +62393,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -58503,70 +62405,102 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_362SMI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5700, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5701, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5702, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5703, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6045, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5704, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6047, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 6047, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6048, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SMI_Lookback(__pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5707, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outsmi = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5708, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outsmisignal = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_SMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsmisignal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5710, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outsmi); __Pyx_GIVEREF((PyObject *)__pyx_v_outsmi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsmi)) != (0)) __PYX_ERR(5, 5711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outsmi)) != (0)) __PYX_ERR(5, 6055, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outsmisignal); __Pyx_GIVEREF((PyObject *)__pyx_v_outsmisignal); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outsmisignal)) != (0)) __PYX_ERR(5, 5711, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outsmisignal)) != (0)) __PYX_ERR(5, 6055, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.SMI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -58628,32 +62562,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5713, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6057, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6057, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(5, 5713, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SQRT", 0) < (0)) __PYX_ERR(5, 6057, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(5, 5713, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, i); __PYX_ERR(5, 6057, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5713, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6057, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 5713, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6057, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -58664,7 +62598,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5715, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6059, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_364SQRT(__pyx_self, __pyx_v_real); /* function exit code */ @@ -58696,35 +62630,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_364SQRT(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SQRT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5732, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5734, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6080, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5737, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5739, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -58803,61 +62758,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5742, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6088, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6088, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6088, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6088, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(5, 5742, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STDDEV", 0) < (0)) __PYX_ERR(5, 6088, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(5, 5742, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, i); __PYX_ERR(5, 6088, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6088, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6088, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5742, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6088, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5744, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6090, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5744, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6090, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5742, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6088, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -58868,7 +62823,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5744, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6090, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_366STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ @@ -58902,35 +62857,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_366STDDEV(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("STDDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5764, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5766, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6114, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5769, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5771, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -59014,78 +62990,78 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_slowk_period,&__pyx_mstate_global->__pyx_n_u_slowk_matype,&__pyx_mstate_global->__pyx_n_u_slowd_period,&__pyx_mstate_global->__pyx_n_u_slowd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5774, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6122, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(5, 5774, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCH", 0) < (0)) __PYX_ERR(5, 6122, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(5, 5774, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, i); __PYX_ERR(5, 6122, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 8: values[7] = __Pyx_ArgRef_FASTCALL(__pyx_args, 7); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[7])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 7: values[6] = __Pyx_ArgRef_FASTCALL(__pyx_args, 6); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[6])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6122, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6122, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6122, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5774, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6122, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -59094,34 +63070,34 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6124, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + __pyx_v_slowk_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6124, __pyx_L3_error) } else { __pyx_v_slowk_period = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + __pyx_v_slowk_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6124, __pyx_L3_error) } else { __pyx_v_slowk_matype = ((int)((int)0)); } if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + __pyx_v_slowd_period = __Pyx_PyLong_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6124, __pyx_L3_error) } else { __pyx_v_slowd_period = ((int)((int)-2147483648)); } if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5776, __pyx_L3_error) + __pyx_v_slowd_matype = __Pyx_PyLong_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6124, __pyx_L3_error) } else { __pyx_v_slowd_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 5774, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(5, 6122, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -59132,9 +63108,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5776, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5776, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5776, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6124, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6124, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_368STOCH(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype); /* function exit code */ @@ -59173,7 +63149,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -59182,70 +63161,102 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_368STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5801, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5802, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5803, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5804, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6152, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5805, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6154, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 6154, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6155, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_STOCH_Lookback(__pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_slowk_period, __pyx_v_slowk_matype, __pyx_v_slowd_period, __pyx_v_slowd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outslowd)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outslowk); __Pyx_GIVEREF((PyObject *)__pyx_v_outslowk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(5, 5812, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outslowk)) != (0)) __PYX_ERR(5, 6162, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outslowd); __Pyx_GIVEREF((PyObject *)__pyx_v_outslowd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(5, 5812, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outslowd)) != (0)) __PYX_ERR(5, 6162, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -59312,62 +63323,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5814, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6164, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(5, 5814, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHF", 0) < (0)) __PYX_ERR(5, 6164, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(5, 5814, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, i); __PYX_ERR(5, 6164, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6164, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6164, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6164, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5814, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6164, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -59376,24 +63387,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5816, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6166, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5816, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6166, __pyx_L3_error) } else { __pyx_v_fastd_period = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5816, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6166, __pyx_L3_error) } else { __pyx_v_fastd_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 5814, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 6164, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -59404,9 +63415,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5816, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5816, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5816, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6166, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6166, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6166, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_370STOCHF(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ @@ -59443,7 +63454,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -59452,70 +63466,102 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_370STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5839, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5840, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5841, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5842, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6192, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5843, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6194, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 6194, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6195, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5846, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outfastk); __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(5, 5850, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(5, 6202, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outfastd); __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(5, 5850, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(5, 6202, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -59581,87 +63627,87 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_fastk_period,&__pyx_mstate_global->__pyx_n_u_fastd_period,&__pyx_mstate_global->__pyx_n_u_fastd_matype,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5852, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6204, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(5, 5852, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "STOCHRSI", 0) < (0)) __PYX_ERR(5, 6204, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(5, 5852, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, i); __PYX_ERR(5, 6204, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6204, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5852, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6204, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6206, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + __pyx_v_fastk_period = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6206, __pyx_L3_error) } else { __pyx_v_fastk_period = ((int)((int)-2147483648)); } if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + __pyx_v_fastd_period = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6206, __pyx_L3_error) } else { __pyx_v_fastd_period = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5854, __pyx_L3_error) + __pyx_v_fastd_matype = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6206, __pyx_L3_error) } else { __pyx_v_fastd_matype = ((int)((int)0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 5852, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(5, 6204, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -59672,7 +63718,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5854, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6206, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_372STOCHRSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype); /* function exit code */ @@ -59709,66 +63755,101 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_372STOCHRSI(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + npy_int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("STOCHRSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5878, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5880, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6233, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3) != (0)) __PYX_ERR(5, 6233, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_4; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_4 = 0; + goto __pyx_L0; + + } + + __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6234, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_5; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5883, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5884, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outfastd)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5886, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5887, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF((PyObject *)__pyx_v_outfastk); __Pyx_GIVEREF((PyObject *)__pyx_v_outfastk); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(5, 5887, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_outfastk)) != (0)) __PYX_ERR(5, 6241, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outfastd); __Pyx_GIVEREF((PyObject *)__pyx_v_outfastd); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(5, 5887, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_outfastd)) != (0)) __PYX_ERR(5, 6241, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_4; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_4 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("talib._ta_lib.STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -59829,39 +63910,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real0,&__pyx_mstate_global->__pyx_n_u_real1,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5889, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6243, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6243, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(5, 5889, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUB", 0) < (0)) __PYX_ERR(5, 6243, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(5, 5889, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, i); __PYX_ERR(5, 6243, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6243, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5889, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6243, __pyx_L3_error) } __pyx_v_real0 = ((PyArrayObject *)values[0]); __pyx_v_real1 = ((PyArrayObject *)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 5889, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(5, 6243, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -59872,8 +63953,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 5891, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 5891, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(5, 6245, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(5, 6245, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_374SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); /* function exit code */ @@ -59906,7 +63987,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -59914,34 +63996,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_374SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5909, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5910, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5911, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6265, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5912, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6268, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5915, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5917, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -60020,48 +64122,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5920, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5920, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5920, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(5, 5920, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUM", 0) < (0)) __PYX_ERR(5, 6276, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(5, 5920, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, i); __PYX_ERR(5, 6276, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5920, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5920, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6276, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5922, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6278, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 5920, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -60072,7 +64174,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5922, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6278, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_376SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -60105,35 +64207,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_376SUM(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SUM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5941, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5943, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6301, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5946, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5948, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -60214,54 +64337,54 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_multiplier,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5951, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6309, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUPERTREND", 0) < (0)) __PYX_ERR(5, 5951, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "SUPERTREND", 0) < (0)) __PYX_ERR(5, 6309, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, i); __PYX_ERR(5, 5951, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, i); __PYX_ERR(5, 6309, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6309, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6309, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6309, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5951, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6309, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -60270,19 +64393,19 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5953, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6311, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5953, __pyx_L3_error) + __pyx_v_multiplier = __Pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_multiplier == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6311, __pyx_L3_error) } else { __pyx_v_multiplier = ((double)((double)3.0)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(5, 5951, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("SUPERTREND", 0, 3, 5, __pyx_nargs); __PYX_ERR(5, 6309, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -60293,9 +64416,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 5953, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 5953, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 5953, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6311, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6311, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6311, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_378SUPERTREND(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod, __pyx_v_multiplier); /* function exit code */ @@ -60331,7 +64454,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -60340,70 +64466,102 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_378SUPERTREND(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5975, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5976, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6334, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5977, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 5978, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6336, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5979, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6338, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 6338, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6339, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_SUPERTREND_Lookback(__pyx_v_timeperiod, __pyx_v_multiplier)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5982, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outsupertrend = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5983, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outtrend = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_SUPERTREND(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_multiplier, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outsupertrend)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outtrend)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5985, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_SUPERTREND, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 5986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outsupertrend); __Pyx_GIVEREF((PyObject *)__pyx_v_outsupertrend); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outsupertrend)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outsupertrend)) != (0)) __PYX_ERR(5, 6346, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outtrend); __Pyx_GIVEREF((PyObject *)__pyx_v_outtrend); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outtrend)) != (0)) __PYX_ERR(5, 5986, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outtrend)) != (0)) __PYX_ERR(5, 6346, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.SUPERTREND", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -60467,61 +64625,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_vfactor,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 5988, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6348, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(5, 5988, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "T3", 0) < (0)) __PYX_ERR(5, 6348, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(5, 5988, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, i); __PYX_ERR(5, 6348, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6348, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 5988, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6348, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 5990, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6350, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 5990, __pyx_L3_error) + __pyx_v_vfactor = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_vfactor == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6350, __pyx_L3_error) } else { __pyx_v_vfactor = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 5988, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6348, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -60532,7 +64690,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 5990, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6350, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_380T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); /* function exit code */ @@ -60566,35 +64724,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_380T3(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("T3", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6010, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6012, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6374, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6015, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6017, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -60671,32 +64850,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6020, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6382, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6382, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(5, 6020, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TAN", 0) < (0)) __PYX_ERR(5, 6382, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(5, 6020, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, i); __PYX_ERR(5, 6382, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6020, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6382, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6020, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6382, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -60707,7 +64886,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6022, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6384, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_382TAN(__pyx_self, __pyx_v_real); /* function exit code */ @@ -60739,35 +64918,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_382TAN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6039, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6041, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6405, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6044, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6046, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -60844,32 +65044,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6049, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6413, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6049, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6413, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(5, 6049, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TANH", 0) < (0)) __PYX_ERR(5, 6413, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(5, 6049, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, i); __PYX_ERR(5, 6413, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6049, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6413, __pyx_L3_error) } __pyx_v_real = ((PyArrayObject *)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6049, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(5, 6413, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -60880,7 +65080,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6051, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6415, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_384TANH(__pyx_self, __pyx_v_real); /* function exit code */ @@ -60912,35 +65112,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_384TANH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TANH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6068, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6070, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6436, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6073, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6075, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61018,48 +65239,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6078, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6444, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(5, 6078, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TEMA", 0) < (0)) __PYX_ERR(5, 6444, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(5, 6078, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, i); __PYX_ERR(5, 6444, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6444, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6078, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6444, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6080, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6446, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6078, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6444, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -61070,7 +65291,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6080, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6446, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_386TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -61103,35 +65324,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_386TEMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6099, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6101, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6469, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6104, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6106, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61210,38 +65452,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6109, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6477, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6477, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(5, 6109, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRANGE", 0) < (0)) __PYX_ERR(5, 6477, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(5, 6109, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, i); __PYX_ERR(5, 6477, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6477, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6477, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6109, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6477, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -61249,7 +65491,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6109, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6477, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -61260,9 +65502,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6111, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6111, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6479, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6479, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_388TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -61295,7 +65537,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -61304,39 +65547,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_388TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6128, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6129, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6130, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6131, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6499, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6132, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6501, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6502, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6135, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6137, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61416,48 +65679,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6140, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6510, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(5, 6140, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIMA", 0) < (0)) __PYX_ERR(5, 6510, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(5, 6140, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, i); __PYX_ERR(5, 6510, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6510, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6140, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6510, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6142, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6512, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6140, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6510, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -61468,7 +65731,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6142, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6512, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_390TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -61501,35 +65764,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_390TRIMA(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TRIMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6161, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6163, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6535, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6166, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6168, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61607,48 +65891,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6171, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6543, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(5, 6171, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TRIX", 0) < (0)) __PYX_ERR(5, 6543, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(5, 6171, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(5, 6543, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6543, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6171, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6543, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6173, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6545, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6171, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6543, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -61659,7 +65943,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6173, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6545, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_392TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -61692,35 +65976,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_392TRIX(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TRIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6192, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6194, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6568, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6197, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6199, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61798,48 +66103,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6202, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6576, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(5, 6202, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSF", 0) < (0)) __PYX_ERR(5, 6576, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(5, 6202, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(5, 6576, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6576, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6202, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6576, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6204, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6578, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6202, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6576, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -61850,7 +66155,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6204, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6578, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_394TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -61883,35 +66188,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_394TSF(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TSF", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6223, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6225, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6601, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6228, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6230, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6606, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -61990,61 +66316,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_firstperiod,&__pyx_mstate_global->__pyx_n_u_secondperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6233, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6609, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSI", 0) < (0)) __PYX_ERR(5, 6233, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TSI", 0) < (0)) __PYX_ERR(5, 6609, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, i); __PYX_ERR(5, 6233, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, i); __PYX_ERR(5, 6609, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6609, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6233, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6609, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6235, __pyx_L3_error) + __pyx_v_firstperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_firstperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6611, __pyx_L3_error) } else { __pyx_v_firstperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6235, __pyx_L3_error) + __pyx_v_secondperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_secondperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6611, __pyx_L3_error) } else { __pyx_v_secondperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6233, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TSI", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6609, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -62055,7 +66381,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6235, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6611, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_396TSI(__pyx_self, __pyx_v_real, __pyx_v_firstperiod, __pyx_v_secondperiod); /* function exit code */ @@ -62089,35 +66415,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_396TSI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6255, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6257, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6635, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6260, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_firstperiod, __pyx_v_secondperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6262, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -62196,38 +66543,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6265, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6643, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6643, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6643, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6643, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(5, 6265, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "TYPPRICE", 0) < (0)) __PYX_ERR(5, 6643, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(5, 6265, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, i); __PYX_ERR(5, 6643, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6643, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6643, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6265, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6643, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -62235,7 +66582,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6265, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6643, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -62246,9 +66593,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6267, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6267, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6645, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6645, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6645, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_398TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -62281,7 +66628,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -62290,39 +66638,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_398TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6284, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6285, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6286, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6287, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6665, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6288, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6668, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6291, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6293, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -62406,62 +66774,62 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod1,&__pyx_mstate_global->__pyx_n_u_timeperiod2,&__pyx_mstate_global->__pyx_n_u_timeperiod3,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6296, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6676, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(5, 6296, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ULTOSC", 0) < (0)) __PYX_ERR(5, 6676, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(5, 6296, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, i); __PYX_ERR(5, 6676, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 6: values[5] = __Pyx_ArgRef_FASTCALL(__pyx_args, 5); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[5])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 5: values[4] = __Pyx_ArgRef_FASTCALL(__pyx_args, 4); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[4])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6676, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6676, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6676, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6296, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6676, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -62470,24 +66838,24 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6298, __pyx_L3_error) + __pyx_v_timeperiod1 = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6678, __pyx_L3_error) } else { __pyx_v_timeperiod1 = ((int)((int)-2147483648)); } if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6298, __pyx_L3_error) + __pyx_v_timeperiod2 = __Pyx_PyLong_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6678, __pyx_L3_error) } else { __pyx_v_timeperiod2 = ((int)((int)-2147483648)); } if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6298, __pyx_L3_error) + __pyx_v_timeperiod3 = __Pyx_PyLong_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6678, __pyx_L3_error) } else { __pyx_v_timeperiod3 = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 6296, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(5, 6676, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -62498,9 +66866,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6298, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6298, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6298, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6678, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6678, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6678, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_400ULTOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3); /* function exit code */ @@ -62536,7 +66904,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -62545,39 +66914,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_400ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6319, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6320, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6321, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6322, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6702, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6323, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6705, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6326, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6328, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -62658,61 +67047,61 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,&__pyx_mstate_global->__pyx_n_u_nbdev,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6331, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6713, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(5, 6331, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VAR", 0) < (0)) __PYX_ERR(5, 6713, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(5, 6331, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, i); __PYX_ERR(5, 6713, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6713, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6331, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6713, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6333, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6715, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } if (values[2]) { - __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6333, __pyx_L3_error) + __pyx_v_nbdev = __Pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_nbdev == (double)-1) && PyErr_Occurred())) __PYX_ERR(5, 6715, __pyx_L3_error) } else { __pyx_v_nbdev = ((double)((double)-4e37)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6331, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(5, 6713, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -62723,7 +67112,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6333, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6715, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_402VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); /* function exit code */ @@ -62757,35 +67146,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_402VAR(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("VAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6353, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6355, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6739, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6358, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6360, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -62863,48 +67273,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6363, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6747, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6747, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6747, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VHF", 0) < (0)) __PYX_ERR(5, 6363, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VHF", 0) < (0)) __PYX_ERR(5, 6747, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, i); __PYX_ERR(5, 6363, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, i); __PYX_ERR(5, 6747, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6747, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6363, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6747, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6365, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6749, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6363, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VHF", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6747, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -62915,7 +67325,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6365, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6749, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_404VHF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -62948,35 +67358,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_404VHF(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("VHF", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6384, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6386, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6772, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_VHF_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6389, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_VHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6391, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -63056,46 +67487,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6394, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6780, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VORTEX", 0) < (0)) __PYX_ERR(5, 6394, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VORTEX", 0) < (0)) __PYX_ERR(5, 6780, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, i); __PYX_ERR(5, 6394, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, i); __PYX_ERR(5, 6780, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6780, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6780, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6780, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6394, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6780, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -63104,14 +67535,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6396, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6782, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6394, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VORTEX", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6780, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -63122,9 +67553,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6396, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6396, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6396, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6782, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6782, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6782, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_406VORTEX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -63159,7 +67590,10 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + npy_int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -63168,70 +67602,102 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_406VORTEX(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6417, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6418, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6419, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6420, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6806, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6421, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1) != (0)) __PYX_ERR(5, 6808, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4) != (0)) __PYX_ERR(5, 6808, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6809, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_6; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_VORTEX_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outplusvi = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_t_5 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_outminusvi = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; __pyx_v_retCode = TA_VORTEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outplusvi)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outminusvi)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6427, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VORTEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 6816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF((PyObject *)__pyx_v_outplusvi); __Pyx_GIVEREF((PyObject *)__pyx_v_outplusvi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_outplusvi)) != (0)) __PYX_ERR(5, 6428, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_outplusvi)) != (0)) __PYX_ERR(5, 6816, __pyx_L1_error); __Pyx_INCREF((PyObject *)__pyx_v_outminusvi); __Pyx_GIVEREF((PyObject *)__pyx_v_outminusvi); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_outminusvi)) != (0)) __PYX_ERR(5, 6428, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_outminusvi)) != (0)) __PYX_ERR(5, 6816, __pyx_L1_error); { PyObject *__pyx_temp; { __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_1 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; @@ -63296,44 +67762,44 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_volume,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6430, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6818, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6818, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWAP", 0) < (0)) __PYX_ERR(5, 6430, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWAP", 0) < (0)) __PYX_ERR(5, 6818, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, i); __PYX_ERR(5, 6430, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, i); __PYX_ERR(5, 6818, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 4)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6818, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6818, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6818, __pyx_L3_error) values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6430, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6818, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -63342,7 +67808,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 6430, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VWAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(5, 6818, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -63353,10 +67819,10 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6820, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6820, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6820, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6820, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_408VWAP(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); /* function exit code */ @@ -63389,7 +67855,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -63399,44 +67866,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_408VWAP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6449, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6450, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6838, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6451, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6452, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6453, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6841, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6454, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6844, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6457, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_VWAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6459, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -63518,40 +68005,40 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_volume,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6462, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6852, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWMA", 0) < (0)) __PYX_ERR(5, 6462, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "VWMA", 0) < (0)) __PYX_ERR(5, 6852, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, i); __PYX_ERR(5, 6462, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, i); __PYX_ERR(5, 6852, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6852, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6852, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6462, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6852, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -63559,14 +68046,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_real = ((PyArrayObject *)values[0]); __pyx_v_volume = ((PyArrayObject *)values[1]); if (values[2]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6464, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6854, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 6462, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("VWMA", 0, 2, 3, __pyx_nargs); __PYX_ERR(5, 6852, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -63577,8 +68064,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6464, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6464, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6854, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(5, 6854, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_410VWMA(__pyx_self, __pyx_v_real, __pyx_v_volume, __pyx_v_timeperiod); /* function exit code */ @@ -63612,7 +68099,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -63620,34 +68108,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_410VWMA(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_volume); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6484, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6485, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6486, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6876, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6487, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6879, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6490, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_VWMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6492, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_VWMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -63727,38 +68235,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6495, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6887, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6887, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAD", 0) < (0)) __PYX_ERR(5, 6495, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WAD", 0) < (0)) __PYX_ERR(5, 6887, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, i); __PYX_ERR(5, 6495, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, i); __PYX_ERR(5, 6887, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6887, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6887, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6495, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6887, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -63766,7 +68274,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6495, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WAD", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6887, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -63777,9 +68285,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6497, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6497, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6497, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6889, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6889, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6889, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_412WAD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -63812,7 +68320,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -63821,39 +68330,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_412WAD(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6514, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6906, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6515, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6516, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6517, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6909, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6518, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6912, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_WAD_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6521, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_WAD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6523, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WAD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -63934,38 +68463,38 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6526, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6920, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6920, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6920, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6920, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(5, 6526, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WCLPRICE", 0) < (0)) __PYX_ERR(5, 6920, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(5, 6526, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, i); __PYX_ERR(5, 6920, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 3)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6920, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6920, __pyx_L3_error) values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6526, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6920, __pyx_L3_error) } __pyx_v_high = ((PyArrayObject *)values[0]); __pyx_v_low = ((PyArrayObject *)values[1]); @@ -63973,7 +68502,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6526, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(5, 6920, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -63984,9 +68513,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6528, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6528, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6528, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6922, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6922, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6922, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_414WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); /* function exit code */ @@ -64019,7 +68548,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -64028,39 +68558,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_414WCLPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6545, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6546, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6547, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6548, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6942, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6549, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6945, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6552, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6554, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -64142,46 +68692,46 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6557, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6953, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(5, 6557, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WILLR", 0) < (0)) __PYX_ERR(5, 6953, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(5, 6557, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, i); __PYX_ERR(5, 6953, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 4: values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(5, 6953, __pyx_L3_error) CYTHON_FALLTHROUGH; case 3: values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(5, 6953, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6953, __pyx_L3_error) values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6557, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6953, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } @@ -64190,14 +68740,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __pyx_v_low = ((PyArrayObject *)values[1]); __pyx_v_close = ((PyArrayObject *)values[2]); if (values[3]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6559, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6955, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6557, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(5, 6953, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -64208,9 +68758,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(5, 6955, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(5, 6955, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(5, 6955, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_416WILLR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); /* function exit code */ @@ -64244,7 +68794,8 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - npy_int __pyx_t_3; + int __pyx_t_3; + npy_int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -64253,39 +68804,59 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_416WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6578, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6579, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6580, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6581, __pyx_L1_error) + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(5, 6977, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6582, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_3; + __pyx_t_3 = (__pyx_v_length == 0); + + if (__pyx_t_3) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close))); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6980, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_4; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6585, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6587, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -64365,48 +68936,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6590, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6988, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(5, 6590, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "WMA", 0) < (0)) __PYX_ERR(5, 6988, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(5, 6590, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, i); __PYX_ERR(5, 6988, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6988, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6590, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6988, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6592, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6990, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6590, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6988, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -64417,7 +68988,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6592, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6990, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_418WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -64450,35 +69021,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_418WMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("WMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6611, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6613, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 7013, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6616, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6618, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -64556,48 +69148,48 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_real,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 6621, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(5, 7021, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 7021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 7021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZLEMA", 0) < (0)) __PYX_ERR(5, 6621, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "ZLEMA", 0) < (0)) __PYX_ERR(5, 7021, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(5, 6621, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(5, 7021, __pyx_L3_error) } } } else { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 6621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(5, 7021, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 6621, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(5, 7021, __pyx_L3_error) break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_real = ((PyArrayObject *)values[0]); if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6623, __pyx_L3_error) + __pyx_v_timeperiod = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(5, 7023, __pyx_L3_error) } else { __pyx_v_timeperiod = ((int)((int)-2147483648)); } } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 6621, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(5, 7021, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -64608,7 +69200,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 6623, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_mstate_global->__pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(5, 7023, __pyx_L1_error) __pyx_r = __pyx_pf_5talib_7_ta_lib_420ZLEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); /* function exit code */ @@ -64641,35 +69233,56 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_420ZLEMA(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_int __pyx_t_2; + int __pyx_t_2; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ZLEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6642, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 6644, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_2; + __pyx_t_2 = (__pyx_v_length == 0); + + if (__pyx_t_2) { + + + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } + + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(5, 7046, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); __pyx_v_lookback = (__pyx_v_begidx + TA_ZLEMA_Lookback(__pyx_v_timeperiod)); - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6647, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_retCode = TA_ZLEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outreal)) + __pyx_v_lookback)); - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 6649, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_mstate_global->__pyx_n_u_TA_ZLEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 7051, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -339871,1438 +344484,1438 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AC, __pyx_t_4) < (0)) __PYX_ERR(5, 142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 178, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 176, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 176, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ACCBANDS, 0, __pyx_mstate_global->__pyx_n_u_ACCBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_4) < (0)) __PYX_ERR(5, 176, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_t_4) < (0)) __PYX_ERR(5, 178, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 215, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ACOS, 0, __pyx_mstate_global->__pyx_n_u_ACOS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_4) < (0)) __PYX_ERR(5, 215, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_t_4) < (0)) __PYX_ERR(5, 219, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 244, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27AD, 0, __pyx_mstate_global->__pyx_n_u_AD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_4) < (0)) __PYX_ERR(5, 244, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AD, __pyx_t_4) < (0)) __PYX_ERR(5, 250, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 276, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADD, 0, __pyx_mstate_global->__pyx_n_u_ADD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_t_4) < (0)) __PYX_ERR(5, 276, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_t_4) < (0)) __PYX_ERR(5, 284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 309, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 309, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_2}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 307, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 307, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31ADOSC, 0, __pyx_mstate_global->__pyx_n_u_ADOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_t_2) < (0)) __PYX_ERR(5, 307, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_t_2) < (0)) __PYX_ERR(5, 317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 344, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 342, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33ADR, 0, __pyx_mstate_global->__pyx_n_u_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 342, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33ADR, 0, __pyx_mstate_global->__pyx_n_u_ADR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_t_2) < (0)) __PYX_ERR(5, 342, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_t_2) < (0)) __PYX_ERR(5, 354, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 376, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 374, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 374, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35ADX, 0, __pyx_mstate_global->__pyx_n_u_ADX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_2) < (0)) __PYX_ERR(5, 374, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_t_2) < (0)) __PYX_ERR(5, 388, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 409, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 407, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 407, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ADXR, 0, __pyx_mstate_global->__pyx_n_u_ADXR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_t_2) < (0)) __PYX_ERR(5, 407, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_t_2) < (0)) __PYX_ERR(5, 423, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 442, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 442, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_5}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 440, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39AO, 0, __pyx_mstate_global->__pyx_n_u_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 440, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39AO, 0, __pyx_mstate_global->__pyx_n_u_AO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AO, __pyx_t_5) < (0)) __PYX_ERR(5, 440, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AO, __pyx_t_5) < (0)) __PYX_ERR(5, 458, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 475, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 475, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 475, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 473, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 473, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41APO, 0, __pyx_mstate_global->__pyx_n_u_APO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_2) < (0)) __PYX_ERR(5, 473, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_APO, __pyx_t_2) < (0)) __PYX_ERR(5, 493, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 508, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 506, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 506, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AROON, 0, __pyx_mstate_global->__pyx_n_u_AROON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_2) < (0)) __PYX_ERR(5, 506, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_t_2) < (0)) __PYX_ERR(5, 528, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 543, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 541, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 541, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45AROONOSC, 0, __pyx_mstate_global->__pyx_n_u_AROONOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_2) < (0)) __PYX_ERR(5, 541, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_t_2) < (0)) __PYX_ERR(5, 565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 573, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47ASIN, 0, __pyx_mstate_global->__pyx_n_u_ASIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_2) < (0)) __PYX_ERR(5, 573, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_t_2) < (0)) __PYX_ERR(5, 599, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 602, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49ATAN, 0, __pyx_mstate_global->__pyx_n_u_ATAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_2) < (0)) __PYX_ERR(5, 602, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_t_2) < (0)) __PYX_ERR(5, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 633, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 631, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 631, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51ATR, 0, __pyx_mstate_global->__pyx_n_u_ATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_2) < (0)) __PYX_ERR(5, 631, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_t_2) < (0)) __PYX_ERR(5, 661, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 666, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 664, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 664, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53AVGDEV, 0, __pyx_mstate_global->__pyx_n_u_AVGDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_2) < (0)) __PYX_ERR(5, 664, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_t_2) < (0)) __PYX_ERR(5, 696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 695, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55AVGPRICE, 0, __pyx_mstate_global->__pyx_n_u_AVGPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 695, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_t_2) < (0)) __PYX_ERR(5, 729, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 729, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 729, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 729, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 729, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[4] = {__pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 727, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 727, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57BBANDS, 0, __pyx_mstate_global->__pyx_n_u_BBANDS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 763, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_5) < (0)) __PYX_ERR(5, 727, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_t_5) < (0)) __PYX_ERR(5, 763, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 769, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 767, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 767, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59BETA, 0, __pyx_mstate_global->__pyx_n_u_BETA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_5) < (0)) __PYX_ERR(5, 767, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_t_5) < (0)) __PYX_ERR(5, 805, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 800, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61BOP, 0, __pyx_mstate_global->__pyx_n_u_BOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_5) < (0)) __PYX_ERR(5, 800, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_t_5) < (0)) __PYX_ERR(5, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 834, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 832, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 832, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CCI, 0, __pyx_mstate_global->__pyx_n_u_CCI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 874, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_5) < (0)) __PYX_ERR(5, 832, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_t_5) < (0)) __PYX_ERR(5, 874, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 865, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 865, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 897, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDL3BLACKCROWS, 0, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 897, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 943, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 929, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDL3INSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 929, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 977, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 961, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDL3LINESTRIKE, 0, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_5) < (0)) __PYX_ERR(5, 961, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_t_5) < (0)) __PYX_ERR(5, 1011, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 993, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDL3OUTSIDE, 0, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[38])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 993, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_t_5) < (0)) __PYX_ERR(5, 1045, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1025, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDL3STARSINSOUTH, 0, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[39])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_5) < (0)) __PYX_ERR(5, 1025, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_t_5) < (0)) __PYX_ERR(5, 1079, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1057, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDL3WHITESOLDIERS, 0, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[40])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_5) < (0)) __PYX_ERR(5, 1057, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_t_5) < (0)) __PYX_ERR(5, 1113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1091, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1089, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1089, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLABANDONEDBABY, 0, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[41])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_5) < (0)) __PYX_ERR(5, 1089, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_t_5) < (0)) __PYX_ERR(5, 1147, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1123, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLADVANCEBLOCK, 0, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[42])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_5) < (0)) __PYX_ERR(5, 1123, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_t_5) < (0)) __PYX_ERR(5, 1183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1155, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLBELTHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[43])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 1155, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 1217, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1187, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLBREAKAWAY, 0, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[44])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_5) < (0)) __PYX_ERR(5, 1187, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_t_5) < (0)) __PYX_ERR(5, 1251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1219, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLCLOSINGMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[45])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 1219, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 1285, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1251, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLCONCEALBABYSWALL, 0, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[46])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_5) < (0)) __PYX_ERR(5, 1251, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_t_5) < (0)) __PYX_ERR(5, 1319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1283, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLCOUNTERATTACK, 0, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[47])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_5) < (0)) __PYX_ERR(5, 1283, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_t_5) < (0)) __PYX_ERR(5, 1353, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1317, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1315, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1315, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLDARKCLOUDCOVER, 0, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[48])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_5) < (0)) __PYX_ERR(5, 1315, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_t_5) < (0)) __PYX_ERR(5, 1387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1349, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[49])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1349, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1423, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1381, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[50])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1381, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1457, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1413, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLDRAGONFLYDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[51])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1413, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1445, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLENGULFING, 0, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[52])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_5) < (0)) __PYX_ERR(5, 1445, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_t_5) < (0)) __PYX_ERR(5, 1525, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1479, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1477, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1477, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLEVENINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[53])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1559, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1477, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1559, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1513, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1511, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1511, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLEVENINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[54])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1511, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 1595, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1545, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLGAPSIDESIDEWHITE, 0, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[55])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_5) < (0)) __PYX_ERR(5, 1545, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_t_5) < (0)) __PYX_ERR(5, 1631, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1577, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLGRAVESTONEDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[56])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1665, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1577, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 1665, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1609, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[57])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 1609, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 1699, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1641, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHANGINGMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[58])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 1641, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 1733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1673, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLHARAMI, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[59])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_5) < (0)) __PYX_ERR(5, 1673, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_t_5) < (0)) __PYX_ERR(5, 1767, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1705, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLHARAMICROSS, 0, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[60])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1801, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_5) < (0)) __PYX_ERR(5, 1705, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_t_5) < (0)) __PYX_ERR(5, 1801, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1737, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLHIGHWAVE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[61])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_5) < (0)) __PYX_ERR(5, 1737, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_t_5) < (0)) __PYX_ERR(5, 1835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1769, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLHIKKAKE, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[62])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_5) < (0)) __PYX_ERR(5, 1769, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_t_5) < (0)) __PYX_ERR(5, 1869, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1801, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLHIKKAKEMOD, 0, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[63])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_5) < (0)) __PYX_ERR(5, 1801, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_t_5) < (0)) __PYX_ERR(5, 1903, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1833, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLHOMINGPIGEON, 0, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[64])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1937, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_5) < (0)) __PYX_ERR(5, 1833, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_t_5) < (0)) __PYX_ERR(5, 1937, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1865, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLIDENTICAL3CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[65])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 1865, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 1971, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1897, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLINNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLINNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[66])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 1897, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 2005, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1929, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLINVERTEDHAMMER, 0, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[67])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 1929, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_t_5) < (0)) __PYX_ERR(5, 2039, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1961, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLKICKING, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[68])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_5) < (0)) __PYX_ERR(5, 1961, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_t_5) < (0)) __PYX_ERR(5, 2073, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 1993, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLKICKINGBYLENGTH, 0, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[69])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_5) < (0)) __PYX_ERR(5, 1993, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_t_5) < (0)) __PYX_ERR(5, 2107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2025, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLLADDERBOTTOM, 0, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[70])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_5) < (0)) __PYX_ERR(5, 2025, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_t_5) < (0)) __PYX_ERR(5, 2141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2057, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLLONGLEGGEDDOJI, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[71])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 2057, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_t_5) < (0)) __PYX_ERR(5, 2175, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2089, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLLONGLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[72])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2089, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2121, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLMARUBOZU, 0, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[73])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 2121, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_t_5) < (0)) __PYX_ERR(5, 2243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2153, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLMATCHINGLOW, 0, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[74])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_5) < (0)) __PYX_ERR(5, 2153, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_t_5) < (0)) __PYX_ERR(5, 2277, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2187, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2185, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2185, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLMATHOLD, 0, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[75])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 2185, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_t_5) < (0)) __PYX_ERR(5, 2311, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2221, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2219, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2219, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLMORNINGDOJISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[76])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2219, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2347, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2255, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2253, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2253, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLMORNINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[77])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2253, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2383, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2287, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLONNECK, 0, __pyx_mstate_global->__pyx_n_u_CDLONNECK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[78])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 2287, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_t_5) < (0)) __PYX_ERR(5, 2419, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2319, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLPIERCING, 0, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[79])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_5) < (0)) __PYX_ERR(5, 2319, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_t_5) < (0)) __PYX_ERR(5, 2453, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2351, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLRICKSHAWMAN, 0, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[80])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 2351, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_t_5) < (0)) __PYX_ERR(5, 2487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2383, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLRISEFALL3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[81])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2383, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2521, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2415, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLSEPARATINGLINES, 0, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[82])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_5) < (0)) __PYX_ERR(5, 2415, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_t_5) < (0)) __PYX_ERR(5, 2555, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2447, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLSHOOTINGSTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[83])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2447, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2589, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2479, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLSHORTLINE, 0, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[84])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2479, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_t_5) < (0)) __PYX_ERR(5, 2623, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2511, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLSPINNINGTOP, 0, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[85])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_5) < (0)) __PYX_ERR(5, 2511, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_t_5) < (0)) __PYX_ERR(5, 2657, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2543, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLSTALLEDPATTERN, 0, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[86])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_5) < (0)) __PYX_ERR(5, 2543, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_t_5) < (0)) __PYX_ERR(5, 2691, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2575, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLSTICKSANDWICH, 0, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[87])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_5) < (0)) __PYX_ERR(5, 2575, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_t_5) < (0)) __PYX_ERR(5, 2725, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2607, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLTAKURI, 0, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[88])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_5) < (0)) __PYX_ERR(5, 2607, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_t_5) < (0)) __PYX_ERR(5, 2759, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2639, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CDLTASUKIGAP, 0, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[89])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_5) < (0)) __PYX_ERR(5, 2639, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_t_5) < (0)) __PYX_ERR(5, 2793, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2671, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CDLTHRUSTING, 0, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[90])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_5) < (0)) __PYX_ERR(5, 2671, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_t_5) < (0)) __PYX_ERR(5, 2827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2703, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CDLTRISTAR, 0, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[91])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2703, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_t_5) < (0)) __PYX_ERR(5, 2861, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2735, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181CDLUNIQUE3RIVER, 0, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[92])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_5) < (0)) __PYX_ERR(5, 2735, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_t_5) < (0)) __PYX_ERR(5, 2895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2767, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183CDLUPSIDEGAP2CROWS, 0, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[93])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 2767, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_t_5) < (0)) __PYX_ERR(5, 2929, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2799, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185CDLXSIDEGAP3METHODS, 0, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[94])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2799, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_t_5) < (0)) __PYX_ERR(5, 2963, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2831, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187CEIL, 0, __pyx_mstate_global->__pyx_n_u_CEIL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[95])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_5) < (0)) __PYX_ERR(5, 2831, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_t_5) < (0)) __PYX_ERR(5, 2997, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2862, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2860, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189CMF, 0, __pyx_mstate_global->__pyx_n_u_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2860, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189CMF, 0, __pyx_mstate_global->__pyx_n_u_CMF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[96])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_t_5) < (0)) __PYX_ERR(5, 2860, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_t_5) < (0)) __PYX_ERR(5, 3028, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2896, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2894, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2894, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191CMO, 0, __pyx_mstate_global->__pyx_n_u_CMO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[97])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3064, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(5, 2894, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_t_5) < (0)) __PYX_ERR(5, 3064, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2927, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[1] = {__pyx_t_5}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2925, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193CMOU, 0, __pyx_mstate_global->__pyx_n_u_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2925, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193CMOU, 0, __pyx_mstate_global->__pyx_n_u_CMOU, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[98])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_t_5) < (0)) __PYX_ERR(5, 2925, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_t_5) < (0)) __PYX_ERR(5, 3097, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 2958, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 2958, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2958, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_11, __pyx_t_4}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 2956, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2956, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195COPPOCK, 0, __pyx_mstate_global->__pyx_n_u_COPPOCK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[99])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_t_4) < (0)) __PYX_ERR(5, 2956, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_t_4) < (0)) __PYX_ERR(5, 3130, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2991, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 2989, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 2989, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197CORREL, 0, __pyx_mstate_global->__pyx_n_u_CORREL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[100])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_4) < (0)) __PYX_ERR(5, 2989, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_t_4) < (0)) __PYX_ERR(5, 3165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3022, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199COS, 0, __pyx_mstate_global->__pyx_n_u_COS, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[101])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_4) < (0)) __PYX_ERR(5, 3022, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COS, __pyx_t_4) < (0)) __PYX_ERR(5, 3200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3051, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201COSH, 0, __pyx_mstate_global->__pyx_n_u_COSH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[102])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_4) < (0)) __PYX_ERR(5, 3051, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_t_4) < (0)) __PYX_ERR(5, 3231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3080, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203CUMSUM, 0, __pyx_mstate_global->__pyx_n_u_CUMSUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[103])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_t_4) < (0)) __PYX_ERR(5, 3080, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_t_4) < (0)) __PYX_ERR(5, 3262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3111, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3111, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3109, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205CVI, 0, __pyx_mstate_global->__pyx_n_u_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3109, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205CVI, 0, __pyx_mstate_global->__pyx_n_u_CVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[104])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_t_3) < (0)) __PYX_ERR(5, 3109, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_t_3) < (0)) __PYX_ERR(5, 3293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3144, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3142, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3142, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207DEMA, 0, __pyx_mstate_global->__pyx_n_u_DEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[105])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_3) < (0)) __PYX_ERR(5, 3142, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_t_3) < (0)) __PYX_ERR(5, 3328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3173, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209DIV, 0, __pyx_mstate_global->__pyx_n_u_DIV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[106])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_3) < (0)) __PYX_ERR(5, 3173, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_t_3) < (0)) __PYX_ERR(5, 3361, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3206, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3204, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3204, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211DONCHIAN, 0, __pyx_mstate_global->__pyx_n_u_DONCHIAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[107])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_t_3) < (0)) __PYX_ERR(5, 3204, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_t_3) < (0)) __PYX_ERR(5, 3394, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3244, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3242, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213DPO, 0, __pyx_mstate_global->__pyx_n_u_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3242, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213DPO, 0, __pyx_mstate_global->__pyx_n_u_DPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[108])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_t_3) < (0)) __PYX_ERR(5, 3242, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_t_3) < (0)) __PYX_ERR(5, 3434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3275, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3273, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3273, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215DX, 0, __pyx_mstate_global->__pyx_n_u_DX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[109])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_3) < (0)) __PYX_ERR(5, 3273, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_DX, __pyx_t_3) < (0)) __PYX_ERR(5, 3467, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3308, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3306, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217EFI, 0, __pyx_mstate_global->__pyx_n_u_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3306, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217EFI, 0, __pyx_mstate_global->__pyx_n_u_EFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[110])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_t_3) < (0)) __PYX_ERR(5, 3306, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_t_3) < (0)) __PYX_ERR(5, 3502, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3340, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3338, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3338, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219EMA, 0, __pyx_mstate_global->__pyx_n_u_EMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[111])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_3) < (0)) __PYX_ERR(5, 3338, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_t_3) < (0)) __PYX_ERR(5, 3536, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3371, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3369, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221ER, 0, __pyx_mstate_global->__pyx_n_u_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3369, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221ER, 0, __pyx_mstate_global->__pyx_n_u_ER, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[112])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ER, __pyx_t_3) < (0)) __PYX_ERR(5, 3369, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ER, __pyx_t_3) < (0)) __PYX_ERR(5, 3569, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3402, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3400, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223ERI, 0, __pyx_mstate_global->__pyx_n_u_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3400, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223ERI, 0, __pyx_mstate_global->__pyx_n_u_ERI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[113])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_t_3) < (0)) __PYX_ERR(5, 3400, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_t_3) < (0)) __PYX_ERR(5, 3602, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3436, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225EXP, 0, __pyx_mstate_global->__pyx_n_u_EXP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[114])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_3) < (0)) __PYX_ERR(5, 3436, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_t_3) < (0)) __PYX_ERR(5, 3640, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3465, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227FLOOR, 0, __pyx_mstate_global->__pyx_n_u_FLOOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[115])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_3) < (0)) __PYX_ERR(5, 3465, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_t_3) < (0)) __PYX_ERR(5, 3671, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3496, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3494, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229FOSC, 0, __pyx_mstate_global->__pyx_n_u_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3494, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229FOSC, 0, __pyx_mstate_global->__pyx_n_u_FOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[116])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_t_3) < (0)) __PYX_ERR(5, 3494, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_t_3) < (0)) __PYX_ERR(5, 3702, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3527, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3527, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3525, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3525, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231FRACTAL, 0, __pyx_mstate_global->__pyx_n_u_FRACTAL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[117])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3735, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(5, 3525, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_t_11) < (0)) __PYX_ERR(5, 3735, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233HA, 0, __pyx_mstate_global->__pyx_n_u_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3561, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233HA, 0, __pyx_mstate_global->__pyx_n_u_HA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[118])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_11) < (0)) __PYX_ERR(5, 3561, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HA, __pyx_t_11) < (0)) __PYX_ERR(5, 3773, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3604, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3602, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235HMA, 0, __pyx_mstate_global->__pyx_n_u_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3602, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235HMA, 0, __pyx_mstate_global->__pyx_n_u_HMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[119])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3602, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3816, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3633, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237HT_DCPERIOD, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[120])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3849, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(5, 3633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_t_11) < (0)) __PYX_ERR(5, 3849, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3662, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239HT_DCPHASE, 0, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[121])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(5, 3662, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(5, 3880, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3691, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241HT_PHASOR, 0, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[122])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3911, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(5, 3691, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_t_11) < (0)) __PYX_ERR(5, 3911, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3723, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243HT_SINE, 0, __pyx_mstate_global->__pyx_n_u_HT_SINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[123])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3723, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3755, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245HT_TRENDLINE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[124])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3755, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_t_11) < (0)) __PYX_ERR(5, 3979, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3784, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247HT_TRENDMODE, 0, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[125])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(5, 3784, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_t_11) < (0)) __PYX_ERR(5, 4010, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3815, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3813, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3813, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249IMI, 0, __pyx_mstate_global->__pyx_n_u_IMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[126])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_11) < (0)) __PYX_ERR(5, 3813, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_t_11) < (0)) __PYX_ERR(5, 4041, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3847, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[1] = {__pyx_t_11}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3845, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3845, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251KAMA, 0, __pyx_mstate_global->__pyx_n_u_KAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[127])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_11) < (0)) __PYX_ERR(5, 3845, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_t_11) < (0)) __PYX_ERR(5, 4075, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3878, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3878, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3878, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[3] = {__pyx_t_11, __pyx_t_4, __pyx_t_3}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3876, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253KC, 0, __pyx_mstate_global->__pyx_n_u_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3876, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253KC, 0, __pyx_mstate_global->__pyx_n_u_KC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[128])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC, __pyx_t_3) < (0)) __PYX_ERR(5, 3876, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KC, __pyx_t_3) < (0)) __PYX_ERR(5, 4108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 3919, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 3919, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 3919, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 3919, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3919, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)13)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[5] = {__pyx_t_3, __pyx_t_5, __pyx_t_4, __pyx_t_11, __pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 3917, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; @@ -341310,171 +345923,171 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255KDJ, 0, __pyx_mstate_global->__pyx_n_u_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3917, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255KDJ, 0, __pyx_mstate_global->__pyx_n_u_KDJ, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[129])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_t_2) < (0)) __PYX_ERR(5, 3917, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_t_2) < (0)) __PYX_ERR(5, 4151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3962, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 3960, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3960, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257LINEARREG, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[130])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_2) < (0)) __PYX_ERR(5, 3960, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_t_2) < (0)) __PYX_ERR(5, 4196, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3993, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 3991, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 3991, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259LINEARREG_ANGLE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[131])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_2) < (0)) __PYX_ERR(5, 3991, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_t_2) < (0)) __PYX_ERR(5, 4229, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4024, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4022, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4022, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261LINEARREG_INTERCEPT, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[132])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_2) < (0)) __PYX_ERR(5, 4022, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_t_2) < (0)) __PYX_ERR(5, 4262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4055, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[1] = {__pyx_t_2}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4053, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4053, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263LINEARREG_SLOPE, 0, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[133])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_2) < (0)) __PYX_ERR(5, 4053, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_t_2) < (0)) __PYX_ERR(5, 4295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4084, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265LN, 0, __pyx_mstate_global->__pyx_n_u_LN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[134])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_2) < (0)) __PYX_ERR(5, 4084, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LN, __pyx_t_2) < (0)) __PYX_ERR(5, 4328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4113, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267LOG10, 0, __pyx_mstate_global->__pyx_n_u_LOG10, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[135])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_2) < (0)) __PYX_ERR(5, 4113, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_t_2) < (0)) __PYX_ERR(5, 4359, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4144, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4144, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_10}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4142, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4142, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269MA, 0, __pyx_mstate_global->__pyx_n_u_MA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[136])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_10) < (0)) __PYX_ERR(5, 4142, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MA, __pyx_t_10) < (0)) __PYX_ERR(5, 4390, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4176, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4176, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4176, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_11, __pyx_t_2}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4174, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4174, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271MACD, 0, __pyx_mstate_global->__pyx_n_u_MACD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[137])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_2) < (0)) __PYX_ERR(5, 4174, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_t_2) < (0)) __PYX_ERR(5, 4424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4215, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[6] = {__pyx_t_2, __pyx_t_4, __pyx_t_11, __pyx_t_10, __pyx_t_5, __pyx_t_3}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4213, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 6); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -341483,752 +346096,752 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4213, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273MACDEXT, 0, __pyx_mstate_global->__pyx_n_u_MACDEXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[138])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_3) < (0)) __PYX_ERR(5, 4213, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_t_3) < (0)) __PYX_ERR(5, 4465, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4257, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4255, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4255, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275MACDFIX, 0, __pyx_mstate_global->__pyx_n_u_MACDFIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[139])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_3) < (0)) __PYX_ERR(5, 4255, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_t_3) < (0)) __PYX_ERR(5, 4509, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4294, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4294, __pyx_L1_error) + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4292, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4292, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277MAMA, 0, __pyx_mstate_global->__pyx_n_u_MAMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[140])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_9) < (0)) __PYX_ERR(5, 4292, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_t_9) < (0)) __PYX_ERR(5, 4548, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4327, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279MARKETFI, 0, __pyx_mstate_global->__pyx_n_u_MARKETFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[141])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_t_9) < (0)) __PYX_ERR(5, 4327, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_t_9) < (0)) __PYX_ERR(5, 4585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4360, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4360, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4358, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281MASSI, 0, __pyx_mstate_global->__pyx_n_u_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4358, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281MASSI, 0, __pyx_mstate_global->__pyx_n_u_MASSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[142])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_t_5) < (0)) __PYX_ERR(5, 4358, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_t_5) < (0)) __PYX_ERR(5, 4618, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4393, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 4655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4393, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4393, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4391, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4391, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283MAVP, 0, __pyx_mstate_global->__pyx_n_u_MAVP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[143])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_9) < (0)) __PYX_ERR(5, 4391, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_t_9) < (0)) __PYX_ERR(5, 4653, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4428, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4426, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4426, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285MAX, 0, __pyx_mstate_global->__pyx_n_u_MAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[144])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(5, 4426, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_t_9) < (0)) __PYX_ERR(5, 4690, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4459, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4457, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4457, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287MAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[145])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4457, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4723, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4491, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289MEDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MEDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[146])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_9) < (0)) __PYX_ERR(5, 4491, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_t_9) < (0)) __PYX_ERR(5, 4759, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4523, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4793, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4521, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4521, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291MFI, 0, __pyx_mstate_global->__pyx_n_u_MFI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[147])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_9) < (0)) __PYX_ERR(5, 4521, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_t_9) < (0)) __PYX_ERR(5, 4791, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4557, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4555, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4555, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293MIDPOINT, 0, __pyx_mstate_global->__pyx_n_u_MIDPOINT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[148])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4827, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_9) < (0)) __PYX_ERR(5, 4555, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_t_9) < (0)) __PYX_ERR(5, 4827, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4588, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4862, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4586, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4586, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295MIDPRICE, 0, __pyx_mstate_global->__pyx_n_u_MIDPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[149])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_9) < (0)) __PYX_ERR(5, 4586, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_t_9) < (0)) __PYX_ERR(5, 4860, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4620, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4618, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4618, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297MIN, 0, __pyx_mstate_global->__pyx_n_u_MIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[150])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(5, 4618, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_t_9) < (0)) __PYX_ERR(5, 4894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4651, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4649, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4649, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299MININDEX, 0, __pyx_mstate_global->__pyx_n_u_MININDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[151])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4649, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4927, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4685, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4683, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4683, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301MINMAX, 0, __pyx_mstate_global->__pyx_n_u_MINMAX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[152])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_9) < (0)) __PYX_ERR(5, 4683, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_t_9) < (0)) __PYX_ERR(5, 4963, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4719, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4717, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4717, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303MINMAXINDEX, 0, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[153])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4999, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4717, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_t_9) < (0)) __PYX_ERR(5, 4999, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4759, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4757, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4757, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305MINUS_DI, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[154])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_9) < (0)) __PYX_ERR(5, 4757, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_t_9) < (0)) __PYX_ERR(5, 5041, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4792, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4790, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4790, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307MINUS_DM, 0, __pyx_mstate_global->__pyx_n_u_MINUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[155])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_9) < (0)) __PYX_ERR(5, 4790, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_t_9) < (0)) __PYX_ERR(5, 5076, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4824, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4822, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4822, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309MOM, 0, __pyx_mstate_global->__pyx_n_u_MOM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[156])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_9) < (0)) __PYX_ERR(5, 4822, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_t_9) < (0)) __PYX_ERR(5, 5110, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4853, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311MULT, 0, __pyx_mstate_global->__pyx_n_u_MULT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[157])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_9) < (0)) __PYX_ERR(5, 4853, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_t_9) < (0)) __PYX_ERR(5, 5143, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4886, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4884, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4884, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313NATR, 0, __pyx_mstate_global->__pyx_n_u_NATR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[158])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_9) < (0)) __PYX_ERR(5, 4884, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_t_9) < (0)) __PYX_ERR(5, 5176, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315NVI, 0, __pyx_mstate_global->__pyx_n_u_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4917, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315NVI, 0, __pyx_mstate_global->__pyx_n_u_NVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[159])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_t_9) < (0)) __PYX_ERR(5, 4917, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_t_9) < (0)) __PYX_ERR(5, 5211, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4947, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317OBV, 0, __pyx_mstate_global->__pyx_n_u_OBV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[160])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_9) < (0)) __PYX_ERR(5, 4947, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_t_9) < (0)) __PYX_ERR(5, 5243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 4980, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4980, __pyx_L1_error) + __pyx_t_10 = PyFloat_FromDouble(((double)50.0)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 4978, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 4978, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319PERCENTILE, 0, __pyx_mstate_global->__pyx_n_u_PERCENTILE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[161])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(5, 4978, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_t_10) < (0)) __PYX_ERR(5, 5276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5012, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5010, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5010, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321PERCENTRANK, 0, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[162])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(5, 5010, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_t_10) < (0)) __PYX_ERR(5, 5310, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5043, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5041, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5041, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323PLUS_DI, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[163])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(5, 5041, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_t_10) < (0)) __PYX_ERR(5, 5343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5076, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5074, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5074, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325PLUS_DM, 0, __pyx_mstate_global->__pyx_n_u_PLUS_DM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[164])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5378, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(5, 5074, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_t_10) < (0)) __PYX_ERR(5, 5378, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5108, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5108, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5108, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[3] = {__pyx_t_10, __pyx_t_3, __pyx_t_9}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5106, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5106, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327PPO, 0, __pyx_mstate_global->__pyx_n_u_PPO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[165])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_9) < (0)) __PYX_ERR(5, 5106, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_t_9) < (0)) __PYX_ERR(5, 5412, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329PVI, 0, __pyx_mstate_global->__pyx_n_u_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5139, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329PVI, 0, __pyx_mstate_global->__pyx_n_u_PVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[166])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_t_9) < (0)) __PYX_ERR(5, 5139, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_t_9) < (0)) __PYX_ERR(5, 5447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5171, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5171, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5171, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[3] = {__pyx_t_9, __pyx_t_5, __pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5169, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331PVO, 0, __pyx_mstate_global->__pyx_n_u_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5169, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331PVO, 0, __pyx_mstate_global->__pyx_n_u_PVO, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[167])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_t_3) < (0)) __PYX_ERR(5, 5169, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_t_3) < (0)) __PYX_ERR(5, 5479, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333PVT, 0, __pyx_mstate_global->__pyx_n_u_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5202, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333PVT, 0, __pyx_mstate_global->__pyx_n_u_PVT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[168])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_t_3) < (0)) __PYX_ERR(5, 5202, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_t_3) < (0)) __PYX_ERR(5, 5514, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5234, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5548, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5232, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335QSTICK, 0, __pyx_mstate_global->__pyx_n_u_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5232, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335QSTICK, 0, __pyx_mstate_global->__pyx_n_u_QSTICK, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[169])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_t_3) < (0)) __PYX_ERR(5, 5232, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_t_3) < (0)) __PYX_ERR(5, 5546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5266, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5264, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337RMA, 0, __pyx_mstate_global->__pyx_n_u_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5264, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337RMA, 0, __pyx_mstate_global->__pyx_n_u_RMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[170])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_3) < (0)) __PYX_ERR(5, 5264, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_t_3) < (0)) __PYX_ERR(5, 5580, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5297, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5615, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5295, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5295, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339ROC, 0, __pyx_mstate_global->__pyx_n_u_ROC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[171])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_3) < (0)) __PYX_ERR(5, 5295, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_t_3) < (0)) __PYX_ERR(5, 5613, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5328, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5326, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5326, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341ROCP, 0, __pyx_mstate_global->__pyx_n_u_ROCP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[172])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_3) < (0)) __PYX_ERR(5, 5326, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_t_3) < (0)) __PYX_ERR(5, 5646, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5359, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5357, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5357, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343ROCR, 0, __pyx_mstate_global->__pyx_n_u_ROCR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[173])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_3) < (0)) __PYX_ERR(5, 5357, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_t_3) < (0)) __PYX_ERR(5, 5679, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5390, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5388, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5388, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345ROCR100, 0, __pyx_mstate_global->__pyx_n_u_ROCR100, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[174])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_3) < (0)) __PYX_ERR(5, 5388, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_t_3) < (0)) __PYX_ERR(5, 5712, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5421, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { PyObject* __pyx_temp[1] = {__pyx_t_3}; - __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5419, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5419, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347RSI, 0, __pyx_mstate_global->__pyx_n_u_RSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[175])); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_10); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_3) < (0)) __PYX_ERR(5, 5419, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_t_3) < (0)) __PYX_ERR(5, 5745, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5452, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5452, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[2] = {__pyx_t_3, __pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5450, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349RVI, 0, __pyx_mstate_global->__pyx_n_u_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5450, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349RVI, 0, __pyx_mstate_global->__pyx_n_u_RVI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[176])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_10) < (0)) __PYX_ERR(5, 5450, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_t_10) < (0)) __PYX_ERR(5, 5778, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5484, __pyx_L1_error) + __pyx_t_10 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); { PyObject* __pyx_temp[1] = {__pyx_t_10}; - __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5482, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351RVOL, 0, __pyx_mstate_global->__pyx_n_u_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5482, __pyx_L1_error) + __pyx_t_10 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351RVOL, 0, __pyx_mstate_global->__pyx_n_u_RVOL, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[177])); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_10); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_10, __pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_t_10) < (0)) __PYX_ERR(5, 5482, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_t_10) < (0)) __PYX_ERR(5, 5812, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5515, __pyx_L1_error) + __pyx_t_10 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_5 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5515, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5847, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); { PyObject* __pyx_temp[2] = {__pyx_t_10, __pyx_t_5}; - __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5513, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5513, __pyx_L1_error) + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353SAR, 0, __pyx_mstate_global->__pyx_n_u_SAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[178])); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_5, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_5) < (0)) __PYX_ERR(5, 5513, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_t_5) < (0)) __PYX_ERR(5, 5845, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_10 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_10)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5548, __pyx_L1_error) + __pyx_t_12 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[8] = {__pyx_t_5, __pyx_t_3, __pyx_t_10, __pyx_t_9, __pyx_t_11, __pyx_t_4, __pyx_t_2, __pyx_t_12}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5546, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 8); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -342239,123 +346852,123 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5546, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355SAREXT, 0, __pyx_mstate_global->__pyx_n_u_SAREXT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[179])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_12) < (0)) __PYX_ERR(5, 5546, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_t_12) < (0)) __PYX_ERR(5, 5880, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5585, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357SIN, 0, __pyx_mstate_global->__pyx_n_u_SIN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[180])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_12) < (0)) __PYX_ERR(5, 5585, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_t_12) < (0)) __PYX_ERR(5, 5921, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5614, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359SINH, 0, __pyx_mstate_global->__pyx_n_u_SINH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[181])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_12) < (0)) __PYX_ERR(5, 5614, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_t_12) < (0)) __PYX_ERR(5, 5952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5645, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5985, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5643, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5643, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361SMA, 0, __pyx_mstate_global->__pyx_n_u_SMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[182])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_13); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_12) < (0)) __PYX_ERR(5, 5643, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_t_12) < (0)) __PYX_ERR(5, 5983, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5676, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5676, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5676, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5676, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[4] = {__pyx_t_12, __pyx_t_13, __pyx_t_2, __pyx_t_4}; - __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5674, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 6016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363SMI, 0, __pyx_mstate_global->__pyx_n_u_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5674, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363SMI, 0, __pyx_mstate_global->__pyx_n_u_SMI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[183])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_11); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_t_4) < (0)) __PYX_ERR(5, 5674, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_t_4) < (0)) __PYX_ERR(5, 6016, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5713, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365SQRT, 0, __pyx_mstate_global->__pyx_n_u_SQRT, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[184])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_4) < (0)) __PYX_ERR(5, 5713, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_t_4) < (0)) __PYX_ERR(5, 6057, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5744, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5744, __pyx_L1_error) + __pyx_t_11 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 6090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); { PyObject* __pyx_temp[2] = {__pyx_t_4, __pyx_t_11}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5742, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5742, __pyx_L1_error) + __pyx_t_11 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367STDDEV, 0, __pyx_mstate_global->__pyx_n_u_STDDEV, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[185])); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 6088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_11); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_11, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(5, 5742, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_t_11) < (0)) __PYX_ERR(5, 6088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 5776, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 6124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5776, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5776, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5776, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5776, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[5] = {__pyx_t_11, __pyx_t_2, __pyx_t_4, __pyx_t_13, __pyx_t_12}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5774, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 5); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; @@ -342363,461 +346976,461 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5774, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369STOCH, 0, __pyx_mstate_global->__pyx_n_u_STOCH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[186])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_12) < (0)) __PYX_ERR(5, 5774, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_t_12) < (0)) __PYX_ERR(5, 6122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5816, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5816, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5816, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); { PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_9, __pyx_t_13}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5814, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5814, __pyx_L1_error) + __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371STOCHF, 0, __pyx_mstate_global->__pyx_n_u_STOCHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[187])); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_13); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_13) < (0)) __PYX_ERR(5, 5814, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_t_13) < (0)) __PYX_ERR(5, 6164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 5854, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(5, 6206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 5854, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5854, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5854, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[4] = {__pyx_t_13, __pyx_t_4, __pyx_t_9, __pyx_t_12}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5852, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 4); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5852, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373STOCHRSI, 0, __pyx_mstate_global->__pyx_n_u_STOCHRSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[188])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_12) < (0)) __PYX_ERR(5, 5852, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_t_12) < (0)) __PYX_ERR(5, 6204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5889, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375SUB, 0, __pyx_mstate_global->__pyx_n_u_SUB, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[189])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_12) < (0)) __PYX_ERR(5, 5889, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_t_12) < (0)) __PYX_ERR(5, 6243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5922, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[1] = {__pyx_t_12}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5920, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5920, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377SUM, 0, __pyx_mstate_global->__pyx_n_u_SUM, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[190])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_12) < (0)) __PYX_ERR(5, 5920, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_t_12) < (0)) __PYX_ERR(5, 6276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5953, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_2 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5953, __pyx_L1_error) + __pyx_t_2 = PyFloat_FromDouble(((double)3.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); { PyObject* __pyx_temp[2] = {__pyx_t_12, __pyx_t_2}; - __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5951, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5951, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379SUPERTREND, 0, __pyx_mstate_global->__pyx_n_u_SUPERTREND, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[191])); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_9); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_t_2) < (0)) __PYX_ERR(5, 5951, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_t_2) < (0)) __PYX_ERR(5, 6309, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 5990, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5990, __pyx_L1_error) + __pyx_t_9 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[2] = {__pyx_t_2, __pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 5988, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 5988, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381T3, 0, __pyx_mstate_global->__pyx_n_u_T3, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[192])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_9) < (0)) __PYX_ERR(5, 5988, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_T3, __pyx_t_9) < (0)) __PYX_ERR(5, 6348, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6020, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383TAN, 0, __pyx_mstate_global->__pyx_n_u_TAN, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[193])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_9) < (0)) __PYX_ERR(5, 6020, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_t_9) < (0)) __PYX_ERR(5, 6382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6049, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385TANH, 0, __pyx_mstate_global->__pyx_n_u_TANH, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[194])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_9) < (0)) __PYX_ERR(5, 6049, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_t_9) < (0)) __PYX_ERR(5, 6413, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6080, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6078, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6078, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387TEMA, 0, __pyx_mstate_global->__pyx_n_u_TEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[195])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_9) < (0)) __PYX_ERR(5, 6078, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_t_9) < (0)) __PYX_ERR(5, 6444, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6109, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389TRANGE, 0, __pyx_mstate_global->__pyx_n_u_TRANGE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[196])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_9) < (0)) __PYX_ERR(5, 6109, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_t_9) < (0)) __PYX_ERR(5, 6477, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6142, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6140, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6140, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391TRIMA, 0, __pyx_mstate_global->__pyx_n_u_TRIMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[197])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_9) < (0)) __PYX_ERR(5, 6140, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_t_9) < (0)) __PYX_ERR(5, 6510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6173, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6171, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6171, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393TRIX, 0, __pyx_mstate_global->__pyx_n_u_TRIX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[198])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_9) < (0)) __PYX_ERR(5, 6171, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_t_9) < (0)) __PYX_ERR(5, 6543, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6204, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[1] = {__pyx_t_9}; - __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6202, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6202, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395TSF, 0, __pyx_mstate_global->__pyx_n_u_TSF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[199])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_12); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_9) < (0)) __PYX_ERR(5, 6202, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_t_9) < (0)) __PYX_ERR(5, 6576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6235, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6235, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); { PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_12}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6233, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397TSI, 0, __pyx_mstate_global->__pyx_n_u_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6233, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397TSI, 0, __pyx_mstate_global->__pyx_n_u_TSI, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[200])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_12, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_t_12) < (0)) __PYX_ERR(5, 6233, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_t_12) < (0)) __PYX_ERR(5, 6609, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6265, __pyx_L1_error) + __pyx_t_12 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399TYPPRICE, 0, __pyx_mstate_global->__pyx_n_u_TYPPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[201])); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_12); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_12) < (0)) __PYX_ERR(5, 6265, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_t_12) < (0)) __PYX_ERR(5, 6643, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6298, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 6678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); - __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6298, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6298, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); { PyObject* __pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_t_9}; - __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6296, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyTuple_FromArray(__pyx_temp, 3); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6296, __pyx_L1_error) + __pyx_t_9 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401ULTOSC, 0, __pyx_mstate_global->__pyx_n_u_ULTOSC, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[202])); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_9); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_9, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_9) < (0)) __PYX_ERR(5, 6296, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_t_9) < (0)) __PYX_ERR(5, 6676, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6333, __pyx_L1_error) + __pyx_t_9 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 6715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6333, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[2] = {__pyx_t_9, __pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6331, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6331, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403VAR, 0, __pyx_mstate_global->__pyx_n_u_VAR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[203])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_4) < (0)) __PYX_ERR(5, 6331, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_t_4) < (0)) __PYX_ERR(5, 6713, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6365, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6363, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405VHF, 0, __pyx_mstate_global->__pyx_n_u_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6363, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405VHF, 0, __pyx_mstate_global->__pyx_n_u_VHF, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[204])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_t_4) < (0)) __PYX_ERR(5, 6363, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_t_4) < (0)) __PYX_ERR(5, 6747, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6396, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6394, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407VORTEX, 0, __pyx_mstate_global->__pyx_n_u_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6394, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407VORTEX, 0, __pyx_mstate_global->__pyx_n_u_VORTEX, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[205])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_t_4) < (0)) __PYX_ERR(5, 6394, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_t_4) < (0)) __PYX_ERR(5, 6780, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409VWAP, 0, __pyx_mstate_global->__pyx_n_u_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6430, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409VWAP, 0, __pyx_mstate_global->__pyx_n_u_VWAP, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[206])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6818, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_t_4) < (0)) __PYX_ERR(5, 6430, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_t_4) < (0)) __PYX_ERR(5, 6818, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6464, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6462, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411VWMA, 0, __pyx_mstate_global->__pyx_n_u_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6462, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411VWMA, 0, __pyx_mstate_global->__pyx_n_u_VWMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[207])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6462, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6852, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413WAD, 0, __pyx_mstate_global->__pyx_n_u_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6495, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413WAD, 0, __pyx_mstate_global->__pyx_n_u_WAD, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[208])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_t_4) < (0)) __PYX_ERR(5, 6495, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_t_4) < (0)) __PYX_ERR(5, 6887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6526, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415WCLPRICE, 0, __pyx_mstate_global->__pyx_n_u_WCLPRICE, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[209])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_4) < (0)) __PYX_ERR(5, 6526, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_t_4) < (0)) __PYX_ERR(5, 6920, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6559, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6557, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6557, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417WILLR, 0, __pyx_mstate_global->__pyx_n_u_WILLR, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[210])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_4) < (0)) __PYX_ERR(5, 6557, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_t_4) < (0)) __PYX_ERR(5, 6953, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6592, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6590, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6590, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419WMA, 0, __pyx_mstate_global->__pyx_n_u_WMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[211])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6590, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6988, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6623, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); { PyObject* __pyx_temp[1] = {__pyx_t_4}; - __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 6621, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(5, 7021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6621, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421ZLEMA, 0, __pyx_mstate_global->__pyx_n_u_ZLEMA, NULL, __pyx_mstate_global->__pyx_n_u_talib__ta_lib, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[212])); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 7021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_4) < (0)) __PYX_ERR(5, 6621, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_ZLEMA, __pyx_t_4) < (0)) __PYX_ERR(5, 7021, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; { PyObject* __pyx_temp[201] = {__pyx_mstate_global->__pyx_n_u_AC, __pyx_mstate_global->__pyx_n_u_ACCBANDS, __pyx_mstate_global->__pyx_n_u_ACOS, __pyx_mstate_global->__pyx_n_u_AD, __pyx_mstate_global->__pyx_n_u_ADD, __pyx_mstate_global->__pyx_n_u_ADOSC, __pyx_mstate_global->__pyx_n_u_ADR, __pyx_mstate_global->__pyx_n_u_ADX, __pyx_mstate_global->__pyx_n_u_ADXR, __pyx_mstate_global->__pyx_n_u_AO, __pyx_mstate_global->__pyx_n_u_APO, __pyx_mstate_global->__pyx_n_u_AROON, __pyx_mstate_global->__pyx_n_u_AROONOSC, __pyx_mstate_global->__pyx_n_u_ASIN, __pyx_mstate_global->__pyx_n_u_ATAN, __pyx_mstate_global->__pyx_n_u_ATR, __pyx_mstate_global->__pyx_n_u_AVGDEV, __pyx_mstate_global->__pyx_n_u_AVGPRICE, __pyx_mstate_global->__pyx_n_u_BBANDS, __pyx_mstate_global->__pyx_n_u_BETA, __pyx_mstate_global->__pyx_n_u_BOP, __pyx_mstate_global->__pyx_n_u_CCI, __pyx_mstate_global->__pyx_n_u_CDL2CROWS, __pyx_mstate_global->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate_global->__pyx_n_u_CDL3INSIDE, __pyx_mstate_global->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate_global->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate_global->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate_global->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate_global->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate_global->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate_global->__pyx_n_u_CDLBELTHOLD, __pyx_mstate_global->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate_global->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate_global->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate_global->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate_global->__pyx_n_u_CDLDOJI, __pyx_mstate_global->__pyx_n_u_CDLDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate_global->__pyx_n_u_CDLENGULFING, __pyx_mstate_global->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate_global->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate_global->__pyx_n_u_CDLHAMMER, __pyx_mstate_global->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate_global->__pyx_n_u_CDLHARAMI, __pyx_mstate_global->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate_global->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKE, __pyx_mstate_global->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate_global->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate_global->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate_global->__pyx_n_u_CDLINNECK, __pyx_mstate_global->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate_global->__pyx_n_u_CDLKICKING, __pyx_mstate_global->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate_global->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate_global->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate_global->__pyx_n_u_CDLLONGLINE, __pyx_mstate_global->__pyx_n_u_CDLMARUBOZU, __pyx_mstate_global->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate_global->__pyx_n_u_CDLMATHOLD, __pyx_mstate_global->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate_global->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLONNECK, __pyx_mstate_global->__pyx_n_u_CDLPIERCING, __pyx_mstate_global->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate_global->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate_global->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate_global->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate_global->__pyx_n_u_CDLSHORTLINE, __pyx_mstate_global->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate_global->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate_global->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate_global->__pyx_n_u_CDLTAKURI, __pyx_mstate_global->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate_global->__pyx_n_u_CDLTHRUSTING, __pyx_mstate_global->__pyx_n_u_CDLTRISTAR, __pyx_mstate_global->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate_global->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate_global->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate_global->__pyx_n_u_CEIL, __pyx_mstate_global->__pyx_n_u_CMF, __pyx_mstate_global->__pyx_n_u_CMO, __pyx_mstate_global->__pyx_n_u_CMOU, __pyx_mstate_global->__pyx_n_u_COPPOCK, __pyx_mstate_global->__pyx_n_u_CORREL, __pyx_mstate_global->__pyx_n_u_COS, __pyx_mstate_global->__pyx_n_u_COSH, __pyx_mstate_global->__pyx_n_u_CUMSUM, __pyx_mstate_global->__pyx_n_u_CVI, __pyx_mstate_global->__pyx_n_u_DEMA, __pyx_mstate_global->__pyx_n_u_DIV, __pyx_mstate_global->__pyx_n_u_DONCHIAN, __pyx_mstate_global->__pyx_n_u_DPO, __pyx_mstate_global->__pyx_n_u_DX, __pyx_mstate_global->__pyx_n_u_EFI, __pyx_mstate_global->__pyx_n_u_EMA, __pyx_mstate_global->__pyx_n_u_ER, __pyx_mstate_global->__pyx_n_u_ERI, __pyx_mstate_global->__pyx_n_u_EXP, __pyx_mstate_global->__pyx_n_u_FLOOR, __pyx_mstate_global->__pyx_n_u_FOSC, __pyx_mstate_global->__pyx_n_u_FRACTAL, __pyx_mstate_global->__pyx_n_u_HA, __pyx_mstate_global->__pyx_n_u_HMA, __pyx_mstate_global->__pyx_n_u_HT_DCPERIOD, __pyx_mstate_global->__pyx_n_u_HT_DCPHASE, __pyx_mstate_global->__pyx_n_u_HT_PHASOR, __pyx_mstate_global->__pyx_n_u_HT_SINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDLINE, __pyx_mstate_global->__pyx_n_u_HT_TRENDMODE, __pyx_mstate_global->__pyx_n_u_IMI, __pyx_mstate_global->__pyx_n_u_KAMA, __pyx_mstate_global->__pyx_n_u_KC, __pyx_mstate_global->__pyx_n_u_KDJ, __pyx_mstate_global->__pyx_n_u_LINEARREG, __pyx_mstate_global->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate_global->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate_global->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate_global->__pyx_n_u_LN, __pyx_mstate_global->__pyx_n_u_LOG10, __pyx_mstate_global->__pyx_n_u_MA, __pyx_mstate_global->__pyx_n_u_MACD, __pyx_mstate_global->__pyx_n_u_MACDEXT, __pyx_mstate_global->__pyx_n_u_MACDFIX, __pyx_mstate_global->__pyx_n_u_MAMA, __pyx_mstate_global->__pyx_n_u_MARKETFI, __pyx_mstate_global->__pyx_n_u_MASSI, __pyx_mstate_global->__pyx_n_u_MAVP, __pyx_mstate_global->__pyx_n_u_MAX, __pyx_mstate_global->__pyx_n_u_MAXINDEX, __pyx_mstate_global->__pyx_n_u_MEDPRICE, __pyx_mstate_global->__pyx_n_u_MFI, __pyx_mstate_global->__pyx_n_u_MIDPOINT, __pyx_mstate_global->__pyx_n_u_MIDPRICE, __pyx_mstate_global->__pyx_n_u_MIN, __pyx_mstate_global->__pyx_n_u_MININDEX, __pyx_mstate_global->__pyx_n_u_MINMAX, __pyx_mstate_global->__pyx_n_u_MINMAXINDEX, __pyx_mstate_global->__pyx_n_u_MINUS_DI, __pyx_mstate_global->__pyx_n_u_MINUS_DM, __pyx_mstate_global->__pyx_n_u_MOM, __pyx_mstate_global->__pyx_n_u_MULT, __pyx_mstate_global->__pyx_n_u_NATR, __pyx_mstate_global->__pyx_n_u_NVI, __pyx_mstate_global->__pyx_n_u_OBV, __pyx_mstate_global->__pyx_n_u_PERCENTILE, __pyx_mstate_global->__pyx_n_u_PERCENTRANK, __pyx_mstate_global->__pyx_n_u_PLUS_DI, __pyx_mstate_global->__pyx_n_u_PLUS_DM, __pyx_mstate_global->__pyx_n_u_PPO, __pyx_mstate_global->__pyx_n_u_PVI, __pyx_mstate_global->__pyx_n_u_PVO, __pyx_mstate_global->__pyx_n_u_PVT, __pyx_mstate_global->__pyx_n_u_QSTICK, __pyx_mstate_global->__pyx_n_u_RMA, __pyx_mstate_global->__pyx_n_u_ROC, __pyx_mstate_global->__pyx_n_u_ROCP, __pyx_mstate_global->__pyx_n_u_ROCR, __pyx_mstate_global->__pyx_n_u_ROCR100, __pyx_mstate_global->__pyx_n_u_RSI, __pyx_mstate_global->__pyx_n_u_RVI, __pyx_mstate_global->__pyx_n_u_RVOL, __pyx_mstate_global->__pyx_n_u_SAR, __pyx_mstate_global->__pyx_n_u_SAREXT, __pyx_mstate_global->__pyx_n_u_SIN, __pyx_mstate_global->__pyx_n_u_SINH, __pyx_mstate_global->__pyx_n_u_SMA, __pyx_mstate_global->__pyx_n_u_SMI, __pyx_mstate_global->__pyx_n_u_SQRT, __pyx_mstate_global->__pyx_n_u_STDDEV, __pyx_mstate_global->__pyx_n_u_STOCH, __pyx_mstate_global->__pyx_n_u_STOCHF, __pyx_mstate_global->__pyx_n_u_STOCHRSI, __pyx_mstate_global->__pyx_n_u_SUB, __pyx_mstate_global->__pyx_n_u_SUM, __pyx_mstate_global->__pyx_n_u_SUPERTREND, __pyx_mstate_global->__pyx_n_u_T3, __pyx_mstate_global->__pyx_n_u_TAN, __pyx_mstate_global->__pyx_n_u_TANH, __pyx_mstate_global->__pyx_n_u_TEMA, __pyx_mstate_global->__pyx_n_u_TRANGE, __pyx_mstate_global->__pyx_n_u_TRIMA, __pyx_mstate_global->__pyx_n_u_TRIX, __pyx_mstate_global->__pyx_n_u_TSF, __pyx_mstate_global->__pyx_n_u_TSI, __pyx_mstate_global->__pyx_n_u_TYPPRICE, __pyx_mstate_global->__pyx_n_u_ULTOSC, __pyx_mstate_global->__pyx_n_u_VAR, __pyx_mstate_global->__pyx_n_u_VHF, __pyx_mstate_global->__pyx_n_u_VORTEX, __pyx_mstate_global->__pyx_n_u_VWAP, __pyx_mstate_global->__pyx_n_u_VWMA, __pyx_mstate_global->__pyx_n_u_WAD, __pyx_mstate_global->__pyx_n_u_WCLPRICE, __pyx_mstate_global->__pyx_n_u_WILLR, __pyx_mstate_global->__pyx_n_u_WMA, __pyx_mstate_global->__pyx_n_u_ZLEMA}; - __pyx_t_4 = __Pyx_PyList_FromArray(__pyx_temp, 201); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 6652, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyList_FromArray(__pyx_temp, 201); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 7054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); } - if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_4) < (0)) __PYX_ERR(5, 6652, __pyx_L1_error) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_TA_FUNCTION_NAMES, __pyx_t_4) < (0)) __PYX_ERR(5, 7054, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_threading, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_threading, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) @@ -348883,42 +353496,42 @@ static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { const struct { const unsigned int length: 11; } str_length_index[] = {{0},{1},{1467},{1},{4},{6},{2},{11},{27},{33},{63},{29},{2},{10},{12},{35},{1},{4},{13},{1},{2},{2},{6},{1},{1},{2},{1},{1},{35},{84},{31},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{7},{46},{34},{34},{40},{54},{50},{60},{28},{31},{47},{28},{46},{28},{4},{32},{113},{37},{179},{50},{54},{57},{29},{22},{22},{18},{23},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{41},{35},{25},{33},{52},{13},{30},{30},{31},{23},{32},{35},{1},{14},{1},{8},{16},{105},{7},{6},{2},{32},{33},{30},{64},{48},{35},{9},{36},{39},{34},{17},{11},{17},{12},{12},{9},{15},{14},{19},{17},{15},{17},{21},{17},{2},{8},{15},{29},{4},{11},{25},{9},{23},{2},{3},{10},{24},{5},{12},{26},{3},{10},{24},{3},{4},{11},{25},{10},{24},{9},{23},{3},{2},{9},{23},{3},{10},{24},{5},{8},{15},{29},{12},{26},{4},{11},{25},{4},{11},{25},{3},{10},{24},{6},{13},{27},{8},{15},{29},{17},{6},{13},{27},{4},{11},{25},{3},{10},{24},{8},{8},{9},{12},{3},{10},{24},{9},{16},{30},{14},{21},{35},{10},{17},{31},{14},{21},{35},{11},{18},{32},{16},{23},{37},{17},{24},{38},{16},{23},{37},{15},{22},{36},{11},{18},{32},{12},{19},{33},{18},{25},{39},{19},{26},{40},{16},{23},{37},{17},{24},{38},{7},{11},{18},{32},{14},{28},{16},{23},{37},{12},{19},{33},{18},{25},{39},{14},{21},{35},{19},{26},{40},{17},{24},{38},{9},{16},{30},{13},{20},{34},{9},{14},{21},{35},{16},{30},{11},{18},{32},{10},{13},{20},{34},{17},{31},{15},{22},{36},{18},{25},{39},{9},{16},{30},{17},{24},{38},{10},{18},{25},{39},{17},{31},{15},{22},{36},{17},{24},{38},{11},{18},{32},{11},{18},{32},{14},{21},{35},{10},{17},{31},{18},{25},{39},{14},{21},{35},{9},{16},{30},{11},{18},{32},{14},{21},{35},{19},{26},{40},{18},{25},{39},{15},{22},{36},{12},{19},{33},{14},{21},{35},{17},{24},{38},{16},{23},{37},{9},{16},{30},{12},{19},{33},{12},{19},{33},{10},{17},{31},{15},{22},{36},{18},{25},{39},{19},{26},{40},{4},{11},{25},{3},{10},{24},{3},{4},{11},{25},{10},{24},{7},{14},{28},{6},{13},{27},{3},{4},{11},{25},{10},{24},{6},{13},{27},{3},{10},{24},{17},{7},{4},{11},{25},{8},{3},{10},{24},{8},{15},{29},{3},{10},{24},{2},{9},{23},{9},{3},{3},{10},{24},{3},{10},{24},{2},{3},{10},{24},{9},{23},{3},{10},{24},{5},{5},{12},{26},{4},{11},{25},{7},{14},{28},{3},{8},{17},{24},{32},{30},{17},{35},{16},{17},{16},{20},{23},{25},{24},{23},{13},{17},{21},{21},{16},{12},{26},{25},{24},{23},{2},{9},{23},{3},{10},{24},{11},{18},{32},{10},{17},{31},{9},{16},{30},{7},{14},{28},{12},{19},{33},{12},{19},{33},{7},{9},{3},{10},{24},{19},{4},{11},{25},{2},{9},{23},{3},{10},{24},{9},{15},{22},{36},{19},{26},{40},{15},{22},{36},{16},{30},{2},{9},{23},{5},{12},{26},{4},{2},{4},{7},{14},{28},{7},{14},{28},{11},{25},{4},{11},{25},{8},{15},{29},{5},{12},{26},{4},{11},{25},{3},{8},{15},{29},{10},{24},{9},{23},{7},{19},{16},{8},{15},{29},{3},{10},{24},{8},{15},{29},{8},{15},{29},{3},{8},{15},{29},{6},{11},{18},{32},{13},{27},{8},{15},{29},{8},{15},{29},{10},{24},{3},{10},{24},{4},{11},{25},{4},{11},{25},{4},{3},{10},{24},{4},{3},{10},{24},{11},{8},{10},{17},{31},{11},{18},{32},{7},{14},{28},{7},{14},{28},{3},{10},{24},{3},{10},{24},{3},{10},{24},{3},{10},{24},{6},{13},{27},{3},{10},{24},{3},{4},{11},{25},{4},{7},{14},{28},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{9},{8},{3},{6},{13},{27},{10},{24},{3},{4},{11},{25},{10},{24},{3},{10},{24},{3},{10},{24},{4},{11},{25},{6},{13},{27},{5},{6},{13},{27},{8},{15},{29},{12},{26},{3},{10},{24},{3},{10},{24},{10},{17},{31},{6},{10},{11},{14},{15},{7},{6},{15},{19},{17},{2},{9},{23},{3},{4},{11},{25},{10},{24},{5},{11},{17},{16},{23},{16},{18},{17},{7},{13},{12},{19},{12},{14},{13},{11},{10},{17},{10},{12},{11},{5},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{12},{18},{17},{24},{17},{19},{18},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{17},{23},{22},{29},{22},{24},{23},{14},{20},{19},{26},{19},{21},{20},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{18},{24},{23},{30},{23},{25},{24},{14},{20},{19},{26},{19},{21},{20},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{19},{25},{24},{31},{24},{26},{25},{20},{26},{25},{32},{25},{27},{26},{10},{14},{20},{19},{26},{19},{21},{20},{16},{15},{22},{15},{17},{16},{19},{25},{24},{31},{24},{26},{25},{15},{21},{20},{27},{20},{22},{21},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{20},{26},{25},{32},{25},{27},{26},{12},{18},{17},{24},{17},{19},{18},{16},{22},{21},{28},{21},{23},{22},{12},{17},{23},{22},{29},{22},{24},{23},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{13},{16},{22},{21},{28},{21},{23},{22},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{12},{18},{17},{24},{17},{19},{18},{20},{26},{25},{32},{25},{27},{26},{13},{21},{27},{26},{33},{26},{28},{27},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{20},{26},{25},{32},{25},{27},{26},{14},{20},{19},{26},{19},{21},{20},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{13},{19},{18},{25},{18},{20},{19},{21},{27},{26},{33},{26},{28},{27},{17},{23},{22},{29},{22},{24},{23},{12},{18},{17},{24},{17},{19},{18},{14},{20},{19},{26},{19},{21},{20},{17},{23},{22},{29},{22},{24},{23},{22},{28},{27},{34},{27},{29},{28},{21},{27},{26},{33},{26},{28},{27},{18},{24},{23},{30},{23},{25},{24},{15},{21},{20},{27},{20},{22},{21},{17},{23},{22},{29},{22},{24},{23},{20},{26},{25},{32},{25},{27},{26},{19},{25},{24},{31},{24},{26},{25},{12},{18},{17},{24},{17},{19},{18},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{13},{19},{18},{25},{18},{20},{19},{18},{24},{23},{30},{23},{25},{24},{21},{27},{26},{33},{26},{28},{27},{22},{28},{27},{34},{27},{29},{28},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{10},{16},{15},{22},{15},{17},{16},{9},{15},{14},{21},{14},{16},{15},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{5},{6},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{10},{16},{15},{22},{15},{17},{16},{13},{17},{16},{16},{14},{24},{14},{27},{25},{18},{17},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{14},{20},{19},{26},{19},{21},{20},{13},{19},{18},{25},{18},{20},{19},{12},{18},{17},{24},{17},{19},{18},{10},{16},{15},{22},{15},{17},{16},{15},{21},{20},{27},{20},{22},{21},{15},{21},{20},{27},{20},{22},{21},{6},{12},{11},{18},{11},{13},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{5},{11},{10},{17},{10},{12},{11},{6},{12},{11},{18},{11},{13},{12},{12},{18},{24},{23},{30},{23},{25},{24},{18},{22},{28},{27},{34},{27},{29},{28},{17},{24},{17},{18},{24},{23},{30},{23},{25},{24},{19},{18},{5},{11},{10},{17},{10},{12},{11},{8},{14},{13},{20},{13},{15},{14},{5},{7},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{11},{10},{17},{10},{12},{11},{11},{17},{16},{23},{16},{18},{17},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{6},{11},{17},{16},{23},{16},{18},{17},{9},{14},{20},{19},{26},{19},{21},{20},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{11},{17},{16},{23},{16},{18},{17},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{15},{13},{19},{18},{25},{18},{20},{19},{14},{20},{19},{26},{19},{21},{20},{10},{16},{15},{22},{15},{17},{16},{10},{16},{15},{22},{15},{17},{16},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{19},{18},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{7},{10},{16},{15},{22},{15},{17},{16},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{31},{6},{9},{15},{14},{21},{14},{16},{15},{12},{11},{18},{11},{13},{12},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{9},{15},{14},{21},{14},{16},{15},{11},{17},{16},{23},{16},{18},{17},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{13},{19},{18},{25},{18},{20},{19},{20},{19},{26},{23},{20},{11},{5},{11},{10},{17},{10},{12},{11},{6},{7},{13},{12},{19},{12},{14},{13},{12},{11},{18},{11},{13},{12},{7},{13},{12},{19},{12},{14},{13},{9},{15},{14},{21},{14},{16},{15},{8},{14},{13},{20},{13},{15},{14},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{9},{15},{14},{21},{14},{16},{15},{6},{12},{11},{18},{11},{13},{12},{6},{12},{11},{18},{11},{13},{12},{9},{15},{14},{21},{14},{16},{15},{7},{13},{12},{19},{12},{14},{13},{7},{13},{12},{19},{12},{14},{13},{6},{12},{11},{18},{11},{13},{12},{11},{17},{16},{23},{16},{18},{17},{8},{14},{13},{20},{13},{15},{14},{6},{12},{11},{18},{11},{13},{12},{8},{14},{13},{20},{13},{15},{14},{4},{11},{25},{6},{13},{27},{5},{12},{26},{4},{11},{25},{3},{10},{24},{3},{10},{24},{8},{15},{29},{6},{13},{27},{3},{10},{24},{3},{10},{24},{6},{13},{27},{4},{11},{25},{4},{11},{25},{3},{10},{24},{8},{15},{29},{5},{12},{26},{3},{10},{24},{5},{12},{26},{12},{24},{32},{30},{35},{16},{20},{15},{18},{19},{28},{17},{14},{17},{14},{20},{21},{7},{12},{8},{15},{23},{17},{8},{12},{8},{7},{8},{11},{21},{11},{8},{26},{7},{8},{13},{10},{15},{8},{7},{11},{14},{12},{10},{8},{12},{7},{14},{8},{11},{22},{13},{7},{17},{16},{17},{21},{15},{16},{17},{25},{28},{26},{21},{23},{14},{35},{23},{21},{23},{12},{7},{6},{5},{6},{9},{6},{7},{7},{8},{12},{20},{21},{16},{19},{20},{17},{6},{3},{4},{6},{5},{6},{18},{9},{9},{1},{6},{3},{9},{11},{18},{5},{5},{11},{12},{7},{4},{1},{6},{13},{8},{11},{12},{4},{13},{5},{6},{8},{9},{6},{12},{12},{12},{9},{10},{10},{11},{4},{5},{17},{9},{9},{9},{11},{14},{13},{9},{16},{15},{14},{5},{6},{6},{4},{4},{10},{6},{1},{2},{3},{12},{2},{5},{4},{12},{10},{11},{24},{7},{8},{5},{3},{4},{6},{8},{6},{5},{8},{3},{5},{6},{7},{9},{4},{9},{7},{12},{6},{3},{10},{1},{4},{10},{3},{5},{7},{7},{24},{10},{14},{11},{5},{6},{15},{4},{12},{13},{5},{9},{16},{10},{11},{3},{12},{10},{12},{9},{12},{4},{7},{8},{8},{10},{9},{8},{9},{10},{10},{15},{4},{4},{11},{12},{7},{11},{13},{7},{6},{9},{14},{13},{6},{9},{14},{10},{12},{9},{6},{12},{11},{12},{7},{13},{13},{7},{16},{17},{16},{7},{8},{8},{6},{12},{13},{12},{11},{8},{12},{6},{5},{10},{10},{6},{11},{10},{6},{7},{6},{3},{5},{6},{6},{12},{24},{6},{8},{9},{4},{5},{5},{7},{7},{3},{7},{8},{9},{10},{10},{9},{3},{1},{6},{12},{4},{6},{17},{16},{15},{14},{10},{11},{12},{12},{10},{12},{12},{12},{12},{9},{10},{10},{10},{10},{12},{12},{9},{6},{3},{5},{13},{9},{9},{10},{11},{11},{11},{8},{4},{5},{7},{6},{11},{5},{5},{6},{7},{7},{6},{4},{8},{9}}; - const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{162},{173},{173},{163},{174},{174},{187},{178},{163},{286},{223},{163},{187},{163},{163},{212},{174},{304},{163},{266},{187},{341},{167},{190},{261},{168},{179},{168},{271},{170},{174},{216},{232},{201},{217},{217},{209},{258},{225},{344},{209},{209},{209},{209},{268},{209},{209},{309},{237},{209},{254},{386},{255},{304},{353},{419},{255},{255},{370},{304},{287},{336},{255},{259},{359},{325},{310},{318},{324},{328},{328},{328},{330},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{297},{298},{243},{243},{247},{251},{193},{298},{297},{298},{302},{306},{306},{307},{308},{308},{308},{312},{312},{312},{316},{137},{138},{138},{138},{142},{151},{151},{153},{152},{193},{193},{193},{193},{195},{200},{444},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{260},{104},{277},{246},{247},{247},{247},{303},{248},{248},{249},{279},{250},{250},{366},{259},{261},{253},{254},{259},{253},{439},{276},{405},{391},{262},{346},{265},{262},{363},{248},{276},{317},{357},{287},{347},{288},{293},{427},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{399},{335},{335},{400},{336},{341},{494},{511},{436},{418},{361},{425},{458},{537},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{287},{290},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{633},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; + const struct { const unsigned int length: 10; } bytes_length_index[] = {{53},{279},{15},{18},{19},{22},{28},{22},{183},{194},{194},{184},{195},{195},{208},{199},{184},{328},{253},{184},{208},{184},{184},{242},{195},{346},{184},{308},{208},{383},{210},{188},{291},{189},{200},{189},{299},{191},{195},{237},{253},{222},{238},{238},{230},{288},{246},{365},{230},{230},{230},{230},{296},{230},{230},{351},{258},{230},{275},{428},{276},{334},{383},{461},{276},{276},{400},{334},{308},{366},{276},{280},{401},{354},{331},{338},{344},{348},{348},{348},{351},{53},{48},{80},{78},{372},{115},{121},{121},{138},{52},{318},{319},{264},{264},{268},{272},{214},{317},{322},{326},{326},{327},{328},{328},{328},{332},{332},{332},{336},{319},{319},{172},{158},{159},{159},{159},{163},{172},{172},{174},{214},{214},{214},{214},{225},{230},{498},{105},{23},{7},{13},{11},{13},{13},{13},{15},{18},{79},{260},{104},{277},{246},{247},{247},{247},{303},{248},{248},{249},{279},{250},{250},{366},{259},{261},{253},{254},{259},{253},{439},{276},{405},{391},{262},{346},{265},{262},{363},{248},{276},{317},{357},{287},{347},{288},{293},{427},{298},{297},{298},{311},{287},{292},{287},{287},{292},{316},{423},{287},{298},{334},{335},{399},{335},{335},{400},{336},{341},{494},{511},{436},{418},{361},{425},{458},{537},{383},{395},{389},{390},{394},{399},{400},{69},{363},{230},{231},{231},{231},{232},{287},{290},{234},{234},{235},{234},{281},{323},{324},{329},{370},{371},{329},{633},{371},{375},{377},{377},{377},{377},{378},{378},{378},{382},{382},{387},{388},{388},{275},{275},{275},{275},{56},{64},{48},{55},{285},{44},{17},{21},{17},{51},{143},{241},{497},{167},{36},{96}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (20374 bytes) */ -static const char cstring[] = "BZh91AY&SY\030\317\363\343\000 #\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`d\334\373\346\236L\300\000\000\000\361\313\313\200\000\232\035\357\034\364/y\264\000\304<\225\346\000\267#$P6\331X\r/t\250\342\227!\314w\000+\351}\357\036\257C\272\274\271\250\314v6\203\3341\266\017{\253\221\365\364^\336\372\233\010\207\236\356\017=\357[\213\217\021u\260\363pS\327,\000\000\000\035\257\0177-\275\355\336m\262V\224\005\306 \000\000\000n\301\367z\236\213\333\336\366\343\247\275\335\241\235\360\000v\221y\343\256\350\rs\254\350\256E\266\356n\3730\036\223\315m\327z\357{J\271\337A\275\345\322\326\350*\225^\262P\361\360\244\200\000\000\000\000\000\000\003N\222\"\001\247\307\235\032P\036O\256u\253|\001\276\254\233pI!\020\002\030\214\000&\023#F\223L\311\243M\032F\204\320FMF\047\243\323I\006jh\000\321\350\200zCOH%\0024\023D\320\204\321\t\224f\247\240\204\321\352oT\361O\323\375TmTzG\251\220\000\3204\320\320\31044\003A\221\241\220\006\251\357MRM&\201\032M\031D\375I\344z\232\t\2435=F\214\232\003C\000\214\203\010\000\000\001\2402\000\000\t4\221\020\211\2214\321\032b3M&\232eO\031M\2254\375I\3513\324\201\3524\000h\000\320\365\000\r4\3204\000\3204\021$\201\021\021OL\247\242=&\231\2444\362i\247\244\365=M\241\246\243\306\210\3150\000$\223\332LM\224\315\032daL\214Sh\332)\372\240\211$\020\023\0101&\230\232b2&\2152&\236\251\214\004$\332C\023L\206\200\006@\000\032h4\003\312\017\335\010I\t\0177\335\237y\371\323\344\371\276\2344\350\371\254\177\025\347V\225\3723I\276,\220\330\211\303M\352\315:\3433\213\371\370u\312p\225\ntB\230\3557\246\343\236\301P\215h\334\3327\335x\"\373\375k\306*\033\242\"\310 \310\nT\006\242 \324\005\004$A\030@\005\002E\023\331*\201\022\212\224\242F\000\244\210\002\310@j\322\020\013\020\001\022@)K \014U\204\021%J\020!T\250UR\"\226\210\212\027?3\335\356N\353b\277\251>\217\234{\344\302\007\311\375L>z3dU\213\217\353\214\371\276\203\350\300\032nV4^\366K2J>.V\001\302\313\027Ik\3048\227\253Y%\202\221j\310\245\256\324*\322\224J\331""\244\260\306\324\222Ha\302\313\002\252\226\270\342c\204\275\271\211|\372,Pe\241\214\231\355v_\343\353\360F\277\270R?\340\003\354\006\344\017\002\203\200\207\332\230`[\300d\330r\312\220\252\252\203\200b2\022\032\323&6\000\035\004\t\246m\251\254\222Bh\351\305+\035S\220\260\220\301\014\003Y\300M\001L3\027\233\255<\304R\302H\250\202\004T\031\004C\001\306\347]\317a\373\213\007\235F\257\360v\274\250\177l\017\337\364\366\353\323$\231\246\232\347\352\010{\257\355\2271\223.\270\271s\373\241\305P\304\243\347\214\257\352\336\343\"g\341\354\266\333\217\357\022\250\225\321\324a\250\245\267\376\372r\242\021\321mV\322\264\234\340o\360\034\231`\301Jc\036}R\367?X:\225\334\336\177\303\331\030\265\340eU)]\333\177\361\047r\367N\327\030\034\2422*T\233\177\214\261)t\354\251\263\350\250\302\207^\213\372\345\211\262\357|\"0\320EG\206pQ\3256\375\212\251\332t\244\030\027\025F\200n?\310\035M\256\266\300i\226\255FM\377\312\235\215o\223\252\203\314&$\267\371\222\331]\224\353\264\004ik\307\371\345+\323\215\340:\034\351!\036\252mu\205\263\237\262\226\301\251q7\333\251\252\244_\030\034[\341\277\320\030\213`\326M\216\242\3341\006\301l\212\241\376\233^\0315\243\256\225\354&\351Z\332\355\2620\277\352\271Ma\320n\006\277F{\216o}\227\366\213\230\324\212p\331\344\336.\214k\030Q\327o\365\301C7\006\3122\363\322\350n\\\221Ys~\326\250n\21226N]\230\261\242\237\354C\375\276\245R\023\206\026\347T]9\315\301\313\206\225\017\367!\356\275\205<\216\350\274\312N\312\207\325\377zJn\267\354\223%y\344n\022\3569!\261\316Z\213O\370t\325\226\212\n\177\306\227\n\3560\247KY-3\316\330_\333QQ\256\030T\321\316\266\034-%\265\206aL{\177\344\003\345/\211V\035\033\240\244R\264\351\247P\305\336\336\020lo\014_\225\"\345I\351\211tuO\371\243\246\366lr,\222Nt\367t\203\376\226\215\n\315\320\313I$\344S\014\337W\376\267\213{\237<\212\324\342\366\322\365f\031K>\341Q\323\245\312\047\356d\345\225O\335Z\234RwK\240\344\305,\356\240\312z\177\333\321\317$\343v\322e\323\005\2668\032\352\221FM~zvK.Q\237d\333.\\_\373\213\3317\253\r\201\322\235r6""\n\243Q\276\r~\362S\311,\245rq\005M\206nW\377\010\275\251V.\345\013\034\325\327\377#w\t\351;$`rk\213Z\024\243\177\351\005;\222\247\027\306)\261ce\006\317\342\001\371y\276\240\331\035s\016P\267\357\247ec\251Y\335\322\356>\373X>\200^\262\244X\336\003U\265\225n\245?\201\030\342\335\266M8Mso\345\007f);\366\033#\246\216n\377p\335J\\\355\035\030\311\322\013\313\333>\006lG`U\033\006\305\n\356\023\253\247\204\325\232\252\014o\r\333I\023\244Y{\036\021,\244_\255\231\223\006\374\025\306\376\003+\3712vK\3405\371n\244\343\266\206b\310A\340\252\224S\n\362u,\231\361\231w\316\032;\234\304\216\345\323\303\005\257\214\031J\230\243YZ\254\024|p\236\027\025|\325\222[\241\341R\370\220\234T\354\374\354\241\340\251]\366\210\332\036\224\317Tjn\2646\360\216\235v\275\317l\033A\034\342K\356\350c\243\325\264H\362\017%\344\227\221\352\235/E\352\275O\363q\363e\342\220a\305o7\001\331R\"\030;mE\247&>\275yue\235\313\242UGj\344\245\343g\306\266\303\256\335\251\\\375\233\346\3549k\347\325\177{\203\252\363\271\352\326\266Z\313\321KN\223F\236J\355\204H<\020\227\245\010\364\240\014\000#\205!_T\322\025\347\252~\261^:\001\350\"\034d\0362\247\351\024\363\324<\360\003I@\375*\274\201\003IG\216\213\350\010\032J\272@%P\025`\027\241\002\350\001fB\016@A\306\td\001z\000Z\205>\364\037\001_H\201\351D\370\n\376\021O\240C\336#\357Q\367\212{\205=\300>\341\017\240\023\334\t\367\252\374\350\277\254)\363\240}\351\007Z\003\254\021\245$\273P\265\241\035\202\016\324\203X#\267\263\263\263\233\235\276O\271\366\257\215\316:\263\365\374B\025\352\363\341(\212\235\213w\253\366\242\247p\262\370qvL\371\032my&^\376Pl2k\024\371\274\006\342\231#\300\374\t\003\340]\365\341:$\246\017\203\274\372Hu6g\260\265\256\376\020\204\355e\025K\361z\321\374 \354WS@o\0031\317V\2774\254e\2741\311\212NK\354f\356\276\225\342\252\213m\374f\030l\354\264+\250\257\204\370\325&\334\317KkW\245\232<$\350\353\201\271\333\264\241\032\2414\311o\222Tu\351c,,\333\305\027\300\274\322UI\332\225\n\370\047\\\346\330\264\3145*\225\216\3365R\217\275U\371\233W""\307\216\234-\247f\266\363\362\213\2515W}=S\301^\204)G\351J/\204\346\261^\223\322\2335\276?\010\307k\212S=\373qW\261\340;j\365z\343\264\236\236\006<\212\355e\315UO\000\276i\245\242[\242\356\333\332\213\341\016\272\255\347\006$eO\230:\346\314O\031l\273J\257\203\222uz\336\241\013\371\247$\332\315\337\301^\267\\\331\237\302W\223K\303G\200^\205\373\307\204\027\252t\333S\340:\006\335\270*U\227\223\177\006+\264\047\324\263v\3732Z\316\335S\357\333\247\034\3746l/\336\277\017\323\205\332\242\234\375\006\3478\344\237\025\353M\223\362?\020\037\211?\021\370\276\377\321\305\252\366Z[;y,\366\321\347\303OVNIZ\273\347g\213\236\347;\363\344\341\347\347\277\317V\226;\031\370\244\351\335\225w-\370\213\275\276\007%\007\332h]\334\353\337\216\355\306\317\266_\206=\332\0327\356\313\301\317\263\273\036\372\005\020!\311\006\320O\220MB\375\252\037b\272\321\371T<\250\373U\345\020\326\216\361w\020\033\004\266\211o\000]Im\022\332\205p\002\362F\324-\2506\202\322%\304\013Z\026\204\006 Z\004\257\244\027\304\035@\035B]@u \347A\316\006q\031\320t \316\205\231/\000;\304\272\304x\010\332\215\240h\rh5\244kA\255.\340;\004kA\334\203\264\026\264\273\205\257\273\350O\010xY\005D\214AV\020UI\020\001\220X\002*\n\253\010@\375\336\016{\274\375\016\257\327_\254^<\277Y\207_\254{\035=\361\203\237|\033\036\361\305\367\256#\007\274\227k\352\353_\303\364\305\365_\244\324a\n\376\023\351\367\224\367\244\031\267B=\342\356G_}73O}\017{\025\317\274\234\336(.\275\376\3727\275\372\373\363\266\3637\317\341\301_\246m\322\270\372O\302L\033C\376\017\301\3709\372_\360\243t\370n\371_\027\362\177\277/\267f\271\032\347\272Go~\311\316\356%\367\272\033\0353\276|Qt\220\355\331\256Sh\353n\270\373\274\220\036\224zQ\354^\305\355=\22779p\326u.\316\237W7\077\077^)^\315\273=\236\033\233_\267\303v|\356\215]\375\224""\350\355\360\323\274\006\324\330\272\300\326\272\303P\352^$\322\232\000\320\037Z}\257\330<\257\330?h\253%\300\213\010\250T\n\201\334\217\005|\360]\350\262\035\350\332m\332\274\003hd6\035\241\263i\341\336f\3609\315\275\350\350[M\272\373\326\303\300\332i\361\361^\205K\342\001%\330\264\3514=\375:uu\035R4\364\301\263\363y\271\271\274\334\271r~\363\310^\007\220y\036K]^\017\016\016}=\372\242\371\002HY\266\\&[-\334\270\250\\-X\271r\345\313\227.{A$\255\257X\217Y\361\001U{C\264;N\323\2640/s\017\350\375\222$\212\013# \222\022\t \242\262(\254\202\311#\"(\022\010\210\311\005\212\240\240\240\2521$R)\026, \252\221AEU\021d!\005R(I \262\022@E\376\356`t\346UL\332T\323\234\364\212e\004\237\267\005G)\304\361\035\000\320@\320\361\024\321\003D\023D7\276\303\031\217\325\357\375\273\363\034\004^\0348\033\272?t\034\021S\230\214RAQ\200F \030a\344<\202\344\016|\023\026\007:\363\216u\016\250\213# \256\204\212\243*\217\342\353\024\034\210\344@b\351T\323\322\246\201n\013\364&^\244\206\201\206a\316\340\202bAQ\rz\r\010.\275f8\230\262\332\017\3406:ACA\201\214\220U\035\272]\031\257\021\014A\317\212\231\210\022@\214#\030Ip\250\301Q\252\230:\004\3071x\030g\333\250\006D\204\007:\325\025\206t\304\307\3745N\206\014\220!%\024\300\305\305GG\036\316-U\252\345\343#\0144\251\244\323ZSH\226 \245\021J\212\022\251\010\301B@\312.\002\347S2\271\205\034\300\233S&F@\221r\301\304\303#9qG\277\264\247hv\022\"\262,!\222\030@\346d\346\336g\036\266`\250\272\2677C\216\233\3515\224\002K!\314\207\007N h\347A\266\027\214\253m\240\205\315\211\255\376c&\331\307\211\017\023\314\377\213b\206\303f\312#\245Er\272M\032\263\270!\216\2013q\026#\020\323\002@\277Y\237M\203\r\242q\304\314\263#}\344\242\243\035Jd]\241\254\035i\265\310\231\222\010\256_\361\346j\305\006\230q\t\241\320\013\241\320\241y\376l\342&\323(\016k\363\0109\234\310\231x\221\3428\327\035z\0042>\231\2723\033\000\233\010\210\047\030\203p\025)\200\302\006\"\343-\004M\320. n\202 n\202&C!\272~\326\330\347m\013\241\r\002h4""\006\224t\200\326\200\316e3\031\363\305Q\316\016qL\302\255\330\252\017/\372\262\031*\262\003\261\312q!\244\317\244v:4h\216wE\205GB8\306\000\340\014\211\211\020C\216T\331\034\020\014\047\007\002\010\211\234\230\0230r\237\333#\264\233\r64\n\216\201\034\371\215!\2378g\021\014\302\241\177R\232J\024\371s\026D 0\244\213\376\3547Fs\330u\343.#\024M\032\373\336\327\311#s\242_\010\370?\371\242\371fG\371\334Bc\317\273\356\373\263\311\260 FvS>\000\3754\240\210\230\n\374\375\177\037\003\210\224\027\\+9\375\242\214Ov:\277\n2L\037\247&\324\375z\r\223\025\251\367\235\362\252\351\020\227\204\224\255\034\240\276t\336\362k\373\036\333\226\206\014uX\320\271\272\317\335\325\345kg\322y\222G]\275\037W];\032\363c\212+Uv\336\217\373*\203Y\223\342s\026K\255\277Q\250\370\335\376L\325P\316\354\337\272B0\274\265\365\322\"\206\312\306v\375\352R\336\311s\261\203\226\3374*\324\206\317F\376\205!\232\274~M\215\377[\371\263]k\277D\267\365w\353\323\205L\302\277\323\265)\034w1\250TX\"\363@\377\351\271\307\231\025\375\216\r\351\310\276\330\224\327\327\277\352\372\361\310l\251\225\370;2)\322\234sJ~T\355\351L\212\231\236]\260\337\277_\231C\262\317V\351\267\261v\256\022\321\033A_\320f\025\303\346\305\226\0176\303\321]\273\307C)\264\221+\234M\036X\370\337\017m\214*.\327(\305\"\221\227vW\\\251\372\324\2179\373iu\352\330\343o@\215,\201/\365\316.\355#\014\314\302;\2745v\004HI\"rg\014\302\231\240\212\340\270\206Q\312\211\366!\3659\314\371\034L\201$\334\325\"s\241\232\350\031\023\013)9\343\245\303\235S\203|\256\031\025\\mK[8\246\335od\346CF\215\240s\232\246\220\346\226\204\306\257\266\020\2251\273\r\000*d\\\351\305\014\340\n`\000\271\2270e.\001S\322~\\\313\t\234\023?\361\377\030rd4\227\024\034qCA\0277\345\316\320gs\210\344L\246:\310\256\265\326\347P\326\233\013\337\301\243\227\276\200<\365\355\205\233\025\017e:b\222#\354Vko\241\374\005J \225C\200\034\037o\302$\225*`\323\347\211\026f~\3059\304\260V&\226\001X \026\322?o\037\315\256\306\352\336\000\207AD=~\277\257\036\220\005\335\271Nm\304Nc\371\336\207\223\241""\340o,\256\357\367t\010q\235\263\267q\270U$\t\033\021\030\211m\373\355\337\321R_\0166\251R\242T\304p#\200\312\373\330_T*\212\362U\204\027\212\342[\027\242\211M\303\253St\035X\355\367\346VB\036?\207\361\370}\047\323*7\036.q6.A\370=\276\022%\303\341\300\260\030\001\\\013\270\027\t}\005\362\360\213\302E\340\312%t\310\n\315\244[\240\203\024\3753\264\216\207\316d\027)$\\\321\257\300\202\362hS?\315\246\217\345T\343S\211\026B\202(\177\265$}\224\203U\313i\256\266\003\3729\271\374\"\345\263\350\264YV\2420Z\022B\264\270l\226R:\273m\211!Y\014\t+E\224\177\330\227\240>40\rTm\341\337\253\345k\177W\002\214\261\361\036E\247{\025\306\257]\025\2621]*\251!qVP\252U=\2460\273\303\205\307\233s\247k\376\013VS\026\354\250J,\274\373\325\245F\345\362\214\366f\034\312y\363\312k\220\024o\215\002\004\321@\2703\315\327|Q\271\020$6R\345\300\256i\030\270\013\252\355\310\027\013\2062\256z\312\246\340|\024\027\\\302\201y\222\236\237<\237|\266\256\2142\311\367\327\353`f\007\236\037;\0179\234,\3655UUU_G\266\371\374\377\370\236c\317!\353\361\233\r\373g\322MT\007\360\211\260\342\354\327^\217\310\252y\240)\325]\226\202P\047\240\3557\315\372KE>T\000\027\004#\245%t&\251uH\347\316J\014\314\214(tJ1\247\206t\325\335\336t\327\267\rCSglS\203\247^(\364\316M\031i\250\246\363\2279\036\224\327\275\017\262}\263\363~5UUUff\371*\346\251<\240\205\270!\"\200\005C\355\r_\265V8X7\312t\350\253\324\205%d=uUUUUH_\340\220\244?(\220@\363\363\362\000/&\323\377Bu\301\020\333\260\333\rh\207\250\350?\227g\256t\367\353\003[\255\036\201\3506\233\005?yu\277\371\354\362\201\345y\0014h\320~\227f\246\365\275o\023R\272\215J~\343\253\346\337\361\211\254\327\254\316\010?\3278k5\201\255\000/u\202k5\257\356\206\267\364\347\324)\250\324\016\240\361C\220\035f\261\326\210\272\224\342\007\247\367\203\337\254\375?\276\353S\213?6\335Z\205F\3405*\2170k\024\326\207\355.\200b\034Pf\225\344\027\221]A\310\377\361\rA\2515j\r@\352\016\032\324\324\234\320\035q\233)6\003\255M`\032\304,\333-;\245\216\326\341\030\244*J\210\222\025\023yP\026\3536\342\t\013""\356\3309\n\271r\345\023*e\023,;\312\374\001\235O#\306\005j\320\347\0030fC\366\214\375\347\354\345w\273\304\273Cr\350\365I\247J\232]+\236\006].T\321\337\240\0372k3Q-N\047e\235\353\240\342l\300\235\212\367\346\240\346(\251\351\025g\223\021vt\325Q>\036?\273\252\202\370\021`\037j\020=\364\374\007\2138\207\247\234\207\024\243\213<9\225\016\357\357\000)\020ERP\207x`F,\260\357\240\377\224\377\276>\243\312\022[\334\004\374\t\344lvS_\n?\200\256Y\204\210t\256L0\243\246$K]D\352\342%\222\353Q\225\364\227f\242\321-\215?\333!&\207\371\343\261\275\314:\365\262]\331\323\313j\333t\351\305{\374NHw\317\367h\374\244?p!\200\236(\226\022\203\270\234/|N&\215\342q(\204Z?\214^.\216\214\"\252\252\252\253\254$<\201\006oGq\017\345\033\357\363\022Od\207@\232!\336C\251\014 \235NiKJZR\322\226\224\264\245\245-)o\233p\365\277r\237\255\010{>\266C{\246\344=aUd\222I$\364k\342\004\210\347]Bs\211\251M\034y\323N\352Z\272\203p\t\223(\233\010\265\313Y\201*\226\325KUKUKUKUKUKUKU\244L\231\023.z2^$\023 \232\003\033\323\034i\276\016P\003\327!\315\343\205UW\227n+Hx\020\366O6\t\020\311\202c\242\213D\266\2523)\270M\002R\t\267.h\262\026\267\243R\250\tc\010\245\000\210\302\242\225\n\212R\213\n\310X\020\202VB\245d) \014`%d( a\314\220\344\200\337\t\273\017\237\036\264\010\024BZ\016nQ\302p\032\020gD\004#\316\220\034\307*\371\264\022\316\301\036u\253\\\351\304\366\047\262f\t\024\220\3621:xnI\t\240\263Fg\007;\326\037\373\312%\2458G\247L\306Es2\025\014\013\272\357\232M\263!\317\007\035\016\030(\n\014RM\020\315D:n\03384lv\31688\374\374\345\331\327[\336o\213\231\305\272Gn\266t)\326\004\016y\273\346\350a\002\314\325\340)\215\350\374\366%r\021}\024}\022H@\220$\245\017E\245\214daK\350\2245\350\372\017\235\347\211\020\374\307\264\047\033\217$\222I$fffo\030#7\231\306@\224#\023\321\024\247\036\177H\207\347\021\034H\217\241\306q\037\254\021,C\031\311\202&\272gP\206H\035\025\026K\001\362e\3427?\321\265{\"\221\032\311\305\215\0064\013\030\023yN\335\223\035,\344D\002\2220\t\034H8\201\206a(\023\323JH\302J\003\300\241\231\014;x\t=""\002XM\336hzx\246\202\036\325\206\271\2460\314\2460\317\202\230\3032\230\3032\230\303?{La\233\2460\317\362S\030g\325La\237~\230\3037La\236\3651\206|4\306\031\3151\206}\332g\222\303Z\262]QauLa\236\252c\014\3351\206e1\206y)\2143\212c\014\3351\206~Jf\3545\344\262]Qay\246[\014\362Y.\250\260\274\323\030g\024\306\031\332\230\303:\323\263\014\360\246\330e\242\302\375T\306\031\337La\235\364\306\031\341La\237\241La\236\024\306\031\335La\231La\235\364\306\031\337La\236\024\306\031\341La\231La\234\323\030gu1\206}\372c\014\346\230\303\360\361\020=^\260$X@\220 \320\236\262\202BJ_[fJ(\336yxu\371\204\270\345/\022\334\363\316%\300\230\251\351\023\005)\016\243\242\372\004\311\205\223\257\n/\023.q%\003\217\205\322I$\212\252\253\204;\300\370\210 Jm\024QE\024Rv\\&\221-\220L\247\\2\304\321\365P\207\234L\240\212h\200\240$\031\000\201\224\203 t\371;\272\347\200\242\212(\242\231\2232fLV\333m\266\333m\266\333m\266\333m\267\246\373N\235(\220\361!\301\r\370\220\3348\360\246\364\252\252\252\252\274v \300\350p\"1\021\021\021\021\021\021\021/]b\367\357a\022\037\235gr\023\262\252\253\334\376\223\213\276\331\333\262\366\355\256\352\336\0368^8\326\335\355w\275\034N/\034/\034kn\366\273\336\266\357k\275\353m\024L\321E\010\232(\231\242\212\0353v\026\267\377\027\303]\236\241\204\320\226\203\036\2605\344>\366\\\264\035\234\316z\257\345u\240\236\223\301\022B\020\010\022P\276\024\214\240\360\007""\016;_\373,\351\034q\210\322\"`\213`!\222.\344nN7\304$\177\244\034&\177\210K\ta,\047\314\047\314&S\337\353Og\256\213\2011\023P\010M\310\340B)\325\277\206 \240S\354-\367\225Wwwwwwwww\331\335\376\323\273\321\335\335\337\007Q\013\242!ED\200C\260!\"\025\00487\352&\255bd\300Lt\t\004\313\264\230\202\\&a5\350\314\336&\224\362\361Nd\031Ht\3528\220\340\203\203\215\032\321\255\032\321\341\243\327\265\301\333F\337\r\020\352B\354\203!\327\251J\301\343\314j\335\026\367{\025\323\025\3437*:\247Gal!\220B\036j\010* VI\341\341\017\036\324\324\360|\252\252\252\252\253lX\261b\242\252*\242\252,\266U\370}\316\024\246\330\260\332aV%ow\261u)k\330k\262D\255\356\366.\245-{\rv7\026\226\\a\356aJ_\026\033\014\212\261+{\275\213\251K^\303]\222%ow\261u)k\330k\262D\255\356\366.\245\3712\344+-7c2\345\266C,/\311\227!Yh\352\325\023\302>\367\314>!\343\342\207\217\177\333\350\364[\322g?\030q\367\250\372C\300H\306\020\211J\036\024\244\2124\237\0242_\275\2378O\271\367\207\3523\337\317p\206fw\220\314\313m\266\333m\266\333m\277\004\366\330z\275T\367\310j\303_r\2060\316\324\370\217\253\253\352]\005\307\032\326\265\255~s.5\255kZ\375\216\2774\010\022\237\241a<\263)\203E\r\\\265\341\345!\243\035\3255\311\301\374\277k\224l\246\311\214\0163\215q\350G\207\360LO\000\372Q6*x\007\211 \30222\024\257\210X\220\220\204\245\360\013\005\0366\352\023\320\t\303\260H\207p\2770\220\023\334%\204\240o\022\204\241Z\202\017p\220K\304\300M\326$\232\210m$\211\004\031\004\024\024\031\004\024\024\031\201\2737\242\023\027\334^\350\027E\201$+\026\021\321_\236\310\357\243\322>\260\222\260\275\310,\210\242\n\245\204\367!\202\304R\303\333\205\367=\377k\361*\252\252\252\257\242\222O\244!~R\010~\017v\2371\370\266\236\360\252\252\252\252\220\350I\022\033?P!\362\330u\353N\244\202$\016Hu\010t\220\302\036\232\322\346W\247\020\351\337La\236\232c\014\371\351\2143T\306\031\224\306\031\224\370Hz\273\216\335\335\325\302\346W\013i\226\026\231ai\226\026\231ai\226\026\231\351\375^\237\301}\356N\311\355w\275\375\341\334\212\237\023\334|G\231S\261<\341""\002F@\224\241\330%\244!!)<\355\210W\237\230\371\346\367\346\023\254(N\177\306\376\t\346\004{D\312~ LT\270H\206\002w\347\024\314$\024,\tI\216c\320&N\361#Y\204\202i\023%\302P\047~\2014\211Hv\357\340\205\367;\276\030_\303N\023\364\376\024QE\024QE\024_1\010i\222\013\026,X\261b\305\213\345!\325\363xr\020Hx\220\370\210t!\346!\263h\242\212(\242\212(\361\307\025\233E[m\266\333m\266\333m\266\333m\336m7\233N\233DL\302m\022\301\371D\275J%\362\224\367\t`JL\004\345\336\221E\024QE\027\316C\251\347\337\201\r\334\331\016=\211X\261b\305\213\026,X\357\314u\360\334\341\343\247\226\352\364z\355q\325:\204;K\276H09(\252\252\252\253\332|}\335\323\263\276\356n\257W\256\327\035S\236f<\357\233\253\303\316\327\035S\236f<\357\233\253\303\316\327\035S\236f<\357\233\253\303\316\327\035S\236f<\357\233\253\303\316\327\035Re\035f\222\320\325Y\242\253\25412\216\263Ihj\254\321U\326\030\231GY\212C\240\350\332DL\317h8\302\262y\3232\334z\342\322\347\013\047W\370f\264\370%\031\311\311\310\274\342|H\374\247\304\047_\320\257\210\257\304\276\306+\030\224\217\261\24221\207\001\230s\0140\354\3331\211\001lF\203yo\033\247\357\253-\000NS\306c\001\221$e+\3046\222$\224\034T\317X\047\337\322\236O\236\204\207\304\036\357\335!d5\r\332i\206|T\374\\\310/$-UUU_\276\020\375\022\035B\032\010|\245!\027d\030T\2122\014\203 \3102\014\235\233\325\035\306\345>s\370O7^\344Cz\047\010\001B\034\004*4\234\022=oH&\301 \047 \220\004\353\022\204\241=\215y\213\304\270\022\334\324\t\363@K\305\202\260Bcx\234u9\302t\004\274L\256\224\tU$\222I$\222y\004\315p \307\313BRu\333\010\235zi\272%\276jKD\251\nMk\221=\231\264\315\244\264\000\000\000\000\000\003i\261vF\201 \220H\214\004\314%)B\0167&N\2725\t\252\373%\376\232.\004\304M\242{D\354\004\342\022\341(H\t\177$B\200\022ql\325~\333\t\200\224\244\022\t\001>pI6\235&\323\2167\343\214vZ\252\252\252\252\252\252\252\257\311Y\360\033\315\214\324\334\377\247\210\317\234\345{\261\202\306\270P,B\306\310\031\2209\013\030\225\006\237K=\047/?ZvwQ\315\022\337\n0\211k\250\362\037\013\371\357\253\323\n\247\247""\352UUUU]\3447\366\351\370x\367\225UUUU\371f\210L\261\261\266]qjW#`ATA\361d1\365X\223\177\256\352\252\252\256\334q^\032\252\252\351\307\025\353<\236C^O&\373\373\2139\344\231\232L\214\223$\314\322dd\231&f\223#$\311\211\232L\214\223&&i27\030\227/r/z^\343$\31134\231\033\352\374\262&\320\307\334\004\077\077>\260Hx\353\327\212e\323E\350`\245\366K\371\250\264Kg\243\035\"m\262o\317E\205\264\345\206Z*\302\361La\236\024\227)\346\356\342\333m\266\333m\266\333m\266\320\207\263\333\311\337\204\030\035:C\257j{\001\016d\016}i\016\255\255\351\304:x\323\215\361[\3352\345mmmmmmmmmmmmo\325\367\211=3\325\t\363I\363\037\017\365\376\037~Hz\224;\310\311B\367\201Qh{\307\277\3576\366\362\327O7\013\223\206\024]\204\265\tBA7\r\030\200\023\312\t\025\220\002A\"\024\"u\202^\tD\200,\022\010\027\nP\220IB0\022\0204A \220`\006*\252\252\252\252B\360\252\252\252\252\252\252\252\252\252\273!\301\rGd=\314$9UUUUT\207jC\251>\235HN5i^\257:/B\026C\260AH\"$ \364\207vS\355m\316\362\206s\316l=:\226\3035\232`\2041\305\202\020\307\026\010C\034X!\014q`\2041\305\202\020\307\026\036\344\234\304\251^\2340F\007=\377\035\302\341k\360[\256$Y\022-9\001hOd\207+A[|v\376H\234\377U\035\352\2740\222I$\222I$\223\323\344@-\026\310}\255|\201\014\305UUU^N\010l\207\304H\002p\037\031\004\201\330\207jC\255UUUUz\375\277{\343!\330!\301\017W\312C\310I9\220\345zZ\252\252\253\342\020\321\016\342\037O\\!\334C\307Z\360\265UUUy\353\343\342\020\350C3\247B\035\210t7\265UUU\343\307\307\350\314\314\340\314\314\314\314\314\314\314\314\314\314wwwwww\201\r\010l \302\007}\264\246\266\020\334C\"R\342\031.!\210\320\207S\363D\024p(!6\220\020d\013\202\032\324\254\354\245\311irZ\\\226\227%\245\311irZ\\\227\327\364\364\233A\002\363\006,\030^\306%\352\365=\360\tX\314f?\301\363\341H1#\033\t3\204\261#j\037H\303\344;\270\002r\215\t\332\047\234\273\361\025\263\217\024\360\311G\010\217\346q|G0\211d\277;\001\001\021\010\276\"w\030\214b&\304\211\274n\037\233K\351\047\274\343\3236\236M\266\214%\240\000\000\000\000\000\007dB\335*\205\341\216\202\037Y\r\356*\227""\341U\334ww\035\335\307wq\336\261\004C\270\356\356;\273\216\3750!\260\205\220\300\334\357W\354!_\230\373*\253\317\010s\331\207T\037f\035Pz\261{\000\025\033m\266}PjR\217\002\3045\230\255f+Y\212\326b\265\230\255\345=\334\365\244\311\267\3052Y\004\036\031\350\376\347@\001\322\000u\312\027\254X=c\322&E\345\312\234\275T\\\246\341 \017\325\335\364O\266\021\244\372 \365\301?\013\020\201}\340\010`\005#p\010\227\000>\000\207\301L\216(%\372\372>\327\317\362\361\332r\202\367!d:w-2\331\334\357Y\234k\274\313\222\006\245\332=\020\355\256\312\252\257s\360\270\257C\010\310\035\351\315\273m\327\260\201\016\"\334W\034\267^$\004\202~\226\350\245\321\006\0040 \303o\262\033\356\303\252\017\206\026\250\006\005@\337}\365\224QAJ\217\274\026\231\244\321\024PRG\230&f\223DQAI\036`\231\232M\021E\005$y\202fi4E\024\024\221\346\t\231\244\321\024PRG\230&\2235z\"\212\nH\363\004\314\322h\212()#\344@\221\047\274\315;\222}\230P\220\267\257\002\300\270E\207$G\344L\022\322K\000 d\226\001\003#\002\\\025\253U\343\021sy\024\253\270\357d>\243\2112N\342O+\2415\316\211P\320\047\227\312&V\220\322\047\020\230^\t\020\316\373\257\357\023\314\"C3\310B\325UUU\360\355\334C\251\r\330y}\372y\273\310s\212\252\256\3358\272:\047R\322\332[Kim-\245\264\266\227\010m\207\034S\030g\215;\210l\207b\036\0049\3349\351N\376H08!\324\365(\374D\022\250\360\225F*1Q\212\214Tb\243\025\030\250\372\334>s\303\306\347\215\273\346xu\207\027\272\216~!\"\036\002q\334\230z\250\3749i.\331E\242Z\250\324%\304 \374\020\326\241\277\222\236\311\354\020\3728t\252\252\360\312\270\303<\366t\200\037A\006\020\317]\364\036\317\263s\306\335\367\361\2778\020M\355\340\33777n""\334\302kE\320k\314\333\214\337r\3505\306\366\343.\345\3345\231\204\326\214\335\273\355k\207\034\\\342\335\253M\356\346\355\336\035\211\362x\047\222\037\031\361\277\227\371\317f\275\342\321\367K\225)\251\304\222I\"[!\020\207I\312r\364\341E\343\200\371\331e\020\034\202\003\245\302Y\204\231\031\204\335\236}\321Q\314\343x\370l\360\210\3419\004J\215|\004,\r|]a\335\362\323\323\272\252\252\351\307\027\230\004:\220\356\353\2377\355\270\374B(\241\227\n{1\024\233\242\223\326E\047\265\255]h\332\345\244\271i\363\363\337\350\326\210\242\236.z\272\321\265\313I\244R(\244\341\024\236\322);\021N\251\235\2325\242w\242\223\335\"\223\341\242\223\222)\024RsE\"\212E\024\236DRn\212O\204\212Om\024\236\010\244\335\024\237t\212OQ\024\234\"\223\304\212vkWZ6\271i4\212Om\024\233\242\221E\047j)9\"\223tRx\"\233\366\352\353F\327-\047\010\243\333\253\255\033\\\264\234\"\223\222):\"\223\251\024\351\335\253\255\033\\\264\237\021\024\235\210\244\354E\047r)>\");\221I\326\212E\024\235\210\244\354E\047r);\221H\242\223\204Ru\242\223\306\212N\021I\336\212N\344RrE\047DRu\"\221E\047DR(\244\361\"\223\333E\047\255\343\325\326\211r\322w\242\223\204S\237n\256\264mr\322x\"\223\271\024\361g\251\243Z\047\252\212O\004Rw\"\223\314\212N\244RsE<{\352\353F\327-\047\221\024\233\242\223\314\212O\022)\347\317?\207\317,\3713|\215\355\346s\334\212)<\350\244\362\"\223\265\024\232E\"\212E\024\235\350\244\351\264\235gV\346\373\223\271\024\2379\024\343=\307M\356\373\233}\272)r\335*\222yQI\370(\247\177\032\272\321<\250\247n8\244QI\336\212E\024\333\312\212r\210\246\327-%\313I\326\212NH\244\346\212M\321N\2765u\241\210\246\327-6\341\024\236dR\\\264\212)9\242\223\301\024\357\3164kD\363\"\223}\272\347\2237w\334\236\341\024\234\321I\326\212O:)7E&\221I\330\212OW\250\352\334\337rx\321OW\303WZ<^\246\256\264mr\323k\226\223\265\024\212)<\350\244\345\333\253\255\037\017\034S\313\356uu\243k\226\223\265\024\235\021I\315\024\236TS\217F\256\264N\021M\256ZO\212\212O*)<\350\244\355\366\377#_\225\353N=\366q\256g\207~\256\264mr\322x\"\223\204Ri""\024\236\204Rx\321I\343E\047\010\244\363\"\236\215\317Ws}\311\315\024\235H\244\363\242\223\255\024\347\236M\032\3214\212N\244RrE\"\2123i\350\233O?w\033m=\215\362\035\370\321\306\211\320&*b$\003H\235\275\224\t\237,\222I$\221UT\206\264\252\252\252\253\271\320\207xA \360C\337\022\220\3468\363\211\311\216|\025t\211\004\316$,&\203\253W\034\r\233\030\300\207F\0044!\201\006\225\t\243\030\020XP\2151D@f\205\010\363ca\005\205\010\352\306/q\016\230\3327z\324C\250\207\361Q\021\013\241\262\206\335\030\200\002\206\372\306\265\247\327\250!%\211!\234-ZZ\3174jR\217K\010L\304\314\274\310\205\246&e\346\215JQ\351 \2073\0232\363F\212(\237\024\265\177\373Y\231\234\265d\344\037Y\3541\272jg\355\001\032CJKHl\022\005\326\013i\r\365\372\370;\020RH\201\313\274\220\265$&B\353Bc\2557^ \230\211\374\323\255L\302X\037H\235\376\375\376\210\036\217U\027\336\2067\001 \220>0\354z\210sHjC\010_\240\207\201\017\273\245UUUUUUUUU\3617$=\210#\357\220\201\206BBBBBBBP\036\3577\325\241\004\036\300\005\354N\236\303\261+\331\256\372\3134\215\360J\"\014+hJ\360\222`\013\310\006\013\310k\325\241\363\020\363\373\350{\376J~\017\303\360P\207\271\213\324\205\252\252\252\253\2516\223\\d\234{\004\367|z\375-\266\333m\266\333m\266\333m\266\333mw\363Q\006\245\224-\371lB\006\0044mv\201\nYB\316\310\352\017,{\320\2048\351\322\226\322\332[Kim-\245\267&\240@\231n<:{\307\027\202\362.\210\025\325u\013*\221(\024\356W\010\022\003x\344\254\326\no\314B\212\212\217D\231X\361\274\202\316\352\232\347:\307D&\222\216\314a\333|\263|\032\201\355\025hG\351u\246\243\244\366z\362\3131\214\353\035,sh\355\275\353M\374\236\277\235\307_\275\030\307U\355\214G\034W_\263\034\370\341c\230\326\t)`E\200\204P.\213\227>\313\013l\n\026\021uD\363&O\313\370\017oO\355\333\0245E\314E\314D\006\326\321\047\331q\236\035\002D\027\010 \232a \"j\213\220\325\267}\300}\3732%E\014\023\013\334\362\177\204\214\245=\336\226\276\275\\\204\366\267\311\361i\276?8\330\271\344\306\035\267\303\306\026\"k\233z^\331\3713b\366\316H\266\361\266^jI\257\213]\266\214W\214\363\327{\367\245\027\\/}\250u\353EI\212\374\221\347\335\265\362F\263|\032\201\355\025hG\351u\246\243\244\366z\362\3131\214\353\035,sh\355\275\353M\374\236\276\274u\371#\030\352\275\261\210\343x\2473\231\253\236e\250\260K\367#)N\227\265\361\263\220\232o_-7\263\3126.z1\207m\360\361\205\210\232\346\335\357l\372\346\305\355\234\221m\343l\274\324\223]\365\333h\305x\317=w\277zQu\302\367\332\207^""\264T\230\257\254{;\266\275cY\276\r@\366\212\264#\364\272\323Q\322{=ye\230\306u\216\2269\264v\336\365\246\376O_^:\372\3061\325{c\021\306\361Ng3W<\336\001\304N\202\n\"D2#\252\"\016^\213R\317\334\215\222\234\342\327\316\234\204\335\275|\264\336\317(\330\271\350\306\035\267\303\306\026\"k\233y^\331\365\315\213\3339\"\333\306\331y\251&\274\265\333h\305x\317=w\277zQu\302\367\332\207^\264T\230\257\254y\367mz\306\263|\032\201\355\025hG\351u\246\243\244\366z\362\3131\214\353\035,sh\355\275\353M\374\236\276\274u\365\214c\252\366\306#\215\342\234\316f\256~\337\300\310\226\025\021\000\247\260\352 \342\047\240\202\240\204*\000\216\242T\241\266\027\006\317\350G\tN\371\2668\350\344\047-\356\366i\275\276\310\330\271\331\214;o\207\214,D\3276\364\275\263\356\315\213\3339\"\333\306\331y\251&\274\365\333h\305x\317=w\277zQu\302\367\332\207^\264T\230\257\272=\027\276\275\321\254\337\006\240{\305`u~\227Zj:Og\257,\263\030\316\261\322\3076\216\333\336\264\362\341\353\356\343\257\2721\216\253\3338\2167\212s9\232\271\346Z\213\004\277r2\224\351{_\0339\t\246\365\362\323{<\243b\347\243\030v\337\017\030X\211\256m\336\366\317\256l^\331\311\026\3366\313\315I5\337]\266\214W\214\363\327{\367\245\027\\/}\250u\353EI\212\372\307\261{\353\3265\233\340\324\017x\253B?K\2555\035\047\263\327\226Y\214gX\351c\233Gm\357Zo\344\365\365\343\257\254c\035W\2661\034o\024\346s5s\332\250 \252\"t\004\024\021\025\375\276\310\020\024\315\226\206\037\314\215\322\235\266\265\365\303\220\235\033^zo_8\330\271\354c\016\333\341\343\013\0215\315\274\357l\373sb\366\316H\266\361\266^jI\257=v\3321^3\317]\357\336\224]p\275\366\241\327\255\025&+\355\2175\357\257lk7\301\250\036\361V\204~\227Zj:Og\257,\263\030\316\261\322\3076\216\333\336\264\337\311\353\355\343\257\2661\216\253\333\030\2167\212s9\232\272\010\036dX\202_\271\031Jt\275\257\215\234\204\323z\371i\275\236Q\261s\321\214;o\207\214,D\3276\357{g\3276/l\344\213o\033e\346\244\232\357\256\333F+\306y\353\275\373\322\213\256\027\276\324:\365\242\244\305}c\330\275\364\373b\327\365]P""\213\304\300\352\375.\264\324t\236\317^Yf3\266\330\351c\233Gm\346\264\362\341\353\353\307_X\306:\257l\3428\336)\314\346j\350AY!\\\263h\267\330\373\035\344?\262JB\204\2304\210\311\036\241\356\303\206C6\326\t\254\353y\372\246)i\336\3477L\305\307\2710?:@?\031\372\274l\204\010\250\251\262i\262\200J!\224\313\262}\225V\272\217\223\022k\354\224\274\376?\321\267\351B\336\004\020\022\232\240\253\266\223\224p\224tL\202\256\025\335@!3\302\320\244\t\372*\203\212\007*Z:%\302o`\255\341\367?K\311\363/\303\232R\025\024QT\244\363\234b\252\252\266\0242LQ\232\020t\260\255A\031\031\233\021\322\274\355u]\256*i\373E\010\214\030\334\252\350\225\001\364v\376G\336<\177\020C\341\367\037tD?\"\371\245\347\347=[\303\225\340?b\301\222\020\036H/)V\013\352+\016\303\374\202\307\007\001\352\215\216\024\222\215\204\0033\023J\032\247$n\202\240Dv\233\007^\363un\030\206\352\242$A\324\003\312\243\0249E9M\251\310z\334\203\362\274:\206/\262EF?\207\232\034\272\360\306/\302\310\2075\220x1\"6|\352=Bi\277\333\204\047\265\367\031\364c\376\227\002M\227\230\031\221\372LN\370\340\237\361\257n\037^\314\302\351\002\354\220\316\352\325d5\3437\246\233iJ\366\324$6#\372\200\3010u\356\244\341:-\351k\344o\357\372\317~\004\010\221\030g\231\200\0043\262E\006@B\006\275Y7\313\242B\"DK\341\252V\261\311\216\216!\261\216y@\357Q\007\347O\253\037\244+!h^\371\007\332qBsk\313\2177\357\353\342\363\326\231\256BL\347\320q\236N]\234+\352\016`\201\0300\221t\203\323\321\360\"3\334k\263\231\223\310f{\036|\047Nj\023\332B\370\036\002\253s\247+n\244\212\215\246c\025\177\301\027\350\241\303\374\000ty3D\262*\010\200\232f\356\"\264h\t}\360\276E\333\305\306\333\005\373\265.k-\302k l\212\362\371>\223\r_OX\222\265oT\002\225\323@\\\024E\274SU\003\343Rd\004p\330j\266\227Z\r\004\016>h\203\265\035\303\004\226\350|\315\326\335a\234\351\341!\345\204I(B\350Ry_6\254\340\303\3156\361i\220G\tD\047\215\216X\265x\250\344\216\031\262\212^7(\226\271\262\226\n\013\0211\020\306\370\320\250\343b\353\360\227\226\364\000\374\000`\207\300\250\201_\017\005~\343\306y*Hx""=\347\233\346=\210\037+\025\275o\307\331W\231\260#\366Q\373\037{@\031\217\274\022J\014\363\022\304\266XO\355s\247\003\200\225\253Y[O\014\036\333\200\261$p\221\236$\003\036,\200S\036Lzx\027\204\216\024\244\000\355P\217k\303\253\312F1\220\010\037/\216\020\205\274\246\020n\047wOn\032W\315\0372\271J\320\312. \327\275r\332\323\033\261[\027g\r6\027\355\342\250V\213\220f\025G4\326\371O\230\207\232T%B\214E\035\277\006mI\255\237\304\317\247\316\363\223\247=\203\312\206\372\3345\336\213\336\014G\302BEc\307\271\240f3qq,v\271qzT\324\030\025\3222\221\001\354`\305\\\202\226\367\360\272dGu\342\371\020{\204`\275\312\300\356\r\3348p\242\206\325EGYM\262\010\232\224\306\030\n\341GC.@\201(\310@\236\257w\311U\216\030\037\256b\007S\363n|\352 \340h\375}\031\214\345\356\233g\266]R\3511\321\206O\351[Jx\271\212\277\273\224\3232\275\310\342\021|uz\365\3441\315\244\233Z\333\364\336g\010\206$h\320@\373\271(\023N\213k\317\221\234\206\273\032\243\272\032\302\362\2538\024i\245\2658C\033R\337xVl!E_\020\241\360\360<\021\360_6A\035F=\025\3222#\031dxeT\230\021\004\2619\343<\343g\202\260$\261\244\223\001\215\003\0060o\217e\213\370^\334G?\023=A\261\r\275\010:.\314[\2039O\267\014&%\336\342:\250\337.m\025\312\316\031s\202H(\214\355M\022\346u\314\227A\323\244\344\362\3376\267}\371\000\031\200\000\001\000\000\000\314 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000f\020\000\000\000\000\000\0003\010\000f\020\000\000\0003\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006a\000\000\000\000\000\000\000\014\302\000\000\000\001\351\337\025\000\000\000\000\000\000\377\253h\000\000@\0030\000\314\000\000\000\000\201\230@\000\000\000\00330\200@\000\000\000\000\000\000\000\000\000\000\000\006\332\031\231\204\002\000\000\000\000\031\204\000\000\000\014\300\010\000\000\000\031\204\000\000\000\000\000\000\000\000\000\000\000\000\000\0007\222d\345\335\327\256oX9\255\346\265\223\031F#\034\331\362\272g\206C\014\244\201\367\221\000G\363\376\304v\337""\233E\0311\343\r\372nm\377\273/\323\224g.\3069\025n\271qU?;2}\253\236wk\255\002#\312\356R\364\326}\310 \346\277\023f\235g\336\\\233\260\313\237\344Z\266D\346n\013y\246\034W&\264\020a\201\271u:9|\2321#mz\r\034_.\273\261\310d\311\305T\252\202\006\317\211\211_N\207\277\364\241\352\215\260\266o\\\213\314\047D:\336#\225:r]-\022\320\016\374\226t\322\302:\230\2502\2471\361]\321_\217\266\260\035\341\030J\216\210\225\307\226\310\227.\027O\207\032v#\356\235\021 t\017r\200\233\336C\277\334\370\240\277v\354S\216B\031G\340\361\365|\372\355c~\313\265\2312\342\026\222D\335\206%\330\020gK\305\365\345\316\206\275\203\237\270\355\206\276\317\262y#\247\333=x\255\032\267Z\312\214\212\252\242\n\257=m\002h\324\317\034\231\311\251\3103S\302)D\333\344\335\311\322h\017S\247\271R\321\276K\326\211\3324$h\320h\352\200 ]\376i\333\013+HA\032\231\341\246\213\003\325\347,\335qRd\216\201\001\324\220\014\203\250C\035K\030\037\033\027L\367\206\313m`\204\0355\231\234\0070\3300\222\357!DB\270\204\004\371n\324\020fO\257\3631\027P\250&\200\3238\034e\223V\353\306\334R\2110;\\\226\311\022\"\010\345\033\254\353\306\023\010\226\035b\014A\264\0260\016\343\240\275\320\234oj\027\313\020\360\325Ou\212l}\361\347D\356T\210w)\016\341\374\236\364\003\357\241#\351\350\\\214\024\024,<@\343\355\373\253\222\332\0358\343\332u\005\240u\t\231\226\204\311p[\030\367\300\363\237\036\036\333\223S\227ATB\243(\252\222I@ZQO\307\333\333\332<\346Hul\016\233/\047\240\240\353\224T\035\342\275\n\260\016\201 t\007G\1771\017d\310&!}m\267\317c-we\343\315\315\2069\334\003\341\350\362\200_\022=P\326\353r\227\245\314(\203u\324\026::\025\365\212\217\254G\326\036\265]\277\003\335D\017\207S\312\\\275\206\2320\246\024\024\035\"\235`0N\264gY\371\276\272\375\201T\246\307\227x\370\022\365[\r\007\333\233\257\273""\324D\251\241s|?\345\275G\207\370\237\325G\250\254\204\226\032\3479>N\355\322\302\225\047\325\360\354\236\325&\364c\335\372\312#\370\323\\\026r\316u@\320\306~\237];\321\340\364\357\367a\344\331\000\224\004,\250\200*\257\221_\024(\263\327\340\203\261\t\260y\n\n\250t\265\277~\267\220\232.#\344\347\363\031\202Cfs\003\203\203\327Z\335\327\371\002\341\3111\310U\370\351v+I\305At\013\227G\320}\000\373\205=\301\356}\302\047\271\020\363 \324%l\325\3207^j\304\005\227q9\021F\361\240\320fL\3600\210:\001\"\036\360a\3572\207\217\216\365<\220Gp\246\356d\343\001\362\037\017\206\263\230\263\310\351Hrj=\355\275\230\0261\253\254\361\210\362\202\3049D\234\270\231\304FET\355\247\226\253\231\217a\333\335\343W<\352w\031L\266T\312@\220\2449+\351$\205`\025\202\370\213)_/\002\267^\214\3277W\205b\351\022Q\374HW1\364\026\2262e(\371\276\031\360g\224\027\250\026#\324,:\216\267\304E\017m\2500\202\310\020X\260\000\005\222\002\305\213\370\374@\371\267\01744q\207\256\317\237\321\353p\243\013\305\n\304:Z\214;{%\215\016bK\3174\272o2f\277\047nL\027!\223E\235\010\314w\330\014\305\215>}xjM\016E\374\246\262\310\251Q\021B\303m\211T\334\025t\271\272\207\264d0q\017\n\375\224\020sh\364{~\2142\023\000\314\353\273sYp\3314\036\273\317\341\2723\321o\224)s\314O:\006\303P$\047\234\217\243%DH\336\222\347\314\342\003\022\316\221\210\014J\236e\200\230\\\244E\005\315p\234@|\224\366\"y\305;\201b\367\001;\216QT\035,w\310t=3_Iy\323\356t\351\363u\353\370\375\274:h\347\334\274\336\323\252\366\262T=\016a\310\230`ZI\302\240\206\217(\306\250\311\365\027\343\047\327l\203\315\354\247\324Ck\353\217\260\367\251{\246\020i*ZR\343\243\002!\350/O\223.\000\267.\241]\013\267B\3512\321\345\266\311S\022s\0168\250\317|\243\206\016P\r\361\"\372\004\300_\001\213\344q\327\2543:\363\330o\331\333Ip\0070\317oWL\t\263 @\224\323a\t\014\210\225t\022\204A\213\325j\272\346\214g@ty\315\032\251\306\036x\001\\\233\030y|U|G\315\240V\241\255)O\316\202\014Q\00767Y0\372\317Z\371n\202\030ek\221!\002#\301ZJw\032\257\215\234\200\222\033d\2101\234\222\310n%""\271\320\320\276i\205\016$c\345,\027c\302\362\203=\243\352\315\226\301\2406\334r\314\275Gq\246\306X\222\004\030\250H\322i&\370\3435\211\256\025\2060\205\371\025 \026\264\t\tCP\220\270\252.\003\361z[j\346\335\352\277\303n|\371\364\r\265\363\005\311\340\047\271\360\360\352<\200\236\267@z{+\232\356z\3644\035`=\3520^\361a\336\363\375\336r\215\304jC\213w\025T\tk\254\035<\3758\034\217$\032(\372\246d\361\"\034\241\355\224\201hr\037\235+\r\000}\346\255SExi\3324\237\2204\3618\230\277\020X\3255\303P\230\301K\242\256k\270\271v\210\203~\224\333\300Bb\211\312\247*\006\025L\263\374\363eN\37077=>T\004\004\277\263\342\372\326\r\271\357\0342W\2431\261;\323~f\352\236\022\326\251\t]\016:\265\34548ccs\2521\274\r\032\202\330\352\363\360\032!\037,*p-\220zh\331y\365\231{`\364^\274Wx\371\326\376\305\374\317o\177\315\251u\211\371\345\354g\317$\213z?\307Su\366\265\341\217r\307\302\266\312\312\212\273Z\037\247F\364A3\356\352~1\022-\361\3100\036B\242v.Bz\0325\310\013\261$\205\231#G.\212\007\010\322\222\246\0268i\271\303\235j&\347\221\274yr\244\031\301\014#:Cg\350\025\246\253-\246\336v\302\213\271\232Y\302\251\267\010\350\0304|\350 \350=bx1\370\217\314\202\014\210 \305\020{dKx\360\340\216`\243M4\305e\306Bl\231\037\037\266\314\216\014n\035\227\246Nm\352l\250\321I\363\346v\213w>\023\331fn\357)\360\327\341\363A\247JV}\232\350:\035>\312\034\047\300\245\205\376~\336\201\317\305l\026C\"g\317Y\372\002\t\252\034\230\026y\271b@\204\221\222AE\200\"\261b\3021Q\210\257$\236\270jr\022C4\331x\0349\363Q\334\234\214\370\323\247U\025v\2121\307!s\230\023\265Q\204p\210dp\243,\361-\356\310\247@A\026c6\325\311\312r\241\354$\300\027\200\215\350\003\202\336*\363@L\005=A\307\034EG \317F\217\247\200Ft\325\271\307\324\276\377<\262\\\006\2358\235?v\010\022\202\242\311\250\321{\336\347G\260\206f\\!\0051\363\233\233\321y\245M\377cu\3447\t$\t\024D$d\261dH\225JE\022\355j\332B\3142)\024\201Vb\224\2543\236\374r\006\345N\201H\235\t\036\200\3446\311$\201<\245\024\311\030\305k=\304\251\0273\271\\\310\330\222#\243\335I\364\306""\tP\360\370\375\2479\210\031\047?\261\026\202\323\303A\230\220\214\236S?\262{&G$\005A\327\350m!w\036\327\303\026\377^OfL\230\267\336a}\301X\312\267\262\217|?\006\317+\346\000\375\016\301;hY\021.\332@4|\227\210\355\016\374-\025G\307\243vY3\0341,\033\307=\277GDa\234\322LL\270\n\374\215\322P\242\262*/\262~\022\362\006\225\266d\363\376/\035q\260\036:\264Y\004\347A#\nF$a8\222\343\313\307\230\276\251\004\307V\243\nh\373^Tq\316\327\200\0164\222`8\300c\214\251%\277G\301\233\t\027\313}\235C\003\255A\255\306L\225E\360\207$\251\225\300\214\364\270\260\336JY\314Q\361\024X(\320\364\nX\363\"\364\371E\326)n\227\263\047\177\341\2743\047.]\232\212d\227\215h\334i\241\256u22\364\313\225d\334\217c\321\007\374\227*\325\372\321iy\317$_\036\356\252W\346\272kW8\231\373\"|[\227G\024\374\247dfU\3673B\322\224X8\352\234\365\327\263~\004\366\361\177\236\371\277[6\236{r\252[\323\213\033\302\257~\230\2575\315\226\214\314\254\2456VGZ\253t\233n]\350\225l<\202\345\206\276\032\267F\243n\362\t^2\363j^\017+T\225\201\3148+\"\200\326\244_\267\347\037w\222\027\262\342\370\373\000$\025\330\312\034uz\211\034\220P\335\212]\032\217H^qe1\315\004M\256uJ\025\3531\247\2200\210\241Lx\345\"O8\257x\254\016\361\357\362uj;)\346\206\276*\353\347+%\345\222\240Z\021\351\036\237\251\327pu\254\272\275\204z\356v\311\303\016\336\211Ua\274\247$==:\032\3569E\357\346\001\250n\325\014\214\207R\016H20\316p\260\324\307B\365(k\304\177Z9\210e:\253\256\251\353\234O\347\243;\223Iu\333gV_OeR\361T\3242\223L\"\010\t\003\363\235a\312\230Al\r\201!V\234\031@q\032\361\320\344\310MP\270\271\354\221\0344\325\365\206W)\331\333v\204\304yt\006\302l\277\016\217\177w\014\273N@\311\014\360mhr\032!\"\203\014UDa\025g\224+B)\274\334QY\220e@\337\260\226\376\235\253\2135\224\201d\255\3430BD=\244\247\026\202}\220\220\"\220\201\023\267\203\322%\2056\332\311\275)]\212l\265(22\251\rE\031Q\035S5\363\302\\\033\366\313Y\357C\030\004\313#\261\323~\214Z\267%\203v\334\271\200{\321\357=\240\263\213\032F\222\"(\251\251\366\367\231p$\340\342\340\023\337\330EA4\230@""\223L\006\271>O\336\363\242\370\210\304\276ni7\373\047\370\376\375\227\344\375 \377\3239C\023\214\326\235\032\314\014e\030\255h\376\321\372\357\373P_\337_j\211 ,\212\047\325\t\007\325\237J\207\353\265\240eAf\035(_-\002}\317b\010\257\324r3\236\215b\207)D\272\013\350\320\205\342\243\036M\366\300Tp\276N\345(9@j\n|\347\245\335Tp\0014\255\351ON\276\311^\242*\332\370`$\365e\330\306\244\302\237UQ3\334X\315\375=>W\277\354\251\211\366^\2007\302\302\222\211\336\302\373\027Q\335/\243\232\251q\362r\365\341\\\356v4s\265\303I\322S1\214\025\037\272\246Y\302\247R\312h\n\217~\302f\2436&aQ\231\233e\364<\316oC\037\247\327\237\010\204 \000\226\275\351\017\256\226[\354\035\021L\272V&|-\333\313 \005\315w\367\370\372}\375\255=<.\325k\016\235Qv\266\006\267\020\034.\304\212V,\263\255\005\002\327\n\216{\n\216rh\3030\235\037\270\317\301MX\251\047z\025d?\262\325\202\352\025\032\352\341\267~=>\217KS\331\3724I\252l\345\340\0216fY\353\372fS,\367\031m\003\324\2531\202\256h:\002Z\377\2706<;:\346\305\373rF\375\237\256\327\271m\356\327\025\274\312e\r\3243\350]\341\232\002\221\300Tf\316\336\351\273\341Dp\200I!\010I$I\026(.\331p\222\2340\013\036\336\t\377\264\245Y\300\312\227\n\305K\365?\373gks\346O\246\024a\243o\350)}o\212\216W\206Y_w\322\346\353\332\346\"\245\305\t\300\263,(E\216\356\267$\3326>\256\003\013\337\005\334\033\252A\014\320\304\267\006NA\226<\t\303\230\022\332\r\005@M\032\002\003\210\245E\025\2073gz\202|+\262\273\027\375t\341*\256\025\033\352\347|7+s\"\202!x\002\225\257\317\332\3337,""\237\0202\355\257\032\317iQ%M\306\033\242\243\215\027\004\301L\342\243\216\335\312\027\365\371:\360!\262}Hx\302\243[u\273\311\023s\261lev1\266\206\201\331T\266|~\275\034\013\303\026\200>#\352\342\274\023t\235\236\032K\027\201\354\020\222\010s\0051\277w\207~\306\375\3048}\211H\0169\2010\260P@\003\000\240M\014\222\342\352\230`\013\234\354\360\212\217\371m]\263\r\360N\335\346#\313S\203\251\213\221\220C\200\227g\2625paz\\&`\314&W\021M\234\375\237\357V\355n\330{I\277\367\275E\302\342\330\340a\016\007 Kg\270\241Q\307\007\250)v\276\200\233\221\334EI\017T\035\303~\347\341\226&\3617\370k\200\274\300KJ\337\023\261\305\327\33278\251m\342\234\000\333\373\220\313v\375\335\343\206\215\036\021(\014\306\211X\334\271\266\366\337\207\203\212Q\344\022\033\274\265>z\313\n\307\025\255\3634\244\251\013\276\000m\231M\240\333\340\364\231\267\264\316\017\177\014\200$\245x\"-\276\001J(\217\222\206Z\373\332;UF\250&\321N\360lb\t\312M\313me|\266 m\314\004\230S\200\027\220\275L\316$2\326\025\327Av6\205F\346\203`j\360\255sc\323\014k\001\353\212\016\314\034\320\314\t\345)\233\022\033\216:\010h\035o Tu\304V\306\2545\322\033i\256\002\375\254,\247[j\302\243\013\307o$\254\211bT\367\215s\311Th\320\325\371h\332!6E\020\331\025\030\252\036\010\367\247\362\312\326\230\201Y/w-\320\316\355\373\375M\356\352\236 \357\204\t\266\240\361\210\277\207\273z\333\032\341\261\272.\374\255\367:kn\211\263\335\330\36186\300M\340\304. d\017\3500\271\340\022\354\352\031\263\203g8\253\300\206\206\3644\003\337\022\037,&\333Rp\005\033F\322\226\235\242_\3012\205\363\204B\370\357o\325\261\034\306|\342oo\212mn\334\"\367\340\022I\010HB@\221ac\261F\346?\254\356\031_\204/\007$1M\343\251\213\262g\024\333 \373\363\313\022mB\277\363\202\373*o\002y\305\330oa\233\177,\026a\236\221S@\243s`\220\330\321SqH\365\266\305?)l\003\317+s\340\315i\362\347\315\276\216\"V<*P\205\262\0239\324\341\376G\021M\365$SlTh.C|B\341\035\345\n\270S|\343\203\252\263h\367\2506\226\315B\352\246\035u?\023\327bY\301X\245\270Cm\343\200j@z@\325!\321\226\003\245\n\031""\327\255\234\035A\362\211l\024\253\326\203\256\220\363:\002E5A\365\351:\360M45i\353\343\252\352]\230\304i\207\342\325\302\373\363$\270\013\343I\200\016\024\016\002\255\255\034#Q\370\370\343\323\323R\237\217\274\351\332\341\t\257U\360k\206I\257\002\376\366[\026\020\231!\230l\330\320*\264\032\247\214\236R\032\224\233\035\263OU\260\227&\266\305[+\313\025Q\247&\337\002\227\334\026R)\014\304\366\200\365\372)\246!g\343\357\027\352`\245\375\212\n\240\2154\002\224Z\332\315\250H\3001\352\2755 \364C\264\245\036\276\275\301`\274*\005j\2354\246\341\270H\r$\034&\244\326\375\357K\246\367\204\265)#\252J(\243R\337\352\340\027%\342\221n\010\336$\354v;\336\262\207\240k3_R\003E\020\265]M\265\215f\257\013\224\213L/\024\327\354t\276\341\365\3151*\230\311+\256\032\206\245\256.X7\304\276\032\300\367\203\360\235\004\322:*N\201.\220\270f\235\366\037w\242i\230\342F\360bQ\002\374W\262\373\274\3225I9\362-\271\326\266\231\3220,\204\002\342?\205\300\036\301\313\347\005Q\314On\326\235\357\225E\347\221\261s\212\222\211\374D\374a\3139\341\022\217\225\252\256tOx4\210^\363\330\340K\315\265?s\277\316\377s\236\373U\314\275\276\233[\237ht,\\\344\222\210a\210\342QMG\263\356\372\277\211\037\253\375\177c\205\252\260\253\276\363\021;\313\214\2004\321\244\023\"\360k\022\204\345\354\034\323\366\362\313\035\276\231\315\267\311-\202\047n\305s\3013\270\343r\324\034\3237o\313\322?w<\325\347v\246\023\267\200\236\344\350\341ye\236\275\047\211\344mlc1\350>\250%\357\306H\" &\376\364\350\331|\014}\374\007\213\037\237\362z\217\257\337\200=Q4\313\313$\276\223\265}t\r3\331\350!\272uu\0050:E\340H\035Y\332\351\235\016\317D\350\237\365x\227\251e<\322\362\326\217A\362\364\272\"\024\322\330\365\017L\313\362\355;\376\217\023\305Z\365\037\2510\243D\001H\020\235\033\004\216\365\254\373\366\3755\274\221\372F$z\244\204h\036\010w\241\212\330\001W^\366\030^\343\351\020\202jr\037\315\177o\236\003\346\243\337\363\016\nI\3046\323\254\366O(C\311\212\236>\230\221\326\247\213\347s\003x\273\233\312\352{\002\237z\010\274\230\207\336\212u=""\r\200\356>/\212*9\235\037\341:\300*v\227G\250\366\203x=\325~\376\211\276\243\353!\006$H\003\3008Oz\334>\223\207A\374K\361\227\330\371\227\352#^\331\235<\377D\257\226\227\361\237\242\327\221\357\0163\337\313\353\374>\225\353\333\356\312H\367%\204\0102\367/\245D\220\350\317\335\245}u=\301\365\210s~`\314\310\372\237\365\021\246\032?\177\273\344\030\372\204}i\222\031c\032(!\236D\266}\047\323\355r\004\347\010l\257\310\224\302\305\367\205\022\326&\023\273\361nM&\247\264)\355\251\360\r\204\244\226 \2274U\376\355\034\217s\264\021\375\nj\t\314Is\002\305\002\335EU\375\333\036?a\347UB\275\265\240{ D(\2107E.*\326\226\243\237\373\273\317\264\014\023\333\200\321\021,F\355\272\322:\375(r9\010R\236\223\335T\240$\024\270\230aUq\360\022\350\037\037\365.""\371\350c\201J\226\037\326\371\374\376\203\350\270)~%\037\"\326\252URQ\257aG\001\200\251{$\255\235\330%\250\265IP!\353I\004V\313\002\213)\tJ\254\212\205\032D\211\016\241\200\251pI\014\3433Ikc\022\331\364T\240a\242\3712\255\230\177\177\253\303\032}aD\177\272\010\377\200l@\360\2507\010}\211u\305|5\001&\r\203\206\024\002\224\241H6\207\003 Mi\223\033\000\016D\t\246l\324\326I!4s\275+\035S\200\260\220\301\014\003Y\270M\001L3\027\213\255\031w\212\204\220Q\002\000\364\001P\"\013\201\266\243\235G\230\375\362\343\306\201i\374]ZH\037\334\000~_/V|\260$b2\266\037\260\020z\355\352\226\027\300\303\033\330X\177x\r\250\202\362\215\215\260\177f\326\n\211\217\177\243]6\376\370\222\211L\216B\205\202+\257\370\023\202\020>\346\264\\\225\221\305\302\377\204p0\240\\D^\376<\245\254?\030\034\212j5\237\361t\212+g\nI\021MW_\361\247ak\047V\n\003\010EB\224\023_\362\n\211K\047E4l\212\005\004\016w?\264*&\247[]\021B\270z\006u`\010b\232~\335\010\352rC\213\203z\"\270\013\267\371@\344ic[\201\2254XT\327\374\311\320\316\270\034\220\032]/\"\277\347J\340\350G:8\017\223M\277\321)M\366\325\300\334q\224tj\021\245\213\232\260\375\304\255\306e\202k\247#4G\265\356\030\033]\177\322\005\336\267\031\300\320r\r\200\273\215\000\256\001 \177\252\266uL\344s\222\325\t\252R\225\262\350\212\017\372\354#7d\013\260[n\255`\303[h\177\330,/\231\004l\270\340j\366E\031\275\310c\247\373\\@\305\200\\\"\2367\262\rE\204\202\247\026\352\264\003T!Qp8eQQ\222\337\215>O\274\\\330\353\320\230\233\014\323S\211\210T\3044\304\371S\374\261\300\207\034\343\047\211I\320\240\372\377\360IMM\272I\221N8\013\262Y\203\t\003A\306\026\014\177\307|\324\301\000\217\371E\200\246\241A\033\326\251Y\2364\271\375\342\n-\200\271L\2163\240`+\"\271\272\250\"\376\257\371\200\033\tk\311P\310\273\202\036)\033\345\210\027\263W\272\005\276\256\242\334\020\366\024\023\275\345\221\212~Dd\326\253~\001\221\"q\226\263#\217\372U\362\n\256\343\013\"D\340\021u_\257\377[=}m\216\001X\332\325\311\345T)\025m@\240d\336\302\023\367\3608RG\360\032\r\242uK a/\025f )\036_\366\362a""\340\233j\271L2\\WA\260[\024xT\317\350\047IS\204V\3214\303\013\003\377pzMh\241n\031#\234\005\270\242,/\275\237\341H\360J\221L\r\234Ph\025x?\370C\324QE\230@\250\342\214\177\362\027\260\023\274\350\217p\302iz\325\310\205\377\322\002;\t#k^\361\240\250\320\200\270\372@\r\303M\262\343Dc\207a\002\277\225:*9\024\235Y,\301\265\322\240|\240\036d\207\250\325\300\315+RlD\177\022(\332\275h\231`&\230\257\341\003\245\021:\364\027\001\223#\2137\335\032\221\026\035>\35207qij\343\270U\273\364\001!n4\020)\250\023\233\047t\315V\204\005\032\272\365\224y\312\031j\216\350\225!\355\315UR\343]\205/\257p0~\264\216\222\327\003?\033\0217\353!TU\003\216\342\204A\027-#\221T\307|K6.\257\330p\362\031\205\223\272\201[^\343\tAxZ\225\242\201\r}\223\271\275\033\024T\225\334w)k\310\023z\016\233\215\010\035\305\0055\321\337Gh\214r\203\277)]A\250\273b\203S\003N\350\311\316\226\260\3658\322\002-\222;\355t1\315\347\326$w\207z\357K\274\363\354\311\350\267S+\371xy0\337\214o\360X\342\333<\264\341 \273\327^\034\330/t\347\303\325\207g\217\242E7ub\243\333[\266\256\203\246\305y\031<\273D\3508\3671\365\\\237\267\226\333\262T\253`\257\207\232\216l\307Fl[\215\276$\032\220\227r\021\334\200.\200\215\344\207\360\252t\305z\212\236x\257\234\200y\250\207-\007\226\251\371E<\305\0170\000\351\250\037\225W\320\020:j>r/\232 t\325z`&\300\036P\037\275\007\334\003\342\210z\201\017\000_@\017\336\003\370\205>\364\036\361^\341\003\271\023\352\025\372E>\"\036\341\037r\217\270S\332)\355\001\366\210|A=\240\237z\257\301\027\361\n|\020:j\034\324\016h\0471W\240\217\244\211\317\020\350(z@\235\016\177?\237\371\177\220}\277w\370\326\276\243nU\271\372B\nr\323\335!\nt+\332\215\324\024\354\005Ov\007D\307\200\312\347\3010\326\360q\240T\315\343\342\356\006\240\214\007\356\033`\216\032\340\353\236\351\272J\\{\335\247\312@\344h\255PiM{\240t\352\244\022-\265\251\r\335\003(\246f\000^\341Tq\312\333\210\243\341{\250\340^\047\002\332\014Y\217\2256\241C]{\341\324.40)\227\247t\366\024\232\361;\3279\264U_\272NG7\013\306\235J\007\314\t\214\n\373d\206;\324a""A\232\367\203\334\036\"I\023\244P\nw\023\2361[\326e\326(\224~\273\346\202\033Z\026\342kN\375\367\330\326tZ\353?`\034\310\315\031\262\324N\342\233\207\"\033x\203\3358\243\323y\3364Z\373;\242\216\254\010\214v\353j5Gp:\315\250\324\277R<\273\205\036\002\232T\342\204\216\340\037\024\311\204\256\347U\326\260{\240\3474\264\334^B\224\370\200\347\025Q;ap\313$\367\034\t\315\251j\000\347\363\307\002kU\355\334S\233\034U[\272S\201\223\262\277p\016\342\335\237\272\003\312o\246g\270\033\201\247[\016\361\305K\326\373\016\365W\310\341\322$\236\363M\024\305x\322\233._\277}\350\014\323-X\024\035\3627\354\243\207M\206\215Y\017\035\371\213Cs\370;\363\210V\371\023g=\306G-Z\351\035\366 \370\326\362S\270\\\260eJ|\273\022)\236;\320QO\003^\342\364\321\323\352Uz\3732+V^S\360W}\270\367\352\267?~\3336\373\035(\010\343\345\032\216/\300\236\364\3464O\253\364\200>\224\372G\323\237\256\377U\2744tu\342\255\327C&\375.\254\030\244ui\331\307\016K9\037\217\006\366L\2272T\243{w\035\370\371\247H\265\206\344%\256\275F)\217\256\320Z\233\323\265\025\253-\217\\\235W\247L\350\332\265&\356M\035\227\266\220(A\016H5\2029\004L\022\326\220jIMB\310\220VB\306\222\244 \232\205LJj\003@\226\261)\340\026\222Z\304\265\241Y\000\266\221\255\013Z\r`\263\t_\005\235\013\241\001\300\013\240J\342ApA\224\003(\226P2\240\310\203 \030\304cA\314\203\032\027\022Z\200\322%\322#P\215h\326\007@gA\235#:\014\351v\001\345\021\235\007b\016\260Y\322\354\026~\217\347O\270>\344\005\220TH\304\025a\005T\221\000\"\222@\021PUXB\007\360nq\333\313\311\321\374\225\374\202\357\343\367\006\026\367\006\250\337\334\367\034{\234h=\301\201\367\033\275\307\270K-\263cO\237\350{f\237@\313\335\005>q\364{\204{\221\306+\270\177p:\207\347\335\032\214G\272\007\271E1\356\023\213<\003\237w\272\027\334\334\373\261\246\2636\307\317qO\242k\275/\364\017\234K\215\035\276o\233\346\343\350o\235\027\177~\315)\273$R~y=z3\306\317-\321\272\364\350\331wa\047K\240\320\351Ze\303\017\220\203\257Fy\r\321\322\3351vw\240;\221\334\217\005\340\274O\0133x\367\352\272\217\227\311\347\344""\311\223\247\202G\206\275\036\032\246\353~\275S\245\354\363ui\362\322\241\257Vi\340OD\344\246\2015)\2410S\022\226\215\224l\001\260\032Q\255j\025%\250Z\305U-\264n\242\231L)\207b5+\206\245\245\025\203J5\232\365\255A\2540\032\016\260\321\254\325\244\342\324d5\351G2\326k\317\245h5\032\314\335\275\253\314\250\372\200IyVl\307C\337\344\315\325\224\313\0337\222\006\307\311\313\311\311\313\307\207\007\377\035\342\324w\207y\336\263\324\333\325\267\2236\236\250\177 G\n\326\013$\253\005\2136T\313%}\3336l\331\263f\317\210$\225\205\350\021\371\217\325\003b\"\365\207Xu\235gX`^\346\037\303\365\010\222(,\212\220QH)!$X\020\221I\025b\302@\024\204!\026\013\025AAATbH\244R,XAU\"\202\212\252\"\310B\n\244PU$Q\220\021\177\353 t\344\252\231iSN\203\375\0051\004\233PTq4\353\272\003B\006\215u3\0030L\303wR\377\217\371\372a\316\351\355\203\364\237:\252\313\271\332\210\315\033G7\311\014\222\240\204\252T\250m\356\376PQ!$m\014\242\222\n\214\0021\000\303\016c\230\\\201\313\202b\300\345^Q\320\241\343\304Y\031\005sH\2522\224;\277|PpG\004\006.\225M<\2453\026\300\2674\307\307Hf0\310t7 \227\220TCVfh.\255E\367\227\262\271\235\303\210\351\005\014\313\213\344\202\250\354is\317E\302!\202 \347\202\232\010\022@\214#\030Ip\250\301Q\250\211U\213\210\230\3460AL\000\231\367\365\001\026\010\204\355%\245\337\26488\375\333gtH\250\"\322\3041qQ\321\301\275\271\252\265\\\274\004a\206\2254\232kJi\022\304\024\242)H\241)D#\005\t\003\021n\027B\231+\220\210d\t\260\230`\310\022.0o.\301\006\371RI\236M\014\223\"\021\025\221a\014\220\311\003\211\223\213x\233\373\031\202\242\352\334\332\205\330[\203eh*0TaE/R\343\013\220\260\276\300\266%\337*\333h!sa5\267\3452l\315\374D\311Q\177K\210%<\374\177\037\307\034}\321\0021\262\225\351\017\333F\004B\300S\344\347\3656\014\021 \034\354U\207\366\304(\236\3129m\210T\227\037\255#H\375\250\013\201zP}\366l\022\310\356\226t\224\2440\200|c[H\317\353\372\254*\352\005\371/\220qc?{6\223J\266S\304H~t\362l\330\345\224g\305F\320V\207Ma\277p\240Z\252|\014/T\261\257\354,5\365on(PcU_\340\016\212\017\013l\356\357\003B\243\032\177\014E|\345\207B\343\205\327\020(\260\353\215\327\372P\352\264\333\353Tk\370\377\2374\316{n\225\376\276\274\357\261L9o\243H\207\333\260\276\\\241p\366\230\003\377\243Q\267\210z~\336\303X\340\037S\312g\363m\373>\233p\006\2050}\356\225\010\3366\342#\341\235<\243\000\246\047\206[\257\345\247\304@\350\317+\276\236gJ]*\357\243\212~\232\250,\007\305z\227\036+v\202\313\331\367\030M$<\234^a\245G\261\256\325\320\\\241\322\302\024C\303\341\231K\034\021\370\341\374g\356\000\001t\365hq\257\230Ff@\227\371\343\027fa\206fa\035\232\272\274\241\n\022H\322\232\003!L\240\212\334\267\206#\212\047I\017M\320h\301\274\300j!Y\264\316\r\014\316C\"ae\047\033\363p\343T\334\333\205\303\"\253\215\251kf\364\331\326\333\023\211\r\0326@\3435M!\3051\036.\331\2725\343[\367\001$9\223\264<\023\260\004\206\340\021\311r\014K\000T\377C\251\222\302h\004\321\340\360\007\033\003Ia@\342\305\014\314\301(\272:\231\264\014\334\304qL\213\365\021]K\251\315C4\234B\262\354q\351\230\017=\032\340\255\273L\360\245HQ\304}\312\265]\244?l\247@\022\246m\205\003\352\353\212\274n8MmaNN\217\235\323C y\031\234\200y\005\201\343\251\365\360\374\271\367g)\340\014n\216\030\341\341\323\032\270\002[{i\033[c#h\365\360*;\252\241\310Y]\177\237\234C\200\353\235z\315b\013 H\330""\210\304Krr[o=I|<\047\047\047\"\361\t\2555\236\233um\266\300\330=K\312!\324s\013\367/5\002\223\207U\244\350\035T\353\367\361*\301\007o\315\363\352\367\036\351\0218\355s\215\210q\017\273\343\2524\230>+\252\351t\025\220\265uo\027\020\\-\210\266$[\014\"V\214\000\253WE\211\210\177\367[\231\247H\346\376\023\001q$\213\224i\350\240\274l\324\321\347\351\241\364\252PH\226\205\200\230\211\237\351E\037u\020\352\263a5\246\272~\316L\232\241\343\255\346\256VU\341.\327\022B\256\267\253\025\2222\365\330\022B\254\027RU\312\310\376\002^`\365\241\200j\203O\035\366\373\032\307\303mDn\372\216\362\273\274\025\226\334\334E\\\014n%Q$+\365T\025\n\207\211x-oo\270\345\233\344\326\377Mz\311\213\025\224\022\n\317>:\262\"r\366\014\366f\034\312Y\374R\032\314\002\211\361 @\232\030\013#<\234\357TND\004f\302Y\262\033\206a\213 \262\332\263\001d\262^*c\252\251\315\017L\305\323(\230[d\245\247\313%\334,+C\014\260~\304\377r\013\003\313\017\251\207\224\315\326z\232\252\252\252\257\263\357>_/\375\344\342\202E\032\004\342\234\366\354\032c\200\375B\047\022\355\315w\006t\222-0$Xu\267\301(\033!\366\034g\037\013\361\342\365\250\001\322\"|\025\363\006\2076\303\r\3152iXaC\224\243\032xg:\273]\263\235{\320\32456:\342\233\234\364\336\2179\301\243-5\024\3338s\201\346\232\370\241\356\037\t\371~\362\252\262I$\222O\327\331\343\311\270jGtE5\000r\037\310\037\213\377o)\327\003\214\342\366|\263\321\365\211%d>\262\252\252\252\252\244/\361\010R\037\254\"\030\n\025h\200%Fy\374\004Ya\010\047\316\047\2615\0100\233\247\372\316\341nW\225\250\rN\244y\003\3106\016 \246\362\352~\277\301\311\003\222\361\2013\3173\302\3615\333\326\365\274MJ\3525)\375gW\277\223\326&\351\273\272g\004\037\356\2337M\3205 \005\256\240MF\245\334\rO\207F\270\246\271\256\016\270yhq\201\324j\035H\213\256\246\260<\255\340\363\265\036\035\367R\232\332T\355\276\0014\347h\232hB-\017\334\311\341\335\334\212\252\252\252\253\254$;\302\014\333Gb\037\3136\356\362\022Oh\207!4C\270\207B\030A:\034R\226\224\264\245\245-)iKJZR\337&\320\366?\363O\332\204=\257c!\266\324\332C|\222I$\222I$\355\335\334\004\210\347]Br\211\251M\034\031\323N\272Z\272\203X\t\223(\233\304Z\342\254\300\225Kj\245\252\245\252\262[d\266\311m\222\333%\276\020<\010t\351\016\275\324\351\261\004\207B\035\341\306\320\343\212m\271\302\000}b\034]\367UUxvqZ\023P\232\315\353\t\020\311\202c\246\213D\266\355\031\224\326&\201)\004\325\2274Y\013[\267R\250\tc\010\245\000\210\302\242\225\n\212R\213\n\212R\010\220\250\245B\242\224(\021\210B\242\224\010B\242\224\240q\206\217\270\375\236\357\306\202\r\342\272\016N1\302p\035\0101\242\001\010\347H\016C\215|\275\004\223\312#\235ug\224\020\357\357<\023\030\241\302\020\nw\2619\360\324\222\023Af\214\315\3166\326\037\373\312%\2457G\236s\031\025\314\310T0.\325\333\212M\231\220\343s~M\330(\n\014RM\020\315D9\332\033\n\007\020\014\024\245\005>\353I\201g\210h\242\263QU\3100^\005B\213 \020\307\032\277\032\270\210\2056\272\360\024\306\364\177\216\304\257\202/\305\037\211$ H\022R\207\305\245\214daK\361(k\343\363\276\257X\222\007\314\177d\207\333\373\252\252\252\252\253\372z\207\321\365S\326\035\010|\271\r\272P\363\372\202W\226%\326\245\336u\016X\237\314\023!!\3134\t\2354z\"E""\003\241\240\311]?&\033\344\337\275\272\274!\215\022\301~\362\013\310\025\34068\316\275\022\235$\304\213\203\205;\005;\320\357\010F\022\201;\251I\030I@w\2243!\207^\301\047h\226\023_\231<\370Qp\047-%\330\321h\226\265\026a\237\0351\206e1\206e1\206~m1\206mLa\237\341\2460\317\303La\237=1\206mLa\237\0251\206|\224\306\031\3051\206|\264\316\373\rj\311uE\205\3251\206z\251\2143jc\014\312c\014\357\2460\315\351\2143jc\014\375\nf\326\032\357\262]Qax\246[\014\357\262]Qax\2460\315\351\2143\2551\206t\247V\031\341M\230e\242\302\376\032c\014\356\2460\316\352c\014\360\2460\317\305La\236\024\306\031\332\230\3032\230\303;\251\2143\272\230\303<)\2143\302\230\3032\230\3038\2460\316\324\306\031\363\323\030g\024\306\031\342\2460\317\nc\014\336\230\303:\323\030gJc\014\312dKf\242\321-j7\304\3649\304\315\004\306\364\307~\213\314\242\260\002t~r\034\220\374D(LUUUU}\252nB\300\316\357\031i\017&\360!\231\242\343\230\\s\013\216aq\314.9\205\3070\270\346\027\034\302\347b\033\020\362\220\360\357\207\207\350S\036Xk\331\244\272\247$-\206sLa\232\247mx\362\033}jl\252\252\270\354\342\356C\331$\235a\016\362\037\265\333\351\245\264\266\226\322\332[Kij\205U\n\252\341\006\366D\031J:\366\007M\020g\315C\024\r\242\217\033\312^\352z\232\311\255\\fe\306f\\fe\306f\\fe13/\350u>\217\242J\004\t\305~#\2108r\234\047\t\203\274\216f\347\014\"\003\207\020\014\3110\301 A\241=E\004\204\224\276\246\314\224Q\260\362r\371\272\204\270\343/\022\334\323\254K\2011S\274L\024\244:N\213\350\023&\026O6\024^C\247b\r\t\307\257J\252\252\252\253\204;\200\372\344\020%6E\024QE\024}:!\336C9!\320\370\223\243\016\357\341\320\207X\231A\024\321\001@\202E\001\013P\221C\047\331\355\323<\005\024QE\024QE\035kY\231\231\231\231\231\230\314\314\314\314\314\314\314\314\314\330\242\014UA\0106\010(\020F\301\004 \246\252m\245UUUU\337\251\006\007&\342#\021\021\021\021\021\021\021\022\364\326/v\333\004H}\353;!:\252\244\223\203\363\226&.\327\2717\273\341J\320\322\204\322\217\006 \230\207\024J-(M(\360b\t\210x1\004\304<\030\202b\036\014A1\017\362i\363\017\203""\307\365\377\027\255\236\240\3403%\231_\276\006|\007\307\207\014\307J%\022A\030b\244\246\240E\342\372\021!\010\004\t(^\372FPw\205\024}\226\376>\217\244\243\300O\244IB,\000\206H\265\201\261p\276\021#\357\201\302%b\020\361\017\020\361\034\342{\304\312{\274\023\307\302\213\2011\023P\t\216R\355B]~\375|\342@\232\375\\\345\325\3032\333m\266\333m\266\364[\177Z\333\253m\267\232w\246\323\226\333%\261l\004\342\202^%\300\232\346\266\300\232\372\204\302\341/\314H&;\004\274\022\3012\023Vy6\211\2455]B\365#A0\304\225\2047 \340\343F\264kF\264wh\364\353pvh\333\341\240\202\301\002\300@Q\005\254\024)@i\300\315w6\263TS*)\266,(\031\236<\243\311\016\301\rg\033\204\031\002\262O\017\010x\272\323S\301\361\252\252\252\252\255\261b\305\213\026,X\361{9\342\317\003\304Diz\205\312\202^M\254\325\026\"+j\205\262\243\311\265\232\242\304EmP\266Q\2501S{\265\205\310\213^\241n\250K\311\265\232\242\304EmP\266Ty6\263TX\210\255\252\026\312\217&\326j\213\021\025\265B\331Q\344\332\315Qb\"<\210\343\2448\2631\221}\2272\266,\001s\002\014\033\372\3708\037x\224u\205\r\364\205x;\304\214a\010\224\241\337JH\302P\367%\232\357\267\264\036\236\363=y}\033\372\023im\350\233Kh\000\000\000\000\001\354v\363\363i\344\362\007\240\206\2545\371\2241\206u\247\314~\036\217\251t\027\034kZ\326\265\372\214\270\326\265\255k\355\364\373\220 J\177~|\207\352}\023\260\355\257\303\364\373\272\375N\035\312\3724SA\376/\344\247\010\350\311\200\036\007\203\341\361N\377\356LN\360\373Q7\225;\303\326)\021\213\024\262OX`\242\210\331>\270`S\327\237\010\235\240\233:\204\210v\013\357\022\002{D\260\224\r\342P\224+PA\354\022\tx\230\t\256\302\2670/\202\260H\014\202\n\n\014\202\n\n\n\017\342\3666\"zi\350\373\244\367s\212\217?:{\271\276~\202\277o\364Kr\212\363\275\t\"\302B\004\222\025\t\357\303\005\210\245\207\275\013\357\372<\377mUUUU}\232I?\000B\375\222\010}?\005>\341\366\366O\210UUUUHrH\301/>@\236\252L\271h\312)\010!\210\231A2)a<\365\245\314\257;\303\236\352c\014\364\323\030g\325La\232\2460\314\2460\314\247\310C\325\330\353\333\265p\271\225\302\346W""\013\231\\.ep\257{\231\343\236\3673\307=\356k\276\351_\255\373\354l\2317\326\376\370]BH\304\256\230\213JC\321\017H \261A\262\007\240\206(\2126\036\231\202_O\031\360\234\217\274N\220\2419~\307\350\236`G\254L\247\326\t\212\227\t\020\300M\271\3053\t\005\013\002Rc\230\355\023&\321#Y\204\202i\023%\302P&\335\002i\022\220\315\243\001+\243>\324\257\232\214!\371v\242\212(\242\212(\242\371\010CL\220X\261c\031\031\031\031\0317D\3137\2671\004\202j\023\270L\202o\ty\262(\242\212(\242\212<\363\316h\206\265\255ffffffffffffffnCr\035\243\010u!\354\020\300\376)\r\244(\354\331\017\250\206\004,7!\354\355\244QE\024QE\362\220\350yv\360!\265\315\210o\346\225\213\026,X\261b\304\241\216\005\265\204\241\245wWZ\233A,]E\200AtX\220\200\240\022\024*\252\252\252\365\236\276\335\247Wn\334]^\217M\227\035S\216&c\263`\047\020\320\235by\313\276\262\267""\2701N\374\224l\211o\232\2178\2370\231\214\336\370\005\302^\047\234M>\002w\t\242\364\321\341E\242[\262\216\274\235\202p\251qE\240\000\000\000\000\000\007L\332q\354\337i\311\047d\332y6\235\\\246d\345\327\231l\266\331m\262\333e\273\254[e\266\313m\226\366s\t\240L\211\230\255\355\314-\300&\035\307\246I\275\2517\270(\264Kh\242\321-\2019q\222I\274:::/N\241\255j\263\025\254\305k1Z\314]f\207Z\326hu\255g\007\244\366\301\047\340\253\220 Os\265?\265\357\000\037\000\001\323(^\221`\364\217\220L\213\305\2258\274\264\\\246\261 \017\335\331\361\237\241\010\322|`\364\301>\226!\002\373\300\020\301\026\221\270\004K\200\036\360C\352S#\212\t}\337\016om\301\352\3033h\310g\201\314\206H\366Ze\263\263\266\2637\327q\227$\rK\262;\326\225`\212\305\251kE\212*\305\025d3\216,l\227D\207\001\271\251\247~\035\367\273\216Q\333|1\300\333k\354\310\007\264\007\266D\032\000\344@\213\310\047O\267\253mu\t\356\023\277\010\047\035\210\251\332\363\306AhI\220O@\231JR\346\020\"\t\356\022\302\r\342\266\270L\347~\305\007\322%\341\200$\022\204\241.\2678\230C1UUUx\010z{\241\351\312kw\250A\201\344\3247\355N\346\031\370\351\324a\226\311m:\2046\340\207\211\002\035\r\020\207R\031\230\375\377\330\365\350\207]uUU{?#\212\362n\305\017\220\223\315\355lYk\010\020\326+\255a\307\262\321 $\023\302\331\027\025(\t\220\224\276\035\320\360\360\2460\316\264w\200u\030\036\036\036\035\375\242 \233\231\341\241Y\230\230B\010\004Hiq310\204\020\010\220\322\342fba\010 \021!\245\304\314\304\302\020@\"CK\211\231\211\204 \200D\206\227\023\0234hB\010\004Hiq310\204\020\010\220\322\342k\363\217\265\237\217^\213\265b\357\365\003\330\365\216\337F\2440?q\201\235W\260\020\212\366\010D\354]|\274\273<\004\351\340N.j?$Kl\243&C\3552z\352\355\025W\252\032\004\340\350\023+Hi\023pL/\004\210g}\267\355\023\314$\022\326\322%\252\252\252\253\341\327\261\016\2046\260\361\372)\344\356!\306*\252\346\261\313\230\31699@\200@ \020\010\004\002\001\0136/\211\206\024Z%\265Q\234K\304\314&\340\230\336\230\344\243F\"D7!\320\365(\374\304\022\250\356\225F*1Q\212\214Tb\243""\025\030\250\373\033\276S\303\305s\305n\334O\016\220\360\372\251\347\360!\020\357\023\202\344\303\323G\323\226\222\355\352-\022\325F\241. \223\255.\2716\373\024\366\2171\017\277\273\245UWvU\306\031\345\263\222\020\373\344\030\0207c\340<\274\225\266U\215)\035\000\020\021\020h\"U\241V\t*\"\025\2405\341m\306o\271t\032\343\275\270\313\271w\rfa5\242\3505\314\031\206\373\334\336\335\225\246\333\\\332\335\260\352O\261\340\235\360\365\236\267\365\277g\027\321\372n\377\217\256\\\263\212\365UL\321\022\353\276\007\254\365\3748\220\332\235E\037\263\037H\201\352\020>\024/\210\261\266fg.\254\030\207\325{\014N:\231\372\300F`\314\222\314\032\004\201t\203\352\026D?\245\317m\266\333m\266\333m\266\333m\266\333m\3172B\355\312\034\375\232j\007R\035\347wK\242\033r\2079f!\234S\342$\220\337\236im-\245\264\266\226\322\332[rj\004\t\363\331xy4\216-\205\264Z\020+J\322\026\024v\220\366\241\033\333\300xzJ`\254\027B\223\260RE>\006\020<\342\006\325\002)\265\030\033G\223\311\003\311\331F\201=\342|\004\363\t\333~H\031:h\237P\221\014\302[d6\365S\222\035k\263UU\331\323\213\320\204>\010B \026\230\347\305h\304\255\200\026\301\022fT\335\005;q\016\334\001D\001Q$\271\225b<\310\304\346I\341\237a\035`\235\322\304\212YO\230HkZ\026\242\204<\320\000\321\231\244m\302""\334F\334-\304B\300\2710,\013\223\002\300\2710,\013\223\002\300\2712\252\345\036\243\205\0008E\036\020{\021{\000\354L\337/G =z\312*\250\326\t\371\013\343\304\002r\t\362\210\264\206\304#\261\331\224\311\247`\224\207\272H\220\305\366\200\376zH\031\212\252\252*\331 >\2754\0051S)\244S@\024\3220$SF\014\t\016EJ\254\024\047\270\200\252$q\030X*\000\267\001&\005\270\220\347\033\211\267,\253\330\0300Vq\200\023\310\017\220\212\047tZ:\374\201\316q\211\332\020u\354\243\211\022\276@]\354\243\204\007\215F\013\255]~\237\266\033\373\350o\300\022\347\374\325y\r\252p\206\336#jmu\355]\257\033\327\327\333I`\333\267\236\307(\277B\235Dy\220y\320`<\342\307\235\233y\004\347\212\2019\016M|g\030\034o\224x\270\215\274\"r\005\357Q\254\243\210u\202C\223\250|\254\201\030\361\200\354A\210\354\026$\330\033?@?`\371\0078\257<\021\377t@h\352\020S\234y\371\336~#\201x\3245\330S\211\273\236<\220\3268\204yA\377\270\311\022\031>z6\"\034\242\204@\345P\201\312\234@\234P\001\343:\305x\367\000\3213\211\251M\313\035\004\350\275w\314\306E\211>\2264)\351Q\335\0047\320Oe\003\300\254N\004\235=\200\001\260\373D8\022w\033\204\t\001<\305U\267JO\342 \240\241\241\315\036E\353\317 X\335O>\313\275\357\270\372\013\016\224]\227[\263\334\273\3151^\366\256>\246*-\\`=u}0\323A#?.z\321\357M\261\307:\333\264A\316\307\266\2209\346\nK\323\364\337\257%\317\332l\342\327\031p\325z+\243oc\031}\347\246\247\ne\357\214\337z\216*\375kjF\276\rO\267\267?}\357~g\006l\327j\334\272\375\354s\343\205\2163t\022R\300\213\001\010\240]\027.\216%E\255\305\005\204]x\236Ba\324\364N_+j\267\241\257\027\".D@k\\\344\351Xh\207 H\202\335\004\023L$\004Mx\270\033s\346\340\017\301UD\240 \\K\236\303\301\275\360\370H\365\371V\331\364`\351\352_o\301\225\366x\276\202\303\301E\331u\273=\313\274\323\025\362\265q\355\305E\253\214\007\256\257\246\032h$g\340\317Z=\351\2668\347[v\2109\330\366\322\007<\301Iz{_\307\262\347\332\371\305\2562\341\252\364WF\336\3062\373\317MN\024\313\337\031\276\365\034U\372\326\324\215|\032\236\233s\355{\337\223\325\356\373j\361\304\342h\303""\304V\013\211n\301\360\221\275\253k\350\301\323+\351\341\225\363\360}\005\207\222\213\262\353v{\227y\246+\332\325\307\246*-\\`=u}0\323A#=\263\326\217zm\2169\326\335\242\016v=\264\201\3170R^\236\217\347\331s\350\371\305\2562\341\252\364WF\336\3062\373\317MN\024\313\337\031\276\365\034U\372\326\324\215|\032\236\233s\350\367\277\047\253\335\366\325\343\211\304\321\207\2138\014\0217\010\010DwTF(\210\030Z\r\005[\260}\0228\275m\214\260t\325}<2\276~\017\240\260\362Qv]n\317r\3574\305|-\\zb\242\325\306\003\327W\323\r4\0223\341\236\264{\323lq\316\266\355\020s\261\355\244\016y\202\222\364\364\177\036\313\237G\316-q\227\rW\242\2726\3661\227\336zjp\246^\370\315\367\250\342\257\326\266\244k\340\324\364\333\237G\275\371=^\357\266\257\034N&\214?{\336TJ\202\210\200\013\371\r\361,.\261\"%\321\001\264\034\013\315\031\246cE\265\227jo\341\317[\355\273\007N\027\327\347\225\365y\276\202\303\245\027e\326\354\367.\363LW\312\325\307\257\025\026\2560\036\272\276\230i\240\221\237\034\365\243\336\233c\216u\267h\203\235\217m s\314\024\227\247\255\374\217l\372\3378\265\306\\5\236\216\030\266\3661\227\336zjp\246^\370\315\367\250\342\257\326\266\244xl\324\365\355\317\255\357~OX\273\355\253\307\023\211\243\017\021X.%\273\007\302F\366\255\257\243\007L\257\247\206W\317\301\364\026\036J.\313\255\331\356]\346\230\257kW\036\230\250\265q\200\365\325\364\303M\004\214\366\317Z=\351\2668\347[v\2109\330\366\322\007<\301Izz?\231\355\237G\316-q\227\rg\242\2726\3661\227\336zjp\246^\370\315\367\250\342\257\326\266\244k\340\324\364\333\237G\275\371=^\357\266\257\034N&\214=E\002\002B&\340 \"\026\365y\270@\010\305L\013\267\210}R:\322\266\316\314\0357\\\370\345}<_Aa\346\242\354\272\335\236\345\336i\212\370\332\270\365b\242\325\306\003\327W\323\r4\0223\343\236\264{\323lq\316\266\355\020s\261\355\244\016y\202\222\364\365?\211\355\237S\347\026\270\313\206\263\321]\033{\030\313\357=58S/|f\373\324qW\353[R5\360jz\266\347\324\367\277\047\253\335\366\325\343\211\304\321\220 \036!\352\034Kv\017\204\215\355[_F\016\231_O\014""\257\237\203\350,<\224]\227[\263\334\273\3151^\326\256=1Qj\343\001\353\253\351\206\232\t\031\355\236\264{\323lq\316\266\355\020s\261\355\244\016y\202\222\364\364\1773\333-\245\353oC\230\017g\227\014[{\030\313\357=58S/\2154\276\365\034U\372\326i\036\0335=6\347\321\357~OX\273\355\253\304\350\322\243D\364 \252\220\254\326\256X\362\277wI\007\366GHPG\201\243DF\363\217v\376\374fo\310\207r\353l\375s\024\264\356s\213\246b\343\3310>\354\200}\343\365\367\330D\030\307C\246\263\240b\246w=\251\364\311Yal\346lM>\222\374\270\377O\360\303\257d\306\301\020m\323i&z^#P\275\252\350\t2\225\254\000\261\321\256`C\204\376q@\300\2008\"\257\272X\t\265@\245\235\265\037\213\301\261-\263\014\221\246\")\267\036N\335z\356\253\310\207c\215mn\241\223\221\273\022\313m\337zq\245\211\322\300\246[\247\200\357q}E\016D\220\003du\372_|w\376HA\357\372\316h\247\340_\304Z~3\322\264:\036\023\321X2B\003\314\005\350*\301y\352\303\236w\303\221\342\370\247\257t<\225[\240\201$35\371\332T\342\003\256Z}\207\334U\357\037\227X\3045\325\021\"\016\240\036%\030\241\304)\304OE\023\320\344\037C\303(\305\306H\246\307\361\362A\307\237~!|\314\2109+\003\301\213\356\225\323\305\361\304\323o.\350N[\371\215\031\337\360\267\022q-.2G\242^yQ\271>z\366a\3717\263\013\244\013\262C;\253U\220\335\306r&\233iJ\366T$7\221\376`7\206\356\276\004\233\247+y\265\357o\347\364\236\210\020\"Da\236F\000\t\235\222(2\002\0207ud\344\227D\204D\210\227\303T\255\321\311\216\215\301\261\216y@\362(\203\360O\273\037\264+!h^\363\017\260\334\204\343\335\313\217\037\355n\356y\353L\335\220\2239\3618\016n-\355\225\367\007\030@\214\030FN\360y\366~4F{\355v8\231;\314\3177\227\t\317\025\t\347B\370\036\000\222M\206\374\032\362$\024\\\252\213\321\276g\266\344\r\233\336\000n\3221\tT((:f\275\302\264h\t}\360\276E\337\334\340m\202\374\265.k-\302n\2208\221^\2173\232\303\261\316\354\222S\261j\240\024W\254\200\267(\213j\243\326\200\365\250\361\202(4\035V\022\351A\320@p\362B\035h\354\030#\2673\345!\036G\310\215\276\001!\343\204I\035\nO\033\344\332\315\314<\223g{L\204%IB\023b""\374/ih\250\340\215\330\341\024\264lQ+cU,\024\026\"b!\215\361\241Q\306\305\327\341/-\332\003\365\000\301\017\250\250\201_Wz\277#\3219\252Hw\273O7\274\361@\371\330\255\353~>5y\233\002?\226\217\323\373\332\000\314}\340\222Pg\230\226%\262\302\177\177\2256\025\004U\253Yk5]\361\262\013\201#x\210\355 \013\334\030\000\244<\224\364\360-\212u\252@\016\265\010\365\273<\275\004c\031\000\201\363\3720\204-\320a\006\342vy:\360\322\276h\371\225\312V\206Qq\006\275\313\226\326\230\335\212\330\273\000e\201\373\227\242\nA\300\n\240\220\303+_\260> \3551@$\201\n\036\031~lV\021\340~\026\371:2\311Y\270\033\220\"\312\301\364 \235\000(A\325\020\"fd\361\356h\016 \004\270\257\211\027\325\352\374|\035\313a\005\325h\210\242@=\216\316\336b\3475\255\327Y\357;/\027\231\007\260F\013\330\254\016\300\327\263f\312(\231iY\343,\314\202&\2451\206\002\270Q\320\313\220 4E\020{=\2775V8`~c\020<\257\277[\347Q\007\003G\346\321\230\316Z\351\256\212\343\257,\222\374\356\303\202\272S\313r)o\371\361\3153\027\374\321\274\"\371z\377\217V\004\337 \362\213\317x\030\000\240\022\n(\320\020?K\262\200\203:6\370\252\036\303v\036&{I\343\r\213{\001N\373&Y\272q\226M\266\013\327t\245\331\200\341_\276_B\276\227.\001\031K\335\033\211\030\021x\254<0\252,\010\201.\007X\226<%\201\347\025\356U\200w!\003\270\047\353}\334\376}\266\235\347\317\337,\271\370A\345\335c\364~\035\302\260\217\270\352\022\362\315`\214H_\261\212\2750f\352qq1\232\330\246\272g\0133\242d\272\016~y\301\341\276mn\373\360\0003\000\000\002\000\000\001\230@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\314 \000\000\000\000\000\000f\020\000\314 \000\000\000f\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\302\000\000\000\000\000\000\000\031\204\000\000\000\003\311\276*\000\000\000\000\000\001\377\266\320\000\000\200\006`\001\230\000\000\000\001\0030\200\000\000\000\006fa\000\200\000\000\000\000\000\000\000\000\000\000\000\r\26433\010\004\000\000\000\0003\010\000\000\000\031\200\020\000\000""\0003\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000o$\311\303\257H\263\350\252\346(\"+%D\204)|Y2\1776\242\226\004\201\374\300P\000\020\047\341\375R\234\305\364QY\350\rw\324i\377\272\237\243\010\254,\242\374\002lp\300\224\373x\221\341\224\343\313Ye\341u\334Wq\027\246\351\362A\0075\370\233\332wO\274\2715\341\227?\314\265l\211\306\334\026\363L7.M\324\020a\201\255u:8\271\264bF\333\272\r\033\237>\3575\025\256\252\250\210\210\020\r\032\362\362|\267\036\357\304\355D]\001\252\372`\036\0357A\315\235\370#~\005\222\257*\3403p*\311\222\350\304^\200)N\037\340\263!m\274\351`q\254h7\025V\354\270\371\256&!\213\311\313MhY\3155-\205P\377(\002\227\"0Q\315^\002\035\275\270\310\240\3141 ]*\205\217$\327\274\247:\t\244y\021\201\355$Mxb]\201\010\344\254+\205\253d.\3431\351\227\304\273f\263K.\234\347\013\026\215[\255eFEUQ\005W\216\226\2014jg\213\033b\\\342\021\271\334\277)\243\316h\335\323\223QgN\345\020\304>\022\035c\210\363\240\316\031\362!\351>\235\376\336\241\342\235;\213D\254ij\253@\306\226}?\037\307\361\223\316s\017.\360y,\274=\245\007L\242\240\362\n\363\252\3009\304\201\316\034\373|\302}\t\353\243\200\342?r\014\367\365i<\364?I!\300m}\214\373\370t\256\314\274\031\270\360\307;\200}]\275\000\027\304\217\226\033\256\353\224\275.aD\033\256\240\261\317\316\257\200\250\370\010\370\007\202\256\377\324{h\201\365y^\"\345\3524\321\2050\240\240\362\nt\200\301:Q\235\047\343\364kS\272z\177\003\332-\2278\335| \253\223\307\226\232\023\260\262Fe\035)\375\047\024\271m\014.j9\345:@\317|\273\304}""\211l\221\036(&\370\260C\202\350H}\321\027\353\255\213*X\220\221\3403$\200b\207\267%\373\2605\007~\235\377A!~\203\213\206\356w.\023!W\036\354r\316m\202\224\031\007\026\273|m@\316\337\003z\020\324\005PH\250[\0160=\275\227z\202(\047\334\316\271g\2358\351\265>\017\310Q\037\274\232\334\263\206q\252\006\2063\364\272i\332\303Za\237)4\332 ^\202a\024\t\047\034\273\243il\277c\221a\305,s\016\"\004\211\273\223\047\355W!\t\242\342<\334\276c0Hog068=5\272\353\277\230.\034\223\034\205_\216\227yZM\312\013\240\\\272>\047\304\037h\247\2649W(\204r\241\007*\016\241+\007W0\335\257\253t\343,\360\272R\034:\217so\034\013\030\325\326x\004x\201b\034BN,L\342#\"\252u\323\305U\306\307\250\353\354\364U\317(=\206S-\2252\2201q\245\363\252\243\316\0179\347\023\241|\347P>^kTv^\331un\026\310R\213\022\007m\235\003\331\344y\003\216~\231Q&\256\tY\004\231\036\221a\322y\237A\t\003\242T\010\211\"\202H\310\200\001\"\241##\047\277P\037=\351\274\227\030X\341\217\267\213\177\t\010\225\205\n\3049\265\024\365z\\;\247Qv=\016\237l\347\256\334\372\271\336NN{\261\315\031\177\215P2*i\362u]\256\231\270/P\324U\025)\021\024*6\336J\246\340\253\245\315\324=\203!\203\210z+\365\020A\315\243\273\331\361\303 h\005\323w\362E\2658.\007c?\307W\033?\203+\000\241[\200\235\020\004\000\350\t\n\200\232\223\323\230Di\361\334\371X\000\274\261\244^\002\362\245\306\256\222\211\026h\230^\373:L\013\213dm\010\236qN\300X\275\200N\303\210U\007K\037\032C\220\362\246\256Qi\312\344\341\207\233\216>\177\"\246\026\027\362i}2q\223*- q\345\254bB\305\202\250]Q\023I\305vm7\323\345\235&;4g\013c\227$<\250\322\331\333\363\232\324\026\262]\002\325.\211zt\342\003 \037WZ\335\300M\375\250\023\332\007\266\320Z%W;\365\326)\360\0470\342\375\to\220o@\345\000m\t\027\020&\002\340\t\3517\337\335\363\213}\030\215\3676i.\000\346\031\357j\351\20162\002\r\027JDR\321\022\256\202P\2101|\266\253\256h\306s\207?\234\321\252\234a\347\200\025\364\330\303\317\270\256""\247\323@\255C\365\345)\340\204\010\310@\2358\326C\017\310{\027\307t\020\303+\\\211\010\021\035\312\322S\261\252\370\254\340\004\220\331\222 \306pK!\264Ks\223B\371&\0247X\317|\300\327\036\346\305\016\330\317\237\257L\016\340\3664qL\276S\260\323c,I\002\014T$i4\223\2228\315\3217a[\360\211\2672A\0031\005\032J\212h\264\320\037\213\346\231\342\363{Xa\277>T\251[\002|\335\240\201\027\304s+\367\354\033\200\216\025\260\027\255\273j\n\256\340N\016\220\035\2520]\242\303k\313\362\363\224k#R\033\232\367*\240K]`\257V\274E\025E\204\341\306\206\222\214\003 \244\030\331\310\007\261D\363\241\321l\001\367\232\265M\025\337\247|i?\030i\334q1}AcT\335\206\2411\202\227ER\357\257\207!\002\000\221\224\032w\001\322\360\234\024\340\200.H\302\267\3115)\332\343Sp\327\265\004\034\274\236N\314\201\277\236\361\303%v\3467\223h\362fn\251\337-j\220\225\316\343\253w)\241\303\033\032\335Q\215\340h\324\026\307W\237`\321\010\364B\246\301\252\023\340Q\304\017\234[\353\220\233\236v\246\257\362\033y\237\265\352\355\371\364\026/?$\265F\245\263\250\365\227\367\315pd\202t\253\266\373\257\222\004\307\257\221\372\201\021\353\354\304(\016\"/\001\224\271\262L\037P?b\250\370\251\361\365\374u\031z\312\314\252A\273\275I\316\034\352\360\266H\323\316\3764\203\030!\204cHl|\302\256\325$\266\305\272\374\207\005|\3231\326\361N\262\2560h\370 \203\240\360\023\275\217\250\375$\020dA\006(\203\327\216k\026\rxg\034\031\240\355\350\243\320h\311\217\353~\035\030\353\363(_\263\372\025\373\\\370\024\353\244F\327\035={\017|y\325W\263J{\364\367\374P,\344\212O\236w\026M\337Jjy\341\220\237\257\243Xr\356[\005\220\310\231\363\326~p\202j\207\016\005\247\233\331`\202+\025\202\213\000Eb\305\204b\242\302I\210\274!s\210I\014\323z\3606r\346\243\2618Y\353O&\252*\355\024c\216B\340\314\t\326\251\004\353\022\047Zzw\005\337\372\357\323p\205\376\047\217\311\365z\317ZZ\013\000/\001\033\320\007\005\274U\371\000\230\n}c\2168\212\216@\315\301\301\362\326\047\261\234\2779nO=\275\371\214\327\023N\223N\346\365\320$\324\362\261\362\371s2\335\366""\010fe\302\020SsW\312o7\321v\245M\277\255\265x\r\241$\201\300\222\034\026rs&\270f\332\332t\274\357\223\020\311E0\272\373\2111\272\373\353\014\347\273\034\201\255S\234R\047:G\234>\261\354*\250>\371K\0261\212\326{\351R.ges$\246\013\tq\344\203\3641\022\241\337\353\366\034\246 d\234\276(\264\026\235\372\014\304\204d\3503\370\317\031\221\311\001Pw{[H]\301\276\367\342\337\341\223\307&N&\333\033\355\240\2747>\212}\324\372v\321x\003J\332\331\340\366j\273\013\300\230e\224H\334\325\\\246\325;Si\336\276\036\237\017\023\316\360\204\247U\241\005$\177\313\312n25\260\003\205$\230\016\020\030\341)\307o\247\323\305\276C\354\372\305v\374\305\370\034\375J\014[\246w\370\355\212\\\"\264X\027_\002*\302\360\327x.!]\240\010\250\361\017h\373\000\346\361]\333$o\363=\\\0213\230\016\352@j\304-\025\331a]\234\335\300p\330,h\251\250\1776\204\r\365\230Qi\371\217Yi\307\001\355\177_$S\342\262g6\033L\375\220\237\006\242\310\300\217\205\225\025I\365\252\271\210\202\343nS\216s\347\256\301=[[\344\266-\315W-=pH\257\226\325\032\271=\267\2758\246*aUJ\221\032\025F4+\274\327Qf\204\242\335\244\003\205\013k\255,\213\013\253H\tM\260\323X\263\217\n\320Ip\302\354\001T \005\254=\272\373c\357p\034\364ok\376p\002\200\213`\224\211\223\337\020\240\234@L\235\014\232\024\336\220\271\305\204\274l\00267\014\262\007\253\243\006\305\306\3215q\026)\307\047(\256\321X\033Go7\227Q\325O\0347|/\346y\313\316\306B\241\210\317\200y\375>\233A\326\262\352\365\021\351\264\353\223v\035}\231Ua\266S\202\036\236y5\330\341\027\273\210\006\241\265\252\031\"\230\211*\244X\225\276\245F\222\374\327\307P\325x\363\243\221\014O\250\276\305T\366\035S\360\250\302W!\337\223\312\237/:%\236\211\227R&.\210\020\004p\334c7aAt\006\240-\3029DT\242\025\000j7\235\022\265\007b\034:uH\216\032j\372\303+\224\352\353\273Bb,\323h\360f\1773\341\252#\265\33060\246\276\014V\371s_/\351\030\301\222q\000\340M\307}\203\305\304\246\264\220Z\264\222-\002\264\255Z\005h\005h8\220[\232\026*\317s\307\321\264\3058\013&p\275\034q^\310$[\000\030E\260L[.%kq&\336`\357M\201\311\310\t\302\274d\364\316\022\025\276q\271\322\023\017mo\010\024\004\231\005\001\014P\047$W\256$W\t\344\364\247\336\366UqA\326\336\305\032\3577\356\206>E\213\337\340Y\340\020x\205\"\034BN#\210\017T9\300QGxH\244*J\177\340\312\265\033\257h\007\321\202\n1(\203l\332t\341\001@\020\300\360#87\304:yM\347\247\371\242j\334\232g""\047\232\213\314,o\357\326\367\013{!\031\226n\252\033\340\221w\320\216\373\276\006\372\247\"y8?\233\303\312\361\033\327Z\304\343\342\340*\347{\016 \213\010\310\361\3717\300^\025H<+\036\027\203\223\234\374\026\350Oi\214M&\264\302|b\243\222r\232q\366}\375\256\244\330\240\201\003\306\016\226\372\333\0256f\350\032H\242\305v\337\r\266\2656@\254\337_\267\271\232 \016m\253\262p\361\306\333n\361 z\037M\270\226\232\376\207*{\310v1o\264\231N\370z\341\211\363w[\355.\243Bj\231\323?\366(4`\223\253\001np\262T\244\266\302\206\306\024\373\276x\010\260\037\001\364\210\277b*}P\001\010\251\001\"\250E\306\265\220\037\345\010\020\210\244\"\301\024?Q\023\354\"\212\235\237k\310\000_\r\252\002\3015\215\277\211\245Y\037\375\037}/\250\226\213\030\027\306@Tc.\202\233%\311\304+\031\366?\317p\363\251\024D\312ULf!Q\317s\333\376l\222\r~\356\253D\357\331\326\001* [\021\262_\026@\000\222\220\047\346\017\357\023\313-\373\361C\370\241\374\275\326\266\"\243\354\241\370~\354\306\177\001\351.\226\242\211ve\375\342HL\240\277`Cq\n\303gB3\362qsI\267\357\037\340\371\354\277c\364C\377L\341\014M\363Ztk01\224b\265\243\373\347\356?\353\200\277\242\237b\211 ,\212\047\366\204\203\351O\245C\317\255`a@\253\017\323\205\362\320\047\363\277\303\004W\377\007\3031\361\254P\373\024K\240\277\032\020\264Tc\314\266\267\n\215\326\311\362\321A\302\003H)\363\234\333@O\231Q\351\327\2339\324\377\022\234\364U\255\260\274I\351K/\215$\272\217\244\250\231XT\307\372s\272\036\347\351R\363\374Z\2006\302\242\222\204\357\335mK(|\305\264=EK\017\217\242\354\323\325\365o\241\352\354\207M\351\251\201|\025\037\266\223\014\202\223\271U4\n\217\202\242cC\033\314EFb\327\017\241\351z\236\265\377O\261?\210\204 \000\225\265\352\217\260\225[j\036\310\246\035Z\223+\253\361a\200\002\343g\327\374\272\376\r\276\267Z\353;\r.\353\322\205\235\233\216\316\220n\262\362)K\331W\263\005\002\266\n\216U\025\034\211\2341\023\331\373L\270h\322\245$\235\370R\250\177\342\322\241e\005F\237\252\355\313o\353\373?\245\023\255\330\247\321\231;\007k\017\010\211\332\230eO""\351\212\230ea\206\330=\312U\214\025q\203\240J\333\366\206\327\335\332\3316\255\334\2226\366\276\252\332\341\271\275Mf\322\365\014!I\r\3442\321g\3354\nF\341Q\235\255\315\343{\356HM\320\025DEV\013# I\374\343D\0337\3340\375\227\047\377\250\245*\334aE\272\227\251o\265\377\377\346\202\233{\233\325O\246\024.\316\277\320R\332p\n\216\026\206\030[g\322\343\336\255\214EK\n\t\302\263\013\250\"\307{\263\3146\315\257\355\302]k\341\263\205CyN\332\206U0,\355\342\342\027\002\0060S\266\230\270\202WC@\244\004\316\200@o\024\244QXt\273[\364\t\264?\305f\325\277U\033\245)`\250\333K\036\000\335\246\356\005\002!h\002\224\331\352m\356\033\265O|\031f\336\305_\205Q%&\353\r\341Q\276\205\201.S!Q\277r\305\013{\334\315\230\020\355\037\331\017t\0208\242\243]\332o\363D\336\367\253\204\246\027\327F\203\340T\256W\"_\365gyp`\320\003\337?\266\263\3037\211\360v\350\225-\003\363\220\222\010t\205/\267{\267\301S\202\301?\247\373m\200N:\0047\300\240\200\033\205\010v\346\0325]\351p.G\301\333\025\036\047\000&\345\273p\370\255/\036\212\234=\313\233\314B\034$\263*\243K\002\353R\3011\014D\302\302)\332\313\340\372\351_\207z\243\360\247\007\027\236\267XV\373\213\241\302\340\t\\\254(*7\334\367\005,\331\320&\354wQRC\322\007t\340\261\3762\244\337\047\007n\234%\245\302VR\274\002{\332\333;f\356\262W|\243p\033\237j\030o[\275\276v\350g\333\022\200bfR\373\027\035\315\307\370\360\353\024\241\016o\320\034l\217\203\376\004I\206\213\324\203\337\355p\307\300G\324\231!\225\361\241\201\014\362\025\243\334{\275\371Dv\210>46\326%\030T\266\320\241+R]>o\177v~&\223\365\212~\305=\321\250\224\222\304\022\346\212\277\3744|?\177\370\202>*~\250\237\225%\314\013\024\013u\025W\376{\034?\302\374\251\n\205~\362\320?\352\002\tDA\272)aJ\326V\207S\376;\357\353\006\t\373 4\"%H\331\271N\231\336\352\303\320\364\020\245>\247\363\252P\022\n\\L0\252\232\223\355\374=\226W\350\004\367P!R>\370\234\270\207\233\004h@<\337^\216\247\362B\177\265\021a\021\305T>)x/\273\001C\343\004\013\020C\355\020\016\270)\322A{\342\247\312\210\034\305C\363\010\237\366+\354\212\036H\211\343\242\0360\251\342*\361\221|\325C`W\372 \036\260\001\352\000\370\004_\320\202s\321\017A@\370\200~\005|\265\017%O\302\247\220\0478C\320\003N\336\3647\020% ,\023\357\211\354\004\260\252p\201[R\264\205\013f\2675\273s?\243M\235\215\277\220\220\223fd8\346\353\035\3169x\243\225\004\t\243\264\211u4v\243\322\221Gij*\3114\245\022iH\244\315&fCK2\314\273\271B\244\005b\264\225\"f\222\002\006U\243\304\270\367""\244Ic ((\210\004\000h\300\004\025\347\267\302\324!UU\224b\036+\020\357\223\256\\\267v\263N\311\216\3339\213\272T\312^.`\243~]\\\321m\306#\215A\202\310\316\223[\221\220L9\303\010c\001\004\010\235Bv\373\266T\266\325s\013\016\034d\306biS\013J\252\313\305\207\235\335@\030N8\374\367y\255\272Zx\035f\332\314\\\335\311\231\243y\313SWK\205\375\375\215\236NZU^\\\257FZ\323\324\360\021\020%\275\207gK\305Z\312\342\316P\221r\211\010B \241\023Z\240\2657J\351\250Q\225\026<\323\\i\333t\343\2168w\244\3133\320\240\241\002\223Ed\010\260\2442\314P\025\2300\230\003\362\047\227\344\014\220\301}\2733\362\353\001\236\345*\047\372up\331+2\266Qk\341\205\212aJ\364h\343S\276\321\213\340\231\335\341\207\2117|\277\217\363x\347\263\310?\312\247\224\036\303\335nm\231\330;\203\304xd\230\"G0\244\310\321)\227\032\2310\252\025*\n\\\314\312\332Q\022\332 \262;N^\334\0279\351\232\313\207g{\266\367\305\275v\273\344\244\220\216o\254\245\na2g\017\206\313\255[m\272\327c\034\326\371\013\200d-enfa\224\326\252\"\256\265\206de\306\345\2273\034\025s-\347\213\317M\265\275x\340\316\031\303\020\222\021;\346\326r\343\2328\273\361\267\007$\n\357\231v1\336RHMRHJ\007\014XIf\223\r\251\211\022\006(!\005Y\242HOV\036\361\014@\226A#Th\356\217\"\214\250\033\235\312\036\036\267\364\321q\201\243\260K\331\236\322\334\375\247Lc\342\370C\237E\022{:\251\350\314\t\373{\177m?\344~\367\327\253\273w\201Kq\004\214\2225U\005\030\224\264\251\033AB\333\030\212Db\210\252\252\254Ub\310\275\214\222\007\2349(~\346\3047~?\257\234\363\253m\236\211\221m\311\227\26791s\3034p\246N\035\030\023\267\322\336\347,\343<\250h\204\223\022\313r-\220R\325-[\001\261\014\224\301\275/\013\322dH\221\"D\202\264X\371Q>/l\013\334%\376?\253\367\243)>\300\023Ma\365\n\027\002\006)AY\022$|\250\003=T|\250\226(jE~T\274\267\340\250\244B\244\203\202-\224gO\270\271\360\027L\346s9\224\330\330\230 \2409\3155\234\372S\241|\310\320\327l\217\033\340\262\353|\343\216\023\207\200\302\243sl8\333Yxx\3037\272\341p3[\025\233m\264\330fo\232\335\"\357\271\254\341\224\253\206\270kK\372""\262\324\t \326\260\256U\245]\342\202)\372\305\241!E\246Yj\241\210b\000\032a\3764\047T\223\242C[\357ts\255k\025&kc\226\032\264P\340\327\205\261\307\375\031n\264\277( z\300\016\244\037\230\017\210{\005\013\002Y)\026\224)mdK\002X\n@(J[\026\001*-B\245Tj\241Q\255U*\255V\245Ej\215\222\225)B\222\326\025\2626\002\326@,\255\202\221\n\020\244\263d\033#f\326T\260\266\032\024\244\niB\205\241\261`\002\302\330i@\240\nZU\245i(@\241i-e\033#b\326E\260\005\202\326\020,\245\202\225i\032KX\004\262\026h\006\201\242\326\001\260\261\010\204\311\230\004\310L\205\204\013\000\241B\005\ta\226\005\260\266(\006\224 \014\020\252\024\240\ni\006\211(RI@\241\230@2\006\026\020\260)\230I0\013\005\nP\225B\024\205\024#HW%\224l\215\212\024\245\252\024\240(\240\032\026\216+\010XKP%\tI\235\260%\222\317\306\312\266\002\307\345\262-\203\316\264)H]\365\203T\n\251\320V\212\024B\317E\n\240Uj\364\224*\tP*t\201\252\255D\251\322D\2525B\247I\026\250\225B\276\300\013\010X\033~@K(Yl\376@B\300\226\033\253\260)\034\252`\331\314\354\"\346XX\311\346/u/\346\026\026/u/\025\036]\352\236]*\224\262\212\356\207\205\245\265e`\266\252\252\331L\276\373~\026\313\333\375(W^T\330\312\213\n0\243\0302\243\351\273\320\333\rE_,\314\365uO-\346 \217\007\331u\340\252\212\274P\352\005O\026\252\007!%\315\310R\367\243\305\254\346\333lF3\030\361\032\206b\0331\314\207\257t\315b\002\235i\036JX\302\272\204\206S^\357{\305\266\255\331\245L\251\324\275\220-c>\271r.\263\224{\002\010\220x\340\237l\020\335\210F\225\271\260\202a\240c\035\202\324\300l\341\272\013\367\177\313\316\226U\373\323\355\0072W\324\002u\205GH\332J1\267\234)\256\263\266\006\334V\210LS\241R\007\267\214ot\t.\303\177<\347\317R\341\313\006\343e\267y!\312\313\205\374\022\317\r\277\274\254q\370\353\206\007zY\"\3639D-\224.\334\345\311.\335\353\276\2532Tq3@u\2418\363\340\021\006\356\365jb\207\n\263\320N\362\345\214b%6\256&\037\330F\224\315\353.\010\235\215\352Sa\032v+=_*g\362\320\007\021Y\261\260\000\350\226\001\375\254\252\230\207\271\014\265\200\371\302%\321\016 3o\007""\244\246\221\313\226\372,k/\023\273/C\005\254\025\363\274\003K\016b6\205\265\262\2520\323\310\3248\205\003\227n\347\320|\261\231g\363\2455@j\352Q\265\363\314\322#l4\017\241\351\315\021\302\342Z^\362\367^o\367\307\252\341\227|\325e\232\010P\210\221K\363}D\n\3412\334\212\022\263\366Qq\"OQ\373\273g\352\376w\016\006\242\356\013\331\307+\320\035\240Wu\337\2071\007\207\023\350y\345Bq\375Rw\246\334\275\224\315\224\312\335\266\223\315grK\246\007f\213E\250\332\331\302\\\266\273;\237\315\342\000~!\203_\250\021\031\260\001\35338\310w\30721\250c k\235\006^\200\345\013e\223S\357\271\013s\271\322\312Rf]\265\201^\240\353\334\205\005\230AVz\241\211\237+\235+\365e\346\036\"{\300\007E\231)f\362\013\331\363\210e.\273R\314\316f\220~,\364b\006\021wg\347\347\241L\337t_\270p\256\324{\001\263\205q\0269\332\333\333\373\312\245\356K\335\013\220y\337\347\337t\177\377c\270\033\032D\016\232\000\024\274\037\375\320\366\227\025\222\322r\241P^\204\242\204\207\246\023\006\363\032\326\323\375\245,\373*\207\303\376\243\374\267\340\2411\244DM;\017\335\033>\356\353N\302\210{\036|\347U\247\000\006\365\205!\335\254\356l\021\305\306\013\251\360Lxt4>8\023I$z\0072s\335q5N\251\210\201\360\320L|\340fd0\245b\306\335\301\303D\216\207\023\341\261\336\201\265\245\245\317\006\262\300\370\361L\031\242\363\335\0270\224+-v\177\327}\345Rw,\273\006\263\360R\367\367\030\300\304\030\363C\367\225\336\301L\036\253c9\367\270[O=\212\231zv\032\312\224\026\201\273\243\271|v\250P.\273\3365\344B\344\361\nLKy\034\231\273\307\nj\020\014?\314\0263\013\331\3461\356\000\021\203,\207\225\230\200\305\030\236\214\r\316\304\342\251\231\341\370dl\250\327M\205\214\317t\203\370\220\315,+,\343Q\031\227\367V\312\rl9\036\3547\022\361\311q\206~\004J\357\241KO\347\370\031T\016L\356v\276A\004\321\330\370dJ!\200Z\202P4\025\205\351\347N\244W}V\372\006:\360\332\374|n6\007e\356\036\321\355\232>LN\016\017G\007\243\221Xjf$\232L\305\023\267\341#\254\036`\215\255\374h,\025I\304\302\243X\377\361\004\244PCN\367\010T\002\224L\247HC\226C3#\341\330\320h\304M1""\n\231u\247\326Wd\242Q\310i&u{\334\246\263\255\306\345\037\377@5!U\013\251h<\026\360\325Hai.[\014\370f$>:\024I4\377\302G\033\377L\322h\247E\010\257i\361\355Vfm~\031j9<\227\201\211\375a\326Sm\243\271\373E\234\254\261\342\274\225\006\362\201\2522V]c\221d\270\031\252\261\341(\310\252\336.\376(\2033B9WT\202%H\035\227!\313\356\301\276X\301\363y\367\005\220%\240\305\227\327{c\320\366\221\240\344\332\312J\241X&r\220\224\344\344\370x<\221\212\014\365b|6_X[X4\343 \312\277(\313\271\355\275y\003\242\2110\221\235-`\346@\35670\022\203x\005#\306r\001\346\255\373\246\027\227\001of!\223\313\367\261\014a\326\206\211\031\346\n5\351\227\276\351vg\001H\224\325\343\366\240\222\351\365 \273\224\273\017\271\224\2630s\003e \334f\325\340\236\357\036\217\214_\276\366\3255\232qp\300\202\031g\355\276\022\334\262j6\271\277\226[\002\001\241\273\014\255\000\205\346\371\356\365\302\232\232/\260\270+(\340\261\017`\340\314+\001\025G\320\363jXR\243\344\014|\016\254>\337=\007\3650\253\352\016\276\036\316,\225\262}\3615\220\240\346/\047pR\350\216\000!QXL\003\262\244\207\330T\241\320\275\214bI\363~\230*\346\240u\256\301d\354\375\266\230[\331u\346\245\0047\262\300Bj\236\317\235\255\047\363\017\362P\017z:\022\001\325\264\047c\267b\361\251\230\022M\32280\343\210\010\202W\t\047\273\014\2569\241\266\226r\313\271\262?\026\246g\245\021P""\321SYX\244b\361d\366S9\234(\200eI%s\371\342\357@K\277<\232Y\330\245\004w\245D~/377\003\203G\366~v!7\367\270;\177?\273\224E\036\317jQg\005:\tp\344\034\260\334\035l\027\365T\273R\200\025\r\266q\030`\260-\232\001\037J\240f\232Kj\260\233+d\265\014;[,\224\224\n\244X\230\315\202\357>\312\034\220\014$Zl\354\331<\376.\314j\271W\257\335\261?<*\026\200\370\271\034\320T\302%\013\217_R-Y\257?\346r \313\026\261\310,\001\216\245F\206\236Su\253c\227\327@\024\200\221!\323\255\024\016\224Z)\033\2640\247\326bZ\302KB\047\314\226.)\034\347Jb\315bg\341\345\\\251\244W\266\253kj\002T\332\216\007\331u\324\260,\2404\360PW8\222\212\375\n{\020\344\001\276\336\\I\227}\016\272>Mp\337\330U?\321\006\205\310.\257\224\327\025\275}3\2630u\365-C\207\311\221\226C/7\240&\240\317\303D\312\223\255\301jr\321\227\242\014M\376~\037M\205\310X\rP\037jo\241\010m-;\207*\032\r\320\254!\277b\216\366\227\326\311S^,\352E\215\016\302\372\013\227\233:\362\263\031\243\333\352[y\234#\320lay\271\220g\000\\?\261\240np\n`F\002\306\224\222w\240<\037\036\014\017\016\016\200\330\2274\356LR\241\360\004\373Pz\300e\342\314|ni)<\030O\342\237\2336\336,\235\233\"8~(<\204\377L*\327\347M\026O\016\252\0377\241\365{\223&\340\237\233,\321$\3214\256\274\360\317M9\3354\251M\322$\205\233 8~t4\034\017\307M\242xp\242\3618\3743i\306\233$J\304\3431\365\203\354 \327|#\203\001\037\362\204\301\251\222\321\030\376\231\204\326\353I\227\n\307\360\317\244\263^o\272\004\374sS5\341o\372\306P$\255\177MR\036\360\245\036OD\007#\306\265_\360\240\347\233\245\245A5\374&\365D[\032P\355z\200\267\356\201\346M} \222\n\343\237Ii\275\236t\361q\370gR\271>O\242\302\334\372P\341\267\034\272\2430J\243\233\\\204\261\005=\351lQ\001\007\007\243\360\217\276\267>\211iph\364\352`\">\225t=\346\003O\330\367\331\347\003\243\341\301[\346[\026\262\010\374@?\026X;D\207\"\326\307\276\026\000\377\227\243\321X$\231JDoEd\210a\360\001\375X@&6\004\220\227}/!\376\217Q\366\206\346\235\204t#\3360C\023\000\366\343\232\032\211\246\"IXqF#\211\244\017\300\260\005\301}\350\302\330\022\343""\261\310\320@x\340\2667l\221\005\201\375\270\206\322\341\330`d`4\016\225)\203\014\223\037\352C4\020\031M\341\232\232y-\002\017\304\377q\"\022\276\025\236\n\337\346~\366\271\007\344\373~p4\016upc,\234\230\034\210\337\231\364C,\256\340\010?\3068\0248<\212\254KN\301\360\034\000b8\203c\002\220N\242\232%\234J\205\025\267E\230\243\363\203}\270\206\302\211[P\226\311\241\301x:\222\360\001,\266@\270\037]\374f\224\034l\321\314\3130IH \016\231\272i\312D\370F<6\035\211A4+\271\007\302p\005F4\303(\261\005b\332\r\313\215\3608\216O\370\247F\205\000\220\305\327$\306\2174\021N\303\250\211\243\202\346\274\0040\204Ap\037\272\221\360\330\230j|\332c?\027\341\200\317b7T\037\214\211\000\377\334\003\013@\221\010\217E\255\047\021O&e\210c\363\002\233\240\363~\3224u\364\306\310\024\360\207y\331\247\022\022\360\361\255[\341[\021\353\033\213\017\211\000G\345\2015C\346\373\244i\372\370\030\360u\203Q-\025\031r\233\242\004p4\001p\037\272[\321\301[z,!\337\300m\034B\224\010\340\201X\324\301\021\315p\373\276k\226\036\346\335\241Hb \236J\305\307\244\311\010\356\361\244\242\272%&\375\020\21328\302\217q$\036O\331z\342A\206\313\017\rB\224HQ\347q\375\002\205\000\371\277\037\207\341\020\362H\305\307e\210\341\360\001\375XR\300\305\310\3208\210\230\221D\314\007`\270\202\340\001\350\260\242a\2651\025\035\034\361\20692?\330\207+\025\2765\231\210\272\036\373\265\010\007|\226\234\274\025\0051\210\373""\371\307\022\344\377~$1\231L\351\276\340\372\331\367\036\220\377\373\204\031\021\310\307\276M\354:\002L\306\242\023\223\221\317\023Q-\306\363\240\305\021\000\365#R\" \224\321]\364{ \014]`\204\017\3434\245b\235\323\013\2628\233\304x\220F\242\243\370g>\263^O\272\261a\370gR\271>o\2428\374\233\304?7e|\262YR\233$8E||\034\327\300\3321\211E\310\373A\"\021\031\325\277nr\026\360\246N\302\277\021\374s\023\047G\232%\265I\202SL\216%\047\307\364\257I\312\003\236\324\351(\3743\351\322M\272\020W\177\341\226\371\020\214\264\223\243\251\241\310X\030\377\350#\346\225\337\017E\223\341\001\030)\206\242i\370gRG\203UtC |\216D\225vB\271&\271\014z\276\031\217\017\271:\317\241&\332\317\241iW\001\333D\023\353\0325\016\025\312\221\341(\374\243d\326\047?\200\002\33327+}$\021I\300t\351\342j2N\271}\267I\047\216L\217\303?\223f:x\260\212\254\256e\226\206G\343\361\204\372\2414\334/\323\017C\313\033\266Z\337\341f\n\340\341Dx\020F{rLj\021\362|\220)\232\355F\343\366\315\314\240Q\330\314\214\0270\037\220p1;\373`\246\260b,\326\324V\016\213_\310\226w\211\305\315k\221\215N\246v4gJjsI[\364\261$h\363\264\304\302\270M(p\224\3122\274\226\317\241}\031\203\271\206n\363K\231\005\213{\301cw\027\020!\211A\27051t\301h\217\350\006\226\n\205\007\3673\263\017\\\2006\243\363dM@\211\236\014\356\334pq\315r\336g\257\047b\002KQjR\212\222(\305Hx\304\364\216\221\340n22\026\036q{\320H\223\2764\222\232\031\032\034\207.\024\037b^\363\221\017\022\364\361H8\031\261>\361)\003\370\276\304\310x\302\365\330\357D\330\367Y\022\3045r\354\047\311f2\034\304\245\022\221\030\256G#\334o?\365\202\202\277\037\213\017E\270\337\363=\003y\276\317-,\216\026\036)\03314\212\215\216E\243\256\246#\332D\347\301\315\313\310\272\354Vx,\214\177\224\236y\345\247\267`N5i\202\007\236[C7\341\237I\343\372d\"\344G\030f\327\033\256g&\214kUO\220\276\r\2066\301\250m\337\006#\343\251\000\220\017\2417\246\031\322\344h|<\342\t\372\220qhSD\336o\202R\307F\315\2549\032<}\216\306o\364_Q?&\035\363{\222\346\362\3311\250\316\301!\374\213L\247\310\241\3042$?\305\270\341\3504""9\354\003\033\362\177\300\2225I\243\377w\3235iic\341\304\255Hj8j\\7\275\010z\277I&\243\352\307Mm\375\336\244\351q\374s\023\246\307\233\244\203\362O+\233-\343\272\237\210\240\3573\233\254I\n7A\263x\024\334\310\3213h\256\234]\236\231\261 =m\216\301\212\016\367B\215k\360\312\240\007;0\326\362\264\031;\243 \231A\0171\256I.\203\376o\0241QILt7b\2421\370\247yL\256\373Yl\027\036\303g\341i\375k>\366\326\221\017\022\204B$n\226n293\0245\256\375\202\007\003\277\0313\256\374f\254\33176Yp\212\370\330\230\253\032\034k\242$\034\003Q\037\377L2\353\225\351b\341T\"f\367\351c\315\266\354c\361X$\226\216\306\334\325F\254\311\272#\226\315\024\343\003i\370G\321\326\047\023\306\265\335\314Pn\026M\377\224\355\3448\016\304\261Tt4b}\364\255\017 \221Qt\"\034\273\305\274\362[\006\361|<\252\252\220\034\363\321h\363z\325qc\344\210\017\202k\003\026\235\343\356\ng\274\311Zg<\035\035w\231:\336\204\275\343\3518\374s\0235\303\224\202\177n\242\340\232\237P\332\033\375K\tD@\246N\300\250\353\016S\211&\003V\">\010\377\306\361\317\244\264^\177R\374\353\277r\205\034\373\005\013\371?b\311\232\245\261I\202S$\243\twJH4\231\034\022\351h\302\255\202D\272Y\242\370(\376\271\311\342\301\013+\325\270q\300Nd3\312\034$\031N\300?\230t\365/}$\002\022C\322U7%\233(\236\320d!\032\033\301?\223\322z}Im\222\340\0240k\272u\234lR\333\311\261h\322\025/\223M\004\315\344D\"\205\177&\231\365z\322\245\206\206\"i\375k\322\362\2007u|pD\375\014\353_\367\023\026\010\370\004j\333\270\374\213f\215@E\362\204\301\251&\007\340\237I\346\372\274\211\230:\247\231b\0479\tC\225\222\366\255\317\375\304\003\360|\251\026\310\311\305\314\\\341\021\232\023i\237\2622\322^cgdC,\262Dyh\304\260\222/\254\254\317\314\270\301\271lv\305\003\202\201{\r\326\3453\251\317S\237\023\324\365H\312R\341\030\374\033\301?\2230\334\244]Z\233\262f\326ex\250iP\375h;E\346\235\031\\*\344\263\034\020\207/\275\341p~n\330\340!\360x6\373\200\207\047W\3462e\201H\031!+@\315\260O\013\364\323\002?\307\310\020\372\3611t\002\033C\306pYT>L\026\021\307c\321\304\325\217\305\025wq\305\275\270\342.\2568\303\025\267\270\306\343\372\327b\033\267\350\306}\370\306-\302q\216q\234\241D+T\343R\2132\026\254n&\006`r\342a\226\235\001\233\272\233\320\034L\357\256\264\006\323\331\214F/}\3363A\301PN\251/\316\222\033\030%h\366\245\260\204\373\2428\365\276H^\004q\n)\010&\310\2271\214x\177\204$]\3063\302e\204 [F1\242\365\001\023\356\347D\022\304\022\307\000\202(\202[b\010\300\211 \220\310\334\234\234\362\206%\021.\224\023\"\200\036b\3348N\220\013\224D\271`A\030\236\250\342~u \313\007\220dZ0\247SB=\204\332HN\251\205JR-\334G\253\237\022\037\021\315\362\367e\035\220\253\310\220\316\214\311\220 \300\300\030\t\034$\21101\214\014\003\022\204\030\240 E\035 \023\201\261\370\2207,is\241\234:\001\364\320\347\306q\n]\240\244\321\005\373\251\014\240\302OB\323\374\375\231\007\345,\262e\047\343\374\020A\r\2073\222\274`I\027\217e\304q\260\240\220G02=\047\356\002\201\234Xo\224\2457(F\220\354M`\251\366\306p\302\275q\234vub\211\373\005\245\032\302\010\264\000I\227\2063r4@P\241A\"s~F0\010&\211\0211\234(_\204\2078\021\317\211\024\021\222X\021\305\210\246S\204\"`\216\"\006\002y\031\274Q\266\020A1\242\024\336\004\266\030\336\030^\016o\234\277 \001\344\371\311jJ\216\237\214\240\354y\266\374\004\245\037\302\251\021pK\222\017,\350\022\261\2268\001\346\024\212\010N\2468\233\031\004\023\244\312\030F\254?B\222+\343\031\3012B\220,\243\274DGc\021\031\362\021\2120\017\211\006\344\047\016c\000\047\210\203-M^\250 \213GZ\3128\224\023\307\341\202>y\3369\030*)\365\304qr\003\242<4{Rp\302=Q\222zO$+\202\347|u \220\027\300\033e\351\017\212\021\344{\023X\352\2751\234xo\034\247\235\235\347\366C\004\325\034\316H\366\202%\275<\226\021\313\301\202R\036!\311\324g\306=A\017\201\004\024\3241\230\2274\212\022t\021\314C\024A9E\366\004\272\017 \250b`F\227\007*)c\221\2146\006\025\32418\247O\234j\017\202\t*e\014#\324\037!i\225\361\214\\\031!(\226Q\202hvz>\000$I\346\021\234b/\334C0\217\346\364r\270$\227\3070j\365i}\356\347\364\021\304\022\306\000\202\"\202[R\010\300i \220\310\234N\373{\202\222\004\003\344Tp\230\207\020\023\305i10I\216\201r\212\314\375\001\236\240\240\310\0052\212\004LR\344F1\212\\\230\240\310\205r\212\022L\2562W\024pj\022^9\212C$%\t\257\334d \202\212\204ON\342\267\032\370!\234\032\001\267$\371\300\202.\021k\211\023`N\241\210\340d\312\333\022\002\201\202XO\024\2437 F\222\354I\300\250\366\304\010\302=q\214v\357\255\014\301PN\275/\316\222\037\030%\350\367\245\260\005\360E\361\022\370\"\335\"D\242\243\344X\"1`\2502~F\006\202L\276\350\267\031a\310\305<6\254\177-^\360\033\264\344eX\001b\220\202\327\342\204\200E\031\327\277\223\3440\324q\273\2544~\216\213\232\302\006=\013\262,\010j\262\241\240\315\212\0006;\274\033\303\365\260\314T\320\315\313\r\361\254\024\320\315I\205XF*l\363I\352\337\021rXNI;\027\032?\317%i\347<\364\263\034\222#\034?\307\310\020\372\3611t\002\233E\246\216y\270\036\213X\007\rn\033b\3505\320\344\240C6\023\035v\363IG\365\257\315!m\247\337\264o\342M\333)7\315\047\333\264\235f\361&\020r\\\244*@X]\277E\253@\204W\371]\304*\344b\216\246\365\257\305\033u\r\202\215\227a\215\272\246\300\350\2658\243\326\010\330\334,\302\274\026\271\001\230\034x\230ec\300&/\023\266\031\032\210\233\253\262\211\037b6\361C\326&~\310g\023?dm\342\207\270M\374\020\263\211W\247\024\330Q\002{\222\300w\220\300\236#\340""\307\010\330)\202\310pT\377\272\330\320O\350\214\327\342C\010!D\257\213\021\003.J\325&x\223`-\302\337 X{\020\315\201\267\006%\031D\224(\031aBd\304\212\217\021\237\340\030\261\"c\204\013\213\021&&2\371\302\212\024>)\302\n\016\\V`\342Adz\\\377Zl\323\256Hi\274\014\337\264+@\242\327b\234\266\342\242\272\312\305\270.Z\035\"\3046`Qk\030!\327\001\027\275\016\272\031\350\303\024\303\374 \3050;D1\354?@1\314\016O\014\213\203\023\303\374\320\004]\027c}\026?\205M\026,\310r!\250\311\210\2026/\002\270\331\341\243M\303\243a\\\022\253;ZRxo\275z\334\212\003\206\213YL}#[F\220~\322\310\206\243\371\371\202\016\251\267\224\334\367D,|\224.b\321\241\370J\323\204\372M\022_\004>\010%(\263\020\"m$\254~\\n\215\270\235f\304\333gF\334.3\302z\314\210\3550#\252\017\216\260>8b\373\340\210\257\017\216\330>8\302\373\340\010\353\203\354\326\025\031\262Y0\230\311\312\003bY\262\030\2235\003Y\022\030P\222\202\267\270\210\200\207\020\005\022t\270\020/\031*BP\241 \036\"\024\214\321\240o\204\341~N\001A,\001\014 \362\047\270\315\236\000+\221\250\265\017\211r\313\220(\263\t\321\357\275\231\241\315\276\365\004\001\274i\207\0347?\025\240\014]\277\315Q\201(K\345w\363T!\223\351\255A\365c\261\2723\302-\357|p\313\235\rn\261\271\340\226\235\tn\r\335\324\277\026\033\370\r:\3622|\0001\010\301k1B\300\240t\257\300\341~}\301\217\037\342f\353\205\023\tA`K\2167\226H\363\202]2\275\021>\222\003\310q/\022\n\206\356\366\205\277\0202*\250 6\205\25706*\240@6\322_(\037\031\3152\367e\251.>\362C\002\n\255\341\276\234,8(?\035\033\234kP!u\204\277\200\001I\335D1\365c)v\027\020\243\336\245\303\250\273h\030e\313\205Q\273PPw1\031\327bT!\203\324\r0\274\nfP\253\200\305\256\202&\0035b\340\005K\344D\246S\326\347fh\302\224%\017\332L\r\224\2625A7c\003\260Y\253\333\237\254Od\207a\226\235""\t\312\354\020\312\262\303\240\310\016\001<;\221\003G\037\200\233#\226X\031Jb\037\033p\307\330\200;\346\037p\307\330\200;&\006\3341>\340\232\253\251\230\227\345@\0007\027\026\3469\021\330\315\215\302,G\202\330\\\223\311\250qY~\030r33\001\236\023\302\334l0\300\362\300\240\315 =N\016C\237\036\267\330\323\343>\344\351q\213;=\316Q\247\307\031f\335\220\364\005M\314\313\362!\200\233\027\013\363\374\010\354\346Ia\226/AX\336<\027\226\201\0377C+02d\014\227E\345\303d\021q<\026\r\335\330\305\274\026\257\001\030\354<\314\3620`\223\223\t\333\374\014\304\315U\267X\336XY;\3657Q\326:E\303\344m\222n\010c^\213\334\000L\016<\314\2621`\223\227\t\333\014\r\204\347j\330\027\365\262/\352a_4\230}Q\017\373\242>\366E\275\354S\347\377\315Ee\314\313\362\216\311F\314\303<\357\230l\304&\314\362\216y\032\261\272\261\314\3650\n\374=\211\301,\035\315\372\023\213\261\324\004\364*\006\2244y\362\225Y\006\346&3\362\346\301\321\253\253\271\230\227\347\245\00167\033\026\371i\260\315Q\207y\236\032\342\311u\214y\275\271\216yr\035\013\316u\314\223\353\230/\3271\236+\317\205e\340\307\315\320\n\214\026\2312\207\034c&\220c\326\354q\314g\3528f\315\033\307\270I\343\0303c\304{\345\310\261H1`\260\032?C\213 \203\027\375\0261\206\014\346\230\276\242\"\306\357\250\210\261K*b\376[*b\354\232\212\230\270\247\"\306/\252\210)\335y\214\351\316cVw\036\363\351\316cVw\036\343\272\363\030\323\235\307\007\322\372\327E\211~Bi\274\026%B\010%z]\224\030pQ\352\347\177\315\212\321\336\177\047\002n~\014D\331z 6w\026AD0\210K\013\203\031\222\330=z2\344\245B\301$\031.\310G\207\212\221\204(\220\227\022\005tI\0315C\200\271\247\317%aT\014\000<\310\262\036\025\335\337\004m\226\243\262\363\323\335~\326\347\311nLf7\026\230\335\230\314n\314\233\235\355U\343j\237a\234\3553\214\333}\206q\337>\303\270\335g\030\347\373\014\343l\237a\\5\372q\326\350\307m\243\037\3675\372q\333\350\307y\243\037g\215~<\035\327\277\014\245\2452\355\2432m\251Ls*\323\234\312\224\376e(S\026e\312\2072eQ\2468J;\216(\345\255~9\336hk\031\210\324\265\372\342C\327\343\346NA\"""\200\205,\r\004$2(\344RBaCLB-<\022LXLXi1\341\023\027\023V^Lp\2011\301$\306D|P\377\216\223cQc\300\3406~\206\034A\006;\372-z\0141\374\tr\372\257\\\261>\236\215\n\333\234\334\240\310LAm~*\310\263T\000\236\253\310\201\243\017\300\315\021K\254\034%\307\310\020\372\3611t\002\233E\246\026\\\t\266\334J\330\305V\302\267\324J\330\205V\202/\263\022l\221\225P=4\301zh\302\366\320\204\257\207&l\017M\360\036\232Hs\224\361Qr\030\322\370\250\305\032\037\365\241\215\217Z\274\361Q\2168n7j\022Y\2743<\253\037\231\240G\311\315S\253\370V\252\262C\322\367Y\272\036\227\004\n\022\021,d\311 \021B!\227\024\n\033b\222\314\320)i-\234\222>\323\246\244\265iJrc\246$\263b\322\227y\341\335\231\344X\324\0300\270\215\237!G\220\301\216~\213\036C\014?\307\310\020\372\3611t\002\233E\246\306\223$\033O\222vW?nQ\301KE$\237-\032\000\250H\340s\213\002~S\004}g\241\276\363U9\026k\330\016\240\256\237a\016\333\001T\371-\3660\033@\371e\210\354.D\377U\210\354&Dq\021\"\277\0071\245\r\\R\334\302%\305L\\R~\033\227\0243rI\t+\227\0247s\301\365\312\215\210\353\261\330u\320\340\267!\226\203\006\232\317\213\203\034\036\364\342 \213\017xq\220\3056{`\220%Q\017\014z\303\320O3\014\206\337x\202\370\354\2406\370R\345IR\2014\210\030\217\357K&g\350Q\316\344\314x86\024\2060\014&\303\211\360X\304\000(\335x|4\234\020\321\032@\3213\343\353\217\341\017\337\322\231\211e\037\227\023\331\371\231\031\262\247ME\343\261\231\030|\003\311ff\324c\216\340\344\363\2052\2147\350\237%\230\344r\023\346\316\314.eJ%\373\022\225y,\202\277\022\001~$\004\335\302,:\210\024]\254\017\365\330ap\325p\254\372]\253]*\211\352ff9\223\313c\302\345l9\243i\303@anmI\025n\271X\230\311\346\313\352\303\031\252,t\263\217""\320Y)fW2E\005Y\001\016>T\013$\014\341\223\234&\255y\353\302\274/93\203\317$\232X\365\304\344\314\0144\211\207\331bIq\016B\320\004\320u\337\233T\345\235\323z\262\222j\356\300\232\322L\256\004\354+\026\326`\251\227\235\301\347!\327V\020\223f}imv6\013\345\001\200b\340\032,\340frs\336\260\047A\021x\010\024#p\301\332C\263\2402S\246\260\265[&\200\337\020\232\"\002\215\244M\234\337J\232b\240tl\341j\200k\264\022\235YQKQ\004\347\\\203H\014\025\265v\021Z$.\205\r\337\220\355jM\214I\260\n(\332\007\366\346Y\n\316\263D\353_\340\367R\241\224\315\314,\346\026\0263P\r\217238*e(m\t\t\312,\351\337+\332\351\207\352.,\255-g3PGK\331b\006\373\014\367c\201@\032X\360\302J\370\352\n\007z\023-g\036\007\200|\237i\300\n\2209\227).\340\253\237\372\211\317Li6\227\313\224\312\353+\331Li=?\233+\364\271-\254\224)\027u\2212\017\027\264\347\376\375\354Bn\356\361\375\\\371\376:4\332\253\320\2325WK\345\334\354\203\331%l\227\320\277\312\305\314l\026-\346gQ\302Q\354\232-,-e\325PQ\232EN\344\241\047`\002\345/\341@07\227\305\306ojO\365q\323\005\346\262\245\331bn\005?\237\313\225V\2262\353\252Ca\247\200?\340k\276\254\212\231]^)\257C\031\201F\370-=\312\225\027\263y\210\006&\000\246Yh%\363P\3309\030\005\260\304\332\257K\206\376\007\314\277\224[\316\225\321c\223Rd\256\350zalR\343\223\036\244\250C\342`\246\372\027rYy\360UW\345A\376(O\341\376oY\235\312>&\353\206\260d&P\362\276,\353yPV\276#\273\200\375S\375\224\026U\265,f\227V\260\231.\3527;\227\262\371E\265\217\225\313!\213r\313+\320*f\262\305b\241\010\215-?\227}\214\244\362\354lV,\323f\203lN\253\225`\224R\365\200cs\351Av\035\376\225\0364i\213W\325\264\\RK\245\322\272\026a\312\320~\357\367\241\004\003ny\021\242\346\260,\271\345l\262\014\355\004=\372{\353\353\267\336\253\326\373y\2710\243F=$\021\377\214H\271\246t\021\372WMv\252A*Z5\301$\352>\324S\260\226\204`B\310\343\037\212bPl\235\305\377\332vB/\375omcpcu\247\363d\345Xeb\347\304\253;\047\337r\336\272X\357\257\207wNt\327\216\327\373w:_\207\370\320q\347\370\373\325puB\177\264^\351\250P\314\313oT>\206/;\337\252d\376\177\365?S\200\320\t\347\304\307\265\257\353\203\365\307\r`\310+\033\3476V+m;\235oW\236\324\272\376\327\366,\364\272\363\372\307\265~`\325F?\006\337\250\\\252\302W\247+\023\225BmBC\372jm\n\342\274u\276\266\252@\316\033\237\3242\265U\202^\256O\020\024\342\353\2576\356n\035\337\356\247\270\276z\206\342\2566z""\032\006\372\365&\346\375\361\331\277?\371\317\261\023\033\337V2\025\300\365\352F\252\362Ve\265\332\206\336{\325\236\352W\265o\352\251F\027\006\047+\347\253oT\277\254}T\013\357\204^\337xT\311V\177\254\177\004\325\035z\315y\355\277\325\325Zg\035>\353\202\357\213\325S\325\333\265\007\215S\215\364f\377ft\353\236\223H:\311\031g\346W\347\327\202Sx\362\367\177\376\363{\333@;8\003\355#\350\214\264G\321\211\266\337l\327\345\316UW\r;>\376v\263\377\357\013\207\243ql\263kOT\336u\356\376\354\374\274\350,\346\234\334c h\275m\010\351\032j\277\205\316\255\366\tt&\332\023\350$\332\223\377,\261@\351=\347\036P\372\233\363\333:\020\364\244-\202tE\332G\321\031\265T\202\223lO\371\211={\356\020u\357\274w\261~\265>\341\245\364\355j{\365l5W\373\275q\2661\277\031\336\274\275\265\354$SN\nj>\343dV\234\225\337\201\232\247m\203H\324\240\255upn\002\2235\211\277a[\047\022\277\333\014\037\202\237\232\310{\233={\"\363`\265\377OQ{\337\271?\353\314Bw\002\246\376\005\024\375d\310$\372\246\321\231n\277\215\316\355\366;A\324:\337A\315L\376\375\351\241)\276\274\265\272\047\232\241\025\350\366\372\320y\370\010\350z\334v\003\311\273ah&bg\320\231i\377\025\235_\3333\001\244\177\2779qhF\377\262\331\377|\242\363N\n\270<\347\314\001\227W\201\234b[\030\251\n\233NF\275\313\34528w\332\357\372)>\367\311\241\372\332\245\372@=\343\245\366\014$\273V]\257\037o\\k<\334\234\330\314m\375\001\325\351LBG\203\306\261\352\254>\005j\3760\215\330\355d\252\221\214\022\211\017j].\211\337;\337\303\327\351\277\257\036\222\320\345\315\357\267\333$\261\247\234S\347j\023\265E,\004\314C0\333\325Fp\346hR\010=T@\t\376p\376\370\023\350\375\253-\206d\307\014\237\251e\314\2433\337\276\200\316B{\021\235b\373\037\350\374\321~\263\003\213\3331\216\316x\307\004:\023\035?\243\363s\307\002:\013\035Et\212\035\217\321y\334\261\216\316z\307\223\016\301\230o\234\323\347\324\034|\356\207\315\314\337\227\016\311\231%o\337~^\205>5\323\346\222\263\264\354,\353\n\245)3\216N\274}\022\235\311\3664:i\350,\340d\332\227\320Yj/\241Sj_Gg\275\375\t:O\332\177\227U""\377M\005\213\367\311\371C\265\317\313\365D\3357\004\274S\375\250:T{\271\376^ch\363\37763\233\353\333\257B\363r\322z\344*:\305?\200\236?\315\254\3456L\325\257\306\210\310\245Z\217i\237\237\374\340\374\000_O\341x\365\332\306\335j[U\221\223\256\\\257vU{8\241i\024r\016<^}b\211\005J\0378\017\200\367\217\235\307z\212\245\031+\205N\n::8w\r\323\357\243s\277}\326\337\373\317_8\024w\373\352\367\033\276\306\362n\365j5U{\247~\261\221\332|ksu\353\345\355\017\2009\316\224\036\256JNIw\234a$j\330\262\025\234\261\366\030\221\270l\245NM\342\201\371\372\234\001\352\372\201Id\003\024\220\370\351\341\271\370\252\363\352\207\325L\3651\212\316\334\277g\216\006\266\327)t\246L\023XDg\261=\217N\276\275\200N\241}E2\375\353J\030\313\364\343\346\352\241f2,\325\253\233\023{j\035\2778\277\300h\242[\264\226\303h\372\245\321\225Z\265;\242\370\033\311\217\316\217\320\005a$\312\377}\355\320D\337\331z\342L$vBo;o_\250\267\325\317`\3723\316\231\336zW\375B\243G\302\233\224\010FF\220&\240j\312@\362\232\231\233iiA\362\332\317\350\374l\206D\232%hd\374\023\235?\333\2438\366G;\356\240s\247\343Wt~\355\310\240\223\351XBg\251\343\021:\217:n\204\220a\2411t\306B1tb\241x\210s\3129\376\241\363!\254\264\200_\027z\017\325\357?\253\027\033\276\265\300{\325\201\352\\\255\267\376mcn\363\223\255\266\255w\266/;S\323\31644\321\254\223-;e-\014R\315\272\275IUp\234\2524\217\231\350*\005\022\373ZKb\363\271\336O\372g\316\355;\316\235yg~\301Yx\210\0146\313B\032gi\216\033Gg\334\014\2674\355\007Nn\021\254\246\210\231\366\357\242s\327\324\344}t\356w\314v\010&\2703\374\005h\334\320\333\247\0175\310 ?\336\337\274\267\335\363\374j\273\344\244ad\331\277\234\263\030P\211?9?\301\n\033z\266\306b\305\321\257\016Y\226\0176\227\267\277w\246u\313Z;xEC\033\205\006\n%\025\305\274\207\316\275\366_\320\371\245\3757t~k\177\200\316\003O\205\216\2423\332\221@\047\321\221D\047\331\361\013:\277t\344\320\311u$\211\320\330\351jN\324\2548\213\316\254\231\323\037\242\363\260\375):O\315\232c\004\333\334\210i\235\273\016>T\201PZ`\302\247\027\017U\205\375\2157\032\276\245\354\007\325\373\265P-Z\277\273\031\332\034\336\352\331\372z{l_c\355D;\351\t?\251\271\225uqp\253\377P\302\312\325\306G\215\261-\337\224\366a\265X;U\273]\177\260yj3\275\325\277\025\335\276\347\334\001*\027\235E\034uT\257 \251\213\250#qK\216\0373\355VEjH\276t\371P\254\375\274q\265\341\223\255\376[k\257\235\255\345\352\277o\236\335\234\337\no\335\336^>\210\346\310y\353B\275\215\321\371\351\341\351\341\335\351\272Po\257\237\255\347\032\277o\235\335\232\337\016o\337V\242\302\301\264P\316[W\032n3\323\n\036\336\205_\331\270\010\303Q\306\220{\275\326%)?\263\371\356\326\347[\231\303\352\253\357:\343 \240\334VC\220\226z\\\221G.\244\244\214\267[S\343\252l,\227Z\225|\332\342\242}\260\2259P\341\324\004)\205o\267ZT\001I\330YCg\315\314#\0038I\014t\014\2423\3301\324\341+\347\017?\212\326v\250\022\356Y\203\377\300\231H9)(\033L\324Z\210+:\305?\235?\365B\203z\n\225\216T!\256\250\252\326\3019\277FDkr.\264\266,{R\235\373Ks\370\226\310\013\206\315\240\325\005\233\331\014\357\273`\260(ni\301~\n\213\246wb\343\026\037\346\002K\365\305v\333\341\233\0364\024\275\323\005\222\313\236\026\372$\250\345\320\311\331EEP\201>m]5\221\006\364M\347\315\263\265pm\032\013\007\003\371G""\265\236\332W\365\376`m\350q\047\271\357\302\005j\226\344R)\216N\274c\022\235\311\2164:\351\216\251\016\241O\375\261\212\352\211\237\246A\254oe[E&\374\341o\253\317/:6:O\271\345\262\202D<\252\324\025tV\214\020\376\010\235G\355\217\375*c\\Z\350\335f\332R\372\013\235\277\332I\030\047e\316\":\213\241\\H\350\264\016\311\n\245\342r\276\217;q(\237\326\035\223LEU\350.\035\236\257\272{\317IM9S\300\252_\234_@,\326\255\204\026)\304\230UtV\333o`\301nt\314\2403\323QB\247\324q\023\313w3t\013\235[\241)t\246B\323\350L\207\026\320Y\010\025\321)\206\326\321Y\017\375\205\316_\241\237\216\341\000\177,|\314\247\007\034\030l\3454\264G5\327Eg\022\332\253\326a\202\340\252\226\214\270\212\241\275d\222\270I\024\"\266d\321\311\032\225\002\251\000\227\375\n\024]\240W\355\230\346\252\301\261\024_\326\204\032|\262qa\363\323\255\341\355\236\003\016n\347hs\347w\047\321\332\002\261\301\r\n$\027j\242@\2015t}\373\260\333\217-/\020S\376\353\002\2715\344\231~\002k(r\340\002}a\207\251\243+\220\032|/\265\266\033\275\207\203\357\233\225\037j]\265\013u`\2112\0342\272\217\347v)\230\201\264LG#\261\224_i\261M\345\243\001\307\035{q\017\265\235\004\327[\350\3342S\017m\272\336C\347^\307/R\373\252\047\242\301\241V\216\047{\324\274}\353\244AV\323+@X\005\273&\tT\253\244p \355\017\315\037$3\271\265\252D\247\274_)\347)\320!\205\245=\356\377\3014\321\332\002\261\021\037\n\324\327\362\032\332\333\306Okj\216D%Zo\221\344\020\3066\0316\312ej\241\263\350\314v\314\2413\327Q@\247\320\361\004\235\047f*\035Gg<4\201\316D(\021\342\365\317\266\177\006A\030\307\325\222\350\345\257m<\340\373\252\201\254\373\262\371\334\242\315\010.m\355m8\346l\322z4\222\256\344\212@\332\n\221\200B+\002\022.\177B\006\374\324A\034\033\350\360\215gC\221V\016\320\317i\362\223v\000\003\036k\343\262\337\234\337\0369\217\2642\213\232\000\351sI\213C\273)\2646u\333:I\322\276&\017\313\270\300A\311\327\231O\3272A\255\177q\3737g\372\236\322G\037\306x\322\243\\\310;y\030\246\327\235u-\327R\223\227\nFW\037\252Z>\225\220\366\311\250\036\207\321\031\356 yq\304""\257i\270\255\365L\326B\357\352Q\363bl\363\375\255\211\275\016\n\207\343\223\234\312h\014\224;\303\244\212\031Cgl/C\003\211\327\356\230\2005\021\272\207\316=\263\302x\214\316\343\320\237\350\374i\245l\316{6z\334\271{\244\355\357\240\352\237\202S(;\345\047\316\023mA@=M\032\233J\003>\271J\245\021\304myj\313$\332\341\223`\241\370\237\276\210\342\363\025\273X\275\037=+\250\023\322\364CMm\032\235i\323\324\250\215\255\241\263f\2668\037Ini\031\352N\021\333\255Q\365\220\022d\256]\354\252\035\r\023\321\236\n-\017\245=M+yIL$)\345wt~7\013h\267\005)\023\016\311=\332\031&&\256\240\263\322\361;:\277w\014c\367\0336\035\225\226\303\267\321\271\035\272\023\022\014\326\246:w\364\272\233\024\0224v\220B\001F\325\353G\316\347\231\315\370\366\217\316\035\264\240u\217UL\223\314\021\350?0\333\345\226\047\r\214\324q\245E\245+\325\253\235\370et\226\215E%\355\304\017 O\007B\203\350\014\032\223\031b4\215\217\263\350\314\232}\371\002:\205\320\023t\236\230\321r\010\225\021C\307\"\350D\216\r\037\023\025\364%p\014O3\334\375\371\210\207\314\275/\204\047\235ImO\236u\262+\316\n,\035\177w~\327[L$\225\310\355e\327\330Y\351\317I\301E-\235\346\"\331\322o\372E\260\237\357\035q\361\367h\346\351\321\356\201\010\014\"\372S\347\251\336\025!\305\22546\223&\224\264\270\244\036N\253J\267\334\312\260\367V\207O\333\367\263^\234\323\034O\263\272\225[\257\0369k\376\332,l\3178?\243\201\335n6\010\007d\030mB\322\300C\212z\342\215\264\213!\365\037\331\261I1\205z#\331\305D\321\211\206R\350\244B3\350\314\030\235\3402:\313\241<:y\350\224\202\337\332p\341\336/G\252\255\253\027\317\307\2577\337\330\354\367\362\361\223\332\375z\250\036m\334\335\n\241\251\303\366\327N\n\246i\350\311\372\000\267{\032.\360\032\007\222\340i\354\223\207\342\310\204\207V\017r\010t\005\0315\277H\221x7M\250\272\343\302\362Q\365\213\027\317\307o6?\332\014{\371x\276V\254\237\252\337n<\330:\265\225\336\356\337\216:\223\320\241\001\0310\021\246d\367\274V\340\215\010\322\262 \320\260\215f\024w_N--\210\201$\n\321\2408\217\316\274\321\202\272\014TK\213\307\206\217\237""\325\331\330\370\204-\305.\274\360\251\371\240\306d\301\332\023y+\202\334!\243\226I\2534\271<#\036\322\344L\232\225\337\320\371\255c\025\235U\313C:G\356UL\375\375\177\3779\366\272\363\032j\306W\361\016\234\307\033\245J\317N\347\313;\241\2277\272v\314\235-!l~\366\276\226&\037\251+u\324g\047\235\223(\006\272\315\376\225\377\034{K}\355\364\375\004\253\256\267\267\333pw\365d\245\r\r\355\217m\244+\375\225\010\324P\047\2127m\325\267\200\241\307jS\365p}\302\214D\316\345\037\200\235\253^|\2379\237\rl\365\300\204\256z\307\204\007\333k\033\013P\326\371j\270:Y;\017R\177\217)\203\246\302\250&\377>\361\237c\0477\324\261\2046\250\301\036}\000\000\003:\205:\014\260\261\352\234TgY\360\302\233\336j\1775L`]\206\327\240\305u\236\254\034W\021\235\3077\256m<\251vU\317\327\272vN\234\252\000\344\304\306\215J\277s\352lm\264\321\366\014H\275\255\033\353K\377[\245\270\212\302\3672di\323\336\250_ot\301J\205\330\362\0014\333t\243\037\204\233NM\351\047\2656\310\000r\373\242\362\262\332\266?q\262\322^9W)U\317\001\007\333@\342\301\351\346K\220\207nl\366\253\2036@\375k\0339\335-\240j/\325\207\032/ov9\337\214n\017n\257\212\002\275\202\025\212\312\353\217+w`]\324\277s\3424\336\033\244i\215\302Zi\025\2131U\tWR\325\323\272\035\350\340\204A\323Q\271Z\231\004n\002\377NU\206\252\307`-\220q\317\364#\317\337\250\374\267\326\346\364|\336\350w\256\rm\205\267&\354!\215g\241cXH,\325Y\370\252\263K\325\3135<\216q\246\372r\255\253v\026\332V\347\273\325\213\320\310\346\324j\256\363\255\312\254I\375n\365c\310l\016\332x\347\333\300\014\365!e\351t}Z\357q.~\2779\341\374\020\333\316\252\353_&)_X.=\323\033*P&U\365\327T1\372+7\264%\304K\377{\2641\2135\364\372F\271\362\025T\365\0104\224\227\273*ob\rC\343\047\252\333\220\310\343\265\376\332P\275\263\321\346f\014R\211s\tZ\261\363c|{M\335\205\221\246\214?\307V\025\230\361Hu\270\006D\351\214OW\346\240b\037\327\036\327\327A\331\321\236\271\231\363\021\253h\n&#\047\322\267\004\336\310t?@\221\377\3429\366y\303\2433\r\270e\341\201s\033\304\034}t\177\331Y\206^\270\313\376\033\311\047\264\204\2216)\362|\206\334\010!\273(\352\220\273\335:\302o\234\370\0078v\255\341\323\216\366\324\336\250]\253\2557\216o^\333|\2705\261\225\333\376\335\271\003\"\222\276\314\n\360A\177\324k\031y\344\212N&\3210OK\032i3 \355\373\245\014O\373\036dzAK\032\227Wd\343M,\353\255w\375s,\373\2421\341e\331G\220`\250\376r\343\275\315\241\255\377\333\312l\255;\3430\206\301\264\250o\347\301\373\225\235\047Z\365)\317\303\310\253\245hj\224\302\203H\352\275\321\276\373\332\347@\204=o\341\307\351\202\241g\037t\265\356\332\226\376}_\332\202\347\352\315\255 r\273-P\005\371\253\177\363\250\205\327\264\354U\337\314w\212\016v\307\246\247\000\255:\365\277\327\032\370\327\026`\327)\245\311\2552\007lBl\3529\334\205\325\236\003}\317\273\311\271g\373;u\337\270\336e\364\352Kw\273\016\337\225-\345}\313\312\020\341\323C\335\177\333%\217\205q\013\371 \265ox\373ge[\240w\021\202F\032\271\026#\302\345J\177\325sA\356\367U\264C\271\372\202\305[-\330\361\363q\334/\2162\211ss\201F\027\236Ms\250^\367\335\013\232PI\207\024x\337\250T\277\311%>-\035H\207\024htAKU\262\251\243\323\212?\341\211\201\237Bat\302\241QtF\315\rftZ\321\275\305\033?7\0475\236\242\36344\214\247\205\207\217\215\2423zl\014\235\261c1q\341\302\306w\225\247\265o\353\231\377)\013\262\360\316\2117\361\335\013\277\363%\332~\271\316W\325~?\360\013\250Y\373\301\267\325\014:\337T\047\330\007\020\207\031)\0031|3\357\332u\350W=\233_""l\265\375O\3337\221Sy\t\333\211\016\224\021\261\361\242ITX\007\326*\341J\322\304\254U\006*s\325\036\035x\004\315\256\014\315\251_\005\235\327\317)\023\256O\032m\r\225;Y\021\341\223sP\344\030Z\262\355\234x\257\372E\355D=\014\275\244\r\326\347\047^W\306u}0 \234\206Fqh\3737\344\234\001\261\025\3061\023\213$\274Y9\01321v\224N5\306\250\361RURg\355XmB\033AA\345(\033\254\223o\003\277\320\254\360\004\216\327\312\264\252\372\2606\361\014\020v@\242\333\265\214\242\352\344\351\3124|\361\233a\200\276\356\300\360`\244z\013Jy\\[\017\036\337\270^y\3339\203\372[e\235\370*\264\022\347]\024\2040\370\214hZ\200\306q\374\215J\217\212\306F\244\354\036wNv\355\234\352\006*\3576B\2150vO\303\353O\303N\030\257\r\333\351\354\251}\240\212\334\371\001\240\350\374\250vI\207\336\255^\002Z\037\243\367\303j\001x\272\330\310\354t\276_\275Q\373\302\271\360\035\314\377w\325r\006\276p>\002)\2661\262\031Ff}\n\003\004\202\276\302\312\337\274\260\325\273}]I\t\267\235\333\260.\306\235\013~\253\216\274lFN\257\264Q\021x\255-\331\023E:\220=_U>\207\021\361\004L;N\3677\233\275[\337m\257;\3230\372@~\270_\262\323y\256\366K\343+\030\231TwyP}\033\346k\345Q\266\201\217\241\323^\305\273%\200)\027/\035\204\035\365\327\033\253h\342\047\031q\016\333\013\201\302\215i\020\227\346\267\207\235\004\014\214\372\266lW\322\220{^$p\004\276\332`\357\300\365\224\372\213\306\355\315%T\021\302\352\022\260+\303\220\316nX\362\235\321\026\251GQj\347\202\252bo\261?\251M(\020\264\317\306Dc\021\204\254\207\333iE\230~a\320\225O\344\306\0255\204\300\253\177\355d\357)\366\365Fn\363)j\370`)\013\330q?\037K\362n\375+\335s\216\246\330_C\273\356\361\026\373<\332T\002\010zi#\323x\014\242\331\377m\317+\302\2402\270\301\211\\NR\303\047\005\267\224q\354u\263""\236b\177\331X\337:\201\n:\350V\200\0357\347\221\366\213\365i\314\374\250\212\375\rL.\375\336b_\200q\025A\327\241\320\253\233\235\260\240\177k\373\241\"L\277\016\344\336\242%\227\2534\351\007\336\262\353\356\350z\213\375\325\346\313[\357\243~\r\206-\300\216[\3558U|\207O\241n\266\035U\261\277\325\343F\217\323\203/\236~\205,\260~dAo]w\375/\221\212\3153 \326~\342\214\247\025\225\372>xW\360\221r!\351\375\344\206\243\344\001\r}\244\234\2471\2176\034\355Ye\017\233\276\336|g\353\322vN\215\270@\000\356\261\357t\236\255\215\2014\250\332\255\237M\353\325\023\265\001\020qs\215\247[W\267\246\267[\300.\331JZ\303\"\251\032\265\267a\036\272\374\255h&8!N\354{.tm\263\344\266\027\231\210\004\336\002j\357U\374\027\314|\316\205\357a\035\235\361\226\373b]\217\217j\244\334\374\n\226I\303J\325\001\224Au\300\"\3045\240\225\333Vd\350\021x\237\244\275\\\317S\356o7\277\336\032u\306\201\247\260\332\000\364\270\337\277\323\371I\255\000s\256\242\355H\013\216\014nU\271i8\242\275\323\331\357\364\337\332\376\212\216\253=\217\t?\340h|""\300U\347\211\255\360\001\326\235\356\201V\271\213O:b\342C`\207[m\365\322\363\047\034\220\017\272\370|\337\337\021\366\260\374le\351\017\271\002=p\351Q\314\036\335n;\210\240\035\244c\047\033Hy\n\200\004N\352\010\256\375F\213\345\355\201\255\236\027\334\372[9\345\036\262\365\0178\003@\031\014\233\272R\\%\370\301\327 ?\343\316\276^\\(s\013\306\236\235\316\013Zyq\001Y\376\211\363\311\227j\311\336\266\267\225\n\037>\345\335\320$\250J\263Xy\245\nY\340\221\325\242\274\230\214n\371\241\223\357\244\245\247Gq\351\255\315It&\215\226\236n@.\241S2\357\214\374\216\316\357\241\247\241\303/\213\314l\375\033\264\257\201\255E\047\24658z/y\215\252M\235\007>\304\300\3653>W\274\337\261\213\317\342\262\361\312\033\317\244\t.M\337T1\256\205d\213\2072\340\t\2142h,v\230\021\355e%\270\337U\362\372Wj\010\353\222\315\326\302\3676\336)\345\223#\335\002\325\225il\017\240]$\266\036o\343V\336\305\0106\221\203\260\364\307\315Uh\354>!\352r]\203\2242wsz\3536\366b\255P\321\017\207je\215\224\237\345QpyrF\236~\267\317\225y\370\361=\210k0\336h\335\200^R-\320x\003\003\376\326s\345\251K\007f\004v4|\237s\237\035M\017h\201\366\0364\256\311S\220\362\2619\367\264Zk;\332\345\276\026\251\260\017%0\036\\\245Gkm\032\356\345\035\234\322\264\236\206{\272\307\213.\343\247\311\367\317\216\027 \t\"\253?\256}\217\326\020G\261\205\330yt\273$\007\335C\274S\307\021\3472\214\345\352^\232\003\225~?\022\360c\271\235\310\337f\222kWy/\201<\034$o\242p\317l\264\252\333\021O\016<\370`k\270\270\345\351z""\373\333^\016\262$\220O\256\311\353l\250]\320\374F\3033\3553\322\232\215\004,2\260\262o\177\266Z^\332F\253\227>)\"u\327^UF<\300\305\351\332\276\006\260;[\020u\276\366\247j>\031\234L\363V0\330}\320\0026\352{t\0369\217\364z\234Z\030Mi\362\340\261<\023*E\324@\326\311cT\362\276\267ut\326A^h\325\2305_\277\321\370\021\226\023\367\325\010\202\006\256\300\344+\375\207f\361\376M>`\016\207\216\013k\222\222S\322{_4!\310G\033\3449x\232\th\202\244\016K\367*\330w\246Z\324}\323\365/\033=\255a\017\331H\360\305\3539\347\334u\325eW\237k/\261\350,\302\304\t|\2026\2505\224$Z\311\325\275<\316M\222j\3403@\324\016\351\\\025M\232\201+\326r\307\341\255-\216\266\345\035`\203\275i\207\226s\205<\267Lz\316\300\367B\334k\342[\265\367\336\302\246w\200\215x\350\227 \313\303\202LkI\344K\235\322 W\256\216h\276\240\371t\217v)\007\336\247o=\223\366\246\\z!\314\013\334\263$3fRj\004N\025t\r:\2311\223n\351\027t~\t\375\212\316\257\241L\250e\353M_\247\326\266+\342\006\nw5\210U5\274\225i\311\\\263_\345\307\363f\033\251\355\223\227\207\320\020J]\236\2323\035Mu\037\305i\371\244s\003\005\226Cq\352@[!Y\047\013\303#\264\340\242S\324\352\020\332\023\r|k\256\005\214:\350NI\013\031\245\347\347\357\266V\367e\305\370\274YYN\307\362\332\013\371\360\017]G@\327^\270\257J\264\312\316\321r\312\271\241\305\360V4+\030/&\216\242eI\371Y^CC\027\367\004\336\013e\257:jq\003\273\3729c\330G\265\313\332.\377\350\245\343\303\212|\362\021L\373\242[\313\006\252\257\033\341\326\260\347\000\266\2419\047\367\002E\224\203ne\033\036}~\215\361\210iF\366\301\243\375\033\227/8\013/H\312=\250\316(]\377\2461A\354q[\016kB\267U\361Z\311\236\227\304\360\375/g\317T=\332*\366\354\261\207\235\227\213$\020\227\2009Z\265H\302\034)\215\344\355\220\362\342\035i\234.\037\322\262\257H\265\250\207\271<\212:Q<\332\315\372\031~\255\006\370}\367\263\213xPqb\277\235\255\371xD-\212Fi)3\311\273\374H \010\274\016\331^\021\331\262\356\367m\003ul\237O8\023\372\335Y\022\206i\033\202\316N\322f\025=\243\372K\350\320\302\226\332\321wF\240\246\013\250\2055M\213\2464\232""\370\355%\261\373\235\027\362N\276\354\224\241*\2641\217\274\231\22766\251q\222lJv\047\264\035G\217t\005\236\371,\242S\014\375\204\247<\177:\026E\047zl\034\235\361cit\322\307\246\321\231>v\373X\353&\021-\207\\\373\202\365~6\211\354c\030\330\243\034\362\350\237\230D\016*\207L\325o\252V\374\305\315\355\236\226,-?\364\257\003\016\266\264\224\247\026\376=K\313/\277\n\342\223\020\335\246\324F\357\321\034q\364\257\003h\337\206z*\355\223\322\252\200\246\230\300\247\342\344%[\322\360C^\204g/uk\331\342\340\013|r\243\305\334l\215\036\235v\001\251\243\322~3\r\355\264\333\023x\027\277\274{\213\346 Zd\311;\362\354]o-k\232G\312N\256\327\223\272\274\177\001k\367`\242t\013\247\235[\346\035V2~L\205\016\317}\243\305\2134\336\331\374\014-D\365\255\047Z\215\271\324\362\3528\320\"f\311Y\202\221\002\255\323\371\203\023$Z\321(A\233E\264\325\035x\373\266\274\035\215\306X2\322\221[p\366F\276\226\tZG\323\272\367\177\362\326\257\263\"\035\014\311\365\324\224i\346\"\243\273\300+\272\345\013V\244\221\t|\213\331^\324\3272}\326\321\260\223\026Ig\235\263_\230]b\271I\267_\321\223\344\000\371\212\014\t\242$\025\004\336\350ML%\345\004\311\001R\367\277\333hA\017\256\223\034k\037on\221]\251\036-\224\001\250\276\314\205\256\030jy}\264dg\217v\037\344\273\251$\274\222H\026xG\270{\221\204Z\276\222j\226Vb\3622E\367\035\355\326m\376\035M\373n\331N \251\"\345\233?\264\022\240\215\372\300[\304\211\231\264\310%+\010\272\3459\260]/\267r\263\360H\231zt;\207G\301lj\271\364\334%\355#\222\231\034=\240L\303\006\335\203t\033\235\333\241YtfCK\350,\205\036\243\3638\364\047:\177\2325q\370X\0137\027\003\305\022\261\306\"\356P\367\226\347\343gp\307\361\3131gL\017m-]\362\234\330\272\265\275\272\327j?\352\345\220T\265\311\3073h\366 \t\207*>\3200\362\006\326\343\rc\007O\352\036\252qR\206\024\320)\230\212\037\302\032\037:v\023\235\233\366\002\254\303/\261ZY\3751\047\006\034Vw\230\266x]\241,\025\325\013S\342\022\220\027\273\276\220\217\003\007\336vFb\030\325\371\237\350\374iz9\235} k\2014:is\234\352\001:\017\214\346\213NU\225[""\274\350\300\031\262\250&p\335\025\346\261\316&\224\005h\353j\313\265f\347]\364\343\332\017\320\376.l\366<\337\260\035Df}O\235\356\237\362I\ryO\035\365OR\365\312G\016\\\0035\265\211I\"\005\r\314t\2675\311\022\364\314+\325\025\035}\223\347T\366h\331q\020\313yV?\31677\361\036^}\225\244~\222e\031j\350\253qg\034E\276VK\337c\333\0378\351\251\303j|\367.v\223\310G\003\247\253pS\025#\237\033\242\303\210$h\323\210I\2666\021t\"\241\341P\3534\276FV\371:\341$\364\341\371\3262:\206\307en\357vV\346\350\230Nb\212<\001J[\035\362I\031zF\232,\233\350\202F\232\246h\221C\272\220\237\321\37194\207\316\\\3507t~3b\312r\213W>\027q\334\327o\207\322\355\260\266\242\232\037\327m\311b\377\207\355\017\235)\030%\325]\235\273T\336\221\351\000\3446\225\034\273\250\266H\232t\3176\251\236B\n\254\024:)S[\367\321\271o*-\217N>\364\010\235G\241\277\320\371+\024A\241\"r\354\006:7\216\215\034k\2351\352\3565\211\r\307\010\340\356^g\253\005\210\017\267\376t&aP\005\001\240\270\323\371_\347\277W\032m\330\004\233\371\217T\236 \355\216\3249\220\324\230G\047o\226\013\264\037H\302#\365C:6I\022\004U0MNt.\233\004\2115t\326\314\271\354?\320\371#D\025L;i)tR\307\356\240s\347\330\317\350\374|\354\336\261\326J\036\347\241\341$\260W\350\007\200\365U|x\317\274\032\316\344\033P1\024%\177\374i\327\006 \314:\324\266\364\277L\347O\233s\201W\270H\243\323\275\217\311$\232\320\201\346\021tF`hn\345\266\300K\215\047[8\025\376\230V\242\301\221\324@k\314\377\3660\214\322\272-\360\\-\355f\321\006)mc\311\307\257\250\007R\035\220xH\023b\014\235\230\031b\251#N\205Z\251t5U\021\036`\365\360\2341q\272>\325\330\227\240\336\346\271;\355\271\242\271~\312Tw\003\331m\251\033\220\266\217\306q\371> \035t\242y\215T\047\362\264\216\373`\267\322\375\311W{H\036\244\311\216\272\001\255\246\250B\342\241\326\235fM\327\2577NC_Z=\312J\030\324\267U\211J\350ohiPU\320\326\031|\250K\257\t@|\322\017u\351\267B\264\374#\037\233\222\227\330QG\220\017\233\321\344C\006\003\244\316 !\203\246\"\371\240\245\253sUjBy\221\367\036\317\363\207A\244\205\245\215\356\003P""\006}C\305%\347R\030\312\327\265\375O\327Bdkb\313{\215\340\347\r\255>\014c+\331\372\n\007T\375\006+H\260\372\t+\367\252|y\031H\340\213\265\244\375\226\317~QG\240* \355\002\255XI\334\223\363\001-\214HD\240\2160\200L\0370\035\201\252\200F\246I_M\014n}\275=\352Lk\025\271>F\273\274\323\331\347\364E\360\316\321\355\314?\\\023\303[\031\234\032DM\\k\350}\267\001\250\207\376\255\021\334\023\324\217\274B\t\364\243X\342\331R\322\030\310\207\235\3445v\244\312\225\217\211\311\047\303i\007SN\322\362EI)\251\311ej\340\3259i_m\014mE\361\351\002\255\250\205\262\300\010\233\337\351\374\314\371\354\006\336*\240\354\342\376\321\352\270\261\265\272\355\235#\276h\3509B\r]\320h`z\323\257\310B\021\360\255-gM\234H\221\347\204\003\337\335\245YB\276Q&o\025\244Y\202\214vHX\332\303|M\252\267=\316\327\021\230\360\226\224\204\n\353>(\013,\273\013;\235W\234+\321\3553\316DB]\302\262\207\372x\326yb\343fe\271v\035\267\317\360^\373Sx\014\031a\271\352j-TSl|u#^\375\2726\\W*\261W\235\023\037V\357\253\367: ]\274\332\217H\350\036\376\343\033\327\324\003\000\217\360r|u\235=8\370\340\016\256Q^}\243\362\337\332\361z?\306|X\375\275\336\203\236\367\360\342z\225\350\243Z\217Nt\246\372\337z[\375T\035W\254\257vU\216U\322\325\376j\244v\2726W\357\201\257O\276\355\274\215\013\237S\215\333\233\231\235\223\037TS\265\256Z\317\316\3117+\327*\253\316\231\013\365\016Ht\352L\265\315y\347\242sQ\267\212\223\247+?C\252>hX\220\347\351J\306y\373B=T\0177\317\001\245\275!\020\211\272X\016\247+wkm\265\017\361\262\177Br\276V\256\367k\252U\270\267\376\036\336\262\1772\020e\177\243\253q\026\271\276s\362\303\352\\\255\247\326\217(\047\253=\370\216F\375\307\315\263\352&T\272\347\037Z\267\233K/2\203\256\341\177v\300\253\317\366{\355\231~\236D\334\013C\302\223|\007\236f\357{\255\275\350\354\331A\357\344\330\357}\034\372\335.q+\007\211\351\324\373Io\353\3366\324\322\2337\236\035\364\364\377~O\373\353w\300\364e\010\362u\331@!l\246\2657\310?;\350\365\361\373\275<^\277*\246wI\345\203\260\3629&\373\232Q+o\214\177v\320k\314\366})\243~\316[\333""\337K\231:P\222\313\264\366\n\306g\007\275,F\336W\261\317\353a\364{\334\342\"&Z\306\005\312K\362!\314=^\010p\350\013_\360j\212g\007\275\006\233[\025\361-\251=]\210\255\237\221\326\226pR\234\224\217m\323\372\212\3569!92\360\022\200xG+.\3126\014Z\336\374n\253\250$\223\203r\350G\3775\341\317\275vJ?\024\255\2650R\252\223/\335\273f\352-\276`\352\331A\257\307\336\367\265\340\370\274\263\271\246\224&j\032\332\345{\021\356\241\267\026\337\005~\260\222\206\375\027\240\177V\327S\231\262\237\331|\214O\314\247\225\324\016d\001\367\241\234\370\"\263y\363\223&k\032\336\003\233\372\202\257\250?\302\374x\302I\351\351\032p\352\035\313O\235O\277\2076\244V\327GUT\26189PIw\353\324GY\322\003_\237\320\302\033&\210\005\362\024\347\036\324\024\341\226_-\361\254\265;>/\314\256\237\264\010\322\006\235\254Ji\364\247]n2\200vu\234-7\350\177\326\332\235\353\027g\033\320\272\363y\2076\003x\326Z{\305\027k\002\332\272\203\374\207\267\375|v\024\333G\373^v\037\310\342\217\246\200\300\373\331HoNL%\375 ikIM(\257!\245\313\235h\023\217vr\237\266\364p\024\355\025=;\232\r\273\375\256\215\017t\214\204\246[j\300\304k\332\252\240\231\207\224\177\264g\347\336\205\247\266\356\350\254\024\251d\367x\027\345a\216\230\354\302r\017\247\377\241\321b\267\3758y?\212\2743\236Z4\355\004\321\224E\033B\356nDKG\213W6\345\354\337:\005\266\036-\370\031\023\356\347&=\362\354\311\363F\224`YA\332\307\022\377\345[\272\244\342\246\225\"\r,\362\3268ZHK\3738y\325j\340\210B\206q\244\351&Sr2,&#\323\034:9s\256\372\t:O\214)\371\000:\003\306\260x\022\235\311c3\350\314\034\313\242\223=\266\200\316\302\261\305\026\032\035\0177\316\251>8\252\2324t@-\210\351\003\362RP\225R\004\r\324\362b_i\246K[\0064P\323\002\\\236-\271\327qD\r\357@\022h\360\240\271\207y*\360\215\220}\333\301\026\321)\032sX\327\360\250uB*\333\0379\022\226+m\230X\r>\367\374R\363\341s7\241u\267\013\333\245a\t\311\3774I\221\350E\246\342\3628\031m\346\322\266\325_-<\337t\324l?\310\264\025p\331\t\265\363\335\316\216\355v\177\267\264\315\247\253O\210\3414\211\2215\tm\020\322M~$""\034\320i\276\237B-\234\331\216\232\361?\370\236>\334]\243\251\307\227&\226\365\273-.v{\214\213\366\311\335\273f\324(K\014\247\023\022d\276C\262Y\240\271}8\324\272\007\004\217\236\361Jk\372\357\262\233\242E\262<\223\"O\236\221\270@-\235\014\274\007\216\306`\352\210\030\377\223\317`mw\035\256\326G\303\025\345\324aKy\2572\211\306\324\326\3114g(\324:\215\356\321s^\275\314&8\177\245\2565 \352\221\327\255N|\255I\037\331\003\342\335\233\261\236:O\265\016Nn\331\006n\300\357\341\241*\332\344\223\307\034\211\345\244I\"q\206\244Hi\233FV8\021\037\347\177\332z\031\217\034\352\3057\020\217\326\003;\235\027\235\213?B\223R\246G\377\034\347\007\267\372\377u\206\231\273\035\227\222\317^=\357\270TK,2\217\210\363C>\223\330\347\274\254\252\305\032\335\340I\214\227\333\331\201\246\n{x\236\202VOr\331$\255cI\254\241\307\206\244\331\031\331(\337\010\265\356\315\326\243\347\276zA\343_h\nK\312UWc\2554\"$\333\220\302\217d\033j\364d\253?r46\260\317\216\314\000\366_k\376\272\333\031\025Z\306\356\361\214Jk\354^\237\035\231\321\353\277\326\344\2254\t\322\020Y\336M\037xt\363\346\321\331\272\036I\035\214\370\314\216\237\363\2624\312\267\346\322\347\326=\026v\310\333\236\237\265\340\216\327\326\334\360\372\317\277\237FW\273\376\335\371\237\227\273\350\340\201s\374\203\352TM\331\336\277R\355\251~Q{\035\315\364\337\254|Q}\025\372Y\3773\362N\326{\304w\0476F\361\310\300\361\306\365M<\252Py\277:Q}P\357r>E\005\275\266\277\257\374Y\233\3007\301v:_u^\375\260*\363%\302\360\340\304i<\363\360\372\306j\345\325j""\312\351\371R\033\014+\233}\226\036O\006\340!\202\367\352a\324\006\035\337\270^y\023\340\047NU\"\325\367j\341\332]]\261\336\317\336\252d\360\240\306\215J?fQ\006\026f\253\375;\047\317T\377\257\232\251\256\252\263\017\316\333\237A\3538\0063\317\251w\024\252T\275\253~\261\221V*\367S\037\325zv\272NW\222\325c\325\ts\032\342l-\343\234\377z\363-\245\242\244\223\010?\300G\347\033o!\361\317\200:\310\356\035<\303\001y:o\236%\244=x$b\002\201\245JO\345z\365\r$\345Te\020\030u\033\332\341\032\260\352\024~u\352\355J\021\"?W$\236\351\306\303$\320\336\316\274W\275\346\374\367Kz\201\344\375\036\305\212\273\233m\233\357a\360\323z\017\346\373E\245C\027u\225\010s\336\273X\277Vw\017\212\000s^\371\317\313\257o\314U.T/\324\316\241Y8\036=yR\355\252\236\203\314N\274Q9\013\025\267j\030\tiO\002\327\276\202f\321V\353\362\002\376\213\\\223\300c5\002x\2539\246\361c5\277V\315\326\276\003\226\037\327\233\032:\247\023\364\311\263N \364\023\350\214eTs\237\330\030\334\370\243\032\205v\224\305\343/\247*C\316\231>\325e\335\212\277\243\2726 ~XI;\357]m|\0145w\035O\237\364\002\307/@pb\247\353\355\312C\347\203/\033\245\315O\266\376\017D\357\223\227\200s\323\215$V\325\233\316\233\037\327\372q+\370\375j\270j\016\213\374\375\232\355 \300\2365li\047\235\223\335\272Ke\241\250_B\273h\302:\352R\221:\020\361\256\355RH\360\007\265\214\251\376/\252\035X\375o\253^2\013\264\236\255\3177\302\317\360\274\313\205z[\375t}Y\261\247\027\032\347No\177\343\024\224\343\325\377V\037)Fp\264M\260\365\3701]i\204 \003\350\3170\216T\036V\223P\203\247!\355\333\2156V\340g\235\357U\257V\177\206\257\036\350\267\022\201_\357w\327^\253g\033\337nfQ[\3621\214#\311\372\261\372\317\020\377\221\272P\360\354\005\010N6\224\27556\204~\344\333\333\025%\251\\s\316+\355\0266\315Pe\250\372J\255\247v\255\266\212g\210p\310\351\250|Y\355U\374W\307\220\236@\357\302Fy\352\364\263\223\320\017\200\337N\017\356/}\002\035\355\3553;\247\336u\336E\301\035\272B\1775\274s\346\375jD\0350:\365\256F\362\314\016g\320\257nB\377Y\253\305aeu\342|m\255>\006\003\225\342`&0""\362\235\255\236g\047\360X\3225=\032`o\372|#\263\361\0470\252CQ\210-\240G\345wB\035\231B\226\003\025\257\236\254\264U>\254\226\235\217q\350S\375y\025\206\227\331\332)\3256\201\347\215\024\216\221o8o\240\206\025\312\211\3749\211\315\241\253\332\203\355\246\027\361\3000\305\317\2079\047\240=\352#d\243\325\227k]\372\310W\270z\027j\364=5\246nLVz\260\361\0027=\351v\031\213\237u\342(\330\017\025~\225\265\360o*\023\225<\226\020\370\212\265\362R\245\354\274w\035\246\300\223\320=\316)\363\226SgT\325\375\000\203\354)<\204u\276\376>\360\210\274\272TX_/A\325\266\231F\371C\355M\254\211\323\316\351s\265\t\345~\202\314\207\226\361\354\344[\352\230\\\333\316g\327\033\263P\301}\333\355\333=;_\177\263s\345Z#\242\215\370\260#\306*=\3302O\340x\352r\237\230\263\243\213\342\204`Le#>\2365\203\372\332\351|\243r^1X\r\377_Wo\326\346\261\311\251\001\371b\275\277~\243\321o\016\246\275\005D\037\307\005\270\236\247$o\377\037\277\225\001B"; - PyObject *data = __Pyx_DecompressString(cstring, 24600, 1); + #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (24775 bytes) */ +static const char cstring[] = "x\332\335}MC[\267\322\360\005\314\275\264I\333\320&m\372y\241M\032h\022\032\3224\375\3760`\202\033\260\3016\206$M\251\003\006\334\200\r\266IB\232\266w\231\245\227^z\351\245\227,Y\262\267\230\003\271r.\263\222{\010\010\220x\340\237l\020=\210F\225\271\260\206a\240c\023\202\324\300l\341z\nw~\313\316\227U\373\323\355\0072W\324\002u\205\373H\332Z1\267\232)n\262\266\006\334V\210LS\241R\007\267\214\257u\t.\302\177<\347OS\341\213\006\343E\267y!\312\213\205\374\n\317\r\277\274\250q\370\353\206\007\372Y\"\3639D-\225\372n\361d\027n\367\334R\031\252\2709\240\272P\234\273{\037\003\267\3735\261#\205yh\047\371rF\261\022\033W\223\017l#\312\346u\027\204\316F\365\2510\215\272\225\236/\2253y\350\203\210\254XX\002t\253\200~^U\314\275\\\206Z\300b\341\202h""\007\220\231\267\003R\323\310eK\003\226\265\027\211\335\027\241\0026\212y\336\201%\0071\233\302FYU\230idJN\241\340\322\355\034\232/6\363l\276\264\001HM=\252v\236Y\271\217\215\346\0364\275\005BX\334\310K\376\336\356\357\371H5\374\222\257\272L\023\001\n1req\200H!\\\206[Qb\326\001*N\344)j\177\357L\335\377\316\202 \352\351\313>X\203\356\000\275\252\347\016\310\034\024\047\320\363\312\205\342\346\205\236L\271g%\233)\225{l\047[\314\344VL\017\314\026\213P\265\363\205\205lOO>\233E\001\336\227\301/\224D\006l\300\372\014\n\371\236X&\006u\014dm\222\340\005X\276P69\365\237\355[\310\225\326V2\233\252\r\364\003]g\373\226`\004Y\353\207&~\266t\2664\220Y\270\207\354\001\037\024e\256\230\311/e\317!\226\205\354Z1;\237A\372\261\320\313\031D\334\223]\\\2042}\335\323\327w\266\324\337\207\331\202\234E\216\366\367\367\277|\241\347B\317\022d>\360\331\327=\337\375\020\356\201\006\221\203&\000\005\037D?\264\375U\205\244\264Z(\224\227\241(\341\221\331\204\301\274\201\365tg%\313\276\312\241\330\277\237\377\006<$CJ\324\264\363\320\275\341\343\201\236$H\334s\340;\247:\0050h \014\351\346ug\213(6\366\245\302s\341\361\361\370\360\\$\221\350\037\312,\364\304\225\234R\021C\341\221\271\370\320O\221\341\224\212\231t\205\207\211\234\014\047\302\023\375C\033++\237\016e\201\361\223\2312D\347{\3720\224+-\367|\333s\351BO,\273\001\243\360J\317w\030\300\304\030\363}\317\245\376\341L\036\253c5\367\240G\017=\212\231zt\032\311\224\226\201\273\343\271|v\244P.\273\336\r\344B\344\301\032\014Ky\224\314=\023\005%\004\303\367\262\305\314R\266y\214+ b\220\345\250R\023\260\030\243\323\261\341\271X<57\032\237\216\215\364\273\251\220\361\231\036P\037\262\231U\205e2*\343\362\336J\271\206-\307\203\375Z\">=\311\320\217A\351=t\351\341\034?\203\312\201\301\335\2167\210 \032\233\234N)\004PK\020\212\246\2420\374\334\214\364\253\317J_C\007\336X\\\314\315\347\240\314=c\272]\323\207\311\351\321\321\350p4\022K\315\215E\223\251x\342\006|\204\325\003\254\261\225\037\215\245\"\211Xx\034\353?\236\200\024J\344\364\214A%@\311t\2124d927""\026\216\215\214G\334\024\343\220YOjsM&\032\207\234\346R7&m:\333j\\\376\361\017T\023R\265\220\212\306c\001_\215\025V\026\262\305\200o\306\342\343#\221D\363/|\264\361\317$\215vX\204\360\206V\337\256g6\026W\241\226\303\013\031\030\330\357e=\3256\236\273S\304\301\032+\316[i\240\037\250*c\3255\021I\206\233\241\232\030\215\202\256\352\355\342\36738\"\224sE\245X\202\326q\021\262\354\031\036\210\025<\237\367\364\201.\001-\276\274\331\037\203\266\217\004%7\326\326\n\3052\221\203\244$\247\047\047\343\211Td\244\037\343\263\371\302\306\322\262\221\203\250\377\242.\347\266\367\346\r\210\006\302Dv\276\200\231\003\271_\203$\006\365\n$\306j\001\306\255;\246\027\227\001of)\223\313\017\260\014a\324\206\201\031\306\n5\350\227\276\356qG\001H\224\325r{X\351\364Z\310\256\344\356@.\345,\214\334@\031(\267Y%\334\363=\223\221\311\213W\276\274B#\016\n,\030q6\356(\305-\253F\223;\033\271\025P\020z\312\320\nPi^\354\331,l\250\361\002\213\273\206\n\036\373\000\004g^)\250(A\317)\261\244\244\344\034|\016\254>\327\263\000\3650\257\352\016\276\036\315\254\224\262\003\361\r\320\240\026/&pP\350\211\000!Q\230L$\315\t\007Ch\326\240\371\240N\233\225\221\371\354R\006K\047\241k\205R\316\017}\230-\026\010\242&a\363JT\224@\305\272k\301F\031\356\351\313\203\310\303\206\322\317\"\357aOSS\004\013\\\313\224\227/\302\270\212S\262|\231\340%P5@\351S*6)\375:\246\364\265\333\337\321k\206\235Ba\245\037Z\352\360X\"\031=\364\330\t\337\322\330\t>;v&q\212\350\355\273I\3500\371%\320J\\\032n]\274|\351\322\300\300\305\301K\227n\303\220G#\341\205\236[\010\031\030P\300k\244\317\273\221\227\000H\303$\244\204d\364\265\233P\217\232\020\007\021\230\201B\255\201\375)\240\334\310V\020$\361\373\371\236\221\354b\006tI\017\261\251B\241g\025\325\222\346\3750U\314A\353\334\200\301\330\373m1\267\266\347\310K\t\256e\201\205\324<\237:ZO\347\357\346\241\036\364p$\002\252iO\307\256\307\34231\245\232\244Q0\243D\004""\305\253\204\203]\006\347\234P[+\271\325\\\331\037\013\303\263Z\021P\3213Y\230\244b\361d\36639\034(\200eI\245s\371\342oBK\2778\236Y\332\243\004\267\244F~;\263\2600\007\302#{\047\273\224[x\320\223\277\223]\311\"\217\347\265\252\263\006\235\0048r\026X\356\n\333e=\324\256\025`F\203m\034\004\014\266E#\360\241\004j\244\271\240\204\335B!\253u\330\371b\241\244\226@\212\205\371,\370\356\240\316\001\311@\243\305\306\236\315\343\357\322\274\326{\365\334\035\373\303\375b\001\210_\310\001M%\234\262\360\370\025\325\222\365\374c!\007\272l\021\213\314\022\240,5:\364\202\252[\035\273\272\001\252\000H\206L\217Zp\240\324j\261A+sj.\2465\274$t\302l\351\202\302q\266$\346,v\024^\315\225Jzf\273\276\241\006@\265\332q7\273\211+,K\250\r\334\323\025\216\244b\277\302\036\004y\200\257?W\322e_\200\256O\003\334\327v\326O\264A!\262\253k\345ME\357\300\334<\014]\003\253\320ar\264\312\241\247\033P\023\320\347a \345\3116`6\271\354KQ\206&\177g\200\206Bd\254\006\250\017\265\267P\204\266\226]\300%\032\r\320\254!\277b\216\366\2276\311S^.\352I\215\016\302\374\013\247\233:\362\3239\263\2665\260\366 G\240\371\302\352j!\317\0008\177bA\335\340\024\300H\002\306\224\222WP\236\013\017\207\207\207\207@\355K\032w.\251Px\202\003\250=\3404qn1\267\262\022\036\216\047\361\317M\033o\226\316M\021\034?\022\036\301\177&\225\353\363&\213\047\207\325\217\233\320\372\275I\023\360\317M\226h\222h\026g^\370\347\246\234m\232\324&i\222\302M\020\034?>\036\216\207\343&Q<8\321d\034\376\2314\223M\022%\342\361\230\372Av\220k\276\221\301\200\017y\302\340T\311h\014\377LB\353\365\244K\205c\370g\322Y\2577]\002\376\271\251\232\3607}m$\222\326\277&)\017\370RO&\242\303\021\343\332/x\320\363\315\312\312\260\022\277I=\320\226\206T\273\036\342\255{\250yS\037\212\244\302\370gRZ\257\047]|\022\376\231T\256\317\223\250\260\2609R\370-\207\3568Hit\223\313 [\320\223\316\026\025px8\n\377\350{\353\223\230\206G\306/\017\047\3423I\327c>\360\204}\237}64\036\036\276n\276e!\213\300\017\364c\201\271Ct$b}\354k\001\360\1779\036\215E\222\251D\364zD\206\030\006""\037\320\217\005tbC\000y\331\367\022\342\377\030uoh\336IH7\346\r34\001`?\256\231\261h*\222\204\031g4\222H\372\000\014[\020\334\207.\214-1\036\213\214\014\205\207nx\303\026Y\020\330\217k$\035\216\rG\206\306\343P\2312\3100\371\241>DC\221\361\024\316\251\231\327\"\360@\374\037\047\"\341\353\341\231\360\r\356g\237{@\276\357\207\307\343P\007\327&\302\211\351\241\370\315i?\304\342\n\216\360c\214C\201\303\343\310\272\344\014\210\347\000\020\303\031\034\023\200t\032\227Y\302\251TXq[\2049:?\330\207k$\234\270\016e\231\036\031\216\247#\t\037\300b\013\204\373\321\305\177\212\222\203-\232y\031&\t\t\304!S7M\231\010_\213\307F\307o\230ly\230\241\010\000\373pEb\327\246\307G\241J\271\337\342\360\202\374\337\247#1\210f%\367@\030\256\300\210f\030%\266@L{a\271\026\236D\371\204\177J*\004\200,\276&1~\244\211p\032\244&J\005\315y\t`\010\203\340>tc\341\211\t\325\370\264\307~.\302\001\237\305\256\251>\030\023\001\376\271\007\026\200\"\021\236\210ZO\"\236L\312\020\307\346\0056A\347\375\244i\352\350\265\261\031\340\017\363\262O%$\340\343\353\327\303\327#\3267\021\037\021\001\216\312\003k\206\314\367I\323\364\361\t\340\353d\364Z$\036\363\004\031\016?\324\207\010\032Z,\025\035\016\217\177f\264\004\017\304\242\013\216\360c\214\305\"J*j\017\373\236\207\003>\003\251\226\212\214\270MQ\0028\232\000\270\017\335\365\350\360u-K\3107t\003E\210R\001<\020\213:8\242\031n\337w\315\322\303\270;\022I\014\305S\251\370\204\047hq\004@\375\210\342\261k\343\221k\327\"#\324\353%\200!\013\202\007\243\003\355\213y=(,\304\3671\033\243\375\203\363\323F\345\211pjx\01486\036\237\221!\216\302\013\014\302B\232\n\371\304\327{\351)\023\361\204g\254\360@\030\246\300\210f\030%\266@L{a\211\233\276\023\367\364\235\370\236}g\022\264\314a\335\332\215\327~\352\201\370>\206\311\324\365\344XxFKq\026\262(\374\300\000,\311\310(\250L\237MD\200\363#\311\000\020\307\027\030\343C\232\214\340\036O*\252[b\322\017\261(\203#\374\030\307\342\361\224\255\047\036d\270\374\320 D\211\024u\036\327/P\010\220\377\373I\020\207\220G*>)C\014\207\017\350""\307\222\002.FF&A\305\214$b>\000\303\025\004\017@\207\025\r\263\215\231\350\360\2307\314\221\371\301>\\\251\360\365\351D\324\365\330\257E8\340\263\344\364\365(\250A\334\317?\226 \377\367c\211\351dJ\367\005\327\317\276\367\200\374\337\047\214D \037\3736\261\247\004\230\216E\247\246#\237%\242Z\215\347A\213#\000\352G\244T@(\243;\351\367@\030\272\300\010\037\306YJ\305:\247\027dq6\211\361 \215D\307\361\317|f\275\236t\023\243\360\317\244r}\336Dq\3707\215\177n\312\370t\263\2446Ip\212\370\344$\316\201\265c\022\213\220\367\203D\"2\256\177\335\344,\340M\235\204\177c\370\347&N\2165Kj\223\004\247\230\236HNO\350_\223\224\007<\251\323Q\370g\322\245\233t!\276\374\205[\346# i\247\307S#\221\2110\376\321G\314+\277\037\211&\303C )F\242i\370gRG\203\227\350F@\371\034\213\252\325\t\345\232\3442\350\371f2>\342\256y\2164Y\375\034\231u\027`\233\254\304\272F\215#\205rd4\n\377(\231\365\311\017\240\300\266\314\315J\037ID\0220\\\272\270\232\310)\267\3576\351\304\221\331I\370g\322\314\006\013\253\310\372Ffet<\036O\250\037J\303\3752\375(\264\274Q\273\352;\332l\001x4\021\036\006iO\216I-B\236\0172E\263\335h\334\201\27194\n\233\233\363\002\026\003\022.g\347\357\316\025\326\214\305\232\332\312a\361K\331\362\036\261\270y-\262\321\311\324\216\346\\Im.i\213>\226\004m\236VX\030\267\t\005\216RY\2067\3629\264/c0\327\320mq%\263dq/y\354\356\002\"$1\010\267&\206.\030\355\021\335\300J\241p\367Nf\376\256\013\320ft\236\254\t(\321\223\301\235\033.nX\316\373\354\365DL`)JMJQ\022\245\030\013\217\231\3361\026\334M\306&\302cn\017\032k\322\227\306Rs#\303\223\320\205\342#\314k>\362A\202>\036\013\047#\326\047>e\000\337\227\030\031O\270\036\373\235\010\373>K\202\272F\216\375$\331L\207\203\270T\"\022\303\371h\204\373\355\247^P\360\367\023\361\221\010\367{\276g \317\367\271\245\345\361\302}e#\206F\261\321\211h\324]\351\2106Y\363\340\346ed]v=<\021\306?J\317\274\362\323\3530\246\2324\301\202\347\372\310O\360\317\244q}2\021\362#\014\243\3535\3273\027\306\271\252\047H\337\006C\233`\324\266o\303\221\311T\000\310\207\320\033\323""\014ir<>\031\361\004}\3108\264)\"\3577A\251c\343f\324\034\017\036>\307\343\327\006/\251\037\223\216\371=Is\371\354\004T\347\360\010\376EfS\344Pb\031\222\237b\334ht\226\034\366\201\r\371?`\311\232\244\321\377\273\351\232\264\264\211p\342z$5\0325\256\233^\004\275\337$\223Q\365\343\246\266~o\322\364$\376\271\t\323\223M\322A\371g\225\315\226q\335OD\320\367\231M\326$\205\233\240Y<*n\344\350\0214W\316\256\316\315Y\220\0366\047`F\207{\241\3065xe\320\203\035\030ky\332\214\235Q\320\314\240\207\030\327$\227A\3777\212\230\250$&\272\0271\321\030\374\323<&\327\375,\266\007\217\341\263\360\254\3765\037{\353\310\007\tB!\0227K7\235\234\033\211\032\327~\301\203\201\337L\030W~3\321\354\033\233,8E|b\302]\032\234h\262H8\001\252>\376\231d\326+\323\305\302\251D\314\356\323\307\232m\331\307\342\261H,\035\215\271\263\215X\223yG,\233)\306\207\322\360\217\242\255O&\214k\273\231\221\334<\232\376)\333\311I\024\304\261Tt\216\177n\262x\360\304J5n\024\330\211lF\231\203$\303\t\370\007\203\256\376\245\217D@bH\272\313M\311&\013Oh\262\020\215\215\341\237Ii\275\276\2446Ip\n\0305\335:N6\251\355\344D4\351\252\227\311&\212fr*\221\302?\223\314z=\351R##\221\264\3765iy\300\233:><\246~F\365\257\373\t\013\004|\002\265m\\\376E\263F\240\"y\302\340T\323C\360\317$s}\336Dl9\247\331\302Nr\032D\225\322\366\255\317\375\304\003\360|\251&\310\311\345\314B\341>\232\023i\237\2622\322^cgdC,\262Dyh\3040\223/\254m\316\315\271\301\205lv\315\003\002\301\275\001\363\362\271\324g\251\317\010\352z$e\251p\014\376\215\341\237I\030n\322.\255MY3\3532<\3244\254~\264\235\"\363\316\r\257\024\362Y\016\210\303\227""\336p8\2770j\360\020x2\233\275\313\303\323k\013\231\262@\244\214\220\025 \236$\207\345\026g9\305\375\271\304Y\016q\201=\31613\204\026\235\017\231E\305\021Y4#\352\207~-J\360\033\234\344eH\001b\260\202\327\242\205\200\305\033O\016\033\227\241\305\220\213\330\0048j\204\271\3101\300\320c\320f\220\320\277\014y\302\242N\370\020\047,\332\004G\232`(g\365o\202\034\206z\226\341\236\365#\237e\330g\005\372Y\201\237cd\010\375\370\030:\201\215!c\270,*\037&\213\210\343\261h\342\352\307\342\212\273\270\342^\\q\027W\234\341\212[\\\223q\375k\261MZt\223>|\223\026\341$\3078\311P\242\025\252q\251E\031\013V7\023\00309\3610\313\316\200M\236&l36\020\221\273\314Gd\022\224\203@\357\301m\021\303(J\216E\217\001\203\335\370\031r\004\031\334\350\267\2501\344bV\302S9\0263\006\014f\343g\230\021d0\243\337b\306\220\305\234\320\277\014\257\355\024)_\237H\331.\221\342=\"\305:\204\262\340u=\026\261\016\032\3346\304\320k\240\311A\207l&:\314\362Q\363H\346\345yi\200\315\315\206E~\032ls\324a\236\247\206\230\\\207\314x3$G\233!1\326\014\005\2154Cb\234\031\362\2142Cr\214AScrl\036\03009\030?\303\217 \203\035\375\0267\206\\\314\361I\375k\361\202\337\240%/\303\n\020\203\024\274\026\047\004\014\312\341\341\250\376uQ\242\237P\032\257E\211\020B\211^\027%\006\\\224\306\222\231\373-z\027b2\021\000\226\225\0137\031\272\000\233\255\013b\2313+h\037\200\223\301\301\226\026/T\020\304#-U\034\312I\343pN\237\266\263\026\001A\027\201\030M\014\"\351\241\010F\013A\004\035\004\3434XKm\037@\320\302\300\214\036\017T\322\304\"\031]\014*hcpN\037Y\202\313\220\240\314\300\030Y\034$i21\214 \003\022\324\030 \047\205[\223\007\200\004Q\"\202Q\346\203K\362D4\243Q\300\005\241\"\206S+\254\325\203`\202^\031\303\010\366GH\212e<#YF\010\232e\024#ZX\305\007\2008\3112\302R\354\207\013\202e\264\245W\3029\2712\206S\313,\357\375\020A+\2073R\275`I)\217e\204r\260\240\223G02\215}\277\014q\362\\\230%M\200\004Yn\214%\311\005qr\\ \047\305\234\025\360\004\0051.\220Q#`\222\0347\212\321\343\302\004A.\224Q\3449q\020\010\344\324y\243,\215A1\202Ro\002K\2577\206S""\355\215\343\264{N6\004C\005\365\3368F~P\224\244\337\233\202\025\300\033%J\340\215\024E`\247)\002@\222x\036\301)\367\302=d\363hN3\207K\202y\014\243V\236\326\010\202qz=1\226\340\200\010A\261\047\336\222\354\211\3404{\2428\321\361\237\242\326\247.-\020!A\262\2011b9H\222ib\030\201\006$H3@\017Q\336\214=\231\006g\350\311\314\227\221\310\204\237P\t\000\t\002D\004\243\304\007\227$\211hF\233\200\013\"E\014\243\326=\013\343\tr*-\320R(a\202:\033e)\2630N\225\205r\212\344\211\232@\240\240\316\023\305h\014\210\221\224z\0220z=1\202jO\234\237v\037\335Mh\016\246wOZ\203\351lF\243\227>\357\231\240`(\247\324\027g\311\r\214\0224\373RX\302}Q\234z_$/\2028\205\024\004\023\344\313\030F\274?B\222.\343\031\3412B\220-\243\030\321\372\200\t\367s\"\tb\211c\000A\024\301-1\004\340D\020HdnNNy\303\222\010\027\312\t\021@\0171n\034\047\310\005J\242\\\260 \014OTq\277:\220\345\003H2-\230\323)\241\036Bm$\247\324B%\251\026\356\243\325O\211\217\210f\371\373\262\016\310UdHg\306dH\020``\214\004\016\222D\230\030F\206\001\tB\014P\220\242\016\220\211\300D|\304\033\226\264\271PN\235\000z\350s\3438\205.P\322\350\202\375T\006P\341\047\241i\376\376\314\203r\026\331\262\223q~\210\240\206\303\031I^\260\244\213\3072\3428XP\310#\030\231\236\023w\201@N\2547\312\322\033\024#H\366&\260T{c8\341\3368N\273:\261\304\375\202R\ra\004Z\200\244K\303\0319\032 \250\320 \2219?#\030\004\223\304\210\030N\224/\302C\234\210\347D\212\010I\254\210bD\323)B\0210G\021\003\201\274\014\336([\210\240\030Q\no\002[\014o\014/\2077\316_\220\000\362\374d5%\307OFP\366<[~\202\322\017\341\324\010\270%\311\007\026t\211XK\234\000s\nE\004\047S\234\315\014\202\tRe\014#\326\037!\311\225\361\214`\031!H\226Q^\242\243\261\210\014\371\010E\230\207D\003\362\023\2071\036\262\020\344#\010\201\214\024\271\376\022\264\360\022\260\342\322|\251%`\215%pq%hU\205\235Q\365\001$A\026\314i\222P\017Y6\222Sf\241\2228\013\227\364\331\325\200\240\212\201\031]\036\250\244\214E2\332\030TP\307\340\234>q\252=\010&\250\2241\214P\177\204\244U\3063re\204\240XF\t\242\331\351\371\000\220$\231Gp\212\275p\017\301<\232\323\313\341\222\\\036\303\250\325\247\365\271\237\323G\020K\030\003\010\212\010nI!\000\247\201@\"s:\355\357\tJ\022\014\220S\301a\036BL\024\247\305\300$9\006\312)2\367\007x\202\202\"\027\310(\0220I\221\033\305(ra\202\"\027\312)J0\275\312\\Q\300\251Ix\365(\016\221\224$\274z\223\201\010*\022>=\211\337j\340\207pj\004\334\222\344\003\013\272D\254%N\2009\205\"\202\223)oK\010\004\nb=Q\214\336\200\030I\262\047\001\243\332\023#\010\367\3041\332\275\2672\004C9\365\2768K~`\224\240\337\227\302\026\300\027\305K\340\213t\213\020\211\216\223c\211\304\200\241\312\370\031\031\0102\371\242\337f\204!\027\363\304\250\376\265x\301o\320\222\227a\005\210A\n^\213\023\002\026e\\\377N\223\303P\307\355\264\322\3709\362\270\235H\242\237\241\217Os\374\034#C\350\307\307\320\tl\026\231\276\333\302\372,j\n\033\364,\310\262 \250\311\206\2026+\002\330\354\360n\014\327\3032SA7/7\304\263R@7\047\025b\031\251\260\315\047\251\177\307\310a9%\355Xh\374<\227\244\035\363\320\317rH\216q\374\034#C\350\307\307\320\tl\026\231:\346\341z,b\0354\270m\210\241\327@\223\203\016\331Lt\330\315\047\035\325\2776\207\264\035~\323\276\2017m\207\3344\037l\323v\230\305\233@\310q\221\252\000au\375\026\255\002\021^\345w\021\253\220\2139\232\326\277\026o\3245\0106^\2065\352\232\002\243\327\342\214Z#`s\263\010\363Z\344\006`r""\340a\226\215\001\233\274L\330fh n\256\312&~\204\331\304\217X\233\370\021\237M\374\210\265\211\037\3416\361#\314&^\235R`G\t\354I\002\337A\002{\216\200\037#`\247\010\"\243Q\375\353bC?\2413^\213\017!\204\020\275.F\014\270(U\233\340M\202\265\010\177\203`\355A4\007\336\032\224f\020Q\252d\204)\221\021\253>F|\212c\304\252\214\021\256,F\230\232\310\364\013\253R\370\264\010\2538p]\201\251\007\221\331I\375k\261\315\272*\245\3612|\263\256\002\211^\213q\326\252\213\352*\027\343\272hu\210\020\333\200E\255a\204\\\007\\\364:\350f\240\017S\214\362\203\024\243\354\020\305\250\377\000\305(;<1*\016N\214\362C\023t]\214\365Y\374\0246Y\260 \313\205\240&#\n\332\274\010\340f\207\2176\215\216\207qJ\254\356hI\341\275\365\352q+\016\030-f1\365\265l\031A\372I#\033\216\346\027\013:\244\336Rr\337\023\261\360q\272\210E\207\342kM\023\3527I|\021\370 \224\240\314B\210\264\261\260\372q\2715\346v\2321o\237\031s\273\314\030\3531c\266\303\214\251>8\306\372\340\230\355\203c\276>8f\373\340\030\357\203c\254\017\262[Wd\310f\301`&+\017\210e\311bL\326\014dI`@I\n\336\342\"\002\036B\024H\320\341B\274d\250\010A\205\202x\210P0F\203\276\021\206\3739\005\004\261\0040\200\310\237\3406{\002\360\334\t\3042O\352\265\036s\313\014\3138\311VxxPd\232d\353:&\3103L\362\325\034~\037\215\047\3103\266@\233\273\204\t\022l\224\245\303\30281\026\352\245\010o\270\361\004}\024)\240\207\"\027\346\247HEy(R0\037E\nj(\212*\273\226(\263\030\211Z[\221\250\317J$j\355C\242\3342$\312lB\364{oF\264\331\267\236 \2007\355\220\343\346\247\002\224\241\353\2679*\020e\251\374n\236*d2\275>\254~,VwD\270\356\035\017\256\273\243\301u6\026\\\267#\301\365\221\237\364\257\305\006~\203\216\274\014\037@\014B\360Z\214\0200(\335+p\270__\360\343\207\270\331z\341DB\020\330\222\343\215%\322\274`\227Lo\204\217\344\000r\334\213\204\202\241{}\341/\204\214\n*\210M\341+\214\215\n(\220\215\364\027\312GF\263\314}Y\252\213\217\374\220\200Bk\270/\047\013\016\312O\307\006\347\032TH\035\341/`@R7QL\375X\212\335\t\304\270w\3520\356N\032\306\331ta\334N\024\324]L\306\265\030U""\310 u\003\014\257\202\031\324*`\261\253\240\311@I\014\274`\211\234\310l\312\372\334\014M\230\262\344A\233\251\201R\266&\350fl\0006ku\373\223\365\211\3540\314\2623A\231\035BYv\030\024\331!\200g\047r\340\350\003ps\304\022+CI\354c\002w\202\t\334\t\277\300\235`\002wB\010\334\t.p\315\325T\314\313r \200\233\013\013\363\234\010\354\346Fa\226#Al\256\311d\324\270,?\014\271\231\231\000\317\tan6\030`y`\320f\220\236$\207\241OOZ\354\351I\037\362\364\244\305\235\236\344\250\323\223\014\263nH\372\202&\346e\371\020\300\315\213\205y~\004v\363\2440\313\227 ,o\236\013\313\300\217\233\241\025\030\0312\206\313\242\362a\262\2108\036\213\206n\354b^\213\327\000\014v\036fy\030\260\311\311\204m~\006\342\346\252[,o\254\254\235\372\233(k\235\242a\3626I7\2041\257En\000&\007\036f\331\030\260\311\313\204m\206\006\302s5\354\213z\331\027\365\260/\032\314\276\250\207}Q\037\373\242^\366\251\363\377\346\2422\346ey\307d#\346a\236wL6b\023fy\307<\215X\335X\346z\030\005\376\236\304`\226\216f\375\211\305Xj\002z\025\003J\232<\371\312,\003s\223\031y\363\340\350\325\325\\\314\313\363\322\000\233\233\r\213\3744\330\346\250\303\303\244\335g\230\364\3553L\332}\206I\276\3170\311\366\031&U\243\237d\215~\3226\372I_\243\237\264\215~\2227\372I\326\350\047\323q\375\313PZ*\323>*\323\226\3124""\2472\315\251L\351_\2062eQ\246|(S\026e\212\243\264rD-\336\352\227\343\315j-\003\321r\255\276\370\320\365\270\271S\220\010`!K\003\001\211\014\n\271\224P\330\020\223P\023\217\004S\026\023V[L\370\324\305\204\325\027\023\\aL0\2151\021\037\326\277\223\344X\324\0300\270\215\237!G\220\301\216~\213\036C\014\177\202\234\301K\227\254\217g\243\3026\0477(2SP\233\237\n\362,\025\200\347*r\340\350\003ps\304\022+G\31112\204~|\014\235\300f\221\251\tW\202M\267\022v\262\225\360M\265\022v\242\225\340\323\254\004\233d%T\017M\260\036\232\260=4\341\353\241\t\333C\023\274\207&\322\034e|\234\034\2064>n\261\306\307}h\343\343\026o|\234#\216\333\215\232D\026\357\014\317\352G&\350Qr\363\324*\276\225\252\354\220\364}\226\256\307%\201\202D\004\013Y2\010H\204P\310%\205\302\206\230$3tJZ\013\247\244\317\264)im\232\222\334\230)\311\254\230\364e^xw&9\0265\006\014n\343g\310\021d\260\243\337\242\307\020\303\31712\204~|\014\235\300f\221)y\222d\362$i\345I\322\047O\222V\236$\271\365\303\274\236t \311\223\346\336}\353\363&\212\246\334\213\366SM\256\334w\245\255\021\210\224\\\006\3457Z\244\221`\323\tD@\246\006Q\225v\337PH7yM\001\204O\332}H \335\344I\001-O\"\352dng\243\3442\350\371\006;\215\3569\224\232\371=I\047\302\226\274f\204\252\006\255[\265\216\346~\231t.\234H\204o\340h\030I\272o\364y^\034\344\360\240\027\007Y|\300\213\203,\266\331\003\203,\211z`\320\033\206~\232a0\374\306\023\304g\007\265\301\227*O\222\n\244A\304x|_29G\217r&\347&\303\261\2210\204A\230\214&\302\023\021\003\240t\223\361\361pBDk\000E\317Mn>\200?|Kg.\226}PNd\027\347\346\310\2366\025\215\307\346b\360\r$\233\233S\2179\202\223\317\027\312 o\320?O0\311\345&\314\235\233_\311\224J\366%*\363X\004\177%\002\374H\010\272\205yt\020)\272X\037\352\261\303\340\252""\341X\365\273V{T\022\325\315\334j&\227\307\204\253\331rF\323\206\201\302\302\306\212*\334j\2610\227\315\227\325\207sTY\350f\357\243\263V\314\256e\212\n\262\006\034\274\247&H\030\302\0479MZ\363\326\205y_rn\016\237I4\261\352\211\311\2719h\022\367\262\305\222\342\034\204\240\t\240\353\2767\251\312\273\240\327\311J\252\271\003kJs\271\022\260\257X\330\200\251^v\016\237\207\334XCL\232\365\245\215\371\371,\224\007\000\212\201\0330\201\233\313-x\303\236\004E\340!P\214\300%k\017\315\202\312L\231\302\326n\231\000~Ch\212\0104\2226q~+i\212\201\322\261\211\253\001n\320LtnMME\021\234s\r\"1T\324\253\213\320\"q*l\370\206lWsbL\202U@\321>\2607\317Rp\236%\232\377\002\277W\n\245lfn9\267\264\234\201j\270\237\231C\251\224\241\264%$(\263\242\177/ig\020\252\273\260\262\261\232\315@\035\255d\213\031\3543\334\217\005\002m`\311\013+\341\253+\034\350M\264\232y\020\000\362}\246\001k@\346B\246\270\204\257~\352\047>3\245\371\\.S*o\256e3\245\315\374|\2560\340\266\260R\246\\\324E\312\334[\322\236;w\262K\271\205\007wr\345;\233\320h/Ck\326\\-\225s\363w\347W\260]B\377*\0273\363Y\264\230\237G\rG\261k\276\260\262\222U\242\2424\217\234\310CO\300\004\312_BA\260\260\220\305\306ojO\365q\323\005\026\262\245\371bn\r?_\310\225\326V2\233\252Ca\247\200?\340k\276\254\212\231]]+oB\031\201F\370-\335\317\225\227\263y\210\006&\000\246yh%\213P\330\005\220\002Xb\355\327%C\377]\346_\311\255\346\312\350\261I)2Wt\275 \233\224|\322B\212:$\n3\325\277\220\313\312\203\257\272*\017\362Gy\nw~\313\352T\3661Y7\204%3\201\222\367eY\317\203\262\362\035\331%\354\237\352\247\264\254\252e9\273\262\206\315tY\277\331\271\222\315/\253}\254\\\016Y\224[]\203V1\227-\026\013Ehl\371\205\354\003$\225gg\263b\2316\023\2629\275\254\004RJ\325\003\312\346\322\335\354&\374+\335\275\217\334X\311.\226\357d\212\340\346\227\312\313J\"\233Gn\241\033\301\277lQ\263\033\232pnuc\025\034\315\351\325\354ja\025\262\325\201\\\t\262Z\"g\016\321k\001\276ZZZ\205\326\222[[\311e\213y$I5\222\362\306\032d\010C\330\235\205\354=\365\263\240\375\033ky\220\366\017\2007\210""\207\027\033\332\214\016+\237;\360\350\220~[\027\274k\233\272\036\013\213\213 3\n\371b\026ez\026\205\001\376\341*\233\022M\\e)\240`t\021z\206\264\222\315\251\240\237\273\303\306\004\031\302\277L\261\000\215\037\344\217\361o\254\201\357N6S\\C\276)?\366M\364l\254\254\030\340\002\374-fV3\312)Q\020\232:\270\313\031\3253\225\017\033\211\362@%(W\025\002\305\300\332rF\245\241\312\265\2769Tl \370\033\374!\272\225lf\001*\004\323\252\232\274\003E\006\377jf\3368\252\025jo)\267\224\207\2740\240h\203\232\326\277\272\004\332crX\315-@[6\370ry\375K)\225\307\246\314o\224\356\345\300\227\277\003\262\017\345\002V\327\n\001\327\024\047\3357\224\331\323\311\374\025e\252`r\260fr\2301\214\361\013 G6\212\230\030\205:9\274\260\030\026\324\"`\003\304\256I@\014*\301G\013\344\"\357J\2539\375\353\362\245\264\001\037\301\347\372\253\373\320@\251\212\224_\327\222\211v3X\203\277LI\311\003\365\243\312c\305\203\362\225\240b\263e=*\300g\363\300\242\334JV\367,\032\300\326\n+\320I\327\nk\252\213\253\237K\352w\220\367y_\377\2476\254\340\360[\300\002l\026\361-;\354\322\310\t5\"\252\361\020T\243\025\030#\240{\240x\007%\244\210\253\326\330\344q@F\t\265\264\254DE\2610?\250\311\002\337e\327G\036\030\246K\240\375\254fp\200\311\033\372\263+\213\232,\337S\327\336\027\256=\017[\313\367\254!d\306\037\2552`1t\005i)\245\375\224\351\335\334\332\234\032\033T\335\322\010\243\375\224\002\353\232\301\3572\270\032m\320c\243)\022\007\311\025\220++\340+\2265\207q\254\233\007\032\2271\036\206\315{&m\361\262\032\226Kj\252T\332\324*L\031\332\357\235\001\324`\300-/C\324\002\226%\267\232M\226\241\235\240G\177o}\203\326{\331z?+\027\346\224\324C\022\361\317\250\224\033j-B\377\252\301N5HE\253&\230T\335{z\010\326\232\020\014\010y\374CU\014\212\255\263\370_\333n\350?\377\333x<\374x}\267\353D\245\2632\265{\374\225\335\023o:o\236\257\017\326\303\273\307{j\307\352\203\273]\257A|\350\230s\354\275j\270:\245?\332\254tT(\346\245\327+\037\301\227]oV2\377\277\372\237(@\350\270s\374\243\332W\365\341\372\203\0060\344\345\307g\037\257W\332v""\273\336\252<\254u\377\257\355I\3505\347\265\217j\203\300\252\307\203\030|\275r\241\n_\235\252LU\n\265)\r\031\250\265)\210\363\346\271\332\272\0029\257\177\\\313\324\326\tz\261>EP\210\257\277\322\270\265}lg\220\342\006\352\031\212\273\334\350m\030\350W[\230\367Gg\376\376\370_\235\307\037\177S\311T\000\327+\217S\2257+\353UUW\367\037\317W\272\241\256\234\327zjm\2657ja\214\277]\355\255~Y\373\272\236jtcp\272r\256\372z\365\213\332\207\030\373\332\343\373\225l\365\207\372\207\320\006B\257:\257\376\267\272^\353\252\003\256n@Z\254\236\254\336\250\335m\234l\244\267\006\267\242\333\267\235D\322I\3169s\277:\277\026\234\302\303\277\377\365\257\337\333\206\332\301\031j\037Cg\254=\212N\264\375\247v\315\214\\u\335\360\350\243o\266\006\377\356;\002\302\047\266\272\367E\372-\347\326\317\316\317\313\316r\316\311=\000*7\333F\220\330\221\366\353\350\\o\237Bg\252=\201N\242=\371\002\226\000\310\277\355\334\006\362\177s~\333\004*\037\266E\220\330H\3738:\343\226tp\222\355)\177\t\316\234mu\323q\336=_\277\\\237\362\222\377V\265\275z\246\232\253\375\3368\323X\334\no\335\330^u\222)\047\005\r\047\343d\326\234\265\337\201\304Gm\303H\351\260m4\340\374\004\325\241\351\376\r\373\017\321\375\355V\270\325\234\327\224\337\336\352\335\027\355\207k\020\373\240\355\032\322|\315\024\204J0\207\316\\\373\257\350\374\332\236\t(\317w[SGS%\277l\r>\275$y\047\005\365\261\340,@}\254\003\215\305\2660\222\0326\275\231\272\261[\037\340\334l\277\345/\306\331\217[\337\251/\324\207\352\031o\021NC\262+\325\315\372\261\306\225\306\275\255\251\255\334\366\037\320\032\234i\350\321\320\266\326\235\365G@\342\037\246c\270\275Y\265\261q\242\373n\255\333\245\373;\347;\370:\375\367\345\375R?\342\364\301\020\270\365\321V\312\t\047\324X\224v\3223\007(\322\352\326w;m\262X\047\235\223gkS\265e,.\014\2670\250\327\306p,lR\\-\275\240\254\1778\177\374\t%\373\253-""\206\005\214\231j\242\326\266\210\316b\373\022:K\355Et\212\355\177\240\363G\373O\035\310\230\216It&;\246\320\231\352\370\031\235\237;\226\320Y\352(\242S\354x\200\316\203\216Mt6;\036v\010\026~\355\234:\253T\215\263\337oe\376\276p`\036N\035\200o+^\021\363\264\206\361\310\250\t+\316\312\252\263\252\033\006\251\010qt\342\355\323\350L\267\247\321IC\367\004\047\323\276\202\316J{\t\235R\373&:\233\355\017\321y\330\376\273lB_W\260\360\037\237k}\343\277XO\324}\222\350\355\352\207\325\221\332K\365w\033#[\377\336\312lm\356\274\002m\327Ik\251Zt\212\177\000\221\177\232\001\331m\365\252\047O\020\345+\265^\323\370?\376\336\371\036\033/\312\322W\037\337\252\266U\0259\351\312\325jw\265\367\251\324\247Q\047<\264,\375\330\226\000\310\277\353\334\205Zz\340<\320*\005\r\306)tR o\300\271e\252\347\016:w\332\347\375B\350\\_\353\353a\240~\247\341kk\357T/WS\265\267\353\347\033\251\2557\267\326\267_\332y\037\330\350\314hQZrJ\272W\216\"\245\243\266\002\300\231h\217\021\335\253Vs\327t\267\266\006\236\"<\257\036\232n&<\201\356O\216\254\313\023\343_q^\371\240\232\251>\300\031\013\367\357\273\022\002;\303\014:3\246)-\243\263\334\236G\047\337^@\247\320\276&\353\351\253J\030K\374\303\326z\353Gk,\352+[S\373je\2778\277\200P\323\335E\353\257\244w\320\020@]\306\025l\376\306\366\203\363\003tz\020\210\371\277\257\374#\203\236.\336\315\355\207\316Tb7\364\226\363V_\275\255~\032\323\237vN\367\327\273\353}\215^\toRv\020\345\240pA\315\226\241p\033FS\241\271\037)\277?\243\363\263\221\3414\350\221(\377\023\235?\333\2438\224E;n\242s\263\343Wt~\355\310\240\223\351XAg\245\343>:\367;\256\205\220\265\241\tt&B1tb\241x\210\363\3249\366\201\363\001\314\217\201\263}\375\255\027?\237\326\213\r\337\274\354\335\352Pu\241\326_\377\246\261\260\365\361v\333\366\333;\027\235\231Yg\026\232}\326\311\226\235\262\326\254\251a\270\375W\265\2178\265\210\227=\317;\323\320\334\365\2228h\357j\302\216\023B2\351\240)\tiy\304\253,:Y\263\362C\353\304\253\376\0251]\312W\254\024uwg\260\024_\324\236\276;3\335\350\333\372d{\024W\362\016%N\317\322>\346\357N\242\265\245d\342\024J)\047\302\242\224\373\257\313\253;\317\272\215\337\362R\262\215*]J\267.=C\343\376\3532r\350R~n\345\341\321\225R\211\376\013\373\356\232{\317\256\367\321C\337\305\021\340\215\312\367\265\356Z_\035x\250\314\r\315\262\325S{+\214\215Z\225\245\341@\352\362\264\372Ae\047\001\347\016\000h\222\320NJ\374ut\256\233A\221l\030n\243s\273\343\027\271|\257\207\310\341\221#\227_\373\\\251\374\306I\203\212\252g\3309\047\347\232\022Q3\240e!Z\315\243\221\215\264B\267\031(\3450""\357_\304\364\224\362(\324\301}\356\215\303\000\326\332R\262\261\010J9pxup\217\235\212\375U\360\37663[S\361\244\030\322|\226T\2420\266\363\260\331\262\240V?\217\316|\307\002:\013\035\005t\n\035\017\321yh\324\201It&CS\350L\205\022!\336|\330\226\3460\314Vp\342)\244\312\253\217\357j\353\204\2036\245/\232\017\205\332\300\347\302\366\376\006\n\316;\275\202J\272\244\234GIcB\322\274h\036E\372\365\217\310\225\037;\210\215C\035>\241:\0229\362\241\343)\335h\332\212O\250\rm\274\372\233\363\333}\347\276^\252\244\306B\033\001\264\034G\373~\264 \340\366\037\232a\370\272\021L\223\003E\242Oj\234\302U\364}J\307\345\235\337\234\331\333jw\343Y\014\276=k?y\047\017#\307\246\263\251\365}\3521r\275\331]3W\035\207\212M{\277T\343\243\350\214v\220\312<\346_\010\272\241\027\014\255Y\360\345ga\320\376E\316~\2706\261\365\336\366\324~\245\317\263qT\216\303$\226\245Y\005\255\251M\2403\261\037\031Ds\021W\370`\235\205n\243s\333\314\321\036\240\363 \364\047:\177\332)\t\257%&\246n\336\372\347\233\357a\327\361\nN\241\354\224\037:\017\265\365\016\365^i5/\255\206\345\212\000\211*\267\341\252\375\273h\207O\263\007\236|\322\222\026;\365,\314\341k\047b\035\345\350\031E=\234\206Fj\235\263\350\314\232\326I\315r\003\235\r\263\251\177_\362R\353\2147\213\330\324\315:\035-V-\264\213\355\341\347\301b4\262D\003hi\034\327JN\023\213I\023\373\035\235\337\315\362\205\333\372\224A\225\344-YJ\020\213\327\320Y\353\370\035\235\337;F\261?\217\232\236O\213\0217\320\271\021\272\031\022\354\327vw7\365\252\007\255\021\2210\2425\036\020\350W_\010\321l\226\202\343;?87\361p\200{\210m\226\364\252@\377\241+H\356\362\223L&\361 \r\273\335\331\220\262aYEg\325\030v\223\r\313\020r\177(4\214\316\2601u\243*!\321<\217\316\274\261h)\240S\010=D\347\241\021\324#\270h4\322\031A\047\3229\332)\252\362\013\340\030\236\035\273\365\363\363\220\326\373_\206\230v\246\365I\233\254\223]s\326`\216\376\273\363\273\336\372$%K\232Y\270\207;\324\036\014-YRG\241\261Qv\224\237\374j\346\317\267\237\007O\366id\356Y\304\205\t\001LX\0369\217\364\036\034-EJ\303Si""\253M\323w\222\0324ow\231\241N\"\\\357\360-\352\376\254\227FH\021!\325\303*\354\227\237\243\350E\306\375\265U\330\231s~FS\334\275\314w\016\311N\332O\047QG\273>\3049i\231F\313\275d\307*5-\352\325d\231\026E\047\032J\241\223\n\315\2413g\326\200W\321Y\r\345\321\311C\347\026\265\241m~n\377\362\\5\n\232&\235pN\364\232\005\047\271\033\363\324\245\363\242S\204Y\223\273\351Fv\014\322\200\301=]\300\205*\031K\355C\243 \331Jk\357et\312\240_\210\t\2276\352\270\255[\2675-\371\344\237\357\377\310\322W\267\362;\341\003\357B\004\263\222xH\2261r\226`Gk\354\277\264\241E6\330dpF\007\217\226\321Y\006\005\3027M\275\255WI\254\0168\360\234\333\343k[\177\355d\366\352\375\207d$\231\200\221\314\223K>\322\204\201d\001\215\360Yt\262\035w\321\271\3531f\047Y\260\347\002\020\361Z\367\367_\346\236\307\230t\270\255\037\230\300>p\036\270\326\0214kw\215\222\0247\255\326\216\255S\236\t\240}VZKv{\270oWh\356\327\347\301\223\303-\047\203\312\010\223z\261\306N\366l\304\020Z\037#\206\310\241\206\272k\240\310\213u\370V\233\201/\003/\210\022\336\332\245\331V01p\367^\0368!\023rR\277G\320\031\t\305\321\211\303\214\010\205d\3507t~\013\255\241\263\026ZGg=Tl\266r\233Q\3539\027\236\251N\352\25762\215\322V\357\241\252\3015\207\345\246\373z\317i\031\363\013\262\214\275\345\314\202\346\255\217\362\202^\005j\221\236\360\320\352.m\222\321\352.-\353\312\243\r\322J\206dd\014\235X\260u3\r\330\264\004\020X\r\221\2200\275u\216\275[\305&\177\377\301SE\201g3\365Tm\tg\344\007\224\n0\013\201\371\037\356\024\376\023\013Q\244\217\220\344$\013\025Z\004\224gi\210\307r\005]\236\245!\036\273\003\272Z\021\370\315\277V\005\252/g\345\261\2477\3317k\033\270v\374\264\323\021\310\311+\333\017v\036:7@\337\206B\353\265\316\362^\2156\35494\021\330L\001\233>t\273\342\254\300\370\255WN\245]\013\255\025\021\047\003\317\260\322\226\256<\225$W\246IZ\320\324\2358\231G\047o\327V|\246\341\177\2074\035/\006W\2576\356l\265I\256:\335\037\325.\327R\365\267\033\347\267R\333on\257\357\274\344L\0012\020\272\332\262\037\257\347p~\027G8i\362--\037iyJ\256O\323B"" \251\3554\304\273\023M5\304\223\346I-\224\2440\035yw\265w\342\353\371\372\240\345\253\332\244\1771\370\372\345V\373V\257\227\257gk\211Z\271\376U\343\372V\031\2552v\372\235$hI\320X\265y\273{H\234\032+M7I\357\224\206i\201V\2454\227\227\352\274\324\017h\017\236\326\376\251\261\272s!Zk\265\027\020Y\336\252\235\317\027\203\267_m\275\2765\350\345\355\307\265;\365P=\332\270\265\035B\273\236\235\257\234\024(\n \005\364U \356\231\343\300\353\210h\326B\262T\036=&s7\2321I\221\352*]j\020\223\212\376^\013\330\352\002\047\313[\325\177^\014\336~\275\365\341V\330\313\333s\265b\375d\375F\343\356\366\311\355\364\316\340N\324\231\006a\000\310\200\261\240\013\270\247Z\003\257\353\221\0063\201\266\2444j\271;\275j\022EL%\005\215\204\354\":\213f\311\332e\252\232D=0\274\375\264\316d\355C6%\355{1t\202\303Zh\006\257F\311\333y\344\366*5a\232\244\312\331)1\226\264\002Z\251\372\r\235\337:\326\321Y\267\214\245kF\274\313\200\177\377\373_\235\2579\257\342\336\306:\362\351\301\343R\245w\267\353\245\335\320K\217\273w\315\315e!l\247\366\326\262&\037\251\213\345\324g\047\234\023\250\224\272\375\343\345\177u\276\251\276v\006~\204\371\345[;m\270_\177\242\322\206\007s:\037\247+\203\225\010T[\027\352Um\3257\201\241\235\265\231z\270>e\304\230s\361{`\347\272\027\337\247\316\247C\333\275\2405\250\352\234\362`{\365\361\022\224u\261\032\256N\327\316\301\004\245\327\224ASaV\207\377>\376\257\316\023\217\3251\2466\250\301^}`\010\003:\205:<\364x\3359\241N\320\341\265o\375\325\301j\230\300\272\014\257B3\354:Q9\246\"\272\216=\276\362\370a\265\273z\016\272\362\361\223\025\200\034\177|\2552\350\234\240\376\325\3079\335W\240j/\324G\032/mu;_\217\357\014\357\254\213\002\275\214\025\212\233\n\037Un\302\024np\367\370)\274=O\323\032\205i\335:\026c\246\022\256\244\252\247t;\320\301)\203\246\243r""\2712\r\334\004\376\235\254\214T;A\264e\334K]\220\347\257W\376[ksz?k\014:WF\266\303\333S\366P\327\223P\047\026\022Ku\006\276\352\352V\365r\005\217o\235\256\276T\353\256\235\201\266\325\365N\365<4\262\0055\361\354z\2632oR\277S\375\0102[\2006\336\365\0260C}HY:\335\237\324{\235\363\337mM9\337\307v\262\352\302\262i\312\027fvO\364\226\030\224IU\375\025U\214\301\3125\237m_\271\362%T\365\0304\224\227\272+o`\rC\343\047\252\333\220\310c\265A\230\341u5\332\334\214A\315q.@+v~\210\357l\250K\225\322\224\361g\330\252\0023\036\253\216\326\200(\235\361\251\312\002T\354\203\332\203\372&\350{\212\210\301\3120V\246\315\030\327r\302\325\024\256\217\271\031\203\016\240\032\274\023\236R\047\007\360`=\345\374yc\252I\316?U\027\261\027\234T\031\204\234\367\006\352\013\215\217A!:\007\343\307\024/\250[\033\047*\241JX\324\332\333\272K#%\047\376\325\331\365\277\215\307C\2173\346\376\311\307\203\217\303\330`;+s\265Q\254\223o\261\205\356\036\307b]VM\344\205\230\376U\177\250\367\266\310\210F\236\350\243\031\013\351\202\3737\000I\241\2232\n6\315\004\177\366\031\330\274(\223\347\013~\033\244C\356\n\222\362\034x|W\352\320\356!\0365d\216 \213F\314X\271\247\035\253\3351|>\006/\203-Ze \216Ic\016R\211\311X\215x\344\336\273Ev\007\336\265\203\347\301\207\001\377F\362!\327\371I\213\225[P\324\325h#\231l\236\345\\\366/\237\t\337\363Y\226nk\341\2424\255\227\310eUyy\035-\224\310\271g\330\267\032\335\314\274\333\047Q\016\310\013\334mh1/\366X8zV#\326\247\363\243\205\346\356\007/\374!\257\316lR\252\3477\231U\023A\261`\030\270Y\345\251\367\000Y@Rp\2579\026\315h\345~ m]\321\350;\203\316\214\307\342g\316\267\221\365\2020oP\357\302|\260\327}\037\327\235\031\317\246@\023\001BR\224\026\006\245U\216\274\357G\236#\241\225V\032\177o\240s\303cU\221\351\360\335\"\362\302\254X\367\376\343\353\325d\013H\354#\241L&N4\325\017\274\\\355N\300B\365\213\301\305\317\032\236\265\276\200KB\356:7`0\324\367I\254:\253\017\234\007{lN\321(F\312\2634*\221\207Z\344\342?\031E\221\335\336^\367\361\360\313T^\020.^i\370V\365zk\257\327\256\3246""\033\307\266\256l\335\333\236\332\316\355\374\356\334\204qT_U\007\370\240/k%Z\236\200\243\303`$\014I\227\226\033\370\362P\203\324\023i\255\237\214#H\227v\371G\226\351\304\306\376z\367\213\305\306\317\033S^6~\010\tF\352/5\336\335\032\331\376\367vf{\323\231\004\231\010\003\212\276\345\n\357\301w\036\352\025;y\204H\336\006G\203\212\334\253\226\347\316\245\201/m\226\220\245Y\240i\177\326\360\361\223z\357\213\305\307\253\215\314s\330t\"\265]^\263E\373#45\246Q\331e\240Z\312_\014\330mz1\370\370Ec\335\313\307\200{\202@6\302\030\255/\266\302k\270\235Gz\214\226\027\224\311\313\031\003o\047$\006\322>\223\234\367\220\222C\226\0244F\273\014T\313\366K\035\276\033\210^\230\355\272\266\347\264YG\323\047w\362\250\246O\264\367A\353\r4R\273L$K<\377.\335\213\262=\327\375\2346\347\3662g$\345{/sF\261+\367\242l\307\365>\247\315\270\275LH\310\256v/\023\022\261\013\367b\360\362\033\377\246q\300\245d (a\340\326\2278\213\033*\003\237-\220\307\200i\360\226\023\032\271\240(\3678I\227\244y\215<\235C[qw;|W\236=3?\367XI8\010C\367\273\346\350Y\236m\276\272M\334\224w\205I\215HJMy\304\232T!\342\246\273\310\275\347\262\344sd\337~Wf\370\311\342\rg#\300\226\226\370\026\2708#;\267\274\255\207\314\231\250\025R\257v\327%h\222\275\347\332N+n\303\335\327\324d\335\231\324\373\340\320-A\304\005\351\201\327\332\367\2365\264\3465\246}l\350Lm\257(3Y\320\025`2JK\354\316\357\217\366\334fi\321\3332\373\350\221\031|}#\245\036\227\201\026J\233%\316\243?\366\354\047-z5f\037\3739\353;\307\325\006\247\336\240 \203\007\347\217?\367\334ei\321\273\036SO\267\311h\333yO\275\353\241e\031\255\025B\177\364\331F\034\301s\027\373\330\332\350\306\233\307g\234\031m.\302eEx\357}\211\026\335\263\333\373\364;v\247vV\324\016\224\026gA+\014\221\366\275\027\243Zt\233\356\340\323\357\322\315\354?\206\302\350\204C\343\350\214\233\0133\351\260\264\373\214\007~n\316`=B\347Qh\024/=\030\355\034Gg\274s\002\235\211\316\230\270\262\346\361\267\225G\265o\352\231\377)\203\313\360\356\3617\360\241/\277\363\005\232J\272\316\227\325A?\360sh\017\366\203o\252\031t\276\256N\261\017 \0163R\366\224\370\320\362\225\253\320W{\267>\337n\373\2376\007$\247\362\037l]:PF\304\306\213\026\204a\035\330\250\204+I\023\263Q\031\252,T{u\340>4\32624\247A\025t^;\253,\036?n\2645T\356dt\207\357\024C\221ch\370\271{\374\335\352\347\265\343\3650\364\255\266\255n\264\250C[\324\001\0202\047NV\306\252\341\335\223\027\352\327\320\216\364\311\211\276\372\177\352\353\2156\227\\\027\335\025\347\334\320v\357\337\377\376\327Kh\031\333u\3349\376\036|x\374Te\272z\261\266\016\250\000\353_\325\245\33244\315\223\346b\224\023oW\337\254\336GC2\350\343\335=\265\377\250~$\2437\353\355\365s\312\252\365\370\t\315\031$|\002mH\321Tv\3049\r:2\310F\023\213$\274Q9\003Z9v\224.%\267\224\204V\225\324U\353\204I\255\262\031\204\312Q&\213\047\336\002~\241\025\356q\034!\224%b\365^m\352\t \354\200D7j\031E\325\211S\225Y\370\3427\303\000}\277\213\341\301X\365:\224\362\2306\266=\366\370j\345-\3474\356\033)c\336W\240\2258\357\240>\207\301\047D\323\0224\216c\257WzU46\"e&\274{\242{\367d\017Py\253\021j\204\261{\032^\177\022v\302x\243\344nWo\355}U\344\256\367\001E\327\207\265\013:\364N\365\002\320\372\000\275\037T\013\300\323\345Ff\267\353\275\352\265\332\347N\337\267\240\233\334R\263,\370\302\371\020\024\341\306\330V\030\231\365\t\010\010\004}\211\225""\277\325\267\335\277sUi07\234\033\031\047\203;\253\374Z3y\261\227\034\345i#5\360\206w2\252\213t {\276\254|\006r\3648\014eN\317\327[\375\333\337\356l:\263 } ?\334\317\335\355:[\373\245\361%H&\325]\356V\337\002\265Ay\324J\303\003\350\264\227\3612\035`\312\371\013\207aG\375\265\306:Z\304JF\234\305\366B\240pc\026T\271\305\235Q\047\001\202Q?F\341*\255SJ\275\311\336\222\356)\366\027\215\315\355\343\270h\017\335\n\260\343\312\036\322~\276>\213\231\037U\261\277\206\301e\320[\354>\220\253\010\272\n\205^\337\352\332~i\347\315\235{\2120\375\214\241{\215\241\234\361\322\240\037x9\274k\205\342-\366\227[/m\277\207\353\353 \266\000;\232\014\341P\361m\375\201\356~GS\354o\264\334\350uz/7zQ\212p?\262\240\277\256\273\376\027H\305\326iP\225?v&\323\212J\375\262\212\253\370Hm\222V\\\245\361\203\344\001\211>\332\330#\231G\306\017\366\022\003\017\233\276\332z{\373\302NNI\\ \000\355\202v\273\316\324&@\033T\355\326\317\246\315\352\361\332\020(\306\271\306\243\355\313\333\263;-`\227l%\255a\221\334\032\261\027%?s\371[\321Lp@\234:\360X\350nb\310mt2u\013\274 \332^\226\373\002\214|N\337w0\235\317x\313}\276\256\345\243\222\224[_\302\344jT\255\315\000eP\0350\tq\r\306\345\2267\031\247\005^\022lo7\365\224\373\233\255\257\266\307\235I\340)\3146\000=\332\036\355v}\\+\300\230\253h;\322\202\237U\327k\267\246\334$\016\237\241\334O\240\241\217\326?i\250\tH\244r\n\224\367\207\250\253\276\013\032\351(\236G:r\266\350cr\236\366p\241\256\007\0165\204l\215mGQ#\320\204C3\205\351\241{\326Bn\333\323rB\340m\267\366\035_\017_\276\205\t\350\317\316\024\360\0344!@\2176T\273]\347\234s_""\300\260\274\276}d\003\205>\322\347)\371@]\013\005%\036\266\226\267s8:B\261\365\331\025\376\"\216\334\024&\365\217\024\002\271\324\340\356_zK\376\275~\025]+\200\200\036\027\326v\273\372\235\376o\240-\342\031\305\243-\371\231Z\314\214\220\256\267\005<\2206\322\324\035hI@Z\310\223u%Yk\320\226d\242c?lz\002\212\304\325\372\333\250+\213\216\363\016\255\365>-zo&\233\001\026\257\300\276\263\323\345L>\013\267\365QEO;\273\334\320MOU\305v\037N\005\264I:\214\004\336[\264\345\372\013\355\233\313;@\344\243D\256A\272\227\223C0\242}\353\314\350Q\026\262Q\227\345u]t.\016o\177\2713\270sd\rnL\235\337\365\260\340jCsE\361g{\0315\000m\320\013U\214C\255\322/\3448+\017(I[r\371&\201k\306\353e\301(4\347Gj\225k\321Y\204l\324\"\\\327\2403x}\347K:\335\3714&|\217\322\370\220\263\316\343\333\341C\314;\335\363\337\322\262\207V\245\211\017\201\035n\275\325S\317\037Q \037v\362\371\236\277#\354c\372\331\312\322?\343\014\364\320\245G5{|\247\3550\212v\320\272=\331cKs\031R8\251#\2706]-\326\267\207\266{\377\341\326\337\312!\367\031[\377\2203\004\224\201\330\324\225\342.\202\037~\016\3623\332\026\350\311\205\262\027a\354\331\355\352\323\213\027}\310\362\217\235\217\277PS\366\266\375\315T\270\370\224\367\360\223\242*M\364\3455Gd\321KvA\362\032C\272\242\213.\212\240U\372\tt&\314c\333\323\350L\233Uz\272C\276\204N\311]^\214\3408\365O*9JP\310%W\371\310\265\234T\311\267\207\354;\214\255\225\020#\316\010|\205\013\341\207_qY\331\031pf""\3614\017\314\310\234\217\256\250!~\212\373\367\267\014\243\326\334\344\"\203<\355#m\204\345\374\222&\226\324\362\244\3415\265<\272\r\215v\236\351\016\376?:Z\260te\032\333]h\027\211\355\007;\270\225w>\202M\3440,\375ak\035\032\273O\211\272X\327 \265\230\2735\273}\003{\261^P\321\257m\353\305\032\251?\313[\016\344)>y\333\203}\035\323\303\217\357@]\003y\243\327\006\364\224j\211\344\r\010\374\355\247\352S\027\016\315\010\354h\370T\365\001;\232\026h\201V\"$\327\244\t\265|\360\324=a\333\332\216vq\240EK\330\317\2440\036~I\217\346\332$\356\345\355\272\362\010\016\211{\272\037\217^\037\241\301\367\317\216\177@\023DV\177T\373\016\255!\216b\013\261\353\350vI\016\273\207x\263\216\022\347\"\310ru\215\323\241J\177\020\r\370\201\334N\344\317\350\311\271\253\274HC\0366\224\227\254\270g\273Z\325\355\210\047\207\026>\330\032\316o{\272\336\301\266\227\203,\t\344\213\233\362\242\047j\0274\276\221x\246}F\232\263\221\202E\006V\366Q\352V\353K;h\3652 U\244\236\332+\312\210\007\2708[;\220\000\273\271\rQ\347j\177\252\346\223\301\3014o\025\203\275\205\026\260Q_&u\337\271\257\347\343\324\302hH\223\227%\310\363\351RE\rd\235<\202)\257G\334Dg\023\364\205V\311\254\305\372\265\306\0170\235\270\243$\010\332\331\002\223/\r>3\213\017n\362\001c8t\\\230\223\224\234\222\336\373\242\001A\276(#\357\363\240\221\200\006H\352\260t\023\212}\323\257E\3357]\377\242\321\333\032\366\220\215\004\237\274\236u\316^U]v\375\251\366\022\313\3162\014\234\300\047h\203z\205\222T+9\273\227\327M\220\246\032\370*\032\265C:\225E\203f\340\214\265\334\361\354\326\026G\333\362\016\261\301\336\264C\313\261B\236\016\244u\316\300\307\214\334\367#Z\265\367\336\302\246w\210\215x\350\227\240\313\303\204L\257\222\310\207\232\245A\256\234\035\321xA\343\351>\355R\016\275O\337z&\355oq\351\037a^\340\236%\2311\323\242F\340PAo\030\220\0313\255-\375\202\316/\241_\321\3715\224\t\265l\276\351\353\324\332vE\334\220\343\316\006\261\252F\2673-\031k\016\272\370\361\264\321F\256\366\311\013\217H\204R\227\247\346L\307\325\3357\271Z>\350\\C\205\345\2318""u\250\255\220\254\223\005\361\010-\270\350\024\365r\010\355\211\006>\275\331\002F\035v\247\244\205\214\322\343\363\267\333\353\007\262b|\332\250,\207cy\335\216|Y\214\2567\2413\346\356{1\255\262s\264\234r\256i5\274\025\315\n\344\305\324Q\264,\251?\313k\262\350\262\261\300C\345\366\312\266\0267\260\313\2371\206}X\273\250\355\362\217^;~V\225O\276\030l\337\240l\231\240\372\252\021n\r{\016a\033\232sr\377\240\212r\330\255l\303\243\317\2560\036\261\225\221\003\360\350\340\306\345K\316\322?\244\345\036v\315(]\377\2721E\354q[\016kB7T\361Z\311\236\377\010\361\375\202\263g\246\036m\025{\366\331\303\316\311I\022\250K\300\034\275\264H\312\034-\032\311kT\344E^\3228]\276\260g_\222kQ\017sy\024u\242x@\235\3653\374Z\t\370\003\367\263\363xPq\352\240\235\255\271<\242\026ERZ\352L\362NRR\010\002\357\004\267\227\272\266\254\373}\323\3005\266\317\246\234)\375\3206)\303\264\rAg\047i\263\212^\203\376%\364\314\312\226\332\321w\306\240\246\013\270\nk\232\026\ri4\360\333[\215\017:.\344\235|\331)CUhc\036y\2774mlR\343$\335\224\354Nh;\216\236\337\013<\363YD\247\030\372\021Oy\376\330\031E\047\3329\211\316dg\032\235t\347,:\263\2357:[7\210h=\344\312\347\254\367\263A\344\000b`\237z\310\375\3471\210\034V\017\231\251\377\244Z\361\347?\355\364\266dj\371\201\177\036p\270\251\245<\265\360\342L-\277\3702\210OBu\233Q\033\275Gs\304\321?\017\240}\033\352\251\264OJ\263\002\032b\002\337y\224\227\361I\303\017y\331\246\275$\262e\223\203\317\361\205\232\026s\2635\353\350\264\013H\035\225\366\233I\264\323nO\340\203\024\362>>\032\203h\222%\357\334\264\367D\266\254i\036);\371\272\236\\\313{\001X\273\017\023\245\3538\354\\7\2576\223\361c*\364\354\3347\253x\221\306\333[\237\242\205\250\276|E/c\256\264\274:\0165\211YqV@R\240u:\177u\205T+\222\022\264YD[\335\201\367\345\313\333\021I\306\222\221\216\334\202\2637w\266L\321:\232\326}\360\223\267\3765+Z\203!\275\236\2322\215\\dt\027x\277\237|\360\215Vd\002\337u\267\227w\266l=\353h\330I\223\2443\316\231\317\315.\261\334\244;\250\352Iz\200|_\211\024Q\322\n\002_& \246\322\342""\004\351\001r\355\177/i\021E\371\0205\317H\333\247\336[dW\252\245\2052\000\325\227\271\320\245F-\257\217\226\354\354\321\356\203|\337\230\224WR\311\002\3375p/\222P\323WZ\232\245\231\230\274L\225\366MWZ\270\371w4\355\273e;\201\264\024)\037\276\242\231\000m\324\007\276r@\314\244I.YA\320\355\362\201\355z\265\225\233\205G\312\324\243\3339<\nfS\313\245gdi\037\221\314\344\350\365s\022\033t\017\322\rtn\204\346\321\231\017\255\240\263\022z\200\316\203\320\237\350\374i\346\304\341\316\026n.\006\252%b\216E\334\241\356-\317\307\317\341\216\343\027\023\316\204\026m-\235\362\034\337\276\276\263\276\337j?\352\351\220\\j\2237\357\322\350A\032\016U|\240a\3445\254\307k\306\016\236\226{\250\306i1\244\200N\301T\374\010\326\370H\347O\350\374d/\300z\366)V+\253?\346\304\200\303\352\026\325\026\317+\224\245\242z\047M\\\002\362\317\316/\344C\334\201\267\235\221\032Fu\376\047:\177\232^Ng\037\310Z \215N\332\034\247\272\213\316]\263\362E\247\252\312-\236t\340\010YT\003\270\356\n\213XgS\312\002\264u\265\345Z\263\363.\372Q\355{h\177}[\275O7l\007\225Y\337S\247\373\247|\362G\336SG\375\223\226z\345\343*\256\201\232\332\304$\225\202\0043\335wO\272\004\275\212LuEG\337\3449\225}Zv\034\306r\236\325\217\363\365Ox\351\257\276\274R?#\265\n5\364\345\2443\211*_\253\265\357\211\235\367\235\364\314\263\256\370\356_\355&\225\217\004\247\273\340\246*F\336UN\207\021I\321&\211I\2666\021t\"\241\321P\353V|\215\256\362U\302I\350\303\363\255et\014\217\313\334\330\353\254\314\3211\235\324\024y\002\224\266:\344\223W\364\024;Y6\321\005\2154L\321$\207\326B~F\347\347\320\002:\013\241\337\320\371\315\250)\253-\236\371\234G\271\257_\325\245KjmE5?\256\333\222\311\376\367;\03783 %\325]\235{T\336\221\255\001\310m*)\273\250\266H\233t\3176\251\236B\013X)tR\246\266\356\240s\307TZ\036\235|\350>:\367C\177\241\363W(\202JE\244\363\032:\327:\307:[g\214\272wMb\3031\n\270\273\327\331j\005\342\203\355?\235i\020\252\240\000\024w\273\376\353\374\367R\243\r\233`3\377\221\352\023\264\272#\327\034Hk\314\243\2237\323\005\332\017$\345\221\372!""\035\233$\r\202*\230\006\047:\227M\212\304\006:\033\346\\\366\037\350\374\021\242\n\246\235\264\024:\251\316\233\350\334\354\374\031\235\237;ow\266V\3638\007\r\047\201\275B?\215\255\257\342\303K\355\2258\223\357\321\305P\225\374\341\307=\033\2000\353P\333\322/\330\232?m\316\005^\341\"\215N\367/\223I5\241\003\315c\350\214\201hn\345\266\300\177\032\017\267q(\374!\255T\203#\251\201\326\230\377\355C\214\322\274-\360\\-\355f\321\006)mc\311G\367\250\007R\035\220zH\003b\014\235\230\021\261\324\021gB\255\\t5U\021\036b\365\360\024\2318[\237i\034HQo\363\334\235\366T\325\\\277\371\243\273\201\354\266\324\rh\265\217\344\270|\323\224\016:\321\270FK\047\362\264\216\373\224\275Z\373\223\257{\221>H\203\035u\003\232MQ\205\304C\255;\315\232\256_m\234\202\276\264~\224\2250\254o\253\022\2250\330\320\332\240\252\240\355\323\370\360\237\236\023\200\372\244\037\376\323\257\225h\375G>T\047/\261\243\216 \037O\244\301\207\014\006h9\203\224\014\032\212\344\303\274\356\232\253Z&\224\027y\357\363<\177\030TZ\230\332\350>\000e\3207T\\p.\204\241|\335;\317\273\026\"\333S\333\336k\004?k\350\345\3030\266\222\355/Q\240\352\007\234@\203\325O\335\271\327\357\313\313@\002\337\230\246\325o\371d u\004\252\002Z]\240\031+\251{r<\240\211\021\251\010\324\021\206\220\351C\246#P\025\220d\232\366\325\304\360\366W;\343\316\254^\"\327\307hWw\273\006\234\201\010\3369\272\223y\31651\272\235\301\241A\324\304\225\206\336w\033\202z\030\334\036\303=A\375X5\224@?\224\047\236Z\246\025\003\371\260\233\274\306\216\226r\345\243\203\362\341{\332\301\224\203\264|\335Vjjr\232\032xuN\332W\033#\333Q|\360@/\324BY@\302\346w\273>u>\275\206\267\n(\273\270\347Z\035\327\266\327w\274c\304\347\r=F(\321\005\215\006\2067\375\3625\024\001\337\332s6\304\211\024yN8\360\375p\032%\344\273\205\362VA\032%\310h\207\224\245}\214\327\264\364\266\317\361:\002\003\336\212\322Pa\336\007e\201iwa\267\353\222s)\272s\332\231J\250KX\366Q\037O\272\216?\376\251\262Z\273\212\333gx\257\375I<\206\214\260\\u\275\026\252)6\276\3628^\375\2526ZWKb\2578\307?\250\336Qo""\200@\272xu\020\221\320=\374\307\036_Q\017\000\334\307\313\361\325u\366\340\340\263A8Gy\345\365\312\177k\307\352\203\030\363A\365\367z/z\336\305\213\353U\242\017k\275:\321\351\352\177\353m\365\223u\234\261\276\322]\351\254\244\253\203\325H\355Tm\241\336\013_\237x\313y\013\047>\047\0337\2662\273\047\336\257\246j\335\265\336\335\023oT\256T\326\235\323}\365\016Ht\362t\265\315y\373\274s^\267\212\023\247*?C\252\001hX\220\347\251J\306y\253\257\036\252\207\233\347\200\332\336\010\250D\335,\207S\225[\265\266\332\007x\331?!9W+\327\0075\325*\334_\177\027o\331?\021\210r\260\321\3358\203\\\337=\361Au\241\326[\033D\224\323\325^|G\243\376\303\326\031u\023*\335\363\017\255\333\315\245\037\231A\327\360?9\344\325g\007\275\366L?j\"\356\205!\345I>\230H\243\367\355\326^t\366\344\260wr\034\364>\016\375\036\230\270\225\203\324t\352\375\264n\353\3366\324\322\2337\236\034\366\364\377AO\373\353\247\304\364e\010\362\005\353@%l\256\2657\310?9\354\365\361\007\275<^\277A\246wI\345\003\323\362U(\373~R+o\214\177r\330k\314\016|)#>\212a\256\366\220:u\240&\227i\355\025\214O\016{Y\214\274\257\342\200\327\303\300\370\346^~.\037i\016\324\227\344C\270\373\274\020\340\231/|\301\253)\236\034\366\032lnU\304\267\244\366u!\266~\252^[\302Iu\222\332\002Yb\323\374\212\3569!=2\360\022\200xG+.\3126\014Z\335\372v\273\2504\223\303r\350\007\3775\341O\275vJ?<\257Wa\244VG\002\217\3249\327L\275\305\027L=9\354\365\330\007\276\026\034\237\2067\327\224\322@M\242]\276\027\341\036zk\361]\340\207+i\330\177\001\372\247u=\224)\373\231\255\007\333\233J\364i\262\200\373PN|\271\335<0J\2035\211\367\300\246\276\344+\352\0170>\036wRz\270\006\234z\307\362\023\347\223\357\240\r\251\331\365Q\025ULN\016U\322\275:\365Q\226\364\320\327\047\264\360\206\tb\201<\305\271\217e\212p\313\257\226x\322\332\035\237\177\314\256\237V\021\244\r:Y\225\006>h\356\256q\266\334\240\377Ikw\256\3779\333\200\326\235\317{f3\200\047\255\265W\374gM@[w\220\377\331m?\237\034\305\366\321\201\247\335\207\262\370\243! \360~6Z7\047\246\322\372 \255\326\3222\241\274""\206\224.w\242M<\332\311}\324\322\303Q\264W\364\344h6\354\016:7>\3241\022\032n\251\001\023\257i\253\202F\036Z\374\243=;\367.<\265uGg\245hIv\237wQ>\313\021\223=X\356\341\364s\222\026{\355\307\311\373Q\344\235\361\324\242i\047\210\206,\332\020rw#Z*-^\336\222\243\177\353\026\260\265\264\340gL\270\237\233\364\310\263\047O\223(\301\272\202\264\217%\376\313\267ti\211\233f\212$X\344\255q4\221\226\366q\362\252\325@\211B\206q\264\322M\246\344dXLF\2469tr\346\\\365Ct\036\032S\362!t\206\214a\3614:\323\235s\350\314uf\321\311v.\241\263\324\271\334B\243\343\321\306Y\325\007\307U\223\206\016\250\0251}@^*\252R\213 A-/\366\225f\272\264e@\202\232&\340\362l\311\355\216#jx\207\322@\203\205\346>\306\251\3007B\016l\007[D\247h\314a]\303\243\326)\251l\177\344HX\256V\303\304l\360\251\347\227\232\213\317\275\224\326\275.l\227\206%\244\377\323 E\252\027\231\212\313\343d\264\231K\333V\177\265\360|\323Q\263\3750\303V\300e\047\324\316\367:;\266\327\375\335\3226\237\256>!\206\323 F\326$\264AH7\371\221r@\247\371~\014\265pd;j\306\177\357{\372p\357\025M-_\232X\326\3575\271\330\3531.\332\047w\357\232QR\226\030N\047$\310|\207t\263@s\373p\250u\017\010\036=\343\325\252\351\213e7E\223dy&E\236<#u\201Z:\031x\017\035\215\301\324\0211\376G\237\301\332\336k\270z=\342\241\363P\217\250r3r\257\263$4\363\243\241\224\232:\215\250\264\264C\034\247\263\355\322n\215\3644\2224\322b\212\314u\206C\255[,>z\306\037x\241U\037\014\376\335\371]\357\023\310\375\321\300\335\356}\274UA\366\322\304rZ\317pU9u\330R\336\253L\2521\265u2\315\031\t\265nE\367\3509\257^f\023\234\277T\327+ \352\221\327\355.|\255I\037\331\003\342\335\233\261\0369\217\364\032\234\334\262\r\334\200\337\307CU\264\311\047\2179\022\313i%\211\324\031\322\"\245m\032Y\341D|\234\377q\373%\223\330\247\274\254\252\325\032\335\340I\215\227\333\331\201\246\n\373x\236\202fOr\332$\255cI\255\241\307\206\244\331\031\331(_\013\265\356\315\326\243""\347\276zA\343\0054\205\245\305Uw\305Z\255\210\220nC\013~\244\333P\243\047[\375\261\243\261\201}rd\006\260/\254\371\353^gTh\032\273\3173*\255\261{}rdF\257/\254\311+\255$HCdy7}\340\321\315\237\216\316\326\365H\352`\314gv\374\224\227\245Q\347QJ>\265\177\322\365\245\331\006\351=\324\376\345\025\241\244q\222\336C\355\237t}yL\210V\025\244\365\261\\=#\275\207\332?\035\222\270\036j\345\273\325\301up\270\373\216\017\261X\031|\361\0475y\032nI\356\357C\313\371\253\275u\313\214\352\232\343\047\317z\211\357\276X\"\357\356|QYB\327\366>i\301\265\317\255\271\364\271u\217\205=\343m\317OZp\307kknx}\376\357\247\321\325\256\177w\375\353\245n:x\340\034{\277:SS\266\367/W{\253\237\327^C3\3757*\237W_\201~6\370\204\274\323\365^\361\335\361\307\343xd\340X\343\352\026\036U\250\274W\235\252\336\255w;\237\340\002\275\266\277\257\374Y\233\3027\301v\273^q^\371\240*\363%\302\360\340\304)<\363\360\332\343\365\312+\325\224\323\373\2056\030V6\373,=\236\014\300C\004\357\326\303\270\032t\354\361\325\312\033\000?~\262\022\251\276[\013\327n\351\212\365~\366f%\203\0075\256U\0061\2132\2600[\035\334=q\272\372\357j\246\272\256\316>8o}\n\255\243\023F\236\223o+T\251zw\375|#\255\226\334O~X\353\335\355>UIV;\253S\3464\304\231Z\3069\367\325\326\233j\211\222N\"|\017\037\235k\274\211\304?\001\352 \273\267\361\014\007\344\351\274q\206\220\366\342\221\210)\004\226*\275\225\253\325\327\221\224\223\225a`\324\rh\207\033\300\252\223\370\325\311\267*E\210\374L\221x\272\007\017\223@{;\375n\365\212\363\337/\350\005\222\367z\025+nm\265m\275\213\301O\352\275\230\357\347\225\016]\324u\"\314y\367|\375J\335=(\002\314y\371_/\275\366x\241\322W\355\253\235E\263p\376x\370\361\037\325(\264\243,\036\1779Y\031qN\017\250.\353V\374M\325\265\001\361\275J\332y\367r\343#\250\271\253x\372\244\0378\336\007\301\251\335\356""\267*\367\234\367\277h\224\266>\336\3767\250\336\047.\000\347f\033I\254\2527\2347>\252\r\342V\360{\325p\325\034\026\371\373U\333A\200=\033\330\322N8\047zt\227\312BQ\277\200v\321\204u\324\245\"u \342\035\333\245\220\340\367k\031S\375\237W;\260\372\337R\275d\036h=S_l\204\237\340y\227\276z[\375T}U\261\247\037\032\347n\377`\343$\224\343\225\377V\357+Fp\264M\260\365\3721]j\204 \003\350\317 G*\367\252I\250\301S\220\366\255F\033+\360\223\256w\253\227\253?\303Ww\365[\211\300\257\367zj\257\326\263\215o\266\262\270Z\362\021\310\221d\275\263\3763\304\177\250.\024<\323\007\301\351\206\262\267\306\2060\210|{\253\2424\225+\3169\265\272\205M3T\031\251\276\\\353\255]\251\255\343\031\"\0249\035\225/\252\375\212\377\352\030\322C\350]\330(O\236zr\002\372\001\360\333\351\305\375\245\217\241\243\275uz\367\344;\316;\250\270CW\030\254\206wO\277W\215\250\003F\047\337\321H\236Xq\006\375\352\047\350?\033\2658\314\254\216\237\253m\324\047@P)\016f\002#\337\336\356}r\034\217%]\321\322\000{\323g\2173\217\377\004Fu(\n\261\005\364\252\374\216\253#S\310r\240\342\225\023\225\266\312\007\325\262\363\021\212>\325\237\327A\274\314\327N\252\266\t 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35493 bytes) */ -static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notebegi\377dx nbele\337mentc\345\220\003pi\377ckle %s:z\343\211\007h\345\215\003poin\354\233\002Cto\223\233\002\351\212\005\336\000\345\213\002,\324\235\002\367doe\347\223\001t cr\373os\306\227\001proce\357ss b\365\240\001ary\267dis\352\205\001en\360\205\001g\345c\333\235\002 \266\236\003\242\224\001wro_ng di\221\000s\313\240\001\352\024\tl\305\204\002s\343\235\002dif\007fer\337\221\001\351\237\002\367\236\003\310\211\001\274\225\005yd\327B""Y\003must\336\236\001\003a \354\237\002h\004\350\237\002\345\237\003\207\232\002\330\237\002\377 Series,\255 \204\226\001%s\363\236\t \223\234\007m{is\202\242\002requ\374\214\002^\256\241\001 key\304\242\001g\212\217\001\270\243\216\002\245\003\346\205\001, 0\354\232\0011\33700)is\366\003dn\315o\341\226\005: \355\236\006\204$is\277 empty\234\241\002.\377_core.mu\347lti\337\240\004\351\227\003to \363im\305\215\001\033\tumat\367h f\023\014tali\203b.\204\215\004\244\243\001\013\003\374\241\002\026\003o\013rd\316 d\237\242\001\047\003\200\242\003\005\004\334\365\241\002?\003sysH\003thgrea\321\230\001W\003wa\352\233\002\366\027\003/_\324\244\005.pxizy\002/\304\000mmon\006\010@\262\244\001\025\010\310\224\003,\002\202\207\005\225hs\325\227\r\377\047ACACCBA\327NDS\000\005_\354\210\001am\362\000\014.\206\243\001\334\236\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\366\231\001\004\372\231\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\345\230\002S\247\252\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\370\225\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?""\010<\004\017\331nBELT\207\236\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\343\241\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\361\233\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\307\236\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\370\253\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\315\250\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\273\257\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014""\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\216\270\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\362\266\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\313\276\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\345\320\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\346\315\005n\356\315\005.__\376\321\001__\001\r\374\260\325\005\035\theck_o\343pt\366\322\004\356\301\002>\010get`\003\030\215\322\001Z\n\274\323\003\325\277\002_s\330\263\002\322\311\312\002s\220""\010\360\310\001l\240\010re\333pr\236\nst\002\013un\361i\334\313\001\304\010\336\320\006flag\000R\007\250\001\267\324\t\207&\017\007\342\323\002\013\n\332\326\007\370\266&\214\320\001\303&lookb\047ack\324&\301\317\003_m\013\016\004\270Q\013\352\317\004\216Frun\232Fs\000\325 \241\322\n\r\n\261\022/\001\242\325\010>\n\240\330\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\237\313\002\221\325\001IMI\300\000\000\312\266\004\000\007\276\266\013\323\313\t\327\313\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\367\314\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\207\320\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\345\312\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\204\322\001MA_\376\213\322\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007""\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\351\321\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\334\343\001\317\335\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\207\327\001\213\327\002F\000\003*\006O\007CHFJ\024\270\327\003\276\327\005&\t\355U\370\355\327\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\321\350\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\236\330\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\362\352\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323""\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\362\356\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\224\360\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\352\361\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\363\363\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003""\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352""\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245""\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371""\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313""\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331""\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017""\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010""\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004""\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010""\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%""\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\340\237\205\002\233\205\003\302\204\003\000\t\273\204\013_AR\377RAY_TYPE\375S\352\322\002tion__\377call_fun\365c\n\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str_I\304\354\312\002\313\002S\312\004\r\003\333\272\002_S\367ERI\341\000DEFA\377ULTS_PAN\377DAS_DATA\237FRAME\t\005!\004P\217OLAR\022\n\013\003@\004_\367Pyx\001\000Dict\377_NextRef\373__\256\325\001UNCTI\357ON_NP\000S__\363__\306!\003\001nnot\027ate\017\001c\r\004\330+\3064\177_class_\327 \357item:\002opy>V\001deepc\004\005\205\001\016l\000docq\001\267Ay\001\214A\177flags__\207Q\236J\tinit\254\001\214V_\336\226C_mai\237`__\317meta\226\003\344\000mo\367dul\330\002mro_\207ent\331B\375\000\250B\004\001e\375w\212!prepar\312\201\"p\277 v\234\231\002\243!qu""\373al$\005reduc\024\245\"+\000r\301!s\325`B\005\350A\274\326 \220`vers\252\204\002_\357_tes\271\002uni\247cod\342!\207\204\001d\242\245\003s\374\263\212\002\230 s_is_c\377oroutine>\316\000okup_\332`\322\204\003\037succe\351 \353`\274\"\273unR\000id_\001\014s\236\003\013reti\257\000C\001g\000\232\331\003\214\331\001\004\010\316\331\002\030\004\256\330\007)\004\240\331\017\000B\004\220\331\022\024\005\224\331\017x\004\333\000\256\234\010\r\005Mu\203\234\004_p\206\234\002\356\001i\210\321\006Z\374\001r\330\247\003_c\325\332\002_\261$\203_s\332\247\004\237!\377!\030\004\006\016o\350e\014\253Aa\020s\371\234\004a_c\377losea_hiwgha\325`wa_\333\215\001\375a\231\004sa_rea\365l\000\0030\007\0031a_v\277olumea\241@l\307era\245\210\001\000\t\274\204\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016B\003\377ppendarg\376\000\000sarrays\377asciiast\377ypeasync\367io.\331fsatr\356\355#avg\366#bbe\377gidxbitb\377ytes2str\376\357#stickcl\376\224\204\001in_trac\331e\256\335\001\247 ne\252\"co\327lle\214\212\002s\010\000um\237n_sta0\000\222!n>\020\000pydde\371\204\001\266E\374\230\212\002\373\204\005descri\375p\333\212\001displa\271y\367\211\002\221\205\001doc\325 n}t\316\"empty\341\000\374\241\000\347\000swithe\371n\364 \356 efact\367orf\352\000d_ma\260\356\001\006\003\320c\024\001k_\002\007l\217imit)\001!\007\"\004iwrst-\004lag\233\210\002\366\237\210\003lo\214\206\002dictx\275\210\002\342!\306\210\002info\317\210\002<\234!\330\210\002obje \003\255\214\002\020?\003\251\214\005\322\213\001\266\214\005s\220\214\001\250\214\003\253Ch\006\007\370\213\002\257\214\001p\252\340\005sg\346\337\001\366\000\002sh\341\340\002help\366\243\204\001hi\374\255\001ylen\335h\326\264\002iid\304@im\375p\333`_error\177inindex\247\001Pc\t\243\215\003\344\214\001\000\007s\362\214\025i\321\243\003\347is_\203B\356\212\001ske\335y\000\000skw\360ale\277ftbars\205\000g\353th\251\215\002l\325\341\004low\366\000\000er\224Cmaxi\277mummax\356\206\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\273\212\003\377msg""multi?pliern\231\216\001\235\216\001\357dtup\366\000ann\257bdev\000\002d\006\003u\257pno_\361\000s\204\260\001_\010\332)\261`\236\217\003s\006\001\251\217\006\010\003\340\342\002\366\025\001py\302Coffs\277etonre\320\212\001e \350\225\001\354\225\001\342\245\001\226\210\002\360\225\to\272\343\001\372\217\006\372\375\217\014s`\007order\373ed\311aoutou?taroon\374\245\001\004\005\377upoutbea\037rpowe\221\213\001\226\206\003\021\001\367ull\r\005doutofama\002\002st\t\003\377stkoutha\000\304\210\002\005\002\310\210\001\016\002\205@\026\002\300\002\345\213\001\037phase\356\213\002\257\247\002\000\007\375_\325\220\001outjou\036J\002lead\230`(\001\305B\373ba\254\000utmac\360\200\001\003\001\201\204\002\014\003sign\347alo\033\001\227\002max\256\010\002xid\000\006xZ\005m\337iddleH\005in\3063\001in#\004\004\002 \007nu\377svioutnb\277elemen\267!p\365l\016\004p\305\"put_\"\322\217\002o\252\346\002\301\222\002\000\010s\021\003\000\004\365s\242\223\001i\302!quad\237ratur\212!\336\212\001o\205u\343\231\001l\341\t\365\212\001\241\n\206\213\001u\317pper\207$\232$slcow\226A\004\001\207Asm\260\001\374\003\000\217&supert\373re\277\"swing\340\234D\007\002\240C\027\005X\006pan\007das\213\207\002\220\207\002\234\224\002\225\207\007\244\207\002\277spenet\374\213\003p\377ercentil\371e\325\215\003\333\215\003spola\245r\003\000p\350\224\002\355\224\0020\363\224\0021H\362\224\t\371\224\016\312\225\003s\235\225\002\003\000o\275\001?yrange\333\213\001\220\215\001\372\224\215\0010\231\215\0011repl\377aceresul\307tsr\216\000\262\254\001\357\204\001t_\336\377\220\001righ\246\207\002ro\223c1\362\216\003\007\0002\001\006\014\004u\377nsschema\277second\271\004e\003lf\233\226\003\365\221\001\377\226\006\361\214\001\206\222\001\302\211\tp\006\007\306\226\002\245\222\001\304\211\007set\373\221\005\300\245\270\003\242\215\001\263\204\003\272\213\003\277\204\003\256$ki\007p_f\230\213\001\327B\333\213\004\006\003\320$\017lowk\r\010\346\213\005\210a\351\213\002\234\221aR\004low\205D\241\215\001l\377evelstar""\365t\255\230\002s\350\214\001cmet\377hodstdde\255v$\005r2\222\216\002s\372\236\002s\375y\273\256\003talib.\374\244\223\001\005\000thread\377ingtimeS\217tamp\005\001\323\221\003\000\0071\372\013\0072\026\0073to_nOumpy\252\217\001\256\217\001_\334\223\004\277update\000\003_ \351\214\001\355\204\002\331\231\002\253\003\344\224\004v\375\215\003\204\221\003\317warn\000\001\377\272\001wm\375a\326\222\003\200\001\330\004\007\200\377u\210C\210q\330\010\020\377\220\005\220Q\330\014\r\330\377\020\026\320\026+\2501\250\377A\330\014 \240\013\2501\367\330\010\017\035\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\377\021\200\001\340\004\017\320\017\377#\2401\330\004\013\2101\376\013\001\022\220,\230a\330\004\177\025\220Q\220o\240Q\014\003\367.\240\001\r\002\320\026\047\240\375q \002\320\022&\240a\240mq\017\004-\250#\003\320\022\035\000\377\250\r\260[\300\013\3101\356+\004.\250a+\0042\260!\355\260\016\0059\270x\001#$\360\377&\000\005\014\210;\220a\375\220\231\000\r\210T\220\026\220\373q\230\336@\r\210]\230!\377\2308\240:\250T\260\021\377\330\004\r\210U\220\047\230\377\022\2307\240\"\240A\330\377\004\017\210w\220e\230?\373\250\"\354@\004\016\320\016\037_\230q\240\010\250\225`\021=\000\377r\230\024\230Y\240k\260\377\024\260V\2701\270I\300\377]\320RS\320S_\320\377_`\320`o\320oz\177\360\000\000{\001B\002\004\000wB\002H\003\001H\002I\n\001\357I\002J\002\362\003i\230q~\207%#;\2701\360(f;\363M\270\277\000\203\200 [\320[\\\377\320\\h\320hi\320i\335x\243\000y\001D\242\001D\002\335K\251\001K\002Q\260\001Q\002\235R\267\001R\002S/{\247\000]{\320]\247\000j\320jy\320 wz\001E\317!E\002L\326!\271L\234\007\354 S\002T\310/$\375%\301\2028\320\033+\2502\250\373Q\330\356L\027\230\002\230$\377\230i\240{\260$\260f\377\270A\270Y\300m\320S\367T\320T\367@a\320apw\320p{\372@|\001C\371AIC\354G\217`J\342 ""\357\204\003j\350\204\001\236\206\205\003$<\270A\302\2028\237\003]\343\270!\202\200\"\310\20236ub\320b\277c\320co\320o\322 \177O\360\000\000@\235\204\005\227\204\004X\334\205\001\367X\002Y\343\205\001Y\002Z\002v\3110\320<\227@U\360*\310\2066\356\330%-\300q\344\202\"`\320`\376\252\204\003v\320vw\360\000\000\227x\001G\202\207\001G\312\205\005\246\004_\356\227\207\001_\002`\236\207\001`\002a\356\250\020=\270Q\326\202>^\2701\356\234\204\037n\320T\343 d\320d\377p\320pq\360\000\000r\253\001A\264\210\001A\335\205\005S\302\210\001S~\334\047\360\000\000Z\002[\333/\373%&\257\205:,\250B\250a\376\334\205\r\030\230\022\2304\230y\377\250\013\2604\260v\270Q\377\270i\300}\320TU\320\357Ua\320a\232`q\320q\337|\360\000\000}\273\210\005J\002~\336\205\004\360\000\000K\002L\342\211\004\367k\240\021\360\213\005%=\320=\316;\000V\3602\325\2028\245\001m\270\367=\310\001\213\207\013\024\320\024%\357\240Q\240h\301\001\022\320\022\337#\2401\240H\266\213\001\021\220\370\260\022\245\207\003\277\000}\320}~\360_\000\000\177\001N\252\213\001N\306\204\005\272\223df\277\213\001f\002g\306\213\001g\273\002r\315\213\001r\002}\324\213\001}\267\002J\003\320\207\001\003P\003\001P\273\003Q\n\001Q\003\\\021\001\\\273\003g\030\001g\003r\037\001r\273\003x&\001x\003y-\001y\347\003z\003\364\215\003\222$:\320\025\375%\377\215\002%>\270a\360,\242\333\200\353\320>;\000W\254\210\001\016\210[\367\230\001\230\222\220\002V\2206\230\047\021\230!\236\220\001\251\220\005V\341\220\001\235\220\021\372\213\210\"&\243\007b\320bk\320\235k\371 x""\320x\335\215\003\241\220\004T\256\271\220\001T\002[\300\220\001[\355%bn\316\220\001b\002c\331\211\017\047(\255\215:\357.\250b\260\302\205\014\021\220\032\377\2302\230T\240\031\250+\377\260T\270\026\270q\300\t\177\310\035\320VW\320W\251\210\003Ws\320s\263\205\003F\343\221\001F\214\217\005]M\361\221\001M\002N\340\221\004m\354\223\007\010\235\003\237\2016\202\210\0346j6\226\210\010\303 \357\2139\376\277$\r\320\r\036\230a\230Ax\267\225\001\000\t\251\201&\337\221\004\242\204\013W\312\224\001\353W\002\374Dh\330\224\001h\002n\356\337\224\001n\002o\346\224\001o\002p\376\347+9\220A\200\001\340\047g?\270q\244\220:\230a\r\270\367\221\016~\211r^\320^_\320_\314\204\003\200\202\222\003\370\215\004\327\211\004\317\204\004\311\207\006\376\227\003\231i?\377\320?V\320Vm\320m\347n\3604\373\2168\257\003Z\300z\377\320QR\330\004\027\320\027\337(\250\001\250\030\343\227\001\030\320\377\030)\250\021\250(\260!\374\n\013\331\204\024`\320`j\320j\377s\320st\360\000\000u(\224\216\005\324\227\004\247\226\004\\\345\227\001\\\213\211\005\237\213\004\272\223\211\004~\201\230\001~\002I\251\213\001I\273\003Z\260\213\001Z\003`\267\213\001`\273\003a\276\213\001a\003l\305\213\001l\373\003w\314\213\001w\003G\004\360\337\000\000G\004M\003\001M\004\275N\n\001N\004O\004\236)\320\377\013\036\320\0362\260!\200\357\001\340()\245\225:/\250r\375\260\250\230\016\033\230B\230d\240\377)\250;\260d\270&\300\377\001\300\031\310-\320WX\377\320Xd\320de\320e\307t\320t\207\223\003\322\221\004\350\206\006\360\000/\000N\002O\330\231\004n\277\232\001\350\233\003\302\240\000.\305\2228\220\020\322\216\027\251\017/\320\377YZ\320Zf\320fg\177\320gv\360\000\000w\217\233\005\024\211\233\004\335\214\004P\250\233\001P\347\211\005\360\216\004\310\214\022UE\363\216\001E\357\216\005[\201\217\001[\302E\035b\217\217\001b\003c\333\216\004\376\004\331\216\006\037(?\320?W\310 \323\224:\257A\317\034\270]\310\341\227\016\245O,\320oVc\320c\324\223\001\320q\274\220)\375h\262P@\320@S\320Sgk\320k\250\221\003\354\226\006\3608\235\202<\177\035\270m""\310=\320X\324c\371u\255\222%\217\204\022d\320dq\320uq\302\222\n]\200\237\001]\002^\207\237\001w^\002j\216\237\001j\002k\225\237\001\351k\246\220\005\312DL\313\222\001L\003R\356\322\222\001R\003S\331\222\001S\003^\356\340\222\001^\003i\347\222\001i\003v\356\356\222\001v\003|\365\222\001|\003}\356\374\222\001}\003H\254\206\001H\004S\356\263\206\001S\004^\272\206\001^\004d\356\301\206\001d\004e\310\206\001e\004f\354\267\206\004\200m)*\342\234:0\260\002\375\260\347\233\016\034\230R\230t\240\3779\250K\260t\2706\300\367\021\300)\331!Y\320Ye\377\320ef\320fu\360\000\003\000v\331\227\005\222\241\004\362\224\004\200\205\006\217\243\006\247\243\005\316aC\021\220\036\270\242\007\207\034\320u\374\263\222\003\200\037\026\220f\230J\240\377a\330\004\010\210\007\320\017w\037\230q\361\244\001q\230\006\333\244\001\376\347\244\003)A\320A[\320[?u\320uv\3600\315\2338\352!\377-\270\177\310o\320]^\375\330\315\245\001 \240\001\240\030\250=\021\000\t\330\004\021\220\3542\364\207\006P\246\221\004\216\234\004\325\232\004\345\222\004c\254\244\001c\314\216\005]v\272\244\001v\002|\301\244\001|\354\227\005\345H\360\227\001H\226\204\005\340\207\032o\240Q\266\354\246\001;\220\227\246\001*+\314\241:1\367\260\022\260\272\234\016\035\230b\240\377\004\240I\250[\270\004\270\177F\300!\3009\310M\277\211*\235Q\204\246\003\320\026&\274A\224\250\003+\373C\300\317\2459\320\0332\260\"\367\260M\300\373\245\016\036\230r\240\377\024\240Y\250k\270\024\270\377V\3001\300I\310]\320\377Zg\320gh\320ht\203\320t\220\205\003\325\244\004\203\213\004\350\221\004\262\207\013_\331\002\231\251\007\305\251\005,-\247\244:3\260\3732\260\323\244\016\037\240\002\240$\377\240i\250{\270$\270f\277\300A\300Y\310m\204\2471\320\203\026(\255\251\001\357\252\003\245\000\313\2419\241\004\0203\220\016\323\224\005\000\010\021\220\216\200!\321\240\004\350\240\237\004\353\215\004\265\221\013d\257\252\001d\002m\352\266\252\001m\325\233\005t\304\252\001t\002u|\250e\320\002\025\220V\2309\244\253\001\376\357\206\007\026\220a\220v\230Q\274\324\254""\001\002\027\013\210<\220\333\254\0010\3351\336\247:7\260r\341\252\016\320\021\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\247\031\320R\216\254\003\265\235%W\214\205\005,\354\362\254\001\250\256\00345\210\251:;\2702\376\254\226\016\320\021(\250\002\250$\377\250i\260{\300$\300f\317\310A\310Y\246\217\002\320\2433\320\026\3410\271\233\001\326\257\003\333\242\003\302\255\t\n\210+/\220Q\220a\267\235\0056\214\243\001\357\256\t\177\030\270\032\3003\300a\346\256\030\376\270\255\"[\320PS\320SY\200\352\222\002\360\220\003\322\242\006\353\236\013\314\235\004\324\242\004\317y\220`\232\257\010\265\244\001\221\230\002\300\250\t\227\200A\035\300\346\245\016\303\026\220\320\260\r\312\020\325\240\002\357\225\013Z\002^\226\247\004\360\000\000[\345\220\005u\202\261\001uu\300\213\005B\261\244\001B\003C\270\244\001oC\003D\003\374\260\016>?\242\262\n\374\200\202:\231\256&k\320QT\320T\277Z\320Z[\320[\277\222\003r\037\320r~\320~\360\253\003\200\244\004\327\004\010\371\243\004\214\246\004\201\235\004i\353\253\017\304\242\003\300\203F\276\256(\250\274\017\310\203?\247\260\010>\340\204\001\360\212\200L_s\270A\307\261\037\230Ls\320s\214\200J;@A\235\267\n\014\210K\234\267\t\243\207\022\3515\203\253\001\356\245\027Q\257\200\"V\320VN\344\264\003f\320f\304\236\"\242\222\004i\334\267\001ai\313\227\007\313\263\016\316\000\345\206F\320\033\373\250\004\377\023\320\023$\240A\240X\376\226\265\001\021\320\021\"\240!\240\3478\2501\366\223\001\374\250\017\013\320S\320\254\200.\305\243\022\322\252\004\365\234\004O\366\254\001O\003\335U\375\254\001U\003V\204\255\001V\003\331W\320\254\004\311\251\004?\230\233\240\001@X\047\320XY\340\203I\203\253\001}\232\204\017\331\037\017\360\000\000t\257\242\014\353\230\013\234\233\004\316D\255p\270\273\001p\002\376\225\004w\306\273\001wC\002x\241\253\017\327\227\001\350\273\003\314\263\004\177\361\273\001\323\177\002\203\237\004\306\242\004h\320\242\001h\004\343i\004\307\244\n\235\211<\223\246\002\320=O\037\320Of\320f\231\272\003\277\240\004\226\247\004\370\262""\227\006\263\271\r\307\252\017\033\320TW\320\377W]\320]^\320^g\243\320g\346\244\003\263\265\004\265\235\004q\312\275\001q\273\002G\362\260\001G\003_\371\260\001_\273\003s\200\261\001s\003J\260\244\001J\273\004K\267\244\001K\004W\276\244\001W\273\004X\305\244\001X\004g\314\244\001g\273\004r\323\244\001r\004y\332\244\001y{\004\177\341\244\001\177\004@\005\323\267\0017\005A\005\367\246\016BC\273\213I\300\244$\277+\320UX\320X\276\250\003h\003\320h\256\233\002\256\243\001\305\273\004\243\276\004\212\266\004\314\237\004%e\341\277\001e\313\237\005\217\261\004m\364\244\017\313\003\261\r\312\210\007\326\257\006\201\301\0017\240\322\257\nU?\260(\270*\300F\340\242\001\250\2102\035%\247\266\004{\320R\203\200K\256\275\010\237@\330\246\301\013\304\n\321\222\0226\310\320\302\024\320\033\200\330\267$\200\200N\223\270\010\313\003\231F\360\213\014\215RE:\230\20065\251\264\004\013\320S\245\203K\305\t\320\370\211\002\306\267\t\217\222<\252\253\001\033\245\217\001\023\220\377>\240\021\240(\250!\330o\004\022\220.\200\241\005\021\220\250\253\017\016\304\205\014s\320s\304\277\003\335\274\004\257\253\013\246\246\004P\314\205\004\352\207\004\363\211\006\312\276\001\002\262\224\004K\370\271\001\351K\363\213\005\356\271\004]\215\272\001]\003^\314\360\251\013\203\214\003CD\213\224I\323\245$;\320\357VY\320Y\220\310\003i\320i\200\212\300\006\354\306\004\306\305\004\343\266\004\214\300\004\353\273\004\300\207\006\360?\000\000m\002n\002\204\246\016\302\014\034\356\220<\331\266$\033\320T\203\200K\224\267\010\237@\000\233\257\t\272\227<\225\251\004\323\262#\242\251\017\206\2021\376\265\004\351\231\004\232\270\246\004A\241\277\001A\003\326\253\004\233\204\004c\356\266\277\001c\003d\275\277\001d\003o\256\304\277\001o\003z\313\277\001z\303\215\005P\356\202\263\001P\004Q\211\263\001Q\004R\371\004\211\252\t\364\262\010CZ\320Zqw\320qr\253\277\n\016\210k\244\274\t\362\334\235\0227\302\213\027\206\303\001l\270,\300\016\353\302 {\320R\325\204\t\330\253\003\360\315\004\340\275\013\320\236\307\013\267\270\004""\266\277\004\257\277\004@\314\301\001@\0032\253$B\230\301\013\263\320\001DE\242\316\001\331\211E\372\324\274\034U\364\264\004+\320UZ\320\375Z\327\313\003j\320jw\320w\000\261\316\003\203\315\004\366\274\004\234\301\004\311\307\004\250\303\004\277\244\004\233\272\006\346\334\270\016YZ\326\235\023\351\230\016\025\240a\366\362\277\tT\260\256\241\003h\310j\320\361X\261\222\001\377\320;\253\241\014n\320ns\037\320sy\320y\300\321\003\231\320\004\213\320\013\240\311\261\004\300\311\004\377\273\004\376\302\004\301DF\233\305\001F\025\003\251\223\004H\330\237\017Y\350\310\003\217\322\006\211\307\n|\254\243\006\300\200IM\270\034\300Q\346\272%@\344\241\036\213:\275\214\013\300\307\004\214\273\013\204\242\004M\303\307\001\343M\003\370\206 \330\225\004\213\207\006\360\000\000\267R\004]\253\273\001]\004\333\227\004x.\271\273\001x\004~\300\273\001~\334\225\007\347\324\t\346\262\273\010Z[\243\203Z\307\2425o\320o?t\320tz\320z\304\322\003\355\323\004\200\212\325\006\350\323\002\263\316\013\371\300\004\370\307\004\355\211\004\361f\360?\000\000H\003I\003\352\322\016\374\000 \270\246\022\270\205D\267\324\006\246\236\t\261\236\n\220\272\324\017\373\244\014\320\313\200=\376\205\004\325\270\004\344dX\265\314\001X\003T\377\213\004\370\213\004u\312\314\001u\333\270\005w\240+\376\307\236\003Zr\360\000\000s\001\014\243\330\004\247\264\004d\002\311\265\n\350\205M\366\322\007\366\317\001C\330\004\320\305\t\200\201I\212\323\004\317\314\004{\266\333\001\201{\364\265\005\356\265\004\274\302\004\260+\223\273\004\275\216\004p\356\217\317\001p\003{\226\317\001{\003F\256\306\302\001F\004R\315\302\001R\207\235\005Y\236\333\302\001Y\004Z\004\375\327\n\245\306\003Z\360\336\303\003\360\315\004\323\233\004\312\237\004@\003\3606\374\274\335\010\222\201S_\270O\310?\320\025Z\356\332\001\330\317\341\005X\303\267\002\335\341\003\000\t\002\023\002\021\213\2045\345\270\013\322\321\004\246\221\004\304\321\013\315\226\006\277\360\000\000^\003m\361\321\001mt\312\321\005\203\276\004B\257\305\001B\004C\266\305\001QC\253""\305\005\342$\231\211\004c\322\305\001c\220\276\005]o\340\305\001o\004z\347\305\001z\246\211\005\335D\211\240\001D\005E\220\240\001E\005{F\005\236\333\n7\220\047\230\306\341\001s[\\\324\210\\\337\234\047U\320U\310\337\003\377e\320ep\320pu\320\017u{\320{\213\326\003\214\316\004\321\273\013\344\330\006\037\360\000\000a\002\332\244\004\343\204\004\220\257\004\032\334\204\013J\361\221\017\\]\323\212\\\300\322$\312\250\014\377q\320qv\320v|\320\001|\352\322\003\354\332\004\337\313\013\261\324\004\274\321\004\307\244\004\327\275\004H\210\261\004\236\312\004\322\326\004K\303\250\013\265\345\001\\\274\307\003\310\236\342\004\226\327\004\256\224\0072\304\205Z\376\324\001\177\270\037o\310_\320\\\257\323\001\350\277\031\351\252\036\000\2333\333\326\004\314\244\004\360\271\004\244\263\004\212\305\013\370\246\004\301\314\004\350\264\230\013\207\206\004\221\305\004I\313\314\001I\004T\256\322\314\001T\004_\331\314\001_\214\247\005m\356\347\314\001m\004n\356\314\001n\004o8\335\314\004\212\326\004\263\300\003]^\360\306\215[\363\324\004\217\020\320\020!\313\240\005\310\255\013\214\251\036r\037\320rw\320w\277\333\006\350\347\004\247\331\013\036\260\326\006\360\000\000c\271\333\014\201\216 \357\210\004z\347\251\004t\365\333\001t\003u\003\261\321\n\342\321\274\003]\336\314\003\323\275\007\334\200_\016\270n\003\310A\262\253.\2403\335\333\004\200\277\004\274\321\013\377\214\007\017\000\000@\003\375\257\004\312\321\004\303\321\004\360\335\004\275h\226\336\001h\003i\003\316\323\016]\344\216\343\003\302\223\007.\367\214Z\323\331\001\017\270\177\003\310a\225\307\031\252\2034\211\327\004\233\340\004\350\237\013\330\272\013t\314\314\004\230\245\004e\263\340\001e\003k\272\340\001\201k\355\323\014\302\215\004\310\256\004\356\237\023\313\332\004\322\307\003^\371_\343\226\\\204\2563s\320sx\320\301x\270\273\006\364\356\004\272\340\004\302\331\004\266\224\007\000\000\003d\002\240\326\013\335\322\004\337\247\004\265\225\006\254\361\003\320\324\010\363_`\342\230\\\263\2473t\320ty\003\320y\334\251\n\225""\346\004\276\333\004\263\352\004\347\305\004\342\212\013\014\272\264\004\245\227\022N\003\214\317\016\200 \346\204[\374\245K\240\327\200A\352\270\022\276\332\013\225\323\004\213\224\004D\317\332\001D\273\004O\326\332\001O\004Z\335\332\001Z\273\004j\344\332\001j\004p\353\332\001p\273\004q\362\332\001q\004r\321\246\025a\342\213\242\002,\245\226Z\263\315\006\300\351\t\017\210~\217\230Q\230h\337\321\001\276\322\001\267\315\r[\337\320X[\320[\212\353\003k\320\017kv\320v\371\361\003\365\365\004\377\361\004\251\363\004\320\243\357\004\307\351\013\273\347\004\340\217\013N\330\351\001N\003\260\311\331\022\374\226\004\252\234\004\3252E\004\233\316\n\3207\013\033\230\364\370\001wx\317\245\036\266\264\014\307\025\240g\376\363\001\235\310\017\363\245\005e\320\017eo\320o\331\323\001\253\370\023\266\240K\237\334\004\000\203\352\004\360\337\004\334\330\004\246\334\013\255\315\004\306\251\013\244\354\004\255\334\004\374\246\334\004\244\215\006\360\000\000i\003j\226\225\241\017|}\264\372\n\013\302\372\005\211\246\027\026\363\240u\261\372\001\325\312\r4\300x\310\377z\320Y\\\320\\d\320%d\340\247\003t\2365\304\322\001A\313\325\001\252\327\010\334\263\322\017\373`\\\320\\\242\364\003l\320\017lw\320w\364\372\003\273\361\004\374\253\013\271\354\004\200\275\351\022\213\333\004\271\354\013\264\250\013\340\300\004\213\333\004\334\217\004n\332\200\357\001n\273\256\005p\003\216\323\016\360\004\337\000A\002B\002\317\200p6\260\367b\270\001\264+\320\021#\240\3772\240T\250\031\260+\270\377T\300\026\300q\310\t\320\177Q\\\320\\`\320`\233\341\003\006\272\371\001\320{\212\361\003\323\254\013\366\311\013\270\365\004\365\274\004\000\236\361\004\376\347\004\227\361\004\361\344\004\303\231\006\220\363\001\367\344\005\240\341\004\020\361\344\004\236\361\004\324\224\006\377\377\004+\321\304\001\237\372\002\301 wC\002D\320\200q8\270\002\326\372\001\376\257\334\t\320\021%\240R\240t\377\2509\260K\270t\3006\377\310\021\310)\320S^\320\017^b\320b\320\376\003\355\357\006\300\366\004\371\367\004\000\377\377\004\244""\347\013\267\314\022\342\301\004\341\224\013\264\246\013\337\363\004\272\263\004X\376d\216\227\006\245\350\001\003v\204\204\005-\277\375\001\356\300%D\002E\230\203q9\270\022\374\207\371\001\272+&\240b\250\004\250\337I\260[\300\004\347\300\001\3109\377\320T_\320_c\320c\000\353\377\003\327\357\006\345\351\004\215\364\004\230\361\004\374\373\004\330\342\004\207\355\013\200\221\312\004\247\366\004\311\263\013\347\255\004\331\213\004\205\225\013\356\250\031\320s\026.\233\371\001\210\204\005E\002F\340\205q\357:\270\"\270\207\211\014\320\021\047\377\240r\250\024\250Y\260k\377\300\024\300V\3101\310I\377\320U`\320`d\320d?j\320jk\320k\247\352\006\277\304\004\036\346\261\007\000\000J\002\277\304\013\304\314\022\334\366\004>\217\266\006\360\000\000B\003\232\216\004\203\313\004\032\240\345\004f\216\371\001f\003\377\250\004\247\345\004\320\354\004ex\224\211\005/\303\366\001\320\206\005z\001\315\256\007\001(\300\250\034\311\215O\225\3135\331\243\023\232\260\004\343\270\004\224\265\013@\250\362\004\205\326\004\367\325\013\307\315\004\301\373\004\322\311\004j\331\373\001\027j\003q\340\373\001q\223\357\005\277\373\006\273\373\003\376\260\370\007\360\006\000\005\017\320\016\376\362\363\001q\330\004\007\200x\210\377s\220!\330\010\t\330\004\377\t\210\021\330\004\022\320\022\337\047\240q\250\004\214\375\001\025\220\355Q\307\204\002\200\001\036\024\017\210q\2560\004\020\320\020\317\375\001a\270\376\004\360\357\n\000\005\0269\002\320.@\277\300\001\300\027\310\001\314\306\001\020\373\220\001\372\345\001\005\210V\2201\277\220E\230\021\330\010\221\253\001\001\377\230\026\230q\240\005\240W\363\250A\245\320\001q\002-\320->\357\270a\270q@\r/\320/\177B\300!\3001\300A\337\371\001\375Q?\014\016\210g\220Q\220\377f\230A\230U\240\047\250\345\021\360\303\001\025{\010\325\377\005\360\014\000\363\005\020\267\001\215\000\220\031\230!\360\227\337\003\t\001\371\377\003\235\347\002\210q\320\020\376\307\344\002\340\004\022\220)\2301\363\230A\020\004\276\003\016\220a\330\357\010\020\220\013\024\002\010\013""\210\3774\210z\230\021\230\047\240\377\021\330\014\024\220A\330\010\377\014\210G\2201\320\024$\377\240L\260\001\340\004\r\210\257Y\220a\220\353\"q\025\004\220\356K\002\t\220\021!\010G\2506\357\260\021\260!\217%\035\240g\237\250V\2601\260L\000\244\003&\367\240\001\240\262 \013\2105\220\375\t\342\373\002\014\020\220\002\220%\377\220s\230%\230q\240\001\373\240\024\352\213\0027\260\"\260G\373\2701\344\345\0021\340\004\016\210\371i\226\325\003\330@,\250D\260\t\377\270\021\320:L\310C\310\365q\304\n\n\202a\013\2107\220\377#\220Z\230t\2401\330\371\014\374@\244\005I\230R\230q\376\303\001W\220A\220T\230\025O\230a\230q\340\374\001\013\001Q\220%\337\003\2202\220U\313 1\330\377\004\024\220D\230\005\230Q\370\324\351\003\317\376\002\360!\022\220\037\240\001\377\320!3\2601\3204D\263\300A\334\271\001\336b(\250\240 \005\254\313!\322\001$\230\327 \021\223B4\376\240\352\001\030\230\t\240\021\240$\375\240\355 \032\230+\240Q\240\375d\214\366\002\010\026\220c\230\021\375\230)\002\032\230#\230Q\230\227d\240!\316\352\001s\316@6\000\200\375\001n\002\320\021*\250!\320\377+=\270Q\320>N\310\177e\320ST\320TU\223\346\004\3772\260!\340\004\013\2109\374\317\002\230b4\210q\220\003\220\3571\220G\230\366\337\002\007\200w\373\210c\236A\017\210t\2208\376\201`H\240A\330\t\021\220\315\023\336A\017\210\217 \261\002\001\330\377\010\030\230\013\2401\240D\357\250\010\260\001p\006+\2501\377\320,>\270a\320?O;\310us\000\320UV\214\347\004\377\000\236b\024H\230F\240\222\000s\003\025\373\220d\326@x\240x\250y\271\270a\000\201\0011\220C\345\330\001\3409\004q\005\305\311\001A\230T\332\353\001\351\006\367-\250Q\362\205\002\320AQ\320\353QV\203\376\002X\206\350\0045\260Q\256\334\024J\230f\204\366\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007n\203H\020\220\004\346\204\001\020\220\255F\375\031\315\206\003\021\200\001\360\020\000\377\005\010\200u\210B\210a\373\330\010\242\207\002\013\2101\210A\377\330\014\020\220\005\220_\240\265F\220A<\207\353\001\330\014\330!2\357\220Q\200\001\200\231n""\230?\250\000\211\365\016\224\2764\224\367\004\246\374\004\260\343\004\345\372\004\355\224\013\275\276\031%T\366\372\001T\362\372\005\251\367\004\\\350\341\016\247\233p\336\337\347\002\016\320\016\037\216\362\007\030\230\377\022\2304\230y\250\013\260\0014\271\323\007\307\263\037\201\375\004\237\355\022\233\342\013\303\352\006\312\375\001\013\002D\222\375\001D\304\252\005\302\333\004\270\316\023\237\322\007\002\323\277^1\331\340.\234\300\023\345\362\004\253\300\013\371\263\004\333\354\004\000\324\354\004\330\335\004\356\273\006\272\337\r\310\301\\\326\224\002\373K\277\2604\300\316\375\004\357\260\013\234\331\004\314\335\004\305\335\004\231\233\013\177\002\004\362\332\r\370\250^\001\340\344\r\345\316\036\275\251\027\332\353\004\320\251\013\020\233\350\004\356\306\004\226\311\004\267\260\013A\277\251\016\345\351\025\207\244\016\000\367\312\027\274\334\001\365\243\025\244\356\002\345\206\013\323\200!\273\241\030\324\246\004\304\247\3166\240\370\0041\223\213\025\244\357\003\207\357+\320\033\016\264\2001j\320j\231\326\006\231\372\004\355\307\004\261\250\004\002\346\307\013a\203\326\016\264\244p\240\241\002\265\212\013\277\307\022\235\277\014\000\315\316\020\370\376\004\204\374\004\274\357\013\232\257\013\202\343\004\246\302\013\332\324\004]S\234\374\001S\003Y\243\374\001Y\352\214\007\300\263\210\032\353\246c\362\233\002\367\377\n\230\334\022\244\332\tt\320\001t\306\272\020\255\376\004\313\232\031\222\353\004\374\326\013\265\351\004\350\316\004mW\305\376\001W\003\317\304\013_\003\322\263\r8\207\251p\373\206%\212\325\tu\320u\335\265\020\322\334\004\320\251\205\022\256\355\013\331\351\013\263\323\004Q\247\364\001Q\003\340\247\314\004\361\251\004\360\277\006\201\335\r\261\253p1\260\021\376\223\254\014\035\230b\240\004\240I\357\250[\270\004\245\232\0029\310K\203\320W\221\261\014\203\266\024\273\327\004\274\366\004\236\306\013j\002\222\375\001j\334\347\005\203\341\013\211\352\004\214\356\004\362\205\004\221\302\013-a\217\254\005&\240\303\236\006&\301\313\010\352\255ei!\337\255n""\210\352\004x\322\377\001x\002\231\330\004 \310\316\004\337\313\004\272\277\004\303\304\004\301\277\004b\266\256\020\300\200o\3673\2601\363\260\014\037\240\002\240\377$\240i\250{\270$\270\377f\300A\300Y\310k\320\377Y]\320]c\320cd\377\320dm\320mx\320x\000\345\265\030\254\277\004\261\263\004\206\304\013\343\343\013\373\260\013\363\320\004\212\206\004:\200\266\022c\363\260\005(\250\001\250\243\005\362\202o\3734\260\215\251\016!\240\022\2404\377\240y\260\013\2704\270v\377\300Q\300i\310{\320Z\377^\320^d\320de\320\177en\320ny\320y\257\315\003\000\330\356\013\323\375\004\261\340\004\223\350\004\246\277\013\322\336\013\266\226\013\275\313\004\340\257\311\004\232\350\004\216\363\004\366\342\006\236\270\004)\250\021\356\271\200w5\260Q\225\263\r\"\240\"\377\240D\250\t\260\033\270D\377\300\006\300a\300y\320P\377[\320[_\320_e\320\377ef\320fo\320oz\003\320z\344\315\003\274\350\013\312\365\004\340\272\004\312\365\004\327\277\013>\204\341\006\360\000\000o\002\332\325\013\316\352\004\024\275\217\004\227\345\022e\332\265\005*\370\353\001\230\263\003\331\207o\3076\260a\346\264p\214\370\004\315\366\006\360\000\007\000}\002\322\347\004\336\237\004\226\270\004\322\347\004\343\306\004sf\003\300\265\017\215\212o7\260q\375\267\r\377$\240B\240d\250)\260\377;\270d\300&\310\001\310\377\031\320R]\320]a\320\377ag\320gh\320hq\037\320q|\320|\251\357\003\340\345\004\213\370\004\000\340\370\004\303\272\004\356\345\004\310\277\013\271\372\004\256\370\004\206\270\013\353\341\004\370\270\374\004\303\370\004\244&\360\000\000f\003\021g\302\272\005\237\241\002\360\202u8\257\272\017\226\267d\243\344\004\000\276\272\004\315\374\004\216\302\004\351\376\004\365\322\004\355\262\004\361\315\006\362\301\004l\353\267\010\371\216o9\270\212\222\014\320\021\206\267d@\313\354\004\226\320\022\354\226\004\217\320\031\331\267\n\261\221o:\333\274\0170\366\266d\223\304\031\250\344\004\223\304\031\320\026\313\267\010\351\223o\375;\313\274\017(\250\002\250$\250\377i\260{\300$\300f\310\377A\310Y\320Va\320a7e\320e\267\332""\001\320l\244\361\003\376\370\004\000\321\377\004\234\316\004\261\361\004\210\367\013\212\325\004\373\226\013\276\251\013\222\272\013 \266\231\004\202\236\004\352\363\004\246\344\004\325\267\004k\246\304\005\220\243\002>\272\215\017\r\210T\220\026\340\263\003\364\310\t\371\021\324\357\026\325\255 Q\300l\320R\377S\320Sb\320bm\320]m\337\352\004\320{|\225\354\t\210\374\242\r\270[+\362\353\001\237\252 a\300|\263\263\002c\337\320cn\320n\266\341\004\320|q}\336\251\032Z-\275\255\"q\310\014\304\263\002\277d\320do\320o\301\340\004\320\003}~\355\372\003\341\254\024\344\200-\201\303\002\336\256\013\223\337\017\377\001\310\034\320UV\320V\034\313\343\003\316\334\004\320~\177\336\273\016\262\233\t\356\201-\356\310\253\"\021\310,\336\264\002f\320f\227q\320q\300\326\tA\214\253\033\374\202-2\371\260\235\263\016\325\313\017Q\310l\320Z\377[\320[j\320ju\320\ru\232\227\021E\002\350\312\017\351\2009\366\232\002\215\262\013~\352\232\017a\310|\320[\\\211\343\002\027v\320v\375\225\021F\217\005\377\231\024\252\205-\354\333\231\002\245\263\n\320\021\317\231\017q\320P?\\\320\\]\320]\215\316\003\273\313\021\303G\002\336\230\033d2\231\312\013z\033t\320\331tm(\353\373\006\r\210\224\323\n7\240}!\214\372\tU\260(\270*\310\310\001t\362\322\027\301\263\030%\350\265\007X\320X\302\256\001\363\320_\315\313\003\333\323\001\360\000\000w1\001\347\373\004\205\372\004\325\303\022`\002\254\263\016\315\305\t\334\262\014\207\377\0226\310\021\214\2002$\260\377f\270A\270Y\300k\320oQW\320W\224\374\001\320^\305\226\003\207t\320t\226\377\003\257\375\004\230\344\004\233\267\022_\300\254\022\256\376E\224\255\032\367((\226\230\272\0325\270\377\006\270a\270y\310\013\320\201S\200\203@\350\271\010\234\371\t\337\215-\354\312\002\333\273\t\022\177\320\022#\2401\240H\240\327\001\376\347\300\001B\230d\240)\250;\377\260d\270&\300\001\300\031\377\310!\310<\320WX\320\177Xg\320gr\320r\272\340\r\030\305\333\004\370\344\004\345\316\022j\002\235\342\n\246\304\003\207\2009\376\344\252\003\320\021\"\240!\2408\354\224\324\001\226\335""\t\021\220\345\252\017A\310\\\007\320YZ\305\365\002\323\207\024\373\322\013\254\320\004\301\374\004X\264\234\006\277\334\004\261\252\004=\230\204\304\0012\313\251l\370\313\301\003\224\355\t\240\355\t\017\320\017 \240\315\001\246\304\001\330\004\252\355\013\340\301\022T\320\363TZ\306\215\002\347\220\003r\320rx\377\320xy\360\000\000z\001\000\244\337\004\275\243\004\264\364\004\253\337\004\210\264\004\245\346\013\325\236\013\377\361\004\320\254\346\004\340\301\022\230\320\004\315\315\004z\202\375\001z\003\335@\241\372\001@\004A\250\372\001A\004]L\257\372\001L\004W\266\372\001W\246\360\005]e\304\372\001e\004f\313\372\001f\242\342\005\335|\331\372\001|\004F\261\367\001F\005\335L\270\367\001L\005M\277\367\001M\005\373N\005\303\224\n<\220|\240;\367\250a\200\275\313\002A\330\014\023\317\2206\230\021\000\004\003\0107\2309!\030\001\000\0048\2301\003\010\025\004w5\230\0014\010;\230aI\001\007:\230QP\001*\004X\000e\001\234\313\002\377\330\014\r\33046\260d\277\270!\2705\300\001|\001\017\233\210q\000\004\220\007\275\313\001\016\003t\321\220V\000\003\005\217\311\001A&\003u\220\357A\220S\2302\004u\220B\357\220d\230!@\003w\220a\277\220t\2308\2401P\002\320\375\017\244\317\001d\250&\260\001\260\271\021\343\001\277\307\004#\2401\261\315\001N\376\306\314\001\330\014\033\2305\240\014\377\250A\250[\270\001\270\021\374\237\307\001\331\315\001.\250\001\330\020\024\377\220H\230A\330\024,\250\375G\225\315\001\340\020(\250\007\250\353q\260\231\311\002qB\n4\320\047\177B\300!\360\006\000\t\347\316\001\177\010\014\320\014\034\230A\321\314\001\277U\230-\240q\250\232 \017\377\210\177\230g\240U\250!\373\330\024\212\321\001x\240q\330\020\337\031\230\026\230w\305\342\001\250a\237\330\021 \240\007\231\340\002\021\013yo\250\002\250\047\242\316\002\014\020\224#\362\352\316\001M\221\315\001\370\316\001D\320\030.\237\250a\250q\330\026\005\177\001\023\377\220$\220l\240\"\240A\377\330\010\013\210:\220Q\220\374\237\304\001\332@5\230\010\240\005\2401Q\377\310\003\232@\377\311\002\020\027\255 \354\317\001\357""\014\021\220\030\335\314\003\230v\240\377Q\340\014\020\220\003\220:\357\230Y\240a\257\341\002\020\025\220\337X\230Q\230j\371\005\r\320\357\r\036\230a\313%H\230K\357\240q\250\013\270\317\003\013\2106\317\220\027\320\030\274\252\001\231\320\002\r\023O\2207\320\032\376\254\001\251\320\001\340\215\004}g\232`\013\022\220!\330\033\001\374\335a\363\320\002\330\020\021\330\024 \377\240\005\240[\260\004\260A\357\260V\2701\314\312\002\200A\330\377*A\320AX\320XY\337\330\010!\240\035\356\002\010\035\336\335`\010\"\240,\010\003\032\230\375,\251\000x\250q\330\010\036\377\230o\250Q\250h\260a\377\330\010\034\230G\2405\320\277(<\270A\270[\312\230\002\330\377\010\"\320\"3\2601\260wH\270A\254A*\250\021\016\002\3758\371A\270(\300)\3106~\241\217\002Y\320Ya\320a\266\260\001\037\360\000\000y\001\356\337\004\332\371\004\327\332\013\300\313\325\004\315\262\004\352\360\004\272\372\004\271\374\004\311\307\004E\003\376\217A8\2203\220a\330\014\377\037\230q\320 :\270)\377\300<\310y\320XZ\320\357Za\320a\254\261\001\330\010%\377\240^\2608\2701\270A\377\330\010\016\210k\230\027\240\365\001\003\003\021\332\314\001x\220|\240\3772\240X\250Q\200A\330{+,\333\2001\250\017\260q\337\316\001\362\373\013%\254a\225$A\260X\270\377Y\300f\310F\320RT\377\320T\\\320\\h\320h\300\242\221\006\266\344\013\312\366\004\273\351\004\345\250\013\326\327\004i\002\276\346\r5\260Y\270l\234\340\001U\337\320U\\\320\\\224\303\002\010 \317\240\t\250\030\214\324\003\242\200Q\320(\\\336B\360M&\240Q\216b4\354`\377Q\260h\270i\300v\310\377V\320SU\320U]\320\017]i\320i\332\224\006\253\353\013\343\375\004\210\300\004\370\241\341\013\272\273\006\335M6\260i\270|\376\313\337\001V\320V]\320]_w\320_`\313\204\001\032\2508\362\325\003\276\241\200S9\270\021\270!\347\204\r\047\376\336\324\001\"\320\"5\260Q\260\377a\260x\270y\310\006\310\377f\320TV\320V^\320\001^\345\303\t\357\263\013\231\370\004\244\350\004\320\340\013\204\273\006\324\204\r\3377\260y\300\014\372\336\001W\320\377W^\320^`\320`a\177\330\010\"\240+\250Xy\001>\216\204S\320(:\270!\272""\207\001\340\206\013\327(\240q\374\206\0026\362\000q\270\377\010\300\t\310\026\310v\320\377UW\320W_\320_k?\320kw\320wx\353\206\002\262\263\013\320\206\340\004\321\354\004\377\337\013\233\352\004l\324\204\0168\270\367\t\300\034\334\245\001X\320X_\373\320_\207\360\001\330\010#\240<\323\250x\371\205\003\217\204S;\262\207\003!\320o!2\260!\302\207\001\330\010\002\007\256\235\214\001)\250\001\377\210\0027\201\207\001\270\377\030\300\031\310&\320PV\377\320VX\320X`\320`\007l\320l\360\220\006\333\351\013\372\305\004\343\267\013\313\344\004\300\237\354\004\345\372\004\333\351\004\275\321\004\342\351\004\242\370\007\010\013\375\210\366\210\t9\270\031\300,\310\377i\320WY\320Y`\320\375`\260\355\001\330\010$\240M\260\371\030\262\204\003\360\210\017y\230\014\240B\377\240h\250i\260|\30027\300X\310\320\2107\320(\250$\206\213\013\210\335\200C\215\251\013\276\274\006\330\277\200>\300\212?\213\215\003Q<\333\214.\347\366\002\000\000{\001\351\264\013\202\330\004\340\323\343\004\257\372\004\263\360\004\203\274\006\366\213\201\320(=o\270Q\270a\364\216\r+\250\232\211\003^\245\211\002\2708\3009\365\214\001X\217\216\002\377b\320bn\320nz\320\001z\270\367\003\246\355\013\261\376\004\356\357\004\267\367\004\324\302\004\307\273\006\376\342\216\r;\2709\300L\320P\377Y\320Y[\320[b\320\375b\354\276\001\330\010&\240o\260\001X\226\003\247\214S\362\004\327\217\001\363\220\006\271\200<\340\366\004\376\275\2008\340\010$\240F\250*\376\360\343\001\014\210E\220\025\220a;\220z\321\344\001\033\2301\227\340\001\264\200`\234\362\346\003\205\223\014,\2501\242\223\002\276\213\002\270\347H\300I\216\217\001\253Cc\320c?o\320o{\320{\225\302\003\356\356\013\300\340\333\004\235\311\004\331\333\004\312\331\004\271\235\006\362\222\r<\270\377I\300\\\320QZ\320Z\277\\\320\\c\320c\310\300\001\330\377\010\047\320\0477\260x\270\247q\300\001\310\214U\246\351\001\021\376\224\r.\371\250\210\221\003\254\225\001Q\270h\300i\376\232\215\001[\320[]\320]e\377\320eq\320q}\320}\200\200\366\003\207\263\013\272\375\004\350\360\004\247\237""\013\216\322\006\354\224\r>s\270i\350\260\001\373\222\003e\320e\332\275\001\377\330\010)\320);\2708\354\360\351\002\251\224R\320(\363\004$\240N\000\232\215\005\002\006\276\232\001\305\200<\374\367\004\322\355\004\320\303\004\334\333\004`\310\335\004\366\374\004\267\310\004\244\360\004\317\317\004R\003\203\201!\177\340\010#\2406\250\031\272\352\001\016\254\205\n\032\230!\310\347\002\000\034\306<\331\215\005\377l\270,\300b\310\010\3201P\246\2159\366\351\003\347\231\0142\260\360\231\003\200\204\002s\300(\247\370\001\333\324\003a\320a\361\225\001\037\360\000\000v\001\344\225\013\275\306\004\351\372\004\340\316\377\013\256\340\004\212\363\004\326\324\006\335\231\rB\300)\334\276\246\001\340\217\003i\320i\357\270\001\330\010\377-\320-C\3008\3101\235\310\230\231T\320(H\214\360\002\352\233\0146\231\260\363\227\003\227\354\002\300h\376\220\001\253\315\003e\037\320em\320m\366\243\003\321\303\013\243\342\013\300\235\372\004\375\321\004\226\372\004\276\340\004\247\377\006\340\233\rF\300\375i\231\262\001d\320df\320f\377m\320mo\320op\330\177\0101\3201K\3108\250\354\004\342\324\233\035>\275\215\001\323\235/\361\233\002\014\300A\034\361\235\r\325\233 |\320|\320\312\003\225\367\013\312\364\004\024\245\374\004\334\205\022q\253\233M@\215\212\001\316\2371\334\237\001\007\034\300Q\314\2330\262\200I\303\233<\305\2006\222\230\001\007L\310\001\355\241\r\350\227!\342\311\003\213\300\004\316\342\004\300\375\320\004\363\354\004\377\336\004\202\232\004\377\336\004\226\373\004t\002\016\241\225LB\300!\273\2416\310\2043\247\215I\272\241<\377B\320BT\320Tk\320\021k\367\314\003\374\254\006\333\2457\\\326\276\001\343\245\003\321\221\001\276\222\246\t\330\010(\320(\271\240\001(\356\357!&\320&\256\234\001\010\300\001\000\221\246\"\262\211\n\304\376\004\232\246\013\315\354\013\324\336\004\256\334\004\373\315\004t\267\377\004\250\320\004k\301\377\001k\003m\310\377\001\351m\362\374\005\237\256\004M\251\256\001M\004S\256\260\256\001S\004U\267\256\001U\236\256\005h\356\305\256\001h\004s\314\256\001s\004y""\356\323\256\001y\004{\332\256\001{\004|\371\004\317\246?\207\235\005j\270\014\300B\357\300h\320N\274\242\003l\320l\250\332\270\001\242\247\001\264@U\214\367\001\010\377\2077\\\007\320QR\212\245.\272\216\t\267\307\013\263\231\004\221\362\004\300\255\364\004\374\325\004\227\344\004\355\357\004\206\356\006\376\244LB\320\377BX\320Xj\320jk\224\234\2533\314\210\003\t\264\226\002[\253\226\002\276\253\001\030;\300\021\251\204\013\047\320\047\021\004\326\241#\000\350\253\002\344\247\004\266\356\004\321\346\004\352\311\013\201\342\004\257\330\004\264\360\004\rC\316\366\001C\003\217\335\004\257\330\004\276\204\013\276\204\004\272\344\263\004s\377\366\001s\003}\206\367\001}\273\003F\356\263\001F\004R\365\263\001R\273\004X\374\263\001X\004Z\203\264\001Z\357\004[\004\330\357\241Fo\270\\s\310\022\353\217\001\307\231\003q\320q\324\237\001\236\242\204\004[\320[\\\256\2563\344\250\001,\000\302\312\002\236\207%\344\250\036\327\300\002\370\335\004\274\256<\235\324\004\330\351\004t\202\331\004\352\314\004l\206\372\001l\003v\215\372\001wv\003\177\224\372\001\177\003J\374\266\001\327J\004P\203\267\001P\215ES\004\004\233\251?\216\207\037D\242\222\001\371\217i\352\226\002\245\336\013\304\331\004\300\272\372\004\307\231\013\207\274\004\300\354\004\356\347\006\240\255LD\320\217D]\320]\366\361\001\276\2633\347\243\001l\377\310.\320Xf\320fg\337\330\010#\320#\340\257\001X\270\021Q\000\t\257\267\001\335\243\037\360\360\245\001\274\370\004\246\211\013\200\326\333\004\355\360\013\322\233\013\250\354\004\322\356\004\353\321\013\363dt\326\207\377\001t\003\363\273\004|\225\377\001|\003\363}\003\370\243@\244\252\005k\270\034\300oR\300x\310\342\272\001+E\204\225\001~\223\2661?\270q\300\014\310\262\227\016\363-\250\320\227\003\367\254\002\270X\300Y\374\307\260\001\313\241\003d\320dp\320p\200\302\345\003\260\227\013\375\372\013\303\363\004\351\374\022\320\340\006\255\266\r=\243\270Y\263\323\001\232\241\003\315\231\003g\257\220\004\030\223\300\021\245\223\001\241\266\033,\320\2006\252\270\001\035\013\300a""\235\264-v\250\312\002\312\256\013\305\270\013\331\356\004`\242\363\004\223\375\004\377\360\004\245\354\006\212\264K-.\232\2727\001Q\350\222F\231\2467\272\375\004\343\272\004\351\360\004\275\342\004\315\335\013\272\331\330\004u\210\370\001u\003{\217\370\001{\346\365\215\005~\003\247\222`\347!#\240=\022\212\301\001\330\223\275)\234\267$\010\226\2630\377\260$\214\2675\373Z\250\324\303\001-D\320DW\207\320WX\374\265\001\314\200/\265\236\003\334\224#x>\301\267\013\360\000\000x\001\205\354\004\256\234\013\000\240\372\004\273\376\004\245\253\004\303\351\004\302\365\004\226\347\004\253\342\006\207\273E\010\215$\315\2116\315\273\001+\275\240\013\257\273-\332\337\n\323\275\004\000\322\360\004\245\356\004\205\363\004\306\263\004\251\365\004\324\376\004\216\342\004\376\346\004\260\342\367\004\376\346\004\352\353\004\205\347\004W\003\337\220N\310\372\254\311\001.\225\221\013 \240\r\250Q\313\250a\320\205\001X\313\277\002\354\303&Z\300\177q\330\010\047\240~\260\370\277\001\255a\204\263\001n\260\372\301\001Q\372\303\037j\377\320jo\320ou\320u\007w\320w\207\354\003\373\317\004\220\264\004\216\300\004\307\365\004\240\206\363\013\220\304\013\2462\271\351\013\225\314\004w\232\377\001w\273\003y\241\377\001y\003z\353\207Ff\377\250G\260?\300,\310b|\206\274\002\236\326\001\200A\33001\342\306\010\374\255\2013\301\302/f\320fk\320k?q\320qs\320s\254\370\003\335\262\004@\256\377\004\210\375\004\372\374\013\230\321\004\310\372\004\217\354\004E\243\377\001\333E\003\201\375\004H\003\306\302EV\250\3077\260!\331\200C\235\301\004\233\234\007\330\010w%\320%\231\301\001x\270q\312\314\001~\223\301\032h\320hm\320m\245 \007u\320u\360\365\003\243\347\004\320\236\013\301\372\013\362\360\004\200\216\370\004\360\241\004\246\363\004\301\356\004\321\351\004\354\374\004\235\234\022t\000\270\311\016\274\301/\301\277\003\242\203U\275\265\002\277\313+\270\206\026\236\213\013\020\252\370\013\322\356\004\366\365\004\355\236\022L\255\313F\260\203H\326\2750\377k\320kp\320pv\320\001v\235\306\003\236\354\004\211\375\004""\203\326\013\375\277\004\364\365\004\276\356\004\000\346\365\004\361\303$\357\2756\323\200O\224\206\t\210\251\t\317\243\013\250\300\0334\366\200D\237\270\022[\256\330\001[\003\327\372\004\226\213\022\245C\312\330\001C\277\330\005\325\243\004^\337\330\001^{\004`\346\330\001`\004a\004\247\233F\014\276\213\016\315\265\001\320y\276\302\003\302\316\004\303\263\006\346\213\001\001F\310\231\001\320\323\006\262\2137\262\262-\316\213\035\324\303\004\303\373\004>\342\313\006\360\000\000l\002\306\273\004\356\246\004\272\340\311\004P\271\333\001P\003R\300\333\001R\213\003S\243\213OG\255\220\001\355\200:\324\2662e\377\320ej\320jp\320p\017r\320rz\212\241\002\354\375\004\211\336\004\330\200Np\353\3235\225\216\006\347\200?\276\320\003<\300q\244\330\r\370\331\215:\201\216\013\236\310\006\360\000\000o\002\324\346\255\004\206\261\004M\205\340\001M\302`\360\000\027\000S\003\215\261\004V\267\215@\275\330\003\240\047\363\320G\216\323\003\223\203AL\320PQ`\266\273*\263\203$\262\225\013\327\275\006\236\343\001\002H\256\342\001\303H\003\324\370\004\220\373\004\266\263\004\300\225\004a\003\354\274\330E\367\222\00523\200\335\010\"\240-\006\223\340\003\035\230\326\227(\351\2242\263\222=\210\373\004\343\265\004\032\375\304\004J\323\224H9\260\242\343\001\334\200@\351\3220\207i\320i\270\217h\211\325/\362\205\005\236#3\3414\303\341\010\215\243\010\231\234(\253\333/g\320gx\241\234\023\225\224N\300\3335V\250:\260\332\341\001\210\233!\320\205\006\327\205\010Y\267\335\002\323\343\"\325\335$\007\356\373\333\007h\320h\200\200\234W\250I\364\327\200E\327\331$\047\207\346\010j\320jq\037\320qw\320w\227\356\003\217\342\004\226\356\004\000\210\356\004\230\340\004\212\326\004\201\322\004\217\334\013\226\236\004\217\356\004\343\214\004sN\003\325\331E\233&I\320I\357\373\001D\253\350\010\327\334\001\021\265\316\001\376\211*\356\245\003[\312\214\020\016\255\342\032g\320g\231\231\027\240\372\004\266\360\004\317\223\013D\314\265\006\276\250\001\002\227\301\004\243\320\004\325\245\004\\\244\360\001\333\\\003\236\301""\004_\003\257\342EV\250\373;\260\220\360\0013Q\320Qt\237\360\000\000u\001\364\337\004\200\260\004Z\352\234\361\001Z\245\264\005]\243\361\001]\004^\371\004\353\242>\237\310\002\320HY\320Y\037o\360\000\000p\367\317\005\205\373\004\311\332\004\366\267\214\004B\003\235\310+i\320in\377\320nt\320tv\320v\000\361\377\003\326\276\004\343\373\004\243\351\004\263\341\004\276\226\004\361\303\004\210\266\004\255O\214\363\001O\004\337\362\022r\250\363\001r\273\004@\360\362\001@\005I\367\362\001I\273\005P\376\362\001P\005V\205\363\001V{\005X\214\363\001X\005Y\005\270\337E\006\377\243\00545\311\346\001\370\217\004\322\257\010\373\210(\362\351$qw\230\350\007\333\212g\374\3515W\250J\301\204\002/5J\310!\202\250B\036\366\226\017\237\354\032\230\260\250\026\250\340\013\321\232\20778\333\252\021\315\224\nW\000\344\272\002\317\362 \260\3600\320\233\017\375\352\004\200\306\004\221\375\004\371\372\004\370\373\354\004\335\336\004\344\317\006\360\000\000t\002>\250\262\006\360\000\000@\003\353\302\013\314\313\004\364\371\302\004\362\372\004g\322\226H5\260\t\270\000\347\370\001\202\201I\207\3611\266\255\017\274\365\004\274\322\004\274\365\004\317\353\004\000\323\355\004\252\363\004\331\262\004\303\365\004\272\375\004\261\227\004\247\335\004\235\253\004\255_\250\375\001_\003\233\316\004g\266\375\001g\003\003h\240\255H\362\200Z\354\255\t\233\313\013\253\206,\207\201Q\272\200\310 K\374\377\001K\004Q\374\377\001Q\346\365\320\005T\004\265\364?\223\256\005E\260\031\373\270/\236\323\001W\320W]\320\357]b\320b\257\336\001\200A\330\374\220\204K\220\2302l\320lr\320r\007t\320t\204\347\003\213\355\004\223\330\004\252\363\004\222\355\004\320\255\361\004\221\367\004\226\340\006\341\340\001\002\310\217\006\360\000G\000B\003\270\246\004\236\306\004\365\265\013h\374\323\001\007h\003i\236\221H\327\206S\310\365/\270\263\017\342\355\004\000\356\342\004\365\363\004\351\355\004\351\375\004\351\367\004\226\304\004\362\340\004\351\375\004\240\203\321\004\315\345\004\253\223\004\312\263\004\237\207\004i\313\326\001i""\343\003j\205\244H\246\211S\313\366\004$\320$\0015\236\273\005\227\266\013\264\366\033\351\223\017\256\354\004\303\345\004\266\362\004\000\265\354\004\305\360\004\316\370\004\370\226\013\330\323\004\321\366\004\334\253\004\356\256\013\232\265\320\031I\240\331\001I\004\301\224\004\256\207\004R\346\217\323Ff\250\252\207\001\374\322\002T\320T\377Z\320Z_\320_h\320\003hi\335\206N\225\266B\303\344\004\337\320\004\302\363\004\312\344\004\220\271\357\004\253\367\004\355\311\006\224\374\001\002\316\371\004\325\273\004S\326\217\334\001S\003\203\232\004c\235\334\001c\003\004\322\204\004\250\334\004l\262\266H\206\217S\301\266F\214\360\004\242\326\004\000\206\362\004\223\360\004\246\351\004\207\370\004\261\252\013\242\276\004\374\336\004\272\303\004m]\352\336\001]\003\224\326\022m\003\214\366FCV\250\370\200Z\340\266W\231\201Q\214\212\004o\345\341\001So\003\235\334\004\240\315\004D\336\341\001D\344\217\005\335W\354\341\001W\004Y\363\341\001Y\004\335c\372\341\001c\004l\201\342\001l\004]x\210\342\001x\004~\217\342\001~\214\235\005\003A\005\222\267H\202\220\022\240\303\n\227\365\004\276\330\004\222\375\013\373_\002\275\220\001M\320Mb\320\373bc\244\230L\014\300K\310q\300\346\337%\335\355\032\314\230@\231\312\004\321\205\013\336\364\006\360\000G\000R\003\336\307\004\205\216\004\204\321\022G\327\345\001\241G\200\335\005\350\242\004\353D\206\241\004o\372\345\001o\272\361ED\202\241\001D\005J\211\241\001J{\005L\220\241\001L\005M\005\276\261?\374\371\223\032\320\202,N\320Ne\320eO~\320~\177\253\234G\241\232\003\034\312\373\001~\276\311\001\330\010!\320!2\333\370\005\300\362\226k\333\370\004\321\306\004\253\246\004\240\277\004\354\234\006\360\000\327\000g\003\206\325\004~\331\351\001~\003t\337\206\004\365\340\004L\322\351\001L\004V\331\351\001uV\307\351\005k\347\351\001k\004q\356\351\001\365q\316\351\005t\246\227L)\300<\310\235r\361\253\002\\\320\\\216\376\001\360\227\001Q\230\377\350\002\224\277\017\355\2373\320(\305\334\006\334\354\t#\377\240>\260\021\260(\270!\374\207\374\001\273\334\033m""\320mr\320r\007x\320x\213\275\003\241\344\004\234\361\004\257\347\004\222\376\004\340\243\361\004\344\252\004\271\341\004\333\351\004\230\314\006\360\000\000iH\346\272\005\300\321\004b\360\354\001b\003\364\354\004\rx\376\354\001x\003\245D\364\354\004\232\344\013\263\302$\374\206\3351\212\233\010\320:J\310,\320\377VX\320X^\320^c\377\320cl\320lm\200A\037\3308P\320P\357\222\001\207\205I\266\364\001?M\310\035\320VW\262\252=\315\225\047\340\342\335\004\272\317\004\303\302\006\202\276\002\346\255\006\360\000\000\241_\205\360\005\263\347\004\301\352\004\345\305\004E\220\360\001E\347\004F\004\250\252G\325\243\0059R\320QR\267\375\003\304\204G\237\367\001N\253\345\001Y\220\345\031@\222\230W\254\375\004\364\362\013\300\327\004\204\320\004\207\205\004p\205\363\0015p\375\324\005A\367\362\001A\004\240\214\004\336\230\004\272\202\363\004\\\223\363\001\\\004d\232\363\001d\253\004j\241\363\001j\237\220\005m\253\230L+\376\364\212\001S\320SY\320Y^\377\320^g\320gh\200A\301\330\242D\225\366\027\261\330\006\215\2105\277\323\001>\310\377\036\320We\320es\320\003st\315\350\031\237\323,\332\236\047\223\344\004\264\226\013\240K|\353\360\004\323\350\006\360\000\000}\003\272\244\004\255T\272\366\001T\004\247Db\310\366\001b\272\255En\326\366\001n\004w\335\366\001w\273\004\177\344\366\001\177\004E\345\261\001E;\005G\354\261\001G\005H\303\261\016\323\3237\210\356\244\001\260W\364\312\001\001\204\375\004\343\270\006\361\216M\036\377\300~\320Uc\320cq\377\320qr\330\010\037\320\037\1770\260\001\260\030\270\021\000\t@\014\t\214\372\001\327\247V\364\347\004\346\237\013\224\334\004n\215\372\001\003n\003\250\227\004\266\354\004\317\345\004\346\237\004\305\364\004\273\217\004P\210\206\004\360\317\004\221\372\004\302\217\004u\276\372\001u\220\372\005M}\314\372\001}\004\332D\303\265\004T\333\265\001wT\005Z\342\265\001Z\005\\\351\265\001\357\\\005]\005\241\250K\047\300\034\373\310R\301\343\001Z\320Zc\320ocj\320j\355\324\001\320x\260\267\003|\235\361\004\242\341\006\200A\330?@\232\261\032\370\312\302\n\266""\276\002\253\266\001,\250a\250q\377\330\010\032\230,\240a\240\375x\007\001\036\230o\250Q\250\377h\260a\330\010\034\230G\003\2405\213\256f\366\372\004\363\355\004\310\330\004\375\372\004\366\372\004|\312\370\004\371\313\006\360\000\000V\003\370\211\031\364\217\376\004\312\370\004H\231\376\001H\004I\004~\270\335G5\260\007\260z\300\344\261\001\003?V\226\217\002\373\222\030\310\2017\233\336\001\275\316?\250\251 \000\370\347\004\303\365\022\370\347\004\307\373\004\271\370\004\344\243\004\300\370\004\252\236\004h\221\215\004\304\226\004\261\232\004N\321\373\001N\004\334\211\004\302\304\226\004W\275\373\016\215\336/\275\317\005\201GAB|\300\376\010\210\226\034X\250W\260A\342\204%\376\363\363\001\001\330\010%\240^\260\3371\260H\270A\366\225\"s\320\003sy\353\327\005\251\206\013\364\264\004\373\352\004\255\304\004\240\346\004\000\334\326\004\342\350\004\353\361\004\246\341\004\333\357\004\303\373\004\356\331\004\377\301\004\036\362\264\006\360\000\000h\302\373\005\302\366\004\321\376\004\354\307\231\004\212DO\004\204\364GV\2506\237\260\025\260i\270\331\366\001\254\201VCs\3001\223\374\001\370*1\260\001\347\376\002~\234B\300\030\310\031\320R\216\227\003\277`\320`h\320h\243\307\003}\003\320}\231\351\003\302\346\004\302\376\004\237\351\004\341\353\004\315\257\004\000\310\371\004\332\373\004\361\364\004\371\366\004\350\353\004\254\344\004\333\331\004\372\267\004\200\246\351\004\353\251\006\235\332\001\307\371\005\223\231\022\222\214\004\276\376\017A\373\300\031\327\230\001_\320_a\320\377ah\320hj\320jk\277\330\010,\320,A\335\000\0218\310\277\001\274\367\025\241\201bE\300Q\363\367\001\376\204\n\2753\312\310\001\"\320\"A\360\370\001\300\3678\3109\372\255\002`\320`b\037\320bj\320j\203\205\003\234\354\003\344\356\004\000\241\347\004\265\332\004\204\361\004\320\262\004\373\367\004\213\305\004\322\374\004\364\367\004\240\353\356\004\331\374\004\360\325\004\353\356\004\226\226\013m\316\374\001m)\003\234\217\004\313\374\004B\201\340\001B\375\337\005\225\217\004\372\366\222\004U\355\337\016C""\3009\310L\343\320X\204@\202\216\003\341\233\001\330\010.\377\320.E\300X\310Q\310wa\330\010\215\201zF\300a\270\357\001\356\210\210\n4\2601\216\373\002B\300!\377\3001\300H\310I\320U\367[\320[\274\003k\320kt\003\320t\266\335\003\264\345\004\253\237\004\204\310\004\332\354\004\213\364\004\000\363\337\004\276\357\004\211\373\004\371\361\004\353\370\004\222\364\004\312\326\004\227\216\013P\262\237\004\214\260\004\234\222\013\231\234\013M\226\343\001M\266\273\005\335U\244\343\001U\004V\373\342\016D\300\377I\310\\\320Yb\320b\377d\320dk\320km\320\377mn\330\010/\320/Gx\322\377\001\360\332\002\234\204zG\300q\310\224\213\r\3155\336\213\002\320\"\266\210\002\262`Y\320\357V\\\320\\\275\003l\320l\007u\320u\205\344\n\232\367\013\342\357\004\314\320\004\221\376\004\000\306\362\004\364\270\004\365\352\004\305\355\004\241\301\004\201\374\004\211\343\004\201\365\004\370\215\216 \332\255\004\211\216$E\300Y\310l\376\235\224\002e\320el\320ln\377\320no\330\0100\3200\377I\310\030\320QR\320R\375S\372\204\"\340\010\014\210J\220\277m\2406\250\021\330\010\000M\357\230\024\230Q\005\001J\220i\337\230q\240\004\240\346\215\002\r\210\277O\2309\240F\250\216\245\002\r\377\320\014\036\230b\240\010\250\375\001-\001O\2301\200A\340\277\010\020\220\004\220A\274\375\0014\377\210w\220a\220w\230a\177\330\014\021\220\030\230\021\004\000\377\320\021!\240\021\360\006\000\377\r\022\220\037\240\013\2501\276\026\001\036\230{\250!\037\001\033\357\230K\240q \002\"\240!\376\037\003\030\230\037\250\001\250\024\375\250\376\365\001\r\021\220\005\220V\377\2301\230E\240\025\240d{\250!;\000\020\027\320\027\215\231\001\377\024\260Y\270a\330\020\035\377\230T\240\021\240!\330\020\377\023\2204\220q\320\030(\373\250\003`\000\024\030\230\001\320\357\031+\320+\220c\020\025\220\335\\#\000.\260\001\223\001\025\220\177a\320\027(\250\004\250\304\217\001\376K\0243\2601\260D\270\t\373\300\021W\010\025\220[\240\001\357\240\036\250q<\006\047\240t\363\2501\325\003P\002)\250\033\260\357A\330\014\020\240\0221\260\021\373\260$\241\216\001""\330\020\036\230d\337\240!\2401\330\225\000U\230\367!\230?\326\000?\270$\270wa\270q\017\001X\230Q\210\227\001\372\242\006)\211!\330\010\017\210q\024\347!\234\351\006\035\246A\"\345\311$\345\341*\262\272\001\037\320it\320t\240\373\003\346\230\013\200\366\004\354\343\326\004\237\373\004]\002\226\341EX\250Q\360\260\2003\237\311\002\367\374\r\204\316\032i\320ij\377\320ju\320uv\360\000\007\000w\001\230\311\004\370\374\004\340\367\004\303\330\004\272\303\004\323^\002\273\376E\254\20089\206\237\001\"\320\343\"3\202\225\007\346\327\032\275\220\001\320kv\027\320vw\307\327\001\001\241\305\004\366\277\004\360\221\022s_\002\203\327E\223\2028:\270!\312\351*>\225\310\001\320lw\320w\227\364\003\227\354\004\200\331\276\004\275\327\004\201\307\004\314\356\006\202\373\r\315\2305\372\2038;\363\2701\234\330+\347\255\001\320mx\3201x\372\335\003\306\225\013\265\222\022a\002\216\335E\342\2058\367<\270A\201\372\t\330\010&\320\377&7\260q\270\010\300\001\272\344\374\001*\374\213\001\"\320\"\253\377\002\270\237(\300)\3106\351\337\010\350\217\001\320\017ny\320y\364\357\003\263\363\004\273\320\004\233\221\022\330\243\362\004\362\367\004\352\376$:\270\363\263\001y\320\257XZ\320Z\360\223\003d\357\233\0038\343\2701\273\001\347\226\017\275\374\003h\250j\377\270\014\300B\300h\310an\204\2105>\270a\357\376\t\330\010\335\367\007\346\203\377\001,\250\322\223\003\253\377\002\270H\300\367I\310V\344\253\002[\320[c\377\320co\320op\320p\007{\320{\204\315\003\301\223\013\246\312\004\256\374\004\212\372\004Kp\002\336\335\001\002\277\355\004\360\376\022O\321\376\016\367<\270I\327\270\001Z\320Z\\\237\320\\c\320c\223\266\001\346\274\0027?\260x\270q\300\001\374\225\021\231%\237m\270<\300r\225\220\002\246\2125?\371\270\366\361\016\200\266\033p\320pq\320\377q|\320|}\360\000\000\003~\001\360\324\004\213\317\004\351\324\004\205\362\004\311\376\006\311\235Gn\215\2148@\300\001\341\363\r.\250\316\361\003\336\366\310\002\270h\300i\254\350\001[\320\177[]\320]e\320e\245\253\001\037\320r}\320}\324\340\003\212\376\004\340""\333\004\360\365\320\004\336\343\004\217\376\006\333\372\r>\270i\300\377|\320S\\\320\\^\320\357^e\320e\274\260\001\330\010)\037\320);\2708\363\236\003\337\234\025\367\2158wA\300\021\313\365\r/\250a\351\365\002\376\220\310\002\270x\300y\320PV\376\261\226\002^\320^f\320fr\237\320rs\320s\263\276\001\330\332\001\002\350\360\347\004\234\343\004\326\204\022g\212\220\016?\270y\377\310\014\320T]\320]_\337\320_f\320f\254\270\003*\320\017*=\270X\330\235\003\223\200U\264\244\n\265\2002\330\203\346\004yn\334\3753=\270\372\366\016+\250\270\321\216\003\263\360\002\330`9\310F\257\243\002Z\003\320Z\330\327\003\245\362\027\335\353\004\312\313\004\344\353\004\204\240 \235A\342\312I7\260!\371\225\n\377\265>8\003\270\001\211\224*\234\3369\372\330\004\321\336\013\244\326\004\244\303\004`\313\320\004\372\330\004\333\250\006\356\255I\233\341\002\340\010\355\273J\000\262\276g\217\323\004\335\355@\204\3677\335\343\004\370\200I\344\205D\331\322\047\374\311\356\004\206\376@;\2709\300L\320\177PY\320Y[\320[\232\244\003\377e\330\010&\240o\260X\007\270Q\270\212\247\032\245\201!\211\2665\377\350\001\312\235*\000\314\3502\321\222\004\245\330\004\260\260\004\271\346\004\261\255\004\240\252\004\343\376\004\350\330\325\004\305\266\004\254\330\004l\307\363\001l\003s\022\316\363\001s\321\301\005\362\322\004|\320\350J\260\266\004\342\206\032\034\371\2707\354\234-g\320g\225\343/\320\370\004\212\364\004\000\245\351\004\225\365\004\272\363\004\366\246\004\327\370\004\251\366\004\264\266\004\317\363\004\004\266\275\004\336\321\022~\226\343J\3308\216\274\014\350\265&\340\206K\000\364\265\031\360\366\004\253\315\004\202\266\004\262\315\004\220\274\004\202\341\004\255\346\004\030\213\354\004\251\307\006\335\332J\n\270\360\216\013\233\270G\250\207\003\374\330\343\t\344\343\t#\320#4\260A\360\314\210\001\232\233\t\236\320\001\244\327\035k\320kq\037\320qs\320s\231\331\003\375\356\004\221\331\013\000\204\357\004\266\376\004\210\374\004\327\346\004\243\233\004\211\271\004\202\271\004\210\374\004\000\262\320\004\222""\315\013\336\346\004\202\344\004\275\207\022\222\315\004\223\274\004\304\333\004\272\301\373\004_\313\373\001_\004i\322\373\001iU\004\321\371\004z\340\373\001z\327\371\005B\342\371\001uB\321\327\005U\360\371\001U\005_\367\371\001w_\005e\376\371\001e\005g\205\372\001\367g\005h\252\327HF\260%\260\367y\300\014\216\264\001Z\320Z`\003\320`\332\366\003\233\375\003\214\307\004\366\353\004\313\346\013\243\364\004\300\341\366\004\365\221\013\245\257\013\311\265\004\252\364\004\316\343\013]\003\000\360\252\n\222\275I\317\2230\346\355\023\215\366\031\371\237\004\321\350\004\317\267\0044\260\366\004\327\324.r\376\377\001r\003\210\325\004\360\307\006\200\225\303G\306\275\006\234\224\010\205\300I\211\245\002\302\300\n\343\244\033j\003\320j\205\231\020\351\345\004\254\353\031\312\366\004\266\303 \244\333\004\200\331\303\004\330\366\004\231\371\004\230\217\004\337\324\004\274\316\004\253\333\004\177\000\225\350H\227\201]\334\2331\276\300\003\347\251\003\267\275\004\212\374\004\240\353\031\240\344\363\004\341\245\004\234\361\004\303\353\004\216\336\013M\276\371\001M\241\003\311\371\004\362\363\004\302\371\004\342\324\004w\341\371\001w\365\003\327\327\004\177\357\371\001\177\003@\004\000\271\350H\220\204]\331\250\003\263\306\t\264\250\033\326\366\003\303\335\024\304\353\031\000\215\364\004\257\300\004\215\364\004\347\353\004\272\374\004\352$\220\377\004\343\366\004\020\233\364\004\334\366\004\322\320\004\332\335\022A\316\371\016\344\2501\265\311\005@\211\207]\261\251\002\252\310\213\272\377\004\206\344\013\354\353\013y\322\377\001\023y\003\343\204\004\332\332\004B\333\310S\213\212T\300\252\002\334\244\314\n\246\252\033n\320n\232\303\001\320z\000\310\374\003\377\267\013\260\343\031\237\364\004\261\322\004\322\361\004\323\343\004\377\371\004\000\353$\325\374\004\252\314\013\252\367\004\314\335\004\275\326\004\323\343\004\250\306\004\203C\004\343\252G\237\314\010\204\215T\317\253\002\275\251)o\033\320o\205\303\001\320{\242\257\003\222\271\013\331\274\022\000\305\261\004\305\364\004\335""\263\004\235\317\004\245\314\004\235\372\004\310\377\004\200\375\004@\240\367\004\323\364\004\231\367\004\330\361\013\306\340\004\273\343\004D\214\372\016\334\202\2547\230\201_B\300!\225\322\0140\250z\256\262\003>\327\300\001\300\010\310\t\315\352\002\356\363\255\003g\320g\345\252\003|\320|\000\326\331\003\245\272\013\354\275\022\245\330\004\265\243\004\236\330\004\300\351\004\245\330\004\000\223\372\004\331\360\013\306\367\004\265\346\004\347\240\004\277\223\004\216\314\013\340\364\004\375E\206\375\016@\300\t\310\034\320\377U^\320^`\320`g\373\320g\272\277\001\330\010+\320+\307?\270x\365\307\003\365\316 \370\222TC\300\0011\217\325\014\227\321\177\224\375\004\232\351\022\341\243\004\210\351$\315\321B\332\362\225TD\202\325\0162\260\316\264\003@\300\177\001\300\021\300(\310)\215\347\002\016\311\323\003i\320i\253\357\003\307\337\003\302\343\004\301\274\013\000\226\300\022\231\333\004\260\272\004\365\253\004\226\336\004\231\333\004\277\357\004\271\256\004h\276\375\004\220\325\013\251\342\004t\326\375\001t\003\344\362\013\372\244\336\004G\267\362\016B\300)\310<\273\320W\310\323\003i\320i\361\353\003-\377\320-C\3008\3101\310qA\300\313$\255\362\006\314\332IE\300Q\207\333\014\000\205\324\203\242\341\004\326\371\004\266\354\004\317\375\004\335\371\004\277\226\004\235\357\004\022\335\371\004H\256\324S\356\233TF\370\327\016\365\323\207\234\357\031\020\246\362\004\375\343$\262\324C\361\236TG\361\327\016\351\323\207\243\344\004\020\373\327\013\377\356\004\313\234\004\246\362\022J\272\373\016\243\324F\260\207R\355H\346\327\0166\260\250\302\003D\300A\377\300Q\300h\310i\320W\367]\320]\254\305\003m\320mv\003\320v\243\306\003\252\373\004\362\317\004\251\302\013\252\373\004\370\332\004\000\261\373\004\310\310\013\270\373\004\370\332\004\300\272\004\231\347\013\300\242\004\240\347\013\320\260\245\013\215\336\004\235\352\004\362\376\004K\276\376\016F\300\377i\310|\320[d\320d\277f\320fm\320m\360\307\001\330\377\0101\3201K\3108\320\237ST\320TU\331\212-\214\355\nQ8\352\354(\377\274-\325""\231\003v\320v\275\356\003\347\335\004\320\240\376\004\223\317\004\205\347\004\334\343 \177\273\322FV\250\343:\260\350\324\002\362\366\006\371\366\010Y\240a\376\306\200Jw\310f\320TV\320\201V\225\370\003{\225\233\361\002\315\333\001\324\200<\377\324\"\007\376\342\362\001W\320W_\320_h;\320h\201\233\003w\320w\246\372\003\250\313\004\020\342\362\004\244\353\004\224\342\004\353\221 @\371\265F\201/\307\363\010|\310\202[\263\200]6\260i\270|\252\350\001\327V\320V\210\312\003`\310\371\001\032\250\3578\2601\260\276\223\030W\250J\377\260a\200A\360\010\000\t\375\021\362\337\004\320\013\035\230W\240\376\367\335\002\n\230!\2305\240\017\376\243\336\001\023\2205\230\r\240V\357\2501\340\014\005\003U\250!\356+\n\014\210L\257\337\001\013\2606\375\270\247\340\001\220\034\230Q\230k\357\250\021\320*\253\324\001\014\021\220\377\025\220a\220~\240Q\240}n\250\360\001\r\320\r\036\230j\013\364\207\353\001\262\341\004\025\360\340\001\017\210q\220_\r\230T\320!\327\324\001\001\255\336\004\270\235\010\226\337\001\301\337\001\033\250A\316\316\001\013\377\2106\220\023\220A\330\014\377\024\220E\230\033\240A\240\307[\260\001\273\227\001\346\336\002\324\010\026\220\375a\245\342\001G\2201\330\014\017\377\210t\2203\220e\2301\377\330\020\030\230\006\230a\230\375q\367\340\002\320\027/\250q\260\277\005\260Q\330\024\031F\002T\277\250\021\250+\260V\265\324\002\024\377\"\240!\330\021\025\220S\337\230\005\230Q\330\207\341\004$\240?a\320\0479\270\026\266\322\002\203\340\004\375>2\000\047\260\026\260q\270\377\001\340\010\013\2101\330\0149\031\300\342\001q\000\320\023$\235\000Q\001\365!\361\341\001Q\205\001s\220!\220w6\230\022\207\001\024\220C\246 \177Y\250a\250u\260A\177\001\277\021\330\024\027\220r\032\0003\366\236\002\030 \311\343\001\240Q\330\030\337\033\2304\320\037\366\326\001\014\300\337A\330\034!\240\207![\270w\001\270\033\013\001*\250!t\001\3275\220\003\345\003q\234\341\004\320\033\317+\2504\250\240\343\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\365\343\003z\230\021\373\230%\215 \014\022\220$""\220\247a\220q\370%)\000\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN|Z\003\343A\016\230e\240<\360 \351\013\226\327\003\255C\014\213\204\004\340\010\021\237\320\021&\240a\234\343\001\324\345\001C\257\210}\230I\305`e\373\344\001\024\237\220D\320\030.\374\372\002\360FZ\372\272@\001\331Av\220V\320\033W2\260#\267@6\372\343\001)\304@\375(\014\000Q\330\021\027\220v\377\320\0357\260s\270&\300\277\006\300a\330\020,\302`X\373\260S\247A\023\320\023#\240\2271\240A\270\373\001A\276\346\001\274c\016\336\227\205\007\2104\210u\346a\020\320\367\020 \240\246\326\002e\2208\230\3277\240!\2435\013\315\205\003E\250\317\021\330\020\032\311\205\007\246\204\001\035\240]a\367E5\230\003\206\204\001\027\241\205\002\375c\360`$\250f\260A\340\376\241\346\001(\250\001\250\025\250m\376\266\331\002)/\250q\330)1\377\260\024\260Q\330\r\037\2303w\240\205!K\t\017\210\311a=\016\335!8\0170\260\004^\000\014\023\377\2203\220a\220v\230S\377\240\001\240\025\240c\250\027\337\260\001\200A\360\351\005\340\010\337\033\2302\230\\}\000k\270\367\021\270+\257\361\002\034 \240\016\277\250e\260;\270e\252\241\001#\377\2402\240S\250\005\250\\\376\035\000\"\270A\270Q\330$M(\014\000U\260\340\350\002\253a1\316\350\001}\027\302a#\2404\320\047\331\244\002\377\013\2105\220\004\220D\230\177\n\240!\2404\240q\300\347\001>\353\346\001\003\2207\230)\373\"\202\350\002\367z\240\021\220\204\002\024\025\340\020\267\021\330\024\355 \320!\354\320\001&\377\300\001\330\027\030\330\024\032\373\320\032\265\226\001\030\033\2301\230\277A\330\030\034\230E\276\350\002\024\355\032?\003\340\010\365$A\330\020\377\024\220J\230a\230u\240\377O\2601\330\014\047\240u\257\250M\270\021\274#a\010\022\031\027\300!\340%\000t\252\205\001\212\207\001\302\206\001_3\210a\210~\246 \003\235b\025\014\377@!\256\351\002\014\256\351\002\275A\203\000\377\r\020\220\001\220\036\230t\363\320#\246\336\001u\000C\220q\230?\006\230c\240\024\240\230\204\001\361 \273\260T\240\211\001\022\320\022\262\326\001\020\363\023\220\234!\235""\000E\230\021\230\277!\330\014\022\220)\312\001\340{\010\014\224\353\t\320\014\034\230\274\353\004\357L\230\t\240\337\211\002\033\230A\357\230[\250\001\246\351\002\010\r\210\307U\220!\271\204\001\313 \322\372\001\r\210\354\037\006\361\211\030\340\010\202\211\0011\200A\373\3602\327\204\010:\220Q\220n\370\200\213\001\325 \201\352\001\007\220t\320\033\3776\260a\330\020\023\320\023\377%\240W\250A\330\024\030\276\266B>\260\021\330\024\201\352\001\047_\250\034\260Q\340\004\004\021\301\353\001\3251\254A\007\330@\001\332\210\005>\240\373\023\240\207@\025\320\025%\240\376\271\211\001\320\025&\240a\330\020\356\227`\340\020\026\242\355\002\001\330/\3676\260c\346`.\310\002\310\377!\3309:\33004\260uE\366`!\260\352\003N\220!\226\204\001\241\014\314\211\001\365&\245!\232 \330\305\003\320\217\004\035\230Q\306\214\010\350\353\001\255@\330\357\010\022\220\047\334\"\010\014\210\177G\2209\230J\240f\304\000\376\201\213\001\320\023+\2501\250G\371\260\301\353\002\225\354\001\026\240q\250\013\004\374\363\001\242\214\003\330\317*"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35493, 110864); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (35802 bytes) */ +static const char cstring[] = "\377\n\n Th\367is \000\000a py\377thonic w\377rapper a\377round TA\377LIB\047s ab\377stract i\377nterface\227. I\013\000sC\002\021\001n\377ded to s\377implify \337using-\000di\277vidualF\003 \377function\377s by pro\364\032\000$\001a\214\002unif\371iE\000]\006 for \357settI\000/co\277ntrollR\003p\377ut data,\370\030\005R\006\327\002param\361e\252\000\272\000\306\000retr\367iev\217\001resuWlts\276\000n<\005 X\000\377sists of\377 a ``dic\347t``\013\000\243\"``n\357umpy\016\000arr\237ays (\223\000#\001p\177andas.D\204\000\351Fk\001/\001r<\000pol\373ar\013\n), on\361e\361\"?\002\324\002each\376n\001open, h\377igh, low\377, close ~Z\000 volum\352 ~\246Bcan be\214!\337 with\277Bth\326\014\002_i\311\001_\232\003()\375 \370\000hod. W;hia\000key\233@\270\002\027(s)\332@e\234@\016\001\374@~\201!s when\217b\003ca\333#T\001\244E\240a\365%\343@(\324Cu\001o\003n\346 s\310A\266`\367ty.\321hclas\357s ge\326 ini?tializ\244`\271\001\310\344 \330b\210f C\001\357\002op\204\235a\205\000y\200 \332d\353@\326\004 ?object\373b\272cges \251\002\230`ow\361a\177primary\341hH\304`\355\204\002\304d \251\"\202u:\230\205\003\337---- \314(/T\313A-\266\204\005-\326f\232\204\001-oSnlb\t6\001-\335\205\002-\271\204\001\304\216K\235I)\032\010\221\205\005\301@gs{([\304I,] [\313\204\002\372\027\002_\362`or_kw\277args])\305\206\003D;oc\245`nta\330\205\001\261\205\002\332\032\024 \274fen\375\205\003in\350\332\205\001\277!\220\207\002F\232\206\004 in\377stance o}r\245\206\001gramm\\\000\276\235ay via\360\"i\337nfo, \374Ian\335d\361\205\rpro\227aie\333s.\321\047- \203\206\003-r\037eturn\251\207\001\222\207\007\266)~\336\204\001output\333gn\243\210\002s a\341\204\004 w\342\204\002\037ensur\213`\333\206\004\343\204\002\027alw\256\206\001v\370`\222\003u\000{un\322+]) #\225 \207lls\236N\200\206\002\234\003\031\001l#f.\204\004\330D\246%I\246$\216\202(\340g\n\361JW\033\266\212\001\272\212\001 %s\377 ( (expe\377cted ba\375r\274\210\002histor\377y, at le\357ast \333\205\007fai\375l\372\205\005error \377code ne-e""\275\212\001(a.\001d\266\212\001K\000\367 th@\000is N\377aN in anyy\264\205\003\261\213\001not c\004\377)%(displ\367ay_\210\207\001)s (\377%(group)\377s)\n%s%s.\307adv\310a\007\000\310@_r\337ange\047\367\213\001de\237preca\274\001\353\210\001h\377as no ef\377fect: ((o%s)(s\001nd\366\211\002\377)))\n, , \375gz\000.3: =?\377A periodz\266\212\0011\010\001form@\002\377smoothin\277gADXR S\004u\256\321\204\001ble+\010i\363\212\001w\177n; it f\277\207\002~\312\207\003inner :\000\177. Set \047D\000\375\047\220\205\002ead.Al\327loc\347\205\003E\302\"(T\377A_ALLOC_\377ERR)Bad \365O\243\210\002 \025\001BAD_\277OBJECT\025\002P\374\224\214\005\024\006PARAM)\377Bull/Bea\377r Patter\367n (\n\001ish \377< 0, Neu?tral =\t\001)\001\376\026\001> 0)Can\036\213Amix \365\213\003\267\213\002\230\214\003\377Dashed L\237ineDoS\000\003\005u\376\202!Exponen\356\226\212\001 Mo\232\215\002AveOrage\000\027\230\207\006N\377@\371F\242\217\002\371\001FUNC_\377NOT_FOUN\363D)\276\207\006\317Aa st\357ream\216\217\001APIV\016\013n \206LG\266a P\013_GROUPT\010H\250 b\243\014I\312\216\002\221\001\232@ I\345\213\010>\230AINPUT\233\002\243@\377_INITIAL\357IZE)2\002s:I\377nsuffici\346\213 H\274\205\003\267BINS\377UFFICIEN\377T_HISTOR\271Y2\000\233Aal \363GI\177NTERNAL\374A\363ORT\000\356\207\002 Han\371d\354`}\003VALID\177_HANDLE\031\006\377List Typ\353e \031\tLg\000_TYAP\036\007\254g\232\212\006J\t\276b_\202A\317TIONw\006\342gHo\337lder \"\017HO\017LDER\030\027\213\016e\0031\003|\226\013\215\215\007value\272\222\002\377Kaufman \377Adaptive\036\332lLibr\251\216\001\312a\245M\347LIB\316b\244HMES}A3\025MFI\047s\276m\377 was ret{ir\324\223\002 TA-p\000\337 C.No\344\204\014 (\373id\210\205\001ty)No\373ne\333\204\001Suppo\361r\332\211\001\334\206\001\332\204\001SUPP\337ORTED!\000t ?enough\200\211\005\374\224\001\342\310\222\001 \350\204\005\247w\237\221\004Rec\375o\354\205\001ble: c\377ollect m\347ore\307\212\003\376\222\001try? again\256\000h\006\377price ar\335g\360\216\002s: \375\212\006No\313te\262\212\003C""\317\226\002\337\211\003li\377berately\276\206\206\001icter\331\212\001n\377 PEP-484|\340\214\004\325\221\001s sub\264\222\002\375e\212\225\002builti\277n type\261\225\001fO you\253\213\002\353\226\001p\335\222\001\236&\010then\234\224\002\224\224\001\047\364\222\210\002\216\220\002_<\000ing\047\353 d\205@c\202bto \377False.Ou\277t-of-R\221\213\001 \377End Inde\375x\264\211\002OUT_OF\377_RANGE_E\377ND_INDEX})%\nStart\034\025\037START,\007\261\227\001\212\207\025\304i\000\214\207\024O\371\217\002\262\221\005\211\215\001or\257 inf\320\224\001e\017\013n\347ega\341\204\001%\013pos=i\004\017zeroT\004\200\232\002}c\246\207\002stick\r\007\376\205\225\005 (nulla\357ble)\022\010ver\374\234\227\004?\007path-d\317epen\312\204\001\265\004sc\377ale same3 a\356\226\004\320\003s:\205\214\006\007\001\376\357\213\005ool)STO\037CHRSI\203\21569\000\265\215\004\344C\000\262\215\007S\237\233\001\367\206\rStr\337ength\361\214\007[-\377200..-10\3370] = \203\215\004, -[\016\001..\020\002G\225\233\003\023\007\0070 =\237\215\005\047\000<\0007\004 \006?ullishC\000T\000\370]\001V\002\017\003)The \376\367\224\005\047s Own \177Default\216\215\014\237Too m\212\221\001\356\205\027T\377riangula\375r,\rriple \372\340\215\027T\033\003Gener\366\252\231\004Do\217\216\034Unkn\341o\254\000\207\220\002\000\n\373\217\002UNK/NOWN\226\220\002V\225\212\001\216\211\001\257pres\351\214\001a\360\233\001e\177r limit\014\017\347n u\215\237\002\032\002Wei\263gh\351\223\001\237\217\013Wi\327\213\001\047\267s S\357\221\002ed\276\217\014Z\177ero-Lag\333\030\375[\345\230\n]]add_\377notebegi\377dx nbele\337mentc\345\220\003pi\377ckle %s:z\343\211\007h\345\215\003poin\354\233\002Cto\223\233\002\351\212\005\336\000\345\213\002,\324\235\002\367doe\347\223\001t cr\373os\306\227\001proce\357ss b\365\240\001ary\267dis\352\205\001en\360\205\001g\345c\333\235\002 \266\236\003\242\224\001wro_ng di\221\000s\313\240\001\352\024\tl\305\204\002s\343\235\002dif\007fer\337\221\001\351\237\002\367\236\003\310\211\001\274\225\005yd\327B""Y\003must\336\236\001\003a \354\237\002h\004\350\237\002\345\237\003\207\232\002\330\237\002\377 Series,\255 \204\226\001%s\363\236\t \223\234\007m{is\202\242\002requ\374\214\002^\256\241\001 key\304\242\001g\212\217\001\270\243\216\002\245\003\346\205\001, 0\354\232\0011\33700)is\366\003dn\315o\341\226\005: \355\236\006\204$is\277 empty\234\241\002.\377_core.mu\347lti\337\240\004\351\227\003to \363im\305\215\001\033\tumat\367h f\023\014tali\203b.\204\215\004\244\243\001\013\003\374\241\002\026\003o\013rd\316 d\237\242\001\047\003\200\242\003\005\004\334\365\241\002?\003sysH\003thgrea\321\230\001W\003wa\352\233\002\366\027\003/_\324\244\005.pxizy\002/\304\000mmon\006\010@\262\244\001\025\010\310\224\003,\002\202\207\005\225hs\325\227\r\377\047ACACCBA\327NDS\000\005_\354\210\001am\362\000\014.\206\243\001\334\236\001_filolACO-\000OS#\006\340\002\006\030\rE\006P\0049\014DAD\332\000\000Dl\005DD\020\024OS\207CAD\002\000 \006\002\007B\rRWADRG\006R`\024X\366\231\001\004\372\231\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\345\230\002S\247\252\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\370\225\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?""\010<\004\017\331nBELT\207\236\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\343\241\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\361\233\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\307\236\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\370\253\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\315\250\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\273\257\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014""\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\216\270\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\362\266\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\313\276\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\345\320\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\346\315\005n\356\315\005.__\376\321\001__\001\r\374\260\325\005\035\theck_o\343pt\366\322\004\356\301\002>\010get`\003\030\215\322\001Z\n\274\323\003\325\277\002_s\330\263\002\322\311\312\002s\220""\010\360\310\001l\240\010re\333pr\236\nst\002\013un\361i\334\313\001\304\010\336\320\006flag\000R\007\250\001\267\324\t\207&\017\007\342\323\002\013\n\332\326\007\370\266&\214\320\001\303&lookb\047ack\324&\301\317\003_m\013\016\004\270Q\013\352\317\004\216Frun\232Fs\000\325 \241\322\n\r\n\261\022/\001\242\325\010>\n\240\330\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\237\313\002\221\325\001IMI\300\000\000\312\266\004\000\007\276\266\013\323\313\t\327\313\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\367\314\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\207\320\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\345\312\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\204\322\001MA_\376\213\322\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007""\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\351\321\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\334\343\001\317\335\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\207\327\001\213\327\002F\000\003*\006O\007CHFJ\024\270\327\003\276\327\005&\t\355U\370\355\327\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\321\350\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\236\330\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\362\352\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323""\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\362\356\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\224\360\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\352\361\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\363\363\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003""\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352""\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245""\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371""\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313""\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331""\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017""\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010""\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004""\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010""\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%""\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\340\237\205\002\233\205\003\302\204\003\000\t\273\204\013_AR\377RAY_TYPE\375S\352\322\002tion__\377call_fun\365c\n\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str_I\304\354\312\002\313\002S\312\004\r\003\333\272\002_S\367ERI\341\000DEFA\377ULTS_PAN\377DAS_DATA\237FRAME\t\005!\004P\217OLAR\022\n\013\003@\004_\367Pyx\001\000Dict\377_NextRef\373__\256\325\001UNCTI\357ON_NP\000S__\363__\306!\003\001nnot\027ate\017\001c\r\004\330+\3064\177_class_\327 \357item:\002opy>V\001deepc\004\005\205\001\016l\000docq\001\267Ay\001\214A\177flags__\207Q\236J\tinit\254\001\214V_\336\226C_mai\237`__\317meta\226\003\344\000mo\367dul\330\002mro_\207ent\331B\375\000\250B\004\001e\375w\212!prepar\312\201\"p\277 v\234\231\002\243!qu""\373al$\005reduc\024\245\"+\000r\301!s\325`B\005\350A\274\326 \220`vers\252\204\002_\357_tes\271\002uni\247cod\342!\207\204\001d\242\245\003s\374\263\212\002\230 s_is_c\377oroutine>\316\000okup_\332`\322\204\003\037succe\351 \353`\274\"\273unR\000id_\001\014s\236\003\013reti\257\000C\001g\000\232\331\003\214\331\001\004\010\316\331\002\030\004\256\330\007)\004\240\331\017\000B\004\220\331\022\024\005\224\331\017x\004\333\000\256\234\010\r\005Mu\203\234\004_p\206\234\002\356\001i\210\321\006Z\374\001r\330\247\003_c\325\332\002_\261$\203_s\332\247\004\237!\377!\030\004\006\016o\350e\014\253Aa\020s\371\234\004a_c\377losea_hiwgha\325`wa_\333\215\001\375a\231\004sa_rea\365l\000\0030\007\0031a_v\277olumea\241@l\307era\245\210\001\000\t\274\204\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016B\003\377ppendarg\376\000\000sarrays\377asciiast\377ypeasync\367io.\331fsatr\356\355#avg\366#bbe\377gidxbitb\377ytes2str\376\357#stickcl\376\224\204\001in_trac\331e\256\335\001\247 ne\252\"co\327lle\214\212\002s\010\000um\237n_sta0\000\222!n>\020\000pydde\371\204\001\266E\374\230\212\002\373\204\005descri\375p\333\212\001displa\271y\367\211\002\221\205\001doc\325 n}t\316\"empty\341\000\374\241\000\347\000swithe\371n\364 \356 efact\367orf\352\000d_ma\260\356\001\006\003\320c\024\001k_\002\007l\217imit)\001!\007\"\004iwrst-\004lag\233\210\002\366\237\210\003lo\214\206\002dictx\275\210\002\342!\306\210\002info\317\210\002<\234!\330\210\002obje \003\255\214\002\020?\003\251\214\005\322\213\001\266\214\005s\220\214\001\250\214\003\253Ch\006\007\370\213\002\257\214\001p\252\340\005sg\346\337\001\366\000\002sh\341\340\002help\366\243\204\001hi\374\255\001ylen\335h\326\264\002iid\304@im\375p\333`_error\177inindex\247\001Pc\t\243\215\003\344\214\001\000\007s\362\214\025i\321\243\003\347is_\203B\356\212\001ske\335y\000\000skw\360ale\277ftbars\205\000g\353th\251\215\002l\325\341\004low\366\000\000er\224Cmaxi\277mummax\356\206\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\273\212\003\377msg""multi?pliern\231\216\001\235\216\001\357dtup\366\000ann\257bdev\000\002d\006\003u\257pno_\361\000s\204\260\001_\010\332)\261`\236\217\003s\006\001\251\217\006\010\003\340\342\002\366\025\001py\302Coffs\277etonre\320\212\001e \350\225\001\354\225\001\342\245\001\226\210\002\360\225\to\272\343\001\372\217\006\372\375\217\014s`\007order\373ed\311aoutou?taroon\374\245\001\004\005\377upoutbea\037rpowe\221\213\001\226\206\003\021\001\367ull\r\005doutofama\002\002st\t\003\377stkoutha\000\304\210\002\005\002\310\210\001\016\002\205@\026\002\300\002\345\213\001\037phase\356\213\002\257\247\002\000\007\375_\325\220\001outjou\036J\002lead\230`(\001\305B\373ba\254\000utmac\360\200\001\003\001\201\204\002\014\003sign\347alo\033\001\227\002max\256\010\002xid\000\006xZ\005m\337iddleH\005in\3063\001in#\004\004\002 \007nu\377svioutnb\277elemen\267!p\365l\016\004p\305\"put_\"\322\217\002o\252\346\002\301\222\002\000\010s\021\003\000\004\365s\242\223\001i\302!quad\237ratur\212!\336\212\001o\205u\343\231\001l\341\t\365\212\001\241\n\206\213\001u\317pper\207$\232$slcow\226A\004\001\207Asm\260\001\374\003\000\217&supert\373re\277\"swing\340\234D\007\002\240C\027\005X\006pan\007das\213\207\002\220\207\002\234\224\002\225\207\007\244\207\002\277spenet\374\213\003p\377ercentil\371e\325\215\003\333\215\003spola\245r\003\000p\350\224\002\355\224\0020\363\224\0021H\362\224\t\371\224\016\312\225\003s\235\225\002\003\000o\275\001?yrange\333\213\001\220\215\001\372\224\215\0010\231\215\0011repl\377aceresul\307tsr\216\000\262\254\001\357\204\001t_\336\377\220\001righ\246\207\002ro\223c1\362\216\003\007\0002\001\006\014\004u\377nsschema\277second\271\004e\003lf\233\226\003\365\221\001\377\226\006\361\214\001\206\222\001\302\211\tp\006\007\306\226\002\245\222\001\304\211\007set\373\221\005\300\245\270\003\242\215\001\263\204\003\272\213\003\277\204\003\256$ki\007p_f\230\213\001\327B\333\213\004\006\003\320$\017lowk\r\010\346\213\005\210a\351\213\002\234\221aR\004low\205D\241\215\001l\377evelstar""\365t\255\230\002s\350\214\001cmet\377hodstdde\255v$\005r2\222\216\002s\372\236\002s\375y\273\256\003talib.\374\244\223\001\005\000thread\377ingtimeS\217tamp\005\001\323\221\003\000\0071\372\013\0072\026\0073to_nOumpy\252\217\001\256\217\001_\334\223\004\277update\000\003_ \351\214\001\355\204\002\331\231\002\253\003\344\224\004v\375\215\003\204\221\003\317warn\000\001\377\272\001wm\375a\326\222\003\200\001\330\004\007\200\377u\210C\210q\330\010\020\377\220\005\220Q\330\014\r\330\377\020\026\320\026+\2501\250\377A\330\014 \240\013\2501\367\330\010\017\035\000\004\013\320\013\337\034\230A\230Q/\003y\220{\003\220\023\004\t\022\220#7\000\037\010\026\220a\330\000\t\000\025\000-\364\000]\235\200 \340\330\002\004\014\320\014\377#\2409\250C\250x\260\377q\330\004\n\210%\210q\377\220\001\330\010\027\220z\240\377\021\200\001\340\004\017\320\017\377#\2401\330\004\013\2101\376\013\001\022\220,\230a\330\004\177\025\220Q\220o\240Q\014\003\367.\240\001\r\002\320\026\047\240\375q \002\320\022&\240a\240mq\017\004-\250#\003\320\022\035\000\377\250\r\260[\300\013\3101\356+\004.\250a+\0042\260!\355\260\016\0059\270x\001#$\360\377&\000\005\014\210;\220a\375\220\231\000\r\210T\220\026\220\373q\230\334Bw\210c\220\021\376\303@\320\017 \240\001\240\023\377\240A\330\004\r\210]\230\377!\2308\240:\250T\260\375\021\013\001U\220\047\230\022\230\3677\240\"\032\001\017\210w\220\337e\230?\250\"\201`\004\016\377\320\016\037\230q\240\010\250\372\252`\021R\000r\230\024\230Y\377\240k\260\024\260V\2701\377\270I\300]\320RS\320\377S_\320_`\320`o\377\320oz\360\000\000{\001\273B\002\004\000B\002H\003\001H{\002I\n\001I\002J\002\207#\367i\230q\234%#;\2701\233\360(fPM\270\324\000\230\200 [\377\320[\\\320\\h\320h\357i\320ix\270\000y\001D\356\267\001D\002K\276\001K\002Q\356\305\001Q\002R\314\001R\002S\334/\220\274\000]\320]\274\000j\320\273jy\372 z\001E\371!E\313\002L\200AL\261\007\226@S\002\355T\362/$%\353\202M\320\033+\337\2502\250Q\330\255l\027\230\377\002\230$\230i\240{\260\377$\260f\270A\270Y\300\277m\320ST""\320T\266`a\277\320ap\320p{\271`|K\001C\270aC\253g\316`J\214@\362\303\205\003j\274\205\001\332\205\003$<\270A\034\354\202M\264\003]\270!\227\200\"\207\20336\212\377b\320bc\320co\320}o\374 \177\360\000\000@\361\204\005\272\353\204\004X\305\206\001X\002Y\314\206\001Y\267\002Z\002\3630\320<\301@Us\360*\261\207K\202E-\300q\243\203\"\367`\320`\376\204\003v\320vw\277\360\000\000x\001G\200\210\001Gt\263\206\005\273\004_\225\210\001_\002`\234\210\001w`\002a\275\020=\270Q\200\203Sw^\2701\360\204\037n\320T\215@\377d\320dp\320pq\360_\000\000r\001A\307\211\001A\306\206\005\365S\325\211\001S\206G\360\000\000Z\333\002[\205O%&\203\206O,\250\367B\250a\305\206\r\030\230\022\230\3774\230y\250\013\2604\260\377v\270Q\270i\300}\320\177TU\320Ua\320a\331`\377q\320q|\360\000\000}\366\316\211\005J\002\307\206\004\360\000\000K\273\002L\212\213\004k\240\021\255\215\005%w=\320=;\000V\3602\246\214%\377D\320(9\270\021\270#\337\270T\320AR\207\214\002V\320\333VW\276\214\"\320\033\317\001m\270\367=\310\001\236\210\013\024\320\024%\357\240Q\240h\353\001\022\320\022\337#\2401\240H\210\215\001\021\220\370\332\022\270\210\003\351\000}\320}~\360_\000\000\177\001N\374\214\001N\257\205\005\272\347df\221\215\001f\002g\230\215\001g\273\002r\237\215\001r\002}\246\215\001}\267\002J\003\343\210\001\003P\003\001P\273\003Q\n\001Q\003\\\021\001\\\273\003g\030\001g\003r\037\001r\273\003x&\001x\003y-\001y\347\003z\003\333\217\003\274$:\320\025\375%\346\217\002%>\270a\360,\212\223\201.Q\215\201(l\226\211\r\234\217\013\207o|~\237\217\005l\320lm\320m\223c\272\234\217\004O\255\217\001O\002U\264\217\001U\273\002V\273\217\001V\002a\302\217\001a\273\002l\311\217\001l\002s\320\217\001s\273\002y\327\217\001y\002z\336\217\001z\333\002{\265k:\220\344\221\001&\047\336\200\214O-\250R\250\371\207\016\031\230\377\"\230D\240\t\250\033\260\377D\270\006\270a\270y\310\347\r\320U\374`\320\211\003r\320r\037}\360\000\000~\211\216\005\314\217\004\221\216\004\335M\207\221\004l\240!\252\223\005&>\363\320>\271\204\001\310\211\001\016\210[""\230\373\001\230\227\222\002V\2206\230\021\323\230!\250\226\001\256\222\032V\220\223\001\r\210\364\271\222\017\247\211\"&\270\007b\320bk;\320k\243@x\320x\315\217\003\273\222\004]T\323\222\001T\002[\332\222\001[\227E\335b\350\222\001b\002c\212\213\017\047(\336\210\217O.\250b\260\237\206\014\021\220\377\032\2302\230T\240\031\250\377+\260T\270\026\270q\300\377\t\310\035\320VW\320W\256\305\211\003s\320s\220\206\003F\222\224\001F\272\221\221\005M\240\224\001M\002N\217\224\004m\020\260\226\007\262\003\264\201K\236\211\0346\1776\262\211\010\355 \371*\232\206V\362$\r\320\r\036\230\007a\230x\256\230\001\000\t\334\201&\227\224\004\377\204\013\255W\254\227\001W\002\304dh\272\227\001h\273\002n\301\227\001n\002o\310\227\001o\373\002p\232K9\220A\200\001\237\340\047?\270q\262\222O\340a\r\371\270\257\224\016\321r^\320^_\320\001_\251\205\003\272\224\003\361\217\004\374\212\004\254\205\004\320\210\006\212\233\003\376\341i?\320?V\320Vm\237\320mn\3604\220\214b\331\003Z\377\300z\320QR\330\004\027\177\320\027(\250\001\250\030\204\233\001\377\030\320\030)\250\021\250(\363\260!\n\013\313\205\024`\320`j\377\320js\320st\360\000\243\000u\242\220\005\365\232\004\263\231\004\\\206\233\001\\\350\274\212\005\356\214\004\304\212\004~\242\233\001~\002I\356\370\214\001I\003Z\377\214\001Z\003`\356\206\215\001`\003a\215\215\001a\003l\356\224\215\001l\003w\233\215\001w\003G\177\004\360\000\000G\004M\003\001\367M\004N\n\001N\004O\004\376\310)\320\013\036\320\0362\260\277!\200\001\340()\207\230O/\367\250r\260\311\233\016\033\230B\230\377d\240)\250;\260d\270\377&\300\001\300\031\310-\320\377WX\320Xd\320de\037\320et\320t\324\225\003\212\224\004\357\207\006\277\360\000\000N\002O\216\235\004n\010\223\236\001\263\237\003\265\000.\231\220b\272\020\340\220\027\323\017\377/\320YZ\320Zf\320\377fg\320gv\360\000\000Qw\357\236\005\351\236\004\315\216\004P\210\237\001P\255\213\005T\376\220\004\270\216\022E\201\221\001E\375\220\005[\217\221\001u[\201eb\235\221\001b\003c\351\220\004|\250$\347\220\006(?\320?W\362 <\265""\227O\356A\034\270]\310\202\233\016\344O\277,\320Vc\320c\266\226\001\320\365q\337\222)h\361P@\320@S\237\320Sk\320k\313\223\003\370\231\006\360\3758\262\202f\035\270m\310=\320\345X\275\204\003u\372\224%\370\204\022d\320d\327q\320q\217\225\n]\237\243\001]\002\335^\246\243\001^\002j\255\243\001j\002\245k\264\243\001k\325\222\005\211dL\230\225\001L\273\003R\237\225\001R\003S\246\225\001S\273\003^\255\225\001^\003i\264\225\001i\273\003v\273\225\001v\003|\302\225\001|\273\003}\311\225\001}\003H\252\207\001H\273\004S\261\207\001S\004^\270\207\001^\273\004d\277\207\001d\004e\306\207\001e\263\004f\265\207\004\277m)*\255\245\037\210\237~\230Q\230c\267\230\001\253\245 \320\357\0330\260\002\323\211\001\021\220\036\376\304\245\007\034\230R\230t\2409\377\250K\260t\2706\300\021\373\300)\354!Y\320Ye\320\177ef\320fu\320u\272\223\003\360\300\245\004\316\227\004\316\205\006\322\247\006\330\004\026\220\377f\230J\240a\330\004\010\177\210\007\320\017\037\230q\222\250\001\007q\230\006\374\247\001\210\250\003\256\200!\363\246+\312\006<\224\247\013\265\034\360\000\000v\314\234\005\266\037~\265\004A\320A[\320[\215 \347v\3600\373\227V\235A-\270\177?\310o\320]^\330\310\252\001\252\251\001\367\030\250\021\000\t\330\004\021\220@\240R\372\210\006\335\223\004\366\237\004\250\236\004\261\225\004c\222\251\001uc\320\220\005v\240\251\001v\002|\247\251\001\225|\200\233\005H\204\233\001H\335\204\005\346\210\032o\333\240Q\347\253\001;\220\222\253\001*+\336\363\245O1\260\022\260\242\240\016\035\230\377b\240\004\240I\250[\270\377\004\270F\300!\3009\310uM\332\212*Q\377\252\003\320\026&\253\204\001\356\244\255\003+C\300\265\252N\320\0332\337\260\"\260M\300\366\252\016\036\230\377r\240\024\240Y\250k\270\377\024\270V\3001\300I\310\377]\320Zg\320gh\320\037ht\320tu\233\204\002\273\251\004\263\214\004\314\226\224\004\243\210\013_\002\276\256\007\352\256\005,-\336\370\250O3\2602\260\271\251\016\037\240\377\002\240$\240i\250{\270\377$\270f\300A\300Y\310\035m\224\2541\320\026(\322\256\001\251\260\003\272\000\374""\242\246\036\354\210\004\024\240^\2601\260qC\201\261\001\326\210\"\275\004\020\220\016\262\227\005\006\000\010\021\220\252\200!\377\244\004\271\243\004\314\217\004\325\223\013]d\360\257\001d\002m\367\257\001m\246\237\005\235t\205\260\001t\002u\356e\354\002\025\317\220V\2309\203\261\001\244\211\007\026\220\237a\220v\230Q\252\262\001\002\027\013\267\210<\220\261\262\00101\340\254O7\373\260r\242\260\016\320\021$\240B\377\240d\250)\260;\270d\377\300&\310\001\310\031\320R\224\344\261\003\233\241%W\347\205\005,\310\262\001\223\264\0034\3355\237\256O;\2702\240\231\016\320\021\377(\250\002\250$\250i\260\377{\300$\300f\310A\3109Y\234\221\002\250\2503\320\0260\365\236\001\326\265\003\374\236\247\003\255\263\t\n\210+\220Q\220\265a\323\264\0056\317\247\001\007\200\334\264\034\030?\270\032\3003\300a\346\264\030\243\263\"\177[\320PS\320SY\212\225\002@\373\222\003\200\247\006\346\242\013\262\241\004\202\247\004\216\204\031\220\232\265\010\260\215\251\001\232\233\002\327\255\t\227\200V\035\300\323\252\016\026a\220\345\266\r\337\020\345\244\002\316\230\013Z\002\230\254\004\257\360\000\000[\333\222\005u\227\267\001u\272\357\214\005B\364\250\001B\003C\373\250\001C7\003D\003\221\267\016>?\314\270\n\225\202O\376\204\264&k\320QT\320TZ\337\320Z[\320[\312\224\003r\320\017r~\320~\261\261\003\272\250\004\354\004\263\250\004\004\344\252\004\311\240\004i\254\261\017\351\246\003\352\203[\251\264(\321\017\324\207\204?\247\266\010>\237\205\001\360\212\200a_\270\271A\334\267\037\302Ls\320s\241\200J@\035A\206\276\n\014\210K\213\276\003\366\275\003\367\207\047\3515\232\260\001\275\252\027Q\304\200\"V\320VN\243\273\003f\320f\214\242\"\245\224\004i\305\276\001\001i\225\232\007\365\271\016\343\000\345\207/\253\262\006\341\257\014\363\211\032\373\320\033\375\255\004\023\320\023$\240\367A\240X\336\273\001\021\320\021\"?\240!\2408\2501\227\226\001\376\255\017\207\013\320S\312\200.\352\247\022\351\257\004\234\240\004O\356\253\262\001O\003U\262\262\001U\003V\316\271\262\001V\003W\205\262\004\313\256\004?""\230>\201\244\001@X\320XY\223\204^\232\260\001y}\342\204\017\356\037\360\000\000t\252\246\014h\331\233\013\231\236\004\201dp\324\302\001p\002\264\230\004\035w\342\302\001w\002x\270\260\017\253\232\001\204\303\003\232\352\271\004\177\215\303\001\177\002\277\242\004\301\246\004h\036\313\246\001h\004i\004\354\250\n\217\212Q\315\252\002\377\320=O\320Of\320f\300\240\301\003\220\244\004\345\253\004\375\231\006\245\300\r\311\257\017\033\320\377TW\320W]\320]^\037\320^g\320g\366\250\003\346\273\004\307\240\004\335q\373\304\001q\002G\321\266\001G\003\335_\330\266\001_\003s\337\266\001s\003\335J\300\250\001J\004K\307\250\001K\004\335W\316\250\001W\004X\325\250\001X\004\335g\334\250\001g\004r\343\250\001r\004\335y\352\250\001y\004\177\361\250\001\177\004\273@\005\233\276\001\005A\005\261\253\016B\371C\302\214^\320\250$+\320UX\320\035X\215\255\003h\320h\254\236\002\224\247\001\314\302\004(\324\305\004\275\274\004\363\242\004e\247\307\001e\362\242\005\345\266\004\211m\204\251\017\340\003\r\274\211\007\227\265\006\307\310\0017\375\240\376\264\037U\260(\270*\300\351F\306\246\001\232\2112%\332\274\004{\320R\300\230\200K\312\304\010\311@\201\311\013\331\n\254\224\0476\310\000\300\312\024\356\274\003\244\276 \225\200N\333\276\010\340\003\303F\214\215\014\352\242\202\047E\255\20065\251\272\004\013\320S\000\344\203K\332\t\366\212\002\371\275\t\207\230\033\300\235\033\375\214\034\225\260\001\375\033\362\220\001\023\220>\240\021\240\377(\250!\330\004\022\220.7\240\001\240\276\244\002\021\220\223\260\017\237\206\014\007s\320s\374\306\003\353\303\004\232\260\013\250\252\004\247\206\004\250\332\210\004\370\212\006\355\305\001\002\276\226\004K\307\300\001Kt\215\215\005\275\300\004]\334\300\001]\003^\261\256\013\306\235\215\003CD\202\226^\366\251\004\212\250\035;\320\357VY\320Y\306\320\003i\320i\200\302\307\006\215\317\004\322\315\004\377\274\004\304\307\004\317\302\004\260\210\006\360?\000\000m\002n\002\222\252\010\211\323\0038\327\014\273\222Q\365\274$\033\320T\230\200K\260\275\010\000\311@""\260\264\t\360\235#\237\306!\374\222\034\327\255\004\247\270#\345\255\017\320\305\2021\221\274\004\311\234\004\307\252\004A\304\306\001A\003t\254\260\004\357\204\004c\331\306\001c\003d\340\306\001wd\003o\347\306\001o\003z\356\306\001uz\207\217\005P\326\270\001P\004Q\335\270\001\317Q\004R\004\263i\310\270\010CZ\277\320Zq\320qr\316\306\n\016\223\210k\232\303\003\252\227-7\361\214\027\350\312\001l\007\270,\300\203\213#\251\205\t\274\251\003\372\326\004\345\304\013\320\277\317\013\337\276\004\320\306\004\311\306\004@\204\311\001@\0032\300$B\320\310\013\322\331\001DE\254\327\001\336\212Z\372\304\303\034U\335\272\004+\320UZ\320\375Z\267\324\003j\320jw\320w\000\273\327\003\370\325\004\346\303\004\313\310\004\352\317\004\365\312\004\235\250\004\330\300\006&\204\277\016YZ\340\240\023\264\233\016\025\361\262\001\301\244$\037h\310j\320X\264\224\001\263\332;\337\244\014\377n\320ns\320sy\320\001y\364\332\003\270\331\004\252\331\013\336\266\004\366\321\004\321\302\004\302\312\004Z\353DF\375\314\001F\003\254\225\004H\367\242\017\001Y\211\321\003\303\333\006\225\317\n\365\246\006\371\200%\311\207\047\222\201!\037M\270\034\300Q\243\301%\255\245\036\265:\320\372\215\013\314\317\004\311\301\013\315\245\004M\317\317\001M\003\370\341\207 \205\230\004\364\207\006\360\000\000R\004\255]\350\301\001]\004\235\232\004x\366\301\001x\213\004~\375\301\001~\211\230\007\305\336\t\357\301\010Z\371[\315\203o\220\2465o\320ot\320\017tz\320z\370\333\003\266\335\004\350\336\006\261\335\002\340\250\327\013\212\310\004\373\317\004\353\212\004\260\204\006\360\000\000\017H\003I\003\236\334\016\221 \253\252\022\201\204. \237\241\022\275\206\034\211\336\006\260\241\t\273\241\n\220\214\336\017\342\250\014\320\351\200=\333\206\004\307\276\004\227\204\004X\364\324\001X\003T\233\215\004\224\215\004u\211\325\001u\315\276\005w\276+\376\321\241\003Zr\360\000\000s\001\214\237\342\004\322\271\004d\002\222\273\n\333\2067\251\2017]\033\270-\374\330\002\330\004\235\315\t\236\201I\273\334\004\n\216\325\004{\345\345\001{""\275\273\005\267\273\004\312\311\004\316+t\243\301\004\367\217\004p\354\327\001p\003{\363\327\001w{\003F\324\311\001F\004R\333\311\001\365R\205\240\005Y\351\311\001Y\004Z\004\204\355\341\n\362\315\003Z\354\312\003\257\326\004\274\236\004\335\242\004@\307\003\3606\200\350\010\241\211w\201\344\003_\270_O\310?\320Z\235\345\001\330\275\354\005!X\266\275\002\313\354\003\000\t\023\002\021\323\2045\330\276\013\360\331\332\004\212\223\004\313\332\013\205\231\006\360\000\000^K\003m\370\332\001m\321\332\005\275\304\004B\347\314\001\027B\004C\356\314\001C\343\314\005\214D\224\212\004\325c\212\315\001c\312\304\005o\230\315\001o\004\325z\237\315\001z\241\212\005D\261\243\001D\005\275E\270\243\001E\005F\005\270\345\n77\220\047\230\264\354\001[\\\272\211q\247\337$\277{\320RU\320U\241\352\003e\377\320ep\320pu\320u\207{\320{\321\337\003\313\326\004\331\301\013\324\342\006\360\017\000\000a\002\254\250\004\242\205\004\351\263\004\233\205\013\215J\325\223\017\\]\316\213q\276\333$\306\254\014q\377\320qv\320v|\320|\000\350\333\003\361\344\004\353\323\013\304\335\004\245\332\004\231\250\004\364\303\004\366\265\004$\200\322\004\203\340\004K\277\254\013\315\360\001\\\337\316\003\214\355\004\304\307\340\004\247\226\0072\260\206B\250\2143\232\336\001\177\270\037o\310_\320\\\266\334\001\243\306\031\203\257\036\000\2713\214\340\004\247\250\004\320\277\004\260\270\004\214\314\013\350\252\004\301\324\004\350\340\232\013\317\206\004\223\314\004I\313\324\001I\004T\256\322\324\001T\004_\331\324\001_\374\252\005m\356\347\324\001m\004n\356\324\001n\004o8\335\324\004\246\337\004\356\306\003]^\360\326\216y\203\336\004\217\020\320\020!\351\243\005\200\262\013\232\255\036r\037\320rw\320w\254\345\006\247\363\004\366\342\013\036\325\337\006\360\000\000c\246\345\014\257\217 \325\211\004z\365\255\004t\342\345\001t\003u\003\371\331\n\002\317\302\003]\275\324\003\321\303\007\361\221:\325\365\014\343\277\003\204\222\036>\331\340\001\016\270n\310A\325\257.\2653\360\301\345\004\223\305\004\357\331\013\244\216\007""\000\000@\003\320\312\264\004\375\331\004\366\331\004\362\347\004h\230\350\001h\003Ki\003\253\334\016]\344\355\003\243\225\007.\211\206x>\226\343\001\017\270\177\310a\241\316\031\335\2034@\231\340\004\273\352\004\345\242\013\265\300\013\237\324\004\351\250\004e\323\352\001\027e\003k\332\352\001k\276\334\014\333\216\004\211\263\004\230\353\242\023\216\344\004\336\316\003^_\342\230q\305\2623s\037\320sx\320x\225\301\006\373\372\004\321\352\004<\347\342\004\254\226\007\000\000d\002\206\337\013\204\333\0040\305\253\004\253\227\006\310\375\003\241\335\010_`\366\232q\231\2533?t\320ty\320y\327\255\n\211\361\004\300\370\344\004\346\365\004\302\314\004\335\213\013\272\271\004\260\231\022N\003\004\335\253\016\225 .\376\224\204\315\251K\201\201A\251\276\022\343\343\013t\274\333\004\370\225\004D\364\343\001D\004O\373\343\001wO\004Z\202\344\001Z\004j\211\344\001wj\004p\220\344\001p\004q\227\344\001Wq\004r\242\252\025a\235\245\002,\334\230:?\250\016\260a\260s\231\374\001\346\333\t(\265\213$\206\325\006\321\364\t\017\300\334\002h\266\333\001\225\334\001~\212\325\r[\320X[\320[\305\366\003?k\320kv\320v\235\376\003\334\346\004@\243\376\004\342\377\004\235\373\004\330\364\013\256\362\004\242\221\013N\351\364\001\303N\003\314\342\022\206\231\004\374\236\004\3622E\004\336\356\325\n\320\013\033\230\226\253\001wx\234\223\251\036\276\271\014\025\240g\300\303\001\220\251,e\037\320eo\320o\211\334\001\242\317\023\273\243K\000\267\345\004\213\365\004\307\351\004\265\341\004\276\345\013\344\324\004\264\255\013\312\367\004\370\305\345\004\276\345\004\310\216\006\360\000\000i\003\355j\232\244\017|}\261\373\n\013\210;\277\220a\220q\330\004\315\251\027\026\303\240u\235\371\001\350\321\007\210\341\023\355\321\0014\300\377x\310z\320Y\\\320\\\227d\320d\270\253\003t\2625\300\332\001A\370\361\335\001\252\341\010\257\332\017[\320X\\\320\375\\\357\365\003l\320lw\320w\000\366\303\003\264\375\004\376\257\013\325\367\004\257\364\022\370\343\004\325\367\013\214\254\013\250\345\306\004\370\343\004\224\221\004n""\272\372\001n\322\262\005p\375\003\212\333\016\360\004\000A\002B}\002\317\200\2046\260b\270\001\310+\377\320\021#\2402\240T\250\377\031\260+\270T\300\026\300\377q\310\t\320Q\\\320\\\367`\320`\333\352\003p\320p{\003\320{\330\374\003\324\260\013\354\320\013\351\306\004\317\302\004\354\374\004\000\274\362\004\345\374\004\360\356\004\340\233\006\210\377\001\366\356\005\340\352\004\360\356\004\210\354\374\004\265\226\006\354\335\004+\352\312\001\247\355\002\325 C;\002D\320\200\2058\270\002\220\375\001\327\346\t\377\320\021%\240R\240t\250\3779\260K\270t\3006\310\377\021\310)\320S^\320^\377b\320bh\320hi\320\001i\234\373\006\333\334\004\267\363\004\220\375\004\267\361\013\301\323\022\345\307\004\200\301\226\013\327\251\013\301\377\004\371\267\004\246\204\004\203\231\006\270\362\001\003\345v\254\204\005-\322\315\001\324%D\002E\276\254\203\2059\270\022\2701\244\204\r&\377\240b\250\004\250I\260[\373\300\004\324\306\001\3109\320T_\037\320_c\320c\352\246\001\225\364\002\363\372\003\000\214\364\004\345\377\004\306\374\004\334\256\004\201\354\004\355\367\013\360\320\004\250\364\004\340\207\270\013\321\261\004\276\214\004\333\226\013\245\254\031\320\026.\373\250a\344\376\004\360\004\000E\002\275F\210\206\205:\270\"\270\327\211\014\320\377\021\047\240r\250\024\250Y\377\260k\300\024\300V\3101\377\310I\320U`\320`d\377\320dj\320jk\320kx\315\364\006\325\312\004\216\266\007\000\000J\002\325\312\013\370\267\323\022\375\366\004\341\272\006\360\000\000B\003h\223\217\004\330\321\004\335\356\004f\234\367\001f\003\254\254\004t\344\356\004\213\367\004x\344\211\005/\250q\322\047\013z\001\266\262\007(\355\253\034\255\216d\352\3215\307\246\023\000\230\264\004\312\275\004\321\271\013\267\375\004\341\335\004\323\335\013\261\324\004\207\254\004\272\222\320\004j\374\371\001j\003q\203\372\001q\272\343\371\005x\221\372\001x\003y\366\246\016\360\277\006\000\005\017\320\016\201\377\001q\377\330\004\007\200x\210s\220\377!\330\010\t\330\004\t\210\377\021\330\004\022\320\022\047\240wq\250\004\353\343\001""\025\220Q\360\204\002\273\200\001\036\024\017\210q0\004\020\337\320\020%\240Q\212\353\006\360\n\367\000\005\0269\002\320.@\300\337\001\300\027\310\001\315\314\001\020\220\375\001\337\360\001\005\210V\2201\220\337E\230\021\330\010\251\256\001\001\230\377\026\230q\240\005\240W\250\371A\217\327\001q\002-\320->\270\363a\270\213fH\005/\320/B_\300!\3001\300\234\242\002Q?\014\377\016\210g\220Q\220f\230\177A\230U\240\047\250\021\300\311\001\365\025{\010\021\266\206\005\014\000\005\020<\267\001\215\000\220\031\230!\307\347\003\t\001\274\034\003\202\362\002\210q\320\020\275\355\002\340\377\004\022\220)\2301\230A\374\020\004\276\003\016\220a\330\010\020\373\220\013\024\002\010\013\2104\210\377z\230\021\230\047\240\021\330\377\014\024\220A\330\010\014\210\377G\2201\320\024$\240L\177\260\001\340\004\r\210Y\374\221\003\327\007\200q\025\004\220K\002\t\220\375\021!\010G\2506\260\021\260\375!\217%\035\240g\250V\260\3631\260L\000\244\003&\240\001\240\276\262 \013\2105\220\t\256\303\002\014\377\020\220\002\220%\220s\230\177%\230q\240\001\240\024\247\214\002\1777\260\"\260G\2701\332\356\002?1\340\004\016\210i\263\334\003\330@\377,\250D\260\t\270\021\320\277:L\310C\310q\304\n\n\376\202a\013\2107\220#\220Z?\230t\2401\330\014\374@\244\005\337I\230R\230q\303\001W\220\377A\220T\230\025\230a\230\351q\247\346\001\013\001Q\220%\003\2202\373\220U\313 1\330\004\024\220\337D\230\005\230Q\271\364\003:\220\371Q\277`\361 \022\220\037\240\001\377\320!3\2601\3204D\263\300A\357\275\001\336b(\250\240 \005\254\313!\322\001$\230\327 \021\223B4\376\205\365\001\030\230\t\240\021\240$\335\240\355 \032\230+\342`d\250\375(\240!\026\220c\230\021\230\376)\002\032\230#\230Q\230d\213\240!\263\365\001s\316@6\000l\004\320\377\021*\250!\320+=\270\377Q\320>N\310e\320S\357T\320TU\364\356\0042\260!\237\340\004\013\2109\317\002\230b4\377\210q\220\003\2201\220G\275\230\362\347\014\210t\2208\201`H\177\240A\330\t\021\220\023\336A\363\017\210\217 \261\002\001\330\010\030\377\230\013\2401\240D\250\010\373\260\001p\006+\2501""\320,\377>\270a\320?O\310u\216s\000\320UV\355\357\004\377\000b\024H\347\230F\240\222\000\364\350\003\025\220d~\326@x\240x\250y\270a\000\335\017\202\0001\220C\202\340\001\340\004\234q\005\225\317\001A\230T\242\317\001\351\006-\373\250Q\362\205\002\320AQ\320Q\347V\320V\325\375\001\347\360\0045\260Q\256\334\024J\230f\317\355\001\024\\\002\004\377\320\034.\250d\260&\270\177\002\270\047\300\024\300Qf\007n\203H\020\220\004\346\204\001\020\220\255F\375\031\315\206\003\021\200\001\360\020\000\377\005\010\200u\210B\210a\373\330\010\242\207\002\013\2101\210A\377\330\014\020\220\005\220_\240\265F\220A<\375\363\001\330\014\323\0012:\236b&\347\211\201\230?\250\232\377\016\274\3024@\343\372\004\274\307\004\266\353\004\374\232\004\323\225\013\345\302\031T\273\375\001\tT\331\225\005\314\367\004\\\331\351\016\265\234\205\244\360\002\305\373\013\377\030\230\022\2304\230y\250\007\013\2604\371\331\007\364\266\037\230\363\004\252\366\022\214\352\013,\235\363\006\210\225\001\002D\354\377\001D\213\255\005\326\342\004\010\262\324\023\312\330\007\373\303s1\265\350.\331\304\023\257\374\004\350\304\013\000\246\267\004\312\365\004\303\365\004\201\345\004\357\277\006\201\347\r\205\306q\323\225\002\000\370\377\013\305\2634\327\313\004\365\263\013\233\340\004\365\344\004\356\344\004\276\234\013\023\177\002\206\342\r\241\253s\001\346\354\r\312\324\036\373\253\027@\264\364\004\216\254\013\313\360\004\352\313\004\274\316\004\275\263\013A\375\253\016\004\252\362\025\376\245\016a\315\223\001\217\366\"\307\320\002\345\343\001\354\245\025\370\250\367\002\301\332,\204\313\001\360\000\000{\001\350\244\243\022\340\250\004\214\3246o\360\303\002\2101\2009\001\214\334`\327\202/j\320j\347\334\006\307\350\004\010\376\314\004\322\252\004\367\314\013a\321\334\016\254\246\204\204\233\002\367\241\t\034\344\340\023\334\336\tt\320t\365\273\020\240\350\004\310\231\031\320\227\361\004\365\332\013\234\357\004\370\321\004W\335\370\001W\003\346\344\306\013_\003\271\264\r\351\250\2041\260\021\376\337\251\014\035\230b\240""\004\240I\357\250[\270\004\214\227\0029\310K\203\320W\206\257\014\277\264\024\364\330\004\377\372\004\210\306\013jB\227\373\001j\356\352\005\272\343\013\260\355\004\335\361\004Y\236\373\001+Y\003\310\301\013a\333\251\005&\251\233\007\362\222\t\322\266\253y!\277\253n\256\355\004x\353\375\001x\002@\321\331\004\205\317\004\362\313\004\322\276\004\216\304\004\331\276\004b\226\254\020\366\300\200\2033\260\335\246\014\220\037\240\002\377\240$\240i\250{\270$\377\270f\300A\300Y\310k\377\320Y]\320]c\320c\377d\320dm\320mx\320\001x\202\264\030\272\276\004\271\261\004\307\303\013\255\346\013\357\256\013\304\321\004\325Q\354\366\001Q\234\264\023c\347\256\005(\250\331\001\327\246\005\206\203\2034\260\305\246\016!\240\377\022\2404\240y\260\013\270\3774\270v\300Q\300i\310\377{\320Z^\320^d\320\377de\320en\320ny\003\320y\325\315\003\246\362\013\206\353\004\273\342\004\206\353\004\263\276\013\000\307\340\013\232\223\013\316\313\004\242\311\004\215\353\004\206\367\004\225\345\006\317\266\004w)\250\021\271\200\2135\260Q\235\261\r\377\"\240\"\240D\250\t\260\377\033\270D\300\006\300a\300\377y\320P[\320[_\320\377_e\320ef\320fo\037\320oz\320z\211\316\003\256\353\013\326\371\004\360\245\271\004\326\371\004\343\276\013\215\343\006\360\000\000o\251\002\323\326\013\325\355\004S\373\373\001S\305\336\023e\312\366\263\005*\377\356\001\013\337\217\016\323\265w6\260\361a\202\263p\254\374\004\330\372\006\360\000\000}\301\002\231\352\004\224\235\004\306\266\004\231\352\004\255\306\004f\003\334\334\263\017\335\212\2037\260q\255\266\r$\240\377B\240d\250)\260;\270\377d\300&\310\001\310\031\320\377R]\320]a\320ag\377\320gh\320hq\320q\007|\320|\330\362\003\221\350\004\252\374\004\377\374\004\207\271\004@\237\350\004\265\276\013\355\376\004\315\374\004\266\266\013\335\343\004U\345\374\001\371U\341\374\005\270&\360\000\000f\003\021g\206\271\005\324\236\002\204\203\2118\363\270\017\306\265d\251\346\004\000\202\271\004\261\335\004\217\301\004\332\273\004\270\323\004\365\260\004\201\316\006\363\300\004\034\233""\266\010\361\217\2039\270\021\246\265t\271\357\004\272\320\022\020\366\225\004\263\320\031\211\266\n\275\222\203:\263\273\017\246\265d\247\303\031L\243\346\004\247\303\031\320\026\373\265\010\211\225\203;\243\273\017\377(\250\002\250$\250i\260\377{\300$\300f\310A\310\377Y\320Va\320ae\320\re\266\333\001\320l\272\364\003\375\374\004\362\372\004\240\316\004\000\307\364\004\362\372\013\326\325\004\303\230\013\303\247\013\326\270\013\305\223\004\321\230\004\210\225\367\004\227\346\004\204\266\004k\272\303\005\301\240\002\376\215C\320\177\017 \240\001\240\023\240\207\330\020\000\346\305)\367\301\002\272\375\013\245\353\022\246\342\014\220\363\020\266\347\004\307\375\004\000\237\233\004\220\306\004\365\320\013\347\377\004\304\345\013\334\371\004\204\221\004\237\233\004\006\271\330\004[\003\372\247\032\234\3101\370\200D\357\243%\316\367\t\007u\320u\271\325\020\377\377\004\210\242\022\270\300\004\336\235\004\000\224\374\004\262\250\004\342\365\004\313\230\004\371\355\004\310\310\004\262\340\006\300\323\r>\201\370\n\r\210T\220\026\215\267\003\320\312\035\371\021\213\315\025\366\227\"q\320P\\\320\377\\]\320]l\320lt\033\320t\351\307\021G\002\230\227\033\227\022\364\204\024\371\021\377\370\026\256\262 Q\300l\320R\377S\320Sb\320bm\320\035m\313\363\004\320{|\226\365\t\353\246\016[@\334\363\364\001\343\256 a\300|\266\270\002c\320\357cn\320n\274\351\004\320|}\270\242\256\032ZB\253\262\"q\310\014\334\270\002d\337\320do\320o\307\350\004\320}\201~\223\375\003\317\261\024\371\200B\353\310\002\341\263\013\220\347\017\001\177\310\034\320UV\320V\373\353\003\016\255\344\004\320~\177\262\376\003\216\346\004\311\252\r\230\202B\356\266\260\"\021\310,\240\272\002f\320f\227q\320q\354\335\tA\372\257\033\273\203B2\371\260\337\270\016\221\322\017Q\310l\320Z\377[\320[j\320ju\320\ru\316\237\021E\002\244\321\017\305\272\t\347\204B\323\243\002\374\317\267\013\307\243\017a\310|\320[\\.\305\353\002v\320v\262\236\021F\356\207\005\334\242\024\230\223\206B\271\242\002\374\270\n\320\021\255\242\017\230\211""\tw\273\320w\371\210(\r\210K\322\302\003\r\335\210\213\331\n7\240!\346\261\036U\260G(\270*\357\315\001\351\330\027\200\270\030%\274\272\0077X\320X\302\262\001\320_\210\321\003\322\331\001\037\360\000\000w\001\322\362\004\345\357\004\323\310\022\203`\002\353\267\016\340\312\t\307\014\201\302\014\363\220\0306\373\310\021\241\2002$\260f\270A\377\270Y\300k\320QW\320\177W]\320]^\320^\371\235\003\207t\320t\320\223\003\326\377\004\335\353\004\204\274\022_\020\301\022\243F\237\377\014\202\202\047E\237\2004\241H(\253\376\253\277\0325\270\006\270a\270y\017\310\013\320S\277\203@\373\276\010\205\362\t\337\217\032\377D\320(9\270\021\270#\341\270\335\377\014\231\221\026\334\320\002\214\301\t\022\320\022_#\2401\240H\364\335\001\021\322\264\020\377!\310<\320WX\320X?g\320gr\320r\352\347\r\256\342\004\014\322\354\004\351\324\022j\002\342\351\n\201\312\003\207\200W\366\263\003\177\320\021\"\240!\2408\336\332\001\366\235\344\t\021\220\367\263\017A\310\\\320\003YZ\326\376\002\207\223\024\261\331\013\316\326\004\206\334\004\316\244\006\014\306\343\004\303\263\004=\230\375\311\001\300\370\t\362\2269\335F\357T\320AR\233\223\002V\320V\367Z\320Z\345\233\003o\320op\376\300\343\001]\230!\2308\240:\207\250T\260\362\340+\345\307\003\365\365\t\201\366\t\017\342\354\232\003\030\313\255\001\213\366\013\372\307\022T\320T\371Z\236\216\002\376\221\003r\320rx\320\177xy\360\000\000z\001\341\346\004\000\265\254\004\346\375\004\350\346\004\327\266\004\276\356\013\245\247\013\234\373\004\305\356\004\350\372\307\022\334\326\004\374\323\004z\243\366\001z\003@\356\233\371\001@\004A\242\371\001A\004L\256\251\371\001L\004W\260\371\001W\245\371\005e\256\276\371\001e\004f\305\371\001f\374\351\005|\376\323\371\001|\004F\005\360\000\000wF\005L\003\001L\005M\n\001\357M\005N\005\204\226\n<\220|\337\240;\250a\200\354\321\002A\330?\014\023\2206\230\021\000\004\003\010\3477\230!\030\001\000\0048\2301\334\003\010\025\0045\230\0014\010;\230\035aI\001:\230QP\001*\004X\000\374e\001\313\321\002\330\014\r\33046\377\260d\270!""\2705\300\001n|\001\017\210q\000\004\220\007\354\321\001F\016\003t\220V\000\003\005\276\317\001A&\003\277u\220A\220S\2302\004u\277\220B\220d\230!@\003w\257\220a\220t\314`1P\002\320\375\017\323\325\001d\250&\260\001\260\271\021\343\001\356\315\004#\2401\340\323\001N\376\365\322\001\330\014\033\2305\240\014\377\250A\250[\270\001\270\021\374\316\315\001\210\324\001.\250\001\330\020\024\377\220H\230A\330\024,\250\375G\304\323\001\340\020(\250\007\250\353q\260\310\317\002qB\n4\320\047\177B\300!\360\006\000\t\226\325\001\177\010\014\320\014\034\230A\200\323\001\277U\230-\240q\250\232 \017\377\210\177\230g\240U\250!\373\330\024\271\327\001x\240q\330\020\337\031\230\026\230w\202\352\001\250a\237\330\021 \240\007\301\347\002\021\013yo\250\002\250\047\321\324\002\014\020\224#\362\231\325\001M\300\323\001\247\325\001D\320\030.\237\250a\250q\330\026\005\177\001\023\377\220$\220l\240\"\240A\377\330\010\013\210:\220Q\220\374\244\312\001\332@5\230\010\240\005\2401Q\256\317\003\232@\256\320\002\020\027\255 \233\326\001\357\014\021\220\030\214\323\003\230v\240\377Q\340\014\020\220\003\220:\357\230Y\240a\327\350\002\020\025\220\337X\230Q\230j\371\005\r\320\357\r\036\230a\313%H\230K\357\240q\250\013\347\325\003\013\2106\317\220\027\320\030\264\263\001\310\326\002\r\023O\2207\320\032\212\266\001\330\326\001\340\215\004}g\232`\013\022\220!\330\033\001\374\335a\242\327\002\330\020\021\330\024 \377\240\005\240[\260\004\260A\357\260V\2701\373\320\002\200A\330\377*A\320AX\320XY\337\330\010!\240\035\356\002\010\035\336\335`\010\"\240,\010\003\032\230\375,\251\000x\250q\330\010\036\377\230o\250Q\250h\260a\377\330\010\034\230G\2405\320\277(<\270A\270[\341\231\002\330\377\010\"\320\"3\2601\260wH\270A\254A*\250\021\016\002\3758\371A\270(\300)\3106~\275\220\002Y\320Ya\320a\326\271\001\037\360\000\000y\001\356\346\004\213\344\004\257\341\013\300\372\333\004\201\274\004\230\371\004\353\261\004\230\371\004\316\315\004E\003\376\217A8\2203\220a\330\014\377\037\230q\320 :\270)\377\300<\310y\320XZ\320""\357Za\320a\314\272\001\330\010%\377\240^\2608\2701\270A\377\330\010\016\210k\230\027\240\365\001\003\003\021\211\323\001x\220|\240\3772\240X\250Q\200A\330{+,\333\2001\250\017\260q\216\325\001\362\373\013%\254a\225$A\260X\270\377Y\300f\310F\320RT\377\320T\\\320\\h\320h\300\276\222\006\312\353\013\253\377\004\370\360\004\265\261\013\205\336\004i\002\276\346\r5\260Y\270l\210\347\001U\337\320U\\\320\\\305\310\002\010 \317\240\t\250\030\273\332\003\242\200Q\320(\\\336B\360M&\240Q\216b4\354`\377Q\260h\270i\300v\310\377V\320SU\320U]\320\017]i\320i\213\226\006\350\362\013\224\350\004\327\302\004\370\215\350\013\367\243\006\335M6\260i\270|\376\243\346\001V\320V]\320]_w\320_`\313\204\001\032\2508\241\334\003\324\241\200S\345\221\001!\347\204\r\047\215\333\001\"\320\377\"5\260Q\260a\260x\377\270y\310\006\310f\320T?V\320V^\320^\201\311\t\373\274\013\340\257\347\004\270\357\004\250\347\013\314\304\006\324\204\r7\260y\373\300\014\276\345\001W\320W^\320\377^`\320`a\330\010\"\317\240+\250Xy\001\216\204S\320(\347:\270!\272\207\001\340\206\013(\240q\376\374\206\0026\260a\260q\270\010\377\300\t\310\026\310v\320U\377W\320W_\320_k\320\037kw\320wx\353\206\002\252\274\013\312\346\004\350\371\363\004\303\346\013\257\361\004l\324\204\0168\270\t\373\300\034\334\255\001X\320X_\320\375_\304\367\001\330\010#\240<\250\351x\371\205\003\217\204S;\262\207\003!\320!72\260!\302\207\001\330\010\002\007\235\214\001\327)\250\001\377\210\0027\201\207\001\270\030\377\300\031\310&\320PV\320\377VX\320X`\320`l\003\320l\360\220\006\333\360\013\361\256\004\357\300\013\243\353\004\263\363\004\300\356\345\004\333\360\004\302\327\004\342\360\004\213\356\006\362\210\r9\270\377\031\300,\310i\320WY\337\320Y`\320`\304\364\001\330\010\377$\240M\260\030\270\021\270\375!\356\210\021y\230\014\240B\240\377h\250i\260|\3002\300\033X\310\320\2107\320(\250$\206\213\013\335\200C \215\261\013\336\305\006\276\200?\300\212?\213\215\003Q\333\214.\301\376\002\000\237\323\001\271\275\013\234\336\004\202\352\004\366\364\004\307\367""\004\217\305\006\366\213\201\177\320(=\270Q\270a\364\216\r\363+\250\232\211\003\245\211\002\2708\3009\372\365\214\001X\217\216\002b\320bn\320\017nz\320z\365\376\003\222\364\013\220\374\004\356\366\004\360\364\376\004\210\314\004\277\304\006\342\216\r;\2709\300\377L\320PY\320Y[\320\357[b\320b\370\307\001\330\010&\017\240o\260X\226\003\247\214S\362\004\327\217\001\360\363\220\006\271\200<\210\376\004\275\2008\340\010$\240\367F\250*\237\352\001\014\210E\220\337\025\220a\220z\200\353\001\033\230\3411\306\346\001\264\200`\241\355\003\205\223\014,\2501<\242\223\002\276\213\002\270H\300I\216\217\001\253C\377c\320co\320o{\320\001{\241\313\003\306\365\013\345\341\004\345\322\004\336\341\004\272\337\004\357\235\006\376\362\222\r<\270I\300\\\320Q\377Z\320Z\\\320\\c\320\375c\300\311\001\330\010\047\320\0477?\260x\270q\300\001\310\214U\325\357\001\315\021\376\224\r.\250\210\221\003\254\225\001Q\270\367h\300i\232\215\001[\320[]\377\320]e\320eq\320q\007}\320}\200\375\003\207\273\013\236\331\004\300\367\004\335\237\013\234\267\270\006\354\224\r>\270i\224\262\001\373\222\003e\373\320e\252\306\001\330\010)\320)g;\2708\237\360\002\251\224R\320(\363\004\007$\240N\232\215\005\002\006\276\232\001\305\200<\374\376\004\000\201\364\004\310\314\004\267\341\004\270\343\004\313\371\004\327\321\004\350\366\004\336\321\004\373R\003\203\201!\340\010#\2406s\250\031\351\360\001\254\205\n\032\230!\367\355\002\370\000\034\306<\331\215\005l\270,\300b\217\310\010\320P\246\2159\245\360\003\347\231\0142\231\260\360\231\003\200\204\002\300(\223\377\001\215\334\003a\373\320a\361\225\001\360\000\000v\001\000\344\225\013\265\317\004\217\353\004\261\374\004\245\312\004\236\346\004\316\371\004\210\334\006\316\335\231\rB\300)\222\247\001\340\217\003i\320\375i\357\300\001\330\010-\320-C\337\3008\3101\310\230\231T\320(\231H\273\366\002\352\233\0146\260\363\227\003\306\362\002\300\371h\376\220\001\313\326\003e\320em\320\001m\366\243\003\241\314\013\223\350\013\356\227\004\305\333\004\232\314\004\231\346\004\334""\276\326\006\340\233\rF\300i\334\262\001d\320\177df\320fm\320m\200\246\002\177\0101\3201K\3108\327\362\004\342\324\233\035>\275\215\001\323\235/\361\233\002\014\300A\034\361\235\r\325\233 |\320|\310\323\003\331\375\013\371\372\004\024\366\231\004\334\205\022q\253\233M@\215\212\001\316\2371\334\237\001\007\034\300Q\314\2330\262\200I\303\233<\305\2006\222\230\001\007L\310\001\355\241\r\350\227!\262\322\003\215\350\004\377\347\004`\211\332\004\241\305\013\202\232\004\243\322\004\222\315\004t\002\241\225L\207B\300!\273\2416\310\2043\247\215I\272\241\301\267\013\360\000\000x\001\375\364\004\256\234\013\000\305\367\004\204\365\004\245\253\004\247\362\004\212\377\004\346\357\004\323\352\006\207\273E\010\215$\315\2116\266\316\001+\275\240\013\257\273-\332\347\n\323\275\004\000\336\371\004\235\367\004\245\374\004\306\263\004\335\376\004\263\357\004\242\352\004\272\357\004\260\255\232\004\272\357\004\316\364\004\301\357\004W\003\337\220N\310\372\254\311\001.\225\221\013 \240\r\250Q\313\250a\320\205\001X\313\277\002\354\303&Z\300\177q\330\010\047\240~\260\370""\277\001\255a\204\263\001n\260\372\301\001Q\372\303\037j\377\320jo\320ou\320u\007w\320w\327\364\003\317\320\004\220\264\004\216\300\004\347\376\004@\222\374\013\220\304\013\2462\365\361\013\225\314\004\357\234\004y\215\377\001\367y\003z\353\207Ff\250G\260\237?\300,\310b\206\274\002\272\327\001\200\217A\33001\342\306\010\255\2013\301\302/f\377\320fk\320kq\320q\007s\320s\356\266\003\335\262\004\361\354\004\345\270\004\245\367\004\320\362\302\004\316\321\004\232\215\004\313\364\004E\243\374\001E\003\366\314\237\004H\003\306\302EV\2507\260\361!\331\200C\235\301\004\233\234\007\330\010%\320\235%\231\301\001x\270q\312\314\001\223\301\032h\377\320hm\320ms\320s\007u\320u\350\376\003\243\357\004\320\236\013\327\325\004\235\321\004\000\302\371\004\203\261\004\210\352\004\212\374\004\375\366\004\345\361\004\261\364\004\235\234\022\001t\270\311\016\274\301/\301\277\003\242\203U\275\265\002\277\313+\270\206\026 \236\213\013\220\357\013\372\366\004\332\376\004\355\236\022L\255\313F\260\203H\376\326\2750k\320kp\320pv\003\320v\235\306\003\236\364\004\205\253\004\203\326\013\375\277\004\304\376\004\000\322\366\004\266\376\004\361\303$\357\2756\323\200O\224\206\t\210\251\t\317\243\013h\250\300\033\366\200D\237\270\022[\256\330\001[\003\316\240\004J\226\213\022C\312\330\001C\277\330\005\325\243\004^\337\330\001\367^\004`\346\330\001`\004a\004\030\247\233F\276\213\016\315\265\001\320y\276\302\003\302\316\004\303\263\006\002\346\213\001F\310\231\001\320\323\006\262\2137\262\262-\316\213\035\324\303\004|\320\321\004\342\313\006\360\000\000l\002\306\273\004t\356\246\004\340\311\004P\271\333\001P\003R\300\333\001\027R\003S\243\213OG\255\220\001\355\200:\324\2662\377e\320ej\320jp\320\037pr\320rz\212\241\002\204\306\004\211\336\004\340\330\200N\353\3235\225\216\006\347\200?\276\320\003<\300q\360\244\330\r\331\215:\201\216\013\236\310\006\360\000\000oi\002\346\255\004\236\371\004M\205\340\001M\003\335\373\004b\215\261\004V\267\215@\275\330\003\240\047\320G\216\323\003\036\223\203AL\320PQ\266""\273*\263\203$\262\225\013l\327\275\006\236\343\001\002H\256\342\001H\003\300\373\022f\300\225\004a\003\274\330E\367\222\00523\200\335\0107\"\240-\223\340\003\035\230\326\227(\351\2242J\263\222=A\333\344\001A\217\225\005\375\304\004J\323\224H\3439\260\242\343\001\334\200@\351\3220i\320i0\270\217h\211\325/\362\205\005\236#34\303\341\010\215\243\010\034\231\234(\253\333/g\320g\241\234\023\225\224N\300\3335\017V\250:\260\332\341\001\233!\320\205\006\327\205\010\321Y\267\335\002\323\343\"\325\335$\007\373\333\007h\320\235h\200\200\234W\250I\327\200E\327\331$\047\376\207\346\010j\320jq\320qw\003\320w\227\356\003\217\342\004\226\356\004\210\356\004\230\340\004\212\326\004`\201\322\004\217\334\013\226\236\004\217\356\004\343\214\004N\003\325\331E\376\233&I\320I\\\320\\]D\253\350\010\327\334\001\021\265\316\001\376\211*\356\245\003[\312\214\020\016\255\342\032g\320g\231\231\027\321\373\004\266\360\004\317\223\013D\314\265\006\276\250\001\002\227\301\004\243\320\004\325\245\004\\\244\360\001\333\\\003\236\301\004_\003\257\342EV\250\373;\260\220\360\0013Q\320Qt\237\360\000\000u\001\364\337\004\200\260\004Z\352\234\361\001Z\245\264\005]\243\361\001]\004^\371\004\353\242>\237\310\002\320HY\320Y\037o\360\000\000p\367\317\005\241\374\004\311\332\004\366\267\214\004B\003\235\310+i\320in\377\320nt\320tv\320v\000\272\325\003\326\276\004\377\374\004\243\351\004\263\341\004\276\226\004\361\303\004\210\266\004\255O\214\363\001O\004\337\362\022r\250\363\001r\273\004@\360\362\001@\005I\367\362\001I\273\005P\376\362\001P\005V\205\363\001V{\005X\214\363\001X\005Y\005\270\337E\006\377\243\00545\311\346\001\370\217\004\322\257\010\373\210(\362\351$qw\230\350\007\333\212g\374\3515W\250J\301\204\002/5J\310!\202\250B\036\366\226\017\237\354\032\230\260\250\026\250\340\013\321\232\20778\333\252\021\315\224\nW\000\344\272\002\317\362 \260\3600\320\233\017\375\352\004\200\306\004\307\375\004\371\372\004\370\373\354\004\335\336\004\344\317\006\360\000\000t\002>\250\262\006\360\000\000@\003\353\302""\013\314\313\004\364\371\302\004\362\372\004g\322\226H5\260\t\270\000\347\370\001\202\201I\207\3611\266\255\017\274\365\004\274\322\004\274\365\004\317\353\004\000\323\355\004\252\363\004\370\275\004\303\365\004\272\375\004\261\227\004\247\335\004\235\253\004\255_\250\375\001_\003\233\316\004g\266\375\001g\003\003h\240\255H\362\200Z\354\255\t\233\313\013\253\206,\207\201Q\272\200\310 K\374\377\001K\004Q\374\377\001Q\346\365\320\005T\004\265\364?\223\256\005E\260\031\373\270/\236\323\001W\320W]\320\357]b\320b\257\336\001\200A\330\374\220\204K\220\2302l\320lr\320r\007t\320t\204\347\003\213\355\004\223\330\004\252\363\004\222\355\004\320\255\361\004\221\367\004\226\340\006\341\340\001\002\310\217\006\360\000G\000B\003\270\246\004\236\306\004\365\265\013h\374\323\001\007h\003i\236\221H\327\206S\310\365/\270\263\017\342\355\004\000\356\342\004\365\363\004\351\355\004\351\375\004\351\367\004\226\304\004\362\340\004\351\375\004\240\203\321\004\315\345\004\253\223\004\312\263\004\237\207\004i\313\326\001i\343\003j\205\244H\246\211S\313\366\004$\320$\0015\236\273\005\227\266\013\264\366\033\351\223\017\256\354\004\303\345\004\266\362\004\000\265\354\004\305\360\004\316\370\004\370\226\013\330\323\004\321\366\004\334\253\004\356\256\013\232\265\320\031I\240\331\001I\004\301\224\004\256\207\004R\346\217\323Ff\250\252\207\001\374\322\002T\320T\377Z\320Z_\320_h\320\003hi\335\206N\225\266B\303\344\004\337\320\004\302\363\004\312\344\004\020\271\357\004\253\367\004\355\311\006\224\374\001\002\316\371\004\325\273\004\224\252\004\232\203\232\004c\235\334\001c\003\322\204\004\250\334\004l\000\262\266H\206\217S\301\266F\214\360\004\242\326\004\206\362\004\223\360\004\246\351\004\240\207\370\004\261\252\013\242\276\004\374\336\004\272\303\004]\352\336\001]m\003\224\326\022m\003\214\366FV\250\370\200Zh\340\266W\231\201Q\214\212\004o\345\341\001o\003\235\334\004\252\240\315\004D\336\341\001D\344\217\005W\354\341\001W\273\004Y\363\341\001Y\004c\372\341\001c\273\004l\201\342\001l\004x\210""\342\001xk\004~\217\342\001~\214\235\005A\005\222\267H`\202\220\022\240\303\n\227\365\004\276\330\004\222\375\013_\002\275\220\001\177M\320Mb\320bc\244\230L\037\014\300K\310q\346\337%\335\355\032\314\230@\370\231\312\004\321\205\013\336\364\006\360\000\000R\003(\336\307\004\205\216\004\204\321\022G\327\345\001G\200\335\005\350\242\004T\353D\206\241\004o\372\345\001o\361ED\202\241\001wD\005J\211\241\001J\005L\220\241\001\217L\005M\005\276\261?\371\223\032\320\202,N\377\320Ne\320e~\320~\311\177\253\234G\241\232\003\034\312\373\001\276\311\001\330\010\017!\320!2\333\370\005\362\226k\333\370\004\321\306\004\370\253\246\004\240\277\004\354\234\006\360\000\000g\003\232\206\325\004~\331\351\001~\003\337\206\004\365\340\004L\256\322\351\001L\004V\331\351\001V\307\351\005k\256\347\351\001k\004q\356\351\001q\316\351\005t\276\246\227L)\300<\310r\361\253\002\\\023\320\\\216\376\001\360\227\001Q\377\350\002\224\277\017\355\2373\363\320(\305\334\006\334\354\t#\240>\260\237\021\260(\270!\207\374\001\273\334\033m\377\320mr\320rx\320x\000\213\275\003\241\344\004\234\361\004\257\347\004\222\376\004\243\361\004\375\311\004\271\341\004<\333\351\004\230\314\006\360\000\000H\346\272\005\300\321\004\255b\360\354\001b\003\364\354\004x\376\354\001x5\003\245D@\360\354\001@\004\232\344\013\263\302$\374\206\3351\212\233\010\320:J\310,\320\377VX\320X^\320^c\377\320cl\320lm\200A\037\3308P\320P\357\222\001\207\205I\266\364\001?M\310\035\320VW\262\252=\315\225\047x\342\335\004\272\317\004\303\302\006\360\000\000S\345\255\007\017\360\000\000_\205\360\005\263\347\004\301\352\004\345\305\004=E\220\360\001E\004F\004\250\252G\325\243\005\2179R\320R\267\375\003\304\204G\237\367\001N\002\253\345\001Y\220\345\031\222\230W\254\375\004\364\362\013\300\327\004\204\320\004Z\207\205\004p\205\363\001p\003\376\324\004A\367\362\001\243A\004\240\214\004\336\230\004\202\363\004\\\223\363\001\\\273\004d\232\363\001d\004j\241\363\001j\352\237\220\005m\253\230L+\364\212\001S\320S\377Y\320Y^\320^g\320\037gh\200A\330""\242D\225\366\027\261\330\006\374\215\2105\277\323\001>\310\036\320We?\320es\320st\315\350\031\237\323,\300\332\236\047\223\344\004\264\226\013\240K\353\360\004\323\350\006\360\000\327\000}\003\272\244\004T\272\366\001T\004\252\247Db\310\366\001b\255En\326\366\001n\273\004w\335\366\001w\004\177\344\366\001\177\273\004E\345\261\001E\005G\354\261\001G\203\005H\303\261\016\323\3237\356\244\001\260W\364\312\001\001\370\204\375\004\343\270\006\361\216M\036\300~\320U\377c\320cq\320qr\330\377\010\037\320\0370\260\001\260\007\030\270\021\000\t\014\t\214\372\001\327\247V\364\347\0044\346\237\013\224\334\004n\215\372\001n\003\250\227\004\266\354\004\000\317\345\004\346\237\004\305\364\004\273\217\004\210\206\004\360\317\004\221\372\004\302\217\004\325u\276\372\001u\220\372\005}\314\372\001}\004t\332D\303\265\004T\333\265\001T\005Z\342\265\001\367Z\005\\\351\265\001\\\005]\005\276\241\250K\047\300\034\310R\301\343\001Z\377\320Zc\320cj\320j\306\355\324\001\320x\260\267\003\235\361\004\242\341\006\200A\207\330?@\232\261\032\312\302\n\266\276\002\253\266\001,\377\250a\250q\330\010\032\230\337,\240a\240x\007\001\036\230\377o\250Q\250h\260a\330?\010\034\230G\2405\213\256f\366\372\004\300\363\355\004\310\330\004\375\372\004\366\372\004\312\370\004\371\313\006\360\000G\000V\003\370\211\031\224\220\004\312\370\004H\231\376\001\357H\004I\004\270\335G5\260\0077\260z\300\344\261\001?V\226\217\002\373\222\030\000\310\2017\233\336\001\275\316?\250\251 \370\347\004\303\365\022\370\347\004\307\373\004\200\271\370\004\344\243\004\300\370\004\252\236\004\221\215\004\304\226\004\261\232\004N&\321\373\001N\004\334\211\004\304\226\004W\275\373\016\215\336/\314\275\317\005\201GAB\300\376\010\210\226\034X\250\347W\260A\342\204%\363\363\001\001\330\010\377%\240^\2601\260H\270=A\366\225\"s\320sy\353\327\005\251\206\013\000\364\264\004\373\352\004\255\304\004\240\346\004\334\326\004\342\350\004\353\361\004\201\364\004\340\333\357\004\303\373\004\356\331\004\377\301\004\362\264\006\360\000\000\301h""\302\373\005\302\366\004\321\376\004\307\231\004\212DO\004\376\204\364GV\2506\260\025\260i9\270\331\366\001\254\201VC\3001\223\374\001\370*\3471\260\001\347\376\002\234B\300\030\310\367\031\320R\216\227\003`\320`h;\320h\243\307\003}\320}\231\351\003\302\346\004\000\302\376\004\362\366\004\341\353\004\315\257\004\310\371\004\332\373\004\361\364\004\371\366\004\000\350\353\004\254\344\004\333\331\004\372\267\004\246\351\004\353\251\006\235\332\001\307\371\005\270\223\231\022\222\214\004\276\376\017A\300\031\327\230\001_\377\320_a\320ah\320h\377j\320jk\330\010,\320\233,A\335\000\021\310\271\367\030\241\201bE\323\300Q\363\367\001\376\204\n3\312\310\001\"\320{\"A\360\370\001\3008\3109\372\255\002\377`\320`b\320bj\320\001j\203\205\003\234\354\003\344\356\004\241\347\004\265\332\004\204\361\004\320\262\004\000\373\367\004\213\305\004\322\374\004\364\367\004\353\356\004\331\374\004\360\325\004\353\356\004\232\226\226\013m\316\374\001m\003\234\217\004\313\374\004B\242\201\340\001B\375\337\005\225\217\004\366\222\004U\355\337\016C?\3009\310L\320X\204@\202\216\003\376\341\233\001\330\010.\320.E\300\237X\310Q\310a\304\372\027\253\204bFs\300a\270\357\001\210\210\n4\2601\216\373\002\377B\300!\3001\300H\310\277I\320U[\320[\274\003k\037\320kt\320t\266\335\003\264\345\004\253\237\004\000\204\310\004\332\354\004\213\364\004\363\337\004\276\357\004\211\373\004\371\361\004\353\370\004\200\222\364\004\312\326\004\227\216\013\262\237\004\214\260\004\234\222\013\231\234\013M\352\226\343\001M\266\273\005U\244\343\001U\004V\376\373\342\016D\300I\310\\\320Y\377b\320bd\320dk\320\377km\320mn\330\010/\347\320/G\322\377\001\360\332\002\016\210k\357\230\027\240\001\360\375\003\021\330\010\363\017\210\341\333\005\274\207`G\300q\310\232\224\213\r5\336\213\002\320\"\266\210\002\262`Y\337\320V\\\320\\\275\003l\320\017lu\320u\205\344\n\232\367\013\342\357\004\314\320\004\000\221\376\004\306\362\004\364\270\004\365\352\004\305\355\004\241\301\004\201\374\004\211\343\004\360\201\365\004\215\216 \332""\255\004\211\216$E\300Y\310\375l\235\224\002e\320el\320l\377n\320no\330\0100\320\3770I\310\030\320QR\320\373RS\372\204\"\340\010\014\210J\177\220m\2406\250\021\330\010\000\337M\230\024\230Q\005\001J\220\277i\230q\240\004\240\346\215\002\r\177\210O\2309\240F\250\216\245\002\377\r\320\014\036\230b\240\010\373\250\001-\001O\2301\200A\177\340\010\020\220\004\220A\274\375\001\3774\210w\220a\220w\230\377a\330\014\021\220\030\230\021\376\004\000\320\021!\240\021\360\006\377\000\r\022\220\037\240\013\250}1\026\001\036\230{\250!\037\001\337\033\230K\240q \002\"\240\375!\037\003\030\230\037\250\001\250\373\024\250\376\365\001\r\021\220\005\220\377V\2301\230E\240\025\240\367d\250!;\000\020\027\320\027\376\215\231\001\024\260Y\270a\330\020\377\035\230T\240\021\240!\330\377\020\023\2204\220q\320\030\367(\250\003`\000\024\030\230\001\337\320\031+\320+\220c\020\025\273\220\\#\000.\260\001\223\001\025\377\220a\320\027(\250\004\250\374\304\217\001K\0243\2601\260D\270\367\t\300\021W\010\025\220[\240\337\001\240\036\250q<\006\047\240\347t\2501\325\003P\002)\250\033\337\260A\330\014\020\240\0221\260\367\021\260$\241\216\001\330\020\036\230\277d\240!\2401\330\225\000U\357\230!\230?\326\000?\270$\357\270a\270q\017\001X\230Q$\210\227\001\242\006)\211!\312\205\001q\347!\234\351\006\305\035\246A\"\345\311$\345\341*\262\272\001\320i\007t\320t\240\373\003\346\230\013\200\366\004\343\326\004\237\373\004;]\002\226\341EX\250Q\260\2003\237\311\002\374\367\374\r\204\316\032i\320ij\320j\377u\320uv\360\000\000w\301\001\230\311\004\370\374\004\340\367\004\303\330\004\272\303\004^\002\364\273\376E\254\20089\206\237\001\"\320\"3\370\202\225\007\346\327\032\275\220\001\320kv\320v\305w\307\327\001\001\241\305\004\366\277\004\360\221\022_\002\234\203\327E\223\2028:\270!\312\351*\225\310\001\320\017lw\320w\227\364\003\227\354\004\331\276\004\275\327\004\340\201\307\004\314\356\006\202\373\r\315\2305\372\2038;\2701|\234\330+\347\255\001\320mx\320x\372\335\003\314\306\225\013\265\222\022a\002\216\335E\342""\2058<\270\375A\201\372\t\330\010&\320&7\277\260q\270\010\300\001\344\374\001*\356\374\213\001\"\320\"\253\377\002\270(\300\347)\3106\351\337\010\350\217\001\320ny\003\320y\364\357\003\263\363\004\273\320\004\233\221\022\243\362\004\362\367\004\366\352\376$:\270\363\263\001y\320XZ\353\320Z\360\223\003d\357\233\0038\2701\370\273\001\316\220\017\275\374\003h\250j\270\014\277\300B\300h\310a\204\2105>\233\270a\357\376\t\330\010\335\367\007\203\377\001,\371\250\322\223\003\253\377\002\270H\300I\310\375V\344\253\002[\320[c\320c\377o\320op\320p{\320\301{\204\315\003\301\223\013\246\312\004\256\374\004\212\372\004p\002\322\336\335\001\002\277\355\004\360\376\022O\321\376\016<\270\375I\327\270\001Z\320Z\\\320\\\347c\320c\223\266\001\346\274\0027\260x\317\270q\300\001\374\225\021\231%m\270g<\300r\225\220\002\246\2125?\270\366\361\016\376\200\266\033p\320pq\320q|\377\320|}\360\000\000~\001\200\360\324\004\213\317\004\351\324\004\205\362\004\311\376\006\311\235G\215\2148@\233\300\001\341\363\r.\250\316\361\003\366\310\002\270\367h\300i\254\350\001[\320[]\337\320]e\320e\245\253\001\320r\007}\320}\324\340\003\212\376\004\340\333\004\365\320\004\336\343\004\374\217\376\006\333\372\r>\270i\300|\320\377S\\\320\\^\320^e\373\320e\274\260\001\330\010)\320)\307;\2708\363\236\003\306\226\025\367\2158A\300\235\021\313\365\r/\250a\351\365\002\220\310\002\270\277x\300y\320PV\261\226\002^\377\320^f\320fr\320r\047s\320s\263\276\001\330\332\001\002\360\347\004\234\343\004\372\326\204\022g\212\220\016?\270y\310\014\377\320T]\320]_\320_\367f\320f\254\270\003*\320*=\003\270X\330\235\003\223\200U\264\244\n\265\2002\203\346\004yn6\334\3753=\270\372\366\016+\250\321\216\003\263\360\002\356\330`9\310F\257\243\002Z\320Z@\330\327\003\245\362\027\335\353\004\312\313\004\344\353\004\204\240 A\342\312I\3477\260!\371\225\n\377\265>8\270\001\000\211\224*\234\3369\372\330\004\321\336\013\244\326\004\244\303\004\346\373\004\372\330\004\030\333\250\006\356\255I\233\341\002\340\010\355\273J\262\276g\217\323""\004\000\335\355@\204\3677\335\343\004\370\200I\344\205D\331\322\047\311\356\004\206\376@\377;\2709\300L\320PY\337\320Y[\320[\232\244\003e\330\377\010&\240o\260X\270Q\001\270\212\247\032\245\201!\211\2665\377\350\001\312\235*\314\3502\321\222\004\000\245\330\004\260\260\004\271\346\004\261\255\004\240\252\004\343\376\004\330\325\004\305\266\004\272\254\330\004l\220\377\001l\003s\227\377\001s\004\321\301\005\362\322\004|\320\350J\260\266\004\342\206\032\371\2707\354\234-\007g\320g\225\343/\320\370\004\212\364\004\245\351\004\225\365\004\000\272\363\004\366\246\004\327\370\004\251\366\004\264\266\004\317\363\004\266\275\004\336\321\022\001~\226\343J\3308\216\274\014\350\265&\340\206K\364\265\031\360\366\004\000\253\315\004\202\266\004\262\315\004\220\274\004\202\341\004\255\346\004\213\354\004\251\307\006\006\335\332J\n\270\360\216\013\233\270G\250\207\003\330\343\t\344\343\t?#\320#4\260A\314\210\001\232\233\t\374\236\320\001\244\327\035k\320kq\320q\007s\320s\231\331\003\375\356\004\221\331\013\204\357\004\266\376\004\000\210\374\004\327\346\004\243\233\004\211\271\004\202\271\004\210\374\004\262\320\004\222\315\013\200\336\346\004\202\344\004\275\207\022\222\315\004\223\274\004\304\333\004\301\373\004_n\313\373\001_\004i\322\373\001i\004\321\371\004Uz\340\373\001z\327\371\005B\342\371\001B\321\327\005\335U\360\371\001U\005_\367\371\001_\005\335e\376\371\001e\005g\205\372\001g\005\375h\252\327HF\260%\260y\300\375\014\216\264\001Z\320Z`\320`\000\332\366\003\233\375\003\214\307\004\366\353\004\313\346\013\243\364\004\341\366\004\365\221\0130\245\257\013\311\265\004\252\364\004\316\343\013]\003\360\252\n\222\275I\000\317\2230\346\355\023\215\366\031\371\237\004\321\350\004\317\267\004\260\366\004\327\324.\rr\376\377\001r\003\210\325\004\360\307\006\225\303G\306\275\006\340\234\224\010\205\300I\211\245\002\302\300\n\343\244\033j\320j\000\205\231\020\351\345\004\254\353\031\312\366\004\266\303 \244\333\004\331\303\004\330\366\004 \231\371\004\230\217\004\337\324\004\274""\316\004\253\333\004\177\225\350H\227\201]\000\334\2331\276\300\003\347\251\003\267\275\004\212\374\004\240\353\031\344\363\004\341\245\004h\234\361\004\303\353\004\216\336\013M\276\371\001M\003\311\371\004h\362\363\004\302\371\004\342\324\004w\341\371\001w\003\327\327\004=\177\357\371\001\177\003@\004\271\350H\220\204]\000\331\250\003\263\306\t\264\250\033\326\366\003\303\335\024\304\353\031\215\364\004\257\300\004\000\215\364\004\347\353\004\272\374\004\352$\220\377\004\343\366\004\233\364\004\334\366\004\004\322\320\004\332\335\022A\316\371\016\344\2501\210\275\016\222\207T\261\251\002\200\252\310\213\272\377\004\206\344\013\354\353\013\323\332\004\343\204\004\332\332\004B\340\333\310S\213\212T\300\252\002\244\314\n\246\252\033n\320n\006\232\303\001\320z\310\374\003\377\267\013\260\343\031\237\364\004\261\322\004\000\322\361\004\323\343\004\377\371\004\353$\325\374\004\252\314\013\252\367\004\314\335\004\030\275\326\004\323\343\004\250\306\004C\004\343\252G\237\314\010\204\215T\334\317\253\002\275\251)o\320o\205\303\001\320{\000\242\257\003\222\271\013\331\274\022\305\261\004\305\364\004\335\263\004\235\317\004\245\314\004\000\235\372\004\310\377\004\200\375\004\240\367\004\323\364\004\231\367\004\330\361\013\306\340\004\342\273\343\004D\214\372\016\202\2547\230\201_B\300!\326\225\322\0140\250\256\262\003>\327\300\001\300\010s\310\t\315\352\002\363\255\003g\320g\345\252\003\007|\320|\326\331\003\245\272\013\354\275\022\245\330\004\265\243\004@\236\330\004\300\351\004\245\330\004\223\372\004\331\360\013\306\367\004^\357\377\001C^\003\347\240\004\277\223\004\216\314\013\340\364\004E\206\375\016\377@\300\t\310\034\320U^\377\320^`\320`g\320g\376\272\277\001\330\010+\320+?\270qx\365\307\003\334\310 \370\222TC\3001\217\325\014\000\227\321\177\224\375\004\354$\240\322\004\217\317\004\341\243\004\210\351$\315\321B\332\362\225TD\202\325\0162\260\316\264\003@\300\177\001\300\021\300(\310)\215\347\002\016\311\323\003i\320i\253\357\003\307\337\003\302\343\004\301\274\013""\000\226\300\022\231\333\004\260\272\004\365\253\004\226\336\004\231\333\004\277\357\004\271\256\004h\276\375\004\220\325\013\251\342\004t\326\375\001t\003\344\362\013\372\244\336\004G\267\362\016B\300)\310<\273\320W\310\323\003i\320i\361\353\003-\377\320-C\3008\3101\310qA\300\313$\255\362\006\314\332IE\300Q\207\333\014\000\205\324\203\242\341\004\326\371\004\266\354\004\317\375\004\335\371\004\277\226\004\235\357\004\022\335\371\004H\256\324S\356\233TF\370\327\016\365\323\207\234\357\031\020\246\362\004\375\343$\262\324C\361\236TG\361\327\016\351\323\207\243\344\004\020\373\327\013\377\356\004\313\234\004\246\362\022J\272\373\016\243\324F\260\207R\355H\346\327\0166\260\250\302\003D\300A\377\300Q\300h\310i\320W\367]\320]\254\305\003m\320mv\003\320v\243\306\003\252\373\004\362\317\004\251\302\013\252\373\004\370\332\004\000\261\373\004\310\310\013\270\373\004\370\332\004\300\272\004\231\347\013\300\242\004\240\347\013\320\260\245\013\215\336\004\235\352\004\362\376\004K\276\376\016F\300\377i\310|\320[d\320d\277f\320fm\320m\360\307\001\330\377\0101\3201K\3108\320\237ST\320TU\331\212-\214\355\nQ8\352\354(\377\274-\325\231\003v\320v\275\356\003\347\335\004\320\240\376\004\223\317\004\205\347\004\334\343 \177\273\322FV\250\343:\260\350\324\002\362\366\006\371\366\010Y\240a\376\306\200Jw\310f\320TV\320\201V\225\370\003{\225\233\361\002\315\333\001\324\200<\377\324\"\007\376\342\362\001W\320W_\320_h;\320h\201\233\003w\320w\246\372\003\250\313\004\020\342\362\004\244\353\004\224\342\004\353\221 @\371\265F\201/\307\363\010|\310\202[\263\200]6\260i\270|\252\350\001\327V\320V\210\312\003`\310\371\001\032\250\3578\2601\260\276\223\030W\250J\377\260a\200A\360\010\000\t\375\021\362\337\004\320\013\035\230W\240\376\367\335\002\n\230!\2305\240\017\376\243\336\001\023\2205\230\r\240V\357\2501\340\014\005\003U\250!\356+\n\014\210L\257\337\001\013\2606\375\270\247\340\001\220\034\230Q\230k\357\250\021\320*\253\324\001\014\021\220\377\025\220a\220~\240Q\240}n\250\360\001\r\320\r\036""\230j\013\364\356\344\001\262\341\004\025\360\340\001\017\210q\220_\r\230T\320!\327\324\001\001\255\336\004\270\235\010\226\337\001\301\337\001\033\250A\316\316\001\013\377\2106\220\023\220A\330\014\377\024\220E\230\033\240A\240\307[\260\001\273\227\001D\000\322\n\026\220\375a\245\342\001G\2201\330\014\017\377\210t\2203\220e\2301\377\330\020\030\230\006\230a\230\375q\367\340\002\320\027/\250q\260\277\005\260Q\330\024\031F\002T\277\250\021\250+\260V\265\324\002\024\377\"\240!\330\021\025\220S\337\230\005\230Q\330\207\341\004$\240?a\320\0479\270\026\266\322\002\203\340\004\375>2\000\047\260\026\260q\270\377\001\340\010\013\2101\330\0149\031\300\342\001q\000\320\023$\235\000Q\001\365!\361\341\001Q\205\001s\220!\220w6\230\022\207\001\024\220C\246 \177Y\250a\250u\260A\177\001\277\021\330\024\027\220r\032\0003\366\236\002\030 \311\343\001\240Q\330\030\337\033\2304\320\037\366\326\001\014\300\337A\330\034!\240\207![\270w\001\270\033\013\001*\250!t\001\3275\220\003\345\003q\234\341\004\320\033\317+\2504\250\240\343\006\371@\n\000\377\t\017\210d\220(\230(\357\240%\240q\365\343\003z\230\021\373\230%\215 \014\022\220$\220\247a\220q\370%)\000\020\263 8N\224`\001\240\0217\003\007\007\037\262!\216\007\013\005\240Q]\003\330d\336FN|Z\003\343A\016\230e\240<\360 \351\013\226\327\003\255C\014\213\204\004\340\010\021\237\320\021&\240a\234\343\001\324\345\001C\257\210}\230I\305`e\373\344\001\024\237\220D\320\030.\374\372\002\360FZ\372\272@\001\331Av\220V\320\033W2\260#\267@6\372\343\001)\304@\375(\014\000Q\330\021\027\220v\377\320\0357\260s\270&\300\277\006\300a\330\020,\302`X\373\260S\247A\023\320\023#\240\2271\240A\270\373\001A\276\346\001\274c\016\336\227\205\007\2104\210u\346a\020\320\373\020 \235\352\003e\2208\2307\353\240!\2435\013\315\205\003E\250\021\347\330\020\032\311\205\007\246\204\001\035\240a\256\367E5\230\003\206\204\001\027\241\205\002c~\360`$\250f\260A\340\241\346\001\177(\250\001\250\025\250m\266\331\002\377)/\250q\330)1\260\377\024\260Q\330\r\037\230w\231\240\205!K""\t\017\210\311a=\016!\3568\0170\260\004^\000\014\023\220\3773\220a\220v\230S\240\377\001\240\025\240c\250\027\260\357\001\200A\360\351\005\340\010\033\357\2302\230\\}\000k\270\021\373\270+\257\361\002\034 \240\016\250\337e\260;\270e\252\241\001#\240\1772\240S\250\005\250\\\035\000\377\"\270A\270Q\330$(\246\014\000U\260\340\350\002\253a1\316\350\001\027\276\302a#\2404\320\047\331\244\002\013\377\2105\220\004\220D\230\n?\240!\2404\240q\300\347\001\353\346\001\237\003\2207\230)\373\"\202\350\002z\373\240\021\220\204\002\024\025\340\020\021\333\330\024\355 \320!\354\320\001&\300\377\001\330\027\030\330\024\032\320\375\032\265\226\001\030\033\2301\230A\337\330\030\034\230E\276\350\002\024\032\366?\003\340\010\365$A\330\020\024\377\220J\230a\230u\240O\377\2601\330\014\047\240u\250\327M\270\021\274#a\010\022\031\300\213!\340%\000t\252\205\001\212\207\001\302\206\0013\257\210a\210~\246 \003\235b\014\212\377@!\256\351\002\014\256\351\002\275A\203\000\r\377\020\220\001\220\036\230t\320\371#\246\336\001u\000C\220q\230\006\237\230c\240\024\240\230\204\001\361 \260\335T\240\211\001\022\320\022\262\326\001\020\023\371\220\234!\235\000E\230\021\230!\337\330\014\022\220)\312\001\340\010\275\014\224\353\t\320\014\034\230\274\353\004L\367\230\t\240\337\211\002\033\230A\230\367[\250\001\246\351\002\010\r\210Uc\220!\271\204\001\313 \322\372\001\r\210\037\006\366\361\211\030\340\010\202\211\0011\200A\360}2\327\204\010:\220Q\220n\200\213\001\374\325 \201\352\001\007\220t\320\0336\377\260a\330\020\023\320\023%\177\240W\250A\330\024\030\266B\337>\260\021\330\024\201\352\001\047\250\257\034\260Q\340\004\004\021\301\353\0011\352\254A\007\330@\001\332\210\005>\240\023}\240\207@\025\320\025%\240\271\211\001\177\320\025&\240a\330\020\227`\367\340\020\026\242\355\002\001\330/6\373\260c\346`.\310\002\310!\377\3309:\33004\260E\272\366`!\260\352\003N\220!\226\204\001\014\320\314\211\001\365&\245!\232 \330\305\003\320\004\307\035\230Q\306\214\010\350\353\001\255@\330\010\367\022\220\047\334\"\010""\014\210G?\2209\230J\240f\304\000\201\213\001\377\320\023+\2501\250G\260|\301\353\002\225\354\001\026\240q\250\013\374\363\001\002\242\214\003\330\317*"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 35802, 113477); #define __Pyx_DecompressString_UNUSED if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (110864 bytes) */ + #else /* compression: none (113477 bytes) */ #ifdef _MSC_VER -static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','A','R','R','A','Y','_','T','Y','P','E','S','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\017','\210','~','\230','Q','\230','h','\240','a','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','u','\003','\360','\000','\000','u','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\320','\013','\033','\230','1','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\210','\177','\230','g','\240','U','\250','!','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021',' ','\240','\007','\240','u','\250','A','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','G','\300','q','\310','\001','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\035','\230','W','\240','E','\250','\021','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','$','\250','f','\260','A','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','/','\250','q','\330',')','1','\260','\024','\260','Q','\330','\r','\037','\230','w','\240','e','\250','1','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','!','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','0','\260','\004','\260','A','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r','\037','\230','w','\240','a','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','%','\240','W','\250','A','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; +static const char bytes[] = {'\n','\n',' ',' ',' ',' ','T','h','i','s',' ','i','s',' ','a',' ','p','y','t','h','o','n','i','c',' ','w','r','a','p','p','e','r',' ','a','r','o','u','n','d',' ','T','A','L','I','B','\047','s',' ','a','b','s','t','r','a','c','t',' ','i','n','t','e','r','f','a','c','e','.',' ','I','t',' ','i','s','\n',' ',' ',' ',' ','i','n','t','e','n','d','e','d',' ','t','o',' ','s','i','m','p','l','i','f','y',' ','u','s','i','n','g',' ','i','n','d','i','v','i','d','u','a','l',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n','s',' ','b','y',' ','p','r','o','v','i','d','i','n','g',' ','a','\n',' ',' ',' ',' ','u','n','i','f','i','e','d',' ','i','n','t','e','r','f','a','c','e',' ','f','o','r',' ','s','e','t','t','i','n','g','/','c','o','n','t','r','o','l','l','i','n','g',' ','i','n','p','u','t',' ','d','a','t','a',',',' ','s','e','t','t','i','n','g',' ','f','u','n','c','t','i','o','n','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s','.',' ','I','n','p','u','t',' ','d','a','t','a',' ','c','o','n','s','i','s','t','s',' ','o','f',' ','a',' ','`','`','d','i','c','t','`','`',' ','o','f','\n',' ',' ',' ',' ','`','`','n','u','m','p','y','`','`',' ','a','r','r','a','y','s',' ','(','o','r',' ','a',' ','`','`','p','a','n','d','a','s','.','D','a','t','a','F','r','a','m','e','`','`',' ','o','r',' ','`','`','p','o','l','a','r','s','.','D','a','t','a','F','r','a','m','e','`','`',')',',',' ','o','n','e','\n',' ',' ',' ',' ','a','r','r','a','y',' ','f','o','r',' ','e','a','c','h',' ','o','f',' ','o','p','e','n',',',' ','h','i','g','h',',',' ','l','o','w',',',' ','c','l','o','s','e',' ','a','n','d',' ','v','o','l','u','m','e','.',' ','T','h','i','s',' ','c','a','n',' ','b','e',' ','s','e','t',' ','w','i','t','h','\n',' ',' ',' ',' ','t','h','e',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(',')',' ','m','e','t','h','o','d','.',' ','W','h','i','c','h',' ','k','e','y','e','d',' ','a','r','r','a','y','(','s',')',' ','a','r','e',' ','u','s','e','d',' ','a','s',' ','i','n','p','u','t','s',' ','w','h','e','n','\n',' ',' ',' ',' ','c','a','l','l','i','n','g',' ','t','h','e',' ','f','u','n','c','t','i','o','n',' ','i','s',' ','c','o','n','t','r','o','l','l','e','d',' ','u','s','i','n','g',' ','t','h','e',' ','i','n','p','u','t','_','n','a','m','e','s',' ','p','r','o','p','e','r','t','y','.','\n','\n',' ',' ',' ',' ','T','h','i','s',' ','c','l','a','s','s',' ','g','e','t','s',' ','i','n','i','t','i','a','l','i','z','e','d',' ','w','i','t','h',' ','a',' ','T','A','L','I','B',' ','f','u','n','c','t','i','o','n',' ','n','a','m','e',' ','a','n','d',' ','o','p','t','i','o','n','a','l','l','y',' ','a','n','\n',' ',' ',' ',' ','i','n','p','u','t','_','a','r','r','a','y','s',' ','o','b','j','e','c','t','.',' ','I','t',' ','p','r','o','v','i','d','e','s',' ','t','h','e',' ','f','o','l','l','o','w','i','n','g',' ','p','r','i','m','a','r','y',' ','f','u','n','c','t','i','o','n','s',' ','f','o','r','\n',' ',' ',' ',' ','s','e','t','t','i','n','g',' ','i','n','p','u','t','s',' ','a','n','d',' ','r','e','t','r','i','e','v','i','n','g',' ','r','e','s','u','l','t','s',':','\n','\n',' ',' ',' ',' ','-','-','-','-',' ','i','n','p','u','t','_','a','r','r','a','y','/','T','A','-','f','u','n','c','t','i','o','n','-','p','a','r','a','m','e','t','e','r',' ','s','e','t','-','o','n','l','y',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','(','i','n','p','u','t','_','a','r','r','a','y','s',')','\n',' ',' ',' ',' ','-',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')','\n','\n',' ',' ',' ',' ','D','o','c','u','m','e','n','t','a','t','i','o','n',' ','f','o','r',' ','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',' ','c','a','n',' ','b','e',' ','s','e','e','n',' ','b','y',' ','p','r','i','n','t','i','n','g',' ','t','h','e','\n',' ',' ',' ',' ','F','u','n','c','t','i','o','n',' ','i','n','s','t','a','n','c','e',' ','o','r',' ','p','r','o','g','r','a','m','m','a','t','i','c','a','l','l','y',' ','v','i','a',' ','t','h','e',' ','i','n','f','o',',',' ','i','n','p','u','t','_','n','a','m','e','s',' ','a','n','d','\n',' ',' ',' ',' ','p','a','r','a','m','e','t','e','r','s',' ','p','r','o','p','e','r','t','i','e','s','.','\n','\n',' ',' ',' ',' ','-','-','-','-','-',' ','r','e','s','u','l','t','-','r','e','t','u','r','n','i','n','g',' ','f','u','n','c','t','i','o','n','s',' ','-','-','-','-','-','\n',' ',' ',' ',' ','-',' ','t','h','e',' ','o','u','t','p','u','t','s',' ','p','r','o','p','e','r','t','y',' ','w','r','a','p','s',' ','a',' ','m','e','t','h','o','d',' ','w','h','i','c','h',' ','e','n','s','u','r','e','s',' ','r','e','s','u','l','t','s',' ','a','r','e',' ','a','l','w','a','y','s',' ','v','a','l','i','d','\n',' ',' ',' ',' ','-',' ','r','u','n','(','[','i','n','p','u','t','_','a','r','r','a','y','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ','-',' ','F','u','n','c','t','i','o','n','I','n','s','t','a','n','c','e','(','[','i','n','p','u','t','_','a','r','r','a','y','s',',',']',' ','[','p','a','r','a','m','_','a','r','g','s','_','a','n','d','o','r','_','k','w','a','r','g','s',']',')',' ','#',' ','c','a','l','l','s',' ','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s',' ','a','n','d',' ','r','e','t','u','r','n','s',' ','s','e','l','f','.','o','u','t','p','u','t','s','\n',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','%','s',' ','(',' ','(','e','x','p','e','c','t','e','d',' ',' ','b','a','r','s',' ','o','f',' ','h','i','s','t','o','r','y',',',' ','a','t',' ','l','e','a','s','t',' ',' ','f','u','n','c','t','i','o','n',' ','f','a','i','l','e','d',' ','w','i','t','h',' ','e','r','r','o','r',' ','c','o','d','e',' ',' ','n','e','e','d','e','d',' ','(','a',' ','l','e','a','d','i','n','g',' ','b','a','r',' ','t','h','a','t',' ','i','s',' ','N','a','N',' ','i','n',' ','a','n','y',' ','i','n','p','u','t',' ','i','s',' ','n','o','t',' ','h','i','s','t','o','r','y',')','%','(','d','i','s','p','l','a','y','_','n','a','m','e',')','s',' ','(','%','(','g','r','o','u','p',')','s',')','\n','%','s','%','s','.','a','d','v','a','n','c','e','%','s','.','o','u','t','_','r','a','n','g','e','\047',' ','i','s',' ','d','e','p','r','e','c','a','t','e','d',' ','a','n','d',' ','h','a','s',' ','n','o',' ','e','f','f','e','c','t',':',' ','(','(','%','s',')','(','a','n','y',' ','n','d','a','r','r','a','y',')',')',')','\n',',',' ',',',' ','g','o','t',' ','.','3',':',' ','=','?','A',' ','p','e','r','i','o','d',' ','o','f',' ','1',' ','p','e','r','f','o','r','m','s',' ','n','o',' ','s','m','o','o','t','h','i','n','g','A','D','X','R',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','A','D','X','.',' ','S','e','t',' ','\047','A','D','X','\047',' ','i','n','s','t','e','a','d','.','A','l','l','o','c','a','t','i','o','n',' ','E','r','r','o','r',' ','(','T','A','_','A','L','L','O','C','_','E','R','R',')','B','a','d',' ','O','b','j','e','c','t',' ','(','T','A','_','B','A','D','_','O','B','J','E','C','T',')','B','a','d',' ','P','a','r','a','m','e','t','e','r',' ','(','T','A','_','B','A','D','_','P','A','R','A','M',')','B','u','l','l','/','B','e','a','r',' ','P','a','t','t','e','r','n',' ','(','B','e','a','r','i','s','h',' ','<',' ','0',',',' ','N','e','u','t','r','a','l',' ','=',' ','0',',',' ','B','u','l','l','i','s','h',' ','>',' ','0',')','C','a','n','n','o','t',' ','m','i','x',' ','p','o','l','a','r','s',' ','a','n','d',' ','p','a','n','d','a','s','D','a','s','h','e','d',' ','L','i','n','e','D','o','t','t','e','d',' ','L','i','n','e','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','F','u','n','c','t','i','o','n',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','F','U','N','C','_','N','O','T','_','F','O','U','N','D',')','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a',' ','s','t','r','e','a','m','i','n','g',' ','A','P','I','F','u','n','c','t','i','o','n',' ','h','a','s',' ','a','n',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d','G','r','o','u','p',' ','N','o','t',' ','F','o','u','n','d',' ','(','T','A','_','G','R','O','U','P','_','N','O','T','_','F','O','U','N','D',')','H','u','l','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','I','n','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','I','N','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','I','n','p','u','t','s',':','I','n','s','u','f','f','i','c','i','e','n','t',' ','H','i','s','t','o','r','y',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','I','n','t','e','r','n','a','l',' ','E','r','r','o','r',' ','(','T','A','_','I','N','T','E','R','N','A','L','_','E','R','R','O','R',')','I','n','v','a','l','i','d',' ','H','a','n','d','l','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','H','A','N','D','L','E',')','I','n','v','a','l','i','d',' ','L','i','s','t',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','L','I','S','T','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','F','u','n','c','t','i','o','n',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','F','U','N','C','T','I','O','N',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R',')','I','n','v','a','l','i','d',' ','P','a','r','a','m','e','t','e','r',' ','H','o','l','d','e','r',' ','T','y','p','e',' ','(','T','A','_','I','N','V','A','L','I','D','_','P','A','R','A','M','_','H','O','L','D','E','R','_','T','Y','P','E',')','I','n','v','a','l','i','d',' ','p','a','r','a','m','e','t','e','r',' ','v','a','l','u','e',' ','f','o','r',' ','K','a','u','f','m','a','n',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','L','i','b','r','a','r','y',' ','N','o','t',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','L','I','B','_','N','O','T','_','I','N','I','T','I','A','L','I','Z','E',')','M','E','S','A',' ','A','d','a','p','t','i','v','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','M','F','I','\047','s',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','w','a','s',' ','r','e','t','i','r','e','d',' ','i','n',' ','T','A','-','L','i','b',' ','C','.','N','o',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e',' ','(','i','d','e','n','t','i','t','y',')','N','o','n','e','N','o','t',' ','S','u','p','p','o','r','t','e','d',' ','(','T','A','_','N','O','T','_','S','U','P','P','O','R','T','E','D',')','N','o','t',' ','e','n','o','u','g','h',' ','h','i','s','t','o','r','y',' ','t','o',' ','o','p','e','n',' ','a',' ','s','t','r','e','a','m',' ','(','T','A','_','I','N','S','U','F','F','I','C','I','E','N','T','_','H','I','S','T','O','R','Y',')','.','\n','\n',' ',' ',' ',' ','R','e','c','o','v','e','r','a','b','l','e',':',' ','c','o','l','l','e','c','t',' ','m','o','r','e',' ','b','a','r','s',' ','a','n','d',' ','t','r','y',' ','a','g','a','i','n','.','N','o','t',' ','e','n','o','u','g','h',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','N','o','t','e',' ','t','h','a','t',' ','C','y','t','h','o','n',' ','i','s',' ','d','e','l','i','b','e','r','a','t','e','l','y',' ','s','t','r','i','c','t','e','r',' ','t','h','a','n',' ','P','E','P','-','4','8','4',' ','a','n','d',' ','r','e','j','e','c','t','s',' ','s','u','b','c','l','a','s','s','e','s',' ','o','f',' ','b','u','i','l','t','i','n',' ','t','y','p','e','s','.',' ','I','f',' ','y','o','u',' ','n','e','e','d',' ','t','o',' ','p','a','s','s',' ','s','u','b','c','l','a','s','s','e','s',' ','t','h','e','n',' ','s','e','t',' ','t','h','e',' ','\047','a','n','n','o','t','a','t','i','o','n','_','t','y','p','i','n','g','\047',' ','d','i','r','e','c','t','i','v','e',' ','t','o',' ','F','a','l','s','e','.','O','u','t','-','o','f','-','R','a','n','g','e',' ','E','n','d',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','E','N','D','_','I','N','D','E','X',')','O','u','t','-','o','f','-','R','a','n','g','e',' ','S','t','a','r','t',' ','I','n','d','e','x',' ','(','T','A','_','O','U','T','_','O','F','_','R','A','N','G','E','_','S','T','A','R','T','_','I','N','D','E','X',')','O','u','t','p','u','t',' ','N','o','t',' ','A','l','l',' ','I','n','i','t','i','a','l','i','z','e','d',' ','(','T','A','_','O','U','T','P','U','T','_','N','O','T','_','A','L','L','_','I','N','I','T','I','A','L','I','Z','E',')','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','N','a','N',' ','o','r',' ','i','n','f','i','n','i','t','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','n','e','g','a','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','p','o','s','i','t','i','v','e','O','u','t','p','u','t',' ','c','a','n',' ','b','e',' ','z','e','r','o','O','u','t','p','u','t',' ','i','s',' ','a',' ','c','a','n','d','l','e','s','t','i','c','k','O','u','t','p','u','t',' ','i','s',' ','o','p','t','i','o','n','a','l',' ','(','n','u','l','l','a','b','l','e',')','O','u','t','p','u','t',' ','i','s',' ','o','v','e','r',' ','v','o','l','u','m','e','O','u','t','p','u','t',' ','i','s',' ','p','a','t','h','-','d','e','p','e','n','d','e','n','t','O','u','t','p','u','t',' ','s','c','a','l','e',' ','s','a','m','e',' ','a','s',' ','i','n','p','u','t','O','u','t','p','u','t','s',':','P','a','r','a','m','e','t','e','r','s',':','P','a','t','t','e','r','n',' ','(','B','o','o','l',')','S','T','O','C','H','R','S','I',' ','h','a','s',' ','n','o',' ','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','o','f',' ','i','t','s',' ','o','w','n',';',' ','i','t',' ','f','o','l','l','o','w','s',' ','t','h','e',' ','i','n','n','e','r',' ','R','S','I','.',' ','S','e','t',' ','\047','R','S','I','\047',' ','i','n','s','t','e','a','d','.','S','i','m','p','l','e',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','T','h','e',' ','F','u','n','c','t','i','o','n','\047','s',' ','O','w','n',' ','D','e','f','a','u','l','t',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','o','o',' ','m','a','n','y',' ','p','r','i','c','e',' ','a','r','g','u','m','e','n','t','s',':',' ','e','x','p','e','c','t','e','d',' ','T','r','i','a','n','g','u','l','a','r',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','T','r','i','p','l','e',' ','G','e','n','e','r','a','l','i','z','e','d',' ','D','o','u','b','l','e',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','U','n','k','n','o','w','n',' ','E','r','r','o','r','U','n','k','n','o','w','n',' ','E','r','r','o','r',' ','(','T','A','_','U','N','K','N','O','W','N','_','E','R','R',')','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a',' ','l','o','w','e','r',' ','l','i','m','i','t','V','a','l','u','e','s',' ','r','e','p','r','e','s','e','n','t',' ','a','n',' ','u','p','p','e','r',' ','l','i','m','i','t','W','e','i','g','h','t','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','W','i','l','d','e','r','\047','s',' ','S','m','o','o','t','h','e','d',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','Z','e','r','o','-','L','a','g',' ','E','x','p','o','n','e','n','t','i','a','l',' ','M','o','v','i','n','g',' ','A','v','e','r','a','g','e','[','[','i','n','p','u','t','_','a','r','r','a','y','s',']',']','a','d','d','_','n','o','t','e','b','e','g','i','d','x',' ','n','b','e','l','e','m','e','n','t','c','a','n','n','o','t',' ','p','i','c','k','l','e',' ','%','s',':',' ','a',' ','s','t','r','e','a','m',' ','h','a','n','d','l','e',' ','p','o','i','n','t','s',' ','i','n','t','o',' ','t','h','e',' ','T','A','-','L','i','b',' ','C',' ','l','i','b','r','a','r','y',',',' ','a','n','d',' ','d','o','e','s',' ','n','o','t',' ','c','r','o','s','s',' ','a',' ','p','r','o','c','e','s','s',' ','b','o','u','n','d','a','r','y','d','i','s','a','b','l','e','e','n','a','b','l','e','g','c','i','n','p','u','t',' ','a','r','r','a','y',' ','h','a','s',' ','w','r','o','n','g',' ','d','i','m','e','n','s','i','o','n','s','i','n','p','u','t',' ','a','r','r','a','y',' ','l','e','n','g','t','h','s',' ','a','r','e',' ','d','i','f','f','e','r','e','n','t','i','n','p','u','t',' ','a','r','r','a','y',' ','t','y','p','e',' ','i','s',' ','n','o','t',' ','d','o','u','b','l','e','i','n','p','u','t',' ','m','u','s','t',' ','b','e',' ','a',' ','n','u','m','p','y',' ','a','r','r','a','y',' ','o','r',' ','a',' ','p','a','n','d','a','s',' ','o','r',' ','p','o','l','a','r','s',' ','S','e','r','i','e','s',',',' ','n','o','t',' ','%','s','i','n','p','u','t','_','a','r','r','a','y','s',' ','p','a','r','a','m','e','t','e','r',' ','m','i','s','s','i','n','g',' ','r','e','q','u','i','r','e','d',' ','d','a','t','a',' ','k','e','y','i','n','t','e','g','e','r',' ','(','v','a','l','u','e','s',' ','a','r','e',' ','-','1','0','0',',',' ','0',' ','o','r',' ','1','0','0',')','i','s','e','n','a','b','l','e','d','n','o',' ','h','i','s','t','o','r','y',':',' ','t','h','e',' ','i','n','p','u','t',' ','a','r','r','a','y',' ','i','s',' ','e','m','p','t','y','n','u','m','p','y','.','_','c','o','r','e','.','m','u','l','t','i','a','r','r','a','y',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','n','u','m','p','y','.','_','c','o','r','e','.','u','m','a','t','h',' ','f','a','i','l','e','d',' ','t','o',' ','i','m','p','o','r','t','t','a','l','i','b','.','c','o','l','l','e','c','t','i','o','n','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','r','d','e','r','e','d','d','i','c','t','t','a','l','i','b','.','p','a','n','d','a','s','t','a','l','i','b','.','p','o','l','a','r','s','t','a','l','i','b','.','s','y','s','t','a','l','i','b','.','t','h','r','e','a','d','i','n','g','t','a','l','i','b','.','w','a','r','n','i','n','g','s','t','a','l','i','b','/','_','a','b','s','t','r','a','c','t','.','p','x','i','t','a','l','i','b','/','_','c','o','m','m','o','n','.','p','x','i','t','a','l','i','b','/','_','f','u','n','c','.','p','x','i','t','a','l','i','b','/','_','s','t','r','e','a','m','.','p','x','i','t','o','o',' ','m','a','n','y',' ','i','n','p','u','t',' ','a','r','r','a','y','s','u','n','s','t','a','b','l','e',' ','p','e','r','i','o','d',' ','\047','A','C','A','C','C','B','A','N','D','S','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','A','C','C','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','O','S','A','C','O','S','_','S','t','r','e','a','m','A','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','C','_','S','t','r','e','a','m','A','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','A','D','D','A','D','D','_','S','t','r','e','a','m','A','D','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','O','S','C','A','D','O','S','C','_','S','t','r','e','a','m','A','D','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','R','A','D','R','_','S','t','r','e','a','m','A','D','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','A','D','X','R','A','D','X','R','_','S','t','r','e','a','m','A','D','X','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','X','_','S','t','r','e','a','m','A','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','D','_','S','t','r','e','a','m','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','L','L','A','O','A','O','_','S','t','r','e','a','m','A','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','P','O','A','P','O','_','S','t','r','e','a','m','A','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','A','R','O','O','N','O','S','C','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','A','R','O','O','N','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','R','O','O','N','_','S','t','r','e','a','m','A','R','O','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','S','I','N','A','S','I','N','_','S','t','r','e','a','m','A','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','A','N','A','T','A','N','_','S','t','r','e','a','m','A','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','T','R','A','T','R','_','S','t','r','e','a','m','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','D','E','V','A','V','G','D','E','V','_','S','t','r','e','a','m','A','V','G','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','V','G','P','R','I','C','E','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','A','V','G','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','A','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','s','B','B','A','N','D','S','B','B','A','N','D','S','_','S','t','r','e','a','m','B','B','A','N','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','E','T','A','B','E','T','A','_','S','t','r','e','a','m','B','E','T','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','O','P','B','O','P','_','S','t','r','e','a','m','B','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','B','o','d','y','D','o','j','i','B','o','d','y','L','o','n','g','B','o','d','y','S','h','o','r','t','B','o','d','y','V','e','r','y','L','o','n','g','C','C','I','C','C','I','_','S','t','r','e','a','m','C','C','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','2','C','R','O','W','S','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','B','L','A','C','K','C','R','O','W','S','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','I','N','S','I','D','E','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','I','N','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','L','I','N','E','S','T','R','I','K','E','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','O','U','T','S','I','D','E','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','C','D','L','3','O','U','T','S','I','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','E','L','T','H','O','L','D','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','B','E','L','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','B','R','E','A','K','A','W','A','Y','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','C','D','L','B','R','E','A','K','A','W','A','Y','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','C','D','L','D','O','J','I','S','T','A','R','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','N','G','U','L','F','I','N','G','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','C','D','L','E','N','G','U','L','F','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','E','V','E','N','I','N','G','S','T','A','R','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','M','M','E','R','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','N','G','I','N','G','M','A','N','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','C','D','L','H','A','N','G','I','N','G','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','C','D','L','H','A','R','A','M','I','C','R','O','S','S','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','C','D','L','H','A','R','A','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','G','H','W','A','V','E','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','C','D','L','H','I','G','H','W','A','V','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','C','D','L','H','I','K','K','A','K','E','M','O','D','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','M','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','C','D','L','H','I','K','K','A','K','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','N','E','C','K','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','I','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','C','D','L','K','I','C','K','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','L','O','N','G','L','I','N','E','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','C','D','L','L','O','N','G','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','R','U','B','O','Z','U','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','C','D','L','M','A','R','U','B','O','Z','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','C','H','I','N','G','L','O','W','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','A','T','H','O','L','D','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','C','D','L','M','A','T','H','O','L','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','M','O','R','N','I','N','G','S','T','A','R','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','O','N','N','E','C','K','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','C','D','L','O','N','N','E','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','P','I','E','R','C','I','N','G','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','C','D','L','P','I','E','R','C','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','C','K','S','H','A','W','M','A','N','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','H','O','R','T','L','I','N','E','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','C','D','L','S','H','O','R','T','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','P','I','N','N','I','N','G','T','O','P','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','K','U','R','I','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','C','D','L','T','A','K','U','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','A','S','U','K','I','G','A','P','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','C','D','L','T','A','S','U','K','I','G','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','H','R','U','S','T','I','N','G','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','C','D','L','T','H','R','U','S','T','I','N','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','T','R','I','S','T','A','R','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','C','D','L','T','R','I','S','T','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','E','I','L','C','E','I','L','_','S','t','r','e','a','m','C','E','I','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','F','C','M','F','_','S','t','r','e','a','m','C','M','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','C','M','O','U','C','M','O','U','_','S','t','r','e','a','m','C','M','O','U','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','M','O','_','S','t','r','e','a','m','C','M','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','P','P','O','C','K','C','O','P','P','O','C','K','_','S','t','r','e','a','m','C','O','P','P','O','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','R','R','E','L','C','O','R','R','E','L','_','S','t','r','e','a','m','C','O','R','R','E','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','C','O','S','H','C','O','S','H','_','S','t','r','e','a','m','C','O','S','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','O','S','_','S','t','r','e','a','m','C','O','S','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','U','M','S','U','M','C','U','M','S','U','M','_','S','t','r','e','a','m','C','U','M','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','V','I','C','V','I','_','S','t','r','e','a','m','C','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','C','a','n','d','l','e','S','e','t','t','i','n','g','T','y','p','e','D','E','F','A','U','L','T','D','E','M','A','D','E','M','A','_','S','t','r','e','a','m','D','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','I','S','A','B','L','E','D','D','I','V','D','I','V','_','S','t','r','e','a','m','D','I','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','O','N','C','H','I','A','N','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','D','O','N','C','H','I','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','P','O','D','P','O','_','S','t','r','e','a','m','D','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','X','D','X','_','S','t','r','e','a','m','D','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','D','a','t','a','F','r','a','m','e','D','o','t','E','F','I','E','F','I','_','S','t','r','e','a','m','E','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','M','A','E','M','A','_','S','t','r','e','a','m','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','E','R','I','E','R','I','_','S','t','r','e','a','m','E','R','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','R','_','S','t','r','e','a','m','E','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','X','P','E','X','P','_','S','t','r','e','a','m','E','X','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','E','q','u','a','l','F','L','O','O','R','F','L','O','O','R','_','S','t','r','e','a','m','F','L','O','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','O','S','C','F','O','S','C','_','S','t','r','e','a','m','F','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','R','A','C','T','A','L','F','R','A','C','T','A','L','_','S','t','r','e','a','m','F','R','A','C','T','A','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','F','a','r','F','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','_','F','u','n','c','t','i','o','n','.','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','F','u','n','c','t','i','o','n','.','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','F','u','n','c','t','i','o','n','.','_','_','i','n','i','t','_','_','F','u','n','c','t','i','o','n','.','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','_','_','l','o','c','a','l','F','u','n','c','t','i','o','n','.','_','_','r','e','p','r','_','_','F','u','n','c','t','i','o','n','.','_','_','s','t','r','_','_','F','u','n','c','t','i','o','n','.','_','_','u','n','i','c','o','d','e','_','_','F','u','n','c','t','i','o','n','.','f','u','n','c','t','i','o','n','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','g','e','t','_','p','a','r','a','m','e','t','e','r','s','F','u','n','c','t','i','o','n','.','i','n','f','o','F','u','n','c','t','i','o','n','.','l','o','o','k','b','a','c','k','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','f','l','a','g','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','o','u','t','p','u','t','s','F','u','n','c','t','i','o','n','.','r','u','n','F','u','n','c','t','i','o','n','.','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','F','u','n','c','t','i','o','n','.','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','F','u','n','c','t','i','o','n','.','s','e','t','_','p','a','r','a','m','e','t','e','r','s','H','A','H','A','_','S','t','r','e','a','m','H','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','M','A','H','M','A','_','S','t','r','e','a','m','H','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','E','R','I','O','D','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','H','T','_','D','C','P','E','R','I','O','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','D','C','P','H','A','S','E','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','H','T','_','D','C','P','H','A','S','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','P','H','A','S','O','R','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','H','T','_','P','H','A','S','O','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','S','I','N','E','H','T','_','S','I','N','E','_','S','t','r','e','a','m','H','T','_','S','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','L','I','N','E','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','L','I','N','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','T','_','T','R','E','N','D','M','O','D','E','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','H','T','_','T','R','E','N','D','M','O','D','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','H','i','g','h','L','o','w','H','i','s','t','o','g','r','a','m','I','M','I','I','M','I','_','S','t','r','e','a','m','I','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','I','n','s','u','f','f','i','c','i','e','n','t','H','i','s','t','o','r','y','K','A','M','A','K','A','M','A','_','S','t','r','e','a','m','K','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','C','K','C','_','S','t','r','e','a','m','K','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','K','D','J','K','D','J','_','S','t','r','e','a','m','K','D','J','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','L','I','N','E','A','R','R','E','G','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','N','L','N','_','S','t','r','e','a','m','L','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','O','G','1','0','L','O','G','1','0','_','S','t','r','e','a','m','L','O','G','1','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','L','i','n','e','M','A','M','A','C','D','M','A','C','D','E','X','T','M','A','C','D','E','X','T','_','S','t','r','e','a','m','M','A','C','D','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','F','I','X','M','A','C','D','F','I','X','_','S','t','r','e','a','m','M','A','C','D','F','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','C','D','_','S','t','r','e','a','m','M','A','C','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','M','A','M','A','M','A','_','S','t','r','e','a','m','M','A','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','R','K','E','T','F','I','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','M','A','R','K','E','T','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','S','S','I','M','A','S','S','I','_','S','t','r','e','a','m','M','A','S','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','V','P','M','A','V','P','_','S','t','r','e','a','m','M','A','V','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','M','A','X','I','N','D','E','X','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','X','_','S','t','r','e','a','m','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','S','t','r','e','a','m','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','A','_','T','y','p','e','M','A','_','T','y','p','e','.','_','_','g','e','t','i','t','e','m','_','_','M','A','_','T','y','p','e','.','_','_','i','n','i','t','_','_','M','E','D','P','R','I','C','E','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','M','E','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','F','I','M','F','I','_','S','t','r','e','a','m','M','F','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','O','I','N','T','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','M','I','D','P','O','I','N','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','D','P','R','I','C','E','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','M','I','D','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','I','N','I','N','D','E','X','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','M','I','N','M','A','X','I','N','D','E','X','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','M','I','N','M','A','X','I','N','D','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','M','A','X','_','S','t','r','e','a','m','M','I','N','M','A','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','I','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','M','I','N','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','U','S','_','D','M','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','M','I','N','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','I','N','_','S','t','r','e','a','m','M','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','O','M','M','O','M','_','S','t','r','e','a','m','M','O','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','M','U','L','T','M','U','L','T','_','S','t','r','e','a','m','M','U','L','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','A','T','R','N','A','T','R','_','S','t','r','e','a','m','N','A','T','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','O','N','E','N','V','I','N','V','I','_','S','t','r','e','a','m','N','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','N','e','a','r','O','B','V','O','B','V','_','S','t','r','e','a','m','O','B','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','O','r','d','e','r','e','d','D','i','c','t','O','u','t','R','a','n','g','e','P','E','R','C','E','N','T','I','L','E','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','P','E','R','C','E','N','T','I','L','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','E','R','C','E','N','T','R','A','N','K','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','P','E','R','C','E','N','T','R','A','N','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','I','P','L','U','S','_','D','I','_','S','t','r','e','a','m','P','L','U','S','_','D','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','L','U','S','_','D','M','P','L','U','S','_','D','M','_','S','t','r','e','a','m','P','L','U','S','_','D','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','P','O','P','P','O','_','S','t','r','e','a','m','P','P','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','I','P','V','I','_','S','t','r','e','a','m','P','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','O','P','V','O','_','S','t','r','e','a','m','P','V','O','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','P','V','T','P','V','T','_','S','t','r','e','a','m','P','V','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Q','S','T','I','C','K','Q','S','T','I','C','K','_','S','t','r','e','a','m','Q','S','T','I','C','K','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','M','A','R','M','A','_','S','t','r','e','a','m','R','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','O','C','P','R','O','C','P','_','S','t','r','e','a','m','R','O','C','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','R','O','C','R','1','0','0','R','O','C','R','1','0','0','_','S','t','r','e','a','m','R','O','C','R','1','0','0','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','R','_','S','t','r','e','a','m','R','O','C','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','O','C','_','S','t','r','e','a','m','R','O','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','S','I','R','S','I','_','S','t','r','e','a','m','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','I','R','V','I','_','S','t','r','e','a','m','R','V','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','V','O','L','R','V','O','L','_','S','t','r','e','a','m','R','V','O','L','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','R','a','n','g','e','T','y','p','e','R','e','a','l','B','o','d','y','S','A','R','S','A','R','E','X','T','S','A','R','E','X','T','_','S','t','r','e','a','m','S','A','R','E','X','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','A','R','_','S','t','r','e','a','m','S','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','S','I','N','H','S','I','N','H','_','S','t','r','e','a','m','S','I','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','I','N','_','S','t','r','e','a','m','S','I','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','A','S','M','A','_','S','t','r','e','a','m','S','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','M','I','S','M','I','_','S','t','r','e','a','m','S','M','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','Q','R','T','S','Q','R','T','_','S','t','r','e','a','m','S','Q','R','T','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','D','D','E','V','S','T','D','D','E','V','_','S','t','r','e','a','m','S','T','D','D','E','V','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','S','T','O','C','H','F','S','T','O','C','H','F','_','S','t','r','e','a','m','S','T','O','C','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','R','S','I','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','S','T','O','C','H','R','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','T','O','C','H','_','S','t','r','e','a','m','S','T','O','C','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','B','S','U','B','_','S','t','r','e','a','m','S','U','B','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','M','S','U','M','_','S','t','r','e','a','m','S','U','M','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','U','P','E','R','T','R','E','N','D','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','S','U','P','E','R','T','R','E','N','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','S','e','r','i','e','s','S','h','a','d','o','w','L','o','n','g','S','h','a','d','o','w','S','h','o','r','t','S','h','a','d','o','w','V','e','r','y','L','o','n','g','S','h','a','d','o','w','V','e','r','y','S','h','o','r','t','S','h','a','d','o','w','s','S','t','r','e','a','m','S','t','r','e','a','m','.','_','_','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','d','e','e','p','c','o','p','y','_','_','S','t','r','e','a','m','.','_','_','r','e','d','u','c','e','_','_','T','3','T','3','_','S','t','r','e','a','m','T','3','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','T','A','N','H','T','A','N','H','_','S','t','r','e','a','m','T','A','N','H','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','N','_','S','t','r','e','a','m','T','A','N','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','A','_','A','C','T','A','_','A','C','C','B','A','N','D','S','T','A','_','A','C','C','B','A','N','D','S','_','C','l','o','n','e','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','T','A','_','A','C','C','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','C','B','A','N','D','S','_','P','e','e','k','T','A','_','A','C','C','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','A','C','C','B','A','N','D','S','_','V','a','l','u','e','T','A','_','A','C','O','S','T','A','_','A','C','O','S','_','C','l','o','n','e','T','A','_','A','C','O','S','_','O','p','e','n','T','A','_','A','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','O','S','_','P','e','e','k','T','A','_','A','C','O','S','_','U','p','d','a','t','e','T','A','_','A','C','O','S','_','V','a','l','u','e','T','A','_','A','C','_','C','l','o','n','e','T','A','_','A','C','_','O','p','e','n','T','A','_','A','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','C','_','P','e','e','k','T','A','_','A','C','_','U','p','d','a','t','e','T','A','_','A','C','_','V','a','l','u','e','T','A','_','A','D','T','A','_','A','D','D','T','A','_','A','D','D','_','C','l','o','n','e','T','A','_','A','D','D','_','O','p','e','n','T','A','_','A','D','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','D','_','P','e','e','k','T','A','_','A','D','D','_','U','p','d','a','t','e','T','A','_','A','D','D','_','V','a','l','u','e','T','A','_','A','D','O','S','C','T','A','_','A','D','O','S','C','_','C','l','o','n','e','T','A','_','A','D','O','S','C','_','O','p','e','n','T','A','_','A','D','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','O','S','C','_','P','e','e','k','T','A','_','A','D','O','S','C','_','U','p','d','a','t','e','T','A','_','A','D','O','S','C','_','V','a','l','u','e','T','A','_','A','D','R','T','A','_','A','D','R','_','C','l','o','n','e','T','A','_','A','D','R','_','O','p','e','n','T','A','_','A','D','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','R','_','P','e','e','k','T','A','_','A','D','R','_','U','p','d','a','t','e','T','A','_','A','D','R','_','V','a','l','u','e','T','A','_','A','D','X','T','A','_','A','D','X','R','T','A','_','A','D','X','R','_','C','l','o','n','e','T','A','_','A','D','X','R','_','O','p','e','n','T','A','_','A','D','X','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','R','_','P','e','e','k','T','A','_','A','D','X','R','_','U','p','d','a','t','e','T','A','_','A','D','X','R','_','V','a','l','u','e','T','A','_','A','D','X','_','C','l','o','n','e','T','A','_','A','D','X','_','O','p','e','n','T','A','_','A','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','X','_','P','e','e','k','T','A','_','A','D','X','_','U','p','d','a','t','e','T','A','_','A','D','X','_','V','a','l','u','e','T','A','_','A','D','_','C','l','o','n','e','T','A','_','A','D','_','O','p','e','n','T','A','_','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','D','_','P','e','e','k','T','A','_','A','D','_','U','p','d','a','t','e','T','A','_','A','D','_','V','a','l','u','e','T','A','_','A','O','T','A','_','A','O','_','C','l','o','n','e','T','A','_','A','O','_','O','p','e','n','T','A','_','A','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','O','_','P','e','e','k','T','A','_','A','O','_','U','p','d','a','t','e','T','A','_','A','O','_','V','a','l','u','e','T','A','_','A','P','O','T','A','_','A','P','O','_','C','l','o','n','e','T','A','_','A','P','O','_','O','p','e','n','T','A','_','A','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','P','O','_','P','e','e','k','T','A','_','A','P','O','_','U','p','d','a','t','e','T','A','_','A','P','O','_','V','a','l','u','e','T','A','_','A','R','O','O','N','T','A','_','A','R','O','O','N','O','S','C','T','A','_','A','R','O','O','N','O','S','C','_','C','l','o','n','e','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','T','A','_','A','R','O','O','N','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','O','S','C','_','P','e','e','k','T','A','_','A','R','O','O','N','O','S','C','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','O','S','C','_','V','a','l','u','e','T','A','_','A','R','O','O','N','_','C','l','o','n','e','T','A','_','A','R','O','O','N','_','O','p','e','n','T','A','_','A','R','O','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','R','O','O','N','_','P','e','e','k','T','A','_','A','R','O','O','N','_','U','p','d','a','t','e','T','A','_','A','R','O','O','N','_','V','a','l','u','e','T','A','_','A','S','I','N','T','A','_','A','S','I','N','_','C','l','o','n','e','T','A','_','A','S','I','N','_','O','p','e','n','T','A','_','A','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','S','I','N','_','P','e','e','k','T','A','_','A','S','I','N','_','U','p','d','a','t','e','T','A','_','A','S','I','N','_','V','a','l','u','e','T','A','_','A','T','A','N','T','A','_','A','T','A','N','_','C','l','o','n','e','T','A','_','A','T','A','N','_','O','p','e','n','T','A','_','A','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','A','N','_','P','e','e','k','T','A','_','A','T','A','N','_','U','p','d','a','t','e','T','A','_','A','T','A','N','_','V','a','l','u','e','T','A','_','A','T','R','T','A','_','A','T','R','_','C','l','o','n','e','T','A','_','A','T','R','_','O','p','e','n','T','A','_','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','T','R','_','P','e','e','k','T','A','_','A','T','R','_','U','p','d','a','t','e','T','A','_','A','T','R','_','V','a','l','u','e','T','A','_','A','V','G','D','E','V','T','A','_','A','V','G','D','E','V','_','C','l','o','n','e','T','A','_','A','V','G','D','E','V','_','O','p','e','n','T','A','_','A','V','G','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','D','E','V','_','P','e','e','k','T','A','_','A','V','G','D','E','V','_','U','p','d','a','t','e','T','A','_','A','V','G','D','E','V','_','V','a','l','u','e','T','A','_','A','V','G','P','R','I','C','E','T','A','_','A','V','G','P','R','I','C','E','_','C','l','o','n','e','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','T','A','_','A','V','G','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','A','V','G','P','R','I','C','E','_','P','e','e','k','T','A','_','A','V','G','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','A','V','G','P','R','I','C','E','_','V','a','l','u','e','T','A','_','B','B','A','N','D','S','T','A','_','B','B','A','N','D','S','_','C','l','o','n','e','T','A','_','B','B','A','N','D','S','_','O','p','e','n','T','A','_','B','B','A','N','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','B','A','N','D','S','_','P','e','e','k','T','A','_','B','B','A','N','D','S','_','U','p','d','a','t','e','T','A','_','B','B','A','N','D','S','_','V','a','l','u','e','T','A','_','B','E','T','A','T','A','_','B','E','T','A','_','C','l','o','n','e','T','A','_','B','E','T','A','_','O','p','e','n','T','A','_','B','E','T','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','E','T','A','_','P','e','e','k','T','A','_','B','E','T','A','_','U','p','d','a','t','e','T','A','_','B','E','T','A','_','V','a','l','u','e','T','A','_','B','O','P','T','A','_','B','O','P','_','C','l','o','n','e','T','A','_','B','O','P','_','O','p','e','n','T','A','_','B','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','B','O','P','_','P','e','e','k','T','A','_','B','O','P','_','U','p','d','a','t','e','T','A','_','B','O','P','_','V','a','l','u','e','T','A','_','C','C','I','T','A','_','C','C','I','_','C','l','o','n','e','T','A','_','C','C','I','_','O','p','e','n','T','A','_','C','C','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','C','I','_','P','e','e','k','T','A','_','C','C','I','_','U','p','d','a','t','e','T','A','_','C','C','I','_','V','a','l','u','e','T','A','_','C','D','L','2','C','R','O','W','S','T','A','_','C','D','L','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','B','L','A','C','K','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','3','I','N','S','I','D','E','T','A','_','C','D','L','3','I','N','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','I','N','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','I','N','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','I','N','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','I','N','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','C','l','o','n','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','P','e','e','k','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','L','I','N','E','S','T','R','I','K','E','_','V','a','l','u','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','C','l','o','n','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','P','e','e','k','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','U','p','d','a','t','e','T','A','_','C','D','L','3','O','U','T','S','I','D','E','_','V','a','l','u','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','C','l','o','n','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','P','e','e','k','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','3','S','T','A','R','S','I','N','S','O','U','T','H','_','V','a','l','u','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','C','l','o','n','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','P','e','e','k','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','U','p','d','a','t','e','T','A','_','C','D','L','3','W','H','I','T','E','S','O','L','D','I','E','R','S','_','V','a','l','u','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','C','l','o','n','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','P','e','e','k','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','A','B','A','N','D','O','N','E','D','B','A','B','Y','_','V','a','l','u','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','C','l','o','n','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','P','e','e','k','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','A','D','V','A','N','C','E','B','L','O','C','K','_','V','a','l','u','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','B','E','L','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','C','l','o','n','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','P','e','e','k','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','U','p','d','a','t','e','T','A','_','C','D','L','B','R','E','A','K','A','W','A','Y','_','V','a','l','u','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','C','L','O','S','I','N','G','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','C','l','o','n','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','P','e','e','k','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','N','C','E','A','L','B','A','B','Y','S','W','A','L','L','_','V','a','l','u','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','C','l','o','n','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','P','e','e','k','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','C','O','U','N','T','E','R','A','T','T','A','C','K','_','V','a','l','u','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','P','e','e','k','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','A','R','K','C','L','O','U','D','C','O','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','T','A','_','C','D','L','D','O','J','I','S','T','A','R','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','D','R','A','G','O','N','F','L','Y','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','P','e','e','k','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','E','N','G','U','L','F','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','E','V','E','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','C','l','o','n','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','P','e','e','k','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','U','p','d','a','t','e','T','A','_','C','D','L','G','A','P','S','I','D','E','S','I','D','E','W','H','I','T','E','_','V','a','l','u','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','G','R','A','V','E','S','T','O','N','E','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','H','A','M','M','E','R','T','A','_','C','D','L','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','P','e','e','k','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','N','G','I','N','G','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','C','R','O','S','S','_','V','a','l','u','e','T','A','_','C','D','L','H','A','R','A','M','I','_','C','l','o','n','e','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','T','A','_','C','D','L','H','A','R','A','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','A','R','A','M','I','_','P','e','e','k','T','A','_','C','D','L','H','A','R','A','M','I','_','U','p','d','a','t','e','T','A','_','C','D','L','H','A','R','A','M','I','_','V','a','l','u','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','P','e','e','k','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','G','H','W','A','V','E','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','M','O','D','_','V','a','l','u','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','C','l','o','n','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','T','A','_','C','D','L','H','I','K','K','A','K','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','I','K','K','A','K','E','_','P','e','e','k','T','A','_','C','D','L','H','I','K','K','A','K','E','_','U','p','d','a','t','e','T','A','_','C','D','L','H','I','K','K','A','K','E','_','V','a','l','u','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','C','l','o','n','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','P','e','e','k','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','U','p','d','a','t','e','T','A','_','C','D','L','H','O','M','I','N','G','P','I','G','E','O','N','_','V','a','l','u','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','I','D','E','N','T','I','C','A','L','3','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','I','N','N','E','C','K','T','A','_','C','D','L','I','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','I','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','I','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','C','l','o','n','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','P','e','e','k','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','I','N','V','E','R','T','E','D','H','A','M','M','E','R','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','B','Y','L','E','N','G','T','H','_','V','a','l','u','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','T','A','_','C','D','L','K','I','C','K','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','K','I','C','K','I','N','G','_','P','e','e','k','T','A','_','C','D','L','K','I','C','K','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','K','I','C','K','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','C','l','o','n','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','P','e','e','k','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','U','p','d','a','t','e','T','A','_','C','D','L','L','A','D','D','E','R','B','O','T','T','O','M','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','E','G','G','E','D','D','O','J','I','_','V','a','l','u','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','L','O','N','G','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','C','l','o','n','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','P','e','e','k','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','R','U','B','O','Z','U','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','P','e','e','k','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','C','H','I','N','G','L','O','W','_','V','a','l','u','e','T','A','_','C','D','L','M','A','T','H','O','L','D','T','A','_','C','D','L','M','A','T','H','O','L','D','_','C','l','o','n','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','T','A','_','C','D','L','M','A','T','H','O','L','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','A','T','H','O','L','D','_','P','e','e','k','T','A','_','C','D','L','M','A','T','H','O','L','D','_','U','p','d','a','t','e','T','A','_','C','D','L','M','A','T','H','O','L','D','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','D','O','J','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','M','O','R','N','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','O','N','N','E','C','K','T','A','_','C','D','L','O','N','N','E','C','K','_','C','l','o','n','e','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','T','A','_','C','D','L','O','N','N','E','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','O','N','N','E','C','K','_','P','e','e','k','T','A','_','C','D','L','O','N','N','E','C','K','_','U','p','d','a','t','e','T','A','_','C','D','L','O','N','N','E','C','K','_','V','a','l','u','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','P','e','e','k','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','P','I','E','R','C','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','C','l','o','n','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','P','e','e','k','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','C','K','S','H','A','W','M','A','N','_','V','a','l','u','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','R','I','S','E','F','A','L','L','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','C','l','o','n','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','P','e','e','k','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','U','p','d','a','t','e','T','A','_','C','D','L','S','E','P','A','R','A','T','I','N','G','L','I','N','E','S','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','O','T','I','N','G','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','C','l','o','n','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','P','e','e','k','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','U','p','d','a','t','e','T','A','_','C','D','L','S','H','O','R','T','L','I','N','E','_','V','a','l','u','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','C','l','o','n','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','P','e','e','k','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','U','p','d','a','t','e','T','A','_','C','D','L','S','P','I','N','N','I','N','G','T','O','P','_','V','a','l','u','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','C','l','o','n','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','P','e','e','k','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','A','L','L','E','D','P','A','T','T','E','R','N','_','V','a','l','u','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','C','l','o','n','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','P','e','e','k','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','U','p','d','a','t','e','T','A','_','C','D','L','S','T','I','C','K','S','A','N','D','W','I','C','H','_','V','a','l','u','e','T','A','_','C','D','L','T','A','K','U','R','I','T','A','_','C','D','L','T','A','K','U','R','I','_','C','l','o','n','e','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','T','A','_','C','D','L','T','A','K','U','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','K','U','R','I','_','P','e','e','k','T','A','_','C','D','L','T','A','K','U','R','I','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','K','U','R','I','_','V','a','l','u','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','C','l','o','n','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','P','e','e','k','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','U','p','d','a','t','e','T','A','_','C','D','L','T','A','S','U','K','I','G','A','P','_','V','a','l','u','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','C','l','o','n','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','P','e','e','k','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','U','p','d','a','t','e','T','A','_','C','D','L','T','H','R','U','S','T','I','N','G','_','V','a','l','u','e','T','A','_','C','D','L','T','R','I','S','T','A','R','T','A','_','C','D','L','T','R','I','S','T','A','R','_','C','l','o','n','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','T','A','_','C','D','L','T','R','I','S','T','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','T','R','I','S','T','A','R','_','P','e','e','k','T','A','_','C','D','L','T','R','I','S','T','A','R','_','U','p','d','a','t','e','T','A','_','C','D','L','T','R','I','S','T','A','R','_','V','a','l','u','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','C','l','o','n','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','P','e','e','k','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','U','p','d','a','t','e','T','A','_','C','D','L','U','N','I','Q','U','E','3','R','I','V','E','R','_','V','a','l','u','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','C','l','o','n','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','P','e','e','k','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','U','p','d','a','t','e','T','A','_','C','D','L','U','P','S','I','D','E','G','A','P','2','C','R','O','W','S','_','V','a','l','u','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','C','l','o','n','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','P','e','e','k','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','U','p','d','a','t','e','T','A','_','C','D','L','X','S','I','D','E','G','A','P','3','M','E','T','H','O','D','S','_','V','a','l','u','e','T','A','_','C','E','I','L','T','A','_','C','E','I','L','_','C','l','o','n','e','T','A','_','C','E','I','L','_','O','p','e','n','T','A','_','C','E','I','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','E','I','L','_','P','e','e','k','T','A','_','C','E','I','L','_','U','p','d','a','t','e','T','A','_','C','E','I','L','_','V','a','l','u','e','T','A','_','C','M','F','T','A','_','C','M','F','_','C','l','o','n','e','T','A','_','C','M','F','_','O','p','e','n','T','A','_','C','M','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','F','_','P','e','e','k','T','A','_','C','M','F','_','U','p','d','a','t','e','T','A','_','C','M','F','_','V','a','l','u','e','T','A','_','C','M','O','T','A','_','C','M','O','U','T','A','_','C','M','O','U','_','C','l','o','n','e','T','A','_','C','M','O','U','_','O','p','e','n','T','A','_','C','M','O','U','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','U','_','P','e','e','k','T','A','_','C','M','O','U','_','U','p','d','a','t','e','T','A','_','C','M','O','U','_','V','a','l','u','e','T','A','_','C','M','O','_','C','l','o','n','e','T','A','_','C','M','O','_','O','p','e','n','T','A','_','C','M','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','M','O','_','P','e','e','k','T','A','_','C','M','O','_','U','p','d','a','t','e','T','A','_','C','M','O','_','V','a','l','u','e','T','A','_','C','O','P','P','O','C','K','T','A','_','C','O','P','P','O','C','K','_','C','l','o','n','e','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','T','A','_','C','O','P','P','O','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','P','P','O','C','K','_','P','e','e','k','T','A','_','C','O','P','P','O','C','K','_','U','p','d','a','t','e','T','A','_','C','O','P','P','O','C','K','_','V','a','l','u','e','T','A','_','C','O','R','R','E','L','T','A','_','C','O','R','R','E','L','_','C','l','o','n','e','T','A','_','C','O','R','R','E','L','_','O','p','e','n','T','A','_','C','O','R','R','E','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','R','R','E','L','_','P','e','e','k','T','A','_','C','O','R','R','E','L','_','U','p','d','a','t','e','T','A','_','C','O','R','R','E','L','_','V','a','l','u','e','T','A','_','C','O','S','T','A','_','C','O','S','H','T','A','_','C','O','S','H','_','C','l','o','n','e','T','A','_','C','O','S','H','_','O','p','e','n','T','A','_','C','O','S','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','H','_','P','e','e','k','T','A','_','C','O','S','H','_','U','p','d','a','t','e','T','A','_','C','O','S','H','_','V','a','l','u','e','T','A','_','C','O','S','_','C','l','o','n','e','T','A','_','C','O','S','_','O','p','e','n','T','A','_','C','O','S','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','O','S','_','P','e','e','k','T','A','_','C','O','S','_','U','p','d','a','t','e','T','A','_','C','O','S','_','V','a','l','u','e','T','A','_','C','U','M','S','U','M','T','A','_','C','U','M','S','U','M','_','C','l','o','n','e','T','A','_','C','U','M','S','U','M','_','O','p','e','n','T','A','_','C','U','M','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','U','M','S','U','M','_','P','e','e','k','T','A','_','C','U','M','S','U','M','_','U','p','d','a','t','e','T','A','_','C','U','M','S','U','M','_','V','a','l','u','e','T','A','_','C','V','I','T','A','_','C','V','I','_','C','l','o','n','e','T','A','_','C','V','I','_','O','p','e','n','T','A','_','C','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','C','V','I','_','P','e','e','k','T','A','_','C','V','I','_','U','p','d','a','t','e','T','A','_','C','V','I','_','V','a','l','u','e','T','A','_','D','E','M','A','T','A','_','D','E','M','A','_','C','l','o','n','e','T','A','_','D','E','M','A','_','O','p','e','n','T','A','_','D','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','E','M','A','_','P','e','e','k','T','A','_','D','E','M','A','_','U','p','d','a','t','e','T','A','_','D','E','M','A','_','V','a','l','u','e','T','A','_','D','I','V','T','A','_','D','I','V','_','C','l','o','n','e','T','A','_','D','I','V','_','O','p','e','n','T','A','_','D','I','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','I','V','_','P','e','e','k','T','A','_','D','I','V','_','U','p','d','a','t','e','T','A','_','D','I','V','_','V','a','l','u','e','T','A','_','D','O','N','C','H','I','A','N','T','A','_','D','O','N','C','H','I','A','N','_','C','l','o','n','e','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','T','A','_','D','O','N','C','H','I','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','O','N','C','H','I','A','N','_','P','e','e','k','T','A','_','D','O','N','C','H','I','A','N','_','U','p','d','a','t','e','T','A','_','D','O','N','C','H','I','A','N','_','V','a','l','u','e','T','A','_','D','P','O','T','A','_','D','P','O','_','C','l','o','n','e','T','A','_','D','P','O','_','O','p','e','n','T','A','_','D','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','P','O','_','P','e','e','k','T','A','_','D','P','O','_','U','p','d','a','t','e','T','A','_','D','P','O','_','V','a','l','u','e','T','A','_','D','X','T','A','_','D','X','_','C','l','o','n','e','T','A','_','D','X','_','O','p','e','n','T','A','_','D','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','D','X','_','P','e','e','k','T','A','_','D','X','_','U','p','d','a','t','e','T','A','_','D','X','_','V','a','l','u','e','T','A','_','E','F','I','T','A','_','E','F','I','_','C','l','o','n','e','T','A','_','E','F','I','_','O','p','e','n','T','A','_','E','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','F','I','_','P','e','e','k','T','A','_','E','F','I','_','U','p','d','a','t','e','T','A','_','E','F','I','_','V','a','l','u','e','T','A','_','E','M','A','T','A','_','E','M','A','_','C','l','o','n','e','T','A','_','E','M','A','_','O','p','e','n','T','A','_','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','M','A','_','P','e','e','k','T','A','_','E','M','A','_','U','p','d','a','t','e','T','A','_','E','M','A','_','V','a','l','u','e','T','A','_','E','R','T','A','_','E','R','I','T','A','_','E','R','I','_','C','l','o','n','e','T','A','_','E','R','I','_','O','p','e','n','T','A','_','E','R','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','I','_','P','e','e','k','T','A','_','E','R','I','_','U','p','d','a','t','e','T','A','_','E','R','I','_','V','a','l','u','e','T','A','_','E','R','_','C','l','o','n','e','T','A','_','E','R','_','O','p','e','n','T','A','_','E','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','R','_','P','e','e','k','T','A','_','E','R','_','U','p','d','a','t','e','T','A','_','E','R','_','V','a','l','u','e','T','A','_','E','X','P','T','A','_','E','X','P','_','C','l','o','n','e','T','A','_','E','X','P','_','O','p','e','n','T','A','_','E','X','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','E','X','P','_','P','e','e','k','T','A','_','E','X','P','_','U','p','d','a','t','e','T','A','_','E','X','P','_','V','a','l','u','e','T','A','_','F','L','O','O','R','T','A','_','F','L','O','O','R','_','C','l','o','n','e','T','A','_','F','L','O','O','R','_','O','p','e','n','T','A','_','F','L','O','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','L','O','O','R','_','P','e','e','k','T','A','_','F','L','O','O','R','_','U','p','d','a','t','e','T','A','_','F','L','O','O','R','_','V','a','l','u','e','T','A','_','F','O','S','C','T','A','_','F','O','S','C','_','C','l','o','n','e','T','A','_','F','O','S','C','_','O','p','e','n','T','A','_','F','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','O','S','C','_','P','e','e','k','T','A','_','F','O','S','C','_','U','p','d','a','t','e','T','A','_','F','O','S','C','_','V','a','l','u','e','T','A','_','F','R','A','C','T','A','L','T','A','_','F','R','A','C','T','A','L','_','C','l','o','n','e','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','T','A','_','F','R','A','C','T','A','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','F','R','A','C','T','A','L','_','P','e','e','k','T','A','_','F','R','A','C','T','A','L','_','U','p','d','a','t','e','T','A','_','F','R','A','C','T','A','L','_','V','a','l','u','e','T','A','_','F','U','N','C','_','F','L','A','G','S','T','A','_','F','u','n','c','T','a','b','l','e','A','l','l','o','c','T','A','_','F','u','n','c','T','a','b','l','e','F','r','e','e','T','A','_','G','e','t','F','u','n','c','H','a','n','d','l','e','T','A','_','G','e','t','F','u','n','c','I','n','f','o','T','A','_','G','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','L','o','o','k','b','a','c','k','T','A','_','G','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','T','A','_','G','r','o','u','p','T','a','b','l','e','A','l','l','o','c','T','A','_','G','r','o','u','p','T','a','b','l','e','F','r','e','e','T','A','_','H','A','T','A','_','H','A','_','C','l','o','n','e','T','A','_','H','A','_','O','p','e','n','T','A','_','H','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','A','_','P','e','e','k','T','A','_','H','A','_','U','p','d','a','t','e','T','A','_','H','A','_','V','a','l','u','e','T','A','_','H','M','A','T','A','_','H','M','A','_','C','l','o','n','e','T','A','_','H','M','A','_','O','p','e','n','T','A','_','H','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','M','A','_','P','e','e','k','T','A','_','H','M','A','_','U','p','d','a','t','e','T','A','_','H','M','A','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','P','e','e','k','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','E','R','I','O','D','_','V','a','l','u','e','T','A','_','H','T','_','D','C','P','H','A','S','E','T','A','_','H','T','_','D','C','P','H','A','S','E','_','C','l','o','n','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','T','A','_','H','T','_','D','C','P','H','A','S','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','D','C','P','H','A','S','E','_','P','e','e','k','T','A','_','H','T','_','D','C','P','H','A','S','E','_','U','p','d','a','t','e','T','A','_','H','T','_','D','C','P','H','A','S','E','_','V','a','l','u','e','T','A','_','H','T','_','P','H','A','S','O','R','T','A','_','H','T','_','P','H','A','S','O','R','_','C','l','o','n','e','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','T','A','_','H','T','_','P','H','A','S','O','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','P','H','A','S','O','R','_','P','e','e','k','T','A','_','H','T','_','P','H','A','S','O','R','_','U','p','d','a','t','e','T','A','_','H','T','_','P','H','A','S','O','R','_','V','a','l','u','e','T','A','_','H','T','_','S','I','N','E','T','A','_','H','T','_','S','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','T','A','_','H','T','_','S','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','S','I','N','E','_','P','e','e','k','T','A','_','H','T','_','S','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','S','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','L','I','N','E','_','V','a','l','u','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','C','l','o','n','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','P','e','e','k','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','U','p','d','a','t','e','T','A','_','H','T','_','T','R','E','N','D','M','O','D','E','_','V','a','l','u','e','T','A','_','I','M','I','T','A','_','I','M','I','_','C','l','o','n','e','T','A','_','I','M','I','_','O','p','e','n','T','A','_','I','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','I','M','I','_','P','e','e','k','T','A','_','I','M','I','_','U','p','d','a','t','e','T','A','_','I','M','I','_','V','a','l','u','e','T','A','_','I','N','P','U','T','_','F','L','A','G','S','T','A','_','I','n','i','t','i','a','l','i','z','e','T','A','_','K','A','M','A','T','A','_','K','A','M','A','_','C','l','o','n','e','T','A','_','K','A','M','A','_','O','p','e','n','T','A','_','K','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','A','M','A','_','P','e','e','k','T','A','_','K','A','M','A','_','U','p','d','a','t','e','T','A','_','K','A','M','A','_','V','a','l','u','e','T','A','_','K','C','T','A','_','K','C','_','C','l','o','n','e','T','A','_','K','C','_','O','p','e','n','T','A','_','K','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','C','_','P','e','e','k','T','A','_','K','C','_','U','p','d','a','t','e','T','A','_','K','C','_','V','a','l','u','e','T','A','_','K','D','J','T','A','_','K','D','J','_','C','l','o','n','e','T','A','_','K','D','J','_','O','p','e','n','T','A','_','K','D','J','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','K','D','J','_','P','e','e','k','T','A','_','K','D','J','_','U','p','d','a','t','e','T','A','_','K','D','J','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','A','N','G','L','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','I','N','T','E','R','C','E','P','T','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','C','l','o','n','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','P','e','e','k','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','S','L','O','P','E','_','V','a','l','u','e','T','A','_','L','I','N','E','A','R','R','E','G','_','U','p','d','a','t','e','T','A','_','L','I','N','E','A','R','R','E','G','_','V','a','l','u','e','T','A','_','L','N','T','A','_','L','N','_','C','l','o','n','e','T','A','_','L','N','_','O','p','e','n','T','A','_','L','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','N','_','P','e','e','k','T','A','_','L','N','_','U','p','d','a','t','e','T','A','_','L','N','_','V','a','l','u','e','T','A','_','L','O','G','1','0','T','A','_','L','O','G','1','0','_','C','l','o','n','e','T','A','_','L','O','G','1','0','_','O','p','e','n','T','A','_','L','O','G','1','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','L','O','G','1','0','_','P','e','e','k','T','A','_','L','O','G','1','0','_','U','p','d','a','t','e','T','A','_','L','O','G','1','0','_','V','a','l','u','e','T','A','_','M','A','T','A','_','M','A','C','D','T','A','_','M','A','C','D','E','X','T','T','A','_','M','A','C','D','E','X','T','_','C','l','o','n','e','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','T','A','_','M','A','C','D','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','E','X','T','_','P','e','e','k','T','A','_','M','A','C','D','E','X','T','_','U','p','d','a','t','e','T','A','_','M','A','C','D','E','X','T','_','V','a','l','u','e','T','A','_','M','A','C','D','F','I','X','T','A','_','M','A','C','D','F','I','X','_','C','l','o','n','e','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','T','A','_','M','A','C','D','F','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','F','I','X','_','P','e','e','k','T','A','_','M','A','C','D','F','I','X','_','U','p','d','a','t','e','T','A','_','M','A','C','D','F','I','X','_','V','a','l','u','e','T','A','_','M','A','C','D','_','C','l','o','n','e','T','A','_','M','A','C','D','_','O','p','e','n','T','A','_','M','A','C','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','C','D','_','P','e','e','k','T','A','_','M','A','C','D','_','U','p','d','a','t','e','T','A','_','M','A','C','D','_','V','a','l','u','e','T','A','_','M','A','M','A','T','A','_','M','A','M','A','_','C','l','o','n','e','T','A','_','M','A','M','A','_','O','p','e','n','T','A','_','M','A','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','M','A','_','P','e','e','k','T','A','_','M','A','M','A','_','U','p','d','a','t','e','T','A','_','M','A','M','A','_','V','a','l','u','e','T','A','_','M','A','R','K','E','T','F','I','T','A','_','M','A','R','K','E','T','F','I','_','C','l','o','n','e','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','T','A','_','M','A','R','K','E','T','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','R','K','E','T','F','I','_','P','e','e','k','T','A','_','M','A','R','K','E','T','F','I','_','U','p','d','a','t','e','T','A','_','M','A','R','K','E','T','F','I','_','V','a','l','u','e','T','A','_','M','A','S','S','I','T','A','_','M','A','S','S','I','_','C','l','o','n','e','T','A','_','M','A','S','S','I','_','O','p','e','n','T','A','_','M','A','S','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','S','S','I','_','P','e','e','k','T','A','_','M','A','S','S','I','_','U','p','d','a','t','e','T','A','_','M','A','S','S','I','_','V','a','l','u','e','T','A','_','M','A','V','P','T','A','_','M','A','V','P','_','C','l','o','n','e','T','A','_','M','A','V','P','_','O','p','e','n','T','A','_','M','A','V','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','V','P','_','P','e','e','k','T','A','_','M','A','V','P','_','U','p','d','a','t','e','T','A','_','M','A','V','P','_','V','a','l','u','e','T','A','_','M','A','X','T','A','_','M','A','X','I','N','D','E','X','T','A','_','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','A','X','_','C','l','o','n','e','T','A','_','M','A','X','_','O','p','e','n','T','A','_','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','X','_','P','e','e','k','T','A','_','M','A','X','_','U','p','d','a','t','e','T','A','_','M','A','X','_','V','a','l','u','e','T','A','_','M','A','_','C','l','o','n','e','T','A','_','M','A','_','O','p','e','n','T','A','_','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','A','_','P','e','e','k','T','A','_','M','A','_','U','p','d','a','t','e','T','A','_','M','A','_','V','a','l','u','e','T','A','_','M','E','D','P','R','I','C','E','T','A','_','M','E','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','E','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','E','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','E','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','E','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','F','I','T','A','_','M','F','I','_','C','l','o','n','e','T','A','_','M','F','I','_','O','p','e','n','T','A','_','M','F','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','F','I','_','P','e','e','k','T','A','_','M','F','I','_','U','p','d','a','t','e','T','A','_','M','F','I','_','V','a','l','u','e','T','A','_','M','I','D','P','O','I','N','T','T','A','_','M','I','D','P','O','I','N','T','_','C','l','o','n','e','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','T','A','_','M','I','D','P','O','I','N','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','O','I','N','T','_','P','e','e','k','T','A','_','M','I','D','P','O','I','N','T','_','U','p','d','a','t','e','T','A','_','M','I','D','P','O','I','N','T','_','V','a','l','u','e','T','A','_','M','I','D','P','R','I','C','E','T','A','_','M','I','D','P','R','I','C','E','_','C','l','o','n','e','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','T','A','_','M','I','D','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','D','P','R','I','C','E','_','P','e','e','k','T','A','_','M','I','D','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','M','I','D','P','R','I','C','E','_','V','a','l','u','e','T','A','_','M','I','N','T','A','_','M','I','N','I','N','D','E','X','T','A','_','M','I','N','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','I','N','D','E','X','_','V','a','l','u','e','T','A','_','M','I','N','M','A','X','_','C','l','o','n','e','T','A','_','M','I','N','M','A','X','_','O','p','e','n','T','A','_','M','I','N','M','A','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','M','A','X','_','P','e','e','k','T','A','_','M','I','N','M','A','X','_','U','p','d','a','t','e','T','A','_','M','I','N','M','A','X','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','I','T','A','_','M','I','N','U','S','_','D','I','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','I','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','I','_','V','a','l','u','e','T','A','_','M','I','N','U','S','_','D','M','T','A','_','M','I','N','U','S','_','D','M','_','C','l','o','n','e','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','T','A','_','M','I','N','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','U','S','_','D','M','_','P','e','e','k','T','A','_','M','I','N','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','M','I','N','U','S','_','D','M','_','V','a','l','u','e','T','A','_','M','I','N','_','C','l','o','n','e','T','A','_','M','I','N','_','O','p','e','n','T','A','_','M','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','I','N','_','P','e','e','k','T','A','_','M','I','N','_','U','p','d','a','t','e','T','A','_','M','I','N','_','V','a','l','u','e','T','A','_','M','O','M','T','A','_','M','O','M','_','C','l','o','n','e','T','A','_','M','O','M','_','O','p','e','n','T','A','_','M','O','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','O','M','_','P','e','e','k','T','A','_','M','O','M','_','U','p','d','a','t','e','T','A','_','M','O','M','_','V','a','l','u','e','T','A','_','M','U','L','T','T','A','_','M','U','L','T','_','C','l','o','n','e','T','A','_','M','U','L','T','_','O','p','e','n','T','A','_','M','U','L','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','M','U','L','T','_','P','e','e','k','T','A','_','M','U','L','T','_','U','p','d','a','t','e','T','A','_','M','U','L','T','_','V','a','l','u','e','T','A','_','N','A','T','R','T','A','_','N','A','T','R','_','C','l','o','n','e','T','A','_','N','A','T','R','_','O','p','e','n','T','A','_','N','A','T','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','A','T','R','_','P','e','e','k','T','A','_','N','A','T','R','_','U','p','d','a','t','e','T','A','_','N','A','T','R','_','V','a','l','u','e','T','A','_','N','V','I','T','A','_','N','V','I','_','C','l','o','n','e','T','A','_','N','V','I','_','O','p','e','n','T','A','_','N','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','N','V','I','_','P','e','e','k','T','A','_','N','V','I','_','U','p','d','a','t','e','T','A','_','N','V','I','_','V','a','l','u','e','T','A','_','O','B','V','T','A','_','O','B','V','_','C','l','o','n','e','T','A','_','O','B','V','_','O','p','e','n','T','A','_','O','B','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','O','B','V','_','P','e','e','k','T','A','_','O','B','V','_','U','p','d','a','t','e','T','A','_','O','B','V','_','V','a','l','u','e','T','A','_','O','U','T','P','U','T','_','F','L','A','G','S','T','A','_','P','E','R','C','E','N','T','I','L','E','T','A','_','P','E','R','C','E','N','T','I','L','E','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','I','L','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','I','L','E','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','I','L','E','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','I','L','E','_','V','a','l','u','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','C','l','o','n','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','P','e','e','k','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','U','p','d','a','t','e','T','A','_','P','E','R','C','E','N','T','R','A','N','K','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','I','T','A','_','P','L','U','S','_','D','I','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','T','A','_','P','L','U','S','_','D','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','I','_','P','e','e','k','T','A','_','P','L','U','S','_','D','I','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','I','_','V','a','l','u','e','T','A','_','P','L','U','S','_','D','M','T','A','_','P','L','U','S','_','D','M','_','C','l','o','n','e','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','T','A','_','P','L','U','S','_','D','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','L','U','S','_','D','M','_','P','e','e','k','T','A','_','P','L','U','S','_','D','M','_','U','p','d','a','t','e','T','A','_','P','L','U','S','_','D','M','_','V','a','l','u','e','T','A','_','P','P','O','T','A','_','P','P','O','_','C','l','o','n','e','T','A','_','P','P','O','_','O','p','e','n','T','A','_','P','P','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','P','O','_','P','e','e','k','T','A','_','P','P','O','_','U','p','d','a','t','e','T','A','_','P','P','O','_','V','a','l','u','e','T','A','_','P','V','I','T','A','_','P','V','I','_','C','l','o','n','e','T','A','_','P','V','I','_','O','p','e','n','T','A','_','P','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','I','_','P','e','e','k','T','A','_','P','V','I','_','U','p','d','a','t','e','T','A','_','P','V','I','_','V','a','l','u','e','T','A','_','P','V','O','T','A','_','P','V','O','_','C','l','o','n','e','T','A','_','P','V','O','_','O','p','e','n','T','A','_','P','V','O','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','O','_','P','e','e','k','T','A','_','P','V','O','_','U','p','d','a','t','e','T','A','_','P','V','O','_','V','a','l','u','e','T','A','_','P','V','T','T','A','_','P','V','T','_','C','l','o','n','e','T','A','_','P','V','T','_','O','p','e','n','T','A','_','P','V','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','P','V','T','_','P','e','e','k','T','A','_','P','V','T','_','U','p','d','a','t','e','T','A','_','P','V','T','_','V','a','l','u','e','T','A','_','P','a','r','a','m','H','o','l','d','e','r','A','l','l','o','c','T','A','_','P','a','r','a','m','H','o','l','d','e','r','F','r','e','e','T','A','_','Q','S','T','I','C','K','T','A','_','Q','S','T','I','C','K','_','C','l','o','n','e','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','T','A','_','Q','S','T','I','C','K','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Q','S','T','I','C','K','_','P','e','e','k','T','A','_','Q','S','T','I','C','K','_','U','p','d','a','t','e','T','A','_','Q','S','T','I','C','K','_','V','a','l','u','e','T','A','_','R','M','A','T','A','_','R','M','A','_','C','l','o','n','e','T','A','_','R','M','A','_','O','p','e','n','T','A','_','R','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','M','A','_','P','e','e','k','T','A','_','R','M','A','_','U','p','d','a','t','e','T','A','_','R','M','A','_','V','a','l','u','e','T','A','_','R','O','C','T','A','_','R','O','C','P','T','A','_','R','O','C','P','_','C','l','o','n','e','T','A','_','R','O','C','P','_','O','p','e','n','T','A','_','R','O','C','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','P','_','P','e','e','k','T','A','_','R','O','C','P','_','U','p','d','a','t','e','T','A','_','R','O','C','P','_','V','a','l','u','e','T','A','_','R','O','C','R','T','A','_','R','O','C','R','1','0','0','T','A','_','R','O','C','R','1','0','0','_','C','l','o','n','e','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','T','A','_','R','O','C','R','1','0','0','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','1','0','0','_','P','e','e','k','T','A','_','R','O','C','R','1','0','0','_','U','p','d','a','t','e','T','A','_','R','O','C','R','1','0','0','_','V','a','l','u','e','T','A','_','R','O','C','R','_','C','l','o','n','e','T','A','_','R','O','C','R','_','O','p','e','n','T','A','_','R','O','C','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','R','_','P','e','e','k','T','A','_','R','O','C','R','_','U','p','d','a','t','e','T','A','_','R','O','C','R','_','V','a','l','u','e','T','A','_','R','O','C','_','C','l','o','n','e','T','A','_','R','O','C','_','O','p','e','n','T','A','_','R','O','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','O','C','_','P','e','e','k','T','A','_','R','O','C','_','U','p','d','a','t','e','T','A','_','R','O','C','_','V','a','l','u','e','T','A','_','R','S','I','T','A','_','R','S','I','_','C','l','o','n','e','T','A','_','R','S','I','_','O','p','e','n','T','A','_','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','S','I','_','P','e','e','k','T','A','_','R','S','I','_','U','p','d','a','t','e','T','A','_','R','S','I','_','V','a','l','u','e','T','A','_','R','V','I','T','A','_','R','V','I','_','C','l','o','n','e','T','A','_','R','V','I','_','O','p','e','n','T','A','_','R','V','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','I','_','P','e','e','k','T','A','_','R','V','I','_','U','p','d','a','t','e','T','A','_','R','V','I','_','V','a','l','u','e','T','A','_','R','V','O','L','T','A','_','R','V','O','L','_','C','l','o','n','e','T','A','_','R','V','O','L','_','O','p','e','n','T','A','_','R','V','O','L','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','R','V','O','L','_','P','e','e','k','T','A','_','R','V','O','L','_','U','p','d','a','t','e','T','A','_','R','V','O','L','_','V','a','l','u','e','T','A','_','R','e','s','t','o','r','e','C','a','n','d','l','e','D','e','f','a','u','l','t','S','e','t','t','i','n','g','s','T','A','_','S','A','R','T','A','_','S','A','R','E','X','T','T','A','_','S','A','R','E','X','T','_','C','l','o','n','e','T','A','_','S','A','R','E','X','T','_','O','p','e','n','T','A','_','S','A','R','E','X','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','E','X','T','_','P','e','e','k','T','A','_','S','A','R','E','X','T','_','U','p','d','a','t','e','T','A','_','S','A','R','E','X','T','_','V','a','l','u','e','T','A','_','S','A','R','_','C','l','o','n','e','T','A','_','S','A','R','_','O','p','e','n','T','A','_','S','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','A','R','_','P','e','e','k','T','A','_','S','A','R','_','U','p','d','a','t','e','T','A','_','S','A','R','_','V','a','l','u','e','T','A','_','S','I','N','T','A','_','S','I','N','H','T','A','_','S','I','N','H','_','C','l','o','n','e','T','A','_','S','I','N','H','_','O','p','e','n','T','A','_','S','I','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','H','_','P','e','e','k','T','A','_','S','I','N','H','_','U','p','d','a','t','e','T','A','_','S','I','N','H','_','V','a','l','u','e','T','A','_','S','I','N','_','C','l','o','n','e','T','A','_','S','I','N','_','O','p','e','n','T','A','_','S','I','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','I','N','_','P','e','e','k','T','A','_','S','I','N','_','U','p','d','a','t','e','T','A','_','S','I','N','_','V','a','l','u','e','T','A','_','S','M','A','T','A','_','S','M','A','_','C','l','o','n','e','T','A','_','S','M','A','_','O','p','e','n','T','A','_','S','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','A','_','P','e','e','k','T','A','_','S','M','A','_','U','p','d','a','t','e','T','A','_','S','M','A','_','V','a','l','u','e','T','A','_','S','M','I','T','A','_','S','M','I','_','C','l','o','n','e','T','A','_','S','M','I','_','O','p','e','n','T','A','_','S','M','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','M','I','_','P','e','e','k','T','A','_','S','M','I','_','U','p','d','a','t','e','T','A','_','S','M','I','_','V','a','l','u','e','T','A','_','S','Q','R','T','T','A','_','S','Q','R','T','_','C','l','o','n','e','T','A','_','S','Q','R','T','_','O','p','e','n','T','A','_','S','Q','R','T','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','Q','R','T','_','P','e','e','k','T','A','_','S','Q','R','T','_','U','p','d','a','t','e','T','A','_','S','Q','R','T','_','V','a','l','u','e','T','A','_','S','T','D','D','E','V','T','A','_','S','T','D','D','E','V','_','C','l','o','n','e','T','A','_','S','T','D','D','E','V','_','O','p','e','n','T','A','_','S','T','D','D','E','V','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','D','D','E','V','_','P','e','e','k','T','A','_','S','T','D','D','E','V','_','U','p','d','a','t','e','T','A','_','S','T','D','D','E','V','_','V','a','l','u','e','T','A','_','S','T','O','C','H','T','A','_','S','T','O','C','H','F','T','A','_','S','T','O','C','H','F','_','C','l','o','n','e','T','A','_','S','T','O','C','H','F','_','O','p','e','n','T','A','_','S','T','O','C','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','F','_','P','e','e','k','T','A','_','S','T','O','C','H','F','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','F','_','V','a','l','u','e','T','A','_','S','T','O','C','H','R','S','I','T','A','_','S','T','O','C','H','R','S','I','_','C','l','o','n','e','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','T','A','_','S','T','O','C','H','R','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','R','S','I','_','P','e','e','k','T','A','_','S','T','O','C','H','R','S','I','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','R','S','I','_','V','a','l','u','e','T','A','_','S','T','O','C','H','_','C','l','o','n','e','T','A','_','S','T','O','C','H','_','O','p','e','n','T','A','_','S','T','O','C','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','T','O','C','H','_','P','e','e','k','T','A','_','S','T','O','C','H','_','U','p','d','a','t','e','T','A','_','S','T','O','C','H','_','V','a','l','u','e','T','A','_','S','U','B','T','A','_','S','U','B','_','C','l','o','n','e','T','A','_','S','U','B','_','O','p','e','n','T','A','_','S','U','B','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','B','_','P','e','e','k','T','A','_','S','U','B','_','U','p','d','a','t','e','T','A','_','S','U','B','_','V','a','l','u','e','T','A','_','S','U','M','T','A','_','S','U','M','_','C','l','o','n','e','T','A','_','S','U','M','_','O','p','e','n','T','A','_','S','U','M','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','M','_','P','e','e','k','T','A','_','S','U','M','_','U','p','d','a','t','e','T','A','_','S','U','M','_','V','a','l','u','e','T','A','_','S','U','P','E','R','T','R','E','N','D','T','A','_','S','U','P','E','R','T','R','E','N','D','_','C','l','o','n','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','T','A','_','S','U','P','E','R','T','R','E','N','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','S','U','P','E','R','T','R','E','N','D','_','P','e','e','k','T','A','_','S','U','P','E','R','T','R','E','N','D','_','U','p','d','a','t','e','T','A','_','S','U','P','E','R','T','R','E','N','D','_','V','a','l','u','e','T','A','_','S','e','t','C','a','n','d','l','e','S','e','t','t','i','n','g','s','T','A','_','S','e','t','C','o','m','p','a','t','i','b','i','l','i','t','y','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','I','n','t','e','g','e','r','T','A','_','S','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','R','e','a','l','T','A','_','S','e','t','U','n','s','t','a','b','l','e','P','e','r','i','o','d','T','A','_','S','h','u','t','d','o','w','n','T','A','_','T','3','T','A','_','T','3','_','C','l','o','n','e','T','A','_','T','3','_','O','p','e','n','T','A','_','T','3','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','3','_','P','e','e','k','T','A','_','T','3','_','U','p','d','a','t','e','T','A','_','T','3','_','V','a','l','u','e','T','A','_','T','A','N','T','A','_','T','A','N','H','T','A','_','T','A','N','H','_','C','l','o','n','e','T','A','_','T','A','N','H','_','O','p','e','n','T','A','_','T','A','N','H','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','H','_','P','e','e','k','T','A','_','T','A','N','H','_','U','p','d','a','t','e','T','A','_','T','A','N','H','_','V','a','l','u','e','T','A','_','T','A','N','_','C','l','o','n','e','T','A','_','T','A','N','_','O','p','e','n','T','A','_','T','A','N','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','A','N','_','P','e','e','k','T','A','_','T','A','N','_','U','p','d','a','t','e','T','A','_','T','A','N','_','V','a','l','u','e','T','A','_','T','E','M','A','T','A','_','T','E','M','A','_','C','l','o','n','e','T','A','_','T','E','M','A','_','O','p','e','n','T','A','_','T','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','E','M','A','_','P','e','e','k','T','A','_','T','E','M','A','_','U','p','d','a','t','e','T','A','_','T','E','M','A','_','V','a','l','u','e','T','A','_','T','R','A','N','G','E','T','A','_','T','R','A','N','G','E','_','C','l','o','n','e','T','A','_','T','R','A','N','G','E','_','O','p','e','n','T','A','_','T','R','A','N','G','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','A','N','G','E','_','P','e','e','k','T','A','_','T','R','A','N','G','E','_','U','p','d','a','t','e','T','A','_','T','R','A','N','G','E','_','V','a','l','u','e','T','A','_','T','R','I','M','A','T','A','_','T','R','I','M','A','_','C','l','o','n','e','T','A','_','T','R','I','M','A','_','O','p','e','n','T','A','_','T','R','I','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','M','A','_','P','e','e','k','T','A','_','T','R','I','M','A','_','U','p','d','a','t','e','T','A','_','T','R','I','M','A','_','V','a','l','u','e','T','A','_','T','R','I','X','T','A','_','T','R','I','X','_','C','l','o','n','e','T','A','_','T','R','I','X','_','O','p','e','n','T','A','_','T','R','I','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','R','I','X','_','P','e','e','k','T','A','_','T','R','I','X','_','U','p','d','a','t','e','T','A','_','T','R','I','X','_','V','a','l','u','e','T','A','_','T','S','F','T','A','_','T','S','F','_','C','l','o','n','e','T','A','_','T','S','F','_','O','p','e','n','T','A','_','T','S','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','F','_','P','e','e','k','T','A','_','T','S','F','_','U','p','d','a','t','e','T','A','_','T','S','F','_','V','a','l','u','e','T','A','_','T','S','I','T','A','_','T','S','I','_','C','l','o','n','e','T','A','_','T','S','I','_','O','p','e','n','T','A','_','T','S','I','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','S','I','_','P','e','e','k','T','A','_','T','S','I','_','U','p','d','a','t','e','T','A','_','T','S','I','_','V','a','l','u','e','T','A','_','T','Y','P','P','R','I','C','E','T','A','_','T','Y','P','P','R','I','C','E','_','C','l','o','n','e','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','T','A','_','T','Y','P','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','T','Y','P','P','R','I','C','E','_','P','e','e','k','T','A','_','T','Y','P','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','T','Y','P','P','R','I','C','E','_','V','a','l','u','e','T','A','_','U','L','T','O','S','C','T','A','_','U','L','T','O','S','C','_','C','l','o','n','e','T','A','_','U','L','T','O','S','C','_','O','p','e','n','T','A','_','U','L','T','O','S','C','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','U','L','T','O','S','C','_','P','e','e','k','T','A','_','U','L','T','O','S','C','_','U','p','d','a','t','e','T','A','_','U','L','T','O','S','C','_','V','a','l','u','e','T','A','_','V','A','R','T','A','_','V','A','R','_','C','l','o','n','e','T','A','_','V','A','R','_','O','p','e','n','T','A','_','V','A','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','A','R','_','P','e','e','k','T','A','_','V','A','R','_','U','p','d','a','t','e','T','A','_','V','A','R','_','V','a','l','u','e','T','A','_','V','H','F','T','A','_','V','H','F','_','C','l','o','n','e','T','A','_','V','H','F','_','O','p','e','n','T','A','_','V','H','F','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','H','F','_','P','e','e','k','T','A','_','V','H','F','_','U','p','d','a','t','e','T','A','_','V','H','F','_','V','a','l','u','e','T','A','_','V','O','R','T','E','X','T','A','_','V','O','R','T','E','X','_','C','l','o','n','e','T','A','_','V','O','R','T','E','X','_','O','p','e','n','T','A','_','V','O','R','T','E','X','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','O','R','T','E','X','_','P','e','e','k','T','A','_','V','O','R','T','E','X','_','U','p','d','a','t','e','T','A','_','V','O','R','T','E','X','_','V','a','l','u','e','T','A','_','V','W','A','P','T','A','_','V','W','A','P','_','C','l','o','n','e','T','A','_','V','W','A','P','_','O','p','e','n','T','A','_','V','W','A','P','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','A','P','_','P','e','e','k','T','A','_','V','W','A','P','_','U','p','d','a','t','e','T','A','_','V','W','A','P','_','V','a','l','u','e','T','A','_','V','W','M','A','T','A','_','V','W','M','A','_','C','l','o','n','e','T','A','_','V','W','M','A','_','O','p','e','n','T','A','_','V','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','V','W','M','A','_','P','e','e','k','T','A','_','V','W','M','A','_','U','p','d','a','t','e','T','A','_','V','W','M','A','_','V','a','l','u','e','T','A','_','W','A','D','T','A','_','W','A','D','_','C','l','o','n','e','T','A','_','W','A','D','_','O','p','e','n','T','A','_','W','A','D','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','A','D','_','P','e','e','k','T','A','_','W','A','D','_','U','p','d','a','t','e','T','A','_','W','A','D','_','V','a','l','u','e','T','A','_','W','C','L','P','R','I','C','E','T','A','_','W','C','L','P','R','I','C','E','_','C','l','o','n','e','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','T','A','_','W','C','L','P','R','I','C','E','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','C','L','P','R','I','C','E','_','P','e','e','k','T','A','_','W','C','L','P','R','I','C','E','_','U','p','d','a','t','e','T','A','_','W','C','L','P','R','I','C','E','_','V','a','l','u','e','T','A','_','W','I','L','L','R','T','A','_','W','I','L','L','R','_','C','l','o','n','e','T','A','_','W','I','L','L','R','_','O','p','e','n','T','A','_','W','I','L','L','R','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','I','L','L','R','_','P','e','e','k','T','A','_','W','I','L','L','R','_','U','p','d','a','t','e','T','A','_','W','I','L','L','R','_','V','a','l','u','e','T','A','_','W','M','A','T','A','_','W','M','A','_','C','l','o','n','e','T','A','_','W','M','A','_','O','p','e','n','T','A','_','W','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','W','M','A','_','P','e','e','k','T','A','_','W','M','A','_','U','p','d','a','t','e','T','A','_','W','M','A','_','V','a','l','u','e','T','A','_','Z','L','E','M','A','T','A','_','Z','L','E','M','A','_','C','l','o','n','e','T','A','_','Z','L','E','M','A','_','O','p','e','n','T','A','_','Z','L','E','M','A','_','O','p','e','n','A','n','d','F','i','l','l','T','A','_','Z','L','E','M','A','_','P','e','e','k','T','A','_','Z','L','E','M','A','_','U','p','d','a','t','e','T','A','_','Z','L','E','M','A','_','V','a','l','u','e','T','E','M','A','T','E','M','A','_','S','t','r','e','a','m','T','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','A','N','G','E','T','R','A','N','G','E','_','S','t','r','e','a','m','T','R','A','N','G','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','M','A','T','R','I','M','A','_','S','t','r','e','a','m','T','R','I','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','R','I','X','T','R','I','X','_','S','t','r','e','a','m','T','R','I','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','F','T','S','F','_','S','t','r','e','a','m','T','S','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','S','I','T','S','I','_','S','t','r','e','a','m','T','S','I','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','T','Y','P','P','R','I','C','E','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','T','Y','P','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','U','L','T','O','S','C','U','L','T','O','S','C','_','S','t','r','e','a','m','U','L','T','O','S','C','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','A','R','V','A','R','_','S','t','r','e','a','m','V','A','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','H','F','V','H','F','_','S','t','r','e','a','m','V','H','F','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','O','R','T','E','X','V','O','R','T','E','X','_','S','t','r','e','a','m','V','O','R','T','E','X','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','A','P','V','W','A','P','_','S','t','r','e','a','m','V','W','A','P','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','V','W','M','A','V','W','M','A','_','S','t','r','e','a','m','V','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','A','D','W','A','D','_','S','t','r','e','a','m','W','A','D','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','C','L','P','R','I','C','E','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','W','C','L','P','R','I','C','E','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','I','L','L','R','W','I','L','L','R','_','S','t','r','e','a','m','W','I','L','L','R','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','W','M','A','W','M','A','_','S','t','r','e','a','m','W','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','Z','L','E','M','A','Z','L','E','M','A','_','S','t','r','e','a','m','Z','L','E','M','A','_','S','t','r','e','a','m','.','o','p','e','n','_','a','n','d','_','f','i','l','l','_','A','R','R','A','Y','_','T','Y','P','E','S','_','F','u','n','c','t','i','o','n','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','F','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','F','u','n','c','t','i','o','n','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','_','F','u','n','c','t','i','o','n','_','_','l','o','c','a','l','d','a','t','a','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','_','F','u','n','c','t','i','o','n','_','_','n','a','m','e','s','t','r','_','I','N','P','U','T','_','A','R','R','A','Y','S','_','T','Y','P','E','S','_','I','N','P','U','T','_','P','R','I','C','E','_','S','E','R','I','E','S','_','D','E','F','A','U','L','T','S','_','P','A','N','D','A','S','_','D','A','T','A','F','R','A','M','E','_','P','A','N','D','A','S','_','S','E','R','I','E','S','_','P','O','L','A','R','S','_','D','A','T','A','F','R','A','M','E','_','P','O','L','A','R','S','_','S','E','R','I','E','S','_','_','P','y','x','_','P','y','D','i','c','t','_','N','e','x','t','R','e','f','_','_','T','A','_','F','U','N','C','T','I','O','N','_','N','A','M','E','S','_','_','_','_','a','l','l','_','_','_','_','a','n','n','o','t','a','t','e','_','_','_','_','c','a','l','l','_','_','_','_','c','a','l','l','_','f','u','n','c','t','i','o','n','_','_','c','h','e','c','k','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','c','l','a','s','s','_','g','e','t','i','t','e','m','_','_','_','_','c','o','p','y','_','_','_','_','d','e','e','p','c','o','p','y','_','_','_','_','d','i','c','t','_','_','_','_','d','o','c','_','_','_','_','f','u','n','c','_','_','_','_','g','e','t','_','f','l','a','g','s','_','_','g','e','t','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','g','e','t','i','t','e','m','_','_','_','_','i','n','i','t','_','_','_','_','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','_','_','l','o','c','a','l','_','_','m','a','i','n','_','_','_','_','m','e','t','a','c','l','a','s','s','_','_','_','_','m','o','d','u','l','e','_','_','_','_','m','r','o','_','e','n','t','r','i','e','s','_','_','_','_','n','a','m','e','_','_','_','_','n','e','w','_','_','_','_','p','r','e','p','a','r','e','_','_','_','_','p','y','x','_','v','t','a','b','l','e','_','_','_','_','q','u','a','l','n','a','m','e','_','_','_','_','r','e','d','u','c','e','_','_','_','_','r','e','p','r','_','_','_','_','s','e','t','_','n','a','m','e','_','_','_','_','s','t','r','_','_','_','_','t','a','_','v','e','r','s','i','o','n','_','_','_','_','t','e','s','t','_','_','_','_','u','n','i','c','o','d','e','_','_','_','g','e','t','_','d','e','f','a','u','l','t','s','_','a','n','d','_','d','o','c','s','_','i','s','_','c','o','r','o','u','t','i','n','e','_','l','o','o','k','u','p','_','t','a','_','c','h','e','c','k','_','s','u','c','c','e','s','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','_','t','a','_','f','u','n','c','_','u','n','s','t','_','i','d','s','_','t','a','_','f','u','n','c','_','u','n','s','t','_','r','e','t','i','r','e','d','_','t','a','_','g','e','t','F','u','n','c','I','n','f','o','_','t','a','_','g','e','t','F','u','n','c','T','a','b','l','e','_','t','a','_','g','e','t','G','r','o','u','p','T','a','b','l','e','_','t','a','_','g','e','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','p','t','I','n','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','O','u','t','p','u','t','P','a','r','a','m','e','t','e','r','I','n','f','o','_','t','a','_','g','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','g','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','i','n','i','t','i','a','l','i','z','e','_','t','a','_','r','e','s','t','o','r','e','_','c','a','n','d','l','e','_','d','e','f','a','u','l','t','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','a','n','d','l','e','_','s','e','t','t','i','n','g','s','_','t','a','_','s','e','t','_','c','o','m','p','a','t','i','b','i','l','i','t','y','_','t','a','_','s','e','t','_','u','n','s','t','a','b','l','e','_','p','e','r','i','o','d','_','t','a','_','s','h','u','t','d','o','w','n','a','_','c','l','o','s','e','a','_','h','i','g','h','a','_','l','o','w','a','_','o','p','e','n','a','_','p','e','r','i','o','d','s','a','_','r','e','a','l','a','_','r','e','a','l','0','a','_','r','e','a','l','1','a','_','v','o','l','u','m','e','a','c','c','e','l','e','r','a','t','i','o','n','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','i','n','i','t','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','l','o','n','g','a','c','c','e','l','e','r','a','t','i','o','n','m','a','x','s','h','o','r','t','a','c','c','e','l','e','r','a','t','i','o','n','s','h','o','r','t','a','p','p','e','n','d','a','r','g','a','r','g','s','a','r','r','a','y','s','a','s','c','i','i','a','s','t','y','p','e','a','s','y','n','c','i','o','.','c','o','r','o','u','t','i','n','e','s','a','t','r','p','e','r','i','o','d','a','v','g','p','e','r','i','o','d','b','b','e','g','i','d','x','b','i','t','b','y','t','e','s','2','s','t','r','c','a','n','d','l','e','s','t','i','c','k','c','l','i','n','e','_','i','n','_','t','r','a','c','e','b','a','c','k','c','l','o','n','e','c','l','o','s','e','c','o','l','l','e','c','t','i','o','n','s','c','o','l','u','m','n','_','s','t','a','c','k','c','o','l','u','m','n','s','c','o','p','y','d','d','e','c','o','d','e','d','e','f','a','u','l','t','_','v','a','l','u','e','d','e','f','a','u','l','t','s','d','e','s','c','r','i','p','t','i','o','n','d','i','s','p','l','a','y','_','n','a','m','e','d','o','c','s','d','o','c','u','m','e','n','t','a','t','i','o','n','e','m','p','t','y','e','n','d','i','d','x','e','n','d','s','w','i','t','h','e','n','u','m','e','r','a','t','e','f','a','c','t','o','r','f','a','s','t','d','_','m','a','t','y','p','e','f','a','s','t','d','_','p','e','r','i','o','d','f','a','s','t','k','_','p','e','r','i','o','d','f','a','s','t','l','i','m','i','t','f','a','s','t','m','a','t','y','p','e','f','a','s','t','p','e','r','i','o','d','f','i','r','s','t','p','e','r','i','o','d','f','l','a','g','f','l','a','g','s','f','l','a','g','s','_','l','o','o','k','u','p','_','d','i','c','t','f','u','n','c','_','a','r','g','s','f','u','n','c','_','i','n','f','o','f','u','n','c','_','l','i','n','e','f','u','n','c','_','o','b','j','e','c','t','f','u','n','c','t','i','o','n','_','f','l','a','g','s','f','u','n','c','t','i','o','n','_','n','a','m','e','f','u','n','c','t','i','o','n','s','g','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','g','e','t','_','i','n','p','u','t','_','n','a','m','e','s','g','e','t','_','p','a','r','a','m','e','t','e','r','s','g','r','o','u','p','g','r','o','u','p','s','h','a','n','d','l','e','h','e','l','p','h','i','g','h','h','i','s','t','o','r','y','l','e','n','h','o','l','d','e','r','i','i','d','i','d','x','i','m','p','o','r','t','_','e','r','r','o','r','i','n','i','n','d','e','x','i','n','f','o','i','n','p','u','t','_','a','r','r','a','y','s','i','n','p','u','t','_','n','a','m','e','i','n','p','u','t','_','n','a','m','e','s','i','n','p','u','t','_','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','s','i','n','t','e','g','e','r','i','s','_','e','m','p','t','y','i','t','e','m','s','k','e','y','k','e','y','s','k','w','a','r','g','s','l','e','f','t','b','a','r','s','l','e','n','g','t','h','l','o','c','a','l','l','o','o','k','b','a','c','k','l','o','w','l','o','w','e','r','m','a','t','y','p','e','m','a','x','i','m','u','m','m','a','x','p','e','r','i','o','d','m','e','m','o','m','i','n','p','e','r','i','o','d','m','i','s','s','i','n','g','m','i','s','s','i','n','g','_','k','e','y','s','m','o','d','u','l','e','m','s','g','m','u','l','t','i','p','l','i','e','r','n','n','a','m','e','n','a','m','e','d','t','u','p','l','e','n','a','n','n','b','d','e','v','n','b','d','e','v','d','n','n','b','d','e','v','u','p','n','o','_','e','x','i','s','t','i','n','g','_','i','n','p','u','t','_','a','r','r','a','y','s','n','u','m','_','i','n','p','u','t','s','n','u','m','_','o','p','t','_','i','n','p','u','t','s','n','u','m','_','o','u','t','p','u','t','s','n','u','m','p','y','o','b','j','e','c','t','o','f','f','s','e','t','o','n','r','e','v','e','r','s','e','o','p','e','n','o','p','e','n','I','n','t','e','r','e','s','t','o','p','e','n','_','a','n','d','_','f','i','l','l','o','p','t','I','n','o','p','t','_','i','n','p','u','t','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','s','o','p','t','_','i','n','p','u','t','s','o','r','d','e','r','e','d','d','i','c','t','o','u','t','o','u','t','a','r','o','o','n','d','o','w','n','o','u','t','a','r','o','o','n','u','p','o','u','t','b','e','a','r','p','o','w','e','r','o','u','t','b','e','g','i','d','x','o','u','t','b','u','l','l','p','o','w','e','r','o','u','t','d','o','u','t','f','a','m','a','o','u','t','f','a','s','t','d','o','u','t','f','a','s','t','k','o','u','t','h','a','c','l','o','s','e','o','u','t','h','a','h','i','g','h','o','u','t','h','a','l','o','w','o','u','t','h','a','o','p','e','n','o','u','t','i','n','p','h','a','s','e','o','u','t','i','n','t','e','g','e','r','o','u','t','i','n','t','e','g','e','r','_','d','a','t','a','o','u','t','j','o','u','t','k','o','u','t','l','e','a','d','s','i','n','e','o','u','t','l','o','w','e','r','b','a','n','d','o','u','t','m','a','c','d','o','u','t','m','a','c','d','h','i','s','t','o','u','t','m','a','c','d','s','i','g','n','a','l','o','u','t','m','a','m','a','o','u','t','m','a','x','o','u','t','m','a','x','i','d','x','o','u','t','m','a','x','i','d','x','_','d','a','t','a','o','u','t','m','i','d','d','l','e','b','a','n','d','o','u','t','m','i','n','o','u','t','m','i','n','i','d','x','o','u','t','m','i','n','i','d','x','_','d','a','t','a','o','u','t','m','i','n','u','s','v','i','o','u','t','n','b','e','l','e','m','e','n','t','o','u','t','p','l','u','s','v','i','o','u','t','p','u','t','o','u','t','p','u','t','_','f','l','a','g','s','o','u','t','p','u','t','_','n','a','m','e','o','u','t','p','u','t','_','n','a','m','e','s','o','u','t','p','u','t','s','o','u','t','p','u','t','s','_','v','a','l','i','d','o','u','t','q','u','a','d','r','a','t','u','r','e','o','u','t','r','e','a','l','o','u','t','r','e','a','l','l','o','w','e','r','b','a','n','d','o','u','t','r','e','a','l','m','i','d','d','l','e','b','a','n','d','o','u','t','r','e','a','l','u','p','p','e','r','b','a','n','d','o','u','t','s','i','n','e','o','u','t','s','l','o','w','d','o','u','t','s','l','o','w','k','o','u','t','s','m','i','o','u','t','s','m','i','s','i','g','n','a','l','o','u','t','s','u','p','e','r','t','r','e','n','d','o','u','t','s','w','i','n','g','h','i','g','h','o','u','t','s','w','i','n','g','l','o','w','o','u','t','t','r','e','n','d','o','u','t','u','p','p','e','r','b','a','n','d','p','a','n','d','a','s','p','a','r','a','m','p','a','r','a','m','_','n','a','m','e','p','a','r','a','m','e','t','e','r','s','p','a','r','a','m','s','p','e','n','e','t','r','a','t','i','o','n','p','e','r','c','e','n','t','i','l','e','p','e','r','i','o','d','p','e','r','i','o','d','s','p','o','l','a','r','s','p','o','p','p','r','i','c','e','p','r','i','c','e','0','p','r','i','c','e','1','p','r','i','c','e','_','s','e','r','i','e','s','p','r','i','c','e','_','s','e','r','i','e','s','_','n','a','m','e','_','v','a','l','u','e','s','p','r','i','c','e','s','p','r','o','p','e','r','t','y','r','a','n','g','e','t','y','p','e','r','e','a','l','r','e','a','l','0','r','e','a','l','1','r','e','p','l','a','c','e','r','e','s','u','l','t','s','r','e','t','r','e','t','C','o','d','e','r','e','t','_','c','o','d','e','r','i','g','h','t','b','a','r','s','r','o','c','1','p','e','r','i','o','d','r','o','c','2','p','e','r','i','o','d','r','o','c','p','e','r','i','o','d','r','u','n','s','s','c','h','e','m','a','s','e','c','o','n','d','p','e','r','i','o','d','s','e','l','f','s','e','r','i','e','s','s','e','t','_','f','u','n','c','t','i','o','n','_','a','r','g','s','s','e','t','_','i','n','p','u','t','_','a','r','r','a','y','s','s','e','t','_','i','n','p','u','t','_','n','a','m','e','s','s','e','t','_','p','a','r','a','m','e','t','e','r','s','s','e','t','d','e','f','a','u','l','t','s','e','t','t','i','n','g','t','y','p','e','s','i','g','n','a','l','m','a','t','y','p','e','s','i','g','n','a','l','p','e','r','i','o','d','s','k','i','p','_','f','i','r','s','t','s','l','o','w','d','_','m','a','t','y','p','e','s','l','o','w','d','_','p','e','r','i','o','d','s','l','o','w','k','_','m','a','t','y','p','e','s','l','o','w','k','_','p','e','r','i','o','d','s','l','o','w','l','i','m','i','t','s','l','o','w','m','a','t','y','p','e','s','l','o','w','p','e','r','i','o','d','s','t','a','c','k','l','e','v','e','l','s','t','a','r','t','v','a','l','u','e','s','t','a','t','i','c','m','e','t','h','o','d','s','t','d','d','e','v','p','e','r','i','o','d','s','t','r','2','b','y','t','e','s','s','t','r','e','a','m','s','y','s','t','a','b','l','e','t','a','l','i','b','.','_','t','a','_','l','i','b','t','h','r','e','a','d','i','n','g','t','i','m','e','S','t','a','m','p','t','i','m','e','p','e','r','i','o','d','t','i','m','e','p','e','r','i','o','d','1','t','i','m','e','p','e','r','i','o','d','2','t','i','m','e','p','e','r','i','o','d','3','t','o','_','n','u','m','p','y','t','y','p','e','t','y','p','e','_','u','n','s','t','_','i','d','u','p','d','a','t','e','u','p','d','a','t','e','_','i','n','f','o','u','p','p','e','r','v','a','l','u','e','v','a','l','u','e','s','v','e','r','s','i','o','n','v','f','a','c','t','o','r','v','o','l','u','m','e','w','a','r','n','w','a','r','n','i','n','g','s','w','m','a','p','e','r','i','o','d','\200','\001','\330','\004','\007','\200','u','\210','C','\210','q','\330','\010','\020','\220','\005','\220','Q','\330','\014','\r','\330','\020','\026','\320','\026','+','\250','1','\250','A','\330','\014',' ','\240','\013','\250','1','\330','\010','\017','\210','q','\330','\004','\013','\320','\013','\034','\230','A','\230','Q','\200','\001','\330','\004','\007','\200','y','\220','\003','\220','1','\330','\010','\017','\210','q','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\330','\t','\022','\220','#','\220','Q','\330','\010','\026','\220','a','\340','\010','\026','\220','a','\330','\004','\014','\320','\014','#','\240','9','\250','C','\250','x','\260','q','\330','\004','\n','\210','%','\210','q','\220','\001','\330','\010','\027','\220','z','\240','\021','\200','\001','\340','\004','\017','\320','\017','#','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\004','\022','\220',',','\230','a','\330','\004','\025','\220','Q','\220','o','\240','Q','\200','\001','\340','\004','\022','\220','.','\240','\001','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\200','\001','\340','\004','\022','\320','\022','&','\240','a','\240','q','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\200','\001','\340','\004','\022','\320','\022','\047','\240','q','\250','\r','\260','[','\300','\013','\310','1','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\340','\004','\022','\320','\022','2','\260','!','\260','1','\330','\004','\025','\220','Q','\320','\026','9','\270','\021','\200','\001','\340','#','$','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','S','\320','S','_','\320','_','`','\320','`','o','\320','o','z','\360','\000','\000','{','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','J','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','#',';','\270','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300',']','\320','R','\\','\320','\\',']','\320',']','i','\320','i','j','\320','j','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','T','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','$','%','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','T','\320','T','`','\320','`','a','\320','a','p','\320','p','{','\360','\000','\000','|','\001','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','K','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','[','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\270','A','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','b','\320','b','c','\320','c','o','\320','o','p','\320','p','\177','\360','\000','\000','@','\002','K','\002','\360','\000','\000','K','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','<','\320','<','T','\320','T','U','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','m','\320','S','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','$','=','\270','Q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','^','\270','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','n','\320','T','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','%','&','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','U','\320','U','a','\320','a','b','\320','b','q','\320','q','|','\360','\000','\000','}','\001','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','L','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','%','=','\320','=','U','\320','U','V','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','m','\270','=','\310','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','}','\320','T','a','\320','a','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','%','>','\270','a','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','|','\320','S','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','{','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210',':','\220','Q','\200','\001','\340','&','\047','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\r','\320','U','V','\320','V','b','\320','b','c','\320','c','r','\320','r','}','\360','\000','\000','~','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','M','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','&','>','\320','>','V','\320','V','W','\360','*','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','&','\270','\006','\270','a','\270','y','\310','\r','\320','U','b','\320','b','k','\320','k','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','c','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','&','\000','\005','\016','\210','[','\230','\001','\230','\021','\330','\004','\r','\210','V','\220','6','\230','\021','\230','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','V','\260','1','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','6','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','F','\002','\360','\000','\000','F','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','N','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\047','(','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','W','\320','W','c','\320','c','d','\320','d','s','\320','s','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','9','\220','A','\200','\001','\340','\047','?','\270','q','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','^','\320','^','_','\320','_','k','\320','k','l','\320','l','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','V','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','\047','?','\320','?','V','\320','V','m','\320','m','n','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\270','Z','\300','z','\320','Q','R','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\035','\320','V','`','\320','`','j','\320','j','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','I','\003','\360','\000','\000','I','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','G','\004','\360','\000','\000','G','\004','M','\004','\360','\000','\000','M','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','(',')','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','X','\320','X','d','\320','d','e','\320','e','t','\320','t','\177','\360','\000','\000','@','\002','G','\002','\360','\000','\000','G','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','O','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(',')','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','/','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340','(','?','\320','?','W','\320','W','X','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\034','\270',']','\310','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310',',','\320','V','c','\320','c','p','\320','p','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','h','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','(','@','\320','@','S','\320','S','k','\320','k','~','\360','\000','\000','\177','\001','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','8','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\035','\270','m','\310','=','\320','X','e','\320','e','t','\320','t','u','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','-','\320','W','d','\320','d','q','\320','q','~','\360','\000','\000','\177','\001','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','L','\003','\360','\000','\000','L','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','i','\003','\360','\000','\000','i','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','H','\004','\360','\000','\000','H','\004','S','\004','\360','\000','\000','S','\004','^','\004','\360','\000','\000','^','\004','d','\004','\360','\000','\000','d','\004','e','\004','\360','\000','\000','e','\004','f','\004','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\320','\025','%','\240','Q','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\320','u','}','\360','\000','\000','~','\001','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\026','\220','f','\230','J','\240','a','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\027','\220','q','\230','\006','\230','a','\330','\004','\013','\210','1','\200','\001','\340',')','*','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','Y','\320','Y','e','\320','e','f','\320','f','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','H','\002','\360','\000','\000','H','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','P','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340',')','A','\320','A','[','\320','[','u','\320','u','v','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','-','\270','\177','\310','o','\320',']','^','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310','=','\320','X','g','\320','g','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210',';','\220','a','\200','\001','\340','*','+','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\022','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','M','\320','Y','Z','\320','Z','f','\320','f','g','\320','g','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','O','\002','\360','\000','\000','O','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\340','+','C','\300','1','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310',']','\320','Z','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','S','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\340',',','-','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\024','\240','^','\260','1','\260','C','\260','q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','2','\260','Q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\020','\220','\016','\230','a','\230','x','\240','q','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','m','\320','[','\\','\320','\\','h','\320','h','i','\320','i','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\025','\220','V','\230','9','\240','A','\330','\004','\010','\210','\007','\320','\017','\037','\230','q','\330','\010','\026','\220','a','\220','v','\230','Q','\330','\004','\013','\210','<','\220','q','\200','\001','\340','0','1','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','r','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R','_','\320','_','`','\320','`','l','\320','l','m','\320','m','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','W','\002','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\340','4','5','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','2','\270','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','c','\320','c','d','\320','d','p','\320','p','q','\360','\000','\000','r','\001','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','V','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','=','U','\320','U','m','\320','m','n','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\035','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','p','\320','p','}','\360','\000','\000','~','\001','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','j','\002','\360','\000','\000','j','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','D','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','>','?','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','r','\320','r','~','\320','~','\177','\360','\000','\000','@','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','V','\320','V','W','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','>','Y','\320','Y','Z','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','s','\320','s','}','\320','}','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','u','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','@','A','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\320','s','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','?','\230','!','\200','\001','\340','@','X','\320','X','Y','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','s','\360','\000','\000','t','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002','^','\002','\360','\000','\000','^','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','A','[','\320','[','z','\360','\000','\000','{','\001','_','\002','\360','\000','\000','_','\002','\177','\002','\360','\000','\000','\177','\002','b','\003','\360','\000','\000','b','\003','G','\004','\360','\000','\000','G','\004','h','\004','\360','\000','\000','h','\004','i','\004','\360','4','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\r','\320','=','O','\320','O','f','\320','f','y','\360','\000','\000','z','\001','P','\002','\360','\000','\000','P','\002','h','\002','\360','\000','\000','h','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','t','\360','\000','\000','u','\001','G','\002','\360','\000','\000','G','\002','^','\002','\360','\000','\000','^','\002','q','\002','\360','\000','\000','q','\002','G','\003','\360','\000','\000','G','\003','_','\003','\360','\000','\000','_','\003','s','\003','\360','\000','\000','s','\003','J','\004','\360','\000','\000','J','\004','K','\004','\360','\000','\000','K','\004','W','\004','\360','\000','\000','W','\004','X','\004','\360','\000','\000','X','\004','g','\004','\360','\000','\000','g','\004','r','\004','\360','\000','\000','r','\004','y','\004','\360','\000','\000','y','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','C','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','u','\320','u','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','B','X','\320','X','Y','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\024','\240','^','\260','1','\260','C','\260','q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\033','\270','A','\330','\004','\023','\220','>','\240','\021','\240','(','\250','!','\330','\004','\022','\220','.','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','?','\230','!','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','5','\310','\001','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','C','D','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','v','\320','v','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','C','Z','\320','Z','q','\320','q','r','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\016','\210','k','\230','\021','\230','!','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','7','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','l','\270',',','\300','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','D','E','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','U','\270','&','\300','\001','\300','\031','\310','+','\320','U','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','w','\320','w','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340','Y','Z','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','@','\003','\360','\000','\000','@','\003','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\340','Y','q','\360','\000','\000','r','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','\"','\250','M','\270','\034','\300','Q','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','Q','\002','\360','\000','\000','Q','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\360','\000','\000','R','\004',']','\004','\360','\000','\000',']','\004','h','\004','\360','\000','\000','h','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','\177','\004','\360','\000','\000','\177','\004','@','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','Z','[','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','I','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','Z','[','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','?','\230','!','\200','\001','\340','Z','r','\360','\000','\000','s','\001','K','\002','\360','\000','\000','K','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','0','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250',']','\270','-','\300','}','\320','T','U','\330','\004','\r','\320','\r','\036','\230','a','\230','x','\240','q','\330','\004','\023','\320','\023','$','\240','A','\240','X','\250','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','R','\002','\360','\000','\000','R','\002','_','\002','\360','\000','\000','_','\002','l','\002','\360','\000','\000','l','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','{','\003','\360','\000','\000','{','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Y','\004','\360','\000','\000','Y','\004','Z','\004','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','9','\220','A','\200','\001','\340','Z','t','\360','\000','\000','u','\001','O','\002','\360','\000','\000','O','\002','e','\002','\360','\000','\000','e','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','6','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','_','\270','O','\310','?','\320','Z','i','\320','i','j','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\013','\320','\013','\034','\230','A','\230','X','\240','Q','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','T','\002','\360','\000','\000','T','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','m','\003','\360','\000','\000','m','\003','x','\003','\360','\000','\000','x','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','C','\004','\360','\000','\000','C','\004','N','\004','\360','\000','\000','N','\004','Y','\004','\360','\000','\000','Y','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','d','\004','\360','\000','\000','d','\004','o','\004','\360','\000','\000','o','\004','z','\004','\360','\000','\000','z','\004','~','\004','\360','\000','\000','~','\004','D','\005','\360','\000','\000','D','\005','E','\005','\360','\000','\000','E','\005','F','\005','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','7','\220','\047','\230','\021','\200','\001','\340','[','\\','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','B','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','p','\002','\360','\000','\000','p','\002','{','\002','\360','\000','\000','{','\002','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\340','\\',']','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','q','\002','\360','\000','\000','q','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','J','\003','\360','\000','\000','J','\003','K','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\340','\\','v','\360','\000','\000','w','\001','Q','\002','\360','\000','\000','Q','\002','f','\002','\360','\000','\000','f','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','\177','\270','o','\310','_','\320','\\','k','\320','k','l','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','I','\004','\360','\000','\000','I','\004','T','\004','\360','\000','\000','T','\004','_','\004','\360','\000','\000','_','\004','g','\004','\360','\000','\000','g','\004','m','\004','\360','\000','\000','m','\004','n','\004','\360','\000','\000','n','\004','o','\004','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210',';','\220','a','\200','\001','\340',']','^','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\001','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','r','\002','\360','\000','\000','r','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','t','\003','\360','\000','\000','t','\003','u','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','<','\220','q','\200','\001','\340',']','v','\360','\000','\000','w','\001','P','\002','\360','\000','\000','P','\002','Q','\002','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\016','\270','n','\310','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\340',']','w','\360','\000','\000','x','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','b','\260','\017','\270','\177','\310','a','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','W','\002','\360','\000','\000','W','\002','f','\002','\360','\000','\000','f','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','w','\003','\360','\000','\000','w','\003','B','\004','\360','\000','\000','B','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210',';','\220','a','\200','\001','\340','^','_','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','r','\260','\021','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','X','\320','X','^','\320','^','_','\320','_','h','\320','h','s','\320','s','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\340','_','`','\360','.','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','W','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\002','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\030','\320','\030',')','\250','\021','\250','(','\260','!','\330','\004','\027','\320','\027','(','\250','\001','\250','\030','\260','\021','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','l','\003','\360','\000','\000','l','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','O','\004','\360','\000','\000','O','\004','Z','\004','\360','\000','\000','Z','\004','j','\004','\360','\000','\000','j','\004','p','\004','\360','\000','\000','p','\004','q','\004','\360','\000','\000','q','\004','r','\004','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\320','\013','\036','\320','\036','2','\260','!','\200','\001','\340','a','y','\320','y','z','\360',',','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\250','\016','\260','a','\260','s','\270','!','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','M','\300','\021','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\017','\210','~','\230','Q','\230','h','\240','a','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Y','\002','\360','\000','\000','Y','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','C','\003','\360','\000','\000','C','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','u','\003','\360','\000','\000','u','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\320','\013','\033','\230','1','\200','\001','\340','w','x','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','2','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\340','|','}','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','\"','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','V','\003','\360','\000','\000','V','\003','^','\003','\360','\000','\000','^','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','p','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','A','\002','B','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','b','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','Z','\003','\360','\000','\000','Z','\003','b','\003','\360','\000','\000','b','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','C','\002','D','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\002','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','\\','\003','\360','\000','\000','\\','\003','d','\003','\360','\000','\000','d','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','u','\003','\360','\000','\000','u','\003','v','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','D','\002','E','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\022','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003',']','\003','\360','\000','\000',']','\003','e','\003','\360','\000','\000','e','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','v','\003','\360','\000','\000','v','\003','w','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','E','\002','F','\002','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','\"','\270','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','^','\003','\360','\000','\000','^','\003','f','\003','\360','\000','\000','f','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','w','\003','\360','\000','\000','w','\003','x','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','\004','\000','z','\001','R','\002','\360','\000','\000','R','\002','S','\002','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','R','\250','}','\270','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\013','\320','S','V','\320','V','\\','\320','\\',']','\320',']','f','\320','f','q','\320','q','v','\320','v','|','\320','|','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','u','\002','\360','\000','\000','u','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','_','\003','\360','\000','\000','_','\003','j','\003','\360','\000','\000','j','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','x','\003','\360','\000','\000','x','\003','y','\003','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\t','\330','\004','\t','\210','\021','\330','\004','\022','\320','\022','\047','\240','q','\250','\004','\250','A','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\200','\001','\360','\006','\000','\005','\017','\320','\016','\036','\230','a','\230','q','\330','\004','\007','\200','x','\210','s','\220','!','\330','\010','\017','\210','q','\330','\004','\t','\210','\021','\330','\004','\020','\320','\020','%','\240','Q','\240','a','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\027','\310','\001','\310','\021','\330','\004','\020','\220','\001','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\021','\220','\027','\230','\001','\230','\026','\230','q','\240','\005','\240','W','\250','A','\250','Q','\330','\004','\025','\220','Q','\320','\026','-','\320','-','>','\270','a','\270','q','\330','\004','\013','\210','1','\200','\001','\360','\n','\000','\005','\026','\220','Q','\320','\026','/','\320','/','B','\300','!','\300','1','\300','A','\330','\004','\r','\210','Q','\330','\004','\010','\210','\005','\210','V','\220','1','\220','E','\230','\021','\330','\010','\016','\210','g','\220','Q','\220','f','\230','A','\230','U','\240','\047','\250','\021','\250','!','\330','\004','\025','\220','Q','\320','\026','.','\320','.','@','\300','\001','\300','\021','\330','\004','\013','\210','1','\200','\001','\360','\014','\000','\005','\020','\210','q','\330','\004','\020','\220','\001','\220','\031','\230','!','\230','9','\240','A','\330','\004','\020','\220','\001','\220','\021','\330','\004','\013','\210','1','\330','\004','\010','\210','\007','\210','q','\320','\020','1','\260','\022','\260','1','\340','\004','\022','\220',')','\230','1','\230','A','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\016','\220','a','\330','\010','\020','\220','\013','\230','1','\230','A','\330','\010','\013','\210','4','\210','z','\230','\021','\230','\047','\240','\021','\330','\014','\024','\220','A','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','L','\260','\001','\340','\004','\r','\210','Y','\220','a','\220','q','\330','\004','\007','\200','q','\330','\010','\014','\210','G','\220','1','\220','A','\330','\004','\010','\210','\t','\220','\021','\330','\010','\014','\210','G','\220','1','\320','\024','$','\240','G','\250','6','\260','\021','\260','!','\330','\010','\021','\220','\027','\230','\001','\230','\035','\240','g','\250','V','\260','1','\260','A','\330','\010','\020','\220','\001','\220','\031','\230','&','\240','\001','\240','\021','\330','\010','\013','\210','5','\220','\t','\230','\021','\230','!','\330','\014','\020','\220','\002','\220','%','\220','s','\230','%','\230','q','\240','\001','\240','\024','\240','R','\240','t','\250','7','\260','\"','\260','G','\270','1','\270','F','\300','!','\300','1','\340','\004','\016','\210','i','\220','q','\230','\001','\330','\004','\022','\320','\022',',','\250','D','\260','\t','\270','\021','\320',':','L','\310','C','\310','q','\330','\004','\010','\210','\007','\210','q','\220','\001','\330','\004','\010','\210','\n','\220','!','\330','\010','\013','\210','7','\220','#','\220','Z','\230','t','\240','1','\330','\014','\025','\220','Q','\330','\010','\014','\210','G','\220','1','\220','I','\230','R','\230','q','\340','\004','\r','\210','W','\220','A','\220','T','\230','\025','\230','a','\230','q','\330','\004','\r','\210','W','\220','A','\220','Q','\330','\004','\010','\210','\007','\210','q','\220','\003','\220','2','\220','U','\230','!','\230','1','\330','\004','\024','\220','D','\230','\005','\230','Q','\230','a','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','\014','\000','\005','\022','\220','\037','\240','\001','\320','!','3','\260','1','\320','4','D','\300','A','\300','Q','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\340','\004','\005','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\021','\220','\031','\230','!','\230','4','\230','q','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\032','\230','+','\240','Q','\240','d','\250','(','\260','!','\330','\010','\026','\220','c','\230','\021','\230','$','\230','a','\330','\010','\032','\230','#','\230','Q','\230','d','\240','!','\330','\010','\027','\220','s','\230','!','\230','4','\230','q','\200','\001','\360','\014','\000','\005','\022','\320','\021','*','\250','!','\320','+','=','\270','Q','\320','>','N','\310','e','\320','S','T','\320','T','U','\330','\004','\025','\220','Q','\320','\026','2','\260','!','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','G','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','t','\220','8','\230','1','\230','H','\240','A','\330','\t','\021','\220','\023','\220','A','\330','\010','\017','\210','q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\013','\240','1','\240','D','\250','\010','\260','\001','\200','\001','\360','\014','\000','\005','\022','\320','\021','+','\250','1','\320',',','>','\270','a','\320','?','O','\310','u','\320','T','U','\320','U','V','\330','\004','\025','\220','Q','\320','\026','3','\260','1','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','H','\230','F','\240','!','\340','\004','\007','\200','w','\210','c','\220','\025','\220','d','\230','%','\230','x','\240','x','\250','y','\270','\001','\330','\010','\017','\210','t','\220','1','\220','C','\220','q','\230','\001','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\021','\220','\033','\230','A','\230','T','\240','\030','\250','\021','\200','\001','\360','\014','\000','\005','\022','\320','\021','-','\250','Q','\320','.','@','\300','\001','\320','A','Q','\320','Q','V','\320','V','W','\320','W','X','\330','\004','\025','\220','Q','\320','\026','5','\260','Q','\340','\004','\013','\210','9','\220','A','\220','T','\230','\021','\330','\004','\013','\210','4','\210','q','\220','\003','\220','1','\220','J','\230','f','\240','A','\330','\004','\024','\220','C','\220','q','\230','\004','\320','\034','.','\250','d','\260','&','\270','\002','\270','\047','\300','\024','\300','Q','\340','\004','\005','\330','\010','\020','\220','\001','\330','\010','\030','\230','\t','\240','\021','\240','$','\240','a','\330','\010','\020','\220','\004','\220','A','\330','\010','\020','\220','\t','\230','\021','\230','$','\230','a','\330','\010','\031','\230','\021','\330','\010','\021','\220','\021','\200','\001','\360','\020','\000','\005','\010','\200','u','\210','B','\210','a','\330','\010','\017','\210','q','\330','\004','\013','\210','1','\210','A','\330','\014','\020','\220','\005','\220','_','\240','F','\250','!','\320','+','<','\270','F','\300','!','\330','\014','\017','\210','t','\220','2','\220','Q','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','S','\320','S','Y','\320','Y','Z','\320','Z','c','\320','c','n','\320','n','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','B','\003','\360','\000','\000','B','\003','M','\003','\360','\000','\000','M','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','g','\250','Q','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','e','\320','e','o','\320','o','u','\320','u','v','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','{','\320','R','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','u','\320','u','{','\320','{','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','D','\003','\360','\000','\000','D','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','^','\003','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','t','\320','t','z','\320','z','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','|','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\033','\320','T','W','\320','W',']','\320',']','^','\320','^','g','\320','g','r','\320','r','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','e','\002','\360','\000','\000','e','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X',']','\320',']','^','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','g','\002','\360','\000','\000','g','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\025','\240','a','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','h','\310','j','\320','X','^','\320','^','_','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','h','\002','\360','\000','\000','h','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','B','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','3','\300','a','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','+','\320','U','Y','\320','Y','_','\320','_','`','\320','`','i','\320','i','t','\320','t','w','\320','w','}','\320','}','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','E','\003','\360','\000','\000','E','\003','M','\003','\360','\000','\000','M','\003','W','\003','\360','\000','\000','W','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','K','\320','W','[','\320','[','a','\320','a','b','\320','b','k','\320','k','v','\320','v','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','G','\003','\360','\000','\000','G','\003','O','\003','\360','\000','\000','O','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','[','\320','X','\\','\320','\\','b','\320','b','c','\320','c','l','\320','l','w','\320','w','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','H','\003','\360','\000','\000','H','\003','P','\003','\360','\000','\000','P','\003','Z','\003','\360','\000','\000','Z','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','k','\320','Y',']','\320',']','c','\320','c','d','\320','d','m','\320','m','x','\320','x','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','c','\003','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','{','\320','Z','^','\320','^','d','\320','d','e','\320','e','n','\320','n','y','\320','y','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','J','\003','\360','\000','\000','J','\003','R','\003','\360','\000','\000','R','\003','\\','\003','\360','\000','\000','\\','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','d','\003','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','5','\260','Q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\"','\240','\"','\240','D','\250','\t','\260','\033','\270','D','\300','\006','\300','a','\300','y','\320','P','[','\320','[','_','\320','_','e','\320','e','f','\320','f','o','\320','o','z','\320','z','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','|','\002','\360','\000','\000','|','\002','K','\003','\360','\000','\000','K','\003','S','\003','\360','\000','\000','S','\003',']','\003','\360','\000','\000',']','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','e','\003','\330','\004','\025','\220','Q','\320','\026','*','\250','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','6','\260','a','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','#','\240','2','\240','T','\250','\031','\260','+','\270','T','\300','\026','\300','q','\310','\t','\320','Q','\\','\320','\\','`','\320','`','f','\320','f','g','\320','g','p','\320','p','{','\320','{','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','Z','\002','\360','\000','\000','Z','\002','_','\002','\360','\000','\000','_','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','|','\002','\360','\000','\000','|','\002','}','\002','\360','\000','\000','}','\002','L','\003','\360','\000','\000','L','\003','T','\003','\360','\000','\000','T','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','e','\003','\360','\000','\000','e','\003','f','\003','\330','\004','\025','\220','Q','\320','\026','+','\250','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','7','\260','q','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','$','\240','B','\240','d','\250',')','\260',';','\270','d','\300','&','\310','\001','\310','\031','\320','R',']','\320',']','a','\320','a','g','\320','g','h','\320','h','q','\320','q','|','\320','|','\177','\360','\000','\000','@','\002','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','}','\002','\360','\000','\000','}','\002','~','\002','\360','\000','\000','~','\002','M','\003','\360','\000','\000','M','\003','U','\003','\360','\000','\000','U','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\004','\025','\220','Q','\320','\026',',','\250','A','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','8','\270','\001','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','%','\240','R','\240','t','\250','9','\260','K','\270','t','\300','6','\310','\021','\310',')','\320','S','^','\320','^','b','\320','b','h','\320','h','i','\320','i','r','\320','r','}','\360','\000','\000','~','\001','A','\002','\360','\000','\000','A','\002','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\360','\000','\000','\177','\002','N','\003','\360','\000','\000','N','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\004','\025','\220','Q','\320','\026','-','\250','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','9','\270','\021','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','&','\240','b','\250','\004','\250','I','\260','[','\300','\004','\300','F','\310','!','\310','9','\320','T','_','\320','_','c','\320','c','i','\320','i','j','\320','j','s','\320','s','~','\360','\000','\000','\177','\001','B','\002','\360','\000','\000','B','\002','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','s','\002','\360','\000','\000','s','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','O','\003','\360','\000','\000','O','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\004','\025','\220','Q','\320','\026','.','\250','a','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',':','\270','!','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','\047','\240','r','\250','\024','\250','Y','\260','k','\300','\024','\300','V','\310','1','\310','I','\320','U','`','\320','`','d','\320','d','j','\320','j','k','\320','k','t','\320','t','\177','\360','\000','\000','@','\002','C','\002','\360','\000','\000','C','\002','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','^','\002','\360','\000','\000','^','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','P','\003','\360','\000','\000','P','\003','X','\003','\360','\000','\000','X','\003','b','\003','\360','\000','\000','b','\003','h','\003','\360','\000','\000','h','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\004','\025','\220','Q','\320','\026','/','\250','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',';','\270','1','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','(','\250','\002','\250','$','\250','i','\260','{','\300','$','\300','f','\310','A','\310','Y','\320','V','a','\320','a','e','\320','e','k','\320','k','l','\320','l','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','D','\002','\360','\000','\000','D','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','Q','\003','\360','\000','\000','Q','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','j','\003','\360','\000','\000','j','\003','k','\003','\330','\004','\025','\220','Q','\320','\026','0','\260','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','U','\320','U','[','\320','[','\\','\320','\\','e','\320','e','p','\320','p','s','\320','s','y','\320','y','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','A','\003','\360','\000','\000','A','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','0','\260','\001','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\034','\230','R','\230','t','\240','9','\250','K','\260','t','\270','6','\300','\021','\300',')','\310',';','\320','V','Z','\320','Z','`','\320','`','a','\320','a','j','\320','j','u','\320','u','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','`','\003','\330','\004','\025','\220','Q','\220','o','\240','Q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\210','~','\230','Q','\230','c','\240','\021','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\021','\220','\036','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','Q','\300','l','\320','R','S','\320','S','b','\320','b','m','\320','m','t','\320','t','z','\320','z','{','\320','{','|','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','a','\300','|','\320','S','T','\320','T','c','\320','c','n','\320','n','u','\320','u','{','\320','{','|','\320','|','}','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','4','\260','v','\270','Q','\270','i','\300','q','\310','\014','\320','T','U','\320','U','d','\320','d','o','\320','o','v','\320','v','|','\320','|','}','\320','}','~','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','-','\250','Q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\031','\230','\"','\230','D','\240','\t','\250','\033','\260','D','\270','\006','\270','a','\270','y','\310','\001','\310','\034','\320','U','V','\320','V','e','\320','e','p','\320','p','w','\320','w','}','\320','}','~','\320','~','\177','\330','\004','\025','\220','Q','\220','l','\240','!','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','.','\250','a','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\032','\230','2','\230','T','\240','\031','\250','+','\260','T','\270','\026','\270','q','\300','\t','\310','\021','\310',',','\320','V','W','\320','W','f','\320','f','q','\320','q','x','\320','x','~','\320','~','\177','\360','\000','\000','@','\002','A','\002','\330','\004','\025','\220','Q','\220','m','\240','1','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','2','\260','!','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\036','\230','r','\240','\024','\240','Y','\250','k','\270','\024','\270','V','\300','1','\300','I','\310','Q','\310','l','\320','Z','[','\320','[','j','\320','j','u','\320','u','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','E','\002','\330','\004','\025','\220','Q','\320','\026','\047','\240','q','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','3','\260','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\037','\240','\002','\240','$','\240','i','\250','{','\270','$','\270','f','\300','A','\300','Y','\310','a','\310','|','\320','[','\\','\320','\\','k','\320','k','v','\320','v','}','\360','\000','\000','~','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','F','\002','\330','\004','\025','\220','Q','\320','\026','(','\250','\001','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','4','\260','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\320','\021','!','\240','\022','\240','4','\240','y','\260','\013','\270','4','\270','v','\300','Q','\300','i','\310','q','\320','P','\\','\320','\\',']','\320',']','l','\320','l','w','\320','w','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','G','\002','\330','\004','\025','\220','Q','\320','\026',')','\250','\021','\330','\004','\013','\210','1','\200','\001','\360','&','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','F','\310','!','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','[','\230','\001','\230','\021','\330','\004','\r','\210',']','\230','!','\230','6','\240','\021','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','6','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','$','\260','f','\270','A','\270','Y','\300','k','\320','Q','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','+','\250','1','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\027','\230','\002','\230','$','\230','i','\240','{','\260','%','\260','v','\270','Q','\270','i','\300','{','\320','R','W','\320','W',']','\320',']','^','\320','^','g','\320','g','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\004','\025','\220','Q','\220','j','\240','\001','\330','\004','\013','\210','1','\200','\001','\360','(','\000','\005','\r','\210','K','\220','q','\230','\001','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','7','\240','!','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','A','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','U','\260','(','\270','*','\300','E','\310','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033',',','\250','A','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\021','\220','\030','\230','\022','\230','4','\230','y','\250','\013','\260','5','\270','\006','\270','a','\270','y','\310','\013','\320','S','X','\320','X','^','\320','^','_','\320','_','h','\320','h','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\004','\025','\220','Q','\220','k','\240','\021','\330','\004','\013','\210','1','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','/','\250','q','\330','\004','\016','\320','\016','\037','\230','q','\240','\010','\250','\001','\330','\004','\022','\320','\022','#','\240','1','\240','H','\250','A','\330','\004','\021','\220','\033','\230','B','\230','d','\240',')','\250',';','\260','d','\270','&','\300','\001','\300','\031','\310','!','\310','<','\320','W','X','\320','X','g','\320','g','r','\320','r','y','\320','y','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\004','\025','\220','Q','\220','n','\240','A','\330','\004','\013','\210',':','\220','Q','\200','\001','\360','*','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\r','\210','T','\220','\026','\220','q','\230','\001','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','Q','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\021','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\320','\033','1','\260','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\024','\320','\024','%','\240','Q','\240','h','\250','a','\330','\004','\021','\220','\035','\230','b','\240','\004','\240','I','\250','[','\270','\004','\270','F','\300','!','\300','9','\310','A','\310','\\','\320','Y','Z','\320','Z','i','\320','i','t','\320','t','~','\360','\000','\000','\177','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','\\','\002','\360','\000','\000','\\','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\004','\025','\220','Q','\320','\026','&','\240','a','\330','\004','\013','\210','=','\230','\001','\200','\001','\360','2','\000','\005','\014','\210',';','\220','a','\220','q','\330','\004','\013','\210',';','\220','a','\220','q','\330','\004','\n','\210','+','\220','Q','\220','a','\330','\004','\014','\210','K','\220','q','\230','\001','\330','\004','\r','\210',']','\230','!','\230','6','\240','\026','\240','u','\250','A','\330','\004','\007','\200','w','\210','c','\220','\021','\330','\010','\017','\320','\017',' ','\240','\001','\240','\023','\240','D','\320','(','9','\270','\021','\270','#','\270','T','\320','A','R','\320','R','S','\320','S','V','\320','V','Z','\320','Z','k','\320','k','l','\320','l','o','\320','o','p','\330','\004','\r','\210',']','\230','!','\230','8','\240',':','\250','T','\260','\030','\270','\032','\300','4','\300','x','\310','z','\320','Y','\\','\320','\\','d','\320','d','n','\320','n','s','\320','s','t','\330','\004','\r','\210','U','\220','\047','\230','\022','\230','7','\240','\"','\240','A','\330','\004','\017','\210','w','\220','e','\230','?','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\020','\320','\020','!','\240','\021','\240','(','\250','!','\330','\004','\017','\320','\017',' ','\240','\001','\240','\030','\250','\021','\330','\004','\021','\320','\021','\"','\240','!','\240','8','\250','1','\330','\004','\021','\220','\026','\220','r','\230','\024','\230','Y','\240','k','\260','\024','\260','V','\270','1','\270','I','\300','[','\320','P','T','\320','T','Z','\320','Z','[','\320','[','d','\320','d','o','\320','o','r','\320','r','x','\320','x','y','\360','\000','\000','z','\001','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','d','\002','\360','\000','\000','d','\002','p','\002','\360','\000','\000','p','\002','q','\002','\360','\000','\000','q','\002','@','\003','\360','\000','\000','@','\003','K','\003','\360','\000','\000','K','\003','T','\003','\360','\000','\000','T','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','A','\004','\360','\000','\000','A','\004','L','\004','\360','\000','\000','L','\004','W','\004','\360','\000','\000','W','\004','_','\004','\360','\000','\000','_','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','|','\004','\360','\000','\000','|','\004','F','\005','\360','\000','\000','F','\005','L','\005','\360','\000','\000','L','\005','M','\005','\360','\000','\000','M','\005','N','\005','\330','\004','\025','\220','Q','\220','i','\230','q','\330','\004','\013','\210','<','\220','|','\240',';','\250','a','\200','A','\330','\010','\014','\210','A','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','7','\230','!','\330','\014','\023','\220','5','\230','\001','\330','\014','\023','\220','6','\230','\021','\330','\014','\023','\220',';','\230','a','\330','\014','\023','\220',':','\230','Q','\330','\014','\023','\220','8','\230','1','\330','\014','\023','\220','6','\230','\021','\200','A','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','4','6','\260','d','\270','!','\270','5','\300','\001','\200','A','\330','\010','\017','\210','q','\200','A','\330','\010','\017','\210','q','\220','\007','\220','q','\230','\001','\200','A','\330','\010','\017','\210','t','\220','5','\230','\001','\200','A','\330','\010','\017','\210','t','\220','8','\230','1','\230','A','\200','A','\330','\010','\017','\210','u','\220','A','\220','S','\230','\001','\200','A','\330','\010','\017','\210','u','\220','B','\220','d','\230','!','\200','A','\330','\010','\017','\210','w','\220','a','\220','t','\230','8','\240','1','\200','A','\330','\010','\017','\320','\017','%','\240','Q','\240','d','\250','&','\260','\001','\260','\021','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','1','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\033','\230','5','\240','\014','\250','A','\250','[','\270','\001','\270','\021','\330','\014','\017','\210','z','\230','\021','\230','.','\250','\001','\330','\020','\024','\220','H','\230','A','\330','\024',',','\250','G','\260','1','\260','A','\340','\020','(','\250','\007','\250','q','\260','\001','\330','\010','\017','\210','q','\200','A','\330','\010','\020','\220','\004','\220','A','\330','\010','#','\240','4','\320','\047','B','\300','!','\360','\006','\000','\t','\020','\210','q','\330','\010','\014','\320','\014','\034','\230','A','\330','\014','\025','\220','U','\230','-','\240','q','\250','\001','\330','\014','\017','\210','\177','\230','g','\240','U','\250','!','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','w','\240','g','\250','Q','\250','a','\330','\021',' ','\240','\007','\240','u','\250','A','\330','\024','\036','\230','a','\230','x','\240','q','\330','\020','\031','\230','\026','\230','y','\250','\002','\250','\047','\260','\021','\260','!','\330','\014','\020','\220','\007','\220','q','\230','\001','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\020','\220','\007','\220','q','\230','\001','\360','\006','\000','\t','\023','\220','$','\220','l','\240','\"','\240','A','\330','\010','\013','\210',':','\220','Q','\220','k','\240','\021','\330','\014','\023','\220','5','\230','\010','\240','\005','\240','Q','\330','\014','\017','\210','t','\220',':','\230','Q','\230','f','\240','A','\330','\020','\027','\220','t','\230','1','\230','A','\330','\014','\021','\220','\030','\230','\021','\230','$','\230','a','\230','v','\240','Q','\340','\014','\020','\220','\003','\220',':','\230','Y','\240','a','\240','u','\250','A','\330','\020','\025','\220','X','\230','Q','\230','j','\250','\007','\250','q','\260','\001','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\330','\010','\020','\220','\004','\220','H','\230','K','\240','q','\250','\013','\260','1','\260','A','\330','\010','\013','\210','6','\220','\027','\320','\030','5','\260','Q','\330','\014','\024','\220','A','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\024','\220','A','\340','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\013','\022','\220','!','\330','\r','\023','\220','7','\230','!','\330','\014','\022','\220',')','\230','1','\330','\020','\021','\330','\024',' ','\240','\005','\240','[','\260','\004','\260','A','\260','V','\270','1','\330','\010','\017','\210','q','\200','A','\330','*','A','\320','A','X','\320','X','Y','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','[','\310','\014','\320','T','U','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','x','\360','\000','\000','y','\001','E','\002','\360','\000','\000','E','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','E','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','P','\002','\360','\000','\000','P','\002','Y','\002','\360','\000','\000','Y','\002','`','\002','\360','\000','\000','`','\002','f','\002','\360','\000','\000','f','\002','h','\002','\360','\000','\000','h','\002','i','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','v','\360','\000','\000','w','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','Z','\002','\360','\000','\000','Z','\002','a','\002','\360','\000','\000','a','\002','g','\002','\360','\000','\000','g','\002','i','\002','\360','\000','\000','i','\002','j','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\320','v','w','\360','\000','\000','x','\001','C','\002','\360','\000','\000','C','\002','D','\002','\360','\000','\000','D','\002','R','\002','\360','\000','\000','R','\002','[','\002','\360','\000','\000','[','\002','b','\002','\360','\000','\000','b','\002','h','\002','\360','\000','\000','h','\002','j','\002','\360','\000','\000','j','\002','k','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\320','w','x','\360','\000','\000','y','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','S','\002','\360','\000','\000','S','\002','\\','\002','\360','\000','\000','\\','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','l','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','i','\002','\360','\000','\000','i','\002','k','\002','\360','\000','\000','k','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','i','\260','|','\300','2','\300','X','\310','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\320','y','z','\360','\000','\000','{','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','e','\002','\360','\000','\000','e','\002','k','\002','\360','\000','\000','k','\002','m','\002','\360','\000','\000','m','\002','n','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\320','z','{','\360','\000','\000','|','\001','G','\002','\360','\000','\000','G','\002','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','f','\002','\360','\000','\000','f','\002','l','\002','\360','\000','\000','l','\002','n','\002','\360','\000','\000','n','\002','o','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\340','\010','$','\240','F','\250','*','\260','A','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\033','\230','1','\230','F','\240','!','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','p','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\300','\021','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\330','\010','$','\240','N','\260','!','\260','8','\270','1','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\340','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010','#','\240','6','\250','\031','\260','!','\330','\010','\014','\210','E','\220','\025','\220','a','\220','z','\240','\021','\330','\014','\032','\230','!','\230','6','\240','\021','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','l','\270',',','\300','b','\310','\010','\320','P','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','C','\002','\360','\000','\000','C','\002','N','\002','\360','\000','\000','N','\002','O','\002','\360','\000','\000','O','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','v','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+',',','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\310','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','G','\002','\360','\000','\000','G','\002','R','\002','\360','\000','\000','R','\002','S','\002','\360','\000','\000','S','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','z','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','>','\270','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\320','u','|','\320','|','}','\360','\000','\000','~','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','X','\002','\360','\000','\000','X','\002','a','\002','\360','\000','\000','a','\002','h','\002','\360','\000','\000','h','\002','n','\002','\360','\000','\000','n','\002','p','\002','\360','\000','\000','p','\002','q','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','@','\300','\001','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','\177','\360','\000','\000','@','\002','A','\002','\360','\000','\000','A','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','t','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\300','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','t','\320','t','}','\320','}','~','\360','\000','\000','\177','\001','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','Y','\002','\360','\000','\000','Y','\002','b','\002','\360','\000','\000','b','\002','i','\002','\360','\000','\000','i','\002','o','\002','\360','\000','\000','o','\002','q','\002','\360','\000','\000','q','\002','r','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','T','\320','T','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','\\','\310','\034','\320','U','a','\320','a','m','\320','m','{','\320','{','|','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','y','\360','\000','\000','z','\001','F','\002','\360','\000','\000','F','\002','R','\002','\360','\000','\000','R','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','e','\003','\360','\000','\000','e','\003','k','\003','\360','\000','\000','k','\003','m','\003','\360','\000','\000','m','\003','w','\003','\360','\000','\000','w','\003','@','\004','\360','\000','\000','@','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','_','\004','\360','\000','\000','_','\004','h','\004','\360','\000','\000','h','\004','s','\004','\360','\000','\000','s','\004','y','\004','\360','\000','\000','y','\004','{','\004','\360','\000','\000','{','\004','|','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','B','\320','B','U','\320','U','V','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','K','\002','\360','\000','\000','K','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','~','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','B','\320','B','X','\320','X','j','\320','j','k','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\310','\t','\320','Q','Z','\320','Z','[','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\360','\000','\000','y','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','S','\002','\360','\000','\000','S','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','n','\002','\360','\000','\000','n','\002','w','\002','\360','\000','\000','w','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','U','\003','\360','\000','\000','U','\003','^','\003','\360','\000','\000','^','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','F','\004','\360','\000','\000','F','\004','R','\004','\360','\000','\000','R','\004','X','\004','\360','\000','\000','X','\004','Z','\004','\360','\000','\000','Z','\004','[','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','o','\270','\\','\310','\022','\310','8','\320','S','c','\320','c','o','\320','o','q','\320','q','y','\320','y','z','\200','A','\330','+','B','\320','B','[','\320','[','\\','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270',',','\300','l','\320','R','S','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','v','\360','\000','\000','w','\001','C','\002','\360','\000','\000','C','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002',']','\002','\360','\000','\000',']','\002','^','\002','\360','\000','\000','^','\002','l','\002','\360','\000','\000','l','\002','u','\002','\360','\000','\000','u','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','D','\003','\360','\000','\000','D','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','+','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','E','\002','\360','\000','\000','E','\002','P','\002','\360','\000','\000','P','\002','Q','\002','\360','\000','\000','Q','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','x','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','+','D','\320','D',']','\320',']','v','\320','v','w','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','l','\310','.','\320','X','f','\320','f','g','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','n','\320','n','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','q','\002','\360','\000','\000','q','\002','r','\002','\360','\000','\000','r','\002','@','\003','\360','\000','\000','@','\003','I','\003','\360','\000','\000','I','\003','Q','\003','\360','\000','\000','Q','\003','W','\003','\360','\000','\000','W','\003','Y','\003','\360','\000','\000','Y','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','t','\003','\360','\000','\000','t','\003','z','\003','\360','\000','\000','z','\003','|','\003','\360','\000','\000','|','\003','}','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','k','\270','\034','\300','R','\300','x','\310','q','\200','A','\330','+','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','|','\360','\000','\000','}','\001','I','\002','\360','\000','\000','I','\002','J','\002','\360','\000','\000','J','\002','U','\002','\360','\000','\000','U','\002','V','\002','\360','\000','\000','V','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','}','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330',',','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\035','\300','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','Q','\002','\360','\000','\000','Q','\002','R','\002','\360','\000','\000','R','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','y','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\330','-','.','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','{','\320','{','|','\360','\000','\000','}','\001','H','\002','\360','\000','\000','H','\002','I','\002','\360','\000','\000','I','\002','W','\002','\360','\000','\000','W','\002','`','\002','\360','\000','\000','`','\002','g','\002','\360','\000','\000','g','\002','m','\002','\360','\000','\000','m','\002','o','\002','\360','\000','\000','o','\002','y','\002','\360','\000','\000','y','\002','B','\003','\360','\000','\000','B','\003','O','\003','\360','\000','\000','O','\003','U','\003','\360','\000','\000','U','\003','W','\003','\360','\000','\000','W','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\320','N','^','\320','^','j','\320','j','l','\320','l','t','\320','t','u','\200','A','\330','-','.','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\010','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','x','\320','x','y','\360','\000','\000','z','\001','E','\002','\360','\000','\000','E','\002','F','\002','\360','\000','\000','F','\002','T','\002','\360','\000','\000','T','\002',']','\002','\360','\000','\000',']','\002','d','\002','\360','\000','\000','d','\002','j','\002','\360','\000','\000','j','\002','l','\002','\360','\000','\000','l','\002','m','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','D','\320','D','W','\320','W','X','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q','R','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','x','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','w','\360','\000','\000','x','\001','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','Z','\250','q','\200','A','\330','-','E','\300','Q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','u','\360','\000','\000','v','\001','A','\002','\360','\000','\000','A','\002','B','\002','\360','\000','\000','B','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','~','\002','\360','\000','\000','~','\002','G','\003','\360','\000','\000','G','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','W','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\330','.','D','\300','A','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Z','\300','q','\330','\010','\047','\240','~','\260','Q','\260','h','\270','a','\330','\010','&','\240','n','\260','A','\260','X','\270','Q','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','V','\002','\360','\000','\000','V','\002','a','\002','\360','\000','\000','a','\002','b','\002','\360','\000','\000','b','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','|','\002','\360','\000','\000','|','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','T','\003','\360','\000','\000','T','\003','V','\003','\360','\000','\000','V','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','z','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','U','\002','\360','\000','\000','U','\002','`','\002','\360','\000','\000','`','\002','a','\002','\360','\000','\000','a','\002','o','\002','\360','\000','\000','o','\002','x','\002','\360','\000','\000','x','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','X','\003','\360','\000','\000','X','\003','a','\003','\360','\000','\000','a','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','s','\003','\360','\000','\000','s','\003','t','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','^','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','1','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','O','\003','\360','\000','\000','O','\003','Q','\003','\360','\000','\000','Q','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','y','\003','\360','\000','\000','y','\003','C','\004','\360','\000','\000','C','\004','L','\004','\360','\000','\000','L','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','G','\260','?','\300',',','\310','b','\320','P','V','\320','V',']','\320',']','m','\320','m','y','\320','y','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','I','\002','\360','\000','\000','I','\002','J','\002','\200','A','\330','0','F','\300','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','T','\002','\360','\000','\000','T','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\300','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','}','\002','\360','\000','\000','}','\002','F','\003','\360','\000','\000','F','\003','M','\003','\360','\000','\000','M','\003','S','\003','\360','\000','\000','S','\003','U','\003','\360','\000','\000','U','\003','V','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','0','G','\320','G','`','\320','`','a','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','L','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','G','\002','\360','\000','\000','G','\002','S','\002','\360','\000','\000','S','\002','_','\002','\360','\000','\000','_','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','J','\002','\360','\000','\000','J','\002','V','\002','\360','\000','\000','V','\002','W','\002','\360','\000','\000','W','\002','b','\002','\360','\000','\000','b','\002','c','\002','\360','\000','\000','c','\002','q','\002','\360','\000','\000','q','\002','z','\002','\360','\000','\000','z','\002','A','\003','\360','\000','\000','A','\003','G','\003','\360','\000','\000','G','\003','I','\003','\360','\000','\000','I','\003','J','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','2','3','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','e','\002','\360','\000','\000','e','\002','f','\002','\360','\000','\000','f','\002','t','\002','\360','\000','\000','t','\002','}','\002','\360','\000','\000','}','\002','D','\003','\360','\000','\000','D','\003','J','\003','\360','\000','\000','J','\003','L','\003','\360','\000','\000','L','\003','M','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','9','\260','A','\200','A','\330','3','4','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','4','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','\047','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','N','\002','\360','\000','\000','N','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\360','\000','\000','[','\002','f','\002','\360','\000','\000','f','\002','g','\002','\360','\000','\000','g','\002','u','\002','\360','\000','\000','u','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','K','\003','\360','\000','\000','K','\003','M','\003','\360','\000','\000','M','\003','N','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\330','3','I','\320','I','\\','\320','\\',']','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','$','\240','M','\260','\021','\260','!','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','+','\300','[','\320','P','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',';','\260','a','\200','A','\330','3','Q','\320','Q','t','\360','\000','\000','u','\001','T','\002','\360','\000','\000','T','\002','v','\002','\360','\000','\000','v','\002','Z','\003','\360','\000','\000','Z','\003','z','\003','\360','\000','\000','z','\003',']','\004','\360','\000','\000',']','\004','^','\004','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','L','\320','H','Y','\320','Y','o','\360','\000','\000','p','\001','B','\002','\360','\000','\000','B','\002','W','\002','\360','\000','\000','W','\002','n','\002','\360','\000','\000','n','\002','A','\003','\360','\000','\000','A','\003','B','\003','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','W','\002','\360','\000','\000','W','\002','h','\002','\360','\000','\000','h','\002','~','\002','\360','\000','\000','~','\002','P','\003','\360','\000','\000','P','\003','e','\003','\360','\000','\000','e','\003','|','\003','\360','\000','\000','|','\003','O','\004','\360','\000','\000','O','\004','e','\004','\360','\000','\000','e','\004','f','\004','\360','\000','\000','f','\004','q','\004','\360','\000','\000','q','\004','r','\004','\360','\000','\000','r','\004','@','\005','\360','\000','\000','@','\005','I','\005','\360','\000','\000','I','\005','P','\005','\360','\000','\000','P','\005','V','\005','\360','\000','\000','V','\005','X','\005','\360','\000','\000','X','\005','Y','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','4','5','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','d','\002','\360','\000','\000','d','\002','e','\002','\360','\000','\000','e','\002','s','\002','\360','\000','\000','s','\002','|','\002','\360','\000','\000','|','\002','C','\003','\360','\000','\000','C','\003','I','\003','\360','\000','\000','I','\003','K','\003','\360','\000','\000','K','\003','L','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\330','5','J','\310','!','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','V','\002','\360','\000','\000','V','\002','_','\002','\360','\000','\000','_','\002','`','\002','\360','\000','\000','`','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','z','\002','\360','\000','\000','z','\002','C','\003','\360','\000','\000','C','\003','J','\003','\360','\000','\000','J','\003','P','\003','\360','\000','\000','P','\003','R','\003','\360','\000','\000','R','\003','S','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\360','\000','\000','@','\003','N','\003','\360','\000','\000','N','\003','W','\003','\360','\000','\000','W','\003','^','\003','\360','\000','\000','^','\003','d','\003','\360','\000','\000','d','\003','f','\003','\360','\000','\000','f','\003','g','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','_','\003','\360','\000','\000','_','\003','e','\003','\360','\000','\000','e','\003','g','\003','\360','\000','\000','g','\003','h','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','@','\003','\360','\000','\000','@','\003','A','\003','\360','\000','\000','A','\003','O','\003','\360','\000','\000','O','\003','X','\003','\360','\000','\000','X','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','K','\004','\360','\000','\000','K','\004','Q','\004','\360','\000','\000','Q','\004','S','\004','\360','\000','\000','S','\004','T','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','l','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','i','\002','\360','\000','\000','i','\002','u','\002','\360','\000','\000','u','\002','v','\002','\360','\000','\000','v','\002','A','\003','\360','\000','\000','A','\003','B','\003','\360','\000','\000','B','\003','P','\003','\360','\000','\000','P','\003','Y','\003','\360','\000','\000','Y','\003','`','\003','\360','\000','\000','`','\003','f','\003','\360','\000','\000','f','\003','h','\003','\360','\000','\000','h','\003','i','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','v','\002','\360','\000','\000','v','\002','w','\002','\360','\000','\000','w','\002','B','\003','\360','\000','\000','B','\003','C','\003','\360','\000','\000','C','\003','Q','\003','\360','\000','\000','Q','\003','Z','\003','\360','\000','\000','Z','\003','a','\003','\360','\000','\000','a','\003','g','\003','\360','\000','\000','g','\003','i','\003','\360','\000','\000','i','\003','j','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','A','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','C','\003','\360','\000','\000','C','\003','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','[','\003','\360','\000','\000','[','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','\177','\003','\360','\000','\000','\177','\003','I','\004','\360','\000','\000','I','\004','O','\004','\360','\000','\000','O','\004','Q','\004','\360','\000','\000','Q','\004','R','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',',','\300','l','\320','R','T','\320','T','Z','\320','Z','_','\320','_','h','\320','h','i','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','I','\002','\360','\000','\000','I','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','l','\002','\360','\000','\000','l','\002','x','\002','\360','\000','\000','x','\002','y','\002','\360','\000','\000','y','\002','D','\003','\360','\000','\000','D','\003','E','\003','\360','\000','\000','E','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003','c','\003','\360','\000','\000','c','\003','i','\003','\360','\000','\000','i','\003','k','\003','\360','\000','\000','k','\003','l','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','d','\003','\360','\000','\000','d','\003','j','\003','\360','\000','\000','j','\003','l','\003','\360','\000','\000','l','\003','m','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','7','8','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\270','a','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003',']','\003','\360','\000','\000',']','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','D','\004','\360','\000','\000','D','\004','Q','\004','\360','\000','\000','Q','\004','W','\004','\360','\000','\000','W','\004','Y','\004','\360','\000','\000','Y','\004','c','\004','\360','\000','\000','c','\004','l','\004','\360','\000','\000','l','\004','x','\004','\360','\000','\000','x','\004','~','\004','\360','\000','\000','~','\004','@','\005','\360','\000','\000','@','\005','A','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','M','\320','M','b','\320','b','c','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\270','\014','\300','K','\310','q','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','g','\002','\360','\000','\000','g','\002','s','\002','\360','\000','\000','s','\002','~','\002','\360','\000','\000','~','\002','E','\003','\360','\000','\000','E','\003','F','\003','\360','\000','\000','F','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','i','\003','\360','\000','\000','i','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','G','\004','\360','\000','\000','G','\004','P','\004','\360','\000','\000','P','\004',']','\004','\360','\000','\000',']','\004','c','\004','\360','\000','\000','c','\004','e','\004','\360','\000','\000','e','\004','o','\004','\360','\000','\000','o','\004','x','\004','\360','\000','\000','x','\004','D','\005','\360','\000','\000','D','\005','J','\005','\360','\000','\000','J','\005','L','\005','\360','\000','\000','L','\005','M','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','/','\310','\034','\320','U','W','\320','W',']','\320',']','b','\320','b','k','\320','k','{','\360','\000','\000','|','\001','H','\002','\360','\000','\000','H','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','^','\002','\360','\000','\000','^','\002','_','\002','\200','A','\330','7','N','\320','N','e','\320','e','~','\320','~','\177','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\034','\300','\\','\320','Q',']','\320',']','^','\330','\010','!','\320','!','2','\260','!','\260','8','\270','1','\330','\010','\047','\320','\047','8','\270','\001','\270','\030','\300','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','f','\003','\360','\000','\000','f','\003','g','\003','\360','\000','\000','g','\003','u','\003','\360','\000','\000','u','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','J','\004','\360','\000','\000','J','\004','L','\004','\360','\000','\000','L','\004','V','\004','\360','\000','\000','V','\004','_','\004','\360','\000','\000','_','\004','k','\004','\360','\000','\000','k','\004','q','\004','\360','\000','\000','q','\004','s','\004','\360','\000','\000','s','\004','t','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270',')','\300','<','\310','r','\320','Q','W','\320','W','\\','\320','\\','e','\320','e','f','\200','A','\330','7','Q','\320','Q','R','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\014','\310','A','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\330','\010','#','\240','>','\260','\021','\260','(','\270','!','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','o','\002','\360','\000','\000','o','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','X','\004','\360','\000','\000','X','\004','^','\004','\360','\000','\000','^','\004','`','\004','\360','\000','\000','`','\004','a','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\320',':','J','\310',',','\320','V','X','\320','X','^','\320','^','c','\320','c','l','\320','l','m','\200','A','\330','8','P','\320','P','h','\320','h','i','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','M','\310','\035','\320','V','W','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','x','\002','\360','\000','\000','x','\002','E','\003','\360','\000','\000','E','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','v','\003','\360','\000','\000','v','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\330','9','R','\320','R','k','\320','k','l','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\270','N','\310','.','\320','X','Y','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','y','\002','\360','\000','\000','y','\002','G','\003','\360','\000','\000','G','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','S','\004','\360','\000','\000','S','\004','\\','\004','\360','\000','\000','\\','\004','d','\004','\360','\000','\000','d','\004','j','\004','\360','\000','\000','j','\004','l','\004','\360','\000','\000','l','\004','m','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\320','k','\177','\360','\000','\000','@','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','>','\310','\036','\320','W','e','\320','e','s','\320','s','t','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','j','\002','\360','\000','\000','j','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','q','\003','\360','\000','\000','q','\003','|','\003','\360','\000','\000','|','\003','}','\003','\360','\000','\000','}','\003','K','\004','\360','\000','\000','K','\004','T','\004','\360','\000','\000','T','\004','\\','\004','\360','\000','\000','\\','\004','b','\004','\360','\000','\000','b','\004','d','\004','\360','\000','\000','d','\004','n','\004','\360','\000','\000','n','\004','w','\004','\360','\000','\000','w','\004','\177','\004','\360','\000','\000','\177','\004','E','\005','\360','\000','\000','E','\005','G','\005','\360','\000','\000','G','\005','H','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','+','\300','\\','\320','Q','S','\320','S','Y','\320','Y','^','\320','^','g','\320','g','h','\200','A','\330','9','R','\320','R','k','\360','\000','\000','l','\001','A','\002','\360','\000','\000','A','\002','Z','\002','\360','\000','\000','Z','\002','[','\002','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\036','\300','~','\320','U','c','\320','c','q','\320','q','r','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\330','\010','\037','\320','\037','0','\260','\001','\260','\030','\270','\021','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','v','\002','\360','\000','\000','v','\002','D','\003','\360','\000','\000','D','\003','R','\003','\360','\000','\000','R','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','z','\003','\360','\000','\000','z','\003','{','\003','\360','\000','\000','{','\003','I','\004','\360','\000','\000','I','\004','R','\004','\360','\000','\000','R','\004','V','\004','\360','\000','\000','V','\004','\\','\004','\360','\000','\000','\\','\004','^','\004','\360','\000','\000','^','\004','h','\004','\360','\000','\000','h','\004','q','\004','\360','\000','\000','q','\004','u','\004','\360','\000','\000','u','\004','{','\004','\360','\000','\000','{','\004','}','\004','\360','\000','\000','}','\004','G','\005','\360','\000','\000','G','\005','P','\005','\360','\000','\000','P','\005','T','\005','\360','\000','\000','T','\005','Z','\005','\360','\000','\000','Z','\005','\\','\005','\360','\000','\000','\\','\005',']','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','E','\260','\031','\270','\047','\300','\034','\310','R','\310','v','\320','U','Z','\320','Z','c','\320','c','j','\320','j','v','\320','v','x','\320','x','~','\360','\000','\000','\177','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','N','\002','\200','A','\330','?','@','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','e','\002','\360','\000','\000','e','\002','m','\002','\360','\000','\000','m','\002','s','\002','\360','\000','\000','s','\002','u','\002','\360','\000','\000','u','\002','}','\002','\360','\000','\000','}','\002','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','y','\003','\360','\000','\000','y','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','?','V','\320','V','W','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\270','<','\300','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','m','\320','m','s','\320','s','u','\320','u','}','\360','\000','\000','~','\001','G','\002','\360','\000','\000','G','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','V','\002','\360','\000','\000','V','\002','^','\002','\360','\000','\000','^','\002','g','\002','\360','\000','\000','g','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','G','\004','\360','\000','\000','G','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','g','\003','\360','\000','\000','g','\003','h','\003','\360','\000','\000','h','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','F','\004','\360','\000','\000','F','\004','L','\004','\360','\000','\000','L','\004','N','\004','\360','\000','\000','N','\004','O','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','k','\003','\360','\000','\000','k','\003','l','\003','\360','\000','\000','l','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','J','\004','\360','\000','\000','J','\004','P','\004','\360','\000','\000','P','\004','R','\004','\360','\000','\000','R','\004','S','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','m','\003','\360','\000','\000','m','\003','n','\003','\360','\000','\000','n','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','L','\004','\360','\000','\000','L','\004','R','\004','\360','\000','\000','R','\004','T','\004','\360','\000','\000','T','\004','U','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','n','\003','\360','\000','\000','n','\003','o','\003','\360','\000','\000','o','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','M','\004','\360','\000','\000','M','\004','S','\004','\360','\000','\000','S','\004','U','\004','\360','\000','\000','U','\004','V','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\330','A','B','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','o','\003','\360','\000','\000','o','\003','p','\003','\360','\000','\000','p','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','N','\004','\360','\000','\000','N','\004','T','\004','\360','\000','\000','T','\004','V','\004','\360','\000','\000','V','\004','W','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','\014','\210','J','\220','m','\240','6','\250','\021','\330','\010','\014','\210','M','\230','\024','\230','Q','\330','\010','\014','\210','J','\220','i','\230','q','\240','\004','\240','A','\360','\006','\000','\t','\r','\210','O','\230','9','\240','F','\250','!','\360','\006','\000','\t','\r','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\210','O','\230','1','\200','A','\340','\010','\020','\220','\004','\220','A','\330','\010','\013','\210','4','\210','w','\220','a','\220','w','\230','a','\330','\014','\021','\220','\030','\230','\021','\330','\014','\021','\320','\021','!','\240','\021','\360','\006','\000','\r','\022','\220','\037','\240','\013','\250','1','\330','\014','\021','\220','\036','\230','{','\250','!','\330','\014','\021','\220','\033','\230','K','\240','q','\330','\014','\021','\320','\021','\"','\240','!','\360','\006','\000','\r','\022','\220','\030','\230','\037','\250','\001','\250','\024','\250','Q','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','0','\260','\001','\260','\024','\260','Y','\270','a','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\023','\220','4','\220','q','\320','\030','(','\250','\003','\250','1','\330','\024','\030','\230','\001','\320','\031','+','\320','+','G','\300','q','\310','\001','\330','\020','\025','\220','\\','\240','\021','\240','.','\260','\001','\330','\014','\021','\220','\025','\220','a','\320','\027','(','\250','\004','\250','A','\360','\006','\000','\r','\021','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','3','\260','1','\260','D','\270','\t','\300','\021','\330','\020','\035','\230','T','\240','\021','\240','!','\330','\020','\025','\220','[','\240','\001','\240','\036','\250','q','\330','\014','\021','\220','\025','\220','a','\320','\027','\047','\240','t','\250','1','\360','\006','\000','\r','\022','\220','\025','\220','a','\320','\027',')','\250','\033','\260','A','\330','\014','\020','\220','\005','\220','V','\230','1','\230','E','\240','\025','\240','d','\250','!','\250','1','\330','\020','\027','\320','\027','1','\260','\021','\260','$','\260','i','\270','q','\330','\020','\036','\230','d','\240','!','\240','1','\330','\020','\025','\220','U','\230','!','\230','?','\250','!','\250','?','\270','$','\270','a','\270','q','\330','\020','\025','\220','X','\230','Q','\230','o','\250','Q','\330','\014','\021','\220','\025','\220','a','\320','\027',')','\250','\024','\250','Q','\330','\010','\017','\210','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','h','\320','h','i','\320','i','t','\320','t','u','\360','\000','\000','v','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002',']','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','i','\320','i','j','\320','j','u','\320','u','v','\360','\000','\000','w','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','^','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','j','\320','j','k','\320','k','v','\320','v','w','\360','\000','\000','x','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','_','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',':','\270','!','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','(','\240','q','\330','\010','\"','\320','\"','6','\260','a','\260','q','\270','\010','\300','\t','\310','\026','\310','v','\320','U','W','\320','W','_','\320','_','k','\320','k','l','\320','l','w','\320','w','x','\360','\000','\000','y','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','`','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','8','\270','\t','\300','\034','\310','Y','\320','V','X','\320','X','_','\320','_','a','\320','a','b','\330','\010','#','\240','<','\250','x','\260','q','\270','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','l','\320','l','m','\320','m','x','\320','x','y','\360','\000','\000','z','\001','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','a','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\330','\010','&','\320','&','7','\260','q','\270','\010','\300','\001','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','m','\320','m','n','\320','n','y','\320','y','z','\360','\000','\000','{','\001','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','\177','\002','\360','\000','\000','\177','\002','E','\003','\360','\000','\000','E','\003','G','\003','\360','\000','\000','G','\003','H','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','j','\270','\014','\300','B','\300','h','\310','a','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\330','\010','(','\320','(','9','\270','\021','\270','(','\300','!','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','o','\320','o','p','\320','p','{','\320','{','|','\360','\000','\000','}','\001','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','p','\002','\360','\000','\000','p','\002','y','\002','\360','\000','\000','y','\002','F','\003','\360','\000','\000','F','\003','L','\003','\360','\000','\000','L','\003','N','\003','\360','\000','\000','N','\003','O','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','h','\250','m','\270','<','\300','r','\310','\030','\320','Q','R','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','p','\320','p','q','\320','q','|','\320','|','}','\360','\000','\000','~','\001','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','\\','\002','\360','\000','\000','\\','\002','b','\002','\360','\000','\000','b','\002','d','\002','\360','\000','\000','d','\002','e','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','q','\320','q','r','\320','r','}','\320','}','~','\360','\000','\000','\177','\001','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002',']','\002','\360','\000','\000',']','\002','c','\002','\360','\000','\000','c','\002','e','\002','\360','\000','\000','e','\002','f','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','W','\002','\360','\000','\000','W','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','\035','\230','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','r','\320','r','s','\320','s','~','\320','~','\177','\360','\000','\000','@','\002','N','\002','\360','\000','\000','N','\002','T','\002','\360','\000','\000','T','\002','^','\002','\360','\000','\000','^','\002','d','\002','\360','\000','\000','d','\002','f','\002','\360','\000','\000','f','\002','g','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','X','\250','Q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','N','\002','\360','\000','\000','N','\002','Y','\002','\360','\000','\000','Y','\002','Z','\002','\360','\000','\000','Z','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','A','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','7','\260','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','L','\002','\360','\000','\000','L','\002','R','\002','\360','\000','\000','R','\002','T','\002','\360','\000','\000','T','\002','\\','\002','\360','\000','\000','\\','\002','h','\002','\360','\000','\000','h','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','u','\002','\360','\000','\000','u','\002','C','\003','\360','\000','\000','C','\003','L','\003','\360','\000','\000','L','\003','S','\003','\360','\000','\000','S','\003','Y','\003','\360','\000','\000','Y','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(',';','\270','1','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t',')','\250','\001','\330','\010','\"','\320','\"','7','\260','q','\270','\001','\270','\030','\300','\031','\310','&','\320','P','V','\320','V','X','\320','X','`','\320','`','i','\320','i','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','H','\002','\360','\000','\000','H','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','k','\002','\360','\000','\000','k','\002','l','\002','\360','\000','\000','l','\002','w','\002','\360','\000','\000','w','\002','x','\002','\360','\000','\000','x','\002','F','\003','\360','\000','\000','F','\003','O','\003','\360','\000','\000','O','\003','V','\003','\360','\000','\000','V','\003','\\','\003','\360','\000','\000','\\','\003','^','\003','\360','\000','\000','^','\003','_','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','9','\270','\031','\300',',','\310','i','\320','W','Y','\320','Y','`','\320','`','b','\320','b','c','\330','\010','$','\240','M','\260','\030','\270','\021','\270','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','m','\002','\360','\000','\000','m','\002','n','\002','\360','\000','\000','n','\002','y','\002','\360','\000','\000','y','\002','z','\002','\360','\000','\000','z','\002','H','\003','\360','\000','\000','H','\003','Q','\003','\360','\000','\000','Q','\003','X','\003','\360','\000','\000','X','\003','^','\003','\360','\000','\000','^','\003','`','\003','\360','\000','\000','`','\003','a','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\t','\270','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','j','\320','j','p','\320','p','r','\320','r','z','\360','\000','\000','{','\001','D','\002','\360','\000','\000','D','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','l','\002','\360','\000','\000','l','\002','r','\002','\360','\000','\000','r','\002','t','\002','\360','\000','\000','t','\002','|','\002','\360','\000','\000','|','\002','H','\003','\360','\000','\000','H','\003','I','\003','\360','\000','\000','I','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','c','\003','\360','\000','\000','c','\003','l','\003','\360','\000','\000','l','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','|','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','I','\260','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\006','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','M','\002','\360','\000','\000','M','\002','S','\002','\360','\000','\000','S','\002','U','\002','\360','\000','\000','U','\002',']','\002','\360','\000','\000',']','\002','f','\002','\360','\000','\000','f','\002','n','\002','\360','\000','\000','n','\002','t','\002','\360','\000','\000','t','\002','v','\002','\360','\000','\000','v','\002','~','\002','\360','\000','\000','~','\002','J','\003','\360','\000','\000','J','\003','K','\003','\360','\000','\000','K','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','e','\003','\360','\000','\000','e','\003','n','\003','\360','\000','\000','n','\003','u','\003','\360','\000','\000','u','\003','{','\003','\360','\000','\000','{','\003','}','\003','\360','\000','\000','}','\003','~','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\007','\260','z','\300','\021','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','W','\250','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','n','\002','\360','\000','\000','n','\002','o','\002','\360','\000','\000','o','\002','z','\002','\360','\000','\000','z','\002','{','\002','\360','\000','\000','{','\002','I','\003','\360','\000','\000','I','\003','R','\003','\360','\000','\000','R','\003','Y','\003','\360','\000','\000','Y','\003','_','\003','\360','\000','\000','_','\003','a','\003','\360','\000','\000','a','\003','b','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','5','\260','\n','\270','!','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\250','\017','\260','q','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','$','\320','$','5','\260','Q','\260','h','\270','a','\330','\010','#','\320','#','4','\260','A','\260','X','\270','Q','\330','\010','%','\320','%','6','\260','a','\260','x','\270','q','\360','\006','\000','\t','%','\240','A','\330','\010','\"','\320','\"','3','\260','1','\260','A','\260','X','\270','Y','\300','f','\310','F','\320','R','T','\320','T','\\','\320','\\','e','\320','e','k','\320','k','q','\320','q','s','\320','s','{','\360','\000','\000','|','\001','E','\002','\360','\000','\000','E','\002','J','\002','\360','\000','\000','J','\002','P','\002','\360','\000','\000','P','\002','R','\002','\360','\000','\000','R','\002','Z','\002','\360','\000','\000','Z','\002','c','\002','\360','\000','\000','c','\002','j','\002','\360','\000','\000','j','\002','p','\002','\360','\000','\000','p','\002','r','\002','\360','\000','\000','r','\002','z','\002','\360','\000','\000','z','\002','F','\003','\360','\000','\000','F','\003','G','\003','\360','\000','\000','G','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','a','\003','\360','\000','\000','a','\003','j','\003','\360','\000','\000','j','\003','s','\003','\360','\000','\000','s','\003','y','\003','\360','\000','\000','y','\003','{','\003','\360','\000','\000','{','\003','E','\004','\360','\000','\000','E','\004','N','\004','\360','\000','\000','N','\004','W','\004','\360','\000','\000','W','\004',']','\004','\360','\000','\000',']','\004','_','\004','\360','\000','\000','_','\004','i','\004','\360','\000','\000','i','\004','r','\004','\360','\000','\000','r','\004','z','\004','\360','\000','\000','z','\004','@','\005','\360','\000','\000','@','\005','B','\005','\360','\000','\000','B','\005','L','\005','\360','\000','\000','L','\005','U','\005','\360','\000','\000','U','\005','_','\005','\360','\000','\000','_','\005','e','\005','\360','\000','\000','e','\005','g','\005','\360','\000','\000','g','\005','h','\005','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','5','\260','Y','\270','l','\310',')','\320','S','U','\320','U','\\','\320','\\','^','\320','^','_','\330','\010',' ','\240','\t','\250','\030','\260','\021','\260','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','y','\230','\014','\240','B','\240','f','\250','F','\260','%','\260','y','\300','\014','\310','L','\320','X','Z','\320','Z','`','\320','`','f','\320','f','k','\320','k','t','\360','\000','\000','u','\001','A','\002','\360','\000','\000','A','\002','M','\002','\360','\000','\000','M','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','t','\002','\360','\000','\000','t','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','H','\003','\360','\000','\000','H','\003','N','\003','\360','\000','\000','N','\003','S','\003','\360','\000','\000','S','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','l','\320','l','r','\320','r','t','\320','t','|','\360','\000','\000','}','\001','F','\002','\360','\000','\000','F','\002','K','\002','\360','\000','\000','K','\002','Q','\002','\360','\000','\000','Q','\002','S','\002','\360','\000','\000','S','\002','[','\002','\360','\000','\000','[','\002','d','\002','\360','\000','\000','d','\002','k','\002','\360','\000','\000','k','\002','q','\002','\360','\000','\000','q','\002','s','\002','\360','\000','\000','s','\002','{','\002','\360','\000','\000','{','\002','G','\003','\360','\000','\000','G','\003','H','\003','\360','\000','\000','H','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','b','\003','\360','\000','\000','b','\003','k','\003','\360','\000','\000','k','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','z','\003','\360','\000','\000','z','\003','{','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','<','\270','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','*','\250','\021','\330','\010','\"','\320','\"','8','\270','\001','\270','\021','\270','(','\300',')','\310','6','\320','Q','W','\320','W','Y','\320','Y','a','\320','a','j','\320','j','p','\320','p','v','\320','v','x','\360','\000','\000','y','\001','A','\002','\360','\000','\000','A','\002','J','\002','\360','\000','\000','J','\002','O','\002','\360','\000','\000','O','\002','U','\002','\360','\000','\000','U','\002','W','\002','\360','\000','\000','W','\002','_','\002','\360','\000','\000','_','\002','h','\002','\360','\000','\000','h','\002','o','\002','\360','\000','\000','o','\002','u','\002','\360','\000','\000','u','\002','w','\002','\360','\000','\000','w','\002','\177','\002','\360','\000','\000','\177','\002','K','\003','\360','\000','\000','K','\003','L','\003','\360','\000','\000','L','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','f','\003','\360','\000','\000','f','\003','l','\003','\360','\000','\000','l','\003','v','\003','\360','\000','\000','v','\003','|','\003','\360','\000','\000','|','\003','~','\003','\360','\000','\000','~','\003','\177','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',':','\270',')','\300','<','\310','y','\320','X','Z','\320','Z','a','\320','a','c','\320','c','d','\330','\010','%','\240','^','\260','8','\270','1','\270','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','=','\270','Q','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','+','\250','!','\330','\010','\"','\320','\"','9','\270','\021','\270','!','\270','8','\300','9','\310','F','\320','R','X','\320','X','Z','\320','Z','b','\320','b','k','\320','k','q','\320','q','w','\320','w','y','\360','\000','\000','z','\001','B','\002','\360','\000','\000','B','\002','K','\002','\360','\000','\000','K','\002','P','\002','\360','\000','\000','P','\002','V','\002','\360','\000','\000','V','\002','X','\002','\360','\000','\000','X','\002','`','\002','\360','\000','\000','`','\002','i','\002','\360','\000','\000','i','\002','p','\002','\360','\000','\000','p','\002','v','\002','\360','\000','\000','v','\002','x','\002','\360','\000','\000','x','\002','@','\003','\360','\000','\000','@','\003','L','\003','\360','\000','\000','L','\003','M','\003','\360','\000','\000','M','\003','X','\003','\360','\000','\000','X','\003','Y','\003','\360','\000','\000','Y','\003','g','\003','\360','\000','\000','g','\003','p','\003','\360','\000','\000','p','\003','w','\003','\360','\000','\000','w','\003','}','\003','\360','\000','\000','}','\003','\177','\003','\360','\000','\000','\177','\003','@','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ',';','\270','9','\300','L','\320','P','Y','\320','Y','[','\320','[','b','\320','b','d','\320','d','e','\330','\010','&','\240','o','\260','X','\270','Q','\270','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','>','\270','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t',',','\250','1','\330','\010','\"','\320','\"',':','\270','!','\270','1','\270','H','\300','I','\310','V','\320','S','Y','\320','Y','[','\320','[','c','\320','c','l','\320','l','r','\320','r','x','\320','x','z','\360','\000','\000','{','\001','C','\002','\360','\000','\000','C','\002','L','\002','\360','\000','\000','L','\002','Q','\002','\360','\000','\000','Q','\002','W','\002','\360','\000','\000','W','\002','Y','\002','\360','\000','\000','Y','\002','a','\002','\360','\000','\000','a','\002','j','\002','\360','\000','\000','j','\002','q','\002','\360','\000','\000','q','\002','w','\002','\360','\000','\000','w','\002','y','\002','\360','\000','\000','y','\002','A','\003','\360','\000','\000','A','\003','M','\003','\360','\000','\000','M','\003','N','\003','\360','\000','\000','N','\003','Y','\003','\360','\000','\000','Y','\003','Z','\003','\360','\000','\000','Z','\003','h','\003','\360','\000','\000','h','\003','n','\003','\360','\000','\000','n','\003','x','\003','\360','\000','\000','x','\003','~','\003','\360','\000','\000','~','\003','@','\004','\360','\000','\000','@','\004','A','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','<','\270','I','\300','\\','\320','Q','Z','\320','Z','\\','\320','\\','c','\320','c','e','\320','e','f','\330','\010','\047','\320','\047','7','\260','x','\270','q','\300','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','?','\270','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','-','\250','A','\330','\010','\"','\320','\"',';','\270','1','\270','A','\270','X','\300','Y','\310','f','\320','T','Z','\320','Z','\\','\320','\\','d','\320','d','m','\320','m','s','\320','s','y','\320','y','{','\360','\000','\000','|','\001','D','\002','\360','\000','\000','D','\002','M','\002','\360','\000','\000','M','\002','R','\002','\360','\000','\000','R','\002','X','\002','\360','\000','\000','X','\002','Z','\002','\360','\000','\000','Z','\002','b','\002','\360','\000','\000','b','\002','k','\002','\360','\000','\000','k','\002','r','\002','\360','\000','\000','r','\002','x','\002','\360','\000','\000','x','\002','z','\002','\360','\000','\000','z','\002','B','\003','\360','\000','\000','B','\003','N','\003','\360','\000','\000','N','\003','O','\003','\360','\000','\000','O','\003','Z','\003','\360','\000','\000','Z','\003','[','\003','\360','\000','\000','[','\003','i','\003','\360','\000','\000','i','\003','o','\003','\360','\000','\000','o','\003','y','\003','\360','\000','\000','y','\003','\177','\003','\360','\000','\000','\177','\003','A','\004','\360','\000','\000','A','\004','B','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','=','\270','Y','\300','l','\320','R','[','\320','[',']','\320',']','d','\320','d','f','\320','f','g','\330','\010','(','\320','(','9','\270','\030','\300','\021','\300','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','@','\300','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','.','\250','Q','\330','\010','\"','\320','\"','<','\270','A','\270','Q','\270','h','\300','i','\310','v','\320','U','[','\320','[',']','\320',']','e','\320','e','n','\320','n','t','\320','t','z','\320','z','|','\360','\000','\000','}','\001','E','\002','\360','\000','\000','E','\002','N','\002','\360','\000','\000','N','\002','S','\002','\360','\000','\000','S','\002','Y','\002','\360','\000','\000','Y','\002','[','\002','\360','\000','\000','[','\002','c','\002','\360','\000','\000','c','\002','l','\002','\360','\000','\000','l','\002','s','\002','\360','\000','\000','s','\002','y','\002','\360','\000','\000','y','\002','{','\002','\360','\000','\000','{','\002','C','\003','\360','\000','\000','C','\003','O','\003','\360','\000','\000','O','\003','P','\003','\360','\000','\000','P','\003','[','\003','\360','\000','\000','[','\003','\\','\003','\360','\000','\000','\\','\003','j','\003','\360','\000','\000','j','\003','p','\003','\360','\000','\000','p','\003','z','\003','\360','\000','\000','z','\003','@','\004','\360','\000','\000','@','\004','B','\004','\360','\000','\000','B','\004','C','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','>','\270','i','\300','|','\320','S','\\','\320','\\','^','\320','^','e','\320','e','g','\320','g','h','\330','\010',')','\320',')',';','\270','8','\300','1','\300','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','A','\300','\021','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','/','\250','a','\330','\010','\"','\320','\"','=','\270','Q','\270','a','\270','x','\300','y','\320','P','V','\320','V','\\','\320','\\','^','\320','^','f','\320','f','o','\320','o','u','\320','u','{','\320','{','}','\360','\000','\000','~','\001','F','\002','\360','\000','\000','F','\002','O','\002','\360','\000','\000','O','\002','T','\002','\360','\000','\000','T','\002','Z','\002','\360','\000','\000','Z','\002','\\','\002','\360','\000','\000','\\','\002','d','\002','\360','\000','\000','d','\002','m','\002','\360','\000','\000','m','\002','t','\002','\360','\000','\000','t','\002','z','\002','\360','\000','\000','z','\002','|','\002','\360','\000','\000','|','\002','D','\003','\360','\000','\000','D','\003','P','\003','\360','\000','\000','P','\003','Q','\003','\360','\000','\000','Q','\003','\\','\003','\360','\000','\000','\\','\003',']','\003','\360','\000','\000',']','\003','k','\003','\360','\000','\000','k','\003','q','\003','\360','\000','\000','q','\003','{','\003','\360','\000','\000','{','\003','A','\004','\360','\000','\000','A','\004','C','\004','\360','\000','\000','C','\004','D','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','?','\270','y','\310','\014','\320','T',']','\320',']','_','\320','_','f','\320','f','h','\320','h','i','\330','\010','*','\320','*','=','\270','X','\300','Q','\300','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','B','\300','!','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','0','\250','q','\330','\010','\"','\320','\"','>','\270','a','\270','q','\300','\010','\310','\t','\320','Q','W','\320','W',']','\320',']','_','\320','_','g','\320','g','p','\320','p','v','\320','v','|','\320','|','~','\360','\000','\000','\177','\001','G','\002','\360','\000','\000','G','\002','P','\002','\360','\000','\000','P','\002','U','\002','\360','\000','\000','U','\002','[','\002','\360','\000','\000','[','\002',']','\002','\360','\000','\000',']','\002','e','\002','\360','\000','\000','e','\002','n','\002','\360','\000','\000','n','\002','u','\002','\360','\000','\000','u','\002','{','\002','\360','\000','\000','{','\002','}','\002','\360','\000','\000','}','\002','E','\003','\360','\000','\000','E','\003','Q','\003','\360','\000','\000','Q','\003','R','\003','\360','\000','\000','R','\003',']','\003','\360','\000','\000',']','\003','^','\003','\360','\000','\000','^','\003','l','\003','\360','\000','\000','l','\003','r','\003','\360','\000','\000','r','\003','|','\003','\360','\000','\000','|','\003','B','\004','\360','\000','\000','B','\004','D','\004','\360','\000','\000','D','\004','E','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','@','\300','\t','\310','\034','\320','U','^','\320','^','`','\320','`','g','\320','g','i','\320','i','j','\330','\010','+','\320','+','?','\270','x','\300','q','\310','\001','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','C','\300','1','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','1','\260','\001','\330','\010','\"','\320','\"','?','\270','q','\300','\001','\300','\030','\310','\031','\320','R','X','\320','X','^','\320','^','`','\320','`','h','\320','h','q','\320','q','w','\320','w','}','\320','}','\177','\360','\000','\000','@','\002','H','\002','\360','\000','\000','H','\002','Q','\002','\360','\000','\000','Q','\002','V','\002','\360','\000','\000','V','\002','\\','\002','\360','\000','\000','\\','\002','^','\002','\360','\000','\000','^','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','F','\003','\360','\000','\000','F','\003','R','\003','\360','\000','\000','R','\003','S','\003','\360','\000','\000','S','\003','^','\003','\360','\000','\000','^','\003','_','\003','\360','\000','\000','_','\003','m','\003','\360','\000','\000','m','\003','s','\003','\360','\000','\000','s','\003','}','\003','\360','\000','\000','}','\003','C','\004','\360','\000','\000','C','\004','E','\004','\360','\000','\000','E','\004','F','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','A','\300','\031','\310',',','\320','V','_','\320','_','a','\320','a','h','\320','h','j','\320','j','k','\330','\010',',','\320',',','A','\300','\030','\310','\021','\310','!','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','D','\300','A','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','2','\260','\021','\330','\010','\"','\320','\"','@','\300','\001','\300','\021','\300','(','\310',')','\320','S','Y','\320','Y','_','\320','_','a','\320','a','i','\320','i','r','\320','r','x','\320','x','~','\360','\000','\000','\177','\001','A','\002','\360','\000','\000','A','\002','I','\002','\360','\000','\000','I','\002','R','\002','\360','\000','\000','R','\002','W','\002','\360','\000','\000','W','\002',']','\002','\360','\000','\000',']','\002','_','\002','\360','\000','\000','_','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','G','\003','\360','\000','\000','G','\003','S','\003','\360','\000','\000','S','\003','T','\003','\360','\000','\000','T','\003','_','\003','\360','\000','\000','_','\003','`','\003','\360','\000','\000','`','\003','n','\003','\360','\000','\000','n','\003','t','\003','\360','\000','\000','t','\003','~','\003','\360','\000','\000','~','\003','D','\004','\360','\000','\000','D','\004','F','\004','\360','\000','\000','F','\004','G','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','B','\300',')','\310','<','\320','W','`','\320','`','b','\320','b','i','\320','i','k','\320','k','l','\330','\010','-','\320','-','C','\300','8','\310','1','\310','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','E','\300','Q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','3','\260','!','\330','\010','\"','\320','\"','A','\300','\021','\300','!','\300','8','\310','9','\320','T','Z','\320','Z','`','\320','`','b','\320','b','j','\320','j','s','\320','s','y','\320','y','\177','\360','\000','\000','@','\002','B','\002','\360','\000','\000','B','\002','J','\002','\360','\000','\000','J','\002','S','\002','\360','\000','\000','S','\002','X','\002','\360','\000','\000','X','\002','^','\002','\360','\000','\000','^','\002','`','\002','\360','\000','\000','`','\002','h','\002','\360','\000','\000','h','\002','q','\002','\360','\000','\000','q','\002','x','\002','\360','\000','\000','x','\002','~','\002','\360','\000','\000','~','\002','@','\003','\360','\000','\000','@','\003','H','\003','\360','\000','\000','H','\003','T','\003','\360','\000','\000','T','\003','U','\003','\360','\000','\000','U','\003','`','\003','\360','\000','\000','`','\003','a','\003','\360','\000','\000','a','\003','o','\003','\360','\000','\000','o','\003','u','\003','\360','\000','\000','u','\003','\177','\003','\360','\000','\000','\177','\003','E','\004','\360','\000','\000','E','\004','G','\004','\360','\000','\000','G','\004','H','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','C','\300','9','\310','L','\320','X','a','\320','a','c','\320','c','j','\320','j','l','\320','l','m','\330','\010','.','\320','.','E','\300','X','\310','Q','\310','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','F','\300','a','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','4','\260','1','\330','\010','\"','\320','\"','B','\300','!','\300','1','\300','H','\310','I','\320','U','[','\320','[','a','\320','a','c','\320','c','k','\320','k','t','\320','t','z','\360','\000','\000','{','\001','A','\002','\360','\000','\000','A','\002','C','\002','\360','\000','\000','C','\002','K','\002','\360','\000','\000','K','\002','T','\002','\360','\000','\000','T','\002','Y','\002','\360','\000','\000','Y','\002','_','\002','\360','\000','\000','_','\002','a','\002','\360','\000','\000','a','\002','i','\002','\360','\000','\000','i','\002','r','\002','\360','\000','\000','r','\002','y','\002','\360','\000','\000','y','\002','\177','\002','\360','\000','\000','\177','\002','A','\003','\360','\000','\000','A','\003','I','\003','\360','\000','\000','I','\003','U','\003','\360','\000','\000','U','\003','V','\003','\360','\000','\000','V','\003','a','\003','\360','\000','\000','a','\003','b','\003','\360','\000','\000','b','\003','p','\003','\360','\000','\000','p','\003','v','\003','\360','\000','\000','v','\003','@','\004','\360','\000','\000','@','\004','F','\004','\360','\000','\000','F','\004','H','\004','\360','\000','\000','H','\004','I','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','D','\300','I','\310','\\','\320','Y','b','\320','b','d','\320','d','k','\320','k','m','\320','m','n','\330','\010','/','\320','/','G','\300','x','\310','q','\320','P','Q','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','G','\300','q','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','5','\260','A','\330','\010','\"','\320','\"','C','\300','1','\300','A','\300','X','\310','Y','\320','V','\\','\320','\\','b','\320','b','d','\320','d','l','\320','l','u','\320','u','{','\360','\000','\000','|','\001','B','\002','\360','\000','\000','B','\002','D','\002','\360','\000','\000','D','\002','L','\002','\360','\000','\000','L','\002','U','\002','\360','\000','\000','U','\002','Z','\002','\360','\000','\000','Z','\002','`','\002','\360','\000','\000','`','\002','b','\002','\360','\000','\000','b','\002','j','\002','\360','\000','\000','j','\002','s','\002','\360','\000','\000','s','\002','z','\002','\360','\000','\000','z','\002','@','\003','\360','\000','\000','@','\003','B','\003','\360','\000','\000','B','\003','J','\003','\360','\000','\000','J','\003','V','\003','\360','\000','\000','V','\003','W','\003','\360','\000','\000','W','\003','b','\003','\360','\000','\000','b','\003','c','\003','\360','\000','\000','c','\003','q','\003','\360','\000','\000','q','\003','w','\003','\360','\000','\000','w','\003','A','\004','\360','\000','\000','A','\004','G','\004','\360','\000','\000','G','\004','I','\004','\360','\000','\000','I','\004','J','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','E','\300','Y','\310','l','\320','Z','c','\320','c','e','\320','e','l','\320','l','n','\320','n','o','\330','\010','0','\320','0','I','\310','\030','\320','Q','R','\320','R','S','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','!','\240','\035','\250','a','\250','q','\330','\010',' ','\240','\r','\250','Q','\250','a','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','X','\240','X','\250','W','\260','A','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','H','\310','\001','\330','\010','%','\240','^','\260','1','\260','H','\270','A','\360','\006','\000','\t','6','\260','Q','\330','\010','\"','\320','\"','D','\300','A','\300','Q','\300','h','\310','i','\320','W',']','\320',']','c','\320','c','e','\320','e','m','\320','m','v','\320','v','|','\360','\000','\000','}','\001','C','\002','\360','\000','\000','C','\002','E','\002','\360','\000','\000','E','\002','M','\002','\360','\000','\000','M','\002','V','\002','\360','\000','\000','V','\002','[','\002','\360','\000','\000','[','\002','a','\002','\360','\000','\000','a','\002','c','\002','\360','\000','\000','c','\002','k','\002','\360','\000','\000','k','\002','t','\002','\360','\000','\000','t','\002','{','\002','\360','\000','\000','{','\002','A','\003','\360','\000','\000','A','\003','C','\003','\360','\000','\000','C','\003','K','\003','\360','\000','\000','K','\003','W','\003','\360','\000','\000','W','\003','X','\003','\360','\000','\000','X','\003','c','\003','\360','\000','\000','c','\003','d','\003','\360','\000','\000','d','\003','r','\003','\360','\000','\000','r','\003','x','\003','\360','\000','\000','x','\003','B','\004','\360','\000','\000','B','\004','H','\004','\360','\000','\000','H','\004','J','\004','\360','\000','\000','J','\004','K','\004','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','F','\300','i','\310','|','\320','[','d','\320','d','f','\320','f','m','\320','m','o','\320','o','p','\330','\010','1','\320','1','K','\310','8','\320','S','T','\320','T','U','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250','6','\260','\025','\260','i','\270','q','\200','A','\340','\010','!','\240','\035','\250','a','\250','q','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','X','\240','Q','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','v','\310','V','\320','S','U','\320','U',']','\320',']','f','\320','f','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','V','\250',':','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','n','\320','n','t','\320','t','v','\320','v','~','\360','\000','\000','\177','\001','K','\002','\360','\000','\000','K','\002','L','\002','\360','\000','\000','L','\002','W','\002','\360','\000','\000','W','\002','X','\002','\360','\000','\000','X','\002','f','\002','\360','\000','\000','f','\002','o','\002','\360','\000','\000','o','\002','v','\002','\360','\000','\000','v','\002','|','\002','\360','\000','\000','|','\002','~','\002','\360','\000','\000','~','\002','\177','\002','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\"','\240','-','\250','q','\260','\001','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','9','\270','\021','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','\047','\240','a','\330','\010','\"','\320','\"','5','\260','Q','\260','a','\260','x','\270','y','\310','\007','\310','v','\320','U','W','\320','W','_','\320','_','h','\320','h','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','7','\260','y','\300','\014','\310','I','\320','U','W','\320','W','^','\320','^','`','\320','`','a','\330','\010','\"','\240','+','\250','X','\260','Q','\260','a','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','I','\260','Q','\200','A','\340','\010','\"','\240','-','\250','q','\260','\001','\330','\010','#','\240','=','\260','\001','\260','\021','\330','\010','\035','\230','Y','\240','a','\330','\010','\"','\240',',','\250','a','\250','q','\330','\010','\032','\230',',','\240','a','\240','x','\250','q','\330','\010','\036','\230','o','\250','Q','\250','h','\260','a','\330','\010','\034','\230','G','\240','5','\320','(','8','\270','\001','\330','\010','\"','\320','\"','3','\260','1','\260','H','\270','A','\360','\006','\000','\t','&','\240','Q','\330','\010','\"','\320','\"','4','\260','A','\260','Q','\260','h','\270','i','\300','w','\310','f','\320','T','V','\320','V','^','\320','^','g','\320','g','o','\320','o','u','\320','u','w','\320','w','\177','\360','\000','\000','@','\002','L','\002','\360','\000','\000','L','\002','M','\002','\360','\000','\000','M','\002','X','\002','\360','\000','\000','X','\002','Y','\002','\360','\000','\000','Y','\002','g','\002','\360','\000','\000','g','\002','p','\002','\360','\000','\000','p','\002','w','\002','\360','\000','\000','w','\002','}','\002','\360','\000','\000','}','\002','\177','\002','\360','\000','\000','\177','\002','@','\003','\330','\010','\013','\210','8','\220','3','\220','a','\330','\014','\037','\230','q','\320',' ','6','\260','i','\270','|','\310','9','\320','T','V','\320','V',']','\320',']','_','\320','_','`','\330','\010','!','\240','\032','\250','8','\260','1','\260','A','\330','\010','\016','\210','k','\230','\027','\240','\001','\330','\010','\016','\210','k','\230','\021','\330','\010','\017','\210','x','\220','|','\240','2','\240','W','\250','J','\260','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\014','\020','\220','\n','\230','!','\230','5','\240','\017','\250','q','\330','\014','\023','\220','5','\230','\r','\240','V','\250','1','\340','\014','\023','\220','5','\230','\r','\240','U','\250','!','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\014','\210','L','\320','\030','(','\250','\013','\260','6','\270','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\330','\010','\r','\320','\r','\036','\230','a','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','M','\230','\025','\230','a','\330','\014','\017','\210','q','\220','\r','\230','T','\320','!','7','\260','q','\270','\001','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\020','\220','\005','\220','[','\240','\001','\240','\033','\250','A','\250','Q','\330','\010','\013','\210','6','\220','\023','\220','A','\330','\014','\024','\220','E','\230','\033','\240','A','\240','[','\260','\001','\260','\021','\330','\010','\017','\210','q','\200','A','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\026','\220','a','\340','\010','\014','\210','G','\220','1','\330','\014','\017','\210','t','\220','3','\220','e','\230','1','\330','\020','\030','\230','\006','\230','a','\230','q','\330','\020','\023','\220','4','\320','\027','/','\250','q','\260','\005','\260','Q','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','V','\270','1','\270','A','\330','\024','\"','\240','!','\330','\021','\025','\220','S','\230','\005','\230','Q','\330','\020','\025','\220','\\','\240','\021','\240','$','\240','a','\320','\047','9','\270','\026','\270','q','\300','\001','\330','\020','\025','\220','U','\230','!','\230','>','\250','\021','\250','\047','\260','\026','\260','q','\270','\001','\340','\010','\013','\210','1','\330','\014','\031','\230','\021','\330','\014','\017','\210','t','\320','\023','$','\240','A','\240','T','\250','\021','\250','!','\330','\020','\035','\230','Q','\330','\014','\017','\210','s','\220','!','\220','6','\230','\022','\230','1','\330','\020','\024','\220','C','\220','~','\240','Y','\250','a','\250','u','\260','A','\330','\024','\031','\230','\021','\330','\024','\027','\220','r','\230','\022','\230','3','\230','a','\230','q','\330','\030',' ','\240','\004','\240','A','\240','Q','\330','\030','\033','\230','4','\320','\037','7','\260','q','\270','\014','\300','A','\330','\034','!','\240','\033','\250','A','\250','[','\270','\001','\270','\033','\300','A','\330','\034','*','\250','!','\340','\010','\013','\210','5','\220','\003','\220','1','\330','\014','\017','\210','q','\330','\020','\025','\220','U','\230','!','\320','\033','+','\250','4','\250','q','\330','\014','\021','\320','\021','\"','\240','!','\200','A','\360','\n','\000','\t','\017','\210','d','\220','(','\230','(','\240','%','\240','q','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\017','\210','q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\021','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\001','\240','\037','\260','\005','\260','Q','\200','A','\360','\n','\000','\t','\020','\210','t','\220','8','\230','5','\240','\005','\240','Q','\200','A','\360','\n','\000','\t','\021','\220','\004','\220','A','\330','\010','\016','\210','k','\230','\021','\330','\010','\014','\210','N','\230','%','\230','q','\330','\014','\017','\210','q','\220','\016','\230','e','\240','<','\250','q','\260','\013','\270','1','\270','A','\330','\010','\017','\210','q','\200','A','\360','\014','\000','\t','\021','\220','\004','\220','A','\340','\010','\021','\320','\021','&','\240','a','\240','t','\250','1','\330','\010','\014','\210','C','\210','}','\230','I','\240','Q','\240','e','\250','1','\330','\014','\024','\220','D','\320','\030','.','\250','a','\250','q','\330','\014','\024','\220','E','\230','\033','\240','A','\240','Z','\250','q','\260','\001','\330','\014','\017','\210','v','\220','V','\320','\033','2','\260','#','\260','V','\270','6','\300','\021','\330','\020',')','\250','\021','\250','(','\260','#','\260','Q','\330','\021','\027','\220','v','\320','\035','7','\260','s','\270','&','\300','\006','\300','a','\330','\020',',','\250','A','\250','X','\260','S','\270','\001','\340','\010','\023','\320','\023','#','\240','1','\240','A','\330','\010','\034','\230','A','\230','Q','\330','\010','\017','\210','q','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210','4','\210','u','\220','A','\330','\014','\020','\320','\020',' ','\240','\001','\330','\010','\016','\210','e','\220','8','\230','7','\240','!','\330','\010','\013','\210','4','\210','z','\230','\021','\230','%','\230','q','\330','\014','\022','\220','$','\220','a','\220','q','\330','\010','\013','\320','\013','\035','\230','W','\240','E','\250','\021','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\024','\220','E','\230','\035','\240','a','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','$','\250','f','\260','A','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','/','\250','q','\330',')','1','\260','\024','\260','Q','\330','\r','\037','\230','w','\240','e','\250','1','\330','\020','\032','\230','!','\230','5','\240','\017','\250','q','\330','\014','\017','\210','s','\220','!','\220','5','\230','\003','\230','1','\330','\020','\027','\220','~','\240','Q','\240','c','\250','\021','\250','!','\340','\020','\027','\320','\027','(','\250','\001','\250','\025','\250','m','\270','1','\270','A','\330',')','0','\260','\004','\260','A','\340','\014','\023','\220','3','\220','a','\220','v','\230','S','\240','\001','\240','\025','\240','c','\250','\027','\260','\001','\200','A','\360','\016','\000','\t','\021','\220','\004','\220','A','\340','\010','\033','\230','2','\230','\\','\250','\025','\250','k','\270','\021','\270','+','\300','Q','\300','a','\330','\034',' ','\240','\016','\250','e','\260',';','\270','e','\300','1','\330','\010','#','\240','2','\240','S','\250','\005','\250','\\','\270','\021','\270','\"','\270','A','\270','Q','\330','$','(','\250','\005','\250','U','\260','!','\360','\006','\000','\t','\020','\210','t','\220','1','\220','A','\330','\010','\027','\220','q','\330','\010','#','\240','4','\320','\047','B','\300','!','\330','\010','\013','\210','5','\220','\004','\220','D','\230','\n','\240','!','\240','4','\240','q','\250','\004','\250','A','\330','\014','\020','\220','\003','\220','7','\230',')','\240','1','\240','A','\330','\020','\023','\220','4','\220','z','\240','\021','\240','%','\240','q','\330','\024','\025','\340','\020','\021','\330','\024',' ','\240','\001','\320','!','9','\270','\021','\270','&','\300','\001','\330','\027','\030','\330','\024','\032','\320','\032','G','\300','q','\330','\030','\033','\230','1','\230','A','\330','\030','\034','\230','E','\240','\021','\240','!','\330','\024','\032','\230',')','\240','1','\240','A','\340','\010','\013','\320','\013','\035','\230','W','\240','A','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\021','\330','\r','\037','\230','w','\240','a','\330','\020','\024','\220','J','\230','a','\230','u','\240','O','\260','1','\330','\014','\047','\240','u','\250','M','\270','\031','\300','!','\340','\014','\047','\240','t','\250','4','\250','q','\260','\005','\260','Q','\340','\010','\013','\210','3','\210','a','\210','~','\230','S','\240','\003','\240','1','\240','A','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\014','\023','\220','4','\220','q','\230','\003','\230','1','\230','A','\330','\r','\020','\220','\001','\220','\036','\230','t','\320','#','<','\270','A','\330','\020','\024','\220','C','\220','q','\230','\006','\230','c','\240','\024','\240','Z','\250','q','\260','\004','\260','A','\260','T','\270','\021','\330','\014','\022','\320','\022','A','\300','\021','\330','\020','\023','\220','1','\220','A','\330','\020','\024','\220','E','\230','\021','\230','!','\330','\014','\022','\220',')','\230','1','\230','A','\340','\010','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\034','\230','Q','\230','k','\250','\021','\320','*','<','\270','A','\330','\014','\021','\220','\025','\220','a','\220','~','\240','Q','\240','n','\260','A','\340','\010','\017','\210','t','\220','1','\200','A','\360','2','\000','\t','\021','\220','\004','\220','A','\330','\010','\013','\210',':','\220','Q','\220','n','\240','A','\330','\014','\033','\230','1','\330','\014','\020','\220','\007','\220','t','\320','\033','6','\260','a','\330','\020','\023','\320','\023','%','\240','W','\250','A','\330','\024','\030','\230','\n','\240','!','\240','>','\260','\021','\330','\024','\036','\230','d','\240','\047','\250','\034','\260','Q','\340','\024','\036','\230','d','\240','\047','\250','\021','\330','\020','\023','\220','1','\330','\024',' ','\240','\007','\240','q','\250','\001','\330','\014','\017','\210','s','\220','!','\220','>','\240','\023','\240','A','\330','\020','\025','\320','\025','%','\240','Q','\330','\020','\025','\320','\025','&','\240','a','\330','\020','\027','\220','q','\340','\020','\026','\220','i','\230','q','\240','\001','\330','/','6','\260','c','\270','\021','\270','.','\310','\002','\310','!','\330','9',':','\330','0','4','\260','E','\270','\021','\270','!','\330','\010','\017','\210','q','\200','N','\220','!','\360','\016','\000','\t','\014','\210','1','\330','\014','\020','\320','\020','!','\240','\021','\240','!','\330','\010','\014','\320','\014','\034','\230','A','\330','\010','\017','\210','t','\220','1','\320','\004','\035','\230','Q','\360','\010','\000','\t','\021','\220','\004','\220','A','\330','\010','\025','\220','[','\240','\003','\240','1','\330','\010','\022','\220','\047','\230','\021','\230','!','\330','\010','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\330','\010','\r','\320','\r','\036','\230','a','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q'}; #else -static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CR""OWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.ope""n_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDL""UNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_Str""eamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Str""eam.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR""_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LIN""ESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenA""ndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMO""D_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_""CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAn""dFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_Upda""teTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_""PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MA""MA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI""_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_Open""AndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_Peek""TA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.op""en_and_fill_ARRAY_TYPES_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallo""okbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a""\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q""\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360""\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014""\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220""\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E""\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S\002T\002\360\000\000T\002c\002\360\000\000c\002n\002""\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A""\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037""\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{""\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]""\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177""\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC""\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000""\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230""\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330""\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004""\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q""\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q""\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u""\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\024\320\024%\240Q\240h\250a\330\004\017\210~\230Q\230h\240a\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003u\003\360\000\000u\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004E\004\330\004\025\220Q\320\026\047\240q\330\004\013\320\013\033\2301\200\001\340wx""\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q""\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!""\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]""\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A""\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-""\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360\000\000F""\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j""\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260""\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000""\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n""\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000""\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330""\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!""\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004\025\220Q\220k\240\021\330\004\013\2101\200""\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016""\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!""\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ""\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!""\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\210\177\230g\240U\250!\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021 \240\007\240u\250A\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021""\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q""\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000\000J""\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ""\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,""\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(""\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330""\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q""\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{""\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000""\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360\000""\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h""\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360\000""\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000""\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108\2203""\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a""\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507""\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H\270A""\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000""\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-""\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330""\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A""\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032""\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330""\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000""\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a""\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003\360\000\000x\003~""\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000""\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230""\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A""\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!""\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000""\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i""\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010""\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+G\300q\310\001\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320hi\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8""\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330""\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320""\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?""\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq""\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360""\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt""\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330""\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360""\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3""\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 ""\240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh""\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^""\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002""\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F""\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025""\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260""\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y""\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\035\230W\240A\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d""\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\035\230W\240E\250\021\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250$\250f\260A\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)/\250q\330)1\260\024\260Q\330\r\037\230w\240e\2501\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250!\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)0\260\004\260A\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207""\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\035\230W\240A\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r\037\230w\240a\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023%\240W\250A\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+""\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; +static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047s abstract interface. It is\n intended to simplify using individual TALIB functions by providing a\n unified interface for setting/controlling input data, setting function\n parameters and retrieving results. Input data consists of a ``dict`` of\n ``numpy`` arrays (or a ``pandas.DataFrame`` or ``polars.DataFrame``), one\n array for each of open, high, low, close and volume. This can be set with\n the set_input_arrays() method. Which keyed array(s) are used as inputs when\n calling the function is controlled using the input_names property.\n\n This class gets initialized with a TALIB function name and optionally an\n input_arrays object. It provides the following primary functions for\n setting inputs and retrieving results:\n\n ---- input_array/TA-function-parameter set-only functions -----\n - set_input_arrays(input_arrays)\n - set_function_args([input_arrays,] [param_args_andor_kwargs])\n\n Documentation for param_args_andor_kwargs can be seen by printing the\n Function instance or programmatically via the info, input_names and\n parameters properties.\n\n ----- result-returning functions -----\n - the outputs property wraps a method which ensures results are always valid\n - run([input_arrays]) # calls set_input_arrays and returns self.outputs\n - FunctionInstance([input_arrays,] [param_args_andor_kwargs]) # calls set_function_args and returns self.outputs\n %s ( (expected bars of history, at least function failed with error code needed (a leading bar that is NaN in any input is not history)%(display_name)s (%(group)s)\n%s%s.advance%s.out_range\047 is deprecated and has no effect: ((%s)(any ndarray)))\n, , got .3: =?A period of 1 performs no smoothingADXR has no unstable period of its own; it follows the inner ADX. Set \047ADX\047 instead.Allocation Error (TA_ALLOC_ERR)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bull/Bear Pattern"" (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed LineDotted LineDouble Exponential Moving AverageExponential Moving AverageFunction Not Found (TA_FUNC_NOT_FOUND)Function has a streaming APIFunction has an unstable periodGroup Not Found (TA_GROUP_NOT_FOUND)Hull Moving AverageInput Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)Inputs:Insufficient History (TA_INSUFFICIENT_HISTORY)Internal Error (TA_INTERNAL_ERROR)Invalid Handle (TA_INVALID_HANDLE)Invalid List Type (TA_INVALID_LIST_TYPE)Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)Invalid parameter value for Kaufman Adaptive Moving AverageLibrary Not Initialized (TA_LIB_NOT_INITIALIZE)MESA Adaptive Moving AverageMFI\047s unstable period was retired in TA-Lib C.No Moving Average (identity)NoneNot Supported (TA_NOT_SUPPORTED)Not enough history to open a stream (TA_INSUFFICIENT_HISTORY).\n\n Recoverable: collect more bars and try again.Not enough price arguments: expected Note that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the \047annotation_typing\047 directive to False.Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)Output can be NaN or infiniteOutput can be negativeOutput can be positiveOutput can be zeroOutput is a candlestickOutput is optional (nullable)Output is over volumeOutput is path-dependentOutput scale same as inputOutputs:Parameters:Pattern (Bool)STOCHRSI has no unstable period of its own; it follows the inner RSI. Set \047RSI\047 instead.Simple Moving AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)The Function\047s Own Default Moving AverageToo many price arguments: expected T""riangular Moving AverageTriple Exponential Moving AverageTriple Generalized Double Exponential Moving AverageUnknown ErrorUnknown Error (TA_UNKNOWN_ERR)Values represent a lower limitValues represent an upper limitWeighted Moving AverageWilder\047s Smoothed Moving AverageZero-Lag Exponential Moving Average[[input_arrays]]add_notebegidx nbelementcannot pickle %s: a stream handle points into the TA-Lib C library, and does not cross a process boundarydisableenablegcinput array has wrong dimensionsinput array lengths are differentinput array type is not doubleinput must be a numpy array or a pandas or polars Series, not %sinput_arrays parameter missing required data keyinteger (values are -100, 0 or 100)isenabledno history: the input array is emptynumpy._core.multiarray failed to importnumpy._core.umath failed to importtalib.collectionstalib.numpytalib.ordereddicttalib.pandastalib.polarstalib.systalib.threadingtalib.warningstalib/_abstract.pxitalib/_common.pxitalib/_func.pxitalib/_stream.pxitoo many input arraysunstable period \047ACACCBANDSACCBANDS_StreamACCBANDS_Stream.open_and_fillACOSACOS_StreamACOS_Stream.open_and_fillAC_StreamAC_Stream.open_and_fillADADDADD_StreamADD_Stream.open_and_fillADOSCADOSC_StreamADOSC_Stream.open_and_fillADRADR_StreamADR_Stream.open_and_fillADXADXRADXR_StreamADXR_Stream.open_and_fillADX_StreamADX_Stream.open_and_fillAD_StreamAD_Stream.open_and_fillALLAOAO_StreamAO_Stream.open_and_fillAPOAPO_StreamAPO_Stream.open_and_fillAROONAROONOSCAROONOSC_StreamAROONOSC_Stream.open_and_fillAROON_StreamAROON_Stream.open_and_fillASINASIN_StreamASIN_Stream.open_and_fillATANATAN_StreamATAN_Stream.open_and_fillATRATR_StreamATR_Stream.open_and_fillAVGDEVAVGDEV_StreamAVGDEV_Stream.open_and_fillAVGPRICEAVGPRICE_StreamAVGPRICE_Stream.open_and_fillAllCandleSettingsBBANDSBBANDS_StreamBBANDS_Stream.open_and_fillBETABETA_StreamBETA_Stream.open_and_fillBOPBOP_StreamBOP_Stream.open_and_fillBodyDojiBodyLongBodyShortBodyVeryLongCCICCI_StreamCCI_Stream.open_and_fillCDL2CR""OWSCDL2CROWS_StreamCDL2CROWS_Stream.open_and_fillCDL3BLACKCROWSCDL3BLACKCROWS_StreamCDL3BLACKCROWS_Stream.open_and_fillCDL3INSIDECDL3INSIDE_StreamCDL3INSIDE_Stream.open_and_fillCDL3LINESTRIKECDL3LINESTRIKE_StreamCDL3LINESTRIKE_Stream.open_and_fillCDL3OUTSIDECDL3OUTSIDE_StreamCDL3OUTSIDE_Stream.open_and_fillCDL3STARSINSOUTHCDL3STARSINSOUTH_StreamCDL3STARSINSOUTH_Stream.open_and_fillCDL3WHITESOLDIERSCDL3WHITESOLDIERS_StreamCDL3WHITESOLDIERS_Stream.open_and_fillCDLABANDONEDBABYCDLABANDONEDBABY_StreamCDLABANDONEDBABY_Stream.open_and_fillCDLADVANCEBLOCKCDLADVANCEBLOCK_StreamCDLADVANCEBLOCK_Stream.open_and_fillCDLBELTHOLDCDLBELTHOLD_StreamCDLBELTHOLD_Stream.open_and_fillCDLBREAKAWAYCDLBREAKAWAY_StreamCDLBREAKAWAY_Stream.open_and_fillCDLCLOSINGMARUBOZUCDLCLOSINGMARUBOZU_StreamCDLCLOSINGMARUBOZU_Stream.open_and_fillCDLCONCEALBABYSWALLCDLCONCEALBABYSWALL_StreamCDLCONCEALBABYSWALL_Stream.open_and_fillCDLCOUNTERATTACKCDLCOUNTERATTACK_StreamCDLCOUNTERATTACK_Stream.open_and_fillCDLDARKCLOUDCOVERCDLDARKCLOUDCOVER_StreamCDLDARKCLOUDCOVER_Stream.open_and_fillCDLDOJICDLDOJISTARCDLDOJISTAR_StreamCDLDOJISTAR_Stream.open_and_fillCDLDOJI_StreamCDLDOJI_Stream.open_and_fillCDLDRAGONFLYDOJICDLDRAGONFLYDOJI_StreamCDLDRAGONFLYDOJI_Stream.open_and_fillCDLENGULFINGCDLENGULFING_StreamCDLENGULFING_Stream.open_and_fillCDLEVENINGDOJISTARCDLEVENINGDOJISTAR_StreamCDLEVENINGDOJISTAR_Stream.open_and_fillCDLEVENINGSTARCDLEVENINGSTAR_StreamCDLEVENINGSTAR_Stream.open_and_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEWHITE_StreamCDLGAPSIDESIDEWHITE_Stream.open_and_fillCDLGRAVESTONEDOJICDLGRAVESTONEDOJI_StreamCDLGRAVESTONEDOJI_Stream.open_and_fillCDLHAMMERCDLHAMMER_StreamCDLHAMMER_Stream.open_and_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_StreamCDLHARAMICROSS_Stream.open_and_fillCDLHARAMI_StreamCDLHARAMI_Stream.open_and_fillCDLHIGHWAVECDLHIGHWAVE_StreamCDLHIGHWAVE_Stream.open_and_fillCDLHIKKAKECDLHIKKAKEMODCDLHIKKAKEMOD_StreamCDLHIKKAKEMOD_Stream.ope""n_and_fillCDLHIKKAKE_StreamCDLHIKKAKE_Stream.open_and_fillCDLHOMINGPIGEONCDLHOMINGPIGEON_StreamCDLHOMINGPIGEON_Stream.open_and_fillCDLIDENTICAL3CROWSCDLIDENTICAL3CROWS_StreamCDLIDENTICAL3CROWS_Stream.open_and_fillCDLINNECKCDLINNECK_StreamCDLINNECK_Stream.open_and_fillCDLINVERTEDHAMMERCDLINVERTEDHAMMER_StreamCDLINVERTEDHAMMER_Stream.open_and_fillCDLKICKINGCDLKICKINGBYLENGTHCDLKICKINGBYLENGTH_StreamCDLKICKINGBYLENGTH_Stream.open_and_fillCDLKICKING_StreamCDLKICKING_Stream.open_and_fillCDLLADDERBOTTOMCDLLADDERBOTTOM_StreamCDLLADDERBOTTOM_Stream.open_and_fillCDLLONGLEGGEDDOJICDLLONGLEGGEDDOJI_StreamCDLLONGLEGGEDDOJI_Stream.open_and_fillCDLLONGLINECDLLONGLINE_StreamCDLLONGLINE_Stream.open_and_fillCDLMARUBOZUCDLMARUBOZU_StreamCDLMARUBOZU_Stream.open_and_fillCDLMATCHINGLOWCDLMATCHINGLOW_StreamCDLMATCHINGLOW_Stream.open_and_fillCDLMATHOLDCDLMATHOLD_StreamCDLMATHOLD_Stream.open_and_fillCDLMORNINGDOJISTARCDLMORNINGDOJISTAR_StreamCDLMORNINGDOJISTAR_Stream.open_and_fillCDLMORNINGSTARCDLMORNINGSTAR_StreamCDLMORNINGSTAR_Stream.open_and_fillCDLONNECKCDLONNECK_StreamCDLONNECK_Stream.open_and_fillCDLPIERCINGCDLPIERCING_StreamCDLPIERCING_Stream.open_and_fillCDLRICKSHAWMANCDLRICKSHAWMAN_StreamCDLRICKSHAWMAN_Stream.open_and_fillCDLRISEFALL3METHODSCDLRISEFALL3METHODS_StreamCDLRISEFALL3METHODS_Stream.open_and_fillCDLSEPARATINGLINESCDLSEPARATINGLINES_StreamCDLSEPARATINGLINES_Stream.open_and_fillCDLSHOOTINGSTARCDLSHOOTINGSTAR_StreamCDLSHOOTINGSTAR_Stream.open_and_fillCDLSHORTLINECDLSHORTLINE_StreamCDLSHORTLINE_Stream.open_and_fillCDLSPINNINGTOPCDLSPINNINGTOP_StreamCDLSPINNINGTOP_Stream.open_and_fillCDLSTALLEDPATTERNCDLSTALLEDPATTERN_StreamCDLSTALLEDPATTERN_Stream.open_and_fillCDLSTICKSANDWICHCDLSTICKSANDWICH_StreamCDLSTICKSANDWICH_Stream.open_and_fillCDLTAKURICDLTAKURI_StreamCDLTAKURI_Stream.open_and_fillCDLTASUKIGAPCDLTASUKIGAP_StreamCDLTASUKIGAP_Stream.open_and_fillCDLTHRUSTINGCDLTHRUSTING_StreamCDLTHRUSTING_Stream.open_and_fillCDLTRISTARCDLTRISTAR_StreamCDLTRISTAR_Stream.open_and_fillCDL""UNIQUE3RIVERCDLUNIQUE3RIVER_StreamCDLUNIQUE3RIVER_Stream.open_and_fillCDLUPSIDEGAP2CROWSCDLUPSIDEGAP2CROWS_StreamCDLUPSIDEGAP2CROWS_Stream.open_and_fillCDLXSIDEGAP3METHODSCDLXSIDEGAP3METHODS_StreamCDLXSIDEGAP3METHODS_Stream.open_and_fillCEILCEIL_StreamCEIL_Stream.open_and_fillCMFCMF_StreamCMF_Stream.open_and_fillCMOCMOUCMOU_StreamCMOU_Stream.open_and_fillCMO_StreamCMO_Stream.open_and_fillCOPPOCKCOPPOCK_StreamCOPPOCK_Stream.open_and_fillCORRELCORREL_StreamCORREL_Stream.open_and_fillCOSCOSHCOSH_StreamCOSH_Stream.open_and_fillCOS_StreamCOS_Stream.open_and_fillCUMSUMCUMSUM_StreamCUMSUM_Stream.open_and_fillCVICVI_StreamCVI_Stream.open_and_fillCandleSettingTypeDEFAULTDEMADEMA_StreamDEMA_Stream.open_and_fillDISABLEDDIVDIV_StreamDIV_Stream.open_and_fillDONCHIANDONCHIAN_StreamDONCHIAN_Stream.open_and_fillDPODPO_StreamDPO_Stream.open_and_fillDXDX_StreamDX_Stream.open_and_fillDataFrameDotEFIEFI_StreamEFI_Stream.open_and_fillEMAEMA_StreamEMA_Stream.open_and_fillERERIERI_StreamERI_Stream.open_and_fillER_StreamER_Stream.open_and_fillEXPEXP_StreamEXP_Stream.open_and_fillEqualFLOORFLOOR_StreamFLOOR_Stream.open_and_fillFOSCFOSC_StreamFOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__check_opt_input_valueFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__repr__Function.__str__Function.__unicode__Function.function_flagsFunction.get_input_arraysFunction.get_input_namesFunction.get_parametersFunction.infoFunction.lookbackFunction.output_flagsFunction.output_namesFunction.outputsFunction.runFunction.set_function_argsFunction.set_input_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Stream.open_and_fillHT_DCPERIODHT_DCPERIOD_StreamHT_DCPERIOD_Stream.open_and_fillHT_DCPHASEHT_DCPHASE_StreamHT_DCPHASE_Stream.open_and_fillHT_PHASORHT_PHASOR_StreamHT_PHASOR_Stream.open_and_fillHT_SINEHT_SINE_Str""eamHT_SINE_Stream.open_and_fillHT_TRENDLINEHT_TRENDLINE_StreamHT_TRENDLINE_Stream.open_and_fillHT_TRENDMODEHT_TRENDMODE_StreamHT_TRENDMODE_Stream.open_and_fillHighLowHistogramIMIIMI_StreamIMI_Stream.open_and_fillInsufficientHistoryKAMAKAMA_StreamKAMA_Stream.open_and_fillKCKC_StreamKC_Stream.open_and_fillKDJKDJ_StreamKDJ_Stream.open_and_fillLINEARREGLINEARREG_ANGLELINEARREG_ANGLE_StreamLINEARREG_ANGLE_Stream.open_and_fillLINEARREG_INTERCEPTLINEARREG_INTERCEPT_StreamLINEARREG_INTERCEPT_Stream.open_and_fillLINEARREG_SLOPELINEARREG_SLOPE_StreamLINEARREG_SLOPE_Stream.open_and_fillLINEARREG_StreamLINEARREG_Stream.open_and_fillLNLN_StreamLN_Stream.open_and_fillLOG10LOG10_StreamLOG10_Stream.open_and_fillLineMAMACDMACDEXTMACDEXT_StreamMACDEXT_Stream.open_and_fillMACDFIXMACDFIX_StreamMACDFIX_Stream.open_and_fillMACD_StreamMACD_Stream.open_and_fillMAMAMAMA_StreamMAMA_Stream.open_and_fillMARKETFIMARKETFI_StreamMARKETFI_Stream.open_and_fillMASSIMASSI_StreamMASSI_Stream.open_and_fillMAVPMAVP_StreamMAVP_Stream.open_and_fillMAXMAXINDEXMAXINDEX_StreamMAXINDEX_Stream.open_and_fillMAX_StreamMAX_Stream.open_and_fillMA_StreamMA_Stream.open_and_fillMA_TypeMA_Type.__getitem__MA_Type.__init__MEDPRICEMEDPRICE_StreamMEDPRICE_Stream.open_and_fillMFIMFI_StreamMFI_Stream.open_and_fillMIDPOINTMIDPOINT_StreamMIDPOINT_Stream.open_and_fillMIDPRICEMIDPRICE_StreamMIDPRICE_Stream.open_and_fillMINMININDEXMININDEX_StreamMININDEX_Stream.open_and_fillMINMAXMINMAXINDEXMINMAXINDEX_StreamMINMAXINDEX_Stream.open_and_fillMINMAX_StreamMINMAX_Stream.open_and_fillMINUS_DIMINUS_DI_StreamMINUS_DI_Stream.open_and_fillMINUS_DMMINUS_DM_StreamMINUS_DM_Stream.open_and_fillMIN_StreamMIN_Stream.open_and_fillMOMMOM_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_and_fillNONENVINVI_StreamNVI_Stream.open_and_fillNearOBVOBV_StreamOBV_Stream.open_and_fillOrderedDictOutRangePERCENTILEPERCENTILE_StreamPERCENTILE_Stream.open_and_fillPERCENTRANKPERCENTRANK_StreamPERCENTRANK_Str""eam.open_and_fillPLUS_DIPLUS_DI_StreamPLUS_DI_Stream.open_and_fillPLUS_DMPLUS_DM_StreamPLUS_DM_Stream.open_and_fillPPOPPO_StreamPPO_Stream.open_and_fillPVIPVI_StreamPVI_Stream.open_and_fillPVOPVO_StreamPVO_Stream.open_and_fillPVTPVT_StreamPVT_Stream.open_and_fillQSTICKQSTICK_StreamQSTICK_Stream.open_and_fillRMARMA_StreamRMA_Stream.open_and_fillROCROCPROCP_StreamROCP_Stream.open_and_fillROCRROCR100ROCR100_StreamROCR100_Stream.open_and_fillROCR_StreamROCR_Stream.open_and_fillROC_StreamROC_Stream.open_and_fillRSIRSI_StreamRSI_Stream.open_and_fillRVIRVI_StreamRVI_Stream.open_and_fillRVOLRVOL_StreamRVOL_Stream.open_and_fillRangeTypeRealBodySARSAREXTSAREXT_StreamSAREXT_Stream.open_and_fillSAR_StreamSAR_Stream.open_and_fillSINSINHSINH_StreamSINH_Stream.open_and_fillSIN_StreamSIN_Stream.open_and_fillSMASMA_StreamSMA_Stream.open_and_fillSMISMI_StreamSMI_Stream.open_and_fillSQRTSQRT_StreamSQRT_Stream.open_and_fillSTDDEVSTDDEV_StreamSTDDEV_Stream.open_and_fillSTOCHSTOCHFSTOCHF_StreamSTOCHF_Stream.open_and_fillSTOCHRSISTOCHRSI_StreamSTOCHRSI_Stream.open_and_fillSTOCH_StreamSTOCH_Stream.open_and_fillSUBSUB_StreamSUB_Stream.open_and_fillSUMSUM_StreamSUM_Stream.open_and_fillSUPERTRENDSUPERTREND_StreamSUPERTREND_Stream.open_and_fillSeriesShadowLongShadowShortShadowVeryLongShadowVeryShortShadowsStreamStream.__copy__Stream.__deepcopy__Stream.__reduce__T3T3_StreamT3_Stream.open_and_fillTANTANHTANH_StreamTANH_Stream.open_and_fillTAN_StreamTAN_Stream.open_and_fillTA_ACTA_ACCBANDSTA_ACCBANDS_CloneTA_ACCBANDS_OpenTA_ACCBANDS_OpenAndFillTA_ACCBANDS_PeekTA_ACCBANDS_UpdateTA_ACCBANDS_ValueTA_ACOSTA_ACOS_CloneTA_ACOS_OpenTA_ACOS_OpenAndFillTA_ACOS_PeekTA_ACOS_UpdateTA_ACOS_ValueTA_AC_CloneTA_AC_OpenTA_AC_OpenAndFillTA_AC_PeekTA_AC_UpdateTA_AC_ValueTA_ADTA_ADDTA_ADD_CloneTA_ADD_OpenTA_ADD_OpenAndFillTA_ADD_PeekTA_ADD_UpdateTA_ADD_ValueTA_ADOSCTA_ADOSC_CloneTA_ADOSC_OpenTA_ADOSC_OpenAndFillTA_ADOSC_PeekTA_ADOSC_UpdateTA_ADOSC_ValueTA_ADRTA_ADR_CloneTA_ADR_OpenTA_ADR_OpenAndFillTA_ADR_PeekTA_ADR""_UpdateTA_ADR_ValueTA_ADXTA_ADXRTA_ADXR_CloneTA_ADXR_OpenTA_ADXR_OpenAndFillTA_ADXR_PeekTA_ADXR_UpdateTA_ADXR_ValueTA_ADX_CloneTA_ADX_OpenTA_ADX_OpenAndFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_ValueTA_AD_CloneTA_AD_OpenTA_AD_OpenAndFillTA_AD_PeekTA_AD_UpdateTA_AD_ValueTA_AOTA_AO_CloneTA_AO_OpenTA_AO_OpenAndFillTA_AO_PeekTA_AO_UpdateTA_AO_ValueTA_APOTA_APO_CloneTA_APO_OpenTA_APO_OpenAndFillTA_APO_PeekTA_APO_UpdateTA_APO_ValueTA_AROONTA_AROONOSCTA_AROONOSC_CloneTA_AROONOSC_OpenTA_AROONOSC_OpenAndFillTA_AROONOSC_PeekTA_AROONOSC_UpdateTA_AROONOSC_ValueTA_AROON_CloneTA_AROON_OpenTA_AROON_OpenAndFillTA_AROON_PeekTA_AROON_UpdateTA_AROON_ValueTA_ASINTA_ASIN_CloneTA_ASIN_OpenTA_ASIN_OpenAndFillTA_ASIN_PeekTA_ASIN_UpdateTA_ASIN_ValueTA_ATANTA_ATAN_CloneTA_ATAN_OpenTA_ATAN_OpenAndFillTA_ATAN_PeekTA_ATAN_UpdateTA_ATAN_ValueTA_ATRTA_ATR_CloneTA_ATR_OpenTA_ATR_OpenAndFillTA_ATR_PeekTA_ATR_UpdateTA_ATR_ValueTA_AVGDEVTA_AVGDEV_CloneTA_AVGDEV_OpenTA_AVGDEV_OpenAndFillTA_AVGDEV_PeekTA_AVGDEV_UpdateTA_AVGDEV_ValueTA_AVGPRICETA_AVGPRICE_CloneTA_AVGPRICE_OpenTA_AVGPRICE_OpenAndFillTA_AVGPRICE_PeekTA_AVGPRICE_UpdateTA_AVGPRICE_ValueTA_BBANDSTA_BBANDS_CloneTA_BBANDS_OpenTA_BBANDS_OpenAndFillTA_BBANDS_PeekTA_BBANDS_UpdateTA_BBANDS_ValueTA_BETATA_BETA_CloneTA_BETA_OpenTA_BETA_OpenAndFillTA_BETA_PeekTA_BETA_UpdateTA_BETA_ValueTA_BOPTA_BOP_CloneTA_BOP_OpenTA_BOP_OpenAndFillTA_BOP_PeekTA_BOP_UpdateTA_BOP_ValueTA_CCITA_CCI_CloneTA_CCI_OpenTA_CCI_OpenAndFillTA_CCI_PeekTA_CCI_UpdateTA_CCI_ValueTA_CDL2CROWSTA_CDL2CROWS_CloneTA_CDL2CROWS_OpenTA_CDL2CROWS_OpenAndFillTA_CDL2CROWS_PeekTA_CDL2CROWS_UpdateTA_CDL2CROWS_ValueTA_CDL3BLACKCROWSTA_CDL3BLACKCROWS_CloneTA_CDL3BLACKCROWS_OpenTA_CDL3BLACKCROWS_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSIDE_CloneTA_CDL3INSIDE_OpenTA_CDL3INSIDE_OpenAndFillTA_CDL3INSIDE_PeekTA_CDL3INSIDE_UpdateTA_CDL3INSIDE_ValueTA_CDL3LINESTRIKETA_CDL3LINESTRIKE_CloneTA_CDL3LINESTRIKE_OpenTA_CDL3LINESTRIKE_OpenAndFillTA_CDL3LIN""ESTRIKE_PeekTA_CDL3LINESTRIKE_UpdateTA_CDL3LINESTRIKE_ValueTA_CDL3OUTSIDETA_CDL3OUTSIDE_CloneTA_CDL3OUTSIDE_OpenTA_CDL3OUTSIDE_OpenAndFillTA_CDL3OUTSIDE_PeekTA_CDL3OUTSIDE_UpdateTA_CDL3OUTSIDE_ValueTA_CDL3STARSINSOUTHTA_CDL3STARSINSOUTH_CloneTA_CDL3STARSINSOUTH_OpenTA_CDL3STARSINSOUTH_OpenAndFillTA_CDL3STARSINSOUTH_PeekTA_CDL3STARSINSOUTH_UpdateTA_CDL3STARSINSOUTH_ValueTA_CDL3WHITESOLDIERSTA_CDL3WHITESOLDIERS_CloneTA_CDL3WHITESOLDIERS_OpenTA_CDL3WHITESOLDIERS_OpenAndFillTA_CDL3WHITESOLDIERS_PeekTA_CDL3WHITESOLDIERS_UpdateTA_CDL3WHITESOLDIERS_ValueTA_CDLABANDONEDBABYTA_CDLABANDONEDBABY_CloneTA_CDLABANDONEDBABY_OpenTA_CDLABANDONEDBABY_OpenAndFillTA_CDLABANDONEDBABY_PeekTA_CDLABANDONEDBABY_UpdateTA_CDLABANDONEDBABY_ValueTA_CDLADVANCEBLOCKTA_CDLADVANCEBLOCK_CloneTA_CDLADVANCEBLOCK_OpenTA_CDLADVANCEBLOCK_OpenAndFillTA_CDLADVANCEBLOCK_PeekTA_CDLADVANCEBLOCK_UpdateTA_CDLADVANCEBLOCK_ValueTA_CDLBELTHOLDTA_CDLBELTHOLD_CloneTA_CDLBELTHOLD_OpenTA_CDLBELTHOLD_OpenAndFillTA_CDLBELTHOLD_PeekTA_CDLBELTHOLD_UpdateTA_CDLBELTHOLD_ValueTA_CDLBREAKAWAYTA_CDLBREAKAWAY_CloneTA_CDLBREAKAWAY_OpenTA_CDLBREAKAWAY_OpenAndFillTA_CDLBREAKAWAY_PeekTA_CDLBREAKAWAY_UpdateTA_CDLBREAKAWAY_ValueTA_CDLCLOSINGMARUBOZUTA_CDLCLOSINGMARUBOZU_CloneTA_CDLCLOSINGMARUBOZU_OpenTA_CDLCLOSINGMARUBOZU_OpenAndFillTA_CDLCLOSINGMARUBOZU_PeekTA_CDLCLOSINGMARUBOZU_UpdateTA_CDLCLOSINGMARUBOZU_ValueTA_CDLCONCEALBABYSWALLTA_CDLCONCEALBABYSWALL_CloneTA_CDLCONCEALBABYSWALL_OpenTA_CDLCONCEALBABYSWALL_OpenAndFillTA_CDLCONCEALBABYSWALL_PeekTA_CDLCONCEALBABYSWALL_UpdateTA_CDLCONCEALBABYSWALL_ValueTA_CDLCOUNTERATTACKTA_CDLCOUNTERATTACK_CloneTA_CDLCOUNTERATTACK_OpenTA_CDLCOUNTERATTACK_OpenAndFillTA_CDLCOUNTERATTACK_PeekTA_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_CDLDARKCLOUDCOVER_ValueTA_CDLDOJITA_CDLDOJISTARTA_CDLDOJISTAR_CloneTA_CDLDOJISTAR_OpenTA_CDLDOJISTAR_OpenA""ndFillTA_CDLDOJISTAR_PeekTA_CDLDOJISTAR_UpdateTA_CDLDOJISTAR_ValueTA_CDLDOJI_CloneTA_CDLDOJI_OpenTA_CDLDOJI_OpenAndFillTA_CDLDOJI_PeekTA_CDLDOJI_UpdateTA_CDLDOJI_ValueTA_CDLDRAGONFLYDOJITA_CDLDRAGONFLYDOJI_CloneTA_CDLDRAGONFLYDOJI_OpenTA_CDLDRAGONFLYDOJI_OpenAndFillTA_CDLDRAGONFLYDOJI_PeekTA_CDLDRAGONFLYDOJI_UpdateTA_CDLDRAGONFLYDOJI_ValueTA_CDLENGULFINGTA_CDLENGULFING_CloneTA_CDLENGULFING_OpenTA_CDLENGULFING_OpenAndFillTA_CDLENGULFING_PeekTA_CDLENGULFING_UpdateTA_CDLENGULFING_ValueTA_CDLEVENINGDOJISTARTA_CDLEVENINGDOJISTAR_CloneTA_CDLEVENINGDOJISTAR_OpenTA_CDLEVENINGDOJISTAR_OpenAndFillTA_CDLEVENINGDOJISTAR_PeekTA_CDLEVENINGDOJISTAR_UpdateTA_CDLEVENINGDOJISTAR_ValueTA_CDLEVENINGSTARTA_CDLEVENINGSTAR_CloneTA_CDLEVENINGSTAR_OpenTA_CDLEVENINGSTAR_OpenAndFillTA_CDLEVENINGSTAR_PeekTA_CDLEVENINGSTAR_UpdateTA_CDLEVENINGSTAR_ValueTA_CDLGAPSIDESIDEWHITETA_CDLGAPSIDESIDEWHITE_CloneTA_CDLGAPSIDESIDEWHITE_OpenTA_CDLGAPSIDESIDEWHITE_OpenAndFillTA_CDLGAPSIDESIDEWHITE_PeekTA_CDLGAPSIDESIDEWHITE_UpdateTA_CDLGAPSIDESIDEWHITE_ValueTA_CDLGRAVESTONEDOJITA_CDLGRAVESTONEDOJI_CloneTA_CDLGRAVESTONEDOJI_OpenTA_CDLGRAVESTONEDOJI_OpenAndFillTA_CDLGRAVESTONEDOJI_PeekTA_CDLGRAVESTONEDOJI_UpdateTA_CDLGRAVESTONEDOJI_ValueTA_CDLHAMMERTA_CDLHAMMER_CloneTA_CDLHAMMER_OpenTA_CDLHAMMER_OpenAndFillTA_CDLHAMMER_PeekTA_CDLHAMMER_UpdateTA_CDLHAMMER_ValueTA_CDLHANGINGMANTA_CDLHANGINGMAN_CloneTA_CDLHANGINGMAN_OpenTA_CDLHANGINGMAN_OpenAndFillTA_CDLHANGINGMAN_PeekTA_CDLHANGINGMAN_UpdateTA_CDLHANGINGMAN_ValueTA_CDLHARAMITA_CDLHARAMICROSSTA_CDLHARAMICROSS_CloneTA_CDLHARAMICROSS_OpenTA_CDLHARAMICROSS_OpenAndFillTA_CDLHARAMICROSS_PeekTA_CDLHARAMICROSS_UpdateTA_CDLHARAMICROSS_ValueTA_CDLHARAMI_CloneTA_CDLHARAMI_OpenTA_CDLHARAMI_OpenAndFillTA_CDLHARAMI_PeekTA_CDLHARAMI_UpdateTA_CDLHARAMI_ValueTA_CDLHIGHWAVETA_CDLHIGHWAVE_CloneTA_CDLHIGHWAVE_OpenTA_CDLHIGHWAVE_OpenAndFillTA_CDLHIGHWAVE_PeekTA_CDLHIGHWAVE_UpdateTA_CDLHIGHWAVE_ValueTA_CDLHIKKAKETA_CDLHIKKAKEMODTA_CDLHIKKAKEMOD_CloneTA_CDLHIKKAKEMOD_OpenTA_CDLHIKKAKEMO""D_OpenAndFillTA_CDLHIKKAKEMOD_PeekTA_CDLHIKKAKEMOD_UpdateTA_CDLHIKKAKEMOD_ValueTA_CDLHIKKAKE_CloneTA_CDLHIKKAKE_OpenTA_CDLHIKKAKE_OpenAndFillTA_CDLHIKKAKE_PeekTA_CDLHIKKAKE_UpdateTA_CDLHIKKAKE_ValueTA_CDLHOMINGPIGEONTA_CDLHOMINGPIGEON_CloneTA_CDLHOMINGPIGEON_OpenTA_CDLHOMINGPIGEON_OpenAndFillTA_CDLHOMINGPIGEON_PeekTA_CDLHOMINGPIGEON_UpdateTA_CDLHOMINGPIGEON_ValueTA_CDLIDENTICAL3CROWSTA_CDLIDENTICAL3CROWS_CloneTA_CDLIDENTICAL3CROWS_OpenTA_CDLIDENTICAL3CROWS_OpenAndFillTA_CDLIDENTICAL3CROWS_PeekTA_CDLIDENTICAL3CROWS_UpdateTA_CDLIDENTICAL3CROWS_ValueTA_CDLINNECKTA_CDLINNECK_CloneTA_CDLINNECK_OpenTA_CDLINNECK_OpenAndFillTA_CDLINNECK_PeekTA_CDLINNECK_UpdateTA_CDLINNECK_ValueTA_CDLINVERTEDHAMMERTA_CDLINVERTEDHAMMER_CloneTA_CDLINVERTEDHAMMER_OpenTA_CDLINVERTEDHAMMER_OpenAndFillTA_CDLINVERTEDHAMMER_PeekTA_CDLINVERTEDHAMMER_UpdateTA_CDLINVERTEDHAMMER_ValueTA_CDLKICKINGTA_CDLKICKINGBYLENGTHTA_CDLKICKINGBYLENGTH_CloneTA_CDLKICKINGBYLENGTH_OpenTA_CDLKICKINGBYLENGTH_OpenAndFillTA_CDLKICKINGBYLENGTH_PeekTA_CDLKICKINGBYLENGTH_UpdateTA_CDLKICKINGBYLENGTH_ValueTA_CDLKICKING_CloneTA_CDLKICKING_OpenTA_CDLKICKING_OpenAndFillTA_CDLKICKING_PeekTA_CDLKICKING_UpdateTA_CDLKICKING_ValueTA_CDLLADDERBOTTOMTA_CDLLADDERBOTTOM_CloneTA_CDLLADDERBOTTOM_OpenTA_CDLLADDERBOTTOM_OpenAndFillTA_CDLLADDERBOTTOM_PeekTA_CDLLADDERBOTTOM_UpdateTA_CDLLADDERBOTTOM_ValueTA_CDLLONGLEGGEDDOJITA_CDLLONGLEGGEDDOJI_CloneTA_CDLLONGLEGGEDDOJI_OpenTA_CDLLONGLEGGEDDOJI_OpenAndFillTA_CDLLONGLEGGEDDOJI_PeekTA_CDLLONGLEGGEDDOJI_UpdateTA_CDLLONGLEGGEDDOJI_ValueTA_CDLLONGLINETA_CDLLONGLINE_CloneTA_CDLLONGLINE_OpenTA_CDLLONGLINE_OpenAndFillTA_CDLLONGLINE_PeekTA_CDLLONGLINE_UpdateTA_CDLLONGLINE_ValueTA_CDLMARUBOZUTA_CDLMARUBOZU_CloneTA_CDLMARUBOZU_OpenTA_CDLMARUBOZU_OpenAndFillTA_CDLMARUBOZU_PeekTA_CDLMARUBOZU_UpdateTA_CDLMARUBOZU_ValueTA_CDLMATCHINGLOWTA_CDLMATCHINGLOW_CloneTA_CDLMATCHINGLOW_OpenTA_CDLMATCHINGLOW_OpenAndFillTA_CDLMATCHINGLOW_PeekTA_CDLMATCHINGLOW_UpdateTA_CDLMATCHINGLOW_ValueTA_CDLMATHOLDTA_CDLMATHOLD_CloneTA_""CDLMATHOLD_OpenTA_CDLMATHOLD_OpenAndFillTA_CDLMATHOLD_PeekTA_CDLMATHOLD_UpdateTA_CDLMATHOLD_ValueTA_CDLMORNINGDOJISTARTA_CDLMORNINGDOJISTAR_CloneTA_CDLMORNINGDOJISTAR_OpenTA_CDLMORNINGDOJISTAR_OpenAndFillTA_CDLMORNINGDOJISTAR_PeekTA_CDLMORNINGDOJISTAR_UpdateTA_CDLMORNINGDOJISTAR_ValueTA_CDLMORNINGSTARTA_CDLMORNINGSTAR_CloneTA_CDLMORNINGSTAR_OpenTA_CDLMORNINGSTAR_OpenAndFillTA_CDLMORNINGSTAR_PeekTA_CDLMORNINGSTAR_UpdateTA_CDLMORNINGSTAR_ValueTA_CDLONNECKTA_CDLONNECK_CloneTA_CDLONNECK_OpenTA_CDLONNECK_OpenAndFillTA_CDLONNECK_PeekTA_CDLONNECK_UpdateTA_CDLONNECK_ValueTA_CDLPIERCINGTA_CDLPIERCING_CloneTA_CDLPIERCING_OpenTA_CDLPIERCING_OpenAndFillTA_CDLPIERCING_PeekTA_CDLPIERCING_UpdateTA_CDLPIERCING_ValueTA_CDLRICKSHAWMANTA_CDLRICKSHAWMAN_CloneTA_CDLRICKSHAWMAN_OpenTA_CDLRICKSHAWMAN_OpenAndFillTA_CDLRICKSHAWMAN_PeekTA_CDLRICKSHAWMAN_UpdateTA_CDLRICKSHAWMAN_ValueTA_CDLRISEFALL3METHODSTA_CDLRISEFALL3METHODS_CloneTA_CDLRISEFALL3METHODS_OpenTA_CDLRISEFALL3METHODS_OpenAndFillTA_CDLRISEFALL3METHODS_PeekTA_CDLRISEFALL3METHODS_UpdateTA_CDLRISEFALL3METHODS_ValueTA_CDLSEPARATINGLINESTA_CDLSEPARATINGLINES_CloneTA_CDLSEPARATINGLINES_OpenTA_CDLSEPARATINGLINES_OpenAndFillTA_CDLSEPARATINGLINES_PeekTA_CDLSEPARATINGLINES_UpdateTA_CDLSEPARATINGLINES_ValueTA_CDLSHOOTINGSTARTA_CDLSHOOTINGSTAR_CloneTA_CDLSHOOTINGSTAR_OpenTA_CDLSHOOTINGSTAR_OpenAndFillTA_CDLSHOOTINGSTAR_PeekTA_CDLSHOOTINGSTAR_UpdateTA_CDLSHOOTINGSTAR_ValueTA_CDLSHORTLINETA_CDLSHORTLINE_CloneTA_CDLSHORTLINE_OpenTA_CDLSHORTLINE_OpenAndFillTA_CDLSHORTLINE_PeekTA_CDLSHORTLINE_UpdateTA_CDLSHORTLINE_ValueTA_CDLSPINNINGTOPTA_CDLSPINNINGTOP_CloneTA_CDLSPINNINGTOP_OpenTA_CDLSPINNINGTOP_OpenAndFillTA_CDLSPINNINGTOP_PeekTA_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPATTERN_ValueTA_CDLSTICKSANDWICHTA_CDLSTICKSANDWICH_CloneTA_CDLSTICKSANDWICH_OpenTA_CDLSTICKSANDWICH_OpenAn""dFillTA_CDLSTICKSANDWICH_PeekTA_CDLSTICKSANDWICH_UpdateTA_CDLSTICKSANDWICH_ValueTA_CDLTAKURITA_CDLTAKURI_CloneTA_CDLTAKURI_OpenTA_CDLTAKURI_OpenAndFillTA_CDLTAKURI_PeekTA_CDLTAKURI_UpdateTA_CDLTAKURI_ValueTA_CDLTASUKIGAPTA_CDLTASUKIGAP_CloneTA_CDLTASUKIGAP_OpenTA_CDLTASUKIGAP_OpenAndFillTA_CDLTASUKIGAP_PeekTA_CDLTASUKIGAP_UpdateTA_CDLTASUKIGAP_ValueTA_CDLTHRUSTINGTA_CDLTHRUSTING_CloneTA_CDLTHRUSTING_OpenTA_CDLTHRUSTING_OpenAndFillTA_CDLTHRUSTING_PeekTA_CDLTHRUSTING_UpdateTA_CDLTHRUSTING_ValueTA_CDLTRISTARTA_CDLTRISTAR_CloneTA_CDLTRISTAR_OpenTA_CDLTRISTAR_OpenAndFillTA_CDLTRISTAR_PeekTA_CDLTRISTAR_UpdateTA_CDLTRISTAR_ValueTA_CDLUNIQUE3RIVERTA_CDLUNIQUE3RIVER_CloneTA_CDLUNIQUE3RIVER_OpenTA_CDLUNIQUE3RIVER_OpenAndFillTA_CDLUNIQUE3RIVER_PeekTA_CDLUNIQUE3RIVER_UpdateTA_CDLUNIQUE3RIVER_ValueTA_CDLUPSIDEGAP2CROWSTA_CDLUPSIDEGAP2CROWS_CloneTA_CDLUPSIDEGAP2CROWS_OpenTA_CDLUPSIDEGAP2CROWS_OpenAndFillTA_CDLUPSIDEGAP2CROWS_PeekTA_CDLUPSIDEGAP2CROWS_UpdateTA_CDLUPSIDEGAP2CROWS_ValueTA_CDLXSIDEGAP3METHODSTA_CDLXSIDEGAP3METHODS_CloneTA_CDLXSIDEGAP3METHODS_OpenTA_CDLXSIDEGAP3METHODS_OpenAndFillTA_CDLXSIDEGAP3METHODS_PeekTA_CDLXSIDEGAP3METHODS_UpdateTA_CDLXSIDEGAP3METHODS_ValueTA_CEILTA_CEIL_CloneTA_CEIL_OpenTA_CEIL_OpenAndFillTA_CEIL_PeekTA_CEIL_UpdateTA_CEIL_ValueTA_CMFTA_CMF_CloneTA_CMF_OpenTA_CMF_OpenAndFillTA_CMF_PeekTA_CMF_UpdateTA_CMF_ValueTA_CMOTA_CMOUTA_CMOU_CloneTA_CMOU_OpenTA_CMOU_OpenAndFillTA_CMOU_PeekTA_CMOU_UpdateTA_CMOU_ValueTA_CMO_CloneTA_CMO_OpenTA_CMO_OpenAndFillTA_CMO_PeekTA_CMO_UpdateTA_CMO_ValueTA_COPPOCKTA_COPPOCK_CloneTA_COPPOCK_OpenTA_COPPOCK_OpenAndFillTA_COPPOCK_PeekTA_COPPOCK_UpdateTA_COPPOCK_ValueTA_CORRELTA_CORREL_CloneTA_CORREL_OpenTA_CORREL_OpenAndFillTA_CORREL_PeekTA_CORREL_UpdateTA_CORREL_ValueTA_COSTA_COSHTA_COSH_CloneTA_COSH_OpenTA_COSH_OpenAndFillTA_COSH_PeekTA_COSH_UpdateTA_COSH_ValueTA_COS_CloneTA_COS_OpenTA_COS_OpenAndFillTA_COS_PeekTA_COS_UpdateTA_COS_ValueTA_CUMSUMTA_CUMSUM_CloneTA_CUMSUM_OpenTA_CUMSUM_OpenAndFillTA_CUMSUM_PeekTA_CUMSUM_Upda""teTA_CUMSUM_ValueTA_CVITA_CVI_CloneTA_CVI_OpenTA_CVI_OpenAndFillTA_CVI_PeekTA_CVI_UpdateTA_CVI_ValueTA_DEMATA_DEMA_CloneTA_DEMA_OpenTA_DEMA_OpenAndFillTA_DEMA_PeekTA_DEMA_UpdateTA_DEMA_ValueTA_DIVTA_DIV_CloneTA_DIV_OpenTA_DIV_OpenAndFillTA_DIV_PeekTA_DIV_UpdateTA_DIV_ValueTA_DONCHIANTA_DONCHIAN_CloneTA_DONCHIAN_OpenTA_DONCHIAN_OpenAndFillTA_DONCHIAN_PeekTA_DONCHIAN_UpdateTA_DONCHIAN_ValueTA_DPOTA_DPO_CloneTA_DPO_OpenTA_DPO_OpenAndFillTA_DPO_PeekTA_DPO_UpdateTA_DPO_ValueTA_DXTA_DX_CloneTA_DX_OpenTA_DX_OpenAndFillTA_DX_PeekTA_DX_UpdateTA_DX_ValueTA_EFITA_EFI_CloneTA_EFI_OpenTA_EFI_OpenAndFillTA_EFI_PeekTA_EFI_UpdateTA_EFI_ValueTA_EMATA_EMA_CloneTA_EMA_OpenTA_EMA_OpenAndFillTA_EMA_PeekTA_EMA_UpdateTA_EMA_ValueTA_ERTA_ERITA_ERI_CloneTA_ERI_OpenTA_ERI_OpenAndFillTA_ERI_PeekTA_ERI_UpdateTA_ERI_ValueTA_ER_CloneTA_ER_OpenTA_ER_OpenAndFillTA_ER_PeekTA_ER_UpdateTA_ER_ValueTA_EXPTA_EXP_CloneTA_EXP_OpenTA_EXP_OpenAndFillTA_EXP_PeekTA_EXP_UpdateTA_EXP_ValueTA_FLOORTA_FLOOR_CloneTA_FLOOR_OpenTA_FLOOR_OpenAndFillTA_FLOOR_PeekTA_FLOOR_UpdateTA_FLOOR_ValueTA_FOSCTA_FOSC_CloneTA_FOSC_OpenTA_FOSC_OpenAndFillTA_FOSC_PeekTA_FOSC_UpdateTA_FOSC_ValueTA_FRACTALTA_FRACTAL_CloneTA_FRACTAL_OpenTA_FRACTAL_OpenAndFillTA_FRACTAL_PeekTA_FRACTAL_UpdateTA_FRACTAL_ValueTA_FUNC_FLAGSTA_FuncTableAllocTA_FuncTableFreeTA_GetFuncHandleTA_GetFuncInfoTA_GetInputParameterInfoTA_GetLookbackTA_GetOptInputParameterInfoTA_GetOutputParameterInfoTA_GroupTableAllocTA_GroupTableFreeTA_HATA_HA_CloneTA_HA_OpenTA_HA_OpenAndFillTA_HA_PeekTA_HA_UpdateTA_HA_ValueTA_HMATA_HMA_CloneTA_HMA_OpenTA_HMA_OpenAndFillTA_HMA_PeekTA_HMA_UpdateTA_HMA_ValueTA_HT_DCPERIODTA_HT_DCPERIOD_CloneTA_HT_DCPERIOD_OpenTA_HT_DCPERIOD_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_HT_DCPHASE_OpenTA_HT_DCPHASE_OpenAndFillTA_HT_DCPHASE_PeekTA_HT_DCPHASE_UpdateTA_HT_DCPHASE_ValueTA_HT_PHASORTA_HT_PHASOR_CloneTA_HT_PHASOR_OpenTA_HT_PHASOR_OpenAndFillTA_HT_PHASOR_PeekTA_HT_PHASOR_UpdateTA_HT_""PHASOR_ValueTA_HT_SINETA_HT_SINE_CloneTA_HT_SINE_OpenTA_HT_SINE_OpenAndFillTA_HT_SINE_PeekTA_HT_SINE_UpdateTA_HT_SINE_ValueTA_HT_TRENDLINETA_HT_TRENDLINE_CloneTA_HT_TRENDLINE_OpenTA_HT_TRENDLINE_OpenAndFillTA_HT_TRENDLINE_PeekTA_HT_TRENDLINE_UpdateTA_HT_TRENDLINE_ValueTA_HT_TRENDMODETA_HT_TRENDMODE_CloneTA_HT_TRENDMODE_OpenTA_HT_TRENDMODE_OpenAndFillTA_HT_TRENDMODE_PeekTA_HT_TRENDMODE_UpdateTA_HT_TRENDMODE_ValueTA_IMITA_IMI_CloneTA_IMI_OpenTA_IMI_OpenAndFillTA_IMI_PeekTA_IMI_UpdateTA_IMI_ValueTA_INPUT_FLAGSTA_InitializeTA_KAMATA_KAMA_CloneTA_KAMA_OpenTA_KAMA_OpenAndFillTA_KAMA_PeekTA_KAMA_UpdateTA_KAMA_ValueTA_KCTA_KC_CloneTA_KC_OpenTA_KC_OpenAndFillTA_KC_PeekTA_KC_UpdateTA_KC_ValueTA_KDJTA_KDJ_CloneTA_KDJ_OpenTA_KDJ_OpenAndFillTA_KDJ_PeekTA_KDJ_UpdateTA_KDJ_ValueTA_LINEARREGTA_LINEARREG_ANGLETA_LINEARREG_ANGLE_CloneTA_LINEARREG_ANGLE_OpenTA_LINEARREG_ANGLE_OpenAndFillTA_LINEARREG_ANGLE_PeekTA_LINEARREG_ANGLE_UpdateTA_LINEARREG_ANGLE_ValueTA_LINEARREG_CloneTA_LINEARREG_INTERCEPTTA_LINEARREG_INTERCEPT_CloneTA_LINEARREG_INTERCEPT_OpenTA_LINEARREG_INTERCEPT_OpenAndFillTA_LINEARREG_INTERCEPT_PeekTA_LINEARREG_INTERCEPT_UpdateTA_LINEARREG_INTERCEPT_ValueTA_LINEARREG_OpenTA_LINEARREG_OpenAndFillTA_LINEARREG_PeekTA_LINEARREG_SLOPETA_LINEARREG_SLOPE_CloneTA_LINEARREG_SLOPE_OpenTA_LINEARREG_SLOPE_OpenAndFillTA_LINEARREG_SLOPE_PeekTA_LINEARREG_SLOPE_UpdateTA_LINEARREG_SLOPE_ValueTA_LINEARREG_UpdateTA_LINEARREG_ValueTA_LNTA_LN_CloneTA_LN_OpenTA_LN_OpenAndFillTA_LN_PeekTA_LN_UpdateTA_LN_ValueTA_LOG10TA_LOG10_CloneTA_LOG10_OpenTA_LOG10_OpenAndFillTA_LOG10_PeekTA_LOG10_UpdateTA_LOG10_ValueTA_MATA_MACDTA_MACDEXTTA_MACDEXT_CloneTA_MACDEXT_OpenTA_MACDEXT_OpenAndFillTA_MACDEXT_PeekTA_MACDEXT_UpdateTA_MACDEXT_ValueTA_MACDFIXTA_MACDFIX_CloneTA_MACDFIX_OpenTA_MACDFIX_OpenAndFillTA_MACDFIX_PeekTA_MACDFIX_UpdateTA_MACDFIX_ValueTA_MACD_CloneTA_MACD_OpenTA_MACD_OpenAndFillTA_MACD_PeekTA_MACD_UpdateTA_MACD_ValueTA_MAMATA_MAMA_CloneTA_MAMA_OpenTA_MAMA_OpenAndFillTA_MAMA_PeekTA_MAMA_UpdateTA_MA""MA_ValueTA_MARKETFITA_MARKETFI_CloneTA_MARKETFI_OpenTA_MARKETFI_OpenAndFillTA_MARKETFI_PeekTA_MARKETFI_UpdateTA_MARKETFI_ValueTA_MASSITA_MASSI_CloneTA_MASSI_OpenTA_MASSI_OpenAndFillTA_MASSI_PeekTA_MASSI_UpdateTA_MASSI_ValueTA_MAVPTA_MAVP_CloneTA_MAVP_OpenTA_MAVP_OpenAndFillTA_MAVP_PeekTA_MAVP_UpdateTA_MAVP_ValueTA_MAXTA_MAXINDEXTA_MAXINDEX_CloneTA_MAXINDEX_OpenTA_MAXINDEX_OpenAndFillTA_MAXINDEX_PeekTA_MAXINDEX_UpdateTA_MAXINDEX_ValueTA_MAX_CloneTA_MAX_OpenTA_MAX_OpenAndFillTA_MAX_PeekTA_MAX_UpdateTA_MAX_ValueTA_MA_CloneTA_MA_OpenTA_MA_OpenAndFillTA_MA_PeekTA_MA_UpdateTA_MA_ValueTA_MEDPRICETA_MEDPRICE_CloneTA_MEDPRICE_OpenTA_MEDPRICE_OpenAndFillTA_MEDPRICE_PeekTA_MEDPRICE_UpdateTA_MEDPRICE_ValueTA_MFITA_MFI_CloneTA_MFI_OpenTA_MFI_OpenAndFillTA_MFI_PeekTA_MFI_UpdateTA_MFI_ValueTA_MIDPOINTTA_MIDPOINT_CloneTA_MIDPOINT_OpenTA_MIDPOINT_OpenAndFillTA_MIDPOINT_PeekTA_MIDPOINT_UpdateTA_MIDPOINT_ValueTA_MIDPRICETA_MIDPRICE_CloneTA_MIDPRICE_OpenTA_MIDPRICE_OpenAndFillTA_MIDPRICE_PeekTA_MIDPRICE_UpdateTA_MIDPRICE_ValueTA_MINTA_MININDEXTA_MININDEX_CloneTA_MININDEX_OpenTA_MININDEX_OpenAndFillTA_MININDEX_PeekTA_MININDEX_UpdateTA_MININDEX_ValueTA_MINMAXTA_MINMAXINDEXTA_MINMAXINDEX_CloneTA_MINMAXINDEX_OpenTA_MINMAXINDEX_OpenAndFillTA_MINMAXINDEX_PeekTA_MINMAXINDEX_UpdateTA_MINMAXINDEX_ValueTA_MINMAX_CloneTA_MINMAX_OpenTA_MINMAX_OpenAndFillTA_MINMAX_PeekTA_MINMAX_UpdateTA_MINMAX_ValueTA_MINUS_DITA_MINUS_DI_CloneTA_MINUS_DI_OpenTA_MINUS_DI_OpenAndFillTA_MINUS_DI_PeekTA_MINUS_DI_UpdateTA_MINUS_DI_ValueTA_MINUS_DMTA_MINUS_DM_CloneTA_MINUS_DM_OpenTA_MINUS_DM_OpenAndFillTA_MINUS_DM_PeekTA_MINUS_DM_UpdateTA_MINUS_DM_ValueTA_MIN_CloneTA_MIN_OpenTA_MIN_OpenAndFillTA_MIN_PeekTA_MIN_UpdateTA_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MULTTA_MULT_CloneTA_MULT_OpenTA_MULT_OpenAndFillTA_MULT_PeekTA_MULT_UpdateTA_MULT_ValueTA_NATRTA_NATR_CloneTA_NATR_OpenTA_NATR_OpenAndFillTA_NATR_PeekTA_NATR_UpdateTA_NATR_ValueTA_NVITA_NVI_CloneTA_NVI_OpenTA_NVI""_OpenAndFillTA_NVI_PeekTA_NVI_UpdateTA_NVI_ValueTA_OBVTA_OBV_CloneTA_OBV_OpenTA_OBV_OpenAndFillTA_OBV_PeekTA_OBV_UpdateTA_OBV_ValueTA_OUTPUT_FLAGSTA_PERCENTILETA_PERCENTILE_CloneTA_PERCENTILE_OpenTA_PERCENTILE_OpenAndFillTA_PERCENTILE_PeekTA_PERCENTILE_UpdateTA_PERCENTILE_ValueTA_PERCENTRANKTA_PERCENTRANK_CloneTA_PERCENTRANK_OpenTA_PERCENTRANK_OpenAndFillTA_PERCENTRANK_PeekTA_PERCENTRANK_UpdateTA_PERCENTRANK_ValueTA_PLUS_DITA_PLUS_DI_CloneTA_PLUS_DI_OpenTA_PLUS_DI_OpenAndFillTA_PLUS_DI_PeekTA_PLUS_DI_UpdateTA_PLUS_DI_ValueTA_PLUS_DMTA_PLUS_DM_CloneTA_PLUS_DM_OpenTA_PLUS_DM_OpenAndFillTA_PLUS_DM_PeekTA_PLUS_DM_UpdateTA_PLUS_DM_ValueTA_PPOTA_PPO_CloneTA_PPO_OpenTA_PPO_OpenAndFillTA_PPO_PeekTA_PPO_UpdateTA_PPO_ValueTA_PVITA_PVI_CloneTA_PVI_OpenTA_PVI_OpenAndFillTA_PVI_PeekTA_PVI_UpdateTA_PVI_ValueTA_PVOTA_PVO_CloneTA_PVO_OpenTA_PVO_OpenAndFillTA_PVO_PeekTA_PVO_UpdateTA_PVO_ValueTA_PVTTA_PVT_CloneTA_PVT_OpenTA_PVT_OpenAndFillTA_PVT_PeekTA_PVT_UpdateTA_PVT_ValueTA_ParamHolderAllocTA_ParamHolderFreeTA_QSTICKTA_QSTICK_CloneTA_QSTICK_OpenTA_QSTICK_OpenAndFillTA_QSTICK_PeekTA_QSTICK_UpdateTA_QSTICK_ValueTA_RMATA_RMA_CloneTA_RMA_OpenTA_RMA_OpenAndFillTA_RMA_PeekTA_RMA_UpdateTA_RMA_ValueTA_ROCTA_ROCPTA_ROCP_CloneTA_ROCP_OpenTA_ROCP_OpenAndFillTA_ROCP_PeekTA_ROCP_UpdateTA_ROCP_ValueTA_ROCRTA_ROCR100TA_ROCR100_CloneTA_ROCR100_OpenTA_ROCR100_OpenAndFillTA_ROCR100_PeekTA_ROCR100_UpdateTA_ROCR100_ValueTA_ROCR_CloneTA_ROCR_OpenTA_ROCR_OpenAndFillTA_ROCR_PeekTA_ROCR_UpdateTA_ROCR_ValueTA_ROC_CloneTA_ROC_OpenTA_ROC_OpenAndFillTA_ROC_PeekTA_ROC_UpdateTA_ROC_ValueTA_RSITA_RSI_CloneTA_RSI_OpenTA_RSI_OpenAndFillTA_RSI_PeekTA_RSI_UpdateTA_RSI_ValueTA_RVITA_RVI_CloneTA_RVI_OpenTA_RVI_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RVOL_PeekTA_RVOL_UpdateTA_RVOL_ValueTA_RestoreCandleDefaultSettingsTA_SARTA_SAREXTTA_SAREXT_CloneTA_SAREXT_OpenTA_SAREXT_OpenAndFillTA_SAREXT_PeekTA_SAREXT_UpdateTA_SAREXT_ValueTA_SAR_CloneTA_SAR_OpenTA_SAR_Open""AndFillTA_SAR_PeekTA_SAR_UpdateTA_SAR_ValueTA_SINTA_SINHTA_SINH_CloneTA_SINH_OpenTA_SINH_OpenAndFillTA_SINH_PeekTA_SINH_UpdateTA_SINH_ValueTA_SIN_CloneTA_SIN_OpenTA_SIN_OpenAndFillTA_SIN_PeekTA_SIN_UpdateTA_SIN_ValueTA_SMATA_SMA_CloneTA_SMA_OpenTA_SMA_OpenAndFillTA_SMA_PeekTA_SMA_UpdateTA_SMA_ValueTA_SMITA_SMI_CloneTA_SMI_OpenTA_SMI_OpenAndFillTA_SMI_PeekTA_SMI_UpdateTA_SMI_ValueTA_SQRTTA_SQRT_CloneTA_SQRT_OpenTA_SQRT_OpenAndFillTA_SQRT_PeekTA_SQRT_UpdateTA_SQRT_ValueTA_STDDEVTA_STDDEV_CloneTA_STDDEV_OpenTA_STDDEV_OpenAndFillTA_STDDEV_PeekTA_STDDEV_UpdateTA_STDDEV_ValueTA_STOCHTA_STOCHFTA_STOCHF_CloneTA_STOCHF_OpenTA_STOCHF_OpenAndFillTA_STOCHF_PeekTA_STOCHF_UpdateTA_STOCHF_ValueTA_STOCHRSITA_STOCHRSI_CloneTA_STOCHRSI_OpenTA_STOCHRSI_OpenAndFillTA_STOCHRSI_PeekTA_STOCHRSI_UpdateTA_STOCHRSI_ValueTA_STOCH_CloneTA_STOCH_OpenTA_STOCH_OpenAndFillTA_STOCH_PeekTA_STOCH_UpdateTA_STOCH_ValueTA_SUBTA_SUB_CloneTA_SUB_OpenTA_SUB_OpenAndFillTA_SUB_PeekTA_SUB_UpdateTA_SUB_ValueTA_SUMTA_SUM_CloneTA_SUM_OpenTA_SUM_OpenAndFillTA_SUM_PeekTA_SUM_UpdateTA_SUM_ValueTA_SUPERTRENDTA_SUPERTREND_CloneTA_SUPERTREND_OpenTA_SUPERTREND_OpenAndFillTA_SUPERTREND_PeekTA_SUPERTREND_UpdateTA_SUPERTREND_ValueTA_SetCandleSettingsTA_SetCompatibilityTA_SetOptInputParamIntegerTA_SetOptInputParamRealTA_SetUnstablePeriodTA_ShutdownTA_T3TA_T3_CloneTA_T3_OpenTA_T3_OpenAndFillTA_T3_PeekTA_T3_UpdateTA_T3_ValueTA_TANTA_TANHTA_TANH_CloneTA_TANH_OpenTA_TANH_OpenAndFillTA_TANH_PeekTA_TANH_UpdateTA_TANH_ValueTA_TAN_CloneTA_TAN_OpenTA_TAN_OpenAndFillTA_TAN_PeekTA_TAN_UpdateTA_TAN_ValueTA_TEMATA_TEMA_CloneTA_TEMA_OpenTA_TEMA_OpenAndFillTA_TEMA_PeekTA_TEMA_UpdateTA_TEMA_ValueTA_TRANGETA_TRANGE_CloneTA_TRANGE_OpenTA_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenTA_TRIMA_OpenAndFillTA_TRIMA_PeekTA_TRIMA_UpdateTA_TRIMA_ValueTA_TRIXTA_TRIX_CloneTA_TRIX_OpenTA_TRIX_OpenAndFillTA_TRIX_PeekTA_TRIX_UpdateTA_TRIX_ValueTA_TSFTA_TSF_CloneTA_TSF_OpenTA_TSF_OpenAndFillTA_TSF_Peek""TA_TSF_UpdateTA_TSF_ValueTA_TSITA_TSI_CloneTA_TSI_OpenTA_TSI_OpenAndFillTA_TSI_PeekTA_TSI_UpdateTA_TSI_ValueTA_TYPPRICETA_TYPPRICE_CloneTA_TYPPRICE_OpenTA_TYPPRICE_OpenAndFillTA_TYPPRICE_PeekTA_TYPPRICE_UpdateTA_TYPPRICE_ValueTA_ULTOSCTA_ULTOSC_CloneTA_ULTOSC_OpenTA_ULTOSC_OpenAndFillTA_ULTOSC_PeekTA_ULTOSC_UpdateTA_ULTOSC_ValueTA_VARTA_VAR_CloneTA_VAR_OpenTA_VAR_OpenAndFillTA_VAR_PeekTA_VAR_UpdateTA_VAR_ValueTA_VHFTA_VHF_CloneTA_VHF_OpenTA_VHF_OpenAndFillTA_VHF_PeekTA_VHF_UpdateTA_VHF_ValueTA_VORTEXTA_VORTEX_CloneTA_VORTEX_OpenTA_VORTEX_OpenAndFillTA_VORTEX_PeekTA_VORTEX_UpdateTA_VORTEX_ValueTA_VWAPTA_VWAP_CloneTA_VWAP_OpenTA_VWAP_OpenAndFillTA_VWAP_PeekTA_VWAP_UpdateTA_VWAP_ValueTA_VWMATA_VWMA_CloneTA_VWMA_OpenTA_VWMA_OpenAndFillTA_VWMA_PeekTA_VWMA_UpdateTA_VWMA_ValueTA_WADTA_WAD_CloneTA_WAD_OpenTA_WAD_OpenAndFillTA_WAD_PeekTA_WAD_UpdateTA_WAD_ValueTA_WCLPRICETA_WCLPRICE_CloneTA_WCLPRICE_OpenTA_WCLPRICE_OpenAndFillTA_WCLPRICE_PeekTA_WCLPRICE_UpdateTA_WCLPRICE_ValueTA_WILLRTA_WILLR_CloneTA_WILLR_OpenTA_WILLR_OpenAndFillTA_WILLR_PeekTA_WILLR_UpdateTA_WILLR_ValueTA_WMATA_WMA_CloneTA_WMA_OpenTA_WMA_OpenAndFillTA_WMA_PeekTA_WMA_UpdateTA_WMA_ValueTA_ZLEMATA_ZLEMA_CloneTA_ZLEMA_OpenTA_ZLEMA_OpenAndFillTA_ZLEMA_PeekTA_ZLEMA_UpdateTA_ZLEMA_ValueTEMATEMA_StreamTEMA_Stream.open_and_fillTRANGETRANGE_StreamTRANGE_Stream.open_and_fillTRIMATRIMA_StreamTRIMA_Stream.open_and_fillTRIXTRIX_StreamTRIX_Stream.open_and_fillTSFTSF_StreamTSF_Stream.open_and_fillTSITSI_StreamTSI_Stream.open_and_fillTYPPRICETYPPRICE_StreamTYPPRICE_Stream.open_and_fillULTOSCULTOSC_StreamULTOSC_Stream.open_and_fillVARVAR_StreamVAR_Stream.open_and_fillVHFVHF_StreamVHF_Stream.open_and_fillVORTEXVORTEX_StreamVORTEX_Stream.open_and_fillVWAPVWAP_StreamVWAP_Stream.open_and_fillVWMAVWMA_StreamVWMA_Stream.open_and_fillWADWAD_StreamWAD_Stream.open_and_fillWCLPRICEWCLPRICE_StreamWCLPRICE_Stream.open_and_fillWILLRWILLR_StreamWILLR_Stream.open_and_fillWMAWMA_StreamWMA_Stream.open_and_fillZLEMAZLEMA_StreamZLEMA_Stream.op""en_and_fill_ARRAY_TYPES_Function__call_function_Function__check_opt_input_value_Function__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES__Pyx_PyDict_NextRef__TA_FUNCTION_NAMES____all____annotate____call____call_function__check_opt_input_value__class_getitem____copy____deepcopy____dict____doc____func____get_flags__get_opt_input_value__getitem____init____input_price_series_names__local__main____metaclass____module____mro_entries____name____new____prepare____pyx_vtable____qualname____reduce____repr____set_name____str____ta_version____test____unicode___get_defaults_and_docs_is_coroutine_lookup_ta_check_success_ta_func_unst_id_ta_func_unst_ids_ta_func_unst_retired_ta_getFuncInfo_ta_getFuncTable_ta_getGroupTable_ta_getInputParameterInfo_ta_getOptInputParameterInfo_ta_getOutputParameterInfo_ta_get_compatibility_ta_get_unstable_period_ta_initialize_ta_restore_candle_default_settings_ta_set_candle_settings_ta_set_compatibility_ta_set_unstable_period_ta_shutdowna_closea_higha_lowa_opena_periodsa_reala_real0a_real1a_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortappendargargsarraysasciiastypeasyncio.coroutinesatrperiodavgperiodbbegidxbitbytes2strcandlestickcline_in_tracebackcloneclosecollectionscolumn_stackcolumnscopyddecodedefault_valuedefaultsdescriptiondisplay_namedocsdocumentationemptyendidxendswithenumeratefactorfastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_linefunc_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskeykeyskwargsleftbarslengthlocallo""okbacklowlowermatypemaximummaxperiodmemominperiodmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumpyobjectoffsetonreverseopenopenInterestopen_and_filloptInopt_inputopt_input_valuesopt_inputsordereddictoutoutaroondownoutaroonupoutbearpoweroutbegidxoutbullpoweroutdoutfamaoutfastdoutfastkouthacloseouthahighouthalowouthaopenoutinphaseoutintegeroutinteger_dataoutjoutkoutleadsineoutlowerbandoutmacdoutmacdhistoutmacdsignaloutmamaoutmaxoutmaxidxoutmaxidx_dataoutmiddlebandoutminoutminidxoutminidx_dataoutminusvioutnbelementoutplusvioutputoutput_flagsoutput_nameoutput_namesoutputsoutputs_validoutquadratureoutrealoutreallowerbandoutrealmiddlebandoutrealupperbandoutsineoutslowdoutslowkoutsmioutsmisignaloutsupertrendoutswinghighoutswinglowouttrendoutupperbandpandasparamparam_nameparametersparamspenetrationpercentileperiodperiodspolarspoppriceprice0price1price_seriesprice_series_name_valuespricespropertyrangetyperealreal0real1replaceresultsretretCoderet_coderightbarsroc1periodroc2periodrocperiodrunsschemasecondperiodselfseriesset_function_argsset_input_arraysset_input_namesset_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstacklevelstartvaluestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infouppervaluevaluesversionvfactorvolumewarnwarningswmaperiod\200\001\330\004\007\200u\210C\210q\330\010\020\220\005\220Q\330\014\r\330\020\026\320\026+\2501\250A\330\014 \240\013\2501\330\010\017\210q\330\004\013\320\013\034\230A\230Q\200\001\330\004\007\200y\220\003\2201\330\010\017\210q\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a""\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\330\t\022\220#\220Q\330\010\026\220a\340\010\026\220a\330\004\014\320\014#\2409\250C\250x\260q\330\004\n\210%\210q\220\001\330\010\027\220z\240\021\200\001\340\004\017\320\017#\2401\330\004\013\2101\200\001\340\004\022\220,\230a\330\004\025\220Q\220o\240Q\200\001\340\004\022\220.\240\001\330\004\025\220Q\320\026\047\240q\200\001\340\004\022\320\022&\240a\240q\330\004\025\220Q\320\026-\250Q\200\001\340\004\022\320\022\047\240q\250\r\260[\300\013\3101\330\004\025\220Q\320\026.\250a\200\001\340\004\022\320\0222\260!\2601\330\004\025\220Q\320\0269\270\021\200\001\340#$\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320RS\320S_\320_`\320`o\320oz\360\000\000{\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002J\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R[\320[\\\320\\h\320hi""\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340#;\2701\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300]\320R\\\320\\]\320]i\320ij\320jy\360\000\000z\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002S\002\360\000\000S\002T\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340$%\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320ST\320T`\320`a\320ap\320p{\360\000\000|\001C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002K\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320S[\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\270A\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q""\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300m\320Sb\320bc\320co\320op\320p\177\360\000\000@\002K\002\360\000\000K\002R\002\360\000\000R\002X\002\360\000\000X\002Y\002\360\000\000Y\002Z\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340$<\320\270a\360,\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300|\320S_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002a\002\360\000\000a\002l\002\360\000\000l\002s\002\360\000\000s""\002y\002\360\000\000y\002z\002\360\000\000z\002{\002\330\004\025\220Q\220k\240\021\330\004\013\210:\220Q\200\001\340&\047\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\r\320UV\320Vb\320bc\320cr\320r}\360\000\000~\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002M\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340&>\320>V\320VW\360*\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260&\270\006\270a\270y\310\r\320Ub\320bk\320kl\320lx\320xy\360\000\000z\001I\002\360\000\000I\002T\002\360\000\000T\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002c\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340\047(\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047(\360&\000\005\016\210[\230\001\230\021\330\004\r\210V\2206\230\021\230!\330\004\007\200w\210c\220""\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250V\2601\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2606\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001F\002\360\000\000F\002L\002\360\000\000L\002M\002\360\000\000M\002N\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\047(\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\r\320\r\036\230a\230x\240q\330\004\r\320\r\036\230a\230x\240q\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320VW\320Wc\320cd\320ds\320s~\360\000\000\177\001E\002\360\000\000E\002K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002p\002\330\004\025\220Q\220m\2401\330\004\013\2109\220A\200\001\340\047?\270q\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V^\320^_\320_k\320kl\320l{\360\000\000|\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002U\002\360\000\000U\002V\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340\047?\320?V\320Vm\320mn\3604\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021""\270#\270T\320AR\320RS\320SV\320VW\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\270Z\300z\320QR\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\035\320V`\320`j\320js\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002l\002\360\000\000l\002r\002\360\000\000r\002s\002\360\000\000s\002~\002\360\000\000~\002I\003\360\000\000I\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003l\003\360\000\000l\003w\003\360\000\000w\003G\004\360\000\000G\004M\004\360\000\000M\004N\004\360\000\000N\004O\004\330\004\025\220Q\220m\2401\330\004\013\320\013\036\320\0362\260!\200\001\340()\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320WX\320Xd\320de\320et\320t\177\360\000\000@\002G\002\360\000\000G\002M\002\360\000\000M\002N\002\360\000\000N\002O\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340()\360.\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310/\320YZ\320Zf\320fg\320gv\360\000""\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002[\002\360\000\000[\002f\002\360\000\000f\002s\002\360\000\000s\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003P\003\360\000\000P\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340(?\320?W\320WX\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\034\270]\310!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310,\320Vc\320cp\320pq\320q}\320}~\360\000\000\177\001N\002\360\000\000N\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002h\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340(@\320@S\320Sk\320k~\360\000\000\177\001Y\002\360\000\000Y\002Z\002\3608\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\035\270m\310=\320Xe\320et\320tu\330\004\016\320\016\037\230q\240\010\250\001\330\004\024\320\024%\240Q\240h\250a\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310-\320Wd\320dq\320q~\360\000\000\177\001N\002\360\000\000N\002]\002\360\000\000]\002^\002\360\000\000^\002j\002\360\000\000j\002k\002\360\000\000k\002z\002\360\000\000z\002E\003\360\000\000E\003L\003\360\000\000L\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003i\003\360\000\000i\003v\003\360\000\000v\003|\003\360\000\000|\003}\003\360\000\000}""\003H\004\360\000\000H\004S\004\360\000\000S\004^\004\360\000\000^\004d\004\360\000\000d\004e\004\360\000\000e\004f\004\330\004\025\220Q\220n\240A\330\004\013\210:\320\025%\240Q\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\320u}\360\000\000~\001H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\026\220f\230J\240a\330\004\010\210\007\320\017\037\230q\330\010\027\220q\230\006\230a\330\004\013\2101\200\001\340)*\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320XY\320Ye\320ef\320fu\360\000\000v\001A\002\360\000\000A\002H\002\360\000\000H\002N\002\360\000\000N\002O\002\360\000\000O\002P\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340)A\320A[\320[u\320uv\3600\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260-\270\177\310o\320]^\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310=\320Xg\320gv\360\000\000w\001F\002\360\000\000F\002G\002\360\000\000G\002S\002\360\000\000S""\002T\002\360\000\000T\002c\002\360\000\000c\002n\002\360\000\000n\002v\002\360\000\000v\002|\002\360\000\000|\002}\002\360\000\000}\002H\003\360\000\000H\003S\003\360\000\000S\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\220o\240Q\330\004\013\210;\220a\200\001\340*+\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\022\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310M\320YZ\320Zf\320fg\320gv\360\000\000w\001B\002\360\000\000B\002I\002\360\000\000I\002O\002\360\000\000O\002P\002\360\000\000P\002Q\002\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\340+C\3001\360(\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310]\320Zg\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\340,-\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002""\360\000\000Q\002R\002\360\000\000R\002S\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\340,-\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\024\240^\2601\260C\260q\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2602\260Q\330\004\020\220\016\230a\230x\240q\330\004\020\220\016\230a\230x\240q\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310m\320[\\\320\\h\320hi\320ix\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002P\002\360\000\000P\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\320\026(\250\001\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\025\220V\2309\240A\330\004\010\210\007\320\017\037\230q\330\010\026\220a\220v\230Q\330\004\013\210<\220q\200\001\34001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260r\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R_\320_`\320`l\320lm\320m|\360\000\000}\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002V\002\360\000\000V\002W\002\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\34045\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2702\270Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y""\320Vc\320cd\320dp\320pq\360\000\000r\001A\002\360\000\000A\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002[\002\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\340=U\320UV\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340=U\320Um\320mn\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\035\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cp\320p}\360\000\000~\001M\002\360\000\000M\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002j\002\360\000\000j\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003C\003\360\000\000C\003D\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340>?\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320""\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320qr\320r~\320~\177\360\000\000@\002O\002\360\000\000O\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002i\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>V\320VW\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320dq\320q}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340>Y\320YZ\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320ds\320s}\320}~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002[\002\360\000\000[\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002t\002\360\000\000t\002u\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308""\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002k\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340@A\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\023\320\023$\240A\240X\250Q\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\320st\360\000\000u\001A\002\360\000\000A\002B\002\360\000\000B\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002h\002\360\000\000h\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002E\003\360\000\000E\003O\003\360\000\000O\003U\003\360\000\000U\003V\003\360\000\000V\003W\003\330\004\025\220Q\220l\240!\330\004\013\210?\230!\200\001\340@X\320XY\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fs\360\000\000t\001A\002\360\000\000A\002B\002\360\000\000B\002N\002\360\000\000N\002O\002\360\000\000O\002^\002\360\000\000^\002i\002""\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002w\002\360\000\000w\002x\002\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340A[\320[z\360\000\000{\001_\002\360\000\000_\002\177\002\360\000\000\177\002b\003\360\000\000b\003G\004\360\000\000G\004h\004\360\000\000h\004i\004\3604\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\r\320=O\320Of\320fy\360\000\000z\001P\002\360\000\000P\002h\002\360\000\000h\002|\002\360\000\000|\002}\002\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gt\360\000\000u\001G\002\360\000\000G\002^\002\360\000\000^\002q\002\360\000\000q\002G\003\360\000\000G\003_\003\360\000\000_\003s\003\360\000\000s\003J\004\360\000\000J\004K\004\360\000\000K\004W\004\360\000\000W\004X\004\360\000\000X\004g\004\360\000\000g\004r\004\360\000\000r\004y\004\360\000\000y\004\177\004\360\000\000\177\004@\005\360\000\000@\005A\005\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340BC\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340BC\360&\000\005\r\210K\220q""\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340BC\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BC\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hu\320uv\360\000\000w\001C\002\360\000\000C\002D\002\360\000\000D\002S\002\360\000\000S\002^\002\360\000\000^\002e\002\360\000\000e\002k\002\360\000\000k\002l""\002\360\000\000l\002m\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340BX\320XY\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\024\240^\2601\260C\260q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\033\270A\330\004\023\220>\240\021\240(\250!\330\004\022\220.\240\001\240\030\250\021\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320s\177\360\000\000@\002A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002]\002\360\000\000]\002e\002\360\000\000e\002q\002\360\000\000q\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003K\003\360\000\000K\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220n\240A\330\004\013\210?\230!\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340CD\360&\000\005\014\210;\220a\220q\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3005\310\001\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260""\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002m\002\360\000\000m\002n\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340CD\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320iv\320vw\360\000\000x\001D\002\360\000\000D\002E\002\360\000\000E\002T\002\360\000\000T\002_\002\360\000\000_\002o\002\360\000\000o\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003L\003\360\000\000L\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340CZ\320Zq\320qr\360,\000\005\014\210;\220a\220q\330\004\016\210k\230\021\230!\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3007\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250l\270,\300a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RY\320Y_\320_`\320`i\320iu\360\000\000v\001B\002\360\000\000B\002K\002\360""\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340DE\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260U\270&\300\001\300\031\310+\320UZ\320Z`\320`a\320aj\320jw\320wx\360\000\000y\001E\002\360\000\000E\002F\002\360\000\000F\002U\002\360\000\000U\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002n\002\360\000\000n\002o\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340YZ\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002R\002\360\000\000R\002^\002\360\000\000^\002_\002\360\000\000_\002n\002\360\000\000n\002y\002\360\000\000y\002@\003\360\000\000@\003F\003\360\000\000F\003G\003\360\000\000G\003H\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\340Yq\360\000\000r\001I\002\360\000\000I\002J\002\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320""\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250\"\250M\270\034\300Q\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002Q\002\360\000\000Q\002]\002\360\000\000]\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003]\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003z\003\360\000\000z\003K\004\360\000\000K\004Q\004\360\000\000Q\004R\004\360\000\000R\004]\004\360\000\000]\004h\004\360\000\000h\004x\004\360\000\000x\004~\004\360\000\000~\004\177\004\360\000\000\177\004@\005\330\004\025\220Q\220i\230q\330\004\013\320\013\036\320\0362\260!\200\001\340Z[\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003H\003\360\000\000H\003I\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340Z[\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230""\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002o\002\360\000\000o\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\220j\240\001\330\004\013\210?\230!\200\001\340Zr\360\000\000s\001K\002\360\000\000K\002c\002\360\000\000c\002d\002\3600\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250]\270-\300}\320TU\330\004\r\320\r\036\230a\230x\240q\330\004\023\320\023$\240A\240X\250Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002R\002\360\000\000R\002_\002\360\000\000_\002l\002\360\000\000l\002{\002\360\000\000{\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003X\003\360\000\000X\003c\003\360\000\000c\003i\003\360\000\000i\003o\003\360\000\000o\003p\003\360\000\000p\003{\003\360\000\000{\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Y\004\360\000\000Y\004Z\004\330\004\025""\220Q\220j\240\001\330\004\013\2109\220A\200\001\340Zt\360\000\000u\001O\002\360\000\000O\002e\002\360\000\000e\002\177\002\360\000\000\177\002@\003\3606\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250_\270O\310?\320Zi\320ij\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\013\320\013\034\230A\230X\240Q\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002T\002\360\000\000T\002c\002\360\000\000c\002r\002\360\000\000r\002A\003\360\000\000A\003P\003\360\000\000P\003Q\003\360\000\000Q\003]\003\360\000\000]\003^\003\360\000\000^\003m\003\360\000\000m\003x\003\360\000\000x\003|\003\360\000\000|\003B\004\360\000\000B\004C\004\360\000\000C\004N\004\360\000\000N\004Y\004\360\000\000Y\004]\004\360\000\000]\004c\004\360\000\000c\004d\004\360\000\000d\004o\004\360\000\000o\004z\004\360\000\000z\004~\004\360\000\000~\004D\005\360\000\000D\005E\005\360\000\000E\005F\005\330\004\025\220Q\220j\240\001\330\004\013\2107\220\047\230\021\200\001\340[\\\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250B\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002\360""\000\000F\002S\002\360\000\000S\002T\002\360\000\000T\002`\002\360\000\000`\002a\002\360\000\000a\002p\002\360\000\000p\002{\002\360\000\000{\002B\003\360\000\000B\003H\003\360\000\000H\003I\003\360\000\000I\003J\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\340\\]\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002T\002\360\000\000T\002U\002\360\000\000U\002a\002\360\000\000a\002b\002\360\000\000b\002q\002\360\000\000q\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003J\003\360\000\000J\003K\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\340\\v\360\000\000w\001Q\002\360\000\000Q\002f\002\360\000\000f\002@\003\360\000\000@\003A\003\3602\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250\177\270o\310_\320\\k\320kl\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002V\002\360\000\000V\002e\002\360\000\000e\002t\002\360\000\000t\002C\003\360\000\000C\003R\003\360\000\000R\003S\003\360\000\000S""\003_\003\360\000\000_\003`\003\360\000\000`\003o\003\360\000\000o\003z\003\360\000\000z\003B\004\360\000\000B\004H\004\360\000\000H\004I\004\360\000\000I\004T\004\360\000\000T\004_\004\360\000\000_\004g\004\360\000\000g\004m\004\360\000\000m\004n\004\360\000\000n\004o\004\330\004\025\220Q\220l\240!\330\004\013\210;\220a\200\001\340]^\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\001\330\004\020\320\020!\240\021\240(\250!\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002U\002\360\000\000U\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002r\002\360\000\000r\002}\002\360\000\000}\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003c\003\360\000\000c\003m\003\360\000\000m\003s\003\360\000\000s\003t\003\360\000\000t\003u\003\330\004\025\220Q\220m\2401\330\004\013\210<\220q\200\001\340]v\360\000\000w\001P\002\360\000\000P\002Q\002\360*\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\016\270n\310A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002V\002\360\000\000V\002d""\002\360\000\000d\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\340]w\360\000\000x\001R\002\360\000\000R\002S\002\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250b\260\017\270\177\310a\330\004\017\320\017 \240\001\240\030\250\021\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002W\002\360\000\000W\002f\002\360\000\000f\002u\002\360\000\000u\002v\002\360\000\000v\002B\003\360\000\000B\003C\003\360\000\000C\003R\003\360\000\000R\003]\003\360\000\000]\003e\003\360\000\000e\003k\003\360\000\000k\003l\003\360\000\000l\003w\003\360\000\000w\003B\004\360\000\000B\004J\004\360\000\000J\004P\004\360\000\000P\004Q\004\360\000\000Q\004R\004\330\004\025\220Q\220m\2401\330\004\013\210;\220a\200\001\340^_\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250r\260\021\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UX\320X^\320^_\320_h\320hs\320sx\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002V\002\360\000\000V""\002W\002\360\000\000W\002c\002\360\000\000c\002d\002\360\000\000d\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003L\003\360\000\000L\003M\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\340_`\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002F\003\360\000\000F\003L\003\360\000\000L\003M\003\360\000\000M\003N\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\340_`\360.\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VW\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\002\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\030\320\030)\250\021\250(\260!\330\004\027\320\027(\250\001\250\030\260\021\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002W\002\360\000\000W\002X\002\360\000\000X\002d\002\360\000\000d\002e\002\360\000\000e\002t\002\360\000\000t\002\177\002\360\000\000\177\002O\003\360\000\000O\003U\003\360\000\000U\003V\003""\360\000\000V\003a\003\360\000\000a\003l\003\360\000\000l\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004O\004\360\000\000O\004Z\004\360\000\000Z\004j\004\360\000\000j\004p\004\360\000\000p\004q\004\360\000\000q\004r\004\330\004\025\220Q\220o\240Q\330\004\013\320\013\036\320\0362\260!\200\001\340ay\320yz\360,\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\250\016\260a\260s\270!\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260M\300\021\330\004\024\320\024%\240Q\240h\250a\330\004\017\210~\230Q\230h\240a\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X[\320[a\320ab\320bk\320kv\320v{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002Y\002\360\000\000Y\002f\002\360\000\000f\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002C\003\360\000\000C\003N\003\360\000\000N\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003u\003\360\000\000u\003}\003\360\000\000}\003C\004\360\000\000C\004D\004\360\000\000D\004E\004\330\004\025\220Q\320\026\047\240q\330\004\013\320\013\033\2301\200\001\340wx\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2502\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360""\000\000E\002P\002\360\000\000P\002V\002\360\000\000V\002\\\002\360\000\000\\\002]\002\360\000\000]\002f\002\360\000\000f\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003[\003\360\000\000[\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\340|}\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260\"\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002y\002\360\000\000y\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003V\003\360\000\000V\003^\003\360\000\000^\003h\003\360\000\000h\003n\003\360\000\000n\003o\003\360\000\000o\003p\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360\004\000A\002B\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260b\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000""\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002}\002\360\000\000}\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003Z\003\360\000\000Z\003b\003\360\000\000b\003l\003\360\000\000l\003r\003\360\000\000r\003s\003\360\000\000s\003t\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360\004\000C\002D\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\002\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002\177\002\360\000\000\177\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003\\\003\360\000\000\\\003d\003\360\000\000d\003n\003\360\000\000n\003t\003\360\000\000t\003u\003\360\000\000u\003v\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360\004\000D\002E\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\022\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&""\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002@\003\360\000\000@\003A\003\360\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003]\003\360\000\000]\003e\003\360\000\000e\003o\003\360\000\000o\003u\003\360\000\000u\003v\003\360\000\000v\003w\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360\004\000E\002F\002\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270\"\270A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002A\003\360\000\000A\003B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003^\003\360\000\000^\003f\003\360\000\000f\003p\003\360\000\000p\003v\003\360\000\000v\003w\003\360\000\000w\003x\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360\004\000z\001R\002\360\000\000R\002S\002\360(\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r""\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250R\250}\270A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\013\320SV\320V\\\320\\]\320]f\320fq\320qv\320v|\320|}\360\000\000~\001G\002\360\000\000G\002R\002\360\000\000R\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002u\002\360\000\000u\002B\003\360\000\000B\003C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003_\003\360\000\000_\003j\003\360\000\000j\003q\003\360\000\000q\003w\003\360\000\000w\003x\003\360\000\000x\003y\003\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\t\330\004\t\210\021\330\004\022\320\022\047\240q\250\004\250A\330\004\025\220Q\320\026.\250a\200\001\360\006\000\005\017\320\016\036\230a\230q\330\004\007\200x\210s\220!\330\010\017\210q\330\004\t\210\021\330\004\020\320\020%\240Q\240a\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026.\320.@\300\001\300\027\310\001\310\021\330\004\020\220\001\330\004\010\210\005\210V\2201\220E\230\021\330\010\021\220\027\230\001\230\026\230q\240\005\240W\250A\250Q\330\004\025\220Q\320\026-\320->\270a\270q\330\004\013\2101\200\001\360\n\000\005\026\220Q\320\026/\320/B\300!\3001\300A\330\004\r\210Q\330\004\010\210\005\210V\2201\220E\230\021\330\010\016\210g\220Q\220f\230A\230U\240\047\250\021\250!\330\004\025\220Q\320\026.\320.@\300\001\300\021\330\004\013\2101\200\001\360\014\000\005\020\210q\330\004\020\220\001\220\031\230!\2309\240A\330\004\020\220\001\220\021\330\004\013\2101\330\004\010\210\007\210q\320\0201\260\022\2601\340\004\022\220)\2301\230A\330\004\010\210\007\210q\220\001\330\004\010\210\016\220a\330\010\020\220\013\2301\230A\330\010\013\2104\210z\230\021\230\047\240\021\330\014\024\220A\330\010\014\210G\2201\320\024$\240L\260\001\340\004\r\210Y\220a\220q\330\004\007\200q\330\010\014\210G\2201\220A\330\004\010\210\t\220""\021\330\010\014\210G\2201\320\024$\240G\2506\260\021\260!\330\010\021\220\027\230\001\230\035\240g\250V\2601\260A\330\010\020\220\001\220\031\230&\240\001\240\021\330\010\013\2105\220\t\230\021\230!\330\014\020\220\002\220%\220s\230%\230q\240\001\240\024\240R\240t\2507\260\"\260G\2701\270F\300!\3001\340\004\016\210i\220q\230\001\330\004\022\320\022,\250D\260\t\270\021\320:L\310C\310q\330\004\010\210\007\210q\220\001\330\004\010\210\n\220!\330\010\013\2107\220#\220Z\230t\2401\330\014\025\220Q\330\010\014\210G\2201\220I\230R\230q\340\004\r\210W\220A\220T\230\025\230a\230q\330\004\r\210W\220A\220Q\330\004\010\210\007\210q\220\003\2202\220U\230!\2301\330\004\024\220D\230\005\230Q\230a\330\004\013\210:\220Q\200\001\360\014\000\005\022\220\037\240\001\320!3\2601\3204D\300A\300Q\330\004\025\220Q\320\026(\250\001\340\004\005\330\010\020\220\t\230\021\230$\230a\330\010\021\220\031\230!\2304\230q\330\010\030\230\t\240\021\240$\240a\330\010\032\230+\240Q\240d\250(\260!\330\010\026\220c\230\021\230$\230a\330\010\032\230#\230Q\230d\240!\330\010\027\220s\230!\2304\230q\200\001\360\014\000\005\022\320\021*\250!\320+=\270Q\320>N\310e\320ST\320TU\330\004\025\220Q\320\0262\260!\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220G\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\210t\2208\2301\230H\240A\330\t\021\220\023\220A\330\010\017\210q\340\004\005\330\010\020\220\001\330\010\030\230\013\2401\240D\250\010\260\001\200\001\360\014\000\005\022\320\021+\2501\320,>\270a\320?O\310u\320TU\320UV\330\004\025\220Q\320\0263\2601\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220\003\2201\220H\230F\240!\340\004\007\200w\210c\220\025\220d\230%\230x\240x\250y\270\001\330\010\017\210t\2201\220C\220q\230\001\340\004\005\330\010\020\220\001\330\010\021\220\033\230A\230T\240\030\250\021\200\001\360\014\000\005\022\320\021-\250Q\320.@\300\001\320AQ\320QV\320VW\320WX\330\004\025\220Q\320\0265\260Q\340\004\013\2109\220A\220T\230\021\330\004\013\2104\210q\220""\003\2201\220J\230f\240A\330\004\024\220C\220q\230\004\320\034.\250d\260&\270\002\270\047\300\024\300Q\340\004\005\330\010\020\220\001\330\010\030\230\t\240\021\240$\240a\330\010\020\220\004\220A\330\010\020\220\t\230\021\230$\230a\330\010\031\230\021\330\010\021\220\021\200\001\360\020\000\005\010\200u\210B\210a\330\010\017\210q\330\004\013\2101\210A\330\014\020\220\005\220_\240F\250!\320+<\270F\300!\330\014\017\210t\2202\220Q\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PS\320SY\320YZ\320Zc\320cn\320ns\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002\\\002\360\000\000\\\002e\002\360\000\000e\002f\002\360\000\000f\002r\002\360\000\000r\002s\002\360\000\000s\002B\003\360\000\000B\003M\003\360\000\000M\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003\\\003\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240g\250Q\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]e\320eo\320ou\320uv\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300{\320RU\320U[\320[\\\320\\e\320ep\320pu\320u{\320{|\360\000\000}\001F\002""\360\000\000F\002Q\002\360\000\000Q\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002g\002\360\000\000g\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002D\003\360\000\000D\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003]\003\360\000\000]\003^\003\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QT\320TZ\320Z[\320[d\320do\320ot\320tz\320z{\360\000\000|\001E\002\360\000\000E\002F\002\360\000\000F\002R\002\360\000\000R\002S\002\360\000\000S\002b\002\360\000\000b\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002{\002\360\000\000{\002|\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\033\320TW\320W]\320]^\320^g\320gr\320rw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002I\002\360\000\000I\002U\002\360\000\000U\002V\002\360\000\000V\002e\002\360\000\000e\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002~\002\360\000\000~\002\177\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330""\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X]\320]^\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320ty\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002K\002\360\000\000K\002W\002\360\000\000W\002X\002\360\000\000X\002g\002\360\000\000g\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002@\003\360\000\000@\003A\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\025\240a\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300h\310j\320X^\320^_\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320it\320tz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002h\002\360\000\000h\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003A\003\360\000\000A\003B\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3003\300a\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409""\250K\260t\2706\300\021\300)\310;\320VY\320Y_\320_`\320`i\320ij\320jv\320vw\360\000\000x\001G\002\360\000\000G\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002a\002\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310+\320UY\320Y_\320_`\320`i\320it\320tw\320w}\320}~\360\000\000\177\001H\002\360\000\000H\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002h\002\360\000\000h\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002E\003\360\000\000E\003M\003\360\000\000M\003W\003\360\000\000W\003]\003\360\000\000]\003^\003\360\000\000^\003_\003\330\004\025\220Q\220n\240A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310K\320W[\320[a\320ab\320bk\320kv\320vy\320y\177\360\000\000@\002A\002\360\000\000A\002J\002\360\000\000J\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002a\002\360\000\000a\002j\002\360\000\000j\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000""\000x\002G\003\360\000\000G\003O\003\360\000\000O\003Y\003\360\000\000Y\003_\003\360\000\000_\003`\003\360\000\000`\003a\003\330\004\025\220Q\320\026&\240a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310[\320X\\\320\\b\320bc\320cl\320lw\320wz\360\000\000{\001A\002\360\000\000A\002B\002\360\000\000B\002K\002\360\000\000K\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002b\002\360\000\000b\002k\002\360\000\000k\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002H\003\360\000\000H\003P\003\360\000\000P\003Z\003\360\000\000Z\003`\003\360\000\000`\003a\003\360\000\000a\003b\003\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\021\220\036\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310k\320Y]\320]c\320cd\320dm\320mx\320x{\360\000\000|\001B\002\360\000\000B\002C\002\360\000\000C\002L\002\360\000\000L\002W\002\360\000\000W\002\\\002\360\000\000\\\002b\002\360\000\000b\002c\002\360\000\000c\002l\002\360\000\000l\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002I\003\360\000\000I\003Q""\003\360\000\000Q\003[\003\360\000\000[\003a\003\360\000\000a\003b\003\360\000\000b\003c\003\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310{\320Z^\320^d\320de\320en\320ny\320y|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002M\002\360\000\000M\002X\002\360\000\000X\002]\002\360\000\000]\002c\002\360\000\000c\002d\002\360\000\000d\002m\002\360\000\000m\002n\002\360\000\000n\002z\002\360\000\000z\002{\002\360\000\000{\002J\003\360\000\000J\003R\003\360\000\000R\003\\\003\360\000\000\\\003b\003\360\000\000b\003c\003\360\000\000c\003d\003\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0335\260Q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\"\240\"\240D\250\t\260\033\270D\300\006\300a\300y\320P[\320[_\320_e\320ef\320fo\320oz\320z}\360\000\000~\001D\002\360\000\000D\002E\002\360\000\000E\002N\002\360\000\000N\002Y\002\360\000\000Y\002^\002\360\000\000^\002d\002\360\000\000d\002e\002\360\000\000e\002n\002\360\000\000n\002o\002\360\000\000o\002{\002\360\000\000{\002|\002\360\000\000|\002K\003\360\000\000K\003S\003\360\000\000S\003]""\003\360\000\000]\003c\003\360\000\000c\003d\003\360\000\000d\003e\003\330\004\025\220Q\320\026*\250!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0336\260a\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021#\2402\240T\250\031\260+\270T\300\026\300q\310\t\320Q\\\320\\`\320`f\320fg\320gp\320p{\320{~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002O\002\360\000\000O\002Z\002\360\000\000Z\002_\002\360\000\000_\002e\002\360\000\000e\002f\002\360\000\000f\002o\002\360\000\000o\002p\002\360\000\000p\002|\002\360\000\000|\002}\002\360\000\000}\002L\003\360\000\000L\003T\003\360\000\000T\003^\003\360\000\000^\003d\003\360\000\000d\003e\003\360\000\000e\003f\003\330\004\025\220Q\320\026+\2501\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0337\260q\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021$\240B\240d\250)\260;\270d\300&\310\001\310\031\320R]\320]a\320ag\320gh\320hq\320q|\320|\177\360\000\000@\002F\002\360\000\000F\002G\002\360\000\000G\002P\002\360\000\000P\002[\002\360\000\000[\002`\002\360\000\000`\002f\002\360\000\000f\002g\002\360\000\000g\002p\002\360\000\000p\002q\002\360\000\000q\002}\002\360\000\000}\002~\002\360\000\000~\002M\003\360\000\000M\003U\003\360\000\000U\003_\003\360\000\000_\003e""\003\360\000\000e\003f\003\360\000\000f\003g\003\330\004\025\220Q\320\026,\250A\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0338\270\001\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021%\240R\240t\2509\260K\270t\3006\310\021\310)\320S^\320^b\320bh\320hi\320ir\320r}\360\000\000~\001A\002\360\000\000A\002G\002\360\000\000G\002H\002\360\000\000H\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002a\002\360\000\000a\002g\002\360\000\000g\002h\002\360\000\000h\002q\002\360\000\000q\002r\002\360\000\000r\002~\002\360\000\000~\002\177\002\360\000\000\177\002N\003\360\000\000N\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003g\003\360\000\000g\003h\003\330\004\025\220Q\320\026-\250Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0339\270\021\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021&\240b\250\004\250I\260[\300\004\300F\310!\3109\320T_\320_c\320ci\320ij\320js\320s~\360\000\000\177\001B\002\360\000\000B\002H\002\360\000\000H\002I\002\360\000\000I\002R\002\360\000\000R\002]\002\360\000\000]\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002r\002\360\000\000r\002s\002\360\000\000s\002\177\002\360\000\000\177\002@\003\360\000\000@\003O\003\360\000\000O\003W\003\360\000\000W\003a""\003\360\000\000a\003g\003\360\000\000g\003h\003\360\000\000h\003i\003\330\004\025\220Q\320\026.\250a\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033:\270!\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021\047\240r\250\024\250Y\260k\300\024\300V\3101\310I\320U`\320`d\320dj\320jk\320kt\320t\177\360\000\000@\002C\002\360\000\000C\002I\002\360\000\000I\002J\002\360\000\000J\002S\002\360\000\000S\002^\002\360\000\000^\002c\002\360\000\000c\002i\002\360\000\000i\002j\002\360\000\000j\002s\002\360\000\000s\002t\002\360\000\000t\002@\003\360\000\000@\003A\003\360\000\000A\003P\003\360\000\000P\003X\003\360\000\000X\003b\003\360\000\000b\003h\003\360\000\000h\003i\003\360\000\000i\003j\003\330\004\025\220Q\320\026/\250q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033;\2701\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021(\250\002\250$\250i\260{\300$\300f\310A\310Y\320Va\320ae\320ek\320kl\320lu\360\000\000v\001A\002\360\000\000A\002D\002\360\000\000D\002J\002\360\000\000J\002K\002\360\000\000K\002T\002\360\000\000T\002_\002\360\000\000_\002d\002\360\000\000d\002j\002\360\000\000j\002k\002\360\000\000k\002t\002\360\000\000t\002u\002\360\000\000u\002A\003\360\000\000A\003B\003\360\000\000B\003Q\003\360\000\000Q\003Y\003""\360\000\000Y\003c\003\360\000\000c\003i\003\360\000\000i\003j\003\360\000\000j\003k\003\330\004\025\220Q\320\0260\260\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QU\320U[\320[\\\320\\e\320ep\320ps\320sy\320yz\360\000\000{\001D\002\360\000\000D\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002[\002\360\000\000[\002d\002\360\000\000d\002e\002\360\000\000e\002q\002\360\000\000q\002r\002\360\000\000r\002A\003\360\000\000A\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003[\003\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0330\260\001\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\034\230R\230t\2409\250K\260t\2706\300\021\300)\310;\320VZ\320Z`\320`a\320aj\320ju\320ux\320x~\320~\177\360\000\000@\002I\002\360\000\000I\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002`\002\360\000\000`\002i\002\360\000\000i\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002F\003\360\000\000F\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003_\003\360\000""\000_\003`\003\330\004\025\220Q\220o\240Q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\210~\230Q\230c\240\021\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\021\220\036\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lt\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300Q\300l\320RS\320Sb\320bm\320mt\320tz\320z{\320{|\330\004\025\220Q\220i\230q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300a\300|\320ST\320Tc\320cn\320nu\320u{\320{|\320|}\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2604\260v\270Q\270i\300q\310\014\320TU\320Ud\320do\320ov\320v|\320|}\320}~\330\004""\025\220Q\220k\240\021\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033-\250Q\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\031\230\"\230D\240\t\250\033\260D\270\006\270a\270y\310\001\310\034\320UV\320Ve\320ep\320pw\320w}\320}~\320~\177\330\004\025\220Q\220l\240!\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033.\250a\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\032\2302\230T\240\031\250+\260T\270\026\270q\300\t\310\021\310,\320VW\320Wf\320fq\320qx\320x~\320~\177\360\000\000@\002A\002\330\004\025\220Q\220m\2401\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0332\260!\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\036\230r\240\024\240Y\250k\270\024\270V\3001\300I\310Q\310l\320Z[\320[j\320ju\320u|\360\000\000}\001C\002\360\000\000C\002D\002\360\000\000D\002E\002\330\004\025\220Q\320\026\047\240q\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0333\2601\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\037\240\002\240$\240i\250{\270$\270f\300A\300Y\310a\310|\320[\\\320\\k\320kv\320v}\360\000""\000~\001D\002\360\000\000D\002E\002\360\000\000E\002F\002\330\004\025\220Q\320\026(\250\001\330\004\013\2101\200\001\360&\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0334\260A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\320\021!\240\022\2404\240y\260\013\2704\270v\300Q\300i\310q\320P\\\320\\]\320]l\320lw\320w~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002G\002\330\004\025\220Q\320\026)\250\021\330\004\013\2101\200\001\360&\000\005\r\210K\220q\230\001\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250U\260(\270*\300F\310!\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\014\210;\220a\220q\330\004\r\210[\230\001\230\021\330\004\r\210]\230!\2306\240\021\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3006\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260$\260f\270A\270Y\300k\320QW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001""\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033+\2501\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\027\230\002\230$\230i\240{\260%\260v\270Q\270i\300{\320RW\320W]\320]^\320^g\320gh\320ht\320tu\360\000\000v\001E\002\360\000\000E\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002^\002\360\000\000^\002_\002\330\004\025\220Q\220j\240\001\330\004\013\2101\200\001\360(\000\005\r\210K\220q\230\001\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2307\240!\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240A\330\004\r\210]\230!\2308\240:\250U\260(\270*\300E\310\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033,\250A\330\004\016\320\016\037\230q\240\010\250\001\330\004\021\220\030\230\022\2304\230y\250\013\2605\270\006\270a\270y\310\013\320SX\320X^\320^_\320_h\320hi\320iu\320uv\360\000\000w\001F\002\360\000\000F\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002_\002\360\000\000_\002`\002\330\004\025\220Q\220k\240\021\330\004\013\2101\200\001\360*\000\005\014\210;\220a\220q\330\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\033/\250q\330\004\016\320\016\037\230q\240\010\250\001\330\004\022\320\022#\2401\240H\250A\330\004\021\220\033\230B\230d\240)\250;\260d\270&\300\001\300\031\310!\310<\320WX\320Xg\320gr\320ry\320y\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002W\002\360\000\000W\002b\002\360\000\000b\002h\002\360\000\000h\002i\002\360\000\000i\002j\002\330\004\025\220Q\220n\240A\330\004\013\210:\220Q\200\001\360*\000\005\014\210;\220a\220q\330""\004\r\210T\220\026\220q\230\001\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270Q\330\004\r\210]\230!\2308\240:\250T\260\021\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\320\0331\260\021\330\004\021\320\021\"\240!\2408\2501\330\004\024\320\024%\240Q\240h\250a\330\004\021\220\035\230b\240\004\240I\250[\270\004\270F\300!\3009\310A\310\\\320YZ\320Zi\320it\320t~\360\000\000\177\001E\002\360\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002\\\002\360\000\000\\\002i\002\360\000\000i\002o\002\360\000\000o\002p\002\360\000\000p\002q\002\330\004\025\220Q\320\026&\240a\330\004\013\210=\230\001\200\001\3602\000\005\014\210;\220a\220q\330\004\013\210;\220a\220q\330\004\n\210+\220Q\220a\330\004\014\210K\220q\230\001\330\004\r\210]\230!\2306\240\026\240u\250A\330\004\007\200w\210c\220\021\330\010\017\320\017 \240\001\240\023\240D\320(9\270\021\270#\270T\320AR\320RS\320SV\320VZ\320Zk\320kl\320lo\320op\330\004\r\210]\230!\2308\240:\250T\260\030\270\032\3004\300x\310z\320Y\\\320\\d\320dn\320ns\320st\330\004\r\210U\220\047\230\022\2307\240\"\240A\330\004\017\210w\220e\230?\250!\330\004\020\320\020!\240\021\240(\250!\330\004\020\320\020!\240\021\240(\250!\330\004\017\320\017 \240\001\240\030\250\021\330\004\021\320\021\"\240!\2408\2501\330\004\021\220\026\220r\230\024\230Y\240k\260\024\260V\2701\270I\300[\320PT\320TZ\320Z[\320[d\320do\320or\320rx\320xy\360\000\000z\001C\002\360\000\000C\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002c\002\360\000\000c\002d\002\360\000\000d\002p\002\360\000\000p\002q\002\360\000\000q\002@\003\360\000\000@\003K\003\360\000\000K\003T\003\360\000\000T\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003q\003\360\000\000q\003z\003\360\000\000z\003@\004\360\000\000@\004A\004\360\000\000A\004L\004\360\000\000L\004W\004\360\000\000W\004_\004\360\000\000_\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q""\004|\004\360\000\000|\004F\005\360\000\000F\005L\005\360\000\000L\005M\005\360\000\000M\005N\005\330\004\025\220Q\220i\230q\330\004\013\210<\220|\240;\250a\200A\330\010\014\210A\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2206\230\021\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2208\2301\330\014\023\2207\230!\330\014\023\2207\230!\330\014\023\2205\230\001\330\014\023\2206\230\021\330\014\023\220;\230a\330\014\023\220:\230Q\330\014\023\2208\2301\330\014\023\2206\230\021\200A\330\010\016\210i\220q\330\014\r\33046\260d\270!\2705\300\001\200A\330\010\017\210q\200A\330\010\017\210q\220\007\220q\230\001\200A\330\010\017\210t\2205\230\001\200A\330\010\017\210t\2208\2301\230A\200A\330\010\017\210u\220A\220S\230\001\200A\330\010\017\210u\220B\220d\230!\200A\330\010\017\210w\220a\220t\2308\2401\200A\330\010\017\320\017%\240Q\240d\250&\260\001\260\021\200A\330\010\020\220\004\220A\330\010#\2401\330\010\014\210N\230%\230q\330\014\033\2305\240\014\250A\250[\270\001\270\021\330\014\017\210z\230\021\230.\250\001\330\020\024\220H\230A\330\024,\250G\2601\260A\340\020(\250\007\250q\260\001\330\010\017\210q\200A\330\010\020\220\004\220A\330\010#\2404\320\047B\300!\360\006\000\t\020\210q\330\010\014\320\014\034\230A\330\014\025\220U\230-\240q\250\001\330\014\017\210\177\230g\240U\250!\330\024\036\230a\230x\240q\330\020\031\230\026\230w\240g\250Q\250a\330\021 \240\007\240u\250A\330\024\036\230a\230x\240q\330\020\031\230\026\230y\250\002\250\047\260\021\260!\330\014\020\220\007\220q\230\001\330\010\014\210M\230\025\230a\330\014\024\220D\320\030.\250a\250q\330\014\020\220\007\220q\230\001\360\006\000\t\023\220$\220l\240\"\240A\330\010\013\210:\220Q\220k\240\021\330\014\023\2205\230\010\240\005\240Q\330\014\017\210t\220:\230Q\230f\240A\330\020\027\220t\2301\230A\330\014\021\220\030\230\021\230$\230a\230v\240Q\340\014\020\220\003\220:\230Y\240a\240u\250A\330\020\025\220X\230Q\230j\250\007\250q\260\001\330\010\r\320\r\036\230a\200A\330\010\020\220\004\220H\230K""\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\024\220A\330\r\023\2207\320\0324\260A\330\014\024\220A\340\010\013\210:\220Q\220g\230Q\330\013\022\220!\330\r\023\2207\230!\330\014\022\220)\2301\330\020\021\330\024 \240\005\240[\260\004\260A\260V\2701\330\010\017\210q\200A\330*A\320AX\320XY\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270[\310\014\320TU\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mx\360\000\000y\001E\002\360\000\000E\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003E\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320tu\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002P\002\360\000\000P\002Y\002\360\000\000Y\002`\002\360\000\000`\002f\002\360\000\000f\002h\002\360\000\000h\002i\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010""\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320uv\360\000\000w\001B\002\360\000\000B\002C\002\360\000\000C\002Q\002\360\000\000Q\002Z\002\360\000\000Z\002a\002\360\000\000a\002g\002\360\000\000g\002i\002\360\000\000i\002j\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\320vw\360\000\000x\001C\002\360\000\000C\002D\002\360\000\000D\002R\002\360\000\000R\002[\002\360\000\000[\002b\002\360\000\000b\002h\002\360\000\000h\002j\002\360\000\000j\002k\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kw\320wx\360\000\000y\001D\002\360\000\000D\002E\002\360\000\000E\002S\002\360\000\000S\002\\\002\360\000\000\\\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002l\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q""\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010!\320!2\260!\2608\2701\330\010!\320!2\260!\2608\2701\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002c\002\360\000\000c\002i\002\360\000\000i\002k\002\360\000\000k\002u\002\360\000\000u\002~\002\360\000\000~\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250i\260|\3002\300X\310Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\320yz\360\000\000{\001F\002\360\000\000F\002G\002\360\000\000G\002U\002\360\000\000U\002^\002\360\000\000^\002e\002\360\000\000e\002k""\002\360\000\000k\002m\002\360\000\000m\002n\002\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010%\240^\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\320z{\360\000\000|\001G\002\360\000\000G\002H\002\360\000\000H\002V\002\360\000\000V\002\\\002\360\000\000\\\002f\002\360\000\000f\002l\002\360\000\000l\002n\002\360\000\000n\002o\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\340\010$\240F\250*\260A\330\010\014\210E\220\025\220a\220z\240\021\330\014\033\2301\230F\240!\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t,\2501""\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320o{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002p\002\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\300\021\330\010$\240N\260!\2608\2701\330\010$\240N\260!\2608\2701\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320q}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002_\002\360\000\000_\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002z\002\360\000\000z\002@\003\360\000\000@\003I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003R\003\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\340\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014""\032\230!\2306\240\021\330\010#\2406\250\031\260!\330\010\014\210E\220\025\220a\220z\240\021\330\014\032\230!\2306\240\021\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250l\270,\300b\310\010\320PQ\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320iu\360\000\000v\001B\002\360\000\000B\002C\002\360\000\000C\002N\002\360\000\000N\002O\002\360\000\000O\002]\002\360\000\000]\002f\002\360\000\000f\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002v\002\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+,\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\310\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320my\360\000\000z\001F\002\360\000\000F\002G\002\360\000\000G\002R\002\360\000\000R\002S\002\360\000\000S\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002z\002\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+>\270a\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360""\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\320u|\320|}\360\000\000~\001I\002\360\000\000I\002J\002\360\000\000J\002X\002\360\000\000X\002a\002\360\000\000a\002h\002\360\000\000h\002n\002\360\000\000n\002p\002\360\000\000p\002q\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+@\300\001\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\320x\177\360\000\000@\002A\002\360\000\000A\002L\002\360\000\000L\002M\002\360\000\000M\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002t\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+""B\300!\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320ht\320t}\320}~\360\000\000\177\001J\002\360\000\000J\002K\002\360\000\000K\002Y\002\360\000\000Y\002b\002\360\000\000b\002i\002\360\000\000i\002o\002\360\000\000o\002q\002\360\000\000q\002r\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BT\320Tk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270\\\310\034\320Ua\320am\320m{\320{|\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320my\360\000\000z\001F\002\360\000\000F\002R\002\360\000\000R\002^\002\360\000\000^\002l\002\360\000\000l\002z\002\360\000\000z\002{\002\360\000\000{\002F\003\360\000\000F\003G\003\360\000\000G\003U\003\360\000\000U\003^\003\360\000\000^\003e\003\360\000\000e\003k\003\360\000\000k\003m\003\360\000\000m\003w\003\360\000\000w\003@\004\360\000\000@\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004_\004\360\000\000_\004h\004\360\000\000h\004s\004\360\000\000s\004y\004\360\000\000y\004{\004\360\000\000{\004|\004\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu""\200A\330+B\320BU\320UV\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001B\002\360\000\000B\002J\002\360\000\000J\002K\002\360\000\000K\002V\002\360\000\000V\002W\002\360\000\000W\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002~\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+B\320BX\320Xj\320jk\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\310\t\320QZ\320Z[\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lx\360\000\000y\001B\002\360\000\000B\002K\002\360\000\000K\002S\002\360\000\000S\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002n\002\360\000\000n\002w\002\360\000\000w\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003U\003\360\000\000U\003^\003\360\000\000^\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003}\003\360\000\000}\003F\004\360\000\000F\004R\004\360\000\000R\004X\004\360\000\000X\004Z\004\360\000\000Z\004[\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250o\270\\\310\022\3108\320Sc\320co\320oq\320qy\320yz""\200A\330+B\320B[\320[\\\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270,\300l\320RS\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jv\360\000\000w\001C\002\360\000\000C\002Q\002\360\000\000Q\002R\002\360\000\000R\002]\002\360\000\000]\002^\002\360\000\000^\002l\002\360\000\000l\002u\002\360\000\000u\002|\002\360\000\000|\002B\003\360\000\000B\003D\003\360\000\000D\003N\003\360\000\000N\003W\003\360\000\000W\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330+D\300A\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iu\360\000\000v\001D\002\360\000\000D\002E\002\360\000\000E\002P\002\360\000\000P\002Q\002\360\000\000Q\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002x\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330+D\320D]\320]v\320vw\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q""\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270l\310.\320Xf\320fg\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bn\320nz\360\000\000{\001I\002\360\000\000I\002W\002\360\000\000W\002e\002\360\000\000e\002f\002\360\000\000f\002q\002\360\000\000q\002r\002\360\000\000r\002@\003\360\000\000@\003I\003\360\000\000I\003Q\003\360\000\000Q\003W\003\360\000\000W\003Y\003\360\000\000Y\003c\003\360\000\000c\003l\003\360\000\000l\003t\003\360\000\000t\003z\003\360\000\000z\003|\003\360\000\000|\003}\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250k\270\034\300R\300x\310q\200A\330+E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\014\310A\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320p|\360\000\000}\001I\002\360\000\000I\002J\002\360\000\000J\002U\002\360\000\000U\002V\002\360\000\000V\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002}\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330,E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\035\300a\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320iv\360\000\000w\001E\002\360""\000\000E\002F\002\360\000\000F\002Q\002\360\000\000Q\002R\002\360\000\000R\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002y\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\330-.\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\330\010(\320(9\270\021\270(\300!\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320m{\320{|\360\000\000}\001H\002\360\000\000H\002I\002\360\000\000I\002W\002\360\000\000W\002`\002\360\000\000`\002g\002\360\000\000g\002m\002\360\000\000m\002o\002\360\000\000o\002y\002\360\000\000y\002B\003\360\000\000B\003O\003\360\000\000O\003U\003\360\000\000U\003W\003\360\000\000W\003a\003\360\000\000a\003j\003\360\000\000j\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\320N^\320^j\320jl\320lt\320tu\200A\330-.\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\010\320PV\320VX\320X`\320`l\320lx\320xy\360\000\000z\001E\002\360\000\000E\002F\002\360\000\000F\002T\002\360\000\000T\002]\002\360\000\000]\002d\002\360\000\000d\002j\002\360\000\000j\002l\002\360\000\000l\002m\002\330\010\013\2108\2203\220a\330\014\037""\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-D\320DW\320WX\330\010#\240=\260\001\260\021\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320QR\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300x\310v\320UW\320W_\320_k\320kw\360\000\000x\001D\002\360\000\000D\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240Z\250q\200A\330-E\300Q\330\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300Q\330\010\"\320\"3\2601\260H\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320ju\360\000\000v\001A\002\360\000\000A\002B\002\360\000\000B\002M\002\360\000\000M\002N\002\360\000\000N\002\\\002\360\000\000\\\002e\002\360\000\000e\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002~\002\360\000\000~\002G\003\360\000\000G\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003W\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\330.D\300A\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X""\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Z\300q\330\010\047\240~\260Q\260h\270a\330\010&\240n\260A\260X\270Q\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002V\002\360\000\000V\002a\002\360\000\000a\002b\002\360\000\000b\002m\002\360\000\000m\002n\002\360\000\000n\002|\002\360\000\000|\002B\003\360\000\000B\003N\003\360\000\000N\003T\003\360\000\000T\003V\003\360\000\000V\003`\003\360\000\000`\003f\003\360\000\000f\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003z\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002U\002\360\000\000U\002`\002\360\000\000`\002a\002\360\000\000a\002o\002\360\000\000o\002x\002\360\000\000x\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\047\320""\0478\270\001\270\030\300\021\330\010%\320%6\260a\260x\270q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003X\003\360\000\000X\003a\003\360\000\000a\003k\003\360\000\000k\003q\003\360\000\000q\003s\003\360\000\000s\003t\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]^\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M""\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33001\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002I\003\360\000\000I\003O\003\360\000\000O\003Q\003\360\000\000Q\003[\003\360\000\000[\003d\003\360\000\000d\003q\003\360\000\000q\003w\003\360\000\000w\003y\003\360\000\000y\003C\004\360\000\000C\004L\004\360\000\000L\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250G\260?\300,\310b\320PV\320V]\320]m\320my\320y{\360\000\000|\001B\002\360\000\000B\002I\002\360\000\000I\002J\002\200A\3300F\300a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A""\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002T\002\360\000\000T\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300A\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\300q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002b\002\360\000\000b\002c\002\360\000\000c\002n\002\360\000\000n\002o\002\360\000\000o\002}\002\360\000\000}\002F\003\360\000\000F\003M\003\360\000\000M\003S""\003\360\000\000S\003U\003\360\000\000U\003V\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\3300G\320G`\320`a\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300L\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001G\002\360\000\000G\002S\002\360\000\000S\002_\002\360\000\000_\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fm\320ms\320su\320u}\360\000\000~\001J\002\360\000\000J\002V\002\360\000\000V\002W\002\360\000\000W\002b\002\360\000\000b\002c\002\360\000\000c\002q\002\360\000\000q\002z\002\360\000\000z\002A\003\360\000\000A\003G\003\360\000\000G\003I\003\360\000\000I\003J\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A""\33023\330\010!\240\035\250a\250q\330\010\"\240-\250q\260\001\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320ip\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002e\002\360\000\000e\002f\002\360\000\000f\002t\002\360\000\000t\002}\002\360\000\000}\002D\003\360\000\000D\003J\003\360\000\000J\003L\003\360\000\000L\003M\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2509\260A\200A\33034\330\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310""\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\33034\330\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310\047\320QW\320WY\320Ya\320aj\320jq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002N\002\360\000\000N\002Z\002\360\000\000Z\002[\002\360\000\000[\002f\002\360\000\000f\002g\002\360\000\000g\002u\002\360\000\000u\002~\002\360\000\000~\002E\003\360\000\000E\003K\003\360\000\000K\003M\003\360\000\000M\003N\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\3303I\320I\\\320\\]\330\010!\240\035\250a\250q\330\010$\240M\260\021\260!\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270+\300[\320PQ\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002X\002\360\000\000X\002c\002\360\000\000c\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V""\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250;\260a\200A\3303Q\320Qt\360\000\000u\001T\002\360\000\000T\002v\002\360\000\000v\002Z\003\360\000\000Z\003z\003\360\000\000z\003]\004\360\000\000]\004^\004\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270L\320HY\320Yo\360\000\000p\001B\002\360\000\000B\002W\002\360\000\000W\002n\002\360\000\000n\002A\003\360\000\000A\003B\003\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002W\002\360\000\000W\002h\002\360\000\000h\002~\002\360\000\000~\002P\003\360\000\000P\003e\003\360\000\000e\003|\003\360\000\000|\003O\004\360\000\000O\004e\004\360\000\000e\004f\004\360\000\000f\004q\004\360\000\000q\004r\004\360\000\000r\004@\005\360\000\000@\005I\005\360\000\000I\005P\005\360\000\000P\005V\005\360\000\000V\005X\005\360\000\000X\005Y\005\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33045\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002X\002\360\000\000X\002Y\002\360\000\000Y\002d""\002\360\000\000d\002e\002\360\000\000e\002s\002\360\000\000s\002|\002\360\000\000|\002C\003\360\000\000C\003I\003\360\000\000I\003K\003\360\000\000K\003L\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\3305J\310!\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001H\002\360\000\000H\002V\002\360\000\000V\002_\002\360\000\000_\002`\002\360\000\000`\002k\002\360\000\000k\002l\002\360\000\000l\002z\002\360\000\000z\002C\003\360\000\000C\003J\003\360\000\000J\003P\003\360\000\000P\003R\003\360\000\000R\003S\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002t\002\360\000\000t\002\177\002\360\000\000\177\002@\003\360\000\000@\003N\003\360\000\000N\003W\003\360\000\000W\003^\003\360\000\000^\003d\003\360\000\000d\003f\003\360\000\000f\003g\003\330\010\013""\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003_\003\360\000\000_\003e\003\360\000\000e\003g\003\360\000\000g\003h\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\047\320\0478\270\001\270\030\300\021\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002u\002\360\000\000u\002@\003\360\000\000@\003A\003\360\000\000A\003O\003\360\000\000O\003X\003\360\000\000X\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v""\003\360\000\000v\003\177\003\360\000\000\177\003K\004\360\000\000K\004Q\004\360\000\000Q\004S\004\360\000\000S\004T\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320kl\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002i\002\360\000\000i\002u\002\360\000\000u\002v\002\360\000\000v\002A\003\360\000\000A\003B\003\360\000\000B\003P\003\360\000\000P\003Y\003\360\000\000Y\003`\003\360\000\000`\003f\003\360\000\000f\003h\003\360\000\000h\003i\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002v\002\360\000\000v\002w\002\360\000\000w\002B\003\360\000\000B\003C\003\360\000\000C\003Q""\003\360\000\000Q\003Z\003\360\000\000Z\003a\003\360\000\000a\003g\003\360\000\000g\003i\003\360\000\000i\003j\003\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270A\330\010$\320$5\260Q\260h\270a\330\010%\320%6\260a\260x\270q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002w\002\360\000\000w\002x\002\360\000\000x\002C\003\360\000\000C\003D\003\360\000\000D\003R\003\360\000\000R\003[\003\360\000\000[\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003v\003\360\000\000v\003\177\003\360\000\000\177\003I\004\360\000\000I\004O\004\360\000\000O\004Q\004\360\000\000Q\004R\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270,\300l\320RT\320TZ\320Z_\320_h\320hi\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jo\320ou\320uw\320w\177\360\000\000@\002I\002\360\000\000I\002P\002\360\000\000P\002V\002\360\000\000V""\002X\002\360\000\000X\002`\002\360\000\000`\002l\002\360\000\000l\002x\002\360\000\000x\002y\002\360\000\000y\002D\003\360\000\000D\003E\003\360\000\000E\003S\003\360\000\000S\003\\\003\360\000\000\\\003c\003\360\000\000c\003i\003\360\000\000i\003k\003\360\000\000k\003l\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003d\003\360\000\000d\003j\003\360\000\000j\003l\003\360\000\000l\003m\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\33078\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\270a\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A""\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002y\002\360\000\000y\002z\002\360\000\000z\002E\003\360\000\000E\003F\003\360\000\000F\003T\003\360\000\000T\003]\003\360\000\000]\003i\003\360\000\000i\003o\003\360\000\000o\003q\003\360\000\000q\003{\003\360\000\000{\003D\004\360\000\000D\004Q\004\360\000\000Q\004W\004\360\000\000W\004Y\004\360\000\000Y\004c\004\360\000\000c\004l\004\360\000\000l\004x\004\360\000\000x\004~\004\360\000\000~\004@\005\360\000\000@\005A\005\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307M\320Mb\320bc\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\270\014\300K\310q\330\010\047\320\0478\270\001\270\030\300\021\330\010(\320(9\270\021\270(\300!\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002g\002\360\000\000g\002s\002\360\000\000s\002~\002\360\000\000~\002E\003\360\000\000E\003F\003\360\000\000F\003Q\003\360\000\000Q\003R\003\360\000\000R\003`\003\360\000\000`\003i\003\360\000\000i\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003G\004\360\000\000G\004P\004\360\000\000P\004]\004\360\000\000]\004c\004\360\000\000c\004e\004\360\000\000e\004o\004\360\000\000o\004x\004\360""\000\000x\004D\005\360\000\000D\005J\005\360\000\000J\005L\005\360\000\000L\005M\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270/\310\034\320UW\320W]\320]b\320bk\320k{\360\000\000|\001H\002\360\000\000H\002J\002\360\000\000J\002P\002\360\000\000P\002U\002\360\000\000U\002^\002\360\000\000^\002_\002\200A\3307N\320Ne\320e~\320~\177\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\034\300\\\320Q]\320]^\330\010!\320!2\260!\2608\2701\330\010\047\320\0478\270\001\270\030\300\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002t\002\360\000\000t\002@\003\360\000\000@\003L\003\360\000\000L\003Z\003\360\000\000Z\003[\003\360\000\000[\003f\003\360\000\000f\003g\003\360\000\000g\003u\003\360\000\000u\003~\003\360\000\000~\003D\004\360\000\000D\004J\004\360\000\000J\004L\004\360\000\000L\004V\004\360\000\000V\004_\004\360\000\000_\004k\004\360\000\000k\004q\004\360\000\000q\004s\004\360\000\000s\004t\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270)\300<\310r\320QW\320W\\\320\\e\320ef\200A\3307Q\320QR\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405""\320(?\270q\300\014\310A\330\010(\320(9\270\021\270(\300!\330\010#\240>\260\021\260(\270!\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320mr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002o\002\360\000\000o\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004X\004\360\000\000X\004^\004\360\000\000^\004`\004\360\000\000`\004a\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\320:J\310,\320VX\320X^\320^c\320cl\320lm\200A\3308P\320Ph\320hi\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270M\310\035\320VW\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002x\002\360\000\000x\002E\003\360\000\000E\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003v\003\360\000\000v\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x""\220|\2402\240V\2505\260\t\270\021\200A\3309R\320Rk\320kl\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\270N\310.\320XY\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002y\002\360\000\000y\002G\003\360\000\000G\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004S\004\360\000\000S\004\\\004\360\000\000\\\004d\004\360\000\000d\004j\004\360\000\000j\004l\004\360\000\000l\004m\004\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\320k\177\360\000\000@\002Y\002\360\000\000Y\002Z\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270>\310\036\320We\320es\320st\330\010#\320#4\260A\260X\270Q\330\010#\320#4\260A\260X\270Q\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002j\002\360\000\000j\002x\002\360\000\000x\002F\003\360\000\000F\003T\003\360\000\000T\003b\003\360""\000\000b\003p\003\360\000\000p\003q\003\360\000\000q\003|\003\360\000\000|\003}\003\360\000\000}\003K\004\360\000\000K\004T\004\360\000\000T\004\\\004\360\000\000\\\004b\004\360\000\000b\004d\004\360\000\000d\004n\004\360\000\000n\004w\004\360\000\000w\004\177\004\360\000\000\177\004E\005\360\000\000E\005G\005\360\000\000G\005H\005\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270+\300\\\320QS\320SY\320Y^\320^g\320gh\200A\3309R\320Rk\360\000\000l\001A\002\360\000\000A\002Z\002\360\000\000Z\002[\002\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\036\300~\320Uc\320cq\320qr\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\330\010\037\320\0370\260\001\260\030\270\021\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002v\002\360\000\000v\002D\003\360\000\000D\003R\003\360\000\000R\003`\003\360\000\000`\003n\003\360\000\000n\003o\003\360\000\000o\003z\003\360\000\000z\003{\003\360\000\000{\003I\004\360\000\000I\004R\004\360\000\000R\004V\004\360\000\000V\004\\\004\360\000\000\\\004^\004\360\000\000^\004h\004\360\000\000h\004q\004\360\000\000q\004u\004\360\000\000u\004{\004\360\000\000{\004}\004\360\000\000}\004G\005\360\000\000G\005P\005\360\000\000P\005T\005\360\000\000T\005Z\005\360\000\000Z\005\\\005\360\000\000\\\005]\005\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k""\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250E\260\031\270\047\300\034\310R\310v\320UZ\320Zc\320cj\320jv\320vx\320x~\360\000\000\177\001D\002\360\000\000D\002M\002\360\000\000M\002N\002\200A\330?@\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002e\002\360\000\000e\002m\002\360\000\000m\002s\002\360\000\000s\002u\002\360\000\000u\002}\002\360\000\000}\002I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003y\003\360\000\000y\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330?V\320VW\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\270<\300q\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_h\320hm\320ms\320su\320u}\360\000\000~\001G\002\360\000\000G\002N\002\360\000\000N\002T\002\360\000\000T\002V\002\360\000\000V\002^\002\360\000\000^\002g\002\360\000\000g\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w""\002\177\002\360\000\000\177\002K\003\360\000\000K\003W\003\360\000\000W\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003G\004\360\000\000G\004N\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\300\001\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003[\003\360\000\000[\003\\\003\360\000\000\\\003g\003\360\000\000g\003h\003\360\000\000h\003v\003\360\000\000v\003|\003\360\000\000|\003F\004\360\000\000F\004L\004\360\000\000L\004N\004\360\000\000N\004O\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\300A\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010""\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003_\003\360\000\000_\003`\003\360\000\000`\003k\003\360\000\000k\003l\003\360\000\000l\003z\003\360\000\000z\003@\004\360\000\000@\004J\004\360\000\000J\004P\004\360\000\000P\004R\004\360\000\000R\004S\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\300a\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003a\003\360\000\000a\003b\003\360\000\000b\003m\003\360\000\000m\003n\003\360\000\000n\003|\003\360\000\000|\003B\004\360\000\000B\004L\004\360\000\000L\004R\004\360\000\000R\004T\004\360\000\000T\004U\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a""\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\300q\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003b\003\360\000\000b\003c\003\360\000\000c\003n\003\360\000\000n\003o\003\360\000\000o\003}\003\360\000\000}\003C\004\360\000\000C\004M\004\360\000\000M\004S\004\360\000\000S\004U\004\360\000\000U\004V\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\330AB\330\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\310\001\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003c\003\360\000\000c\003d\003\360\000\000d\003o\003\360\000\000o\003p\003\360\000\000p\003~\003\360\000\000~\003D\004\360\000\000D\004N""\004\360\000\000N\004T\004\360\000\000T\004V\004\360\000\000V\004W\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010\014\210J\220m\2406\250\021\330\010\014\210M\230\024\230Q\330\010\014\210J\220i\230q\240\004\240A\360\006\000\t\r\210O\2309\240F\250!\360\006\000\t\r\320\014\036\230b\240\010\250\001\330\010\014\210O\2301\200A\340\010\020\220\004\220A\330\010\013\2104\210w\220a\220w\230a\330\014\021\220\030\230\021\330\014\021\320\021!\240\021\360\006\000\r\022\220\037\240\013\2501\330\014\021\220\036\230{\250!\330\014\021\220\033\230K\240q\330\014\021\320\021\"\240!\360\006\000\r\022\220\030\230\037\250\001\250\024\250Q\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0270\260\001\260\024\260Y\270a\330\020\035\230T\240\021\240!\330\020\023\2204\220q\320\030(\250\003\2501\330\024\030\230\001\320\031+\320+G\300q\310\001\330\020\025\220\\\240\021\240.\260\001\330\014\021\220\025\220a\320\027(\250\004\250A\360\006\000\r\021\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0273\2601\260D\270\t\300\021\330\020\035\230T\240\021\240!\330\020\025\220[\240\001\240\036\250q\330\014\021\220\025\220a\320\027\047\240t\2501\360\006\000\r\022\220\025\220a\320\027)\250\033\260A\330\014\020\220\005\220V\2301\230E\240\025\240d\250!\2501\330\020\027\320\0271\260\021\260$\260i\270q\330\020\036\230d\240!\2401\330\020\025\220U\230!\230?\250!\250?\270$\270a\270q\330\020\025\220X\230Q\230o\250Q\330\014\021\220\025\220a\320\027)\250\024\250Q\330\010\017\210q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\h\320h""i\320it\320tu\360\000\000v\001D\002\360\000\000D\002M\002\360\000\000M\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002]\002\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]i\320ij\320ju\320uv\360\000\000w\001E\002\360\000\000E\002N\002\360\000\000N\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002^\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^j\320jk\320kv\320vw\360\000\000x\001F\002\360\000\000F\002O\002\360\000\000O\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002_\002\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(:\270!\330\010\"\320\"3\2601\260H\270A\360\006\000\t(\240q\330\010\"\320\"6\260a\260q\270\010\300\t\310\026\310v\320UW\320W_\320_k\320kl\320lw""\320wx\360\000\000y\001G\002\360\000\000G\002P\002\360\000\000P\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002`\002\330\010\013\2108\2203\220a\330\014\037\230q\320 8\270\t\300\034\310Y\320VX\320X_\320_a\320ab\330\010#\240<\250x\260q\270\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`l\320lm\320mx\320xy\360\000\000z\001H\002\360\000\000H\002Q\002\360\000\000Q\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002a\002\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010\"\320\"3\2601\260H\270A\330\010&\320&7\260q\270\010\300\001\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320am\320mn\320ny\320yz\360\000\000{\001I\002\360\000\000I\002R\002\360\000\000R\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002k\002\360\000\000k\002t\002\360\000\000t\002\177\002\360\000\000\177\002E\003\360\000\000E\003G\003\360\000\000G\003H\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250j\270\014\300B\300h\310a\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q""\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\320%6\260a\260x\270q\330\010(\320(9\270\021\270(\300!\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320co\320op\320p{\320{|\360\000\000}\001K\002\360\000\000K\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002p\002\360\000\000p\002y\002\360\000\000y\002F\003\360\000\000F\003L\003\360\000\000L\003N\003\360\000\000N\003O\003\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240h\250m\270<\300r\310\030\320QR\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010\"\320\"3\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dp\320pq\320q|\320|}\360\000\000~\001L\002\360\000\000L\002U\002\360\000\000U\002\\\002\360\000\000\\\002b\002\360\000\000b\002d\002\360\000\000d\002e\002\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320eq\320qr\320r}\320}~\360\000\000\177\001M\002\360\000\000M\002V\002\360\000\000V\002]\002\360\000\000]\002c\002\360\000\000c\002e\002\360\000\000e\002f\002\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330""\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002W\002\360\000\000W\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010\035\230Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fr\320rs\320s~\320~\177\360\000\000@\002N\002\360\000\000N\002T\002\360\000\000T\002^\002\360\000\000^\002d\002\360\000\000d\002f\002\360\000\000f\002g\002\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240X\250Q\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002M\002\360\000\000M\002N\002\360\000\000N\002Y\002\360\000\000Y\002Z\002\360\000\000Z\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003A\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709""\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2507\260!\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fk\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002L\002\360\000\000L\002R\002\360\000\000R\002T\002\360\000\000T\002\\\002\360\000\000\\\002h\002\360\000\000h\002i\002\360\000\000i\002t\002\360\000\000t\002u\002\360\000\000u\002C\003\360\000\000C\003L\003\360\000\000L\003S\003\360\000\000S\003Y\003\360\000\000Y\003[\003\360\000\000[\003\\\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(;\2701\330\010\"\320\"3\2601\260H\270A\360\006\000\t)\250\001\330\010\"\320\"7\260q\270\001\270\030\300\031\310&\320PV\320VX\320X`\320`i\320in\320nt\320tv\320v~\360\000\000\177\001H\002\360\000\000H\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002k\002\360\000\000k\002l\002\360\000\000l\002w\002\360\000\000w\002x\002\360\000\000x\002F\003\360\000\000F\003O\003\360\000\000O\003V\003\360\000\000V\003\\\003\360\000\000\\\003^\003\360\000\000^\003_\003\330\010\013\2108\2203\220a\330\014\037\230q\320 9\270\031\300,\310i\320WY\320Y`\320`b\320bc\330\010$\240M\260\030\270\021\270!\330\010\016\210k\230\027\240\001\330\010""\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002m\002\360\000\000m\002n\002\360\000\000n\002y\002\360\000\000y\002z\002\360\000\000z\002H\003\360\000\000H\003Q\003\360\000\000Q\003X\003\360\000\000X\003^\003\360\000\000^\003`\003\360\000\000`\003a\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\t\270\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010\"\320\"3\2601\260H\270A\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ej\320jp\320pr\320rz\360\000\000{\001D\002\360\000\000D\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002l\002\360\000\000l\002r\002\360\000\000r\002t\002\360\000\000t\002|\002\360\000\000|\002H\003\360\000\000H\003I\003\360\000\000I\003T\003\360\000\000T\003U\003\360\000\000U\003c\003\360\000\000c\003l\003\360\000\000l\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003|\003\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021""\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250I\260Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\006\310f\320TV\320V^\320^g\320gl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002M\002\360\000\000M\002S\002\360\000\000S\002U\002\360\000\000U\002]\002\360\000\000]\002f\002\360\000\000f\002n\002\360\000\000n\002t\002\360\000\000t\002v\002\360\000\000v\002~\002\360\000\000~\002J\003\360\000\000J\003K\003\360\000\000K\003V\003\360\000\000V\003W\003\360\000\000W\003e\003\360\000\000e\003n\003\360\000\000n\003u\003\360\000\000u\003{\003\360\000\000{\003}\003\360\000\000}\003~\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\007\260z\300\021\200A\340\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010#\240=\260\001\260\021\330\010\035\230X\240W\250A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002n\002\360\000\000n\002o\002\360\000\000o\002z\002\360\000\000z\002{\002\360\000\000{\002I\003\360\000\000I\003R\003\360\000\000R\003Y\003\360\000\000Y\003_\003\360\000\000_\003a\003\360\000\000a\003b\003\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709""\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2505\260\n\270!\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\250\017\260q\330\010$\320$5\260Q\260h\270a\330\010$\320$5\260Q\260h\270a\330\010#\320#4\260A\260X\270Q\330\010%\320%6\260a\260x\270q\360\006\000\t%\240A\330\010\"\320\"3\2601\260A\260X\270Y\300f\310F\320RT\320T\\\320\\e\320ek\320kq\320qs\320s{\360\000\000|\001E\002\360\000\000E\002J\002\360\000\000J\002P\002\360\000\000P\002R\002\360\000\000R\002Z\002\360\000\000Z\002c\002\360\000\000c\002j\002\360\000\000j\002p\002\360\000\000p\002r\002\360\000\000r\002z\002\360\000\000z\002F\003\360\000\000F\003G\003\360\000\000G\003R\003\360\000\000R\003S\003\360\000\000S\003a\003\360\000\000a\003j\003\360\000\000j\003s\003\360\000\000s\003y\003\360\000\000y\003{\003\360\000\000{\003E\004\360\000\000E\004N\004\360\000\000N\004W\004\360\000\000W\004]\004\360\000\000]\004_\004\360\000\000_\004i\004\360\000\000i\004r\004\360\000\000r\004z\004\360\000\000z\004@\005\360\000\000@\005B\005\360\000\000B\005L\005\360\000\000L\005U\005\360\000\000U\005_\005\360\000\000_\005e\005\360\000\000e\005g\005\360\000\000g\005h\005\330\010\013\2108\2203\220a\330\014\037\230q\320 5\260Y\270l\310)\320SU\320U\\\320\\^\320^_\330\010 \240\t\250\030\260\021\260!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210y\230\014\240B\240f\250F\260%\260y\300\014\310L\320XZ\320Z`\320`f\320fk\320kt\360\000\000u\001A\002\360\000\000A\002M\002\360\000\000M\002O\002\360\000\000O\002U\002\360\000\000U\002[\002\360\000\000[\002`\002\360\000\000`\002i\002\360\000\000i\002t\002\360\000\000t\002@\003\360\000\000@\003B\003\360\000\000B\003H\003\360\000\000H\003N\003\360\000\000N\003S""\003\360\000\000S\003\\\003\360\000\000\\\003]\003\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f\320fl\320lr\320rt\320t|\360\000\000}\001F\002\360\000\000F\002K\002\360\000\000K\002Q\002\360\000\000Q\002S\002\360\000\000S\002[\002\360\000\000[\002d\002\360\000\000d\002k\002\360\000\000k\002q\002\360\000\000q\002s\002\360\000\000s\002{\002\360\000\000{\002G\003\360\000\000G\003H\003\360\000\000H\003S\003\360\000\000S\003T\003\360\000\000T\003b\003\360\000\000b\003k\003\360\000\000k\003r\003\360\000\000r\003x\003\360\000\000x\003z\003\360\000\000z\003{\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(<\270A\330\010%\240^\2601\260H\270A\360\006\000\t*\250\021\330\010\"\320\"8\270\001\270\021\270(\300)\3106\320QW\320WY\320Ya\320aj\320jp\320pv\320vx\360\000\000y\001A\002\360\000\000A\002J\002\360\000\000J\002O\002\360\000\000O\002U\002\360\000\000U\002W\002\360\000\000W\002_\002\360\000\000_\002h\002\360\000\000h\002o\002\360\000\000o\002u\002\360\000\000u\002w\002\360\000\000w\002\177\002\360\000\000\177\002K\003\360\000\000K\003L\003\360\000\000L\003W\003\360\000\000W\003X\003\360\000\000X\003f\003\360\000\000f\003l\003\360\000\000l\003v\003\360\000\000v\003|\003\360\000\000|\003~\003\360\000""\000~\003\177\003\330\010\013\2108\2203\220a\330\014\037\230q\320 :\270)\300<\310y\320XZ\320Za\320ac\320cd\330\010%\240^\2608\2701\270A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(=\270Q\330\010\"\320\"3\2601\260H\270A\360\006\000\t+\250!\330\010\"\320\"9\270\021\270!\2708\3009\310F\320RX\320XZ\320Zb\320bk\320kq\320qw\320wy\360\000\000z\001B\002\360\000\000B\002K\002\360\000\000K\002P\002\360\000\000P\002V\002\360\000\000V\002X\002\360\000\000X\002`\002\360\000\000`\002i\002\360\000\000i\002p\002\360\000\000p\002v\002\360\000\000v\002x\002\360\000\000x\002@\003\360\000\000@\003L\003\360\000\000L\003M\003\360\000\000M\003X\003\360\000\000X\003Y\003\360\000\000Y\003g\003\360\000\000g\003p\003\360\000\000p\003w\003\360\000\000w\003}\003\360\000\000}\003\177\003\360\000\000\177\003@\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ;\2709\300L\320PY\320Y[\320[b\320bd\320de\330\010&\240o\260X\270Q\270a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(>\270a\330\010%\240^\2601\260H\270A\360\006\000\t,\2501\330\010\"\320\":\270!\2701\270H\300I\310V\320SY\320Y[\320[c\320cl\320lr\320rx\320xz\360\000\000{\001C\002\360\000\000C\002L\002\360\000\000L\002Q\002\360\000\000Q\002W\002\360\000\000W\002Y\002\360\000\000Y\002a\002\360\000\000a\002j\002\360\000\000j\002q\002\360\000\000q\002w\002\360\000\000w\002y\002\360\000\000y\002A\003\360""\000\000A\003M\003\360\000\000M\003N\003\360\000\000N\003Y\003\360\000\000Y\003Z\003\360\000\000Z\003h\003\360\000\000h\003n\003\360\000\000n\003x\003\360\000\000x\003~\003\360\000\000~\003@\004\360\000\000@\004A\004\330\010\013\2108\2203\220a\330\014\037\230q\320 <\270I\300\\\320QZ\320Z\\\320\\c\320ce\320ef\330\010\047\320\0477\260x\270q\300\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(?\270q\330\010%\240^\2601\260H\270A\360\006\000\t-\250A\330\010\"\320\";\2701\270A\270X\300Y\310f\320TZ\320Z\\\320\\d\320dm\320ms\320sy\320y{\360\000\000|\001D\002\360\000\000D\002M\002\360\000\000M\002R\002\360\000\000R\002X\002\360\000\000X\002Z\002\360\000\000Z\002b\002\360\000\000b\002k\002\360\000\000k\002r\002\360\000\000r\002x\002\360\000\000x\002z\002\360\000\000z\002B\003\360\000\000B\003N\003\360\000\000N\003O\003\360\000\000O\003Z\003\360\000\000Z\003[\003\360\000\000[\003i\003\360\000\000i\003o\003\360\000\000o\003y\003\360\000\000y\003\177\003\360\000\000\177\003A\004\360\000\000A\004B\004\330\010\013\2108\2203\220a\330\014\037\230q\320 =\270Y\300l\320R[\320[]\320]d\320df\320fg\330\010(\320(9\270\030\300\021\300!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(@\300\001\330\010%\240^\2601\260H\270A\360\006\000\t.\250Q\330\010\"\320\"<\270A\270Q\270h\300i\310v\320U[\320[]\320]e\320en\320nt\320tz\320z|\360\000\000}\001E\002\360""\000\000E\002N\002\360\000\000N\002S\002\360\000\000S\002Y\002\360\000\000Y\002[\002\360\000\000[\002c\002\360\000\000c\002l\002\360\000\000l\002s\002\360\000\000s\002y\002\360\000\000y\002{\002\360\000\000{\002C\003\360\000\000C\003O\003\360\000\000O\003P\003\360\000\000P\003[\003\360\000\000[\003\\\003\360\000\000\\\003j\003\360\000\000j\003p\003\360\000\000p\003z\003\360\000\000z\003@\004\360\000\000@\004B\004\360\000\000B\004C\004\330\010\013\2108\2203\220a\330\014\037\230q\320 >\270i\300|\320S\\\320\\^\320^e\320eg\320gh\330\010)\320);\2708\3001\300A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(A\300\021\330\010%\240^\2601\260H\270A\360\006\000\t/\250a\330\010\"\320\"=\270Q\270a\270x\300y\320PV\320V\\\320\\^\320^f\320fo\320ou\320u{\320{}\360\000\000~\001F\002\360\000\000F\002O\002\360\000\000O\002T\002\360\000\000T\002Z\002\360\000\000Z\002\\\002\360\000\000\\\002d\002\360\000\000d\002m\002\360\000\000m\002t\002\360\000\000t\002z\002\360\000\000z\002|\002\360\000\000|\002D\003\360\000\000D\003P\003\360\000\000P\003Q\003\360\000\000Q\003\\\003\360\000\000\\\003]\003\360\000\000]\003k\003\360\000\000k\003q\003\360\000\000q\003{\003\360\000\000{\003A\004\360\000\000A\004C\004\360\000\000C\004D\004\330\010\013\2108\2203\220a\330\014\037\230q\320 ?\270y\310\014\320T]\320]_\320_f\320fh\320hi\330\010*\320*=\270X\300Q\300a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o""\250Q\250h\260a\330\010\034\230G\2405\320(B\300!\330\010%\240^\2601\260H\270A\360\006\000\t0\250q\330\010\"\320\">\270a\270q\300\010\310\t\320QW\320W]\320]_\320_g\320gp\320pv\320v|\320|~\360\000\000\177\001G\002\360\000\000G\002P\002\360\000\000P\002U\002\360\000\000U\002[\002\360\000\000[\002]\002\360\000\000]\002e\002\360\000\000e\002n\002\360\000\000n\002u\002\360\000\000u\002{\002\360\000\000{\002}\002\360\000\000}\002E\003\360\000\000E\003Q\003\360\000\000Q\003R\003\360\000\000R\003]\003\360\000\000]\003^\003\360\000\000^\003l\003\360\000\000l\003r\003\360\000\000r\003|\003\360\000\000|\003B\004\360\000\000B\004D\004\360\000\000D\004E\004\330\010\013\2108\2203\220a\330\014\037\230q\320 @\300\t\310\034\320U^\320^`\320`g\320gi\320ij\330\010+\320+?\270x\300q\310\001\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(C\3001\330\010%\240^\2601\260H\270A\360\006\000\t1\260\001\330\010\"\320\"?\270q\300\001\300\030\310\031\320RX\320X^\320^`\320`h\320hq\320qw\320w}\320}\177\360\000\000@\002H\002\360\000\000H\002Q\002\360\000\000Q\002V\002\360\000\000V\002\\\002\360\000\000\\\002^\002\360\000\000^\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002F\003\360\000\000F\003R\003\360\000\000R\003S\003\360\000\000S\003^\003\360\000\000^\003_\003\360\000\000_\003m\003\360\000\000m\003s\003\360\000\000s\003}\003\360\000\000}\003C\004\360\000\000C\004E\004\360\000\000E\004F\004\330\010\013\2108\2203\220a\330\014\037\230q\320 A\300\031\310,\320V_\320_a\320ah\320hj\320jk\330\010,\320,A\300\030\310\021\310!\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260""\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(D\300A\330\010%\240^\2601\260H\270A\360\006\000\t2\260\021\330\010\"\320\"@\300\001\300\021\300(\310)\320SY\320Y_\320_a\320ai\320ir\320rx\320x~\360\000\000\177\001A\002\360\000\000A\002I\002\360\000\000I\002R\002\360\000\000R\002W\002\360\000\000W\002]\002\360\000\000]\002_\002\360\000\000_\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002G\003\360\000\000G\003S\003\360\000\000S\003T\003\360\000\000T\003_\003\360\000\000_\003`\003\360\000\000`\003n\003\360\000\000n\003t\003\360\000\000t\003~\003\360\000\000~\003D\004\360\000\000D\004F\004\360\000\000F\004G\004\330\010\013\2108\2203\220a\330\014\037\230q\320 B\300)\310<\320W`\320`b\320bi\320ik\320kl\330\010-\320-C\3008\3101\310A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(E\300Q\330\010%\240^\2601\260H\270A\360\006\000\t3\260!\330\010\"\320\"A\300\021\300!\3008\3109\320TZ\320Z`\320`b\320bj\320js\320sy\320y\177\360\000\000@\002B\002\360\000\000B\002J\002\360\000\000J\002S\002\360\000\000S\002X\002\360\000\000X\002^\002\360\000\000^\002`\002\360\000\000`\002h\002\360\000\000h\002q\002\360\000\000q\002x\002\360\000\000x\002~\002\360\000\000~\002@\003\360\000\000@\003H\003\360\000\000H\003T\003\360\000\000T\003U\003\360\000\000U\003`\003\360\000\000`\003a\003\360\000\000a\003o\003\360\000\000o\003u\003\360\000\000u\003\177\003\360\000\000\177\003E\004\360\000""\000E\004G\004\360\000\000G\004H\004\330\010\013\2108\2203\220a\330\014\037\230q\320 C\3009\310L\320Xa\320ac\320cj\320jl\320lm\330\010.\320.E\300X\310Q\310a\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(F\300a\330\010%\240^\2601\260H\270A\360\006\000\t4\2601\330\010\"\320\"B\300!\3001\300H\310I\320U[\320[a\320ac\320ck\320kt\320tz\360\000\000{\001A\002\360\000\000A\002C\002\360\000\000C\002K\002\360\000\000K\002T\002\360\000\000T\002Y\002\360\000\000Y\002_\002\360\000\000_\002a\002\360\000\000a\002i\002\360\000\000i\002r\002\360\000\000r\002y\002\360\000\000y\002\177\002\360\000\000\177\002A\003\360\000\000A\003I\003\360\000\000I\003U\003\360\000\000U\003V\003\360\000\000V\003a\003\360\000\000a\003b\003\360\000\000b\003p\003\360\000\000p\003v\003\360\000\000v\003@\004\360\000\000@\004F\004\360\000\000F\004H\004\360\000\000H\004I\004\330\010\013\2108\2203\220a\330\014\037\230q\320 D\300I\310\\\320Yb\320bd\320dk\320km\320mn\330\010/\320/G\300x\310q\320PQ\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(G\300q\330\010%\240^\2601\260H\270A\360\006\000\t5\260A\330\010\"\320\"C\3001\300A\300X\310Y\320V\\\320\\b\320bd\320dl\320lu\320u{\360\000\000|\001B\002\360\000\000B\002D\002\360\000\000D\002L\002\360\000\000L\002U\002\360\000\000U\002Z\002\360\000\000Z\002`\002\360\000\000`\002b\002\360\000\000b\002j\002\360\000\000j\002s\002\360""\000\000s\002z\002\360\000\000z\002@\003\360\000\000@\003B\003\360\000\000B\003J\003\360\000\000J\003V\003\360\000\000V\003W\003\360\000\000W\003b\003\360\000\000b\003c\003\360\000\000c\003q\003\360\000\000q\003w\003\360\000\000w\003A\004\360\000\000A\004G\004\360\000\000G\004I\004\360\000\000I\004J\004\330\010\013\2108\2203\220a\330\014\037\230q\320 E\300Y\310l\320Zc\320ce\320el\320ln\320no\330\0100\3200I\310\030\320QR\320RS\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010!\240\035\250a\250q\330\010 \240\r\250Q\250a\330\010\"\240-\250q\260\001\330\010\035\230X\240X\250W\260A\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(H\310\001\330\010%\240^\2601\260H\270A\360\006\000\t6\260Q\330\010\"\320\"D\300A\300Q\300h\310i\320W]\320]c\320ce\320em\320mv\320v|\360\000\000}\001C\002\360\000\000C\002E\002\360\000\000E\002M\002\360\000\000M\002V\002\360\000\000V\002[\002\360\000\000[\002a\002\360\000\000a\002c\002\360\000\000c\002k\002\360\000\000k\002t\002\360\000\000t\002{\002\360\000\000{\002A\003\360\000\000A\003C\003\360\000\000C\003K\003\360\000\000K\003W\003\360\000\000W\003X\003\360\000\000X\003c\003\360\000\000c\003d\003\360\000\000d\003r\003\360\000\000r\003x\003\360\000\000x\003B\004\360\000\000B\004H\004\360\000\000H\004J\004\360\000\000J\004K\004\330\010\013\2108\2203\220a\330\014\037\230q\320 F\300i\310|\320[d\320df\320fm\320mo\320op\330\0101\3201K\3108\320ST\320TU\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\2506\260\025\260i\270q\200A\340\010!\240\035\250a\250q\330\010#\240=\260\001\260\021\330\010\035\230X\240Q\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300v\310V\320SU\320U]\320]f""\320fn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240V\250:\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320gn\320nt\320tv\320v~\360\000\000\177\001K\002\360\000\000K\002L\002\360\000\000L\002W\002\360\000\000W\002X\002\360\000\000X\002f\002\360\000\000f\002o\002\360\000\000o\002v\002\360\000\000v\002|\002\360\000\000|\002~\002\360\000\000~\002\177\002\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010\"\240-\250q\260\001\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(9\270\021\330\010\"\320\"3\2601\260H\270A\360\006\000\t\047\240a\330\010\"\320\"5\260Q\260a\260x\270y\310\007\310v\320UW\320W_\320_h\320ho\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 7\260y\300\014\310I\320UW\320W^\320^`\320`a\330\010\"\240+\250X\260Q\260a\330\010\016\210k\230\027""\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250I\260Q\200A\340\010\"\240-\250q\260\001\330\010#\240=\260\001\260\021\330\010\035\230Y\240a\330\010\"\240,\250a\250q\330\010\032\230,\240a\240x\250q\330\010\036\230o\250Q\250h\260a\330\010\034\230G\2405\320(8\270\001\330\010\"\320\"3\2601\260H\270A\360\006\000\t&\240Q\330\010\"\320\"4\260A\260Q\260h\270i\300w\310f\320TV\320V^\320^g\320go\320ou\320uw\320w\177\360\000\000@\002L\002\360\000\000L\002M\002\360\000\000M\002X\002\360\000\000X\002Y\002\360\000\000Y\002g\002\360\000\000g\002p\002\360\000\000p\002w\002\360\000\000w\002}\002\360\000\000}\002\177\002\360\000\000\177\002@\003\330\010\013\2108\2203\220a\330\014\037\230q\320 6\260i\270|\3109\320TV\320V]\320]_\320_`\330\010!\240\032\2508\2601\260A\330\010\016\210k\230\027\240\001\330\010\016\210k\230\021\330\010\017\210x\220|\2402\240W\250J\260a\200A\360\010\000\t\021\220\004\220A\330\010\013\320\013\035\230W\240A\330\014\020\220\n\230!\2305\240\017\250q\330\014\023\2205\230\r\240V\2501\340\014\023\2205\230\r\240U\250!\200A\360\010\000\t\021\220\004\220A\330\010\014\210L\320\030(\250\013\2606\270\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\330\010\r\320\r\036\230a\200A\360\010\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210M\230\025\230a\330\014\017\210q\220\r\230T\320!7\260q\270\001\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\020\220\005\220[\240\001\240\033\250A\250Q\330\010\013\2106\220\023\220A\330\014\024\220E\230\033\240A\240[\260\001\260\021\330\010\017\210q\200A\360\010\000\t\021\220\004\220A\330\010\026\220a\340\010\014\210G\2201\330\014\017\210t\2203\220e\2301\330\020\030\230\006\230a\230q\330\020\023\2204\320\027/\250q\260\005\260Q\330\024\031\230\033\240A\240T\250\021\250+\260V\2701\270A\330\024\"\240!\330\021\025\220S\230\005\230Q\330\020\025\220\\\240\021\240$\240a\320\0479\270\026\270q\300\001\330\020\025\220U\230!\230>\250\021\250\047\260\026""\260q\270\001\340\010\013\2101\330\014\031\230\021\330\014\017\210t\320\023$\240A\240T\250\021\250!\330\020\035\230Q\330\014\017\210s\220!\2206\230\022\2301\330\020\024\220C\220~\240Y\250a\250u\260A\330\024\031\230\021\330\024\027\220r\230\022\2303\230a\230q\330\030 \240\004\240A\240Q\330\030\033\2304\320\0377\260q\270\014\300A\330\034!\240\033\250A\250[\270\001\270\033\300A\330\034*\250!\340\010\013\2105\220\003\2201\330\014\017\210q\330\020\025\220U\230!\320\033+\2504\250q\330\014\021\320\021\"\240!\200A\360\n\000\t\017\210d\220(\230(\240%\240q\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\017\210q\200A\360\n\000\t\020\210t\2208\2305\240\001\240\021\200A\360\n\000\t\020\210t\2208\2305\240\001\240\037\260\005\260Q\200A\360\n\000\t\020\210t\2208\2305\240\005\240Q\200A\360\n\000\t\021\220\004\220A\330\010\016\210k\230\021\330\010\014\210N\230%\230q\330\014\017\210q\220\016\230e\240<\250q\260\013\2701\270A\330\010\017\210q\200A\360\014\000\t\021\220\004\220A\340\010\021\320\021&\240a\240t\2501\330\010\014\210C\210}\230I\240Q\240e\2501\330\014\024\220D\320\030.\250a\250q\330\014\024\220E\230\033\240A\240Z\250q\260\001\330\014\017\210v\220V\320\0332\260#\260V\2706\300\021\330\020)\250\021\250(\260#\260Q\330\021\027\220v\320\0357\260s\270&\300\006\300a\330\020,\250A\250X\260S\270\001\340\010\023\320\023#\2401\240A\330\010\034\230A\230Q\330\010\017\210q\200A\360\016\000\t\021\220\004\220A\330\010\013\2104\210u\220A\330\014\020\320\020 \240\001\330\010\016\210e\2208\2307\240!\330\010\013\2104\210z\230\021\230%\230q\330\014\022\220$\220a\220q\330\010\013\320\013\035\230W\240E\250\021\330\020\032\230!\2305\240\017\250q\330\014\024\220E\230\035\240a\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250\021\250$\250f\260A\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)/\250q\330)1\260\024\260Q\330\r\037\230w\240e\2501\330\020\032\230!\2305\240\017\250q\330\014\017\210s\220!\2205\230\003\2301\330\020\027\220~\240Q\240c\250""\021\250!\340\020\027\320\027(\250\001\250\025\250m\2701\270A\330)0\260\004\260A\340\014\023\2203\220a\220v\230S\240\001\240\025\240c\250\027\260\001\200A\360\016\000\t\021\220\004\220A\340\010\033\2302\230\\\250\025\250k\270\021\270+\300Q\300a\330\034 \240\016\250e\260;\270e\3001\330\010#\2402\240S\250\005\250\\\270\021\270\"\270A\270Q\330$(\250\005\250U\260!\360\006\000\t\020\210t\2201\220A\330\010\027\220q\330\010#\2404\320\047B\300!\330\010\013\2105\220\004\220D\230\n\240!\2404\240q\250\004\250A\330\014\020\220\003\2207\230)\2401\240A\330\020\023\2204\220z\240\021\240%\240q\330\024\025\340\020\021\330\024 \240\001\320!9\270\021\270&\300\001\330\027\030\330\024\032\320\032G\300q\330\030\033\2301\230A\330\030\034\230E\240\021\240!\330\024\032\230)\2401\240A\340\010\013\320\013\035\230W\240A\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\021\330\r\037\230w\240a\330\020\024\220J\230a\230u\240O\2601\330\014\047\240u\250M\270\031\300!\340\014\047\240t\2504\250q\260\005\260Q\340\010\013\2103\210a\210~\230S\240\003\2401\240A\330\014\020\320\020!\240\021\240!\330\014\023\2204\220q\230\003\2301\230A\330\r\020\220\001\220\036\230t\320#<\270A\330\020\024\220C\220q\230\006\230c\240\024\240Z\250q\260\004\260A\260T\270\021\330\014\022\320\022A\300\021\330\020\023\2201\220A\330\020\024\220E\230\021\230!\330\014\022\220)\2301\230A\340\010\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\340\010\017\210t\2201\200A\3602\000\t\021\220\004\220A\330\010\013\210:\220Q\220n\240A\330\014\033\2301\330\014\020\220\007\220t\320\0336\260a\330\020\023\320\023%\240W\250A\330\024\030\230\n\240!\240>\260\021\330\024\036\230d\240\047\250\034\260Q\340\024\036\230d\240\047\250\021\330\020\023\2201\330\024 \240\007""\240q\250\001\330\014\017\210s\220!\220>\240\023\240A\330\020\025\320\025%\240Q\330\020\025\320\025&\240a\330\020\027\220q\340\020\026\220i\230q\240\001\330/6\260c\270\021\270.\310\002\310!\3309:\33004\260E\270\021\270!\330\010\017\210q\200N\220!\360\016\000\t\014\2101\330\014\020\320\020!\240\021\240!\330\010\014\320\014\034\230A\330\010\017\210t\2201\320\004\035\230Q\360\010\000\t\021\220\004\220A\330\010\025\220[\240\003\2401\330\010\022\220\047\230\021\230!\330\010\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED @@ -349115,1007 +353728,1007 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { { const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 142}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AC, __pyx_mstate->__pyx_kp_b_iso88591_UUmmn_aq_Qa_6_8_T_3a_U_7_A_we_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AC, __pyx_mstate->__pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_8_T_3a_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 176}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 178}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACCBANDS, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 215}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 219}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ACOS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 244}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 250}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_8_T_3hjX_eeo, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 284}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADD, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_8_U_E_U_7_A_we_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 307}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 317}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADOSC, __pyx_mstate->__pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 342}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 354}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_wc_A_8_T_3a_U_7_A_we_2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 374}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 388}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADX, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADX, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 407}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 423}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ADXR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 440}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 458}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AO, __pyx_mstate->__pyx_kp_b_iso88591_UUV_aq_Qa_6_8_T_3a_U_7_A_we_M_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AO, __pyx_mstate->__pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_8_T_3a_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 473}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 493}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_APO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_APO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_8_T_U_7_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 506}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 528}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outaroondown, __pyx_mstate->__pyx_n_u_outaroonup}; - __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROON, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_8_T_3a_U_7_A_we_Rq_AX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROON, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_8_T_3a_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 541}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 565}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AROONOSC, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_8_T_3a_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 573}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 599}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ASIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 602}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 630}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 631}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 661}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATR, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ATR, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 664}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 696}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_q_2T_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGDEV, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_b_q_2T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 695}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 729}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_AVGPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_8_T_4xzY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 727}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 763}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdevup, __pyx_mstate->__pyx_n_u_nbdevdn, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_VVmmn4_aq_T_q_8_T_U_7_A_we_b_Zz, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BBANDS, __pyx_mstate->__pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 767}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 805}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BETA, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_Kq_7_8_U_E_U_7_A_we_Ba_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BETA, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_8_U_E_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 800}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 840}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_BOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_8_T_4xzY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 832}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 874}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CCI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CCI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 865}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 909}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 897}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 943}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3BLACKCROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 929}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 977}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3INSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 961}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1011}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3LINESTRIKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 993}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1045}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[38] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3OUTSIDE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[38])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1025}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1079}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[39] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3STARSINSOUTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[39])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1057}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1113}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[40] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDL3WHITESOLDIERS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[40])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1089}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1147}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[41] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLABANDONEDBABY, __pyx_mstate->__pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[41])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1123}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1183}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[42] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLADVANCEBLOCK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[42])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1155}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1217}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[43] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBELTHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[43])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1187}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1251}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[44] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLBREAKAWAY, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[44])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1219}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1285}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[45] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCLOSINGMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[45])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1251}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1319}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[46] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCONCEALBABYSWALL, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[46])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1283}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1353}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[47] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLCOUNTERATTACK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[47])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1315}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1387}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[48] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDARKCLOUDCOVER, __pyx_mstate->__pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[48])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1349}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1423}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[49] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[49])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1381}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1457}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[50] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[50])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1413}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1491}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[51] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLDRAGONFLYDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[51])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1445}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1525}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[52] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLENGULFING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[52])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1477}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1559}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[53] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[53])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1511}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1595}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[54] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLEVENINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[54])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1545}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1631}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[55] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGAPSIDESIDEWHITE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[55])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1577}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1665}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[56] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLGRAVESTONEDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[56])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1609}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1699}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[57] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[57])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1641}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1733}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[58] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHANGINGMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[58])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1673}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1767}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[59] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[59])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1705}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1801}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[60] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHARAMICROSS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[60])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1737}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1835}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[61] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIGHWAVE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[61])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1769}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1869}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[62] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[62])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1801}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1903}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_14, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[63] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHIKKAKEMOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[63])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1833}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1937}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[64] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLHOMINGPIGEON, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[64])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1865}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1971}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[65] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLIDENTICAL3CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[65])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1897}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2005}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[66] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[66])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1929}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2039}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[67] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLINVERTEDHAMMER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[67])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1961}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2073}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[68] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[68])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1993}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2107}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[69] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLKICKINGBYLENGTH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[69])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2025}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2141}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[70] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLADDERBOTTOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[70])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2057}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2175}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[71] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLEGGEDDOJI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[71])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2089}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2209}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[72] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLLONGLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[72])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2121}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2243}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[73] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMARUBOZU, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[73])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2153}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2277}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[74] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATCHINGLOW, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[74])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2185}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2311}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_15, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[75] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMATHOLD, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_13, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[75])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2219}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2347}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[76] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGDOJISTAR, __pyx_mstate->__pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[76])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2253}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2383}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_penetration, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_8_T_4xzY_d, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[77] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLMORNINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[77])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2287}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2419}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[78] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLONNECK, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[78])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2319}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2453}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[79] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLPIERCING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[79])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2351}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2487}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[80] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRICKSHAWMAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[80])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2383}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2521}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[81] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLRISEFALL3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[81])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2415}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2555}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[82] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSEPARATINGLINES, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[82])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2447}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2589}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[83] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHOOTINGSTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[83])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2479}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2623}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[84] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSHORTLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[84])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2511}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2657}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[85] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSPINNINGTOP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[85])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2543}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2691}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[86] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTALLEDPATTERN, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[86])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2575}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2725}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[87] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLSTICKSANDWICH, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[87])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2607}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2759}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[88] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTAKURI, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[88])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2639}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2793}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[89] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTASUKIGAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[89])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2671}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2827}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[90] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTHRUSTING, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[90])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2703}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2861}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[91] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLTRISTAR, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[91])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2735}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2895}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[92] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUNIQUE3RIVER, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[92])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2767}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2929}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_11, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[93] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLUPSIDEGAP2CROWS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[93])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2799}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2963}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddnns_12, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[94] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CDLXSIDEGAP3METHODS, __pyx_mstate->__pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_8_T_4xzY_10, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[94])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2831}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2997}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[95] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CEIL, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[95])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2860}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3028}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMF, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[96] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMF, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[96])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2894}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3064}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[97] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[97])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2925}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3097}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMOU, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[98] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CMOU, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[98])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2956}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3130}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_wmaperiod, __pyx_mstate->__pyx_n_u_roc1period, __pyx_mstate->__pyx_n_u_roc2period, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COPPOCK, __pyx_mstate->__pyx_kp_b_iso88591_WWX_aq_T_q_8_T_U_7_A_we_r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[99] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COPPOCK, __pyx_mstate->__pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_8_T_U_7_A_we_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[99])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 2989}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3165}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_DE_Kq_Kq_7_8_U_E_U_7_A_we_b_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[100] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CORREL, __pyx_mstate->__pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_8_U_E_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[100])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3022}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3200}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[101] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COS, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[101])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3051}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3231}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[102] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_COSH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[102])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3080}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3262}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CUMSUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_a_q_2T_T_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[103] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CUMSUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_a_q_2T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[103])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3109}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3293}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_rocperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CVI, __pyx_mstate->__pyx_kp_b_iso88591_VVW_aq_Qa_6_8_T_3a_U_7_A_we_2_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[104] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_CVI, __pyx_mstate->__pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_8_T_3a_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[104])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3142}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3328}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[105] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[105])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3173}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3361}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[106] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DIV, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_8_U_E_U_7_A_we_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[106])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3204}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3394}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DONCHIAN, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_Rt, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[107] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DONCHIAN, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[107])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3242}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3434}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DPO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[108] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DPO, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[108])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3273}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3467}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DX, __pyx_mstate->__pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[109] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_DX, __pyx_mstate->__pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[109])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3306}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3502}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EFI, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_7_8_U_F_U_7_A_we_2Q_q_i_v, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[110] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EFI, __pyx_mstate->__pyx_kp_b_iso88591_BC_Kq_7_wc_A_8_U_F_U_7_A_we_2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[110])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3338}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3536}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[111] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[111])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3369}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3569}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ER, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_r_Yk_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[112] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ER, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[112])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3400}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3602}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outbullpower, __pyx_mstate->__pyx_n_u_outbearpower}; - __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ERI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[113] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ERI, __pyx_mstate->__pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_8_T_3hj, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[113])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3436}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3640}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[114] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_EXP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[114])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3465}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3671}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[115] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FLOOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Q_q_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[115])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3494}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3702}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FOSC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[116] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FOSC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[116])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3525}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3735}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_leftbars, __pyx_mstate->__pyx_n_u_rightbars, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outswinghigh, __pyx_mstate->__pyx_n_u_outswinglow}; - __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FRACTAL, __pyx_mstate->__pyx_kp_b_iso88591_BXXY_aq_Qa_6_8_T_3a_U_7_A_we_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[117] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_FRACTAL, __pyx_mstate->__pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_8_T_3a_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[117])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3561}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3773}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outhaopen, __pyx_mstate->__pyx_n_u_outhahigh, __pyx_mstate->__pyx_n_u_outhalow, __pyx_mstate->__pyx_n_u_outhaclose}; - __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HA, __pyx_mstate->__pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_8_T_4xzY_ddn, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[118] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HA, __pyx_mstate->__pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[118])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3602}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3816}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[119] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[119])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3633}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3849}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_31_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[120] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPERIOD, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_31_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[120])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3662}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3880}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2_q_r_Yk_V1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[121] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_DCPHASE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2_q_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[121])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3691}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3911}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinphase, __pyx_mstate->__pyx_n_u_outquadrature}; - __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_81_Qha_b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[122] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_PHASOR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_8_T_U_7_A_we_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[122])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3723}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3945}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsine, __pyx_mstate->__pyx_n_u_outleadsine}; - __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_q_1HA_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[123] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_SINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_8_T_U_7_A_we_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[123])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3755}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3979}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[124] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDLINE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_4A_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[124])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3784}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4010}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger}; - __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_4A_q_4y_4vQ_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[125] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_HT_TRENDMODE, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_8_T_U_7_A_we_4A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[125])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3813}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4041}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Kq_6_8_T_5_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[126] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_IMI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_8_T_5_U_7_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[126])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3845}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4075}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[127] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KAMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[127])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3876}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4108}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_atrperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outrealupperband, __pyx_mstate->__pyx_n_u_outrealmiddleband, __pyx_mstate->__pyx_n_u_outreallowerband}; - __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KC, __pyx_mstate->__pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_8_T_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[128] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KC, __pyx_mstate->__pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[128])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3917}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4151}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outk, __pyx_mstate->__pyx_n_u_outd, __pyx_mstate->__pyx_n_u_outj}; - __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KDJ, __pyx_mstate->__pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[129] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_KDJ, __pyx_mstate->__pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[129])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3960}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4196}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_1_q_b_I_F, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[130] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_1_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[130])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3991}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4229}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[131] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_ANGLE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_wc_A_8_T_U_7_A_we_7r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[131])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4022}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4262}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_45_aq_T_q_8_T_U_7_A_we_2Q_q_i_f, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[132] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_INTERCEPT, __pyx_mstate->__pyx_kp_b_iso88591_45_aq_T_q_wc_A_8_T_U_7_A_we_2Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[132])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4053}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4295}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_8_T_U_7_A_we_7r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[133] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LINEARREG_SLOPE, __pyx_mstate->__pyx_kp_b_iso88591_01_aq_T_q_wc_A_8_T_U_7_A_we_7r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[133])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4084}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4328}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_q_r_Yk_V1IQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[134] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_q_r_Yk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[134])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4113}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4359}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Q_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[135] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_LOG10, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Q_q_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[135])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4142}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4390}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MA, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[136] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MA, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_wc_A_8_T_U_7_A_we_M_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[136])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4174}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4424}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACD, __pyx_mstate->__pyx_kp_b_iso88591_UUV2_aq_T_q_8_T_U_7_A_we_Bm_q_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[137] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACD, __pyx_mstate->__pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[137])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4213}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4465}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_fastmatype, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_slowmatype, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_signalmatype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_8_T_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[138] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDEXT, __pyx_mstate->__pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[138])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4255}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4509}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmacd, __pyx_mstate->__pyx_n_u_outmacdsignal, __pyx_mstate->__pyx_n_u_outmacdhist}; - __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Qha_1HA, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[139] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MACDFIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_8_T_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[139])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4292}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4548}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastlimit, __pyx_mstate->__pyx_n_u_slowlimit, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmama, __pyx_mstate->__pyx_n_u_outfama}; - __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_8_T_U_7_A_we_Bl_q_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[140] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAMA, __pyx_mstate->__pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_8_T_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[140])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4327}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4585}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MARKETFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_a_8_T_3hjX___U_7_A_we_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[141] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MARKETFI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_8_T_3hjX___U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[141])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4358}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4618}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MASSI, __pyx_mstate->__pyx_kp_b_iso88591_XXY_aq_Qa_6_8_T_3a_U_7_A_we_R_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[142] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MASSI, __pyx_mstate->__pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_8_T_3a_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[142])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4391}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4653}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_periods, __pyx_mstate->__pyx_n_u_minperiod, __pyx_mstate->__pyx_n_u_maxperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_CZZqqr_aq_k_6_8_T_7_U_7_A_we_Bl, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[143] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAVP, __pyx_mstate->__pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_8_T_7_U_7_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[143])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4426}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4690}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[144] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[144])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4457}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4723}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[145] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_8_T_U_7_A_we_0_q_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[145])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4491}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4759}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_8_T_3a_U_7_A_we_0_q_Rt9, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[146] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MEDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_6_wc_A_8_T_3a_U_7_A_we_0, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[146])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4521}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4791}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MFI, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoou, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[147] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MFI, __pyx_mstate->__pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[147])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4555}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4827}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[148] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPOINT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_0_q_Rt, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[148])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4586}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4860}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[149] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIDPRICE, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_8_T_3a_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[149])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4618}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4894}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[150] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[150])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4649}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4927}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outinteger, __pyx_mstate->__pyx_n_u_outinteger_data, __pyx_mstate->__pyx_n_u_i}; - __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_0_q_Rt9Kt6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[151] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MININDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_8_T_U_7_A_we_0_q_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[151])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4683}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4963}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outmin, __pyx_mstate->__pyx_n_u_outmax}; - __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_b_axq_axq_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[152] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_8_T_U_7_A_we_b, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[152])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4717}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4999}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outminidx, __pyx_mstate->__pyx_n_u_outmaxidx, __pyx_mstate->__pyx_n_u_outminidx_data, __pyx_mstate->__pyx_n_u_i, __pyx_mstate->__pyx_n_u_outmaxidx_data}; - __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_axq_axq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[153] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINMAXINDEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_8_T_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[153])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4757}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5041}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[154] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[154])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4790}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5076}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_8_T_3a_U_7_A_we_0_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[155] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MINUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_8_T_3a_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[155])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4822}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5110}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[156] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MOM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[156])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4853}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5143}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_A_q_4y_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[157] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_MULT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_8_U_E_U_7_A_we_A_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[157])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4884}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5176}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NATR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[158] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NATR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[158])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4917}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5211}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[159] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_NVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_8_U_F_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[159])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4947}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5243}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_6_8_T_6_U_7_A_we_1_q_i_fAYkQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[160] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_OBV, __pyx_mstate->__pyx_kp_b_iso88591_aq_6_wc_A_8_T_6_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[160])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 4978}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_percentile, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTILE, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_T_q_8_T_U_7_A_we_2_M_q_r, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[161] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTILE, __pyx_mstate->__pyx_kp_b_iso88591_C1_aq_T_q_wc_A_8_T_U_7_A_we_2_M, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[161])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5010}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5310}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTRANK, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_32Q_q_i_fAY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[162] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PERCENTRANK, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_32Q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[162])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5041}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5343}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_w_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[163] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DI, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[163])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5074}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5378}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_Qa_6_8_T_3a_U_7_A_we_r_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[164] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PLUS_DM, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_8_T_3a_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[164])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5106}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5412}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PPO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_8_T_U_7_A_we_2_q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[165] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PPO, __pyx_mstate->__pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_8_T_U_7_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[165])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5139}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5447}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[166] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVI, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_8_U_F_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[166])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5169}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5479}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVO, __pyx_mstate->__pyx_kp_b_iso88591_VVW_V6_8_V1_U_7_A_we_2_q_q_i_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[167] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVO, __pyx_mstate->__pyx_kp_b_iso88591_VVW_V6_wc_A_8_V1_U_7_A_we_2_q_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[167])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5202}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5514}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_8_U_F_U_7_A_we_1_q_i_vQi_R, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[168] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_PVT, __pyx_mstate->__pyx_kp_b_iso88591_Kq_7_wc_A_8_U_F_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[168])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5232}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5546}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_open, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_QSTICK, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Kq_6_8_T_5_U_7_A_we_b_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[169] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_QSTICK, __pyx_mstate->__pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_8_T_5_U_7_A_we, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[169])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5264}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5580}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[170] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[170])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5295}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5613}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[171] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROC, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[171])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5326}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5646}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[172] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCP, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[172])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5357}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5679}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[173] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[173])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5388}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5712}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_r_q_Bd_d_WX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[174] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ROCR100, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_r_q_Bd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[174])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5419}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5745}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[175] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RSI, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[175])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5450}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5778}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_stddevperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[176] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVI, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_wc_A_8_T_U_7_A_we_2_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[176])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5482}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5812}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVOL, __pyx_mstate->__pyx_kp_b_iso88591_V6_8_V1_U_7_A_we_Ba_q_4y_6_q_VW, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[177] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_RVOL, __pyx_mstate->__pyx_kp_b_iso88591_V6_wc_A_8_V1_U_7_A_we_Ba_q_4y_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[177])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5513}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5845}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_acceleration, __pyx_mstate->__pyx_n_u_maximum, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAR, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_aq_Qa_6_8_T_3a_U_7_A_we_2_A, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[178] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAR, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_8_T_3a_U_7_A_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[178])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5546}; + const __Pyx_PyCode_New_function_description descr = {10, 0, 0, 18, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5880}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_startvalue, __pyx_mstate->__pyx_n_u_offsetonreverse, __pyx_mstate->__pyx_n_u_accelerationinitlong, __pyx_mstate->__pyx_n_u_accelerationlong, __pyx_mstate->__pyx_n_u_accelerationmaxlong, __pyx_mstate->__pyx_n_u_accelerationinitshort, __pyx_mstate->__pyx_n_u_accelerationshort, __pyx_mstate->__pyx_n_u_accelerationmaxshort, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; __pyx_mstate_global->__pyx_codeobj_tab[179] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SAREXT, __pyx_mstate->__pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[179])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5585}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5921}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[180] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SIN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[180])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5614}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5952}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[181] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SINH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[181])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5643}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5983}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[182] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[182])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5674}; + const __Pyx_PyCode_New_function_description descr = {7, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6016}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastperiod, __pyx_mstate->__pyx_n_u_slowperiod, __pyx_mstate->__pyx_n_u_signalperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsmi, __pyx_mstate->__pyx_n_u_outsmisignal}; - __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMI, __pyx_mstate->__pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[183] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SMI, __pyx_mstate->__pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[183])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5713}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6057}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[184] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SQRT, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[184])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5742}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6088}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_q_aq_T_q_8_T_U_7_A_we_b_Q_q_2T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[185] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STDDEV, __pyx_mstate->__pyx_kp_b_iso88591_q_aq_T_q_wc_A_8_T_U_7_A_we_b_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[185])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5774}; + const __Pyx_PyCode_New_function_description descr = {8, 0, 0, 17, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6122}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_slowk_period, __pyx_mstate->__pyx_n_u_slowk_matype, __pyx_mstate->__pyx_n_u_slowd_period, __pyx_mstate->__pyx_n_u_slowd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outslowk, __pyx_mstate->__pyx_n_u_outslowd}; - __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_8, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[186] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCH, __pyx_mstate->__pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[186])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5814}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6164}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[187] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHF, __pyx_mstate->__pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[187])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5852}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6204}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_fastk_period, __pyx_mstate->__pyx_n_u_fastd_period, __pyx_mstate->__pyx_n_u_fastd_matype, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outfastk, __pyx_mstate->__pyx_n_u_outfastd}; - __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_AA_uuv0_aq_T_q_8_T_U_7_A_we_0_o, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[188] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_STOCHRSI, __pyx_mstate->__pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_8_T_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[188])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5889}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6243}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real0, __pyx_mstate->__pyx_n_u_real1, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_8_U_E_U_7_A_we_1_q_i_vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[189] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUB, __pyx_mstate->__pyx_kp_b_iso88591_Kq_Kq_7_wc_A_8_U_E_U_7_A_we_1_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[189])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5920}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[190] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUM, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[190])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5951}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6309}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_multiplier, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outsupertrend, __pyx_mstate->__pyx_n_u_outtrend}; - __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_8_T_3hjX_U_7, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[191] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_SUPERTREND, __pyx_mstate->__pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_8_T_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[191])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 5988}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6348}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_vfactor, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_T3, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_8_T_U_7_A_we_M_q_r_Yk_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[192] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_T3, __pyx_mstate->__pyx_kp_b_iso88591_1_aq_T_q_wc_A_8_T_U_7_A_we_M_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[192])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6020}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6382}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_1_q_i_fAYa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[193] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TAN, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_1_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[193])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6049}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 9, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6413}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_A_q_4y_4vQi, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[194] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TANH, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_A_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[194])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6078}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6444}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[195] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[195])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6109}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6477}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[196] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRANGE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[196])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6140}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6510}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[197] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Rq_q_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[197])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6171}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6543}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Ba_q_4y_4vQ, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[198] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TRIX, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Ba_q_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[198])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6202}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6576}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[199] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[199])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6233}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6609}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_firstperiod, __pyx_mstate->__pyx_n_u_secondperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSI, __pyx_mstate->__pyx_kp_b_iso88591_Q_aq_T_q_8_T_U_7_A_we_2_1_q_i_f, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[200] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TSI, __pyx_mstate->__pyx_kp_b_iso88591_Q_aq_T_q_wc_A_8_T_U_7_A_we_2_1, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[200])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6265}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6643}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[201] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_TYPPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[201])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6296}; + const __Pyx_PyCode_New_function_description descr = {6, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6676}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod1, __pyx_mstate->__pyx_n_u_timeperiod2, __pyx_mstate->__pyx_n_u_timeperiod3, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[202] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ULTOSC, __pyx_mstate->__pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_8_T, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[202])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6331}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6713}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_nbdev, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VAR, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_8_T_U_7_A_we_2_q_i_fAY_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[203] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VAR, __pyx_mstate->__pyx_kp_b_iso88591_A_aq_T_q_wc_A_8_T_U_7_A_we_2_q_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[203])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6363}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6747}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VHF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[204] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VHF, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[204])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6394}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6780}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outplusvi, __pyx_mstate->__pyx_n_u_outminusvi}; - __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VORTEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[205] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VORTEX, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_8_T_3hjX, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[205])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6430}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6818}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_8_T_3hjX_eeoouuv_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[206] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWAP, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_8_T_3hjX_eeo_2, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[206])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6462}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6852}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_volume, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWMA, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_6_8_T_6_U_7_A_we_Ba_q_4y, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[207] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_VWMA, __pyx_mstate->__pyx_kp_b_iso88591_BC_aq_6_wc_A_8_T_6_U_7_A_we_Ba, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[207])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6495}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6887}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WAD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[208] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WAD, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_4, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[208])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6526}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6920}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[209] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WCLPRICE, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_3, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[209])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6557}; + const __Pyx_PyCode_New_function_description descr = {4, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6953}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_high, __pyx_mstate->__pyx_n_u_low, __pyx_mstate->__pyx_n_u_close, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_8_T_3hjX_U_7_A_we_6, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[210] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WILLR, __pyx_mstate->__pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_8_T_3hjX_U_7_5, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[210])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6590}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6988}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_2Q_q_i_fAYm, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[211] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_WMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_2Q_q_i, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[211])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 6621}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7021}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_real, __pyx_mstate->__pyx_n_u_timeperiod, __pyx_mstate->__pyx_n_u_length, __pyx_mstate->__pyx_n_u_begidx, __pyx_mstate->__pyx_n_u_endidx, __pyx_mstate->__pyx_n_u_lookback, __pyx_mstate->__pyx_n_u_retCode, __pyx_mstate->__pyx_n_u_outbegidx, __pyx_mstate->__pyx_n_u_outnbelement, __pyx_mstate->__pyx_n_u_outreal}; - __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ZLEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_8_T_U_7_A_we_Rq_q_D_D_ay, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[212] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_talib__func_pxi, __pyx_mstate->__pyx_n_u_ZLEMA, __pyx_mstate->__pyx_kp_b_iso88591_aq_T_q_wc_A_8_T_U_7_A_we_Rq_q_D, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[212])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 73}; diff --git a/tests/test_func.py b/tests/test_func.py index 9f71f42d7..1aae80e98 100644 --- a/tests/test_func.py +++ b/tests/test_func.py @@ -1,3 +1,7 @@ +import subprocess +import sys +import textwrap + import numpy as np from numpy.testing import assert_array_equal, assert_array_almost_equal import pytest @@ -47,6 +51,42 @@ def test_input_allnans(): assert np.all(np.isnan(r)) +@pytest.mark.skipif(sys.platform == 'win32', reason='the guard page uses mprotect') +def test_input_empty(): + # The empty inputs sit right after an inaccessible page, so a read before the + # buffer faults at once; unguarded, it corrupts the heap silently, and an abort, + # if any, lands much later. Hence the child process. + script = textwrap.dedent(""" + import ctypes, mmap + import numpy as np, talib + from talib import abstract, func + page = mmap.PAGESIZE + buf = mmap.mmap(-1, 2 * page) + start = ctypes.addressof(ctypes.c_char.from_buffer(buf)) + libc = ctypes.CDLL(None, use_errno=True) + libc.mprotect.argtypes = (ctypes.c_void_p, ctypes.c_size_t, ctypes.c_int) + assert libc.mprotect(start, page, 0) == 0, ctypes.get_errno() + empty = np.frombuffer(buf, dtype=np.float64, count=0, offset=page) + bars = np.linspace(10.0, 20.0, 100) + names = ('open', 'high', 'low', 'close', 'volume', 'periods') + + def outputs(result): + return result if isinstance(result, list) else [result] + + for name in talib.get_functions(): + got = outputs(abstract.Function(name)(dict.fromkeys(names, empty))) + ref = outputs(abstract.Function(name)(dict.fromkeys(names, bars))) + assert [(len(o), o.dtype) for o in got] == [(0, o.dtype) for o in ref], name + assert len(func.MA(empty, timeperiod=1)) == 0 + for got in (func.SMA(empty, timeperiod=0), func.BBANDS(empty, nbdevup=-1e40), + func.MINMAXINDEX(empty, timeperiod=1)): + assert all(len(o) == 0 for o in (got if isinstance(got, tuple) else (got,))) + print('ok') + """) + done = subprocess.run([sys.executable, '-c', script], capture_output=True, text=True) + assert (done.returncode, done.stdout.strip()) == (0, 'ok'), done.stderr[-2000:] + + def test_input_nans(): a1 = np.arange(10, dtype=float) a2 = np.arange(10, dtype=float) diff --git a/tools/generate_func.py b/tools/generate_func.py index 394e4a5d4..fae5d9a50 100644 --- a/tools/generate_func.py +++ b/tools/generate_func.py @@ -351,6 +351,13 @@ def cleanup(name): else: print(' length = check_length%s(%s)' % (len(inputs), ', '.join(inputs))) + # No input, no output. It also must not reach check_begidx, which answers -1 + # for it and points TA-Lib one element before the buffers. + empty = ['make_%s_array(0, 0)' % ('double' if arg.startswith('double') else 'int') + for arg in args if arg.split()[-1].startswith('out') and arg.endswith('[]')] + print(' if length == 0:') + print(' return %s' % ', '.join(empty)) + # check for all input values are non-NaN print(' begidx = check_begidx%s(length, %s)' % (len(inputs), ', '.join('(%s.data)' % s for s in inputs))) From c921ff352fd1d532cd1e3f63e85c797d33eb8f5a Mon Sep 17 00:00:00 2001 From: mario4tier Date: Mon, 14 Sep 2026 12:47:22 -0400 Subject: [PATCH 09/12] version bump Claude-Session: https://claude.ai/code/session_01TuVjx2Q5urdmwi5opzfCp8 --- pyproject.toml | 2 +- talib/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 44b5009c2..47d0c02f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "TA-Lib" -version = "0.8.0" +version = "0.8.1" description = "Python wrapper for TA-Lib" readme = "README.md" license-files = ["LICENSE"] diff --git a/talib/__init__.py b/talib/__init__.py index 11dcefaee..262ccade8 100644 --- a/talib/__init__.py +++ b/talib/__init__.py @@ -138,7 +138,7 @@ def wrapper(*args, **kwds): from . import stream -__version__ = '0.8.0' +__version__ = '0.8.1' # In order to use this python library, talib (i.e. this __file__) will be # imported at some point, either explicitly or indirectly via talib.func From c487e46ee35d651124cac730282bc4eea037c620 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Mon, 14 Sep 2026 13:21:40 -0400 Subject: [PATCH 10/12] update README from TA-Lib C 0.7.1 to 0.8.1 Claude-Session: https://claude.ai/code/session_01TuVjx2Q5urdmwi5opzfCp8 --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 31f735424..0f4d2d3cf 100644 --- a/README.md +++ b/README.md @@ -109,24 +109,24 @@ your-arm64-python -m pip install --no-cache-dir ta-lib For 64-bit Windows, the easiest way is to get the *executable installer*: -1. Download [ta-lib-0.7.1-windows-x86_64.msi](https://github.com/ta-lib/ta-lib/releases/download/v0.7.1/ta-lib-0.7.1-windows-x86_64.msi). +1. Download [ta-lib-0.8.1-windows-x86_64.msi](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-windows-x86_64.msi). 2. Run the Installer or run `msiexec` [from the command-line](https://learn.microsoft.com/en-us/windows/win32/msi/standard-installer-command-line-options). Alternatively, if you prefer to get the libraries without installing, or would like to use the 32-bit version: -* Intel/AMD 64-bit [ta-lib-0.7.1-windows-x86_64.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.7.1/ta-lib-0.7.1-windows-x86_64.zip) -* Intel/AMD 32-bit [ta-lib-0.7.1-windows-x86_32.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.7.1/ta-lib-0.7.1-windows-x86_32.zip) +* Intel/AMD 64-bit [ta-lib-0.8.1-windows-x86_64.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-windows-x86_64.zip) +* Intel/AMD 32-bit [ta-lib-0.8.1-windows-x86_32.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-windows-x86_32.zip) #### Linux Download -[ta-lib-0.7.1-src.tar.gz](https://github.com/ta-lib/ta-lib/releases/download/v0.7.1/ta-lib-0.7.1-src.tar.gz) +[ta-lib-0.8.1-src.tar.gz](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-src.tar.gz) and: ```shell -tar -xzf ta-lib-0.7.1-src.tar.gz -cd ta-lib-0.7.1/ +tar -xzf ta-lib-0.8.1-src.tar.gz +cd ta-lib-0.8.1/ ./configure --prefix=/usr make sudo make install From 0c25dc45a372a9dffe919d605977fc228b038ce0 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 20 Sep 2026 19:21:46 -0400 Subject: [PATCH 11/12] test: accept a TA-Lib C newer than we require dev tracks TA-Lib C's dev branch, whose version moves ahead of the release. --- tests/test_func.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test_func.py b/tests/test_func.py index 1aae80e98..34adabbde 100644 --- a/tests/test_func.py +++ b/tests/test_func.py @@ -11,7 +11,9 @@ def test_talib_version(): - assert talib.__ta_version__[:5] == b'0.8.1' + required = (0, 8, 1) + installed = tuple(int(p) for p in talib.__ta_version__.split()[0].split(b'.')) + assert installed >= required def test_num_functions(): From 2f1db9ab96a90f00619258c2dcd7e6328451b7b3 Mon Sep 17 00:00:00 2001 From: mario4tier Date: Sun, 20 Sep 2026 19:21:54 -0400 Subject: [PATCH 12/12] ci: add the dev-* release lane, pinned to the wheels' TA-Lib C --- .github/workflows/tests.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 13b3a0f33..e311c1b91 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,10 +1,12 @@ name: Tests +# master and the dev-* release branches test against the TA-Lib C release the +# wheels are built from. dev tracks TA-Lib C's dev branch, in tests-dev.yml. on: push: - branches: [ master ] + branches: [ master, 'dev-*' ] pull_request: - branches: [ master ] + branches: [ master, 'dev-*' ] jobs: build: @@ -15,8 +17,18 @@ jobs: steps: - uses: actions/checkout@v3 + - name: TA-Lib C version + id: talib_c + run: | + set -euo pipefail + V=$(sed -n 's/^ TALIB_C_VER: *//p' .github/workflows/wheels.yml) + [ -n "$V" ] || { echo "::error::no TALIB_C_VER in wheels.yml"; exit 1; } + echo "version=$V" >> "$GITHUB_OUTPUT" + - name: Set up TA-Lib uses: TA-Lib/setup-ta-lib@v1 + with: + version: ${{ steps.talib_c.outputs.version }} - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4